【发布时间】:2013-11-14 17:42:40
【问题描述】:
我刚开始思考左外连接,我正在练习 PIVOTS。
我想知道是否可以将此查询转换为枢轴?
SELECT mydrawercustomer.customerface,
mydrawerordertype.ordertypeface,
mydrawerorder.LM,
Datediff(hour, a1.playdate, a2.playdate) AS [RunningTime1],
Datediff(hour, a2.playdate, a3.playdate) AS [RunningTime2],
Datediff(hour, a3.playdate, a4.playdate) AS [RunningTime3],
Datediff(hour, a1.playdate, a4.playdate) AS [RunningTime4]
FROM mydrawerorder
LEFT OUTER JOIN mydrawercustomer
ON mydrawerorder.customerKEY = mydrawercustomer.customerKEY
LEFT OUTER JOIN mydrawerorderactivity a1
ON mydrawerorder.orderKEY = a1.orderKEY
AND a1.activityKEY = 1
LEFT OUTER JOIN mydrawerorderactivity a2
ON mydrawerorder.orderKEY = a2.orderKEY
AND a2.activityKEY = 2
LEFT OUTER JOIN mydrawerorderactivity a3
ON mydrawerorder.orderKEY = a3.orderKEY
AND a3.activityKEY = 3
LEFT OUTER JOIN mydrawerorderactivity a4
ON mydrawerorder.orderKEY = a4.orderKEY
AND a4.activityKEY = 4
INNER JOIN mydrawerordertype
ON mydrawerorder.ordertypeKEY = mydrawerordertype.ordertypeKEY
ORDER BY mydrawercustomer.customerface,
mydrawerordertype.ordertypeface,
mydrawerorder.LM,
a1.playdate
我并不是要求你为我解决我的挑战,我只是要求帮助我开始将这种左外连接查询转换为 PIVOT。
【问题讨论】:
-
嗨,看看这个链接应该有助于弄清楚如何转换查询techbubbles.com/sql-server/…
-
在这种情况下,更有用的链接如下:technet.microsoft.com/en-us/library/ms177410(v=sql.105).aspx
-
你能举一个数据的例子吗?(可能在sqlfiddle上)
-
多重连接版本 might be more efficient 取决于可用的索引和您的数据,
标签: sql sql-server sql-server-2008 tsql pivot