[Giúp đỡ] Sử dụng hàm SUM join table trả về giá trị trùng lặp SQL

Liên hệ QC

An.BA

Thành viên thường trực
Tham gia
15/9/18
Bài viết
223
Được thích
170
Giới tính
Nam
1547216839210.png
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 ạ,

1547216852366.png

Em cảm ơn!
 
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!

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
 
Em cảm ơn ạ, em làm như vậy cũng là theo yêu cầu của người dùng thôi ạ :)
Bài đã được tự động gộp:

Tiện đây bác cho e hỏi là
1547282230892.png1547282251474.png

2 bảng như này thì làm thế nào để truy vấn nó ra kết quả như sau ạ
1547282279621.png
kết quả truy vấn này bên phát sinh nó tách ra 1 cột, bên thu tiên nó tách ra 1 cột ý ạ,
Em cảm ơn bác nhiều
 
Lần chỉnh sửa cuối:
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
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ạ.
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
 
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ạ.
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
Đú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 sale
 
Web KT
Back
Top Bottom