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

    solution

    Đề bài: [SQL Server] Trừ tồn kho theo phiếu xuất

    Kho vật tư của xưởng may Thăng Long chốt ngày bằng cách trừ tồn kho theo phiếu xuất. Bảng sanpham:

    Cột Kiểu Ý nghĩa
    ma INT mã vật tư
    ten NVARCHAR(100) tên vật tư
    tonkho INT số lượng tồn

    Bảng xuatkho (các phiếu xuất trong ngày, một vật tư có thể xuất nhiều phiếu):

    Cột Kiểu Ý nghĩa
    ma INT mã phiếu
    masp INT mã vật tư xuất
    soluong INT số lượng xuất

    Hãy trừ tồn kho của mỗi vật tư đi tổng số lượng đã xuất của vật tư đó (một lệnh UPDATE kết hợp JOIN/truy vấn con gộp nhóm; vật tư không có phiếu xuất giữ nguyên). Dữ liệu đảm bảo tồn luôn đủ để trừ. Cuối cùng in toàn bộ tồn kho.

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

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

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

      Mỗi bảng 1≤1 \le1≤ số dòng ≤300\le 300≤300; 0≤soluong≤1040 \le soluong \le 10^40≤soluong≤104; tổng xuất của mỗi vật tư không vượt tồn kho ban đầu.

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

      Sau khi UPDATE, in mỗi dòng gồm 3 cột: ma, ten, tonkho — sắp xếp theo ma tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE sanpham (ma INT, ten NVARCHAR(100), tonkho INT);
    INSERT INTO sanpham VALUES (1, N'Vai kaki', 100),(2, N'Chi may', 50),(3, N'Khuy ao', 80);
    CREATE TABLE xuatkho (ma INT, masp INT, soluong INT);
    INSERT INTO xuatkho VALUES (1, 1, 30),(2, 1, 20),(3, 3, 80);

    Đầu ra:

    1	Vai kaki	50
    2	Chi may	50
    3	Khuy ao	0

    Giải thích:

    Vai kaki bị xuất 30 + 20 = 50, còn 100 - 50 = 50. Khuy ao xuất hết 80, còn 0. Chi may không có phiếu xuất nên giữ nguyên 50.

    Đang tải editor...