sql语句帮忙看下,想要今年就显示1-5月,以前年份就显示1-12月,这个语句要怎么修改

pv2为参数,接收具体年份,例如2023

select

  t.*

from

(SELECT

 lpad(t.month,2,0) as FMONTH,

 t.month || '月实际产量' as MONTHVIEW

FROM

(select level month from dual connect by LEVEL<13)t

)t

where (1=1)

 ${if(pv2 = to_char(SYSDATE,'yyyy'),"AND t.FMONTH<= SUBSTR(to_char(SYSDATE,'yyyy-mm'),6,2)","")}

SQL 李蓉9 发布于 2023-5-31 10:32 (编辑于 2023-5-31 10:36)
1min目标场景问卷 立即参与
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
李蓉9Lv3见习互助
发布于2023-5-31 11:13

with year as(

   SELECT

   a.YEAR,

CASE WHEN a.YEAR = TO_CHAR(SYSDATE,'YYYY') THEN SUBSTR(TO_CHAR(SYSDATE,'YYYY-MM'), 6, 2) else '12' end as pd

FROM

(select to_char(sysdate,'YYYY')-LEVEL+1 YEAR FROM DUAL CONNECT BY LEVEL<=13)a

)

select

  t.FMONTH,

t.MONTHVIEW

from

(SELECT

 lpad(t.month,2,0) as FMONTH,

 t.month || '月实际产量' as MONTHVIEW

FROM

(select level month from dual connect by LEVEL <13)t

)t,

(

  select * from year 

where (1=1)

        ${if(len(pv2) = 0,"","and YEAR='" +pv2+ "'")}

) a

where (1=1)

  t.FMONTH<=a.PD

  • 0关注人数
  • 183浏览人数
  • 最后回答于:2023-5-31 11:13
    请选择关闭问题的原因
    确定 取消
    返回顶部