如何使报表自动化,因为SSRS必须执行带有开始日期和结束日期的存储过程。报告必须运行的方式是:-1月1日至1月15日(开始日期1月1日和结束日期DateAdd函数添加15天)第二次运行:-1月1日至1月31日(如何动态编程结束日期)第3次运行:-1月1日至2月15日第4次运行:-1月1日至2月28日/29日至3月31日,季度发生变化,因此必须运行:- kth run:- 4月1日至4月15日,等等,直到7月第四季度发生变化,kth run:- 7月1日至7月15日等,直到第二季度再发生变化。
任何想法都将受到极大的赞赏。
发布于 2016-01-19 20:54:57
最后,我通过创建一个新的存储过程找到了一种方法,该存储过程将在SSRS中每天运行。此存储过程将提供其他存储过程“spCalculateSomething”根据季度条件工作所需的输入参数的值:
CREATE PROCEDURE automated
AS
BEGIN
Declare @startDate1 DateTime;
Declare @endDate1 DateTime;
Declare @month int;
set @endDate1=GETDATE();
set @month= DATEPART(mm,Getdate());
if(@month=1 or @month=2 or @month=3)
begin
set @startDate1= '01/01/' + CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate())) --'01/01/2016'
set @endDate1='03/31/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
end
else if (@month=4 or @month=5 or @month=6)
begin
set @startDate1='04/01/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
set @endDate1='06/30/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
end
else if (@month=7 or @month=8 or @month=9)
begin
set @startDate1='07/01/' + CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
set @endDate1='09/30/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
end
else if (@month=10 or @month=11 or @month=12)
begin
set @startDate1='10/01/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
set @endDate1='12/31/'+ CONVERT(VARCHAR(4), DATEPART(yy, getUTCDate()))
end
EXEC Poin.[dbo].[spCalculateSomething]
@startDate = @startDate1,
@endDate = @endDate1
END这将适用于上述将结束日期延长到15天的问题,因为即使你在第一季度运行,比如说2月15日,3月31日的endDate也不会受到影响,因为正在进行处理的主表中的记录将一直持续到2月15日。因此,这对我来说是有效的,我每天运行一个季度,根据运行的月份。
https://stackoverflow.com/questions/34884417
复制相似问题