SQL:使用Microsoft Report Builder获取同一天两个日期之间的小时数



我有一个表EMPLOYETIMES,其中记录了时间,并设置了到达(key为100)和离开(key为101)的键。

我添加了计算字段,一个带有ARRIVAL,一个带有DEPARTURE,在这些字段中我有以下表达式:

到来
= IIF (Fields!KEY_MODE.Value=100,Fields!EMPLOYETIMES.Value, nothing)

离开

= IIF (Fields!KEY_MODE.Value=101,Fields!EMPLOYETIMES.Value, nothing)

我也试过这样使用SWITCH:

到来
= SWITCH (Fields!KEY_MODE.Value=100,Fields!EMPLOYETIMES.Value)

离开

= SWITCH (Fields!KEY_MODE.Value=101,Fields!EMPLOYETIMES.Value)

我从这些字段得到的结果是这样的:

18.01.2021 07:14

18.01.2021 17:23

等等

然后我在表格中添加了一个表达式,我想在其中获得ARRIVAL &像这样离开:

= DateDiff(DateInterval.Hour,Fields!ARRIVAL.Value,Fields!DEPARTUE.Value)

但结果不是我所期望的,我得到的数字如下:

-17707375

17707385

等等

我该怎么做才能使这些计算正确?

这个表达式

= DateDiff(DateInterval.Hour,Fields!ARRIVAL.Value,Fields!DEPARTUE.Value)

为每行计算,并且没有行同时填充了ARRIVAL和DEPARTURE。您需要将它们聚合在一起。也许使用MAX(),让您的SQL查询计算它们。

最新更新