最近使用arcplan做报表,遇到不同日期粒度下展示数据的需求,利用sql直接从数据库中查询更为简便,且复用性强,记录下。年粒度情况:展示当年前推5年的数据。
- t.d_day>= add_months(to_date("2012"||"0101", "yyyymmdd"),-60)
- and t.d_day<= last_day(to_date("2012"||"1201", "yyyymmdd"))
半年粒度情况:展示当前半年前推12个数据点。
- d_day>=add_months(to_date(substr("2011H2", 1, 4)||decode(substr("2011H2", 6, 6),1,"0101",2,"0701"), "yyyymmdd") ,-72)
- and t3.d_day<=to_date(substr("2011H2", 1, 4)||decode(substr("2011H2", 6, 6),1,"0630",2,"1231"), "yyyymmdd")
季粒度情况:展示当前季度前推12个数据点。
- t.d_day>=add_months(to_date(substr("2012Q1", 1, 4)||decode(substr("2012Q1", 6, 6),1,"0101",2,"0401",3,"0701",4,"1001"), "yyyymmdd") ,-36)
- and t.d_day<=to_date(substr("2012Q1", 1, 4)||decode(substr("2012Q1", 6, 6),1,"0101",2,"0401",3,"0701",4,"1001"), "yyyymmdd")
月粒度情况:展示当前年所在12个月的数据,不足12个月前推。
- t.d_day<=last_day(to_date("201204
- ", "yyyymm")) and t.d_day>add_months(last_day(to_date("201204", "yyyymm")),-12)
旬粒度情况:展示当年季度前推12个点的数据。
- t.d_day>= to_date(to_char(add_months(to_date(substr("201201X3", 1, 6), "yyyymm"), -ceil(11 / 3) ), "YYYYMM")||decode( to_char(
- case when to_number(substr("201201X3", 8, 1)) - mod(11, 3) > 0 THEN to_number(substr("201201X3", 8, 1)) - mod(11, 3)
- else to_number(substr("201201X3", 8, 1)) - mod(11, 3) + 3 END),1,"01",2,"11",3,"21"),"yyyymmdd")
- and t.d_day<= decode(substr("201201X3", 8, 8),1,to_date(substr("201201X3", 1, 6)||"10","yyyymmdd"),2,to_date(substr("201201X3", 1, 6)||"20","yyyymmdd"),3,last_day(to_date(substr("201201X3", 1, 6)||"01","yyyymmdd")))
周粒度情况:展示当年周前12个数据点。
- t.d_day<= trunc(to_date(substr("2011W53", 1, 4) || "01" || "01", "yyyymmdd"), "IW") + 7 * to_number(substr("2011W53", 6, 2)) - 1
- and t.d_day> trunc(to_date(substr("2011W53", 1, 4) || "01" || "01", "yyyymmdd"), "IW") + 7 * to_number(substr("2011W53", 6, 2)) - 1 - 12 * 7
日粒度情况:展示当前月30天,不足30天前推30天。
- t.d_day<=to_date("20120326
- ", "yyyymmdd") and t.d_day>(to_date("20120326", "yyyymmdd")-30)
Oracle返回星期几的函数oracle--rollup 和cube分组累计求和相关资讯 Oracle约束
- Oracle约束的分类 (03/17/2015 19:28:41)
- Oracle约束Constraint对于CBO优化 (05/05/2014 19:49:38)
- Oracle数据完整性约束:主键、外键 (10/27/2013 16:56:40)
| - Oracle外键约束(Foreign Key)的 (12/06/2014 14:41:09)
- Oracle数据库中由于没有做任何约束 (04/01/2014 17:27:56)
- Oracle数据库的字段约束创建和维护 (10/02/2013 19:31:45)
|
本文评论 查看全部评论 (0)