Excel 2010 - 由电子表格过滤的数据库查询

时间:2013-01-04 13:25:49

标签: sql sql-server excel business-intelligence

我们有一个包含10,000个客户ID列表的电子表格。

我们还有一个SQL Server 2008R2数据库,该数据库有一个customers表,包含20,000,000个客户,并包含客户ID,名字,电子邮件等属性。

最好在Excel中,我想查询数据库并获取电子表格中10,000名客户的名字和电子邮件。

我不想从数据库中带回所有20,000,000条记录,然后过滤掉10,000个客户,因为这会对数据库过于沉重(返回20,000,000行)。

我试图找到一种在数据库查询中应用过滤谓词的方法来做这样的事情:

SELECT first_name, email 
FROM customers
WHERE customer_id IN (
SELECT customer_id FROM [Excel Spreadsheet]
)

我无法在查询中执行WHERE CUSTOMER_ID IN ( <comma seperated list of customer_ids> ),因为有10,000个客户ID(整数),并且单个SQL语句中的字符数似乎有限制。

我有PowerPivot,但是如果不先把20家客户带回来,就无法找到办法。

我不想使用VBA - 解决方案需要为非技术最终用户提供。

有没有可以做到这一点的工具?

1 个答案:

答案 0 :(得分:0)

很抱歉我是新手(你想听到的最后一件事)但我当前的项目类似于我将Excel连接到我的数据库并使用SQL调出特定查询以加载到我的Excel工作表中。有一个链接到一个已经质疑这个问题的论坛。 http://community.spiceworks.com/topic/215327-using-column-data-from-excel-to-use-in-a-sql-query-statement希望这与你有关,因为他们提供的答案根本不使用VBA,看起来很简单。