2013-01-04 44 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情况分成两个不同的按钮单击事件来解决它。

无论如何。