【发布时间】:2016-08-24 01:59:50
【问题描述】:
我的查询:
SELECT *
FROM
(SELECT
t.Description,
ISNULL(COUNT(e.EmployeeCode), 0)
FROM
Employee AS e
INNER JOIN
Department AS d ON e.DepartmentCode = d.DepartmentCode
INNER JOIN
TermReason AS t ON e.TermReasonCode = t.TermReasonCode
WHERE
e.terminationdate IS NOT NULL
AND e.TerminationDate BETWEEN @PeriodStartDate AND @PeriodEndDate) s
PIVOT
(COUNT(EmployeeCode) FOR description IN
([Finance], [Human Resources], [Nursing])) pvt
我的预期结果是:
Termination Reason Department1 Department2 Department3 etc etc
---------------------------------------------------------------------
aaa value1 value2 value 3 value4
bbb value1 value2 value 3 value4
ccc value1 value2 value 3 value4
ddd value1 value2 value 3 value4
【问题讨论】:
-
欢迎来到stackoverflow。请描述您的问题并提供预期结果。这将极大地帮助得到答案。虽然这似乎是一个冗长的阅读,但它是值得的。 stackoverflow.com/help/how-to-ask
-
你也刚刚删除了你的变量定义
-
由于您使用的是数据透视,因此您提供一个样本数据集以配合您的预期输出是最重要的
-
我假设你想要类似
SELECT * FROM (SELECT t.Description, t.TermReason, e.EmployeeCode FROM ...) S PIVOT (COUNT(EmployeeCode) FOR Description IN ([Finance], [Human Resources], [Nursing])) P;
标签: sql-server database pivot display