我有两个表。第一个表有一个正值,第二个表有一个负值。就像这样
我进行了测试,根据trx_number合并两个表,得出SUM(positive.nett)和SUM(negative.nett)的合计,然后合并得出总计(SUM positive + SUM negative)
SELECT p.trx_number,
SUM(p.nett) total1,
SUM(n.nett) total2
FROM positif p
FULL JOIN negatif n
ON p.trx_number = n.trx_number
GROUP BY p.trx_number
但结果就这样
我意识到数字3(trx_id)有一个重复的结果,数字3的结果应该是正负之间的同一个数字。我尝试修复这个问题,但仍然不起作用。
请帮我这个忙
1条答案
按热度按时间kpbwa7wx1#
使用内部联接,并在联接表之前使用GROUP BY *。
示例
查询
DBfiddle
完全联接的主要问题是返回的行太多。例如,尝试只联接TRX列-〉您将得到2乘以3(6)行。您需要的是:每个TRX值占一行。(因此,在联接之前进行分组。)
行太多...
备选方案:您也可以使用UNION ALL,然后使用GROUP BY(和sum),例如
所有接头
GROUP BY和SUM