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

    solution

    Đề bài: [SQL Server] Tổng tiền theo từng đơn nhiều mặt hàng

    Hệ thống Highlands Coffee lưu đơn và chi tiết đơn riêng. Cần tính tổng tiền mỗi đơn kèm tên khách.

    Bảng khach:

    Cột Kiểu Ý nghĩa
    makh INT Mã khách
    ten NVARCHAR(50) Tên khách

    Bảng don:

    Cột Kiểu Ý nghĩa
    madon INT Mã đơn
    makh INT Mã khách

    Bảng chitiet:

    Cột Kiểu Ý nghĩa
    madon INT Mã đơn
    mon NVARCHAR(40) Tên món
    soluong INT Số lượng
    dongia INT Đơn giá (đồng)

    Ghép 3 bảng, tính tongtien = SUM(soluong * dongia) mỗi đơn. In madon, ten, tongtien.

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

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

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

      soluong, dongia ≥ 0. Mỗi đơn có ≥ 1 chi tiết. 1 ≤ số đơn ≤ 1000.

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

      Mỗi dòng: madon, ten, tongtien. Sắp xếp theo tongtien giảm dần, madon tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE khach (makh INT, ten NVARCHAR(50));
    CREATE TABLE don (madon INT, makh INT);
    CREATE TABLE chitiet (madon INT, mon NVARCHAR(40), soluong INT, dongia INT);
    INSERT INTO khach VALUES
    (1, N'An'),
    (2, N'Binh');
    INSERT INTO don VALUES
    (101, 1),
    (102, 2);
    INSERT INTO chitiet VALUES
    (101, N'Ca phe', 2, 45000),
    (101, N'Banh mi', 1, 30000),
    (102, N'Tra dao', 3, 50000);

    Đầu ra:

    102	Binh	150000
    101	An	120000

    Giải thích:

    Đơn 101 của An: 2*45000 + 1*30000 = 120000. Đơn 102 của Binh: 3*50000 = 150000. Sắp theo tổng tiền giảm dần nên đơn 102 đứng trước.

    Đang tải editor...