当记录处于活动状态时创建 SSRS 图表,介于两个日期之间



我在尝试弄清楚如何在SSRS图表(2008)中表示某些日期确定的数据时遇到了一些问题

在我的查询中,每个人都有一个开始日期、一个结束日期和一个职位类型 = 永久或临时。 仓位记录在仓位开始日期和结束日期之间处于活动状态。 我已经过滤了我的查询,只包括两个参数日期之间处于活动位置的人。

我希望折线图做的是显示任何给定月份活跃职位的 CountDistinct of PositionId 的人数,其中一条线表示永久,一条线表示临时。

Field names: 
PeopleId
PositionId
PositionStartDate
PositionEndDate
PositionType

参数名为"开始日期"和"结束日期"

我很卡住!

感谢所有帮助,谢谢艾尔斯

我使用 SQL 公用表表达式 (CTE) 生成我需要的时间表,然后根据需要联接或子查询其他表:

;
WITH    MonthsCTE
          AS (
               SELECT
                1 AS MonthID ,
                DATEADD(MONTH, DATEDIFF(month, 0, @StartDate), 0) AS MonthStart ,
                DATEADD(MONTH, DATEDIFF(month, 0, @StartDate) + 1, 0) AS NextMonthStart
               UNION ALL
               SELECT
                MonthId + 1 ,
                DATEADD(MONTH, 1, MonthStart) ,
                DATEADD(MONTH, 1, NextMonthStart)
               FROM
                MonthsCTE
               WHERE
                NextMonthStart < @EndDate
             ),
        PositionTypes
          AS (
               SELECT DISTINCT
                PositionType
               FROM
                PeopleTable
             )
    SELECT
        MonthStart ,
        PositionType ,
        (
          SELECT
            COUNT(*)
          FROM
            PeopleTable
          WHERE
            PeopleTable.PositionType = pType.PositionType
            AND PositionStartDate < MonthsCTE.NextMonthStart
            AND PositionEndDate >= MonthsCTE.MonthStart
        ) AS PersonCount
    FROM
        MonthsCTE
        CROSS JOIN PositionTypes AS PType

您应该能够非常轻松地在 SSRS 图表中使用此查询的结果。

最新更新