T-SQL : Belajar UNION, UNION ALL Untuk Membuat Report/Laporan Jual, Beli, Retur | DASAR PROGRAMER

T-SQL : Belajar UNION, UNION ALL Untuk Membuat Report/Laporan Jual, Beli, Retur

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 pertama
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

->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
Jika Anda menyukai Artikel di blog ini, Silahkan klik disini untuk berlangganan gratis via email, dengan begitu Anda akan mendapat kiriman artikel setiap ada artikel yang terbit di dasarprogrammer.blogspot.com

0 komentar:

Posting Komentar