Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 排序时出现多部分标识符错误_Sql - Fatal编程技术网

Sql 排序时出现多部分标识符错误

Sql 排序时出现多部分标识符错误,sql,Sql,我需要一个如上所述的列表,我想在“休假生产”日期进行排序,项目编号必须保持3人一组,如上所述 我已经有了这个SQL。列表正在工作,但排序不工作。错误是: 无法绑定多部分标识符“任务。[任务截止日期]” 我已经有了一个建议,但仍然有错误。我该如何分类 这是我得到的清单: Project nr Task Task deadline Task Type Production ---------------------------------------

我需要一个如上所述的列表,我想在“休假生产”日期进行排序,项目编号必须保持3人一组,如上所述

我已经有了这个SQL。列表正在工作,但排序不工作。错误是:

无法绑定多部分标识符“任务。[任务截止日期]”

我已经有了一个建议,但仍然有错误。我该如何分类

这是我得到的清单:

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
这是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 
此行应执行以下排序:

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
但我犯了个错误

Msg 4104,第16级,状态1,第62行
无法绑定由多个部分组成的标识符“data.TaskDudate”


别名为
data
的子查询没有返回名为
taskDaildate

从SQL语句中可以看到,该子查询包含以下列:

ORDER BY data.[Task deadline]
但仅此而已-没有
任务截止日期
任何地方可以看到


因此,很明显,您不能使用
orderby
子句中不存在的列。

我需要在[Leave Production]上排序,这会产生相同的错误。taskdeadline不是一个正确的例子。正是我尝试的。如果您想按
[离开生产]
订购-您需要指定
按[离开生产]
订购(而不是按
[任务截止日期]
)。。。。
[Project nr]
Packed
[Leave Production]
[Flight Date]