2013-01-04 82 views
0

我有一個asp.net項目,在這個項目上,使用案例更新列

我需要根據我的其他2列的值更新我的列。 我的表結構看起來;

ID - 名稱 - GK - PG - GK + PG

1 - 邁克 - 1 - 1 [在SQL應該在這裏寫540但是對於情況下寫入180]

2 - 約翰 - 2 - 1的sql應該在這裏寫1080但對於殼體180寫入]

3 - 蘇 - 1 - 2 [的sql應該在這裏寫1080但對於殼體180寫入]

這裏是的.cs代碼爲了它。

string strSQL = "UPDATE [info] SET 
[GK_PG] = (CASE 
WHEN ([GK]='1') THEN '180' 
WHEN ([PG]='1') THEN '180' 
WHEN ([GK]='2') THEN '540' 
WHEN ([PG]='2') THEN '540' 
WHEN ([GK]='3') THEN '1080' 
WHEN ([PG]='3') THEN '1080' 
WHEN ([GK]='1' AND [PG]='1') THEN '540' 
WHEN ([GK]='2' AND [PG]='1') THEN '1080' 
WHEN ([GK]='1' AND [PG]='2') THEN '1080' 
ELSE 0 
END) 
WHERE [DATE] BETWEEN @DATE1 AND @DATE1 AND WORK_TYPE='IN'"; 

此代碼只是寫我的[GK_PG]列'180',它不尋找其他狀態。

等待你的答案。

謝謝。

+2

如果所有行都有'[GK] ='1'或'[PG] ='1',這是預期的。在這種情況下,不會檢查第3條和以下條件。 –

+0

我需要檢查他們,我怎麼能做到我的朋友? –

+0

首先檢查AND條件,然後使用OR。 – Kaf

回答

0

我已經通過將GK和PG情況分成兩個不同的按鈕單擊事件來解決它。

無論如何。