ssrs:参数与查找相结合

时间:2015-12-14 16:33:33

标签: sql-server tsql reporting-services report

我遇到了以下问题

我正在运行下面的存储过程。它有一个参数 @choix_de_l_adresse ,作为输入

CREATE PROCEDURE Adresse1 
@choix_de_l_adresse VARCHAR(38)
AS 
BEGIN
    SELECT John_Jack.Siren,
            CASE 
                WHEN John_Jack.Adresse1_Eco IS NULL THEN ''
                WHEN John_Jack.Adresse1_Post IS NULL THEN ''
                WHEN (John_Jack.Adresse1_Eco IS NOT NULL 
                OR John_Jack.Adresse1_Post IS NOT NULL)
                AND @choix_de_l_adresse = 'Adresse Postale' THEN Adresse1_Post
                ELSE Adresse1_Eco
            END AS adresse1
    FROM John_Jack
END 

当我使用管理工作室控制台时,存储过程正常运行。

我在ssrs

中设置了参数

但是,在将存储过程设置为数据集时,我遇到了一些问题:

1)此窗口弹出

enter image description here

我试图在参数值中添加 [@ choix_de_l_adresse @] @choix_de_l_adresse ,但它正在给我这个

enter image description here

2)我试图强行参与,因为我已经在互联网上看到但无济于事

enter image description here

最后,但并非最不重要的是我正在进行lookup组合下面的参数

=Lookup(Fields!Siren.Value,Fields!Siren.Value,Parameters!adresse1.Value,"adresse1")

然而它给了我致命的子弹Report item expressions can only refer to fields within the current datascope [...]

你对这个原因有什么看法吗?

更新:请在下面找到我的数据集查询的截屏

enter image description here

1 个答案:

答案 0 :(得分:0)

我没有找到如何解决我的问题。但是,我找到了一个不错的解决方法。

我没有创建存储过程,而是将部分代码放入ssrs

代码现在就像这样

DECLARE @choix_de_l_adresse VARCHAR(38)
    SELECT John_Jack.Siren,
            CASE 
                WHEN John_Jack.Adresse1_Eco IS NULL THEN ''
                WHEN John_Jack.Adresse1_Post IS NULL THEN ''
                WHEN (John_Jack.Adresse1_Eco IS NOT NULL 
                OR John_Jack.Adresse1_Post IS NOT NULL)
                AND @choix_de_l_adresse = 'Adresse Postale' THEN Adresse1_Post
                ELSE Adresse1_Eco
            END AS adresse1
    FROM John_Jack

然后设置正确的数据集(见下文)

enter image description here

并选择适当的参数(见下文)

enter image description here

一旦完成,一切都在处理