编写SQL查询统计2022年YTD数据并与2021年同期对比
2022年YTD与2021年同期数据对比SQL实现
逻辑调整说明
原有滚动12个月的统计逻辑无法满足自然年年初至今同期对标的需求,按照规则调整统计区间:
- 当期(2022 YTD):统计
W_MEASURE_CLAIMS_SAVING_DATE在2022年1月1日至今的所有数据 - 上期(2021年同期):统计
W_MEASURE_CLAIMS_SAVING_DATE在2021年1月1日到当前日期减365天区间内的所有数据,保证和当期统计时长完全匹配
修正后SQL片段
SUM(case when TO_DATE(WO.W_MEASURE_CLAIMS_SAVING_DATE,'YYYY-MM-DD') >= TO_DATE('2022-01-01','YYYY-MM-DD') then PM.M_GROSS_ANNUAL_KWH_SVG else 0 end) as CURRENT_KWH_YTD, SUM(case when TO_DATE(WO.W_MEASURE_CLAIMS_SAVING_DATE,'YYYY-MM-DD') between TO_DATE('2021-01-01','YYYY-MM-DD') and (sysdate - 365) then PM.M_GROSS_ANNUAL_KWH_SVG else 0 end) as PREVIOUS_YTD_KWH, SUM(case when TO_DATE(WO.W_MEASURE_CLAIMS_SAVING_DATE,'YYYY-MM-DD') >= TO_DATE('2022-01-01','YYYY-MM-DD') then PM.M_GROSS_ANNUAL_THERM_SVG else 0 end) as CURRENT_THERMS_YTD, SUM(case when TO_DATE(WO.W_MEASURE_CLAIMS_SAVING_DATE,'YYYY-MM-DD') between TO_DATE('2021-01-01','YYYY-MM-DD') and (sysdate -365) then PM.M_GROSS_ANNUAL_THERM_SVG else 0 end) as PREVIOUS_YTD_THERMS
使用提示
如果需要对标固定截止日期(例如示例中2022年1月1日-6月10日对标2021年1月1日-6月10日),只需要把代码里的
sysdate替换为固定截止日期TO_DATE('2022-06-10','YYYY-MM-DD')即可,无需调整其他逻辑。
内容的提问来源于stack exchange,提问作者Danielle Hanlon
相关产品推荐
相关产品推荐

