2011-01-13 80 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 

第二個查詢按ID編號總計project_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關於表旋轉。同樣的基本問題。