ORA-00936:缺少表达ORACLE请帮帮我

时间:2014-11-21 01:55:47

标签: sql oracle

帮助我在oracle数据库上的最终项目。 我现在正在挣扎。 有人帮我请。

这是我的查询

SELECT tr.id_kasir, 
       tr.tgl_transaksi, 
       sum (
            SELECT CASE tr.id_member when 'M000' 
                   then SUM ( mn.harga_menu * st.qty_menu) 
                        + SUM(mn.harga_menu*st.qty_menu) * 0.1 
                        - nvl2 ( pro.discount, 
                                       sum(mn.harga_menu * st.qty_menu) * (pro.discount/100),
                                       0) 
                   ELSE SUM(mn.harga_menu*st.qty_menu) 
                        - SUM( mn.harga_menu * st.qty_menu) * 0.05 
                        + SUM(mn.harga_menu*st.qty_menu) * 0.1
                        - nvl2 ( pro.discount, sum(mn.harga_menu * st.qty_menu) * (pro.discount/100) , 0)
                   END Setoran 
           FROM transaksi tr
          join struk st on (st.no_transaksi = tr.no_transaksi) 
          join menu mn on (st.kode_menu = mn.kode_menu )
          left outer join promo pro on (pro.kode_menu = mn.kode_menu)
          GROUP BY tr.id_kasir, tr.tgl_transaksi, tr.id_member,pro.discount 
          ORDER BY tr.tgl_transaksi, tr.id_kasir) setoran 
from transaksi tr 
group by tr.id_kasir, tr.tgl_transaksi

1 个答案:

答案 0 :(得分:1)

我不知道这个查询是在尝试什么,但我看到了一些问题。例如。您无法使用ORDER BY内的SUM(),您无法以SUMCASE方式使用SELECT Sum( CASE tr.id_member WHEN 'M000' then ( mn.harga_menu * st.qty_menu) +(mn.harga_menu*st.qty_menu) * 0.1 - nvl2 ( pro.discount, (mn.harga_menu * st.qty_menu) * (pro.discount/100), 0) ELSE (mn.harga_menu*st.qty_menu) - ( mn.harga_menu * st.qty_menu) * 0.05 + (mn.harga_menu*st.qty_menu) * 0.1 - nvl2 ( pro.discount, (mn.harga_menu * st.qty_menu) * (pro.discount/100) , 0) ) Setoran FROM transaksi tr join struk st on (st.no_transaksi = tr.no_transaksi) join menu mn on (st.kode_menu = mn.kode_menu ) left outer join promo pro on (pro.kode_menu = mn.kode_menu) GROUP BY tr.id_kasir, tr.tgl_transaksi, tr.id_member,pro.discount ...

让我们尝试通过破解查询来修复它......从内部部分开始。以下查询是否有效?

{{1}}

如果上述查询有效,您可以轻松地将其包装在外部查询中。