0

日付範囲を 1 年の四半期に分割する方法を教えてください。たとえば、2012 年 1 月 1 日から 2013 年 10 月 31 日までの日付範囲では、8 つの四半期すべての結果セットが返されます。結果は次の形式である必要があります。SQL サーバーを使用しています。 2008年:

Quarter Month start Month end

1   Jan-12  Mar-12
2   Apr-12  Jun-12
3   Jul-12  Sep-12
4   Oct-12  Dec-12
1   Jan-13  Mar-13
2   Apr-13  Jun-13
3   Jul-13  Sep-13
4   Oct-13  Oct-13
4

2 に答える 2

0

を見て、そのように分割する必要がありますDATEPART(QUARTER,date)。これに似たもの:

select datepart(year, dateTarget) as theYear, num as theQuarter, min(dateTarget) as startDate, max(dateTarget) as endDate
from numbers
join dates on datepart(quarter, dateper) = num
where num between 1 and 4
group by datepart(year, dateTarget),num

datesテーブルはあなたが見ているテーブルでありnumbers、まあ、数字のテーブルです(私が持っているだけでかなり便利だと思うものです)。

于 2013-03-14T04:24:48.317 に答える
-1

これにより、12 四半期の四半期開始日が得られます。

with calendar as (
  select 
    --DATEFROMPARTS(year(getdate()),1,1) as [start], 
    convert(datetime, convert(char(4), year(getdate()))+'0101') as [start], 
    qtrsBack = 1
  union all
  select  
    dateadd(mm,-3,[start]), 
    qtrsBack+1
  from calendar
  where qtrsback < 12
)
select * from calendar

生産:

start      qtrsBack
---------- -----------
2013-01-01 1
2012-10-01 2
2012-07-01 3
2012-04-01 4
2012-01-01 5
2011-10-01 6
2011-07-01 7
2011-04-01 8
2011-01-01 9
2010-10-01 10
2010-07-01 11
2010-04-01 12
于 2013-03-14T04:26:48.043 に答える