下面的查詢返回值與銷售幾個月,但不是個月其銷售額爲零:顯示零值月與SQL
SELECT DATE_FORMAT(O.OrderDate, "%b, %Y") AS MonthYear, SUM(O.Total * C.Rate) AS Sales
FROM (Orders O INNER JOIN OrdersStates OS ON O.OrderID = OS.OrderID)
INNER JOIN Users U ON U.UserID = O.UserID
INNER JOIN UsersDescription UD ON U.UserID = UD.UserID
INNER JOIN States S ON S.StateID = OS.StateID INNER JOIN Currencies C ON O.Currency = C.Abb
WHERE O.OrderDate >= '2009-10-01 00:00:00' AND O.OrderDate < '2010-04-19 23:59:59'
GROUP BY MonthYear ORDER BY MonthYear
的目標是讓它返回幾個月零值在沒有銷售。任何人都可以看到缺少什麼?
謝謝你在前進,
奧維
由於數據中不存在日期,因此需要構造日期值列表,並且如果沒有銷售,則該字段爲空或零,則需要構建一個日期值列表,並且將該ORDERS表添加到該列表中... – 2010-04-19 19:31:31
? – 2010-04-19 19:34:32
如果我正確地讀了你,這裏是一個最近類似的問題http://stackoverflow.com/questions/2651249/wanted-to-get-all-dates-in-mysql-result – Unreason 2010-04-19 19:45:22