2008-10-15 51 views
3

在我的SQL數據庫,我有一個一對多的關係,這樣的事情:如何在SSRS中將數據集或組顯示爲逗號分隔列表?

 
Teacher Student 
John  Alex 
John  Mike 
John  Sean 
Bob  Jack 
Gary  George 
Gary  Paul 

我想顯示一個表格,列出每個教師,與學生作爲一個逗號分隔的列表,像這樣:

 
Teacher Students 
John  Alex, Mike, Sean 
Bob  Jack 
Gary  George, Paul 

This question介紹如何做到這一點上的SQL Server結束,但有沒有辦法做到這一點對事物的SSRS的一面呢?

回答

0

這StackOverflow的答案都代表一種技術達到這個目的:

String aggregation in SSRS 2005

這樣做的缺點的技術是,它使用中的代碼模塊,這可能引起併發問題,如果報告在網絡上承載的共享變量。

我也碰到過另一個解決方法:

創建自定義功能,如GetStudentList(TeacherId爲整數,的ConnectionString作爲字符串),其目的是返回基於指定的學生名單老師。

然後可以編寫此函數以打開與數據庫的連接,運行查詢,處理結果,然後返回它們。但是,這意味着打開連接併爲每一行運行查詢,這似乎是這種格式化的大量開銷(更不用說需要傳入連接字符串)。

這主要基於Experts' Exchange article

1

添加分組的老師,使用.NET加入附加明細行

加入證明在BOL多值參數...所以理論上它可用於結果數據集

Join

Join and multi-value parameters

+0

這看起來很有希望,GBN。但是我很難弄清楚如何將特定組的字段值作爲數組來獲取。有任何想法嗎? – AaronSieb 2008-10-16 14:39:06

+0

作爲一個具體的例子,我試過把這個表達式放在組頁腳中:= Join(Fields!Student,「,」)。這編譯,但導致#Error。 – AaronSieb 2008-10-16 14:49:22

5

我發現一個更簡單,直接的方法來做到這一點 - 添加表達式如下:

=Join(LookUpSet(Fields!TeacherName.Value, 
    Fields!TeacherName.Value, 
    Fields!StudentName.Value, 
    "YourTeacherDataSet"), ",") 
相關問題