我试图创建一个报告函数,我在我的数据库中存储了一些具有特定值(closeDate)的数据,这个值只能是7或21,这里是我的表的一个例子:
我想要做的是每22个执行一个查询来选择所有具有Status =" Active"或"批准"和CloseDate<到第22天(Curdate)。我有这个查询,但是这个查询显示了我在图像中的完全一样,我期待的是查询只显示来自Id = 00001和00003的数据,因为Id 00002 CloseDate(2016-10-21)它'不是<至2016-09-22(curdate)。
SELECT tbl_usuarios.Correo, tbl_alertas.Id, tbl_alertas.Purpose, tbl_alertas.Status, tbl_alertas.OpenDate, tbl_alertas.CloseDate, tbl_alertas.Owner, tbl_alertas.ValueStream, tbl_alertas.Family
FROM tbl_usuarios
INNER JOIN tbl_alertas ON tbl_usuarios.Nombre = tbl_alertas.Owner
WHERE STATUS = 'On approve' OR STATUS = 'Active' AND CloseDate < CURDATE()
我做错了什么?
答案 0 :(得分:1)
您可能需要在WHERE条件中重新排列子句。它同时包含OR
和AND
,因此可能无法按您的预期进行解释。
我会尝试这样的事情:
WHERE (STATUS = 'On approve' OR STATUS = 'Active') AND CloseDate < CURDATE()
或者您可以使用IN
:
WHERE STATUS IN ('On approve', 'Active') AND CloseDate < CURDATE()
答案 1 :(得分:0)
SELECT tbl_usuarios.Correo, tbl_alertas.Id, tbl_alertas.Purpose, tbl_alertas.Status, tbl_alertas.OpenDate, tbl_alertas.CloseDate, tbl_alertas.Owner, tbl_alertas.ValueStream, tbl_alertas.Family
FROM tbl_usuarios
INNER JOIN tbl_alertas ON tbl_usuarios.Nombre = tbl_alertas.Owner
WHERE (STATUS = 'On approve' OR STATUS = 'Active') AND DATE(CloseDate) < CURDATE()