2017-09-29 1 views
0

別のパラメータリスト(年)に基づいて週リスト(param):w1,W2,...を作成する方法はありますか?最初のリストは年、2番目は選択した年に対応する週です。SSRSリストの週数

たとえば、最初のリストから2017を選択した場合、2番目のリスト(週)はラベルW1、W2で更新する必要があります。&値は、指定した年の対応する日付です。

+0

何をしましたか?あなたの週の開始日は何ですか?月曜? – MiguelH

+0

あなたの年と週を含むデータのサンプルを投稿することができます# –

+0

MiguelH、私はiso週を取る必要があり、週の始まりは月曜日です –

答えて

0

はこれを試してみてください必要がある場合は、外側のループで年を含めることができます...あなたは、これまで

declare @year as int  
declare @startdate as datetime 
declare @wk as int 
declare @endwk as datetime 
declare @tbl as table (
    tbl_wk int, 
    tbl_Monday datetime 
) 
set @endwk= (SELECT DATEPART(wk, GETDATE())+1) 
set @wk = 1 
set @year = '2017' 
set @startdate = CAST (cast(@year as varchar(4))+ '/01/01 00:00:00' as datetime) 
while (@wk < @endwk) 
    begin 
    insert into @tbl (tbl_wk,tbl_Monday) 
    select @wk,DATEADD(wk, DATEDIFF(wk,0,@startdate), 0) as monday--MondayOfCurrentWeek, 
    set @wk = @wk+1 
    set @startdate = @startdate+7 
end 

select * from @tbl 
+0

それは働いています、ありがとうございます。 –

0

SQLで表を作成してレポートでこれを参照することもできます。 注:あなたが一年以上からの日付

declare @year as int  
declare @startdate as datetime 
declare @wk as int 
declare @tbl as table (
    tbl_wk int, 
    tbl_Monday datetime 
) 

set @wk = 1 
set @year = '2017' 
set @startdate = CAST (cast(@year as varchar(4))+ '/01/01 00:00:00' as datetime) 
while (@wk < 53) 
    begin 
    insert into @tbl (tbl_wk,tbl_Monday) 
    select @wk,DATEADD(wk, DATEDIFF(wk,0,@startdate), 0) as monday--MondayOfCurrentWeek, 
    set @wk = @wk+1 
    set @startdate = @startdate+7 
end 

select * from @tbl 
+0

Miguel、私はそれが私のためにうまくいくと思います。今年の初めから今週までの週のみを表示したい場合、sqlで条件を追加することは可能ですか、ssrsでHide/displayで再生できますか?ありがとうございます –

関連する問題