USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  SQL
TiagoAlgodas
ITABUNA
BA - BRASIL
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

     
Daniel
Pontos: 2843
SÃO PAULO
SP - BRASIL
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
Pontos: 2843
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
   
TiagoAlgodas
ITABUNA
BA - BRASIL
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
Pontos: 2843 Pontos: 2843
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
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página