SQL - Làm thế nào để cập nhật dữ liệu tới một bảng trong truy vấn dùng JOIN và GROUP BY

Hôm nay mình đọc được câu hỏi của một bạn trong Group 'Lập trình viên' trên Facebook về SQL thấy rất hay, nói chung đối với mình nó không khó vì mình đã đi làm nhiều năm và dạng query kiểu này mình cũng làm rất nhiều rồi. Tuy nhiên mình thấy nó tương đối quan trọng và thường hay được sử dụng trong lập trình ứng dụng với database mà không phải ai cũng biết.
Vì vậy mình viết lời giải lên đây hi vọng các bạn Sinh viên chưa đi làm và chưa có nhiều kinh nghiệm về lập trình sql có thể tham khảo để phần nào tích thêm 1 chút kinh nghiệm nho nhỏ.
Câu hỏi:

[SQL]
Mọi người giúp em lấy CSDL từ trường DonGia để update vao trường TongTien vậy.
AI chỉ em cách viết Ham, Thu tục hay Trigger cho yêu cầu đó với.
Em cảm ơn ak?
Đáp án:
--CREATE A STORE PROCEDURE FOR UPDATING [TONGTIEN].
CREATE PROCEDURE sp_UpdateTONGTIEN_PhieuXuat
AS
BEGIN
       WITH t2 AS
       (
           select a.MaPX, sum(c.DonGia) as TongTien
           from PhieuXuat a
           join ChiTietPhieuXuat b on a.MaPX = b.MaPX
           join Xe c on c.MaXe = b.MaXe
           group by a.MaPX
       )
       UPDATE t1
       SET t1.TongTien = t2.TongTien
       FROM PhieuXuat AS t1
       INNER JOIN t2
       ON t1.MaPX = t2.MaPX
END

--EXEC STORE PROCEDURE
Exec sp_UpdateTONGTIEN_PhieuXuat

--SEE RESULT AFTER UPDATED.
select * from Xe
select * from ChiTietPhieuXuat
select * from PhieuXuat

 


Trương Đức Tài