我遇到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
结果如下:
我的目标是添加列(可能创建另一个临时表):JNC 2013,JNC 2014,JNC 2015 ...每年都有相同名称的每一行。
预期结果:
name | JNC 2013 | JNC 2014 | JNC 2015
--------------------------------------------------------------
name of the firm number number number
答案 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