2016-03-10 34 views
0

我做SELECT的東西爲 '變量',像這樣SQL服務器:選擇一些東西作爲 '變量'

SELECT 
    SUM(CASE WHEN BA_Idx = 503 THEN BIL_Debit ELSE 0 END) AS 'SUM_DEBIT_503', 
    SUM(CASE WHEN BA_Idx = 504 THEN BIL_Debit ELSE 0 END) AS 'SUM_DEBIT_504' 
FROM  
    Bill 
WHERE 
    (@MEM_Idx = 0 OR MEM_Idx = @MEM_Idx) AND 
    (LEFT(BIL_YYMMDD,7) = @BILM_YYMM) AND   
    BIL_IsValid = 'True' 

SELECT @BILFC_TotalLaborCost = SUM_DEBIT_503 + SUM_DEBIT_504 

我想辦法的變量('SUM_DEBIT_503', 'SUM_DEBIT_504')計算@BILFC_TotalLaborCost

我該怎麼辦?

回答

1

您可以在查詢中設置的變量。這樣,如果你需要它們,它們可以在以後使用。

DECLARE @SumDebit503 <SOMETYPE> 
DECLARE @SumDebit504 <SOMETYPE> 

SELECT @SumDebit503 = SUM(CASE WHEN BA_Idx = 503 THEN BIL_Debit ELSE 0 END), 
     @SumDebit504 = SUM(CASE WHEN BA_Idx = 504 THEN BIL_Debit ELSE 0 END) 
FROM Bill 
WHERE 
    (@MEM_Idx = 0 OR MEM_Idx = @MEM_Idx) 
    AND (LEFT(BIL_YYMMDD, 7) = @BILM_YYMM) 
    AND BIL_IsValid = 'True' 

SELECT @BILFC_TotalLaborCost = @SumDebit503 + @SumDebit504 
+0

OMG,我忘記了一刻'DECLARE'...對不起,謝謝你! :) –

+1

@heejeongim,請考慮接受這個答案,如果你覺得它解決了你的問題。 –

1

不要在SELECT本身的分配:

SELECT @BILFC_TotalLaborCost = 
    SUM(CASE WHEN BA_Idx = 503 THEN BIL_Debit ELSE 0 END) + 
    SUM(CASE WHEN BA_Idx = 504 THEN BIL_Debit ELSE 0 END) 
FROM Bill 
WHERE 
    (@MEM_Idx = 0 OR MEM_Idx = @MEM_Idx) 
    AND (LEFT(BIL_YYMMDD, 7) = @BILM_YYMM) 
    AND BIL_IsValid = 'True' 
+0

謝謝你,但我必須稍後使用VARIABLE,以便將它們插入到TABLE中。我無法接近聲明爲'VARIABLE'的VARIABLE,可以嗎? –

+0

我認爲喬希的答案就是你想要的。 –

+0

YEP!我已經忘了片刻'DECLARE'...抱歉,謝謝你! :) –