2013-02-25 99 views
-1

我需要在第二个查询中使用第一个查询的数据来获得正确的结果,但我无法完成。谁可以帮助我。连接两个查询

 SELECT [Project Nr], Task, TaskDate 
    FROM (
    SELECT MSP_EpmProject_UserView.[Project Nr] 
     ,MAX(CASE WHEN [Task Type tempress] = 'Packed' 
        THEN [Taskdeadline] 
       END) AS Pack 
     ,MAX(CASE WHEN [Task Type tempress] = 'Leave Production' 
        THEN [Taskdeadline] 
       END) AS [Leave Production] 
     ,MAX(CASE WHEN [Task Type tempress] = 'Flight Date' 
        THEN [Taskdeadline] 
       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 Vaassen],[Flight Date]) 
    ) piv 

查询的这一部分必须使用上面的查询的数据:

select 
     * 
    from 
     M AllData 
    inner join (
    select 
     ROW_NUMBER() OVER (Order by TaskDate) as ProductionOrder, 
     [Project Nr] 
    from 
     M 
    where 
     task = 'Leave Production' 
    ) 
    ProductionOrder 
    on ProductionOrder.[Project Nr] = AllData.[Project Nr] 
    Order by 
    ProductionOrder 
+1

“*无法完成*”不是有效的错误消息。 – 2013-02-25 18:07:47

回答

1

那么你忽略了很多重要的细节,比如你正在使用的数据库管理系统,以及如何你想使用第一个查询,但如果你正在使用SQL Server 2005+,我会建议看Common Table Expressions

with myCTE as 
(
    --Your first query 
) 

--You can now use myCTE in another query... 
SELECT * FROM myCTE 
+0

作品感谢您的支持 – Anne 2013-02-25 19:06:15