2014-02-25 2 views
0

나는 날짜 전환을하는 데 그렇게 강하지가 않다. 나는 타임 스탬프 때문에 기록을 잃어 버리고 있다고 확신한다. 이 쿼리에서 내 날짜를 변환하여 날짜를 합계로 계산할 수 있도록해야합니다. 어떤 도움을 주셔서 감사 드리며 미리 감사드립니다.날짜 변경하기

SELECT 
    a.UserID_Caller ,a.csCallType,timewait,a.convotime,datename(quarter,timewait)as qrt,datename(year,timewait)as yr,datename(month,timewait)as mnth,datename(day,timewait)as dy 
     --sum(case when datename(year,timewait) = (datename(year,getdate()-1)) AND (datename(Quarter,timewait))=(datename(Quarter,getdate()-1)) and (datename(day,timewait))<>(datename(day,getdate()))then (a.convotime)/60 else 0 end) as [MTD] 
FROM satVRS.dbo.rptNECACallHistory as a 
WHERE 
     a.IsReport = 1 
    -AND (datename(year,timewait))=(datename(year,getdate()-1)) AND (datename(quarter,timewait))=(datename(quarter,getdate()-1)) and (datename(day,timewait))<>(datename(day,getdate())) 
    and month(timewait)  
    AND a.convotime > 0 
    AND a.NECA_isReport = 1   
    AND a.Video in ('SV') 

GROUP BY a.UserID_Caller ,a.csCallType,timewait,a.convotime 
order by timewait,a.UserID_Caller 
+0

분기별로 롤링한다는 의미를 설명하기 위해 몇 가지 샘플 데이터를 제공 할 수 있습니까? –

+0

다음은 몇 가지 샘플 데이터입니다. 매일 총계, MTD, QTD 및 YTD를 얻기 위해 컨 볼otime을 합산합니다. – user3027644

답변

0

난 당신이 찾고있는 때 보통 ... 을 MTD, QTD으로 통화 및 YTD

난 당신이 GETDATE()에서 1을 뺀 것으로 나타났습니다의 목록을 조회하고자한다고 가정 MTD, QTD 또는 YTD는 현재 월별 또는 연도와 관련됩니다. 모든 경우에 현재 연도가 될 것입니다. 예를 들어 2014 년 1 월 1 일에 MTD를 찾고 있다면 2014 년 1/1에 대한 호출 만 포함됩니다. 2014 년 3 월 1 일에 QTD를 찾고 있다면 1/1 - 3/2014 년 1 월에 볼 수 있듯이 현재 날짜보다 3 개월 앞당겨지지 않습니다. 당신이 2014년 10월 1일에 대한 YTD 찾고 있던 마지막 경우는 2014 년

그래서 MTD의 해에 모든 호출을 찾고있을 것이다 당신의 절은 QTD에 대한

where 
    month(datefield) = month(getdate()) 
    and year(datefield) = year(getdate()) 

... 같을 것이다 WHERE 당신의 WHERE 절은 YTD을 위해 ...처럼 마지막

where 
    datename(QUARTER,datefield) = datename(QUARTER,getdate() 
    and year(datefield) = year(getdate()) 

과를 보일 것이다 당신의 절은 다음과 같은 형태가 될 것이다 WHERE ...

where 
    year(datefield) = year(getdate()) 

도움이 되었기를 바랍니다.