【发布时间】: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