使用一组值进行查询

时间:2014-02-11 15:56:20

标签: sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012

我有

的数据库表
Stores
StoreId, Name

Products
ProductId, Name

Transactions 
TransactionId, StoreId, ProductId

我刚收到一份包含300家商店列表的excel文件。

我需要知道这些商店是否在销售我们的产品,如果是,他们销售的产品数量。

我现在能想到的一种方法是单独查询excel表中每个商店的Transactions表,然后将结果输出复制回excel表。

有没有办法可以针对excel文件中的所有商店名称编写查询? 我需要在接下来的几个小时内完成这项工作。如果有更简单的方法,请告诉我

谢谢!

1 个答案:

答案 0 :(得分:1)

此查询将执行此操作:

select     Stores.StoreId, Stores.Name,
           Products.ProductId, Products.Name,
           count(distinct TransactionId) as Sales
from       Transactions
inner join Stores on Stores.StoreId = Transactions.StoreId
inner join Products on Products.ProductId = Transactions.ProductId
where      Stores.StoreId in
(
 1
,2
,3
,4
)
group by   Stores.StoreId, Stores.Name,
           Products.ProductId, Products.Name

为了填写Where子句的ScoreId列表,请将逗号连接到Excel中列表中每个项目的前端或末尾。 如下:

="," & A2

然后自动填充。可以将新片段复制/粘贴到SQL Server Management Studio中。