Tôi có truy vấn này:mysql Chọn từ Chọn
SELECT DATE(a.created_at) AS order_date, count(*) as cnt_order
FROM `sales_order_item` AS a
WHERE MONTH(a.created_at) = MONTH(now())-1
GROUP BY order_date
mà sẽ trả về kết quả như thế này (ảnh chụp chỉ khác sẽ trở lại mỗi 31 ngày):
order_date cnt_order
2012-08-29 580
2012-08-30 839
2012-08-31 1075
và truy vấn đầy đủ của tôi là lựa chọn dựa trên lựa chọn ở trên:
SELECT order_date
, MAX(cnt_order) AS highest_order
FROM (
SELECT DATE (a.created_at) AS order_date
, count(*) AS cnt_order
FROM `sales_order_item` AS a
WHERE MONTH(a.created_at) = MONTH(now()) - 1
GROUP BY order_date
) AS tmax
Nhưng kết quả:
order_date highest_order
2012-08-01 1075
Ngày nào có ngày sai và luôn chọn hàng đầu tiên của ngày giả sử ngày 2012-08-31. Có lẽ đây là một lỗi đơn giản mà tôi không biết. Vì vậy, làm thế nào để có được ngày đúng điểm đến 2012-08-31? Bất kỳ sự trợ giúp nào đều sẽ là tuyệt vời.
bạn đã tổng hợp kết quả từ truy vấn phụ mà kết quả giá trị duy nhất mà đến lượt nó cũng chính xác. tại sao bạn thực sự muốn đạt được? \ –
Để nhận được số lượng đơn đặt hàng cao nhất từ truy vấn con đó, bạn có thể thấy giá thầu tối đa() nhận được đúng 1075 nhưng tại sao ngày đó sai. – Ardeus