【问题标题】:Use PowerPivot table as parameter in another SQL Server Query在另一个 SQL Server 查询中使用 PowerPivot 表作为参数
【发布时间】:2014-11-19 00:42:57
【问题描述】:

我有来自 2 个不同的 SQL Server 2008 数据库的信息。

DB1 有以下相关的员工信息表

  • 员工
  • 员工部门
  • 工作地点

DB2 有一张表 Refunds 有退款请求。

由于它们位于不同的数据库上,我计划使用 PowerPivot 创建跨数据库数据透视表,以便能够显示部门退款请求等内容。

除了Employee 表之外,我能够毫无问题地引入所有数据。我无权访问源数据。我正在从各种数据仓库中提取数据,并且数据中恰好有重复的员工 ID(太棒了!)。我尝试了SELECT DISTINCT 查询,但整个行没有重复,在大多数情况下,这只是一个错误的员工 ID。

另一个问题是,只有一小部分员工(1-2K)代表客户提交退款请求,因此拉入整个员工表(20 万条记录)似乎很愚蠢。

所以我有了一个疯狂的想法,我可以使用Refunds 表中的employeeID 列动态拉取Employee 表。但我似乎找不到在单独的 PowerPivot 查询中使用现有 PowerPivot 表的地方。

这是我目前如何提取员工信息的 SQL

SELECT DISTINCT
  emp.NTLogin as 'Employee_NTLogin'
  , emp.LastName + ', ' + emp.FirstName as Emp_FullName
  , emp.PositionCode as 'Position'
  , emp.DepartmentID as 'Department'
  , emp.LocationID as 'Location'
  , emp.HireDate as 'Employee_HireDate'
  , emp.EndDate as 'Employee_EndDate'
FROM dbo.Employee emp
WHERE
  emp.EndDate IS NULL
  OR emp.EndDate BETWEEN '04/01/2014 00:00:00' AND GETDATE()
ORDER BY 
  emp.LastName + ', ' + emp.FirstName

WHERE 子句过滤掉从 4 月 1 日到今天的当前员工)

【问题讨论】:

    标签: sql-server-2008 excel-2010 powerpivot


    【解决方案1】:

    关于您使用的实际数据透视表的信息不多,但这里有一个如何获取数据的示例,您必须进行编辑以匹配您的表格。

    ActiveSheet.PivotTables(1).PivotFields("Employee").PivotItems("ID").DataRange.Select
    

    您可能希望将该数据放入一个数组中,然后将其传递给您的 sql 查询。不是一个完整的答案,但希望它能让你走上正轨。

    【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2014-04-09
      • 1970-01-01
      • 2021-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-14
      • 2012-06-04
      相关资源
      最近更新 更多