【问题标题】:SSRS Report Builder Aging BucketsSSRS 报表生成器老化存储桶
【发布时间】:2013-09-11 20:41:22
【问题描述】:

我正在尝试按销售人员为客户创建账龄报告。我有客户组,然后是该组中的所有客户。我正在尝试计算 90 的老化桶的到期金额。

我的 SQL 视图将表中账单的年龄计算为 OverDueDays,将账单总额计算为 AmountDC

我为

=IIF(Fields!OverDueDays.Value<30 , Sum(Fields!AmountDC.Value),0)

关于我做错了什么有什么想法吗?

【问题讨论】:

    标签: sql reporting-services report reportbuilder


    【解决方案1】:

    我有一段时间没有使用 Reporting Services,因此语法可能不是 100% 正确。基本上,您想切换 SUM 和 IIF 的顺序。尝试类似:

    =SUM(IIF(Fields!OverDueDays.Value < 30, Fields!AmountDC.Value, 0))
    

    奖励:如果您想计算存储桶中的客户数量:

    =SUM(IIF(Fields!OverDueDays.Value < 30, 1, 0))
    

    【讨论】:

    • 谢谢。您知道如何在 30 和 60 之间进行操作吗?我在 ssrs 报告生成器中看不到比较功能。
    【解决方案2】:

    如果您有多个数据集,请尝试以下表达式:

    =IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), Now())<=0, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
    =IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=1 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=30, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
    =IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=31 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=60, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
    =IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=61 and DateDiff("d", First(Fields!OrderDate.Value, "Invoice"),Now())<=90, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
    =IIF(DateDiff("d", First(Fields!OrderDate.Value, "Invoice"), now())>=91, RunningValue(Fields!LineAmount.Value, Sum, "Invoice"), 0)
    

    【讨论】:

      猜你喜欢
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      相关资源
      最近更新 更多