【问题标题】:SSRS Network/Working days, using date parameterSSRS 网络/工作日,使用日期参数
【发布时间】:2017-01-27 10:59:29
【问题描述】:

我使用以下函数获取提交日期和我运行报告之日之间的网络天数; 同时我在我的 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;

【问题讨论】:

  • 有点模糊。也许你可以举一个实际日期和期望结果的例子
  • 什么是网络日?
  • @Nick.McDermaid 今天是工作日。我想他们正在引用 Excel 中可用的同名函数。
  • 每天学习新东西!
  • 您是否要求报告将星期六或星期日的任何日期更改为前一个星期五?

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


【解决方案1】:

您可以通过将参数引用为您未显式声明的变量,将报表中的参数值传递到数据集的 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 的报表参数以在查询中使用,您可以将其设置为报表设计中需要的任何内容。

【讨论】:

  • 好吧,我的参数叫做enddate,所以我应该在上面提到的select中提到这个参数,我是否必须更改您在顶部创建的变量?声明@FilterValue nvarchar(50) = 'Group1'
  • @MustafaEl-Gamal 请重新阅读我的答案,如果您不理解所呈现的内容,请阅读 SQL 和 SSRS。根据我的回答 “您可以通过将参数引用为您未显式声明的变量,将报表中的参数值传递到数据集的 SQL 查询中。” @FilterValue 已显式声明,因此它不会t 从您的报告中获取价值。另一方面,@ReportDate isn't 明确声明...
  • 对不起,我还在努力理解整个事情,但非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多