首页 > 解决方案 > 日期差异的 SSRS 表达式

问题描述

我有这个表达:

=COUNT(Fields!RecId.Value) - 
IIF(Fields!Status.Value="Assigned", 
    DATEDIFF("d", Fields!CreatedDateTime.Value,Fields!ResolvedDateTime.Value), 
    DATEDIFF("d", Fields!CreatedDateTime.Value,Fields!AssignedDateTime.Value)) 
- IIF(Weekday(Parameters!StartDate.Value, 1) = 1, 1, 0)
- IIF(Weekday(Parameters!StartDate.Value, 1) = 7, 1, 0)
- IIF(Weekday(Parameters!EndDate.Value, 1) = 1, 1, 0)
- IIF(Weekday(Parameters!EndDate.Value, 1) = 7, 1, 0)

如果日期超过 1 天,我希望能够返回的是 RecID 值减去日期差。

标签: ssrs-2012

解决方案


从评论中,您似乎想要记录数减去创建日期之间的工作日的记录数,如果状态为“已分配”,则为已解决日期,否则为已分配日期。

=COUNT(Fields!RecId.Value) - 
SUM(
    IIF(Fields!Status.Value = "Assigned", 
        IIF(DATEDIFF("d", Fields!CreatedDateTime.Value, Fields!ResolvedDateTime.Value)
        - (DateDiff(DateInterval.WeekOfYear, Fields!CreatedDateTime.Value, Fields!ResolvedDateTime.Value)*2)
        - (IIF(WEEKDAY(Fields!CreatedDateTime.Value) = 7, 1, 0)
        - (IIF(WEEKDAY(Fields!ResolvedDateTime.Value) = 6, 1, 0)) 
        - 1) > 1, 0, 1)
        , 
        IIF(DATEDIFF("d", Fields!CreatedDateTime.Value, Fields!AssignedDateTime.Value) > 1, 0, 1)
        - (DateDiff(DateInterval.WeekOfYear, Fields!CreatedDateTime.Value, Fields!AssignedDateTime.Value) * 2)
        - (IIF(WEEKDAY(Fields!CreatedDateTime.Value) = 7, 1, 0)
        - (IIF(WEEKDAY(Fields!AssignedDateTime.Value) = 6, 1, 0)) 
        - 1) > 1, 0, 1)
    )

推荐阅读