【问题标题】:How to query and display data as a matrix?如何以矩阵形式查询和显示数据?
【发布时间】: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


【解决方案1】:

动态轴

    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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多