|
Postada em 20/10/2005 14:34 hs
Olá caros colegas, Esta SQL abaixo tem como intuito selecionar os cliente que não compram há 30 ou mais dias , ou seja cujo ultimo registro de data do cliente na tabela venda seja igual ou maior que 30 , está dando um erro do tipo : "Uso inválido do grupo de função" , confiram a sql : SELECT c.nome from cliente as c INNER JOIN venda as v on c.id = v.idcli WHERE TO_DAYS(NOW()) - TO_DAYS(MAX(v.data)) >= 30 group by c.nome Acho que o erro estah no MAX(v.data) dentro da função TO_DAYS, mas tenho que usa-lo para pegar a ultima data de compra do cliente( a maior) , espero ajuda, Abraço .
Tiago Gomes Pereira ------------------------------------ MSN: algodasirs@hotmail.com E-mail: algodas@gmail.com
|
|
|
|
|
Postada em 20/10/2005 14:51 hs
eu faço da seguinte forma SELECT Clientes.Nome FROM Clientes INNER JOIN Pedidos ON Clientes.Codigo = Pedidos.Cod_Cli GROUP BY Clientes.Nome_R HAVING (((Max(Pedidos.Emissao))=Date()-30));
dsmn
|
|
|
Gboese
|
SANTO ANDRÉ SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 20/10/2005 14:52 hs
Tiago Acho mais fácil vc fazer assim: SELECT c.nome FROM cliente as c INNER JOIN venda as v ON c.id = venda.idcli WHERE v.data <= getdate() - 30 isto só funciona no SQL Server. Este getdate() pega a data atual.. Espero ter ajudado Abraços
Gustavo Boese
|
|
|
Daniel
|
SÃO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 20/10/2005 14:53 hs
desculpa só muda o sinal para < ou seja SELECT Clientes.Nome FROM Clientes INNER JOIN Pedidos ON Clientes.Codigo = Pedidos.Cod_Cli GROUP BY Clientes.Nome_R HAVING (((Max(Pedidos.Emissao))<Date()-30));
dsmn
|
|
|
|
Postada em 20/10/2005 15:12 hs
Ae galera , jah tentei todas essas sugestoes mas tipo assim, tem registros qque ele pega as data que tem mais de trinta dias, mas ele naum tah levando em consideração a ultima data de compra e ai diminuir ... tipo ele seleciona os registros que tem data de mais de trinta dias mas esse cliente tb tem compras recentes.
Tiago Gomes Pereira ------------------------------------ MSN: algodasirs@hotmail.com E-mail: algodas@gmail.com
|
|
|
Martini
|
PAROBÉ RS - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 20/10/2005 18:32 hs
assim busca todos os clientes que estão há mais de 30 dias sem fazer compra SELECT Pedidos.CodigoCliente, Clientes.Nome, Min(DateDiff("d",Pedidos.Data,Date())) AS DiasSemCompra FROM Clientes INNER JOIN Pedidos ON Clientes.CodigoCliente = Pedidos.CodigoCliente GROUP BY Pedidos.CodigoCliente, Clientes.Nome Having Min(DateDiff("d",Pedidos.Data,Date())) > 30
|
|
|