gpt4 book ai didi

sql-server - 根据列从表中选择行

转载 作者:行者123 更新时间:2023-12-01 13:47:45 25 4
gpt4 key购买 nike

我有下表(表 1):

CODE    PRICE   ID
111 582 1
222 384 2
333 659 1
111 683 2
444 987 2
555 128 2
333 851 1
222 398 2

我需要对所有代码进行分组,然后显示 3 列,即代码,然后在 ID = 1 时显示价格总和,在 ID = 2 时显示价格总和。

结果表应该是这样的:

CODE    PRICE_1   PRICE_2
111 582 0
222 0 683
333 1510 782
444 0 987
555 0 128

我能够创建一些查询,例如:

select CODE, (select SUM(PRICE) from TABLE1 where ID = 1), (select SUM(PRICE)
from TABLE1
group by CODE

但我明白了,其中 PRICE_1 和 PRICE_2 是所有价格的总和,而不是按代码(111、222 等)对它们进行分组。我不知道如何将它们分组在“子选择”中。

CODE    PRICE_1   PRICE_2
111 2092 2580
222 2092 2580
333 2092 2580
444 2092 2580
555 2092 2580

最佳答案

试试这个 -

SELECT CODE,
(
SELECT SUM(Price)
FROM table1 a
WHERE a.ID = 1
AND a.CODE = b.CODE
),
(
SELECT SUM(Price)
FROM table1 a
WHERE a.ID = 2
AND a.CODE = b.CODE
)
FROM table1 b
GROUP BY CODE

无需重读:

SELECT
CODE,
ISNULL(SUM(CASE WHEN ID = 1 THEN Price END), 0),
ISNULL(SUM(CASE WHEN ID = 2 THEN Price END), 0)
FROM table1
GROUP BY CODE

关于sql-server - 根据列从表中选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34589446/

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