微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何显示加在一起等于零的行

如何解决如何显示加在一起等于零的行

一种可能的方法是使用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

解决方法

一直在寻找解决方案的几个星期,但一直空白。

我有与此类似的数据表:

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)

希望这有道理,我的第一篇文章还可以。请随时批评我的帖子。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。