0
我试图根据本教程Using MySQL to generate daily sales reports with filled gaps为特定用户生成每日销售报告。 要做到这一点,我有三个表,记录表,用户表和日历表按天填写空白组
records user calendar
id id datefield
user_id
timestamp
下面将返回0作为总的和NULL作为USER_ID查询时数据不可用的特别的日子,这是伟大:
SELECT calendar.datefield AS DATE,
IFNULL(COUNT(records.id),0) AS total, records.user_id
FROM records
RIGHT JOIN calendar ON (DATE(records.timestamp) = calendar.datefield)
WHERE (
calendar.datefield BETWEEN (NOW() - INTERVAL 14 DAY) AND NOW()
)
GROUP BY DATE DESC
的想法是产生此报告为特定的用户,所以我修改了上面的查询到什么如下:
SELECT calendar.datefield AS DATE,
IFNULL(COUNT(records.id),0) AS total, records.user_id
FROM records
RIGHT JOIN calendar ON (DATE(records.timestamp) = calendar.datefield)
WHERE (
calendar.datefield BETWEEN (NOW() - INTERVAL 14 DAY) AND NOW()
AND records.user_id = SOME_EXISTING_USER_ID
)
GROUP BY DATE DESC
当没有记录时返回空结果,但是想法是在没有数据的特定日期返回0。
如何修改为特定用户工作的第一个查询?
我不断地学习。 ..真棒!谢谢 – Lomse