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
答案 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;