2014-11-21 44 views
0
SELECT tr.id_kasir, 
     tr.tgl_transaksi, 
     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 

此查詢工作,這樣輸出組:如何總結和SQL甲骨文

ID_KASIR TGL_TRANSAKSI SETORAN 
    C001  23-OCT-14  38000 
    C002  23-OCT-14  30800 
    C001  24-OCT-14  168000 
    C002  24-OCT-14  16500 
    C002  25-OCT-14  27500 
    C002  25-OCT-14  26250 

但我想總結setoran,按id_kasirtgl_transaksi 誰能給我一個解決方案?

回答

0

您可以在cte中查詢您的問題並使用此結果進行分組。

with cte 
as 
( 

your current query 

) 
select ID_KASIR , TGL_TRANSAKSI, SUM(SETORAN) as total 
FROM cte 
GROUP BY ID_KASIR, TGL_TRANSAKSI 
+0

thankyyooouuuuuuu非常~~現在它工作~~~~~~ ^^^^ – Shasapo 2014-11-21 05:08:28

+0

thankyyooouuuuuuu非常~~現在的工作~~~~~~ ^^^^ – Shasapo 2014-11-21 05:10:32

+0

@Shasapo,你能接受答案,如果有幫助 – radar 2014-11-21 05:11:05