Asked Jul 15th, 2022 12:58 a.m. 349 0 2
  • 349 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.

Share
  • 349 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 ANSWERS


Answered Jul 16th, 2022 7:13 a.m.
Accepted
Share
Answered Jul 15th, 2022 1:52 a.m.
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ý.

Share
Avatar Hoang Bich @bichht-0889
Jul 15th, 2022 1:57 a.m.

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

0
| Reply
Share
Avatar TAMIX @tuananhbfs
Jul 16th, 2022 2:52 a.m.

@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.

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.