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

    solution

    Đề bài: [SQL Server] Điền giá còn thiếu theo giá thấp nhất ngành hàng

    Khi nhập liệu hàng loạt, một số sản phẩm của cửa hàng Bách Hóa Xanh bị bỏ trống giá (NULL). Chính sách tạm thời: gán cho các sản phẩm đó giá thấp nhất trong số các sản phẩm cùng ngành hàng đã có giá. Hãy UPDATE qua bảng dẫn xuất (derived table) rồi in kết quả.

    Bảng sanpham:

    Cột Kiểu Ý nghĩa
    masp varchar(10) Mã sản phẩm (khóa)
    nganhhang varchar(30) Ngành hàng
    gia int Giá bán (đồng), có thể NULL

    Mỗi ngành hàng có sản phẩm bị thiếu giá luôn có ít nhất một sản phẩm đã có giá.

    Ví dụ

    Ngành 'douong' có giá 5000 và 12000, sản phẩm thiếu giá cùng ngành được gán 5000.

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

      Script T-SQL tạo bảng sanpham và chèn dữ liệu (giá thiếu ghi NULL).

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

      1≤1 \le1≤ số dòng ≤1000\le 1000≤1000; giá khác NULL thỏa 0<gia≤1080 < gia \le 10^80<gia≤108.

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

      Sau UPDATE, một SELECT in masp, nganhhang, gia, sắp xếp theo masp tăng dần.

    Ví dụ:

    Đầu vào:

    CREATE TABLE sanpham (masp varchar(10), nganhhang varchar(30), gia int);
    INSERT INTO sanpham VALUES ('SP1','douong',5000),('SP2','douong',12000),('SP3','douong',NULL),('SP4','banhkeo',20000),('SP5','banhkeo',NULL);

    Đầu ra:

    SP1	douong	5000
    SP2	douong	12000
    SP3	douong	5000
    SP4	banhkeo	20000
    SP5	banhkeo	20000

    Giải thích:

    Ngành douong có giá nhỏ nhất 5000 nên SP3 được gán 5000; ngành banhkeo chỉ có một giá 20000 nên SP5 được gán 20000. Các sản phẩm đã có giá giữ nguyên.

    Đang tải editor...