用信息转置 Table
Transpose Table with information
我需要转置此视图(在 sql 中)
进入此视图:
有什么解决办法吗?
您可以使用 union all
:
select location, planning_product, '2016-05-16' as MondayDate, [5/16/2016] as ROP
from t
union all
select location, planning_product, '2016-05-09' as MondayDate, [5/9/2016] as ROP
from t
union all
. . .
注意列名需要转义。一些数据库使用双引号,其他数据库使用反引号或方括号。
假设 table 名称是 Tab 并且您有以下 3 个日期(您可以用自己的日期替换它们):[1/16/ 2015 年、[2015 年 2 月 16 日]、[2015 年 3 月 16 日]
WITH Unpivoted (PlanningProduct, Location, [Monday Date], ROP)
AS(
SELECT PlanningProduct, Location, CONVERT(datetime,MondayDate) AS [Monday Date], ROP
FROM
(SELECT Location, PlanningProduct, [1/16/2015], [2/16/2015], [3/16/2015] -- add your dates
FROM Tab) pvt
UNPIVOT
(ROP FOR MondayDate IN ([1/16/2015], [2/16/2015], [3/16/2015])) AS unpvt -- add your dates
)
SELECT PlanningProduct, Location, [Monday Date], SUM(ROP) AS ROP
FROM Unpivoted
GROUP BY PlanningProduct, Location, [Monday Date]
我需要转置此视图(在 sql 中)
进入此视图:
有什么解决办法吗?
您可以使用 union all
:
select location, planning_product, '2016-05-16' as MondayDate, [5/16/2016] as ROP
from t
union all
select location, planning_product, '2016-05-09' as MondayDate, [5/9/2016] as ROP
from t
union all
. . .
注意列名需要转义。一些数据库使用双引号,其他数据库使用反引号或方括号。
假设 table 名称是 Tab 并且您有以下 3 个日期(您可以用自己的日期替换它们):[1/16/ 2015 年、[2015 年 2 月 16 日]、[2015 年 3 月 16 日]
WITH Unpivoted (PlanningProduct, Location, [Monday Date], ROP)
AS(
SELECT PlanningProduct, Location, CONVERT(datetime,MondayDate) AS [Monday Date], ROP
FROM
(SELECT Location, PlanningProduct, [1/16/2015], [2/16/2015], [3/16/2015] -- add your dates
FROM Tab) pvt
UNPIVOT
(ROP FOR MondayDate IN ([1/16/2015], [2/16/2015], [3/16/2015])) AS unpvt -- add your dates
)
SELECT PlanningProduct, Location, [Monday Date], SUM(ROP) AS ROP
FROM Unpivoted
GROUP BY PlanningProduct, Location, [Monday Date]