sub select

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
henrique290
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 17
Registrado em: Ter, 09 Out 2007 11:36 pm
Localização: Porto Alegre - RS

Tenho um select com varios sub select e funciona perfeitamente, so que agora esta me dando erro, já esta retornando mais de uma linha e ai aborta a execussão do mesmo.
Gostaria saber se tem alguma função ou procedure ou comando sql que me evite esta situação.

Exemplo: uma cidade deveria ter 1 analise de mercurio ao ano mas por necessidade fizeram duas, como faço para ele achar a primeira e ignorar a segunda ???

Abaixo so um exemplo

Selecionar tudo

SELECT S1.COD_US, S1.NMPROCEDENCIA,EXTRACT(MONTH FROM S1.DTENTRADA) mês,
EXTRACT(YEAR FROM S1.DTENTRADA)ANO,
/* MONITORAMENTO DE MERCURIO E AGROTOXICOS */
(SELECT DISTINCT S.VLMEDIDO
FROM SAA S
WHERE (((S.CDAMOSTRA)>22) AND ((S.NMCARACTERISTICA)='Mercúrio Total'))
AND S.COD_US=S1.COD_US
GROUP BY S.COD_US,S.VLMEDIDO)
FROM SAA S1, SSA_ISOLADO I
WHERE S1.COD_US IN(I.COD_US) 
GROUP BY S1.COD_US,S1.NMPROCEDENCIA,S1.DTENTRADA
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Pra pegar só uma linha, pega ROWNUM=1

Exemplo:

Selecionar tudo

SELECT
,  bla 
,  bla
,  bla
,  (select AAAAA from tab where ... AND ROWNUM=1 )   
from tabelas
where ...
Dessa forma o sub sempre vai trazer apenas 1 linha.
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

Ou você pode usar uma função de agrupamento (MAX, MIN, SUM, dependendo do campo e do caso).
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 11 visitantes