我正在嘗試查找當前周的記錄數。 我當前的查詢是:Mysql count()獲取錯誤結果
SELECT Week(Str_to_date(products_options_values, '%m-%d-%Y'), 1) AS order_week,
Year(Str_to_date(products_options_values, '%m-%d-%Y')) AS order_year,
order_active,
Count(op.sub_order_id) AS deliveries
FROM orders_products_attributes opa
LEFT JOIN orders_products op
ON (opa.orders_products_id = op.orders_products_id)
GROUP BY order_week,
order_year
HAVING order_week = '31'
AND order_year >= '2013'
AND order_active = 0
ORDER BY order_week
它獲取deliveries
AS 2
作爲地方實際上有4條記錄,如果我刪除COUNT
和GROUP BY
後運行相同的查詢,它正確地顯示所有4行。同樣的問題也會在其他幾周發生,例如第34周有3條記錄,但上面的查詢將其作爲4取而代之。此外,另一個奇怪的是,在GROUP BY
子句中,如果我刪除order_week
或order_year
中的任一個,查詢將返回一個空的結果集。
任何想法我做錯了什麼?
一些示例數據將是很好 –