2013-10-04 70 views
0

我有一個臨時表,包含3個字段:一個id,一個帶數字的char值(稱爲data)和一個char值(稱爲status)。SQL:在臨時表中的字段上創建條件

我已經做出那樣的在狀態字段檢查:

Declare @sum as int 
CASE #temp.status 
when #temp.status in (1,2) then 
Set @sum = (select SUM(data) FROM #temp groupby id) 
When #temp.status in 3 then Set @sum = 1 

但是,我有一個不正確的語法整齊keywork「案例」。你能幫我麼?

回答

-1
Declare @sum as int 

Set @sum = CASE when #temp.status in (1,2) 
       then (select SUM(data) FROM #temp) 
       When #temp.status = 3 
       then 1 
      END 

在你的子查詢中你group by id。這很可能會返回您可能不想要的多個記錄。

1
Declare @sum as int 
SELECT @Sum = SUM(CASE WHEN status in (1,2) THEN data WHEN status = 3 THEN 1 END) FROM #temp