2014-11-21 48 views
0

帮助我在oracle数据库上的最后一个项目。 我现在正在挣扎。 任何人都可以帮助我。ORA-00936:缺少表达式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

我不知道这个查询尝试,但我看到的一些问题存在。例如。你不能使用内部SUM()ORDER BY,你不能使用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 

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

+0

hallo hash brown。谢谢你或你的回答,但上面的查询不起作用。我可以获得有关上述查询的更多问题的联系方式吗?我想是应该发送给你的数据集:'( – Shasapo 2014-11-21 04:39:19

+0

从prev的内部查询运行良好。问题是外部查询:'( – Shasapo 2014-11-21 04:41:24

+0

完成,thankyouuu〜 – Shasapo 2014-11-21 05:25:06