Consulta SQL - select
Estou precisando fazer uma consulta dentro de outra consulta e não estou conseguindo.
Exemplo: na minha tabela de VENDAS eu tenho CODCLI, DATAVENDA e NUMVENDA
Preciso saber todos os clientes que fizeram compras em janeiro de 2006 e não voltaram mais desde o inicio de 2007 até hoje.
Todos os clientes que compraram em janeiro de 2006:
Todos os clientes que compraram de janeiro de 2007 até hoje:
Como eu faço para saber quais clientes que estão na primeira consulta e não estão na segunda? Não consigo montar um subselect que faça isso. Obs.: Estou utilizando SQLServer 2000.
Desde já agradeço.
Exemplo: na minha tabela de VENDAS eu tenho CODCLI, DATAVENDA e NUMVENDA
Preciso saber todos os clientes que fizeram compras em janeiro de 2006 e não voltaram mais desde o inicio de 2007 até hoje.
Todos os clientes que compraram em janeiro de 2006:
select CODCLI from VENDAS where DATAVENDA between ´2006-jan-01´ and ´2006-jan-31´
Todos os clientes que compraram de janeiro de 2007 até hoje:
select CODCLI from VENDAS where DATAVENDA between ´2007-jan-01´ and ´2007-apr-16´
Como eu faço para saber quais clientes que estão na primeira consulta e não estão na segunda? Não consigo montar um subselect que faça isso. Obs.: Estou utilizando SQLServer 2000.
Desde já agradeço.
Dgsfilho
Curtidas 0
Respostas
Wagnerbianchi
16/04/2007
Faça uma subconsulta no WHERE!
GOSTEI 0
Psergio.p
16/04/2007
SELECT CODCLI FROM VENDAS WHERE
DATAVENDAS BETWEEN ´2006-JAN-01´ AND ´2006-JAN-31´
AND CODCLI NOT IN(SELECT DISTINCT CODCLI FROM VENDAS WHERE DATAVENDAS BETWEEN ´2007-JAN-01´ AND ´2007-APR-16´)
Acho que é isso, tenta aí
DATAVENDAS BETWEEN ´2006-JAN-01´ AND ´2006-JAN-31´
AND CODCLI NOT IN(SELECT DISTINCT CODCLI FROM VENDAS WHERE DATAVENDAS BETWEEN ´2007-JAN-01´ AND ´2007-APR-16´)
Acho que é isso, tenta aí
GOSTEI 0