语句提示缺失关键字  主要是红色字体部分不知错在哪里

with t as(SELECT t.*FROM SCGL."JINEIXIANAN_SHENGCHAN"  t  where to_date(t.createdate,'yyyy-mm-dd')>=(select   
(case when(to_date('${aa}','yyyy-mm-dd')>=trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY') and to_date('${aa}','yyyy-mm-dd')<=
(trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY')+28)) then trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY') when (last_day(to_date
('${aa}','yyyy-mm-dd'))-to_date('${aa}','yyyy-mm-dd')) >1 or (to_date('${aa}','yyyy-mm-dd')>=last_day(ADD_MONTHS(trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11))-1 and to_date('${aa}','yyyy-mm-dd')<=last_day(ADD_MONTHS(trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11)))

then (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),-1))-1)  else (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),0))-1) end)  from
dual ) -1
and to_date(t.createdate,'yyyy-mm-dd') <=(select (case when (to_date('${aa}','yyyy-mm-dd')>=(last_day(ADD_MONTHS(trunc
(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11))-32) and to_date('${aa}','yyyy-mm-dd')<=last_day(ADD_MONTHS(trunc(to_date
('${aa}','yyyy-mm-dd'),'YYYY'),11))) then last_day(ADD_MONTHS(trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11)) when (last_day(to_date('${aa}','yyyy-mm-dd'))-to_date('${aa}','yyyy-
mm-dd'))>1 then (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),0))-2) else (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),1))-2) end)
as lastday  from dual) order by t.id ),
t1 as (select rownum as rn,t.* from t)

select a.* from t1 a where  (case when ( to_date(a.createdate,'yyyy-mm-dd') =(select (case when (to_date('${aa}','yyyy-mm-dd')>=(last_day(ADD_MONTHS(trunc
(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11))-32) and to_date('${aa}','yyyy-mm-dd')<=last_day(ADD_MONTHS(trunc(to_date
('${aa}','yyyy-mm-dd'),'YYYY'),11))) then last_day(ADD_MONTHS(trunc(to_date('${aa}','yyyy-mm-dd'),'YYYY'),11)) when (last_day(to_date('${aa}','yyyy-mm-dd'))-to_date('${aa}','yyyy-
mm-dd'))>1 then (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),0))-2) else (last_day(ADD_MONTHS (to_date('${aa}','yyyy-mm-dd'),1))-2) end)
as lastday  from dual))  then a.rn<(select max(a.rn) from  t1 a) else a.createdate<='${aa}' end) and  a.rn>1


FineReport张宇 发布于 2017-2-2 14:51
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共7回答
最佳回答
0
macro_hard发布于2017-2-2 14:51(编辑于 2023-9-6 09:34)
555
最佳回答
0
张宇发布于2017-2-2 15:11(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    用得不对,应该类似这样where (case when then end)=1
    你这里的逻辑是不是应该这样(createdate满足某个日期 and a.rn<(...)) or (createdate不满足某个日期 and createdate<=...)
    回复
    2017-02-02 16:29 
最佳回答
0
macro_hard发布于2017-2-2 16:29(编辑于 2023-9-6 09:34)
555
  • 张宇 张宇(提问者)
    红色字体改为了
    where    a.rn>1 and a.rn<(select (case when (to_date(\'${aa}\',\'yyyy-mm-dd\') =(select (case when (to_date(\'${aa}\',\'yyyy-mm-dd\')>=(last_day(ADD_MONTHS(trunc
    (to_date(\'${aa}\',\'yyyy-mm-dd\'),\'YYYY\'),11))-32) and to_date(\'${aa}\',\'yyyy-mm-dd\')<=last_day(ADD_MONTHS(trunc(to_date
    (\'${aa}\',\'yyyy-mm-dd\'),\'YYYY\'),11))) then last_day(ADD_MONTHS(trunc(to_date(\'${aa}\',\'yyyy-mm-dd\'),\'YYYY\'),11)) when (last_day(to_date(\'${aa}\',\'yyyy-mm-dd\'))-to_date(\'${aa}\',\'yyyy-
    mm-dd\'))>1 then (last_day(ADD_MONTHS (to_date(\'${aa}\',\'yyyy-mm-dd\'),0))-2) else (last_day(ADD_MONTHS (to_date(\'${aa}\',\'yyyy-mm-dd\'),1))-2) end)
    as lastday  from dual)) then max(a.rn) else max(a.rn)+1  end) from  t1 a  )   显示不是单组分组函数
    回复
    2017-02-02 16:33 
最佳回答
0
张宇发布于2017-2-2 16:33(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    是不是语句其他部分用到group by了?
    只写where a.rn>1 报错么?
    回复
    2017-02-02 16:45 
  • macro_hard macro_hard

    是不是语句其他部分用到group by了?
    只写where a.rn>1 报错么?
    回复
    2017-02-02 16:45 
最佳回答
0
macro_hard发布于2017-2-2 16:45(编辑于 2023-9-6 09:34)
555
最佳回答
0
macro_hard发布于2017-2-2 16:45(编辑于 2023-9-6 09:34)
555
  • 张宇 张宇(提问者)

    只写where a.rn>1  不报错   没用到group by
    回复
    2017-02-02 16:49 
最佳回答
0
张宇发布于2017-2-2 16:49(编辑于 2023-9-6 09:34)
555
  • macro_hard macro_hard

    max(a.rn) 换成 (select max(a.rn) from  t1 a)
    回复
    2017-02-02 14:51 
  • 0关注人数
  • 523浏览人数
  • 最后回答于:2017-2-2 16:49
    活动推荐 更多
    热门课程 更多
    返回顶部