erro em query com subquery
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??
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
Curtidas 0
Respostas
Renato Ferreira
16/06/2004
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
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
GOSTEI 0