SQL Server报告服务
问题描述:
如何在文本框中显示特定字段的所有值? 即。例如。当你运行SP时,你会得到3排。我想在文本框中显示(eg.empname) ,每个值用逗号分隔。 (ram,john,sita)。SQL Server报告服务
答
我前几天有过这个问题。如果您正在使用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什么的,然后绑定,要在报表上的文本框中。祝你好运!
答
在2005年的交叉应用看起来像一个很好的解决方案(没有使用它自己)。我通常通过创建一个通过循环游标来连接值的UDF来解决这个问题。
答
的问题应该是 “如何连接行” 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
您也可以使用数字/计数表
把标题中的实际问题(而不是仅仅是sql报告服务)可能会导致更多的响应。 – ahockley 2008-11-18 21:18:40