Sql server 如何以矩阵形式查询和显示数据?
我的问题是:Sql server 如何以矩阵形式查询和显示数据?,sql-server,database,pivot,display,Sql Server,Database,Pivot,Display,我的问题是: 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
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
动态轴心
DECLARE @DynamicPivotQuery AS NVARCHAR(MAX)
DECLARE @ColumnName AS NVARCHAR(MAX)
--Get distinct values of the PIVOT Column
SELECT @ColumnName= ISNULL(@ColumnName + ',','')
+ QUOTENAME(Week)
FROM (SELECT DISTINCT Week FROM #StoreSales) AS Weeks
--Prepare the PIVOT query using the dynamic
SET @DynamicPivotQuery =
N'SELECT Store, ' + @ColumnName + '
FROM #StoreSales
PIVOT(SUM(xCount)
FOR Week IN (' + @ColumnName + ')) AS PVTTable'
--Execute the Dynamic Pivot Query
EXEC sp_executesql @DynamicPivotQuery
欢迎来到stackoverflow。请描述您的问题并提供预期结果。这将大大有助于得到答案。虽然这本书看起来很长,但值得一读。您还刚刚删除了您的变量定义使用pivot时,最重要的是提供一个样本数据集,以配合您的预期输出。我假设您需要类似于
SELECT*FROM(SELECT t.Description,t.TermReason,e.EmployeeCode FROM…)的pivot(COUNT(EmployeeCode),用于([Finance])中的描述,[人力资源],[护理])P;