月単位で実行されるYTDレポートがあります。私は今月の計算を行うことにより、各月のMTDの動きを計算したい+ 1マイナスMonth0 = MTDYTD番号から計算されるSQL - MTD番号
データとしてごとに以下の1つの表の
Month | Account | YTD amount
Jan | AB123 | 100
Feb | AB123 | 200
Mar | AB123 | 350
私は私が必要になり、多くのアカウントを持っています以下のようにMTDを実行します。
Month | Account | MTD Amount
Jan | AB123 | 100
Feb | AB123 | 100
Mar | AB123 | 150
私は同じテーブル内の別の行を検索できる自己結合を行うことができます。しかし、あなたが3ヶ月以上いる場合、私はあなたがこれを何回もやることができないのです。 1月と2月は、まっすぐに見える。結果
Month | Account | FebYTD | JanYTD | MTD
Feb | AB123 | 200 | 100 | 100
以下
SELECT A.[Month]
,A.[Account]
,A.[YTD] FebYTD
,B.[YTD] JanYTD
,A.[YTD] - B.[YTD] MTD
FROM
(
SELECT [Month]
,[Account]
,[YTD]
FROM [PWC_2017].[dbo].[MTD test]
where [Month] = 'Feb'
) A
join
(
SELECT [Month]
,[Account]
,[YTD]
FROM [PWC_2017].[dbo].[MTD test]
Where [Month] = 'Jan'
) B
on A.[Account] = B.[Account]
私は毎月実行できる1つのクエリを実行したいと思います。たとえば、9月が来ると、9行のMTDが表示されます。 Jan-Sep。基本的には、現時点でテーブル内のすべての月に実行されます。ありがとう。
は月が本当に文字列として保存されている次のクエリを試みることができますか? –
@ P.Salmon私は自分自身で月の列を手動で入力します。あなたはそれについての提案があれば、私はそれを日付価値にすることができます。 – gemmo