
一般情况下,你的明细数据表都有个日期字段来表明你明细的时间,
数据量比较小可以这样
select sum() from tabname where to_char(时间,'q')=你想查询的季度
如果数据量比较大,建议你根据明细表建立一个快速刷新的物化视图,物化视图是根据季度、星期等等的预先统计数据,到时候你要的数据直接从物化视图中查询即可
DECLARE @month int
set @month=DATEPART(M,CONVERT(varchar(20),GETDATE(),112 ))
select @month as 当前月份,
CASE when @month between 1 and 3 then '第一季度'
when @month between 4 and 6 then '第二季度'
when @month between 7 and 9 then '第三季度'
else '第四季度'
end as 季度
--计算给定日期所在季度的天数
declare @date datetime;
set @date = getdate()
--本季度第一天与下季度第一天所差的天数
select datediff(day,dateadd(quarter,datediff(quarter,0,@date),0),dateadd(quarter,1+datediff(quarter,0,@date),0))
--借助变量简化
select @date = dateadd(quarter,datediff(quarter,0,@date),0) --本季度第一天
select datediff(day,@date,dateadd(quarter,1,@date))
go
算出本季及前一季各自的天数,再减一下,即可。
以上就是关于oracle中查询某一季度数据的sql全部的内容,包括:oracle中查询某一季度数据的sql、Sql server判断某一日期是在第几季度、用sql语句求本季度比上一个季度多多少天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)