0% found this document useful (0 votes)
17 views6 pages

Code XNT

This document contains 3 SQL queries: 1. The first query selects order details data such as order date, code, status, product information, quantities, prices etc. from order tables for export orders. 2. The second query selects similar order details data for import orders to BTCom. 3. The third query first gets invoice details for VNPOST in a subquery, then joins it with warehouse data to return invoice information like number, date, product, warehouse etc. It unions this with a similar query that also returns import order details.

Uploaded by

nhatnq1006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views6 pages

Code XNT

This document contains 3 SQL queries: 1. The first query selects order details data such as order date, code, status, product information, quantities, prices etc. from order tables for export orders. 2. The second query selects similar order details data for import orders to BTCom. 3. The third query first gets invoice details for VNPOST in a subquery, then joins it with warehouse data to return invoice information like number, date, product, warehouse etc. It unions this with a similar query that also returns import order details.

Uploaded by

nhatnq1006
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

1, Nhập từ BTCom_chi_tiết

SELECT DISTINCT
DATE(od.NGAY_TAO_DON) AS NGAY_TAO_DON, -- created_on
od.MA_DON_HANG AS MA_PHIEU, -- code
od.SO_CHUNG_TU AS MA_CHUNG_TU_MUA_HANG_VNPOST, -- SoChungTu
od.MA_KHO_XUAT AS MA_KHO_XUAT,
kx.TEN_KHO_DIEM_BAN AS TEN_KHO_XUAT,
od.MA_KHO_NHAP AS MA_KHO_NHAP,
kn.TEN_BDH AS TEN_KHO_NHAP,
od.ID_KHO_TINH_NHAP AS ID_KHO_TINH_NHAP,
kn.TEN_BDT AS TEN_KHO_TINH_NHAP,
od.MA_TRANG_THAI AS MA_TRANG_THAI,
od.TEN_TRANG_THAI AS TRANG_THAI, -- status
od.MA_SAN_PHAM AS MA_HANG_HOA,
sp.TEN_SAN_PHAM AS TEN_HANG_HOA,
od.SO_LUONG_HANG_DG AS SO_KIEN_HANG, -- pkg_quantity
od.KICH_THUOC AS TRONG_LUONG,
dv.TEN_DON_VI AS DON_VI_TINH,
od.MA_LOAI_HANG AS MA_VU_VIEC, -- order_items.issue_type
od.DON_GIA AS DON_GIA,
(
CASE
WHEN od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
) AS SO_LUONG,
(
CASE
WHEN od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
)
* od.DON_GIA AS GIA_TRI,
DATE(od.TG_XAC_NHAN) AS THOI_GIAN_DUYET_DON_HANG, --
confirm_on
DATE(od.NGAY_GUI_DON) AS THOI_GIAN_XUAT_DON_HANG,--
issue_on
DATE(od.NGAY_NHAN_DON_HANG) AS THOI_GIAN_NHAN_HANG_THUC_TE,
-- received_on
(
CASE
WHEN od.MA_LOAI_HANG = 1 THEN 'Xuất theo đơn' ELSE
'Xuất chủ động'
END
) AS HINH_THUC
FROM
`xeca-bq-production-20102023.dwh.FCT_ORDER_DETAILS` AS od
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_SAN_PHAM` AS sp
ON sp.MA_SAN_PHAM = od.MA_SAN_PHAM
AND od.ETL_DATE BETWEEN sp.START_DATE AND sp.END_DATE
JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS kn
ON kn.ID_BDH_V3 = od.ID_KHO_NHAP
AND od.ETL_DATE BETWEEN kn.START_DATE AND kn.END_DATE
JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS kx
ON kx.ID_DB_V3 = od.ID_KHO_XUAT
AND od.ETL_DATE BETWEEN kx.START_DATE AND kx.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_DON_VI_DG` AS dv
ON sp.MA_DVC = dv.MA_DON_VI
-- AND od.ETL_DATE BETWEEN dv.START_DATE AND dv.END_DATE
WHERE
od.MA_LOAI_HANG = 1 -- AND ot.issue_type = 1
AND od.MA_LOAI_DON_HANG IN (1, 5, 6) -- o.note_type IN
(1,5,6)
AND od.CAP_KHO_NHAP = 2
AND od.CAP_KHO_XUAT = 0
AND od.SO_LUONG_HANG != 0 -- AND ot.quantity != 0
2, Xuất về BTCom

