2013-02-24 20 views
0
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。該列表正在工作,但排序不起作用。錯誤是:

無法綁定多部分標識符「任務。[任務截止時間]」。

我已經有一個建議,但仍然錯誤。我如何獲得排序?

這是列表中我得到:

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] 

,但我得到一個錯誤

消息4104,級別16,狀態1,行62
無法綁定多部分標識符「data.Taskdeadline」。

+0

如果你想按'[離開生產]'命令 - 你需要指定'ORDER BY [離開生產]'(而不是'[任務截止]').... – 2013-02-24 17:57:20

回答

0

你別名data只是簡單的沒有返回一個名爲Taskdeadline

你可以從你的SQL語句看到列中的子查詢 - 子查詢包含列:

[Project nr] 
Packed 
[Leave Production] 
[Flight Date] 

但這一切 - 沒有Taskdeadline任何地方都可以看到....

因此,很顯然,你可以不要使用ORDER BY子句中不存在的列。

+0

我需要排序[離開生產]這給出了相同的錯誤。 taskdeadline不是正確的例子。就是我試過的。 – Anne 2013-02-24 14:48:33

相關問題