![](/img/trans.png)
[英]How to select multiple columns, sum one column and group by multiple columns
[英]How to select multiple columns and group by one column
我想根據number
列對 C.AMOUNT 求和。 例如相同4個數字中的number
列,那么我想根據數字列中的相同number
對列C.AMOUNT
求和,並在FINAL_AMOUNT
列中顯示求和列
SELECT A.NUMBER,
B.AGE,
C.PRODUCT_NAME,
SUM(C.AMOUNT) AS FINAL_AMOUNT,
(CASE
WHEN C.PRODUCT_NAME LIKE '%D%'
THEN 'Y'
ELSE 'N'
END) AS D,
(CASE
WHEN C.PRODUCT_NAME LIKE '%E%'
THEN 'Y'
ELSE 'N'
END) AS E,
(CASE
WHEN C.PRODUCT_NAME LIKE '%F%'
THEN 'Y'
ELSE 'N'
END) AS F,
(CASE
WHEN C.PRODUCT_NAME LIKE '%G%'
OR C.PRODUCT_NAME LIKE '%H%'
OR C.PRODUCT_NAME LIKE '%J%'
THEN 'Y'
ELSE 'N'
END) AS J
FROM [A].[DBO].[A]
LEFT JOIN [B].[DBO].[B] B ON A.NUMBER = B.NUMBER
LEFT JOIN [C].[DBO].[C] C ON A.NUMBER = C.NUMBER
WHERE B.REPORT_DATE = '20200728'
GROUP BY A.NUMBER;
那是我使用的查詢,但我發現這樣的錯誤:
MSG 8120,16,State 1,第1行1列'B.Dbo.b'在Z999938282F040404071859941E18F18F16EFCF421111818列表中均不包括在Z9999382F042F018上列表。
看起來你想要一個 window 總和而不是聚合。
也就是說,替換:
SUM(C.amount) as FINAL_AMOUNT
和:
SUM(C.amount) OVER(PARTITION BY A.NUMBER) as FINAL_AMOUNT
因此,您需要從查詢中刪除GROUP BY
子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.