mysql同一行求和_选择-MySQL-基于同一标签中的行对列值求和

我试图基于同一表中的ProductID在新列中获取“现金”,“支票”和“信用卡”总计。

表-付款

+-----------+------------+---------------+--------+

| ProductID | SaleDate | PaymentMethod | Amount |

+-----------+------------+---------------+--------+

| 3 | 2012-02-10 | Cash | 10 |

| 3 | 2012-02-10 | Cash | 10 |

| 3 | 2012-02-10 | Check | 15 |

| 3 | 2012-02-10 | Credit Card | 25 |

| 4 | 2012-02-10 | Cash | 5 |

| 4 | 2012-02-10 | Check | 6 |

| 4 | 2012-02-10 | Credit Card | 7 |

+-----------+------------+---------------+--------+

期望的输出-

+------------+------+-------+-------------+-------+

| ProductID | Cash | Check | Credit Card | Total |

+------------+------+-------+-------------+-------+

| 3 | 20 | 15 | 25 | 60 |

| 4 | 5 | 6 | 7 | 18 |

+------------+------+-------+-------------+-------+

我尝试过左加入同一张桌子,但没有成功。 任何建议,将不胜感激。 谢谢。

不成功和不完整的尝试-

SELECT P.ProductID, Sum( PCash.Amount ) AS 'Cash', SUM( PCheck.Amount ) AS 'Check', SUM( PCredit.Amount) AS 'Credit Card'

FROM Payments AS P

LEFT JOIN Payments AS PCash ON P.ProductID = PCash.ProductID AND PCash.PaymentMethod = 'Cash'

LEFT JOIN Payments AS PCheck ON P.ProductID = PCheck.ProductID AND PCheck.PaymentMethod = 'Check'

LEFT JOIN Payments AS PCredit ON P.ProductID = PCredit.ProductID AND PCredit.PaymentMethod = 'Credit'

WHERE P.SaleDate = '2012-02-10' GROUP BY ProductID;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值