Fabiojdc Postado Setembro 6, 2010 Denunciar Share Postado Setembro 6, 2010 (editado) Bom dia Pessoal,Preciso saber como fazer uma query com o seguinte resultado:Preciso que me mostre os clientes cuja ultima compra foi até 31/12/2009 se o cliente tiver comprado após 31/12/2009 não me mostra o cliente.Muito obrigado pela ajuda.Fabio Editado Setembro 8, 2010 por quintelab Removido duvida (urgente) do título Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 João Paulo Taraciuk Postado Setembro 6, 2010 Denunciar Share Postado Setembro 6, 2010 Poderia ser algo como:SELECT * FROM CLIENTES B WHERE B.Data <= '2009-12-31' AND NOT EXISTS ( SELECT * FROM CLIENTES A WHERE A.Data >= '2010-01-01' and A.CodigoCliente = B.CodigoCliente) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 8, 2010 Denunciar Share Postado Setembro 8, 2010 Não seria muito bom postar na lata assim, mas já que está aqui...Acho que foi um pouco além do que ele queria, hein!!Select * from Clientes Where Data<='2009-12-31'(depende do formato da sua data, conversões, etc...)Aqui ele já NÃO mostra se for maior que dia 31. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 8, 2010 Denunciar Share Postado Setembro 8, 2010 Boa tarde, Creio que o script que o João postou é o correto, uma vez que o cliente pode ter comprado após a data de 31/12/2009. Se isso ocorrer, o resultado não deverá listar o cliente. Apenas uma otimização: ao invés de colocar "SELECT * FROM" no subselect, trocaria pela chave da tabela "SELECT ID FROM"; e ao invés do "AND NOT EXISTS" colocaria "AND ID NOT IN..." :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 10, 2010 Denunciar Share Postado Setembro 10, 2010 Sim...Ele já NÃO vai mostrar o cliente, pois a condição está no Where Data <= 'X'.Se não satisfazer essa condição, está fora!Só comentei, pois uma SubQuery seria performance perdida a toa.! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 10, 2010 Denunciar Share Postado Setembro 10, 2010 Bom dia Thiago, Perceba que o cliente pode ter comprado após a data de 31/12/2009. Se isso ocorrer, o resultado não deverá listar o cliente. Se for um select simples, o cliente pode ser listado, caso tenha compras acima da data limite pesquisada. Apenas a condição Where Data <= 'X' não funcionará. O subselect neste caso será inevitável, apesar da perda de performance. :.) Ex.: create table #Teste (Cliente varchar(1), Data datetime) insert into #Teste values ('A', '2009-12-31') insert into #Teste values ('A', '2010-01-05') Select * from #Teste Where Data<='2009-12-31' Select * from #Teste Where Data<='2009-12-31' AND NOT EXISTS ( SELECT * FROM #Teste WHERE Data >= '2010-01-01') Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 10, 2010 Denunciar Share Postado Setembro 10, 2010 Aaaaah...A UUUUUUUUUULTIMA compra o.ODesculpe x]~Eu não tinha visto...uahuiaohuia!!O cara tá certo =PPPOS kras =)Foi mal mesmo...Não tinha visto lá!!Srry for the missing =P Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 10, 2010 Denunciar Share Postado Setembro 10, 2010 Hehehehe.... sem problemas!! :.) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Fabiojdc
Bom dia Pessoal,
Preciso saber como fazer uma query com o seguinte resultado:
Preciso que me mostre os clientes cuja ultima compra foi até 31/12/2009 se o cliente tiver comprado após 31/12/2009 não me mostra o cliente.
Muito obrigado pela ajuda.
Fabio
Editado por quintelabRemovido duvida (urgente) do título
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.