我有一个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)
答案 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,然后仅是工资结束日期的年和月部分),第一个和最后一个位置由顺序确定子句,在这种情况下为行号。