SQL查询根据列值获取SUM

时间:2019-07-24 21:27:03

标签: php mysql sql

我有一张下表

InvoiceNum | CheckAmt | CheckNum | 
----------------------------------
1234       |10.00     |1244      |
2346       |11.00     |1244      |
4176       |12.00     |1244      |
5213       |15.00     |1673      |

上表表示客户付款。客户可以拥有多张发票,并且可以通过单张支票付款。

例如,前三行由同一张支票支付。所以我想在应用查询后像下面这样

InvoiceNum       | CheckAmt | CheckNum |
----------------------------------------
1234, 2346, 4176 | 33.00    | 1244     |
5213             | 15.00    | 1673     |

可以吗?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

这是您的情况的一个示例:

SELECT *, GROUP_CONCAT(`InvoiceNum`), SUM(`CheckAmt`) FROM `YourTable` GROUP BY `CheckNum`

答案 1 :(得分:0)

我建议使用aggregate functions

使用GROUP BY按支票号码对行进行分组。
使用GROUP_CONCAT用逗号SEPARATOR连接分组的发票编号。
使用SUM汇总分组的支票金额。

这是一个例子:

SELECT
    GROUP_CONCAT(`InvoiceNum` SEPARATOR ', ') AS `InvoiceNum`,
    SUM(`CheckAmt`) AS `CheckAmt`,
    `checkNum`
FROM
    `yourTable`
GROUP BY
    `checkNum`