在参数列表上重复查询

时间:2018-09-21 09:10:16

标签: sql dynamic

我想使用预定义列表中的不同参数值来迭代相同的查询。

说,我有一个有两列的表。第一列包含客户名称。第二列包含客户支出。

###CUSTOMER;     SPENDING###
customer1;       1000
customer2;       111
customer3;       100
customer1;       323
...

我知道完整的客户列表:customerlist = {customer1,customer2,customer3}。

我想做类似的事情:

Select sum(spending)
from mytable
where customer = @customerlist

查询应计算客户列表中定义的每个客户的支出总和。我发现了一些带有存储参数的sql过程示例,但没有一个带有多个值的参数的情况。

谢谢

P.S。这只是一个假设的例子来说明我的问题(我知道在这里使用简单的分组依据会更有效)。

2 个答案:

答案 0 :(得分:0)

您可以像这样使用嵌套查询

SELECT CustomerList.CustomerName Cust, isnull((SELECT SUM(Spending) CustSpending 
                FROM Customer 
                WHERE Customer.CustomerName = CustomerList.CustomerName),0) 
FROM CustomerList

答案 1 :(得分:0)

通常使用GROUP BY完成此操作:

Select customer, sum(spending)
from mytable
group by customer;

GROUP BY是SQL的非常基本的部分。您应该检查一下您对SQL的了解,从而了解如何使用它。