【发布时间】:2013-12-31 19:06:25
【问题描述】:
我有三张桌子。
categories表
标识 |名字
items表
标识 |姓名 | category_id
orders表
标识 | item_id |日期时间 |交易代码
现在如何在我的查询中为每个类别的每一天选择具有特定交易代码的总订单。
期望的结果:
Date Category Total
2013-12-01 001 6
2013-12-01 002 0
2013-12-01 003 1
2013-12-02 001 14
2013-12-02 002 2
2013-12-02 003 0
2013-12-03 001 11
2013-12-03 002 4
2013-12-03 003 4
编写此查询的最有效方法是什么。
这是我迄今为止尝试过的:
SELECT DATE(od.trans_date) AS Date, ct.number AS Category, COUNT(od.id) AS Total
from orders od
JOIN items im ON od.item_id = im.id
JOIN categories ct ON im.category_id = ct.id
WHERE od.trans_date BETWEEN '2013-12-01 00:00:00' AND '2013-12-03 23:59:59'
AND (od.transaction_code = 17 OR od.transaction_code = 15)
GROUP BY DATE(od.trans_date), ct.number ASC;
谢谢
【问题讨论】:
-
您的结果关闭???怎么会???
-
我知道我有一些类别的订单为零,但我没有得到一个零
-
如果他们没有订单,那么他们就没有transaction_date,所以他们不满足你的where条件。您可能需要切换加入的方向。