gpt4 book ai didi

sql-server - 查询返回两行

转载 作者:行者123 更新时间:2023-12-03 01:30:34 24 4
gpt4 key购买 nike

我有一个表,其中有一列名为 type,其中包含发票值或订单值,然后另一列保存该值以及保存客户编号等的列。

我写了一个脚本:-

select 
customer,
(CASE WHEN TYPE = 'INVOICED' THEN SUM(INVTOTAL) else 0 END) AS INVTOTAL,
(CASE WHEN TYPE = 'ORDERS' THEN SUM(INVTOTAL) else 0 END) AS ORDERTOTAL
from
salestable

为什么它返回以下内容?

customer      INVTOTAL   ORDERTOTAL
Joe Bloggs 1000 0
Joe Bloggs 0 1300

而不是

customer      INVTOTAL   ORDERTOTAL
Joe Bloggs 1000 1300

很抱歉问这样一个新手问题,但我是 SQL 新手并且正在学习它......

感谢您的帮助!

最佳答案

您的查询缺少分组依据。还可以在 case 周围使用 sum 以避免出现多行。

select customer, 
sum(CASE WHEN TYPE = 'INVOICED' THEN INVTOTAL else 0 END) AS INVTOTAL,
sum(CASE WHEN TYPE = 'ORDERS' THEN INVTOTAL else 0 END) AS ORDERTOTAL
from salestable
group by customer

关于sql-server - 查询返回两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34230723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com