从表中获取先前日期的难度

时间:2015-07-21 03:14:10

标签: mysql stored-procedures

我有以下表格:

table: users
id,
companyid,
name,
phone,
date

table: numbers
id

在桌面用户上,我有以下1条记录:

1, 22, 'John', '2123333223', '7/19/2015 10:02:19 AM' 

并且在表号上我有这个:

1,
2,
3,
etc.. until 30 

我正在尝试运行一个连接两个表的查询,它将为我提供以下内容:

0, Jul 15
0, Jul 16
0, Jul 17
0, Jul 18
1, Jul 19
0, Jul 20
0, Jul 21

我创建了以下查询,虽然它会给我我想要的东西但是奇怪的是:

SELECT 
        COUNT(v.id),
        date_format(x.dt, '%b %e') as cdate
  FROM (SELECT DATE_SUB(CURRENT_DATE, INTERVAL (n.id - 1) DAY) AS dt
          FROM `numbers` n
         WHERE n.id <= 7 ) x
LEFT JOIN users v ON DATE(FROM_UNIXTIME(v.date)) = DATE(x.dt)
AND v.companyid=22
 GROUP BY x.dt
 ORDER BY x.dt;

以上查询给我这个:

0, Jul 15
0, Jul 16
0, Jul 17
0, Jul 18
0, Jul 19
0, Jul 20
0, Jul 21

它不计算7月19日的1条记录。有谁知道我做错了什么。在上面的例子中,我硬编码了我的日期范围以检索过去7天但最终我需要做这样的事情:

users.date between @from_date and @to_date;

因为我的存储过程动态获取日期范围。我也试图弄清楚如何在我的查询中包含。我在stackoverflow中阅读了几篇不同的文章,这是我最接近它的工作。任何帮助将非常感谢它非常感谢。

0 个答案:

没有答案