简体   繁体   中英

adding date columns in SSRS Report

I have created one SSRS report.

In the report I am providing one parameter named startDate . From the startDate I have to display 10 columns like week of dd-mon-yy .

First column contains date of Monday in the week which the start date lies. then the upcoming 10 Mondays are used.

Example is shown in the image. How can I achieve this in SSRS reports. I need query and column value.

在此处输入图片说明

To get date of Monday in the week which the start date lies along with the dates of next 10 mondays you can write a query as:

DECLARE @input date

SET @input = '12/29/2013'

SELECT 'Week of '+
        REPLACE(CONVERT(VARCHAR(11), 
        DATEADD(wk, DATEDIFF(wk,0,@input), T.week*7)
        , 106), ' ', '-')
FROM 
(VALUES (-1),(0),(1),(2),(3),(4),(5),(6),(7),(8))AS T(week) 

Demo

This should be your column name alias for current week

select 'Week of '+ CONVERT(VARCHAR(11),dateadd(week, datediff(week, 0, getdate()), 0),106);

then alias for next weeks

select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 1,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 2,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 3,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 4,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 5,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 6,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 7,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 8,dateadd(week, datediff(week, 0, getdate()), 0)),106);
select  'Week of '+ CONVERT(VARCHAR(11),dateadd(week, 9,dateadd(week, datediff(week, 0, getdate()), 0)),106);

You can use this expression to get Monday in the week which the start date lies for first week:

=Dateadd(DateInterval.Day, 
        (0 * 7) + 1 - DatePart(DateInterval.Weekday, Parameters!startDate.Value, FirstDayOfWeek.Monday), 
        Parameters!startDate.Value)

For second week:

=Dateadd(DateInterval.Day, 
        (1 * 7) + 1 - DatePart(DateInterval.Weekday, Parameters!startDate.Value, FirstDayOfWeek.Monday), 
        Parameters!startDate.Value)

And so on.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM