Ada yang sudah tahu Union ? fungsinya adalah untuk menggabungkan beberapa query menjadi 1 query dengan syarat jumlah field dan type field nya sama. Contoh :
->Tarik data salesman dan customer dalam penjualan selama 1 minggu pertamaSELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/1/2013' AND TGL <='1/7/2013'
contoh hasilnya :
SALESMAN CUSTOMER
AAN AGUS
IIN ASEP
->Tarik data salesman dan customer dalam selama 1 minggu kedua
SELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/8/2013' AND TGL <='1/14/2013'
contoh hasilnya :
SALESMAN CUSTOMER
AAN AGUS
DEDE ANDI
->Jika kita gabungkan dengan UNION ALL maka akan menjadi :
SELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/1/2013' AND TGL <='1/7/2013'
UNION ALL
SELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/1/2013' AND TGL <='1/7/2013'
contoh hasilnya :
SALESMAN CUSTOMER
AAN AGUS
IIN ASEP
AAN AGUS
DEDE ANDI
->Jika kita gabungkan dengan UNION (Tanpa ALL) maka akan menjadi :
SELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/1/2013' AND TGL <='1/7/2013'
UNION
SELECT DISTINCT SALESMAN, CUSTOMER FROM HEADER_JUAL WHERE TGL>='1/1/2013' AND TGL <='1/7/2013'
contoh hasilnya :
SALESMAN CUSTOMER
AAN AGUS
IIN ASEP
DEDE ANDI
Jadi perbedaan Union ALL dan Union biasa adalah jika Union ALL tidak akan memfilter data yang sama (akan duplikat), sedangkan Union saja akan memfilter data yang ganda (fungsinya sama seperti DISCTINCT)
So... saya akan lanjutkan, bagaimana UNION ini dapat membuat laporan jual beli retur barang,
->Contoh format laporan 1 :
BUKTI TANGGAL PEMBELIAN PENJUALAN RETUR
B001 1 JAN 2013 200.000 0 0
B002 1 JAN 2013 400.000 0 0
J001 5 JAN 2013 0 1.000.000 0
R001 6 JAN 2013 0 0 500.000
J002 6 JAN 2013 0 350.000 0
Sql Query nya adalah :
SELECT BUKTI, TANGGAL, BRUTO_PEMBELIAN, 0 AS BRUTO_PENJUALAN, 0 AS BRUTO_RETUR FROM TBL_BELI
UNION
SELECT BUKTI, TANGGAL, 0 AS BRUTO_PEMBELIAN, BRUTO_PENJUALAN, 0 AS BRUTO_RETUR FROM TBL_JUAL
UNION
SELECT BUKTI, TANGGAL, 0 AS BRUTO_PEMBELIAN, 0 AS BRUTO_PENJUALAN, BRUTO_RETUR FROM TBL_RETUR
->Contoh format laporan 2 (Data yang diatas di group pertanggal) :
TANGGAL PEMBELIAN PENJUALAN RETUR
1 JAN 2013 600.000 0 0
5 JAN 2013 0 1.000.000 0
6 JAN 2013 0 350.000 500.000
Sql Query nya adalah (kita tambahkan sub query):
SELECT TANGGAL, SUM(BRUTO_PEMBELIAN) AS BRUTO_PEMBELIAN, SUM(BRUTO_PENJUALAN) AS BRUTO_PENJUALAN, SUM(BRUTO_RETUR) AS BRUTO_RETUR
FROM (
SELECT BUKTI, TANGGAL, BRUTO_PEMBELIAN, 0 AS BRUTO_PENJUALAN, 0 AS BRUTO_RETUR FROM TBL_BELI
UNION
SELECT BUKTI, TANGGAL, 0 AS BRUTO_PEMBELIAN, BRUTO_PENJUALAN, 0 AS BRUTO_RETUR FROM TBL_JUAL
UNION
SELECT BUKTI, TANGGAL, 0 AS BRUTO_PEMBELIAN, 0 AS BRUTO_PENJUALAN, BRUTO_RETUR FROM TBL_RETUR
) AS SQL_LAPORAN
GROUP BY TANGGAL
Tags:
cra buat laporan penjualan, menggabungkan data omset laporan, omzet report, sql union, union all sql example, sample sql union, membuat laporan audit vbnet, sql query untuk laporan penjualan, query laporan penjualan, sql script laporan rugi laba
0 komentar:
Posting Komentar