【发布时间】:2016-02-04 04:37:36
【问题描述】:
我使用的是 SQL Server 2012,我想创建一个包含 4 个连接表的数据透视表。
这是我的查询:
SELECT
a.Itemno, a.Qty as PlanMilling,
ISNULL(b.MinimStock, 0) as MinStock,
CAST(a.ScheduleDate as Date) AS Schedule,
ISNULL(SUM(c.Qty), 0) as QtyBuilding,
ISNULL(d.RunQty, 0) as QtyStock,
d.itemcode,
ISNULL((a.Qty + d.RunQty) - SUM(c.Qty), 0) as Balance
FROM
Schedule a
LEFT OUTER JOIN
Item b ON a.ItemNo = b.ItemNo
LEFT OUTER JOIN
ShopOrderList c on a.ItemNo = c.ItemNo and a.ScheduleDate = c.ScheduleDate
LEFT OUTER JOIN
(SELECT
RunQty, ItemCode
FROM
ICMutTran a
INNER JOIN
(SELECT
itemcode as ItemNo, max(id) as maxid
FROM
ICMutTran
GROUP BY
itemcode) AS b ON a.id = b.maxid) d ON (a.ItemNo = d.ItemCode)
GROUP BY
a.ItemNo, a.Qty, b.MinimStock, a.ScheduleDate, d.RunQty, d.itemcode
结果:
ItemNo | PlanMilling | MinStock | Schedule | QtyBuilding | QtyStock | ItemCode |
----------------------------------------------------------------------------------------------------------
123 | 1000 | 100 | 2016-02-04 | 200 | 1500 | 123 |
123 | 2000 | 100 | 2016-02-05 | 100 | 1500 | 123 |
123 | 1500 | 100 | 2016-02-06 | 150 | 1500 | 123 |
我需要的是这个:
ColName | 2016-02-04 | 2016-02-05 | 2016-02-06 |
----------------------------------------------------------------
PlanMilling | 1000 | 2000 | 1500 |
MinStock | 100 | 100 | 100 |
QtyBuilding | 200 | 100 | 150 |
QtyStock | 1500 | 1500 | 1500 |
谁能解决我的问题?我真的需要你的帮助(对不起我的英语不好)..
谢谢
【问题讨论】:
标签: sql-server tsql pivot unpivot