我有这些数据:
name qty date flag
---------------------------------------------
abc 255 11/10/1986 12:00:00 AM IN
abc 300 11/10/2010 12:00:00 AM IN
abc 12 11/10/2012 12:00:00 AM OUT
abc 13 11/9/2010 12:00:00 AM OUT
NULL NULL NULL NULL
我希望在该特定行获得qty
的总和:
flag
为“in”,则将添加到总和flag
为“out”,那么 从总和中减去 答案 0 :(得分:13)
SELECT SUM(case flag when 'IN' then qty else -qty end)
from table
WHERE ..... Your conditions here ...
答案 1 :(得分:-1)
我可以想到三种方法。 第一个是带有if语句的循环,我可能不会使用该选项。
第二个是使用Linq进行计算,如果你不知道Linq,请查看这个网站 http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx
你可能会使用Lamda表达式,但我对它们不是很好,我不是百分百肯定如何去做,但我觉得Lamda Expressions很可能会给你最优雅的解决方案。