有一个需求,做一张填报表给业务适用,根据数据的特殊性,做了如下需求:
表中存储的数据是以季度为维度区分,对应数据库表中的字段为qute_date,补入的数据范围是当前季度和上季度数据(下个季度初15号前可补入),也就是10月15日前可补入7月1日到12月31日的数据。10月16日后只可补入本季度数据(10月1日到12月31日)这样也有助于提高程序的执行效率。
为了规范填报时间,使补录操作无脑化,在填报界面季度字段那里设置了下拉框填报插件,绑定数据字典,在数据字典中限定当前日期可以补录的季度范围。
SQL如下:
SELECT explode(
map(t1.start_date,t1.aa,t1.end_date,t1.bb))
FROM
(SELECT
CASE WHEN datediff(sysdate,trunc(sysdate,'Q'))<15 THEN year(sysdate)||quarter(trunc(add_months(sysdate,-3),'Q'))
ELSE year(sysdate)||quarter(trunc(sysdate,'Q')) end AS start_date,
CASE WHEN datediff(sysdate,trunc(sysdate,'Q'))<15 THEN year(sysdate)||'年第'||quarter(trunc(add_months(sysdate,-3),'Q'))||'