SELECT DISTINCT
DATE(od.NGAY_TAO_DON) AS NGAY_LAP, -- created_on
od.MA_DON_HANG AS MA_PHIEU, -- code
od.MA_KHO_XUAT AS MA_KHO_XUAT,
kx.TEN_BDH AS TEN_KHO_XUAT,
kx.ID_BDT_V3 AS ID_KHO_TINH_XUAT,
kx.TEN_BDT AS TEN_KHO_TINH_XUAT,
od.MA_KHO_NHAP AS MA_KHO_NHAP,
kn.TEN_KHO_DIEM_BAN AS TEN_KHO_NHAP,
od.TEN_TRANG_THAI AS TRANG_THAI, -- status
od.MA_SAN_PHAM AS MA_HANG_HOA,
sp.TEN_SAN_PHAM AS TEN_HANG_HOA,
od.SO_LUONG_HANG_DG AS SO_KIEN_HANG, -- pkg_quantity
od.KICH_THUOC AS TRONG_LUONG, -- box_weight
dv.TEN_DON_VI AS DON_VI_TINH,
od.TEN_LOAI_HANG AS MA_VU_VIEC, -- order_items.issue_type
od.DON_GIA AS DON_GIA,
(
CASE
WHEN od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
) AS SO_LUONG,
(
CASE
WHEN od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
)
* od.DON_GIA AS GIA_TRI_TIEN,
od.GHI_CHU_KH AS GHI_CHU
FROM
`xeca-bq-production-20102023.dwh.FCT_ORDER_DETAILS` AS od
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_SAN_PHAM` AS sp
ON sp.MA_SAN_PHAM = od.MA_SAN_PHAM
AND od.ETL_DATE BETWEEN sp.START_DATE AND sp.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS kn
ON kn.ID_DB_V3 = od.ID_KHO_NHAP
AND od.ETL_DATE BETWEEN kn.START_DATE AND kn.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS kx
ON kx.ID_BDH_V3 = od.ID_KHO_XUAT
AND od.ETL_DATE BETWEEN kx.START_DATE AND kx.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_DON_VI_DG` AS dv
ON dv.MA_DON_VI = sp.MA_DVC
AND od.ETL_DATE BETWEEN dv.START_DATE AND dv.END_DATE
WHERE
od.MA_LOAI_HANG = 1 -- AND ot.issue_type = 1
AND od.MA_LOAI_DON_HANG IN (5, 6) -- o.note_type IN (5,6)
AND od.CAP_KHO_NHAP = 0
AND od.CAP_KHO_XUAT = 2

3, Xuất bán

WITH
t1 AS -- Thông tin hóa đơn bán hàng 'VNPOST'
(
SELECT
id.MA_HOA_DON AS MA_HOA_DON,
DATE(id.NGAY_TAO) AS NGAY_TAO_DON, -- created_on
sp.MA_SAN_PHAM AS MA_HANG_HOA,
sp.TEN_SAN_PHAM AS TEN_HANG_HOA,
id.DON_GIA AS DON_GIA,
dv.TEN_DON_VI AS DON_VI_TINH,
id.ID_KHO_BAN AS ID_KHO_XUAT,
id.CAP_KHO AS CAP_KHO,
id.SO_LUONG AS SO_LUONG, -- quantity
id.SO_LUONG * id.DON_GIA AS DOANH_THU, -- Doanh thu = (Số
lượng thực tế * Đơn giá)
sp.START_DATE AS START_DATE_SP,
sp.END_DATE AS END_DATE_SP,
dv.START_DATE AS START_DATE_DV,
dv.END_DATE AS END_DATE_DV
FROM
`xeca-bq-production-20102023.dwh.FCT_INVOICE_DETAILS` AS id
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_SAN_PHAM` AS sp
ON
sp.MA_SAN_PHAM = id.MA_SAN_PHAM
AND sp.STATUS IS true
-- AND DATE(id.NGAY_TAO) BETWEEN sp.START_DATE AND
sp.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_DON_VI_DG` AS dv
ON
sp.MA_DVC = dv.MA_DON_VI
AND dv.STATUS IS true
-- AND DATE(id.NGAY_TAO) BETWEEN dv.START_DATE AND
dv.END_DATE
WHERE
id.TEN_KHACH_HANG LIKE 'VNPOST'
AND id.MA_TRANG_THAI = 12 -- { ID: 12 Text: 'Thành công' -
BH_THANH_CONG }
),

t2 AS
(
SELECT
t1.MA_HOA_DON,
t1.ID_KHO_XUAT,
k.TEN_BDH AS TEN_KHO_XUAT,
k.TEN_BDT AS TEN_KHO_XUAT_PARENT,
t1.NGAY_TAO_DON,
t1.MA_HANG_HOA,
t1.TEN_HANG_HOA,
t1.DON_VI_TINH,
t1.DON_GIA,
t1.SO_LUONG,
t1.DOANH_THU
FROM
t1
JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS k
ON
t1.ID_KHO_XUAT = k.ID_BDH_V3
AND k.STATUS IS true
-- AND t1.START_DATE_SP <= k.END_DATE
-- AND t1.END_DATE_SP >= k.START_DATE
-- AND t1.START_DATE_DV <= k.END_DATE
-- AND t1.END_DATE_DV >= k.START_DATE
WHERE
t1.CAP_KHO = 2

UNION ALL

SELECT
t1.MA_HOA_DON,
k.ID_BDH_V3 AS ID_KHO_XUAT,
k.TEN_BDH AS TEN_KHO_XUAT,
k.TEN_BDT AS TEN_KHO_XUAT_PARENT,
t1.NGAY_TAO_DON,
t1.MA_HANG_HOA,
t1.TEN_HANG_HOA,
t1.DON_VI_TINH,
t1.DON_GIA,
t1.SO_LUONG,
t1.DOANH_THU
FROM
t1
JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS k
ON
t1.ID_KHO_XUAT = k.ID_DB_V3
AND k.STATUS IS true
-- AND t1.START_DATE_SP <= k.END_DATE
-- AND t1.END_DATE_SP >= k.START_DATE
-- AND t1.START_DATE_DV <= k.END_DATE
-- AND t1.END_DATE_DV >= k.START_DATE
WHERE
t1.CAP_KHO = 4
),

