0

次のようなオラクルの構文があります:

select 'Tanggal : '||to_char(c,'DD-MON-YYYY hh:mm:ss')||',' as Tgl,
case
    when (select ((a.sk/b.tot)*100)
          from (select count(to_char(response))sk
          from log where response like '%OK%')a,
         (select count(*)tot from log)b)<100
    then (select 'Error : '||to_char(response),count(to_char(response)) je
        from log
        group by to_char(response)
        order by je desc)
    else 
        (select 'Success Rate : '||substr((a.sukses/b.total)*100,1,5)||' %,'as Success_rate
            from (select count(to_char(response)) sukses from log where response like '%OK%')a, (select count(*) total from log)b)
    end as test
from log
where rownum <= 1;

ORA-00907: missing right parenthesis, しかし、「order by je desc」というエラーメッセージが送信されます。
では、エラーが発生しないようにするにはどうすればよいですか?

4

1 に答える 1

0

あなたのクエリは本当に醜いです。それを改善するためにやるべきことはたくさんありますが、コードの奇妙な点を見ると、2 つの間違った構文があります。

select ((a.sk/b.tot)*100)
from (select count(to_char(response))sk
from log where response like '%OK%')a,
(select count(*)tot from log)b)<100

あなたが持っている部分 )a, (select....これを持つことはできません。意味のない (a,b)<100 のようなものです

それからorder byも間違っています。取り除くだけです。そしてさらに試みる

于 2015-07-22T08:02:01.533 に答える