Sql SSRS网络/工作日,使用日期参数

Sql SSRS网络/工作日,使用日期参数,sql,sql-server,reporting-services,ssrs-2008-r2,Sql,Sql Server,Reporting Services,Ssrs 2008 R2,im使用以下功能获取提交日期和运行报告日期之间的网络天数; 同时,我在我的SSRS中使用一个日期参数来获取这些日期之间的票据,我的问题是我需要网络天数的结束日期作为我的日期参数的结束日期,我不知道如何以某种方式将它们链接在一起,特别是这个函数在我的SQL上,日期参数在我的SSRS上 alter function [dbo].[days_diff]( @date1 datetime

im使用以下功能获取提交日期和运行报告日期之间的网络天数; 同时,我在我的SSRS中使用一个日期参数来获取这些日期之间的票据,我的问题是我需要网络天数的结束日期作为我的日期参数的结束日期,我不知道如何以某种方式将它们链接在一起,特别是这个函数在我的SQL上,日期参数在我的SSRS上

alter function [dbo].[days_diff](
                                 @date1 datetime
                                ,@date2 datetime
                                )
returns int
as
    begin
        declare @i int;
        declare @count int;
        declare @diff int;
        set @diff = datediff(d,@date1,@date2);
        set @i = 0;
        set @count = 0;
        while(@i < @diff)
        begin
            select @count = @count + 1
            where datename(dw,dateadd(d,@i,@date1)) not in('Saturday'
                                                          ,'Sunday'
                                                          );
            set @i = @i + 1;
        end;
        return @count;
    end;
alter函数[dbo].[days\u diff](
@日期1日期时间
,@date2 datetime
)
返回整数
作为
开始
声明@i int;
声明@countint;
声明@diff int;
设置@diff=datediff(d、@date1、@date2);
设置@i=0;
设置@count=0;
而(@i<@diff)
开始
选择@count=@count+1
其中datename(dw,dateadd(d,@i,@date1))不在('Saturday'
“星期日”
);
设置@i=@i+1;
结束;
返回@count;
结束;

您可以将报表中的参数值作为未明确声明的变量引用到数据集的SQL查询中

例如,要引用名为
EndDate
的报告参数,可以使用如下SQL脚本:

declare @FilterValue nvarchar(50) = 'Group1'

select ProjectName
      ,SubmissionDate
      ,@ReportDate as ReportDate
      ,dbo.days_diff(SubmissionDate, @ReportDate) as NetworkDays
from ProjectSubmissions
where FilterValue = @FilterValue

当在SSRS数据集中使用时,将查找一个名为
ReportDate
的报告参数以在查询中使用,您可以将其设置为报表设计中需要的任何参数。

有点模糊。也许你可以举一个实际日期和预期结果的例子什么是网络日?@Nick.McDermaid这是一个工作日。我想他们正在引用Excel中可用的同名函数。每天学习新的东西!您是否要求报告将星期六或星期日的任何日期更改为前一个星期五?我的参数称为enddate,那么我应该在上面提到的“选择”中提到这个参数,我是否必须更改您在顶部创建的变量?声明@FilterValue nvarchar(50)='Group1'@MustafaEl Gamal请重新阅读我的答案,如果您不理解所呈现的内容,请阅读SQL和SSR。根据我的回答,“您可以通过引用参数作为未明确声明的变量,将报表中的参数值传递到数据集的SQL查询中。”
@FilterValue
是明确声明的,因此它不会从报表中获取值<另一方面,code>@ReportDate并没有明确声明……很抱歉,我仍在努力理解整件事,但非常感谢