一直在寻找解决方案的几个星期,但一直空白。
我有与此类似的数据表:
client_ref supplier_key client_amount 1111 GBP 10 1111 GBP -10 1111 EUR 50 2222 CHF -22.5 2222 CHF -20 3333 EUR -27 3333 EUR -52 3333 EUR 79
我需要提取client_ref和Supplier_key匹配且client_amount的总数等于零的所有项目。输出如下所示:
client_ref supplier_key client_amount 1111 GBP 10 1111 GBP -10 3333 EUR -27 3333 EUR -52 3333 EUR 79
我写了以下返回总计的内容,但我需要您提供任何帮助以更改此内容,以显示组成总计的行,而不仅仅是总结果。
SELECT tbis.client_ref ,tbis.supplier_key ,sum(tbis.client_amount) FROM [XXXX].[dbo].[transaction] tbis WHERE tbis.tbis.client_amount !=0 GROUP BY tbis.client_ref, tbis.supplier_key HAVING sum(tbis.client_amount) =0 ORDER BY sum(tbis.client_amount)
希望这有道理,我的第一篇文章还可以。请随时批评我的帖子。
一种可能的方法是使用SUM()窗口函数:
SELECT * FROM ( SELECT tbis.client_ref ,tbis.supplier_key,tbis.client_amount, SUM(tbis.client_amount) OVER ( PARTITION BY tbis.client_ref, tbis.supplier_key) AS total_client_amount FROM [XXXX].[dbo].[transaction] tbis WHERE tbis.client_amount !=0 ) WHERE total_client_amount = 0