帮助我在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
我不知道此查询正在尝试什么,但是我看到那里有一些问题。例如,您不能使用ORDER BY
内部SUM()
,您不能以这种方式使用SUM
内部CASE
...
让我们尝试通过中断查询来修复它...从内部开始。以下查询有效吗?
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
如果上述查询有效,则可以轻松地将其包装在外部查询中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句