Microsoft SQL结果行到列

时间:2016-01-18 07:53:30

标签: sql-server

我遇到Microsoft SQL查询问题。我想将查询结果中的列添加到每个specfic行。

SQL:

CREATE TABLE #TempResult
(
  rok int,  nazev varchar(500), kod int, JNC float, JPC float, CNC float, CPC float, ObchPriraz float, Marze float, vynos float
)
INSERT #TempResult Exec pOlapData 133,1,0,''
SELECT rok,nazev,JNC FROM #TempResult 

DROP TABLE #TempResult

结果如下:

This is the Result

我的目标是添加列(可能创建另一个临时表):JNC 2013,JNC 2014,JNC 2015 ...每年都有相同名称的每一行。

预期结果:

      name             | JNC 2013 | JNC 2014 | JNC 2015
  --------------------------------------------------------------
    name of the firm     number     number     number

1 个答案:

答案 0 :(得分:1)

这是一个纯SQL数据透视查询,它将为您提供所需的结果。它假定您从2013年到2016年有4个固定列。当然,您可以修改它以满足您的确切需求。

SELECT nazev AS name,
    SUM(CASE WHEN rok = 2013 THEN JNC ELSE 0 END) AS 'JNC 2013',
    SUM(CASE WHEN rok = 2014 THEN JNC ELSE 0 END) AS 'JNC 2014',
    SUM(CASE WHEN rok = 2015 THEN JNC ELSE 0 END) AS 'JNC 2015',
    SUM(CASE WHEN rok = 2016 THEN JNC ELSE 0 END) AS 'JNC 2016'
FROM #TempResult
GROUP BY nazev