TÌM HIỂU VỀ TRUY VẤN MDX
Ta có cơ sở dữ liệu QuanLyBanHang sau:
DimHangHoa(MaHang, TenHang, SoLuong, DonGia, MaLoai)
DimHoaDon(MaHD, MaCuaHang, TongGiaTri)
DimKhachHang(MaKH, TenKH, DiaChi, GioiTinh, ThuNhap, HocVan)
DimKhuVuc(MaKV, QuocGia, ThanhPho)
DimLoaiHang(MaLoai, TenLoai)
DimThoiGian(IDTime, Ngay, Thang, Nam)
FactBanHang(MaHang, HaHD, MaKH, MaKV, IDTime, SoLuong, DonGia,
DoanhThu)
a) Hiển thị tên các mặt hàng trong danh mục hàng hóa
Select {[DimHangHoa].[TenHang].[TenHang]} On Columns
From [QuanLyBanHang];
b) Cho biết doanh thu của từng mặt hàng
Select [Mesures].[Doanh thu] On Columns,
{[DimHangHoa].[TenHang].[TenHang]} On Rows
From [QuanLyBanHang];
c) Cho biết tổng doanh thu của năm 2017, 2018, 2019, 2020
Select{[DimThoiGian].[Nam].&[2017]:[DimThoiGian].[Nam].&[2020]}On Rows,
[Mesures].[Doanh thu] On Columns
From [QuanLyBanHang];
d) Dùng Cross Join để nối những nhóm dữ liệu cùng hoặc khác chiều
Select{[DimHangHoa].[SoLuong].[SoLuong]*
[DonGia]} On Rows,
[DimHangHoa].[TenHang] On Columns
From [QuanLyBanHang];
[DimHangHoa].[DonGia].
e) Liệt kê tên hàng và thành tiền các mặt hàng của năm 2017
Chú thích: Non Empty dùng để loại bỏ khoảng trống , null trong bảng.
Select Non Empty CrossJoin{[DimHangHoa].[SoLuong].[SoLuong]*
[DimHangHoa].[DonGia].[DonGia]} On columns, [DimHangHoa].[TenHang].
[TenHang] on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2017];
f) Liệt kê tên hàng và thành tiền các mặt hàng của năm 2017 và 2020
Select Non Empty CrossJoin{[DimHangHoa].[SoLuong].[SoLuong] *
[DimHangHoa].[DonGia].[DonGia]} On columns, [DimHangHoa].[TenHang].
[TenHang] on rows
From [QuanLyBanHang]
Where {[DimThoiGian].[Nam].&[2017], [DimThoiGian].[Nam].&[2020]};
g) Liệt kê số lượng và đơn giá các mặt hàng Omachi của năm 2017 và 2020
Select Non Empty ({[Mesures].[SoLuong], [Mesures].[DonGia]}) on columns
From [QuanLyBanHang]
Where {[DimThoiGian].[Nam].&[2017], [DimThoiGian].[Nam].&[2020]
& [DimHangHoa].[TenHang].&[Omachi]};
h) Cho biết top 5 hàng hóa bán chạy nhất trong các năm
Select [Mesures].[SanPham] on columns,
TopCount([DimHangHoa].[TenHang].children, 5, [Mesures].[SanPham]) on
rows
From [QuanLyBanHang];
i) Cho biết tổng số tiền hàng hóa bán được trong hóa đơn theo thứ tự giảm
dần
Select [Mesures].[TongTien] on columns,
Order ([DimHoaDon].[TongGiaTri].children, [Mesures].[TongGiaTri], Desc) on
rows
From [QuanLyBanHang];
j) Cho biết tên những khách hàng mua nhiều hàng hóa nhất năm 2018
Select [Mesures].[SoLuong] on columns,
NonEmpty([DimKhachHang].[TenKH].children) on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2018];
k) Cho biết tổng số lượng người mua trong tháng 12 năm 2018
Select [Mesures].[TongNguoiMua] on columns,
[DimThoiGian].[Thang].&[12]on rows
From [QuanLyBanHang]
Where [DimThoiGian].[Nam].&[2018];
l) Tổng doanh thu theo từng năm của cửa hàng
Select [Mesures].[TongDoanhThu] on columns,
NonEmpty([DimThoiGian].[Nam].children) on rows
From [QuanLyBanHang];
m) Cho biết tên những khách hàng mua sản phẩm Omachi với số lượng trên
500
Select Non Empty ([Mesures].[KhachHang].children) On columns,
Non Empty ([DimKhachHang].[TenKH].children)
Having ([Mesures].[KhachHang]>500) on rows
From [QuanLyBanHang]
Where [DimHangHoa].[TenHang].&[Omachi];
n)