在尝试使用报表服务时,我试图进行计算。我要查找的计算是每条记录的开始日期和结束日期之间的差的平均值。
我正在SSRS中尝试这段代码:
=CInt(DateDiff(DateInterval.Day, CDate(First(Fields!StartDate.Value, "DataSet1")), CDate(First(Fields!EndDate.Value, "DataSet1")))) / COUNTDISTINCT(DataSet1.Fields!Forename.Value)
但是这出了错误
“ Textbox31”文本框的Value表达式使用不带范围的聚合表达式。除非报告中仅包含一个数据集,否则在数据区域外使用的所有聚合都需要一个范围。
答案 0 :(得分:1)
在您的sql select语句中输入: DATEDIFF(d,StartDate,EndDate)AS daysdiff
然后在报表设计器中(将总计添加到表中或作为矩阵中的列)使用此表达式
= Avg(Fields!daysdiff.Value)
答案 1 :(得分:1)
似乎您是在文本框中而不是表格中完成此操作。
由于文本框没有它自己的数据集属性,因此需要在表达式中指定数据集。除了COUNT以外,您都拥有所有其他东西。
=DateDiff(DateInterval.Day, CDate(First(Fields!StartDate.Value, "DataSet1")), CDate(First(Fields!EndDate.Value, "DataSet1"))) / COUNTDISTINCT(DataSet1.Fields!Forename.Value, "DataSet1")