Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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" 456 packed 1 april 2013 Pack

我需要一个像上面这样的列表,我想在“离开生产”的日期排序,项目编号必须保持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
这是ORDER BY注释掉的结果。我想与没有日期的字段也如上结果

    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]

我假设您有一个表/视图/CTE,它看起来像您问题中的初始表。使用窗口函数获取所有相同“Project nr”的值,然后进行排序:

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 

我假设您有一个表/视图/CTE,它看起来像您问题中的初始表。使用窗口函数获取所有相同“Project nr”的值,然后进行排序:

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 

列的名称为Task,您使用的是[Task Deadline],在动态表数据中,列的名称为Task,因此使用该名称列的名称为Task,您使用的是[Task Deadline],在动态表数据中,列的名称为Task,因此使用该名称