SQL 2012:基于两个可能相同的参数查询求和?

时间:2013-12-23 23:14:05

标签: sql

FeeTable(zip~ fee)
91324〜60
91326〜80个

输入
@ zip1 = 91324
@ zip2 = 91324

期望输出
120个

不确定是否有办法在不使用union的情况下对存储过程进行编码。这就是我一直在做的事情:

select sum(fee) from 
(select fee from FeeTable where zip = @zip1
union all
select fee from FeeTable where zip = @zip2) as temp

1 个答案:

答案 0 :(得分:1)

我不知道存储过程与此有什么关系。

但您想要的查询是:

select sum(fee)
from FeeTable
where zip = @zip1 or zip = @zip2;

编辑:

如果@zip1@zip2是相同的你想要两倍的总和,无论出于何种原因(这是你的版本会做的):

select sum(fee) * (case when @zip1 = @zip2 then 2 else 1 end)
from FeeTable
where zip = @zip1 or zip = @zip2;