Combo SQL Thực Chiến

Combo SQL Thực Chiến | Challenges 030

Table 01

ItemIDItemNameQuantity
1Computer50
2TV10
3Camera35
4Phone40

Table 02

ItemIDItemNameStatusItemsMoved
1ComputerS2
2TVS5
3CameraS15
4PhoneS7
1ComputerP10
2TVR2
3CameraP20
4PhoneR3

Challenge
Cập nhật số lượng sản phẩm tồn kho dựa trên các giao dịch bán (S), mua (P) và hoàn trả (R).

Kết Quả

ItemIDItemNameOrgInvUpdateInv
1Computer5058
2TV107
3Camera3540
4Phone4036

SQL

SELECT 
    i.ItemID,
    i.ItemName,
    i.Quantity AS OrgInv,
    i.Quantity + COALESCE(SUM(CASE WHEN t.Code = 'S' THEN -t.ItemsMoved
                                   WHEN t.Code IN ('P', 'R') THEN t.ItemsMoved
                                   ELSE 0 END), 0) AS UpdateInv
FROM 
    table01 i
LEFT JOIN 
    table02 t ON i.ItemID = t.ItemID
GROUP BY 
    i.ItemID, i.ItemName, i.Quantity;

Bạn nào muốn học phân tích data theo style thực chiến qua tasks, challenges, case studies … thì đăng ký các khóa học về Insight, SQL, PBI, Python … Mình khai giảng các khóa học mới thường xuyên.

Đăng ký Bootcamp 1 lần, bạn sẽ được học tất cả các khóa học hiện tại và mới sau này mà không cần phải đóng thêm phí.

Leave a Comment