t3 AS
(
SELECT
t2.ID_KHO_XUAT,
t2.TEN_KHO_XUAT,
t2.TEN_KHO_XUAT_PARENT,
t2.NGAY_TAO_DON,
t2.MA_HANG_HOA,
t2.TEN_HANG_HOA,
t2.DON_VI_TINH,
t2.DON_GIA,
SUM(t2.SO_LUONG) AS SO_LUONG,
SUM(t2.DOANH_THU) AS DOANH_THU
FROM
t2
GROUP BY
t2.MA_HOA_DON,
t2.ID_KHO_XUAT,
t2.TEN_KHO_XUAT,
t2.TEN_KHO_XUAT_PARENT,
t2.NGAY_TAO_DON,
t2.MA_HANG_HOA,
t2.TEN_HANG_HOA,
t2.DON_GIA,
t2.DON_VI_TINH
)

SELECT
*
-- SUM(t3.SO_LUONG) AS SO_LUONG,
-- SUM(t3.DOANH_THU) AS DOANH_THU
FROM
t3

4, Điều chuyển BĐH

SELECT DISTINCT
DATE(od.NGAY_TAO_DON) AS NGAY_LAP,
od.MA_DON_HANG AS MA_PHIEU,
k1.ID_BDH_V3 AS ID_KHO_XUAT,
k1.TEN_BDH AS TEN_KHO_XUAT,
od.ID_KHO_TINH_XUAT AS ID_KHO_XUAT_PARENT,
k1.TEN_BDT AS TEN_KHO_BDT_XUAT,
k2.ID_BDH_V3 AS ID_KHO_NHAP,
k2.TEN_BDH AS TEN_KHO_NHAP,
od.ID_KHO_TINH_NHAP AS ID_KHO_NHAP_PARENT,
k2.TEN_BDT AS TEN_KHO_BDT_NHAP,
od.TEN_TRANG_THAI AS MA_VU_VIEC, -- STATUS_ID
od.MA_SAN_PHAM AS MA_HANG_HOA,
sp.TEN_SAN_PHAM AS TEN_HANG_HOA,
od.SO_LUONG_HANG_DG AS SO_KIEN_HANG, -- pkg_quantity
od.KICH_THUOC AS TRONG_LUONG, -- box_weight
dv.TEN_DON_VI AS DON_VI_TINH,
od.MA_LOAI_HANG, -- order_items_issue_type
(
CASE WHEN
od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
) AS SO_LUONG,
(
CASE WHEN
od.SO_LUONG_CN IS NOT NULL THEN od.SO_LUONG_CN
ELSE od.SO_LUONG_HANG END
)
* od.DON_GIA AS THANH_TIEN,
od.SO_CHUNG_TU AS SO_CHUNG_TU
FROM
`xeca-bq-production-20102023.dwh.FCT_ORDER_DETAILS` AS od
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS k1
ON
od.ID_KHO_XUAT = k1.ID_BDH_V3
AND
od.ETL_DATE BETWEEN k1.START_DATE AND k1.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_KHO_DIEM_BAN` AS k2
ON
od.ID_KHO_NHAP = k2.ID_BDH_V3
AND
od.ETL_DATE BETWEEN k2.START_DATE AND k2.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_SAN_PHAM` AS sp
ON
od.MA_SAN_PHAM = sp.MA_SAN_PHAM
AND
od.ETL_DATE BETWEEN sp.START_DATE AND sp.END_DATE
LEFT JOIN
`xeca-bq-production-20102023.dwh.D_DON_VI_DG` AS dv
ON
dv.MA_DON_VI = sp.MA_DVC
AND
od.ETL_DATE BETWEEN dv.START_DATE AND dv.END_DATE
WHERE
od.CAP_KHO_NHAP = 2
AND od.CAP_KHO_XUAT = 2
AND od.MA_LOAI_HANG = 1 -- order_items.issue_type = 1
AND od.MA_LOAI_DON_HANG IN (1, 5, 6) -- o.note_type IN (1,5, 6)

You might also like