如何在ssrs 2008中对时间列求和并避免使用空字段

时间:2015-02-22 15:37:30

标签: sql-server reporting-services ssrs-2008

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

我使用的代码

  

=右(“0”& Sum(CInt(左(CDate(Fields!timeAtt.Value.ToString())。ToString(“hh:mm”),2)),“DataSet1”)       + Floor(Sum(CInt(右)(CDate(Fields!timeAtt.Value.ToString())。ToString(“hh:mm”),2)),“DataSet1”)/ 60),2)     &安培; “:”& Sum(CInt(右)(CDate(Fields!timeAtt.Value.ToString())。ToString(“hh:mm”),2)),“DataSet1”)Mod 60

所以请我总结字段并避免空字段

3 个答案:

答案 0 :(得分:0)

使用

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

表达式中的

答案 1 :(得分:0)

![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>
&#13;
&#13;
&#13;

这是查询 =右(&#34; 0&#34;&amp; Sum(CInt(左(iif(isnothing(Fields!timeAtt.Value.ToString()),&#34; 00:00&#34;,CDate(Fields!timeAtt .Value.ToString())。ToString(&#34; hh:mm&#34;)),2)),&#34; DataSet1&#34;)     + Floor(Sum(CInt(右)(CD(iif(isnothing(Fields!timeAtt.Value.ToString()),&#34; 00:00&#34;,CDate(Fields!timeAtt.Value.ToString())。 ToString(&#34; hh:mm&#34;))),2)),&#34; DataSet1&#34;)/ 60),2)   &安培; &#34;:&#34; &安培;总和(CInt(右)(CD(i)(isnothing(Fields!timeAtt.Value.ToString()),&#34; 00:00&#34;,CDate(Fields!timeAtt.Value.ToString())。ToString(& #34; hh:mm&#34;))),2)),&#34; DataSet1&#34;)Mod 60

答案 2 :(得分:0)

如果您处理基础查询,这似乎会更简单。 这样行吗?

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