2012-12-21 4 views
2

분기에 사용 가능한 월 이름을 표시하고 싶습니다. 1 년에 1,2,3,4 개의 쿼터가있는 것 같습니다. 다음 쿼리가 있습니다. 분기 내 사용 가능한 월 이름 표시

10월

하지만이 쿼리를 수정해야합니다 어떻게 같은 출력을 얻을해야 있도록 :

select datename(month,(DATEADD(QUARTER, DATEDIFF(QUARTER, 0, GETDATE()), 0))) 

출력은

October 
November 
December 

답변

0
declare @quarter datetime 
set @quarter = DATEADD(QUARTER, DATEDIFF(QUARTER, 0, GETDATE()), 0) 

select datename(month, @quarter) 
union all 
select datename(month, (DATEADD(month, 1, @quarter))) 
union all 
select datename(month, (DATEADD(month, 2, @quarter))) 
0

시도
DECLARE @d datetime = Dateadd(mm,0,getdate()) 
-- set @d = Dateadd(mm,-3,getdate()) 

;With Dates 
AS 
(
SELECT DATEADD(qq,DATEDIFF(qq,0,@d),0) AS StartDt,DATEPART(qq,@d) AS Qr 
UNION ALL 
SELECT DATEADD(mm,1,StartDt),DATEPART(qq,DATEADD(mm,1,StartDt+1)-1) 
FROM Dates 
WHERE DATEPART(qq,DATEADD(mm,1,StartDt+1)-1) = DATEPART(qq,@d) 
) 
SELECT 
datename(month,StartDt) Mnth, Qr,StartDt 
FROM Dates 
0
SELECT DATENAME(m,DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)) AS MonthsInQuarter 
UNION ALL 
SELECT DATENAME(m,DATEADD(mm,1,DATEADD(qq,DATEDIFF(qq,0,getdate()),0))) 
UNION ALL 
SELECT DATENAME(m,DATEADD(mm,2,DATEADD(qq,DATEDIFF(qq,0,getdate()),0)))