Ir para conteúdo
Fórum Script Brasil
  • 0

query SQL


Fabiojdc

Pergunta

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 quintelab
Removido duvida (urgente) do título
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

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)

Link para o comentário
Compartilhar em outros sites

  • 0

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..." :.)

Link para o comentário
Compartilhar em outros sites

  • 0

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')

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...