2011-01-13 3 views
0

SQL Server 2005의는 같은 테이블에서 많은 1 가입하고

1 표

ID Project_id 
------------- 
1 1   
1 2   
1 2   
1 3 

2

1 쿼리가 ID를 기반으로 독특한 결과를 얻을 수 쿼리 행에 추가

ID 
--- 
1 
2 
3 
4 
5 

두 번째 쿼리는 project_id의 ID 수를 합계

ID Project_id total 
-------------------- 
1 1   1 
1 2   2 
1 3   1 

나는 결과가이

ID Project_id _1 Project_id_2 Project_id_3 
------------------------------------------- 
1 1    2   1 

처럼 하나 개의 행이 가능한가요되도록 쿼리를 결합하기 위해 노력하고있어?

+0

더 많은 프로젝트가 연관되어 있으면 잘 확장되지 않습니다. 값을 아래에 나열하면 확장 성이 향상됩니다. –

+0

결과를 보고서에 연속으로 표시해야합니다. 각 ID가 가질 수있는 약 5 개의 프로젝트가 있습니다. – ccoop

+0

또한 1000 개의 ID가 있습니다. – ccoop

답변

0

글쎄, 동적 SQL을 사용해야 할 것 같아서 전에 link을 방문하십시오. 당신이 그 짓하면, 당신이 시도 할 수 있습니다 :

DECLARE @Project VARCHAR(MAX), @Query VARCHAR(MAX) 

SELECT @Project = COALESCE(@Project + ',', '') + QUOTENAME('Project_Id_' + CAST(Project_id AS VARCHAR)) 
FROM Project 
GROUP BY Project_id 

SET @Query = ' 
SELECT Id, '[email protected]+' 
FROM (SELECT Id, ''Project_Id_'' + CAST(Project_id AS VARCHAR) Project_Id, 1 AS Num FROM Project) P 
PIVOT(SUM(Num) FOR Project_Id IN ('[email protected]+')) PV' 

EXEC(@Query) 
0

answer here에 대한 테이블 회전을 참조하십시오. 같은 기본 문제.

관련 문제