【发布时间】:2015-07-08 10:09:43
【问题描述】:
我最近遇到了一个 SQL 查询问题。我试图归档的是在商店中获取每种产品并显示每个月销售了多少。但是,有时这些产品有几个月没有售出,这意味着它们不会被展示。
例如,这是我现在得到的结果
Article Month Sold
CN140027 6 312
CN140027 7 293
CN140027 12 122
CN140186 1 10
CN140186 4 2
虽然我想得到更多这样的东西
Article Month Sold
CN140027 6 312
CN140027 7 293
CN140027 8 0
CN140027 9 0
CN140027 10 0
CN140027 11 0
CN140027 12 122
CN140186 1 10
CN140186 2 0
CN140186 3 0
CN140186 4 2
这是我目前正在使用的查询
SELECT k.artikelnr, Months.datefield as `Months`, IFNULL(SUM(k.menge),0) as `Quantity`
FROM store_shop_korb as k LEFT OUTER JOIN office_calendar AS Months
ON Months.datefield = month(k.date_insert)
WHERE k.date_insert BETWEEN "2014-12-01" AND "2015-12-31"
group by k.artikelnr, Months.datefield
我错过了什么?或者我做错了什么?非常感谢任何帮助。
提前致谢。
编辑: 附加信息:
office_calendar 是日历表。它只包含作为注册表的月份,从 1 到 12。
此外,我从名为“store_shop_korb”的表中获取商品/产品 ID,该表包含已下订单的所有行(因此它包含商品 ID、价格、每个订单的数量......)
【问题讨论】:
-
尝试右外连接而不是左外连接。
-
是的,我已经尝试过左、右和内连接。我仍然得到相同的结果
-
您的日历表中是否实际显示了那些有间隔的月份?我们需要查看您日历表中的数据