Array
(
)

Consulta SQL - select

Dgsfilho
   - 16 abr 2007

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:
#Código

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:
#Código
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.

Wagnerbianchi
   - 26 abr 2007

Faça uma subconsulta no WHERE!

Psergio.p
   - 27 abr 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í