Yêu cầu thg 7 15, 2022 12:58 SA 368 0 2
  • 368 0 2
0

[MySQL] Hỏi về cách viết 1 câu query tính tổng số sản phẩm bán theo ngày.

Chia sẻ
  • 368 0 2

Em có 2 table là Order và Product. Yêu cầu bài toán là liệt kê ra hết các sản phẩm trong bảng product, và ứng với mỗi ngày trong một khoảng thời gian nào đó thì tính ra tổng số lượng đã bán được của sản phẩm (như bảng* Kết quả mong muốn*)

Em không biết cách viết câu Query để có thể đưa cột ngày lên làm hàng được. Em có thử dùng câu while trong câu select nhưng nó không work, rất mong mọi người giúp đỡ.

Em cảm ơn,

Product Table:

id name
1 A
2 B
3 C

Order Table:

id user_id product_id date quantity
1 1 1 2022-07-01 2
2 1 1 2022-07-02 3
3 1 2 2022-07-01 5
4 1 1 2022-07-02 2
5 1 1 2022-07-03 12
6 1 3 2022-07-05 2
7 1 2 2022-07-05 1

Kết quả mong muốn

Name 2022-07-01 2022-07-02 2022-07-03 2022-07-04 2022-07-05
A 2 3 12 0 0
B 5 0 0 0 1
C 0 0 0 0 2

2 CÂU TRẢ LỜI


Đã trả lời thg 7 16, 2022 7:13 SA
Đã được chấp nhận
Chia sẻ
Đã trả lời thg 7 15, 2022 1:52 SA
0

Bạn thay đổi 1 tí về kết quả mong muốn thì bài toán sẽ trở nên dễ hơn.

name date sum_quantity
A 2022-07-01 2
A 2022-07-02 3
A 2022-07-03 12
.... ......... ....

Thì khi đó SQL sẽ là

select t1.name, t2.date, sum(t2.quantity) as sum  from product t1
inner join order t2 on t1.id = t2.product_id
group by t2.date
order by t1.name;

Câu SQL bên trên sẽ không chạy được vì tên bảng là order trùng với SQL keyword. Bạn nên đổi lại tên bạn cho hợp lý.

Chia sẻ
Avatar Hoang Bich @bichht-0889
thg 7 15, 2022 1:57 SA

Cảm ơn bạn. nhưng mình cần hiện theo kiểu như trên á bạn.

Avatar TAMIX @tuananhbfs
thg 7 16, 2022 2:52 SA

@bichht-0889 bạn hãy query như Bạn ở trên nói. Sau đó sẽ can thiệp sắp xếp lại Array kết quả theo "kết quả mong muốn" của bạn.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí