2016-03-10 2 views
0

я сделал SELECT что-то как 'Variable', как этотSQL Server: SELECT то, как 'Variable'

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» ... извините, и спасибо u! :) –

+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

Благодарим вас, но я должен использовать ПЕРЕМЕННЫЙ позже, для вставки их в ТАБЛИЦУ. Я не могу подойти к ПЕРЕМЕННОЙ, которая объявлена ​​как «ПЕРЕМЕННАЯ», не так ли? –

+0

Я думаю, что ответ Джоша - это то, что вы хотите. –

+0

YEP! Я забыл момент «ЗАПИСЬ» ... извините, и поблагодарить u! :) –