我有一张下表
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 |
可以吗?
任何帮助将不胜感激。
答案 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`