帮助我在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
答案 0 :(得分:1)
我不知道这个查询是在尝试什么,但我看到了一些问题。例如。您无法使用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
...
让我们尝试通过破解查询来修复它......从内部部分开始。以下查询是否有效?
{{1}}
如果上述查询有效,您可以轻松地将其包装在外部查询中。