erro em query com subquery

16/06/2004

nesta query:
SELECT * FROM FUNCIONARIO

WHERE (SITUACAO = ´A´) AND (NOT(MATRICULA =

(SELECT TAREFAS.MATRICULA FROM TAREFAS

WHERE (TAREFAS.DATA_INICIAL > :PDataIni) AND (TAREFAS.DATA_FINAL < :PDataFim))))

pretendo buscar todos os funcionarios da tabela FUNCIONARIO que NÃO TENHAM registro na tabela TAREFAS EM um determinado PERIODO...
como fazer? -

a query acima executada dentro da appl. resulta no erro:
...a subquery está retornando mais de uma linha...
isso não é permitido quando a subquery en contra operadores como >=, <=, ...
e por ai vai...
alguem pode ajudar??


Rcastro

Respostas

28/06/2004

Renato Ferreira

Oi,

Fiz um exemplo pra você ...

Segue :
=================================
select
*
from
iniciativa
where
nr_iniciativa not in ( select nr_iniciativa from iniciativa where cd_tipo_iniciativa = 1 )

=================================

Ou seja, pra comparar com mais de um resultado você deve colocar sua subquery em um range. Pra vocÊ utilizar o range do seu select, você armazena ele dentro do IN


Responder Citar