寻找一种在 MSSQL 中将行翻转为列的方法。这就是我的桌子的样子:
试图这样做
SELECT ta.AuftragID,
SUM(CASE
WHEN [Abteilung] = 'Konstruktion' THEN [PlanAufwand]
END) AS Konstruktion,
SUM(CASE
WHEN [Abteilung] = 'Mechanik' THEN [PlanAufwand]
END) AS Mechanik,
SUM(CASE
WHEN [Abteilung] = 'Verdrahtung' THEN [PlanAufwand]
END) AS Verdrahtung
FROM Terminliste_Abteilungsablauf ta
但是,由于 AuftragID 不止一次花费,我得到了这样的东西
结果应该是这样的,也许有人有解决方案。
AuftragsID Konstruktion Mechanik Verdrahtung
22103776 10 10 10
22103777 5 2 1
示例 https://data.stackexchange.com/stackoverflow/query/1453280/pivot
使用动态 SQL,因此每次表内容更改时,PIVOT 都不会被重写。
你的方式:
通过汇总查询:
https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=48c33fcbf9fb3a9f8e21eca72b27ff67