我有一个带有EMPLID,checkdate和NumberOfHours(以及其他字段)的数据集OvertimeHours。我需要每个雇员截至checkdate的运行TotalOfHours。我尝试使用“快速测量”选项,但只允许使用一列,而我只有两列。我不希望在应用过滤器时重新计算度量。最终,我要做的是确定每张支票上前6个小时的加班记录,以便他们可以得到OCB类别,并且前6个小时的所有加班都是OTP,并且不必准确(如下面的输出所示)。我只使用Power BI大约一个月,这对我来说是一个非常复杂的公式……
EMPLID CheckDate WkDate NumberOfHours RunningTotal Category
124 1/1/19 12/20/18 5 5 OCB
124 1/1/19 12/21/18 9 14 OTP
125 1/1/19 12/20/18 3 3 OCB
125 1/1/19 12/20/18 2 5 OCB
125 1/1/19 12/22/18 2 7 OTP
124 1/15/19 1/8/19 3 3 OCB
*编辑后添加了WkDate。
编辑: 我已经对查询进行了调整,以便现在有了运行总计和一个顺序计数器:
使用前12条记录,我希望获得以下结果:
如果这是最简单的方法,或者现在有了序列数据,我就可以在PowerBI中使用DAX在此数据集中使用DAX,我也可以这样做。
答案 0 :(得分:0)
我在查询中得到它:
select r.CheckDate,
r.EMPLID,
case
when PayrollRunningOTHours <= 6
then PayrollRunningOTHours
else 6
end as OCBHours,
case
when PayRollRunningOTHours > 6
then PayRollRunningOTHours - 6
end as OTPHours
from #rollingtotal r
inner
join lastone l
on r.CheckDate = l.CheckDate
and r.EMPLID = l.EMPLID
and r.OTCounter = l.lastRec
order by r.emplid,
r.CheckDate,
r.OTCounter