我有下表(表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是它们的总和,而不是按CODE(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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句