0

我以前在 stackoverflow 上得到了用户 JW 的很大帮助,我需要解决一个 SQL 查询。但是,自他最初的回答以来,要求发生了一些变化。

我现在需要为网站后端的管理员用户提供选择报告需要涵盖的天数的选项,而不是查找过去 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 

但它没有用。有关信息,如果我选择 a10 天报告,$ndate 将是 '20130301'

谢谢,史蒂夫

4

1 回答 1

0

哇,

我一定有我的愚​​蠢头脑......答案现在对我来说是如此明显。

WHERE   pc.customer_id IS NULL
AND ci.customers_info_date_of_last_logon >= '" . $ndate . "'
GROUP   BY c.customers_email_address 

不能使用,我们可以在哪里使用!!

于 2013-03-11T02:17:28.870 回答