Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [SQL Server] Tổng hợp chi tiết đơn hàng qua 5 bảng

    Hệ thống bán hàng có 5 bảng liên kết. Cần lập báo cáo: với mỗi dòng chi tiết đơn, hiển thị tên khách, tên sản phẩm, tên kho và thành tiền.

    Bảng Cột chính Ý nghĩa
    khach makh, tenkh Khách hàng
    don madon, makh Đơn hàng
    chitiet madon, masp, soluong, makho Dòng chi tiết
    sanpham masp, tensp, dongia Sản phẩm
    kho makho, tenkho Kho xuất

    thanhtien = soluong × dongia. JOIN cả 5 bảng (INNER).

    • Định dạng đầu vào:

      SETUP SQL tạo 5 bảng khach, don, chitiet, sanpham, kho và chèn dữ liệu.

    • Ràng buộc đầu vào:

      Mọi khóa ngoại đều khớp. thanhtien = soluong * dongia.

    • Định dạng đầu ra:

      Năm cột: tenkh, tensp, tenkho, soluong, thanhtien. Sắp xếp theo tenkh, tensp, tenkho tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE khach (makh int, tenkh nvarchar(50));
    CREATE TABLE don (madon int, makh int);
    CREATE TABLE chitiet (madon int, masp int, soluong int, makho int);
    CREATE TABLE sanpham (masp int, tensp nvarchar(50), dongia int);
    CREATE TABLE kho (makho int, tenkho nvarchar(50));
    INSERT INTO khach VALUES (1,N'An');
    INSERT INTO don VALUES (10,1);
    INSERT INTO chitiet VALUES (10,100,2,1000);
    INSERT INTO sanpham VALUES (100,N'But',5);
    INSERT INTO kho VALUES (1000,N'Kho HN');

    Đầu ra:

    An	But	Kho HN	2	10

    Giải thích:

    Nối 5 bảng: khách An, sản phẩm But (đơn giá 5), kho HN, số lượng 2, thành tiền = 2*5 = 10.

    Đang tải editor...