1

開始月と終了月のレコードを持つテーブルから、月ごとに個別の行を返すクエリを作成しようとしています。EGレコードの開始月が2012年1月、終了月が2012年3月の場合、2012年1月、2012年2月、2012年3月の3行を返します。開始月と終了月の実際のギャップは数年に及ぶ可能性があります。返される必要のある行数は、レコードごとに異なります。実際の目的は、総コストを1か月あたりのコストに分割することです。

何かのようなもの:

記録:

Value  Start Month  End Month
 30     Jan 2012     March 2012

クエリの戻り値

Value  Month
 10    Jan 2012
 10    Feb 2012
 10    March 2012

何時間も探してきました–誰かが私を助けてくれますか!!! よろしくお願いします。

4

1 に答える 1

0

整数のテーブルがある場合は、日付の部分を整数のテーブルに結合して、月の範囲を指定できます。月の説明の表にもう一度参加すると、ラベルが元に戻ります。分割コストを取得するには、その間の行数を計算し、コストを分割する必要があります(直線分割を想定しています)。

    select 
    bb.integer as MonthDesc,
cc.MonthDescription,
aa.MyCost / datediff(mm,mydatefield, mydatefield2)
    datepart(yy, mydatefield)
    from dbo.tblMyTableofFacts aa
    inner join dbo.tblMyTableOfInters bb
    on bb.integer between datepart(mm,mydatefield) and datepart(mm,mydatefield2)

inner join dbo.tblMyTableOfMonths cc
on bb.Integer = cc.MonthNumber
于 2012-12-12T19:43:05.917 に答える