Mysql SQL-如何选择日期是星期一还是表中的第一个日期?
我有一个销售报告表(eod_缓存)。我试图得到一份每周销售的清单,从周一开始,或者如果第一次销售的日期不是周一,那么也将其添加到清单中。例如,如果从2011年7月20日开始到今天每天都有销售,则列表如下:Mysql SQL-如何选择日期是星期一还是表中的第一个日期?,mysql,sql,Mysql,Sql,我有一个销售报告表(eod_缓存)。我试图得到一份每周销售的清单,从周一开始,或者如果第一次销售的日期不是周一,那么也将其添加到清单中。例如,如果从2011年7月20日开始到今天每天都有销售,则列表如下: 7/25/2011 7/20/2011 我现在只有星期一,想知道如何在返回日期列表中添加最小/最小日期。以下是我的声明: SELECT DISTINCT date FROM eod_cache WHERE DAYOFWEEK(date) = 2 ORDER
7/25/2011
7/20/2011
我现在只有星期一,想知道如何在返回日期列表中添加最小/最小日期。以下是我的声明:
SELECT DISTINCT date
FROM eod_cache
WHERE DAYOFWEEK(date) = 2
ORDER BY date DESC
您可以将
或
条件添加到您的DAYOFWEEK
条件中,该条件也允许输入最小的日期
SELECT DISTINCT date
FROM eod_cache
JOIN user_store_permissions
ON user_store_permissions.store_id = eod_cache.store_id
WHERE user_store_permissions.user_id = 32 AND
(DAYOFWEEK(date) = 2 or date = (select min(date) from eod_cache))
ORDER BY date DESC
在本例中,我只是使用表本身中的最小日期,尽管看起来您可能希望修改该查询以使用权限基础结构,但是,这种修改应该是不言自明的。您可以将
或
条件添加到您的DAYOFWEEK
条件中,该条件也允许在最小的日期内进行修改
SELECT DISTINCT date
FROM eod_cache
JOIN user_store_permissions
ON user_store_permissions.store_id = eod_cache.store_id
WHERE user_store_permissions.user_id = 32 AND
(DAYOFWEEK(date) = 2 or date = (select min(date) from eod_cache))
ORDER BY date DESC
在本例中,我只是使用表本身中的最小日期,尽管看起来您可能希望修改该查询以使用权限基础结构,但该修改应该是不言自明的。谢谢!我不认为以这种方式使用子查询。我修改了子查询以使用您推荐的我加入的权限,它可以正常工作。@Kyle:很高兴听到这个消息!如果这能解决您的问题,请务必将此标记为答案。谢谢!我不认为以这种方式使用子查询。我修改了子查询以使用您推荐的我加入的权限,它可以正常工作。@Kyle:很高兴听到这个消息!如果这能解决您的问题,请务必将其标记为答案。