2016-10-24 9 views
0

ビジネス要件は、前回の営業日から月次日付のレポートを持つことです。どのように達成するのですか?SSRS月間の月日付前営業日から始まる式

月ヶ月以上の場合は - 私の式は次のとおりです。

前営業日の場合
=dateadd("m",-3,Today) 

- 私の式は次のとおりです。

=DateAdd(DateInterval.Day 
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3 
    ,DatePart(DateInterval.WeekDay, Today()) = 1, -2 
    ,True, -1) 
, Today()) 

私は1つの式にこれらを組み合わせることができますどのようヶ月以上の月今日の日付ではなく、前の営業日から開始されますか?

おかげで、あなたが開始営業日式で、あなたの前営業日の表現を使用することができます

答えて

1

:外DATEADD機能が営業日でない日を生産し、可能性が

=dateadd("m",-3, 
DateAdd(DateInterval.Day 
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3 
    ,DatePart(DateInterval.WeekDay, Today()) = 1, -2 
    ,True, -1) 
, Today()) 
) 

クエリがしますその日付の行を返します。データソースが非営業日の日付と一致しない場合、問題は発生しません。問題が発生するのは、非営業日であり、報告したくない場合です。

わかりやすくするため、私はThreeMonthsPreviousDayというHiddenパラメータ(パラメータプロパティのHiddenプロパティラジオコントロールを確認)を作成し、Date/Timeデータ型に設定し、Default Valuesプロパティで以下の式を使用します。

=DateAdd(DateInterval.Day, 
    Switch(
    DatePart(DateInterval.WeekDay, Parameters!ThreeMonthsPreviousDay.Value) = 2, -3, 
    DatePart(DateInterval.WeekDay, Parameters!ThreeMonthsPreviousDay.Value) = 1, -2, 
    True, 0), 
Parameters!ThreeMonthsPreviousDay.Value) 

このことができます場合は、私に教えてください:

=DateAdd(DateInterval.Month,-3, 
DateAdd(DateInterval.Day 
, Switch(DatePart(DateInterval.WeekDay, Today()) = 2, -3 
    ,DatePart(DateInterval.WeekDay, Today()) = 1, -2 
    ,True, -1) 
, Today()) 
) 

今、あなたはとても使い3ヶ月前営業日の前営業日を取得することができます。

関連する問題