2016-07-13 26 views
-3

は、MS SQLに2014前の年のMTDとYTDクエリ

を使用しています私はMTD、YTD、前の年のMTDと前のYTDでデータを表示する必要がある状況があります。

は、私は(日付入力ごとに)現在の年のためのMTDとYTDのクエリを書いている

例: 1)MTD(現在の年):

DBP.Date DATEADD(MONTH BETWEEN、 DATEDIFF(RefDate @ MONTH、0、)、0)AND @RefDate

2)YTD(現在の年):DATEADD BETWEEN

DBP.Date RefDate @(YEAR、DATEDIFF(YEAR、0、)、0 )と@RefDate

私は前年MTDとYTDのフォーラムで検索しましたが見つかりませんでした。

誰でも前年のMTDとYTDを書くのを助けることができれば非常に役に立ちます。

ありがとうございました。

+2

ショー入力し、結果を期待。 – objectNotFound

+0

ヘルプを求める質問には、*目的の動作*、*特定の問題またはエラー*、および*それを再現するのに必要な最短コード**を質問に含める必要があります**。 **明確な問題文**のない質問は他の読者には役に立たない。参照:[最小限で完全で検証可能なサンプルの作成方法](http://stackoverflow.com/help/mcve) –

+0

この質問は研究努力を示していません。 –

答えて

0

私は、以下のように昨年のMTDとYTDのために自分自身を書くことができました。

LastYear MTD:

DAY(DBP1.Date) <= DAY(@RefDate) 
AND 
MONTH(DBP1.Date) = MONTH(@RefDate) 
AND 
YEAR(DBP1.Date) = YEAR(@RefDate)-1 

LastYear YTD:

YEAR(DBP1.Date) = YEAR(@RefDate)-1 
AND 
((MONTH(DBP1.Date) < MONTH(@RefDate)) 
OR ((MONTH(DBP1.Date) = MONTH(@RefDate)) AND (DAY(DBP1.Date) <=  DAY(@RefDate)))) 

おかげ