C# 如何求SSRS中开始日期和结束日期之差的平均值

C# 如何求SSRS中开始日期和结束日期之差的平均值,c#,sql-server,reporting-services,C#,Sql Server,Reporting Services,在尝试使用reporting services时,我尝试将计算包括在内。我试图找到的计算是每个记录的开始日期和结束日期之间差值的平均值 我正在SSRS中尝试这段代码: =CInt(DateDiff(DateInterval.Day, CDate(First(Fields!StartDate.Value, "DataSet1")), CDate(First(Fields!EndDate.Value, "DataSet1")))) / COUNTDISTINCT(DataSet1.Fields!Fo

在尝试使用reporting services时,我尝试将计算包括在内。我试图找到的计算是每个记录的开始日期和结束日期之间差值的平均值

我正在SSRS中尝试这段代码:

=CInt(DateDiff(DateInterval.Day, CDate(First(Fields!StartDate.Value, "DataSet1")), CDate(First(Fields!EndDate.Value, "DataSet1")))) / COUNTDISTINCT(DataSet1.Fields!Forename.Value)
但这是错误的

文本框“Textbox31”的值表达式使用不带作用域的聚合表达式。除非报表仅包含一个数据集,否则数据区域之外使用的所有聚合都需要一个作用域


在sql select语句输入中: DATEDIFF(d,StartDate,EndDate)作为daysdiff

然后在报表设计器中(在表中添加总计或作为矩阵中的列)使用此表达式


=Avg(Fields!daysdiff.Value)

这样做似乎是在文本框而不是表格中进行的

由于文本框没有自己的dataset属性,因此需要在表达式中指定dataset。除了伯爵外,所有的都在你手上

=DateDiff(DateInterval.Day, CDate(First(Fields!StartDate.Value, "DataSet1")), CDate(First(Fields!EndDate.Value, "DataSet1"))) / COUNTDISTINCT(DataSet1.Fields!Forename.Value, "DataSet1")

最好是在查询本身中进行,而不是在报表的布局中。您仍然需要在表达式中指定数据集,因为OP似乎使用自由格式的文本框,而不是在表中<代码>范围是必需的