View attachment 210825
Em có 1 bảng product và 1 bảng sale như trên,
Mọi người giúp em làm thế nào để trả về kết quả như sau ạ,
View attachment 210826
Em cảm ơn!
SELECT aa.code,
aa.price,
bb.saleoff
FROM (SELECT code,
SUM(price) AS Price
FROM product
GROUP BY code) aa
INNER JOIN (SELECT code,
SUM(saleoff) AS saleoff
FROM sale a
INNER JOIN product b
ON a.id = b.id
GROUP BY code) bb
ON aa.code = bb.code
Cái này theo CSDL LH thì khong hẳn ngộ lắm. Chỉ là người dùng đặt tên trường không đúng cho nên thấy nó lạ.Bài toán này ngộ, hiếm ai dùng như bạn.
SQL:SELECT aa.code, aa.price, bb.saleoff FROM (SELECT code, SUM(price) AS Price FROM product GROUP BY code) aa INNER JOIN (SELECT code, SUM(saleoff) AS saleoff FROM sale a INNER JOIN product b ON a.id = b.id GROUP BY code) bb ON aa.code = bb.code
Đúng là bác hiểu ý em rồi đấy ạ, vì mỗi một mặt hàng có thể có 1 hoặc nhiều loại saleCái này theo CSDL LH thì khong hẳn ngộ lắm. Chỉ là người dùng đặt tên trường không đúng cho nên thấy nó lạ.
Có thể tạm hiểu TP là sản phẩm và MY là phân loại (hoặc kho gì đó).
Điển hình MBY001 có hai món hàng là TP0001 và TP0002; món TP0001 được bán giảm giá (saleoff - đáng lẽ phải là sales discount) 3 lần
Khi hiểu như thế thì bảng kết quả chỉ là tổng hợp sales theo phân loại thôi.
-> Group Sum Sales (Discount?) theo ID, Join với Product, Group Sum lần nữa theo phân loại.
Chú thích:
Danh: produce là rau trái, product mới là sản phẩm
Động: produce là sản xuất