2008-10-23 159 views
0

如何在文本框中顯示特定字段的所有值? 即。例如。當你運行SP時,你會得到3排。我想在文本框中顯示(eg.empname) ,每個值用逗號分隔。 (ram,john,sita)。SQL Server報告服務

+0

把標題中的實際問題(而不是僅僅是sql報告服務)可能會導致更多的響應。 – ahockley 2008-11-18 21:18:40

回答

1

我前幾天有過這個問題。如果您正在使用SQL 2005,則可以使用CROSS APPLY函數。

這裏是一個示例;

Structure; 
ID TYPE TEXT 
1 1 Ram 
2 1 Jon 
3 2 Sita 
4 2 Joe 


Expecteed Output; 
ID TYPE TEXT 
1 1 Ram, Jon 
2 2 Sita, Joe 

Query; 
SELECT t.TYPE,LEFT(tl.txtlist,LEN(tl.txtlist)-1) 
FROM(SELECT DISTINCT TYPE FROM Table)t 
CROSS APPLY (SELECT TEXT + ',' 
      FROM Table 
      WHERE TYPE=t.TYPE 
      FOR XML PATH(''))tl(txtlist) 

希望這有助於:)

記住,你需要選擇這個作爲你的SP什麼的,然後綁定,要在報表上的文本框中。祝你好運!

0

在2005年的交叉應用看起來像一個很好的解決方案(沒有使用它自己)。我通常通過創建一個通過循環遊標來連接值的UDF來解決這個問題。

0

的問題應該是 「如何連接行」 http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html

CROSS APPLY作品 或FOR XML是很好的選擇VS光標

SELECT 
CustomerID, 
SalesOrderIDs = REPLACE( 
    ( 
     SELECT 
      SalesOrderID AS [data()] 
     FROM 
      Sales.SalesOrderHeader soh 
     WHERE 
      soh.CustomerID = c.CustomerID 
     ORDER BY 
      SalesOrderID 
     FOR XML PATH ('') 
    ), ' ', ',') 

FROM Sales.CustomerÇ ORDER BY 客戶ID

您也可以使用數字/計數表