我有一个使用多个数据集的SSRS报告,我们称它们为D1和D2。
D2是具有一个参数的sp。目标是将值从D1的单个列传递到D2参数。
一个用户定义的拆分功能使我能够在单个参数中使用多个值来运行SP。例如
exec MyStoredProc '12345,6789,77891,3423498'
我只需要以某种方式将D1中的值连接起来即可。
使用默认值>从查询中获取值> D1>字段1 仅选择第一个值,而不是全部。
有什么建议吗?
答案 0 :(得分:1)
我认为,使用STUFF
在 D1 中创建新字段将使您实现所需的目标:
这里是示例:
CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)
select * from #YourTable
SELECT
[ID],
STUFF((
SELECT ', ' + [Name] + ': ' + Cast([Value] as varchar(10)) FROM #YourTable
FOR XML PATH('')),1,1,''
) AS NameValues
FROM #YourTable Results
GROUP BY ID
go
-- Drop #YourTable
您也可以使用STRING_AGG
,即
SELECT
STRING_AGG ([Value], ', ')
FROM #YourTable Results