sub select

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Qua, 13 Fev 2008 3:27 pm

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
Código: Selecionar todos
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
henrique290
Localização: Porto Alegre - RS

Mensagemem Qua, 13 Fev 2008 3:56 pm

Pra pegar só uma linha, pega ROWNUM=1

Exemplo:
Código: Selecionar todos
SELECT
,  bla
,  bla
,  bla
,  (select xxx from tab where ... AND ROWNUM=1 )   
from tabelas
where ...


Dessa forma o sub sempre vai trazer apenas 1 linha.
dr_gori
Localização: Portland, OR USA

Thomas F. G

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

Mensagemem Qui, 14 Fev 2008 6:27 am

Ou você pode usar uma função de agrupamento (MAX, MIN, SUM, dependendo do campo e do caso).
Marciel
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.



Voltar para SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante