Запрос работает в SQL Developer, но не работает в Putty (ORA-00907, отсутствует скобка)

Можете ли вы увидеть какие-либо контрольные признаки того, что этот код отсутствует? Извините, если это слишком долго. Это полное внешнее соединение двух сегментов, MTD и YTD. Ожидаемые результаты разделены запятыми. Это прекрасно работает в SQL Developer, но не в Unix (Putty).

select mtd.portfolio||','||
        mtd.descr||','||
        mtd.ccy||','||
        CASE WHEN ytd.ytd_amnt IS NOT NULL THEN
          CASE WHEN substr(mtd.acnt,1,1) in ('2','5','0') --base currency month to date
          THEN (sum(ytd.ytd_amnt_bc) - sum(mtd.mtd_amnt_bc))*-1
            ELSE (sum(ytd.ytd_amnt_bc) - sum(mtd.mtd_amnt_bc)) 
          END
        ELSE
          0
        END
        ||','||   
        CASE WHEN mtd.ccy in ('USD') THEN
          CASE WHEN substr(mtd.acnt,1,1) in ('2','5','0') THEN  --base currency year to date
                 sum(mtd.mtd_amnt)*-1        
          ELSE
                 sum(mtd.mtd_amnt)        
           END
         ELSE
           CASE WHEN substr(mtd.acnt,1,1)in ('2','5','0') THEN   
                 sum(mtd.mtd_amnt_bc)*-1
          ELSE
                 sum(mtd.mtd_amnt_bc)
           END
         END
        ||','||
      CASE WHEN ytd.ytd_amnt IS NOT NULL THEN
          CASE WHEN substr(mtd.acnt,1,1)in ('2','5','0') THEN    --native currency month to date
           (sum(ytd.ytd_amnt) - sum(mtd.mtd_amnt)) *-1
            ELSE 
           sum(ytd.ytd_amnt) - sum(mtd.mtd_amnt) 
          END
      ELSE
          0
        END||','||
        CASE WHEN mtd.ccy in ('PHP') THEN --native currency year to date 
          CASE WHEN substr(mtd.acnt,1,1)in ('2','5','0') THEN   
                 mtd.mtd_amnt*-1
          ELSE
                 mtd.mtd_amnt
          END
         ELSE
           CASE WHEN substr(mtd.acnt,1,1)in ('2','5','0') THEN   
                   sum(mtd.mtd_amnt_bc)*-1
            ELSE
                   sum(mtd.mtd_amnt_bc)
           END
         END||','||  
        CASE WHEN substr(mtd.acnt,1,1)='0' 
        THEN '5' 
        ELSE substr(mtd.acnt,1,1) 
        END      
    from 
    (select (accl.acnt) acnt, (kp.account) portfolio, (accc.descr)descr, (accl.curr) ccy, sum(accl.amnt_bc) mtd_amnt_bc, sum(accl.amnt) mtd_amnt
    from acc$ledger accl
      LEFT JOIN k$portfolio kp ON kp.id = accl.portfolio
      LEFT JOIN acc$chart accc ON accc.acnt = accl.acnt
    where accl.company = accc.company
    and accl.company <> 1
    and substr(accl.acnt,1,1) in ('0','1','2','5')
  and accc.fisc_yr in (select to_char(current_business_date,'YYYY') from k$company where id=1)
    and accl.account_dte <> to_date('0001-01-01','YYYY-MM-DD')  
  and accl.dt <= (select last_day(add_months(current_business_date,-1)) from k$company where id=1)
    group by  accc.descr, kp.account, accl.acnt, accl.curr
    order by kp.account, accl.acnt
    )
  mtd full outer join

    (select (accl.acnt) acnt, (kp.account) portfolio, (accc.descr)descr, sum(accl.amnt_bc) ytd_amnt_bc, sum(accl.amnt) ytd_amnt
    from acc$ledger accl
      LEFT JOIN k$portfolio kp ON kp.id = accl.portfolio
      LEFT JOIN acc$chart accc ON accc.acnt = accl.acnt
    where accl.company = accc.company   
    and accl.company <> 1
    and substr(accl.acnt,1,1) in ('0','1','2','5') 
    and accc.fisc_yr in (select to_char(current_business_date,'YYYY') from k$company where id=1)
    and accl.account_dte <> to_date('0001-01-01','YYYY-MM-DD') 
  and accl.dt <= (select last_day(add_months(current_business_date,-2)) from k$company where id=1)
    group by  accc.descr, kp.account, accl.acnt
    order by kp.account, accl.acnt)
    ytd
    on mtd.portfolio=ytd.portfolio
    and mtd.descr=ytd.descr
    and mtd.acnt= ytd.acnt
    group by mtd.acnt, mtd.portfolio, mtd.descr, mtd.ccy, mtd.mtd_amnt, ytd.ytd_amnt 
    order by mtd.portfolio, mtd.acnt, mtd.descr;

1 ответ

Удалить пустую строку. По умолчанию SQL*Plus использует пустые символы новой строки для завершения оператора SQL. SQL Developer не работает одинаково, в зависимости от того, как вы выполняете запрос.

Другие вопросы по тегам