2014-10-16 20 views
1

微軟SQL Server報表生成微軟SQL報表生成器:多行「複製」到每個ID一行

我有一個查詢返回的各種從我們的社區情報數據庫信息,其運行是這樣的:

SELECT 
viewadhocorganisation.[org_id] 
..../other fields 
viewadhocorganisationmainactivities.[Main Activity] 

FROM 
viewadhocorganisation LEFT JOIN viewadhocorganisationmainactivities 
ON viewadhocorganisation.[OrganisationID] = viewadhocorganisationmainactivities.[Organisation ID] 

WHERE 
viewadhocorganisation.[city name] = 'MyCity' 

此方法返回各自領域的每一個組織上的新行每一個新行seperately上市(即複製) 因此SELECT DISTINCT不執行任何操作在這種情況下爲每一行主要活動是不是嚴格意義上的重複

即返回是:

ID | Org Name | other fields | Main Activity 
1 | Org 1  | other fields | Activity 1 
1 | Org 1  | other fields | Activity 2 
1 | Org 1  | other fields | Activity 3 
1 | Org 1  | other fields | Activity 4 
2 | Org 2  | other fields | Activity 1 
2 | Org 2  | other fields | Activity 5 
2 | Org 2  | other fields | Activity 7 
2 | Org 2  | other fields | Activity 8 

主要活動是從一個單獨的查找表(由一箇中央系統管理員維護)填充的文本串我曾嘗試過各種SUM,AGGREGATE,(也嘗試過各種JOIN,LOOKUP SET但我似乎會遇到很多錯誤,但我可能會錯誤地使用它),但尚未找到解決方案以獲得所需的輸出,其中所有主要活動均以逗號分隔:

需要輸出:

Org_ID | Org Name | other fields | Main Activity 1 | Org 1 | other fields | Activity 1, Activity 2, Activity 3 2 | Org 2 | other fields | Activity 1, Activity 5, Activity 7

其目的是獲取信息轉儲集成到谷歌地圖API顯示組織1,組織2等地址顯示他們的主要活動,我已經有一個過程,但無法將主要活動字段整理成一行

編輯:我到後端用不上,只能由我們的供應商

回答

0

您可以使用臨時表來實現這個創建的視圖和表報告。 在viewadhocorganisationmainactivities中將所需的一系列活動放在一個臨時表中,然後將該臨時表與主表(即viewadhocorganisation)結合使用。

+0

嗨,你能解釋一下更多的細節,我有點新手這個。一般來說,我無法創建表/視圖,因爲我已經從供應商處獲得一組視圖,並從中進行報告。由於我不是系統管理員,因此對後端的訪問非常有限 – 2014-10-16 13:03:40

0

您需要將表連接到本身,並使用stuff子句以逗號分隔的格式獲取字符串。 See this fiddle