Hiện tại kho dữ liệu đã thiết kế hoàn chỉnh cho doanh nghiệp viễn thông nhưng dữ liệu nguồn chủ yếu lấy từ hệ thống tính cước chăm sóc khách hàng của một Viễn thông tỉnh thành phố. Dữ liệu khách hàng sử dụng dịch vụ viễn thông của VNPT đang chủ yếu tập trung ở các tỉnh, tập đoàn Bưu chính Viễn thông đang có kế hoặch quản dữ liệu tập trung cho tất cả 64 tỉnh thành. Phần khai thác kho dữ liệu chủ yếu mới là các báo cáo và tra cứu. Từ nhu cầu thực tế của các viễn thông tỉnh và tập
đoàn cũng như hoàn thiệt thiết kế kho dữ liệu, một số hướng tiếp tục của đề tài sẽ là:
Tiếp tục xác định thêm các yêu cầu tại các Viễn thông tỉnh và trên tập đoàn để thiết kế kho dữ liệu hoàn chỉnh hơn.
Xây dựng công cụ chuyển đổi từ nhiều nguồn khác nhau. Bổ sung dữ liệu quản lý mạng như trạng thái mạng, lưu lượng mạng,…
Thiết kế thu thập số liệu khi có dự án quản lý khách hàng tập trung của VNPT. Sử dụng công cụ khai thác phân tích dữ liệu trực tuyến OLAP hỗ trợ quá trình ra
quyết định.
Xây dựng các ứng dụng khai phá dữ liệu chẳng hạn như phát hiện gian lận, quản lý chăm sóc khách hàng, phát hiện và cô lập lỗi trên hệ thống mạng viễn thông. Xây dụng một số phần dưới dạng kho dữ liệu thời gian thực.
KẾT LUẬN VÀ KIẾN NGHỊ
Sau một thời gian nghiên cứu và thực hiện các nội dung của luận văn, tác giả đã xây dựng được một DWH ban đầu tương đối hoàn chỉnh cho Viễn thông tỉnh lấy từ hệ thống nguồn CCBS. Hiện tại hệ thống thử nghiệm đã chạy thử nghiệm tại Viễn Long An và trong thời gian tới tiếp tục thử nghiệm tại một số Viễn thông tỉnh khác. Hệ thống tiếp tục được hoàn thiện, mở rộng để có thể áp dụng chính thức cho các Viễn thông tỉnh cũng như VNPT. Hệ thống DWH được xây dựng chung cho lĩnh vực viễn thông nên không chỉ áp dụng VNPT mà còn có thể áp dụng cho các doanh nghiệp viễn thông khác.
Trong quá trình nghiên cứu và hoàn thành luận văn này, tác giả đã tiếp thu những kiến thức mới và tham khảo một số tài liệu của các nhà khoa học, các thầy cô giáo và các bạn bè đồng nghiệp ở Đại học Công nghệ, Viện Công nghệ Thông tin, Công ty Cổ phần Tin học Ứng dụng và Viễn thông. Tác giả xin trân trọng cảm ơn các thầy cô giáo và các đồng nghiệp, đặc biệt là Thầy giáo, PGS.TS Đặng Hữu Đạo - Viện Công nghệ Thông tin đã tận tình hướng dẫn, tạo điều kiện để tác giả hoàn thành luận văn này. Tác giả xin được gửi lời cảm ơn tới Viễn thông Long An đã tạo điều kiện và hỗ trợ trong quá trình khảo sát yêu cầu, thử nghiệm hệ thống.
Do điều kiện và thời gian nghiên cứu còn nhiều hạn chế nên luận văn chắc chắn không tránh khỏi những thiếu sót. Tác giả rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo, bạn bè đồng nghiệp và những người quan tâm.
TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt
1. Đoàn Văn Ban (1997), Phương pháp thiết kế và khai thác kho dữ liệu, đề tài nghiên cứu cấp Trung tâm KHTN & CNQG
2. Hà Thái Bảo, Trung tâm Công nghệ Thông tin, Học viện Bưu chính Viễn thông (2002),
Áp dụng các công nghệ mới để xây dựng hệ thống tính cước và chăm sóc khách hàng theo mô hình nhiều lớp (Multi-layer), Hà Nội.
3. Nguyễn Thanh Bình, Đại học Huế, Kho dữ liệu và Hệ hỗ trợ quyết định, Huế.
4. Công ty Cổ phần Tin học Ứng dụng và Viễn thông (2008), Tài liệu thiết kế hệ thống tính cước và chăm sóc khách hàng, Hà Nội.
5. Huỳnh Đức Nghĩa, Trung tâm Công nghệ Thông tin, Học viện Bưu chính Viễn thông (2004), Nghiên cứu công nghệ phân tán trên nền .NET Framework áp dụng cho việc phát triển và tích hợp các hệ thống phần mềm, Hà Nội.
6. Tập đoàn Bưu chính Viễn thông Việt Nam VNPT (2006), Tài liệu quy trình nghiệp vụ, Hà Nội.
Tài liệu tiếng Anh.
7. Artech House, Boston London (1997), Data Warehousing and Data Mining for Telecommunications, London.
8. IBM (2003), Telecommunications Data Warehouse, USA..
9. J.D. Meier, Alex Mackman, Michael Dunner, and Srinath Vasireddy, Microsoft Corporation (2002), .NET Remoting Security.
10. Oracle (2007), Data Warehousing Guide 11g Release 1, USA.
11. VINCENT RAINARDI (2008), Building a Data Warehouse With Examples in SQL Server, USA.
12. Ralph Kimball Margy Ross (2002), The Data WarehouseToolkit Second Edition The Complete Guide to Dimensional Modeling, New York.
13. Stephen Toub (2002), “Secure Your .NET Remoting Traffic by Writing an Asymmetric Encryption Channel Sink”, MSDN Magazine.
14. Oracle (2007), Warehou Builder Guide 11g Release 1, USA.
Phụ lục 1: SƠ ĐỒ CSDL BẢNG SỰ KIỆN CỦA DWH
Phát triển thuê bao
Điều hành thi công
Tổng hợp cƣớc khách hàng
Chi tiết tiền thanh toán
Nhắc nợ khách hàng
Xử lý nợ
Phụ lục 2: LỆNH SCRIPT CỦA CÁC ÁNH XẠ ETL SẢN SINH TỪ OWB
Ánh xạ chuyển đổi số liệu bán hàng (Đăng ký dịch vụ viễn thông)
FUNCTION "DANGKY_DVVT_Bat" RETURN BOOLEAN IS BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; BEGIN INSERT INTO "DANGKY_DVVT" ("TIEN_DK","VAT_DK","TIEN_KM","VAT_KM", "TIEN_TT","VAT_TT","NGAY_TT","NGAY_YC","MA_TB", "CHUONGTRINH_KM","DIACHI","DICHVU_VT","DIEM_GD", "KENH_GT","KHACHHANG","KIEU_YC","THOIGIAN") (SELECT "AGGREGATOR"."TIEN_DK$1" "TIEN_DK", "AGGREGATOR"."VAT_DK$1" "VAT_DK", "AGGREGATOR"."TIEN_KM$1" "TIEN_KM", "AGGREGATOR"."VAT_KM$1" "VAT_KM", "AGGREGATOR"."TIEN_DK$1" - "AGGREGATOR"."TIEN_KM$1"/* TIEN_THANHTOAN.OUTGRP1.TIEN_TT */ "TIEN_TT", "AGGREGATOR"."VAT_DK$1" - "AGGREGATOR"."VAT_KM$1"/* TIEN_THANHTOAN.OUTGRP1.VAT_TT */ "VAT_TT", "AGGREGATOR"."NGAY_TT$1" "NGAY_TT", "AGGREGATOR"."NGAY_YC$1" "NGAY_YC", "AGGREGATOR"."MA_TB$1" "MA_TB", "AGGREGATOR"."CHUONGTRINH_KM$1" "CHUONGTRINH_KM", "AGGREGATOR"."DIACHI$1" "DIACHI", "AGGREGATOR"."DICHVU_VT$1" "DICHVU_VT", "AGGREGATOR"."DIEM_GD$1" "DIEM_GD", "AGGREGATOR"."KENH_GT$1" "KENH_GT", "AGGREGATOR"."KHACHHANG$1" "KHACHHANG", "AGGREGATOR"."KIEU_YC$1" "KIEU_YC", "AGGREGATOR"."THOIGIAN$1" "THOIGIAN" FROM (SELECT "AGG_INPUT"."CTKM_ID"/* AGGREGATOR.OUTGRP1.CHUONGTRINH_KM */ "CHUONGTRINH_KM$1",
"AGG_INPUT"."PHUONG_ID"/* AGGREGATOR.OUTGRP1.DIACHI */ "DIACHI$1",
"AGG_INPUT"."LOAITB_ID"/* AGGREGATOR.OUTGRP1.DICHVU_VT */ "DICHVU_VT$1", "AGG_INPUT"."DONVI_ID"/* AGGREGATOR.OUTGRP1.DIEM_GD */ "DIEM_GD$1", 1/* AGGREGATOR.OUTGRP1.KENH_GT */ "KENH_GT$1",
"AGG_INPUT"."KHACHHANG_ID"/* AGGREGATOR.OUTGRP1.KHACHHANG */ "KHACHHANG$1",
"AGG_INPUT"."KIEULD_ID"/* AGGREGATOR.OUTGRP1.KIEU_YC */ "KIEU_YC$1", "AGG_INPUT"."NGAY"/* AGGREGATOR.OUTGRP1.THOIGIAN */ "THOIGIAN$1", "AGG_INPUT"."NGAY_TT$2"/* AGGREGATOR.OUTGRP1.NGAY_TT */ "NGAY_TT$1", "AGG_INPUT"."NGAYLAP_HD"/* AGGREGATOR.OUTGRP1.NGAY_YC */ "NGAY_YC$1", SUM(NVL("AGG_INPUT"."TIEN",0))/* AGGREGATOR.OUTGRP1.TIEN_DK */
"TIEN_DK$1",
SUM(NVL("AGG_INPUT"."VAT",0))/* AGGREGATOR.OUTGRP1.VAT_DK */ "VAT_DK$1", SUM(NVL("AGG_INPUT"."TIEN_KM$2",0))/* AGGREGATOR.OUTGRP1.TIEN_KM */
"TIEN_KM$1",
SUM(NVL("AGG_INPUT"."VAT_KM$2",0))/* AGGREGATOR.OUTGRP1.VAT_KM */ "VAT_KM$1",
"AGG_INPUT"."MA_TB$2"/* AGGREGATOR.OUTGRP1.MA_TB */ "MA_TB$1" FROM (SELECT "HD_KHACHHANG"."NGAYLAP_HD" "NGAYLAP_HD", "HD_KHACHHANG"."DONVI_ID" "DONVI_ID", "HD_THUEBAO"."HDTB_ID" "HDTB_ID", "HD_THUEBAO"."MA_TB" "MA_TB$2", "HD_THUEBAO"."KIEULD_ID" "KIEULD_ID", "HD_THUEBAO"."LOAITB_ID" "LOAITB_ID", "HD_THUEBAO"."NGAY_TT" "NGAY_TT$2", "DIACHI"."PHUONG_ID" "PHUONG_ID", "CT_TIENHD"."TIEN" "TIEN", "CT_TIENHD"."VAT" "VAT", "CT_TIENHD"."TIEN_TT" "TIEN_TT$1", "CT_TIENHD"."VAT_TT" "VAT_TT$1", "CT_TIENHD"."TIEN_KM" "TIEN_KM$2", "CT_TIENHD"."VAT_KM" "VAT_KM$2", CSS_LAN.LAY_CTKM_HDTB("HD_THUEBAO"."HDTB_ID")/* LAY_CTKM_HDTB.OUTGRP1.CTKM_ID */ "CTKM_ID",
to_number(to_char( "HD_KHACHHANG"."NGAYLAP_HD", 'yyyyMMdd'))/* LAY_CHIEU_NGAY_LAPHD.OUTGRP1.NGAY */ "NGAY",
"HD_KHACHHANG"."KHACHHANG_ID" "KHACHHANG_ID" FROM
"CSS_LAN"."HD_KHACHHANG" "HD_KHACHHANG"
JOIN "KHACHHANG" "KHACHHANG" ON ( ( "HD_KHACHHANG"."KHACHHANG_ID" = "KHACHHANG"."KHACHHANG_ID" ) )
JOIN "CSS_LAN"."HD_THUEBAO" "HD_THUEBAO" ON ( ( "HD_THUEBAO"."HDKH_ID" = "HD_KHACHHANG"."HDKH_ID" ) )
JOIN "CSS_LAN"."DIACHI_HDTB" "DIACHI_HDTB" ON ( ( "HD_THUEBAO"."HDTB_ID" = "DIACHI_HDTB"."HDTB_ID" ) )
JOIN "CSS_LAN"."DIACHI" "DIACHI" ON ( ( "DIACHI_HDTB"."DIACHI_ID" = "DIACHI"."DIACHI_ID" ) )
LEFT OUTER JOIN ( SELECT
"CT_TIENHD"."CT_TIENHD_ID" "CT_TIENHD_ID", "CT_TIENHD"."TIEN" "TIEN", "CT_TIENHD"."VAT" "VAT", "CT_TIENHD"."TIEN_TT" "TIEN_TT", "CT_TIENHD"."VAT_TT" "VAT_TT", "CT_TIENHD"."TIEN_KM" "TIEN_KM", "CT_TIENHD"."VAT_KM" "VAT_KM", "CT_TIENHD"."HDTB_ID" "HDTB_ID" FROM
"CSS_LAN"."CT_TIENHD" "CT_TIENHD" ) "CT_TIENHD" ON ( ( "HD_THUEBAO"."HDTB_ID" = "CT_TIENHD"."HDTB_ID" ) ) WHERE
("HD_THUEBAO"."TTHD_ID" not in (1,7)/* JOINER */)) "AGG_INPUT" GROUP BY
"AGG_INPUT"."CTKM_ID","AGG_INPUT"."PHUONG_ID","AGG_INPUT"."LOAITB_ID","AGG _INPUT"."DONVI_ID","AGG_INPUT"."KHACHHANG_ID","AGG_INPUT"."KIEULD_ID","AGG
_INPUT"."NGAY","AGG_INPUT"."NGAY_TT$2","AGG_INPUT"."MA_TB$2","AGG_INPUT"." NGAYLAP_HD",1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1/* AGGREGATOR */) "AGGREGATOR" ) ; COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK; COMMIT; RETURN FALSE; END; COMMIT; RETURN TRUE; END "DANGKY_DVVT_Bat";
Ánh xạ chuyển đổi số liệu điều hành thi công
FUNCTION "DIEUHANH_TC_Bat" RETURN BOOLEAN IS BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; BEGIN INSERT INTO "DIEUHANH_TC"("NGAY_GIAO","NGAY_TH","SONGAY","DICHVU_VT", "DONVI_TC","HUONGGIAO","THOIGIAN","THUEBAO","KIEU_YC") (SELECT "GIAOPHIEU"."NGAYGIAO" "NGAYGIAO", "GIAOPHIEU"."NGAY_TH" "NGAY_TH",
trunc( "GIAOPHIEU"."NGAY_TH" ) - trunc ( "GIAOPHIEU"."NGAYGIAO" )/* LAY_SONGAY_TH.OUTGRP1.SONGAY */ "SONGAY",
"HD_THUEBAO"."LOAITB_ID" "LOAITB_ID",
"GIAOPHIEU"."DONVI_NHAN_ID" "DONVI_NHAN_ID", "GIAOPHIEU"."HUONGGIAO_ID" "HUONGGIAO_ID",
to_number(to_char( "GIAOPHIEU"."NGAY_TH" ,'yyyyMMdd'))/* LAY_CHIEU_THOIGIAN.OUTGRP1.NGAY */ "NGAY", "HD_THUEBAO"."THUEBAO_ID" "THUEBAO_ID", "HD_THUEBAO"."KIEULD_ID" "KIEULD_ID" FROM "CSS_LAN"."HD_THUEBAO" "HD_THUEBAO", "CSS_LAN"."GIAOPHIEU" "GIAOPHIEU", "THUEBAO" "THUEBAO" WHERE
( "HD_THUEBAO"."HDTB_ID" = "GIAOPHIEU"."HDTB_ID" ) AND ( "HD_THUEBAO"."THUEBAO_ID" = "THUEBAO"."THUEBAO_ID" ) AND ( "HD_THUEBAO"."TTHD_ID" = 6 ) AND
( "GIAOPHIEU"."NGAY_TH" is not null ) )
;
COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK;
COMMIT;
RETURN FALSE; END;
COMMIT; RETURN TRUE;
END "DIEUHANH_TC_Bat";
Ánh xạ chuyển đổi số liệu chi tiết cƣớc
FUNCTION "CT_CUOC_KH_Bat" RETURN BOOLEAN IS BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; BEGIN INSERT INTO "CT_CUOC_KH" ("CHUGOI","BIGOI","TG_BD","GIO_BD","TG_GOI","TIEN", "VAT","TIENTRU","BYTE_IN","BYTE_OUT","KHACHHANG", "KIEU_CG","KIEU_DV","THOIGIAN","THUEBAO", "MA_VUNG","DICHVU_VT","DONVI_QL","DOITUONG_KH","THANG") (SELECT "MV_CHITIET_CUOC"."CHUGOI" "CHUGOI", "MV_CHITIET_CUOC"."BIGOI" "BIGOI", "MV_CHITIET_CUOC"."GIO_BD" "GIO_BD", to_number(to_char( "MV_CHITIET_CUOC"."GIO_BD" ,'HH24'))/* LAY_GIO_GOI.OUTGRP1.GIO_BD */ "GIO_BD$1", "MV_CHITIET_CUOC"."TG_GOI" "TG_GOI", "MV_CHITIET_CUOC"."TIEN" "TIEN", "MV_CHITIET_CUOC"."VAT" "VAT", "MV_CHITIET_CUOC"."TIENTRU" "TIENTRU", "MV_CHITIET_CUOC"."BYTE_IN" "BYTE_IN", "MV_CHITIET_CUOC"."BYTE_OUT" "BYTE_OUT", "THUEBAO"."KHACHHANG_ID" "KHACHHANG_ID", "MV_CHITIET_CUOC"."KIEUCG_ID" "KIEUCG_ID", "MV_CHITIET_CUOC"."HUONGDT_ID" "HUONGDT_ID",
to_number(to_char( "MV_CHITIET_CUOC"."GIO_BD" ,'yyyyMMdd'))/* LAY_NGAY_GOI.OUTGRP1.NGAY */ "NGAY", "THUEBAO"."THUEBAO_ID" "THUEBAO_ID", "MA_VUNG"."MAVUNG_ID" "MAVUNG_ID", "THUEBAO"."LOAITB_ID" "LOAITB_ID", "THUEBAO"."DONVI_ID" "DONVI_ID", "THUEBAO"."DOITUONG_ID" "DOITUONG_ID", "MV_CHITIET_CUOC"."THANG" "THANG" FROM "TINHCUOC"."MV_CHITIET_CUOC" "MV_CHITIET_CUOC", "THUEBAO" "THUEBAO", "MA_VUNG" "MA_VUNG" WHERE
( "MV_CHITIET_CUOC"."CHUGOI" = "THUEBAO"."MA_TB" ) AND ( "MV_CHITIET_CUOC"."MAVUNG" = "MA_VUNG"."MA_VUNG" ) )
;
COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK;
RETURN FALSE; END;
COMMIT; RETURN TRUE;
END "CT_CUOC_KH_Bat";
Ánh xạ chuyển đổi số liệu xử lý khiếu nại
FUNCTION "XL_KHIEUNAI_Bat" RETURN BOOLEAN IS BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML'; BEGIN INSERT INTO "XL_KHIEUNAI"("NGAY_KN","NGAY_XL","NOIDUNG_XL","DICHVU_VT", "KETQUA_KN","KHACHHANG","THOIGIAN","THUEBAO","NHOM_KN", "DONVI_XLKN") (SELECT "KHIEUNAI"."NGAY_KN" "NGAY_KN", "KHIEUNAI"."NGAY_TL" "NGAY_TL", "KHIEUNAI"."GIAIPHAP_KP" "GIAIPHAP_KP", "DB_THUEBAO"."LOAITB_ID" "LOAITB_ID", "KHIEUNAI"."KETQUAKN_ID" "KETQUAKN_ID", "DB_THUEBAO"."KHACHHANG_ID" "KHACHHANG_ID",
to_number(to_char( "KHIEUNAI"."NGAY_TL" ,'yyyyMMdd'))/* LAY_CHIEU_THOIGIAN.OUTGRP1.THOIGIAN */ "THOIGIAN", "DB_THUEBAO"."THUEBAO_ID" "THUEBAO_ID", "CHITIET_KN"."LOAIKN_ID" "LOAIKN_ID", "KHIEUNAI"."DONVI_GQ_ID" "DONVI_GQ_ID" FROM "GQKN"."KHIEUNAI" "KHIEUNAI", "GQKN"."CHITIET_KN" "CHITIET_KN", "CSS_LAN"."DB_THUEBAO" "DB_THUEBAO" WHERE
( "KHIEUNAI"."KHIEUNAI_ID" = "CHITIET_KN"."KHIEUNAI_ID" ) AND ( "KHIEUNAI"."THUEBAO_ID" = "DB_THUEBAO"."THUEBAO_ID" ) AND ( "KHIEUNAI"."TRANGTHAIKN_ID" = 2 ) AND
( "KHIEUNAI"."NGAY_TL" is not null ) )
;
COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK; COMMIT; RETURN FALSE; END; COMMIT; RETURN TRUE; END "XL_KHIEUNAI_Bat";
Ánh xạ chuyển đổi số liệu báo hỏng
FUNCTION "FT_BAOHONG_Bat" RETURN BOOLEAN IS BEGIN
BEGIN INSERT INTO "BAOHONG" ("NGAY_BH", "GHICHU_HONG", "KHACHHANG", "THOIGIAN", "THUEBAO", "TINHTRANG", "DONVI_QL", "DICHVU_VT") (SELECT "BAOHONG"."NGAY_BH" "NGAY_BH", "BAOHONG"."GHICHU_HONG" "GHICHU_HONG", "DB_THUEBAO"."KHACHHANG_ID" "KHACHHANG_ID",
to_number(to_char( "BAOHONG"."NGAY_BH" ,'yyyyMMdd'))/* LAY_CHIEU_NGAY.OUTGRP1.NGAY */ "NGAY", "BAOHONG"."THUEBAO_ID" "THUEBAO_ID", "BAOHONG"."TINHTRANG_ID" "TINHTRANG_ID", "DB_THUEBAO"."DONVITC_ID" "DONVI_ID", "DB_THUEBAO"."LOAITB_ID" "LOAITB_ID" FROM "BH119"."BAOHONG" "BAOHONG", "CSS_LAN"."DB_THUEBAO" "DB_THUEBAO" WHERE ( "BAOHONG"."THUEBAO_ID" = "DB_THUEBAO"."THUEBAO_ID" ) ) ; COMMIT;
EXCEPTION WHEN OTHERS THEN ROLLBACK; COMMIT; RETURN FALSE; END; COMMIT; RETURN TRUE; END "FT_BAOHONG_Bat";
Phụ lục 3: CÂU LỆNH SQL LẤY DỮ LIỆU CỦA CÁC BÁO CÁO PHÂN TÍCH
Thống kê phát triển thuê bao theo thời gian
select ROW_NUMBER() OVER (ORDER BY donvi_ql desc) stt, ten_dv, pt PhatTrien,tl ThanhLy, pt-tl PhatSinh
from (
SELECT a.donvi_ql, b.ten_dv, sum(decode(c.loaihd_id,1,1,0)) pt, sum(decode(c.loaihd_id,4,1,0)) tl
FROM wh_ccbs.phattrien_tb a, wh_ccbs.donvi_ql b, wh_ccbs.kieu_yc c, wh_ccbs.thoigian d, wh_ccbs.dichvu_vt e
where a.donvi_ql = b.donvi_id and a.kieu_yc = c.kieuyc_id and a.thoigian = d.dimension_key and a.dichvu_vt = e.loaitb_id and d.day_day_code>={?ngay_bd} and d.day_day_code<={?ngay_kt} and b.vttinh_id = {?vttinh_id} and e.dichvuvt_id = {?dichvuvt_id} group by a.donvi_ql, b.ten_dv
)
Thống kê PTTB trong chƣơng trình khuyến mãi
select ROW_NUMBER() OVER (ORDER BY donvi_ql desc) stt, ten_dv, sum(pt) PhatTrien,sum(tl) ThanhLy, sum(pt)-sum(tl) PhatSinh
from (
SELECT a.donvi_ql, b.ten_dv, count(1) pt, 0 tl
FROM wh_ccbs.phattrien_tb a, wh_ccbs.donvi_ql b, wh_ccbs.kieu_yc c, wh_ccbs.thoigian d, wh_ccbs.dichvu_vt e
where a.donvi_ql = b.donvi_id and a.kieu_yc = c.kieuyc_id and a.thoigian = d.dimension_key and a.dichvu_vt = e.loaitb_id and a.chuongtrinh_km = {?ctkm_id} and b.vttinh_id = {?vttinh_id} and e.dichvuvt_id = {?dichvuvt_id} and c.loaihd_id = 1
group by a.donvi_ql, b.ten_dv union all
SELECT a.donvi_ql, b.ten_dv, 0 pt, count(1) tl
FROM wh_ccbs.phattrien_tb a, wh_ccbs.donvi_ql b, wh_ccbs.kieu_yc c, wh_ccbs.thoigian d, wh_ccbs.dichvu_vt e
where a.donvi_ql = b.donvi_id and a.kieu_yc = c.kieuyc_id and a.thoigian = d.dimension_key and a.dichvu_vt = e.loaitb_id
and d.day_day_code>=(select to_char(max(ngay_bd),'yyyyMMdd') from wh_ccbs.chuongtrinh_km where ctkm_id = {?ctkm_id})
wh_ccbs.chuongtrinh_km where ctkm_id = {?ctkm_id}) and b.vttinh_id = {?vttinh_id}
and e.dichvuvt_id = {?dichvuvt_id} and c.loaihd_id = 4
group by a.donvi_ql, b.ten_dv ) a group by a.donvi_ql, a.ten_dv Thống kê doanh thu
SELECT ROW_NUMBER() OVER (ORDER BY a.donvi_ql) stt, c.ten_dv,
sum(a.socuoc) cuoc, sum(a.tien) tien, sum(a.vat) vat, sum(a.tong) tong FROM wh_ccbs.mv_thongke_doanhthu a, wh_ccbs.thang b, wh_ccbs.donvi_ql c where a.thang = b.dimension_key
and a.donvi_ql = c.donvi_id and c.vttinh_id = {?vttinh_id}
and b.calendar_year_cal_year_code = {?nam}
and decode({?quy},0,0,b.calendar_quart_cal_quarter_co) = {?quy} and decode({?thang},0,0,b.calendar_month_cal_month_code) = {?thang} group by a.donvi_ql, c.ten_dv
Thống kê doanh thu sản phẩm
SELECT ROW_NUMBER() OVER (ORDER BY c.dichvuvt_id) stt, c.dichvuvt_id, c.ten_dvvt, sum(a.socuoc) cuoc, sum(a.tien) tien, sum(a.vat) vat, sum(a.tong) tong
FROM wh_ccbs.mv_thongke_doanhthu a, wh_ccbs.thang b, wh_ccbs.dichvu_vt c, wh_ccbs.donvi_ql d
where a.thang = b.dimension_key and a.dichvu_vt = c.loaitb_id and a.donvi_ql = d.donvi_id and d.vttinh_id = {?vttinh_id}
and b.calendar_year_cal_year_code = {?nam}
and decode({?quy},0,0,b.calendar_quart_cal_quarter_co) = {?quy} and decode({?thang},0,0,b.calendar_month_cal_month_code) = {?thang} group by c.dichvuvt_id, c.ten_dvvt
Danh sách khách hàng có doanh thu cao nhất
select * from (
SELECT ROW_NUMBER() OVER (ORDER BY a.tong desc) stt, b.ma_kh, b.ten_kh, b.diachi_kh, a.tien, a.vat, a.tong
FROM wh_ccbs.mv_tonghop_cuoc_sd_kh PARTITION(P{?thang}) a, wh_ccbs.khachhang b
where a.khachhang = b.khachhang_id order by a.tong desc
) where stt<={?soluong} Thống kê thanh toán
SELECT ROW_NUMBER() OVER (ORDER BY a.donvi_ql desc) stt, c.ten_dv, sum(a.hoahong) cuoc, sum(a.tien) tien, sum(a.vat) vat, sum(a.tong) tong FROM wh_ccbs.mv_thongke_tien_tt a, wh_ccbs.thang b, wh_ccbs.donvi_ql c where a.thang = b.dimension_key
and a.donvi_ql = c.donvi_id and c.vttinh_id = {?vttinh_id}
and b.calendar_year_cal_year_code = {?nam}
and decode({?thang},0,0,b.calendar_month_cal_month_code) = {?thang} group by a.donvi_ql, c.ten_dv
Thống kê nợ
SELECT ROW_NUMBER() OVER (ORDER BY a.donvi_ql desc) stt, c.ten_dv, sum(a.hoahong) cuoc, sum(a.tien) tien, sum(a.vat) vat, sum(a.tong) tong FROM wh_ccbs.mv_thongke_tien_no a, wh_ccbs.thang b, wh_ccbs.donvi_ql c where a.thang = b.dimension_key
and a.donvi_ql = c.donvi_id and c.vttinh_id = {?vttinh_id}
and b.calendar_year_cal_year_code = {?nam}
and decode({?quy},0,0,b.calendar_quart_cal_quarter_co) = {?quy} and decode({?thang},0,0,b.calendar_month_cal_month_code) = {?thang} group by a.donvi_ql, c.ten_dv
Thống kê khiếu nại khách hàng
SELECT ROW_NUMBER() OVER (ORDER BY c.nhomkn_id desc) stt, c.nhom_kn, count(1) sl
FROM wh_ccbs.khieunai a, wh_ccbs.thoigian b, wh_ccbs.nhom_kn c, wh_ccbs.dichvu_vt d
where a.thoigian = b.dimension_key and a.nhom_kn = c.loaikn_id
and b.calendar_month_cal_month_code = {?thang} and a.dichvu_vt = d.loaitb_id
and d.dichvuvt_id = {?dichvuvt_id} group by c.nhomkn_id, c.nhom_kn
Thống kê sử dụng dịch vụ theo địa chỉ
SELECT ROW_NUMBER() OVER (ORDER BY c.ten_huyen,c.ten_phuong desc) stt, c.ten_phuong, c.ten_huyen, count(1) sl
FROM wh_ccbs.sudung_dvvt a, wh_ccbs.donvi_ql b, wh_ccbs.diachi c, wh_ccbs.dichvu_vt d
where a.diachi = c.phuong_id and a.dichvu_vt = d.loaitb_id and a.donvi_ql = b.donvi_id and b.vttinh_id = {?vttinh_id} and d.dichvuvt_id = {?dichvuvt_id}
and decode({?quan_id},0,0,c.quan_id) = {?quan_id} group by c.ten_phuong, c.ten_huyen
Thống kê báo hỏng
SELECT ROW_NUMBER() OVER (ORDER BY c.tinhtrang_id desc) stt, c.tinhtrang, count(1) sl
FROM wh_ccbs.baohong a, wh_ccbs.thoigian b, wh_ccbs.tinhtrang c, wh_ccbs.dichvu_vt d
where a.thoigian = b.dimension_key and a.tinhtrang = c.tinhtrang_id
and b.calendar_month_cal_month_code = {?thang} and a.dichvu_vt = d.loaitb_id
and d.dichvuvt_id = {?dichvuvt_id}