我以前从用户JW那里获得了很大的帮助,我需要解决一个带有SQL查询的stackoverflow。但是,自从他的原始答案以来,要求有所改变。
而不是查询查找过去30天内的结果,我现在需要给网站后端的管理员用户选择报告需要覆盖的天数,这样30天就可以了现在任何给定的号码。
我有一个php脚本和文本条目,用户可以输入所需的天数,并计算返回x天的日期。然后将该日期存储在变量中。 我们在其他报告中使用相同的方法,并且效果很好。
JW制定的原始查询是:
SELECT c.customers_id
FROM customers c
INNER JOIN customers_info ci
ON c.customers_id = ci.customers_info_id
LEFT JOIN codes_redeem_history pc
ON c.customers_id = pc.customer_id
WHERE pc.customer_id IS NULL
GROUP BY c.customers_email_address
HAVING MAX(ci.customers_info_date_of_last_logon) <= subdate(now(),INTERVAL 30 DAY)
我现在需要使用以下内容:
WHERE ci.customers_info_date_of_last_logon >= '" . $ndate . "'
我不能用它代替HAVING MAX部分,因为它会产生sql语法错误
我确实尝试过:
WHERE pc.customer_id IS NULL
AND WHERE ci.customers_info_date_of_last_logon >= '" . $ndate . "'
GROUP BY c.customers_email_address
但它没有用。 有关信息,如果我选择10天报告,$ ndate将为'20130301'
谢谢, 史蒂夫
答案 0 :(得分:0)
哇,
我一定是傻了...... 答案对我来说非常明显。
WHERE pc.customer_id IS NULL
AND ci.customers_info_date_of_last_logon >= '" . $ndate . "'
GROUP BY c.customers_email_address
不能使用AND WHERE我们可以!!