我对sql的查询再次遇到问题。
我有2张桌子。 “交易”表和“交易详细信息”表。
作为trx的交易
ID TOTAL
1 2000
2 10000
3 5000
transactions_details as td
ID trx_id PRICE
1 1 2000
2 2 5000
3 2 5000
4 3 1000
5 3 2000
6 3 2000
当我这样查询时
select sum(trx.total) from transactions as trx
join transaction_details as td
on trx.id = td.trx_id
我有结果
37000
那不是我的意思。
因为当我将sum(trx.total)更改为trx。*
数据显示如下
ID TOTAL
1 2000
2 10000
2 10000
3 5000
3 5000
3 5000
我想从该查询中获得结果17000。
我知道我可以只对表transaction_detail的价格求和,或对交易总和而不用联接另一个表。但就我而言,我必须加入2个表和SUM。
请帮助我
您可以先汇总第二张表,然后再加入-
SELECT SUM(PRC)
FROM transactions T
JOIN (SELECT trx_id, SUM(PRICE) PRC
FROM transactions_details
GROUP BY trx_id) TD ON T.id = TD.trx_id
在示例中的表结构中,看起来交易表存储了transaction_details表中的价格总计,因此从交易表中获取Sum(Total)应该足够了,除非您需要为每个交易获取总和。即使在这种情况下,交易表中的每个交易记录也应提供交易明细表中每个交易的总和。