SSRS-使用特定的行号

时间:2018-07-31 21:56:51

标签: sql-server ssrs-2012

我有一个SQL查询,其中在月初和月末获取行的编号,以获取每个部门和每个月的雇员人数。为此,我使用工资的结束日期(每周一次)。因此,从本质上讲,我有4个显示员工人数的日期。某些月份有5个日期,因此该月的行数为5,而不是4。

然后,我需要构建一个SSRS报告,以仅显示每个部门每月的第一个员工人数和最后一个员工人数。我有第一个电话号码,因为我正在使用interface WeakenedType extends Weaken<OriginalType, ['foo', 'bar']> { foo?: FooEnum; bar?: BarEnum; }

我现在遇到的问题是获取最后一个雇员数,我需要有条件地选择一个数字,如果存在,则行号必须为5,否则为4。我不确定如何使表达式在SSRS中工作。示例数据如下。

=IIF(Fields!RowNumber.Value = 1, Fields!EMPCOUNT.Value, 0)

1 个答案:

答案 0 :(得分:1)

我会在您的查询中执行此操作,而不是尝试使其直接在SSRS中工作。可能有比这更简单的方法,但这只是基于您现有的查询。

请注意,这是未经测试的,就在我的头上,因此它可能需要进行一些编辑才能生效。

<div class='box'>
  <div class='price-tag'>
    $23.12
  </div>
</div>

您可能需要包括SELECT * INTO #t FROM YOUR_EXISTING_QUERY SELECT DISTINCT PRCo , udDivision , YEAR(PREndDate) AS Yr , MONTH(PREndDate) AS Mnth , FIRST_VALUE(EMPCOUNT) OVER(PARTITION BY PRCo, udDivision, YEAR(PREndDate), MONTH(PREndDate) ORDER BY ROWNUM) AS OpeningEMPCOUNT , LAST_VALUE(EMPCOUNT) OVER(PARTITION BY PRCo, udDivision, YEAR(PREndDate), MONTH(PREndDate) ORDER BY ROWNUM) AS CLosing_EMPCOUNT FROM #t ,但不确定这样做是什么,但希望您能理解。

FIRST_VALUE和LAST_VALUE函数仅获取定义的分区中的第一个/最后一个值(在您的情况下为PRCo,udDivision,然后仅是工资结束日期的年和月部分),第一个和最后一个位置由顺序确定子句,在这种情况下为行号。