2 つのフィールド (開始と終了) でバインドされた日付範囲を持つテーブルを使用しています。
ID | START | END
1 2010-01-01 2010-07-01
2 2011-01-01 2011-07-01
3 2012-01-01 2013-07-01
4 2013-01-01 2013-07-01
5 2009-01-01 2013-07-01
次のようなクエリによって、すべての範囲で表される「月」数の大まかな見積もりを取得できました。
SELECT SUM(DATEDIFF(dy, Start, End) / 30) as Total_Months
FROM TABLE
私がやりたいのは、特定の期間内のすべての範囲で何月 (または日) が表されるかを照会することです。
[2013-01-01 - 2013-07-01]
したがって、上記の例の期間から何月を表すかを尋ねると18
、(行 3、4、および 5 のそれぞれから 6) と表示されます。
これを達成するための最良の方法は何ですか?