我正在我的网络应用程序中尝试这个:
$data = date("Y-m-d", strtotime("-15 days", strtotime(date("Y-m-d"))));
$sql = "SELECT DISTINCT(Cliente.idCliente), Cliente.nomeCliente, Cliente.email, Cliente.cpf
FROM Cliente, Pontuacao
WHERE Cliente.idCliente = Pontuacao.idCliente
AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='".$data."'
AND Cliente.receberMensagens=1
AND Cliente.numEstabelecimento='".$reg['numEstabelecimento']."'";
我直接在phpMyAdmin中测试了查询,就像那样:
SELECT DISTINCT(Cliente.idCliente), Cliente.nomeCliente, Cliente.email, Cliente.cpf
FROM Cliente, Pontuacao
WHERE Cliente.idCliente = Pontuacao.idCliente
AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='2016-03-28'
AND Cliente.receberMensagens=1
AND Cliente.numEstabelecimento=2
但是,我收到以下错误:
#1111 - 无效使用群组功能
我知道这是因为行
AND DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d')='2016-03-28'
但我不知道如何解决这个问题。我该如何解决这个问题?
答案 0 :(得分:0)
SELECT Cliente.idCliente, Cliente.nomeCliente, Cliente.email, Cliente.cpf
FROM Cliente
JOIN Pontuacao ON Cliente.idCliente = Pontuacao.idCliente
WHERE Cliente.receberMensagens=1
AND Cliente.numEstabelecimento=2
GROUP BY Cliente.idCliente, Cliente.nomeCliente, Cliente.email, Cliente.cpf
HAVING DATE_FORMAT(MAX(timestampPontuacao)), '%Y-%m-%d') = '2016-03-28'
答案 1 :(得分:-1)
看起来您可以使用HAVING
。
SELECT
DISTINCT(Cliente.idCliente),
Cliente.nomeCliente,
Cliente.email,
Cliente.cpf,
DATE_FORMAT(MAX(Pontuacao.timestampPontuacao), '%Y-%m-%d') AS max_date
FROM Cliente, Pontuacao
WHERE
Cliente.idCliente = Pontuacao.idCliente
AND Cliente.receberMensagens=1
AND Cliente.numEstabelecimento=2
HAVING
max_date = '2016-03-28';