我有下表
[EMPLOYEE]
:
姓名 | 角色 | 账单$ | 收入 |
---|---|---|---|
乔 | 销售经理 | $500 | $600 |
乔 | 副总裁 | $800 | 900 美元 |
天使 | 销售经理 | 100 美元 | 200 美元 |
天使 | 副总裁 | 300 美元 | 400 美元 |
乍得 | 销售经理 | 400 美元 | 300 美元 |
乍得 | 副总裁 | $600 | 100 美元 |
如何使用数据透视表查询表,或者交叉应用以获得以下结果:
姓名 | 销售经理计费 | 销售经理收入 | 副总裁计费 | 收入副总裁 |
---|---|---|---|---|
乔 | $500 | $600 | $800 | 900 美元 |
天使 | 100 美元 | 200 美元 | 300 美元 | 400 美元 |
乍得 | 400 美元 | 300 美元 | $600 | 100 美元 |
如有任何帮助,我们将不胜感激。谢谢!
SELECT
Name, [Sales Mgr] AS 'Sales Mgr Billed', [VP] AS 'VP Billed'
FROM
(SELECT
Name, Role, Billed$, Revenue
FROM
EMPLOYEE) src
PIVOT
(SUM(Billed$)
FOR Role IN ( [Sales Mgr], [VP])
) AS pvBilled
PIVOT
(SUM(Revenue)
FOR Role IN ( [Sales Mgr], [VP])
) AS pvRevenue
一种方法是将行与账单值和收入值联合起来,然后对生成的联合子查询应用数据透视。下面是查询
select Billed.Name,Billed.[Sales Mgr Billed],[Sales Mgr Revenue],[VP Billed], [VP Revenue] from
(
SELECT Name, Role + ' ' + 'Billed' AS Role, Billed$ FROM EMPLOYEE
UNION ALL
SELECT Name, Role + ' ' + 'Revenue' AS Role, Revenue FROM EMPLOYEE
) as p
PIVOT(
SUM(Billed$)
FOR Role IN ( [Sales Mgr Billed], [VP Billed],[Sales Mgr Revenue], [VP Revenue])) AS Billed
输出:
姓名 | 销售经理计费 | 销售经理收入 | 副总裁计费 | 收入副总裁 |
---|---|---|---|---|
天使 | 100 | 200 | 300 | 400 |
乍得 | 400 | 300 | 600 | 100 |
乔 | 500 | 600 | 800 | 900 |