【问题标题】:SSRS evaluate column in fill expressionSSRS 评估填充表达式中的列
【发布时间】:2015-12-08 10:06:50
【问题描述】:

我在SSRS 有一张桌子,按客户编号分组。 我需要评估填充表达式中的同一列。

评估应该是 - 如果两个不同客户的ABTAX 相同且AIMAXO 也相同,则填充红色,否则将列留白。

我尝试了下面的表达式,但它只是将整列填充为红色。

=iif(Fields!ABTAX.Value = Fields!ABTAX.Value and (Fields!AIMAXO.Value = Fields!AIMAXO.Value), "RED","WHITE")

数据:

CustomerNo     ABTAX                AIMAXO
--------------------------------------------
999991       00592235 COF           235000
999992       00592235 COF           235000

【问题讨论】:

  • 您目前只检查这两个值本身,而不是任何其他数据(实际上是if (1=1 and 2=2))。您能与我们分享您的数据集和报告布局吗?
  • 你能编辑底层 SQL 吗?这在 SQL 中比在 SSRS 中更容易计算
  • 是的,我可以编辑 sql,我应该创建一个标志吗?

标签: sql-server reporting-services ssrs-2008 ssrs-2008-r2 ssrs-expression


【解决方案1】:

假设您可以更改底层 SQL,我将创建一个标志来显示重复项。像这样的查询会引发正确的标志*

SELECT 
    A.CustomerNo, 
    ABTAX, 
    AIMAXO, 
    CASE WHEN B.CustomerNo = A.CustomerNo THEN 1 ELSE 0 END AS Duplicate
FROM @Temp A
LEFT JOIN (
    SELECT CustomerNo FROM @Temp
    WHERE ABTAX = (
        SELECT ABTAX
        FROM @Temp
        GROUP BY ABTAX,AIMAXO
        HAVING COUNT(*) > 1)
    AND AIMAXO =(
        SELECT AIMAXO
        FROM @Temp
        GROUP BY ABTAX,AIMAXO
        HAVING COUNT(*) > 1)
ON A.CustomerNo = B.CustomerNo

使用此源数据集

CustomerNo  ABTAX         AIMAXO
999991      00592235 COF  235000
999992      00592235 COF  235000
999993      00592236 COF  235000
999994      00592235 COF  235001

将返回以下带有标志的数据集

CustomerNo  ABTAX         AIMAXO  Duplicate
999991      00592235 COF  235000  1
999992      00592235 COF  235000  1
999993      00592236 COF  235000  0
999994      00592235 COF  235001  0

然后您可以使用此重复标志为单元格适当着色

*(我愿意承认可能有更有效的编码方式)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多