将数据集中的字段用作SSRS 2010中另一个数据集参数的值

时间:2019-08-19 23:19:53

标签: sql-server reporting-services parameters sql-server-data-tools

我有一个使用多个数据集的SSRS报告,我们称它们为D1和D2。

D2是具有一个参数的sp。目标是将值从D1的单个列传递到D2参数。

一个用户定义的拆分功能使我能够在单个参数中使用多个值来运行SP。例如

exec MyStoredProc '12345,6789,77891,3423498'

我只需要以某种方式将D1中的值连接起来即可。

使用默认值>从查询中获取值> D1>字段1 仅选择第一个值,而不是全部。

有什么建议吗?

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