Project nr Task Task deadline Task Type Production
---------------------------------------------------------------------------
456 packed 1 april 2013 Packed
456 Leave production 3 april 2013 Leave Production
456 Flight date 9 april 2013 Flight Date
123 packed 1 april 2013 Packed
123 Leave production 6 april 2013 Leave Production
123 Flight date 9 april 2013 Flight Date
789 packed 1 april 2013 Packed
789 Leave production 9 april 2013 Leave Production
789 Flight date 9 april 2013 Flight Date
我需要一个上面的列表我想在“离开生产”的日期排序项目nr必须像上面的列表一样保持3组。
我已经有了这个SQL。该列表正在运行,但排序无效。错误是:
无法绑定多部分标识符“task。[task deadline]”。
我已经有了一个建议,但仍然有错误。我如何获得排序?
这是我得到的清单:
Project Nr Task TaskDate
0053 Packed 2013-02-05 17:00:00.000
0053 Leave Production 2011-04-26 17:00:00.000
0053 Flight Date 2011-04-22 17:00:00.000
0071 Leave Production 2011-06-24 17:00:00.000
0081 Leave Production 2012-03-09 17:00:00.000
0081-01 Leave Production 2012-03-09 17:00:00.000
这是SQL查询:
SELECT
[Project nr], Task, TaskDate
FROM
(SELECT
MSP_EpmProject_UserView.[Project nr]
,MAX(CASE WHEN [Task Type Production] = 'Packed'
THEN [Task deadline]
END) AS Packed
,MAX(CASE WHEN [Task Type Production] = 'Leave Production'
THEN [Task deadline]
END) AS [Leave Production]
,MAX(CASE WHEN [Task Type Production] = 'Flight Date'
THEN [Task deadline]
END) AS [Flight Date]
FROM
MSP_EpmProject_UserView
LEFT JOIN
MSP_EpmTask_UserView ON MSP_EpmProject_UserView.ProjectUID = MSP_EpmTask_UserView.ProjectUID
LEFT JOIN
MSP_EpmAssignment_UserView ON MSP_EpmTask_UserView.TaskUID = MSP_EpmAssignment_UserView.TaskUID
LEFT JOIN
MSP_EpmResource_UserView ON MSP_EpmAssignment_UserView.ResourceUID = MSP_EpmResource_UserView.ResourceUID
WHERE
(MSP_EpmTask_UserView.TaskIsProjectSummary = 0)
GROUP BY
MSP_EpmProject_UserView.[Project nr]) data
UNPIVOT
(TaskDate
FOR [Task] IN ([Pack], [Leave Production], [Flight Date])
) piv
这一行应该排序:
ORDER BY data.[Task deadline]
但是我收到了错误
Msg 4104,Level 16,State 1,Line 62
无法绑定多部分标识符“data.Taskdeadline”。
答案 0 :(得分:0)
您别名为data
的子查询只是没有返回名为Taskdeadline
的列
从SQL语句中可以看出 - 该子查询包含列:
[Project nr]
Packed
[Leave Production]
[Flight Date]
但这就是全部 - 没有Taskdeadline
无处可见......
因此,很明显,您不能在ORDER BY
子句中使用该不存在的列。