【发布时间】:2017-11-04 19:35:58
【问题描述】:
我有一个表格,其结构和数据如下。
id ean Control_date qty
1 4046228081410 26.05.2017 568
2 4046228081410 05.06.2017 900
我的预期结果如下所示
2 4046228081410 05.06.2017 1468
为了实现这一点,我使用以下查询
SELECT EAN,Control_date,SUM(Qty) AS Qty FROM mytable WHERE
(STR_TO_DATE(`Control_date`,'%d.%m.%Y') <= STR_TO_DATE('03.06.2017','%d.%m.%Y')
OR
STR_TO_DATE(`Control_date`, '%d.%m.%Y') <= DATE_ADD(STR_TO_DATE('03.06.2017', '%d.%m.%Y'), INTERVAL 7 DAY))
AND ean = 4046228081410
这里我需要总结控制日期今天日期的数量,应该小于今天日期+7天。这里第二个控制日期是 05.06.2017 并且大于今天日期并且小于(03.05.2017 +7 天) 但我总是得到控制日期小于今天日期的地方。
1 4046228081410 26.05.2017 1468
但我需要控制日期 05.06.2017 的数据。 任何帮助将不胜感激。
【问题讨论】:
-
这两个日期条件是多余的。如果日期从现在开始少于 7 天,则它也比今天少。此外,您需要一个分组(EAN?)和 control_date 的最大值。请参阅下面的答案
-
修复你的数据结构!日期应使用
date数据类型存储,而不是字符串。