2013-02-18 5 views
0

누군가가 도움을받을 수있는 파생 테이블에 약간의 문제가 있습니다. 필자가 가지고있는 select 문 안에 2 개의 파생 테이블이 있는데,이 문은 피벗을 사용하여 세로 방향이 아닌 가로 방향 결과를 표시합니다. 내가 지금까지있어 무엇조합이있는 파생 테이블의 SQL Server 참조 필드

입니다 : 난 할 노력하고있어하면 개별 열이 아닌 SELECT *를 사용하여,하지만 나는 그것을 할 방법을 모르는 참조

SELECT * FROM(
SELECT SUM(Value) AS TotDays, ClassId FROM MainTable GROUP BY ClassId) 
Union All 
SELECT SUM(NumDays) As TotDays, ClassId FROM (
SELECT CASE WHEN COUNT(SiteId) > 0 THEN 1 ELSE 0 END AS NumDays 
    FROM Table2 GROUP BY ClassId) as SUB 
) AS a 
PIVOT (SUM(TotDays) FROM ClassId 
    IN ([12],[13],[14],[15] 

입니다. 내가 노조 전부터 모든 것을 버리면 나는 그것을 작동시킬 수 있지만, 노조를 넣으면 작동하지 않으며 SELECT *를 사용해야한다.

누구나 무슨 일이 벌어지는 지 아이디어가 있습니까?

감사

알렉스

답변

0

당신은 당신의 쿼리에 오류가 몇 가지있다. 예를 들어, UNION ALL에는 다른 수의 열이있는 세트가 있고 다른 구문 오류가 있습니다. 다음과 같이 시도하십시오.

SELECT [12],[13],[14],[15] 
FROM ( SELECT SUM(Value) AS TotDays, ClassId 
     FROM MainTable 
     GROUP BY ClassId 
     UNION ALL 
     SELECT SUM(NumDays) As TotDays, ClassId 
     FROM ( SELECT CASE WHEN COUNT(SiteId) > 0 THEN 1 ELSE 0 END NumDays, 
         ClassId 
       FROM Table2 
       GROUP BY ClassId) as SUB 
    ) AS a 
PIVOT (SUM(TotDays) FROM ClassId IN ([12],[13],[14],[15])) AS PT