如何在ssrs2008中求和时间列并避免空字段



我有一列时间值,我想对这些值求和,但当一个字段为空时,会显示一个错误#error,我使用了iif(不是(attTime),0,attTime)条件,但这个整数错误,然后我使用了00:00,但它显示为12小时,求和12

我使用的代码

=右("0"和(CInt(左(CDate(Fields!timeAtt.Value.ToString()).ToString("hh:mm"),2)),"DataSet1")+楼层(总和(CInt(右(CDate(Fields!timeAtt.Value.ToString()).ToString("hh:mm"),2)),"DataSet1")/60),2&":"&求和(CInt(右(CDate(Fields!timeAtt.Value.ToString()).ToString("hh:mm"),2)),"DataSet1")Mod 60

所以我想求和字段,避免空字段

使用

iif (isnothing(attTime),"00:00", CDate(Fields!timeAtt.Value.ToString()).ToString("hh:mm"))

在您的表达式

![TimeAtt列][1]

<table>
<tr>
  <td>
    
  </td> 
  <td>
    TimeAtt
  </td> </tr>
  <tr> <td>
    
  </td> <td>
    10:50
  </td> </tr>
 <tr> <td>
    
  </td>  <td>
   11:00
  </td> </tr>
  <tr><td>
    
  </td><td>
    12:12
  </td> </tr>
 <tr> <td>
    
  </td>  <td>
    Null
  </td> </tr>
  <tr><td>total</td><td>#Error</td>
  </tr>
</table>

这就是查询=右("0"和(CInt(Left(iif(isnothing(Fields!timeAtt.Value.ToString()),"00:00",CDate(Fields;timeAtt.Vindow.ToString()。ToString("hh:mm"),2)),"DataSet1")+楼层(总和(CInt(右(CDate(iif(isnothing(Fields!timeAtt.Value.ToString()),"00:00",CDate(Fields!timeAtt.Value.TeString(()).ToString("hh:mm")),2),"DataSet1")/60),2&":"&求和(CInt(右(CDate(iif(is nothing(Fields!timeAtt.Value.ToString()),"00:00",CDate(Fields;timeAtt.Vindow.ToString()).TeString("hh:mm")),2),"DataSet1")Mod 60

如果处理底层查询,这似乎会更简单。这行得通吗?

SELECT ISNULL(hoursAtt,'00:00:00') AS hoursAtt FROM attendanceTable

最新更新