【问题标题】:Why ssrs shows different number of rows than SSMS?为什么 ssrs 显示的行数与 SSMS 不同?
【发布时间】:2017-03-02 21:02:20
【问题描述】:

我有带有参数@IsMatch 的SP,它检查是否

ChildPolicyNumberRater <> ChildPolicyNumberIMS

还有参数@ChildPolicyNumber,允许用户使用通配符参数。

如果我在 SSMS 中使用参数 'No Match' 运行 SP,它会为我提供正确的数据 ChildPolicyNumberRater NULLS 以及与 ChildPolicyNumberIMS 不匹配的数据:

但是如果我在 SSRS 中运行它,它只会显示ChildPolicyNumber NULLS 的记录。

我确信我的 WHERE 子句中的某些内容使 SSRS 显示数据与 SSMS 不同。但我不明白为什么!

 ALTER PROCEDURE MyProcedure 
            @DateFrom datetime = '2017-01-30'
            @DateTo datetime = '2017-03-05'
            @lineGuid  varchar(8000) = NULL, 
            @IsMatch varchar(50),
            @ChildPolicyNumber varchar(50)

    AS
    DECLARE @TempData
    INSERT INTO @TempData
    SELECT ...
    FROM...
    WHERE 

    SELECT 
            ChildPolicyNumberIMS
            ,ChildPolicyNumberRater
            ,case when ChildPolicyNumberRater <> ChildPolicyNumberIMS or  ChildPolicyNumberRater is null then 1 else 0 end as status
            ,MAX([InvoiceDate]) as InvoiceDate
            ,[CompanyGUID]
    WHERE 
              (

            ChildPolicyNumberRater like '%'+ @ChildPolicyNumber +'%'
            or ChildPolicyNumberRater is null
            or @ChildPolicyNumber   is null
            )
        and (
                    (@IsMatch = 'No Match'
                        and ChildPolicyNumberRater<>ChildPolicyNumberIMS or ChildPolicyNumberRater is null)

                or(@IsMatch = 'Match' and ChildPolicyNumberRater=ChildPolicyNumberIMS)

            ) 

【问题讨论】:

  • (@IsMatch = 'No Match' and ChildPolicyNumberRater&lt;&gt;ChildPolicyNumberIMS or ChildPolicyNumberRater is null) 看起来像是 andor 的奇怪组合。 ( ( @IsMatch = 'No Match' and ChildPolicyNumberRater&lt;&gt;ChildPolicyNumberIMS ) or ChildPolicyNumberRater is null) 是你想要的吗?这就是由于运算符优先级而得到的结果。
  • 哦!!!我很困惑。我想要如果它是match,那么只匹配没有nulls 的记录,但是如果no match - 然后返回nulls 并且也没有匹配的记录(在ChildPolicyNumberRater 列中)
  • 我认为你只需要 - (@ChildPolicyNumber IS NULL OR ChildPolicyNumberRater LIKE '%'+@ChildPolicyNumber+'%')
  • MatchNo Match参数呢?
  • 在 SSRS 屏幕截图中,下拉菜单显示“不匹配”而不是“不匹配”。您确定要发送 No Match 吗?

标签: sql-server tsql reporting-services parameters


【解决方案1】:

在 SSRS 屏幕截图中,下拉菜单显示“不匹配”而不是“不匹配”。您确定要发送 No Match 吗?

【讨论】:

    猜你喜欢
    • 2022-01-19
    • 2022-08-18
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 2019-03-19
    • 2011-02-14
    • 2021-08-30
    • 1970-01-01
    相关资源
    最近更新 更多