很可能此问题之前已经被问过,我现在可能无法找到它,知道要搜索什么。
假设我有一个包含两列的简单表,一列包含两个值中的一个,例如"正"和"否定",另一个持有整数。
有没有办法使用标准SQL来计算第二列中所有数字的总和,如果第一列中的字段读取"正数"反之亦然,减去"否定"号码?
此外,如果它与标准SQL不同,理解如何对MS Access执行相同操作将会很有趣。
答案 0 :(得分:2)
您使用sum(case)
:
select sum(case when col1 = '+' then value
when col2 = '-' then - value
end) as overall
from t;
在MS Access中,您可以使用switch
或iff
select sum(switch(col1 = '+', value, col2 = '-', - value, 0)
) as overall
from t;