簡體   English   中英

添加case語句中使用的列別名值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM