[英]Adding column alias values used in case statement
在case語句中使用時,如何匯總這些列別名的總數?
SELECT
(CASE WHEN TYPE = 'FEES' THEN AMOUNT END) AS Fees,
(CASE WHEN TYPE = 'PENALTY' THEN AMOUNT END) AS Penalty,
(CASE WHEN TYPE = 'INTEREST' THEN AMOUNT END) AS Interest,
SUM(Fees + Penalty + Interest) AS Total
FROM MyTable
注意:除了3個求和的類型以外,還有更多的類型,因此sum(Amount)
不能提供所需的結果。
只需加上總和:
SELECT
SUM(CASE WHEN FRESHNESS = 'ROTTEN' THEN ORANGES ELSE 0 END) AS Bad_Oranges
, SUM(CASE WHEN FRESHNESS = 'ROTTEN' THEN APPLES ELSE 0 END) AS Bad_Apples
, SUM(CASE WHEN FRESHNESS = 'ROTTEN' THEN ORANGES + APPLES ELSE 0 END) AS Bad_Total
FROM Fruit
根據您的新要求,它將是:
SELECT
SUM(CASE WHEN TYPE = 'FEES' THEN AMOUNT ELSE 0 END) AS Fees
, SUM(CASE WHEN TYPE = 'PENALTY' THEN AMOUNT ELSE 0 END) AS Penalty
, SUM(CASE WHEN TYPE = 'INTEREST' THEN AMOUNT ELSE 0 END) AS Interest
, SUM(CASE WHEN TYPE IN ('INTEREST','PENALTY','FEES') THEN AMOUNT ELSE 0 END) AS Total
FROM MyTable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.