Gặp vấn đề về việc đếm số lượng đơn hàng trong DB

Em đang gặp vấn đề về đếm số lượng hàng trong database, mong mọi người chỉ giáo giúp em.
Dữ liệu của em thì có dạng ntn:
dem

Em muốn đếm số lượng đơn hàng. Cách đếm thì như trong hình ạ.
TH1 là màu da cam, các giá trị SP, MaDH, NG, SL trùng nhau mà trong đó SL có giá trị -1 (có nghĩa là hủy toàn bộ số lượng đã đặt) thì tính số lượng đơn hàng là 1
TH2 màu vàng thì có giá trị NG và SL khác nhau, SL lúc này -3 (có nghĩa chỉ hủy một phần) thì tính là 2 đơn đặt hàng.
Em đã thử dùng DISTINCT nhưng chỉ tìm được các giá trị trùng nhau của 1 cột chứ không tìm được ở 1 hàng.
Mọi người xem giúp em với ạ. Em cảm ơn nhiều ạ!

1 Like

Ai vào giúp em với ạ :cry: :cry:

Reply mang tính chất đưa topic lên đầu để mọi người chú ý
Em thấy topic này mãi không có mod nào reply trong khi các topic khác các mod vẫn reply. Em không biết cái này là gì nhưng các mod vào giúp anh ấy đi. Nếu gặp phải topic nhàm thì nhắc anh ấy cái còn nếu chưa nghĩ đc hướng thì tag người nào đó có khả năng vào giúp anh ấy cái. Còn nếu không ai reply nữa thì buồn cho anh chủ thớt là có vẻ như đây là 1 vấn đề quá khó hoặc anh chủ thớt chưa tìm hiểu kĩ các tài liệu trên gu gồ nên các anh ấy không reply.
Nếu rơi phải trường hợp 1 thì xin chia buồn với chủ thớt.
P/s : Nếu có người vào reply thảo luận thì mọi người gắn cờ gỡ cmt này hộ em

3 Likes
select count(*) from [table] group by MaDH;
3 Likes

TH1 là màu da cam, các giá trị SP, MaDH, NG, SL trùng nhau mà trong đó SL có giá trị -1 (có nghĩa là hủy toàn bộ số lượng đã đặt) thì tính số lượng đơn hàng là 1
TH2 màu vàng thì có giá trị NG và SL khác nhau, SL lúc này -3 (có nghĩa chỉ hủy một phần) thì tính là 2 đơn đặt hàng.

Theo ngu kiến của mình thì bạn nên thêm 2 cột để lưu giá trị huỷ toàn bộ và huỷ 1 phần có thể dùng bit(0, 1)
Còn về số lượng cứ để giá trị bình thường vd: Huỷ toàn bộ thì thay vì lưu số lượng là -1 thì sẽ lưu là 1 và HuyToanBo = 1
Tương tự, huỷ 1 phần thì thay vì lưu số lượng là -3 thí sẽ lưu là 2 và HuyMotPhan = 1
Sau đó muốn tính tổng hay đếm gì cứ dùng GROUP BY, SUM, COUNT bình thường không cần quan tâm tới số lượng là -1 hay -3
Muốn tìm đơn huỷ toàn bộ thì điều kiện Where là HuyToanBo = 1 sẽ rõ nghĩa hơn là tìm số lượng = -1

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?