我不是那么强大的日期转换。由于时间戳,我确信我正在丢失记录。我需要在此查询中转换我的日期,以便我可以得到一个滚动的季度和日期总和。任何帮助将非常感谢,并提前感谢。
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
我注意到你从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日的年初至今,您将在2014年寻找所有电话。
所以对于MTD你的WHERE子句看起来像......
where
month(datefield) = month(getdate())
and year(datefield) = year(getdate())
对于QTD你的WHERE子句看起来像......
where
datename(QUARTER,datefield) = datename(QUARTER,getdate()
and year(datefield) = year(getdate())
最后对于YTD你的WHERE子句看起来像......
where
year(datefield) = year(getdate())
我希望有所帮助。