Fórum Select que não roda??? #265115
12/01/2005
0
[b:a3518bca37]Multiple rows in singleton select
.
Multiple rows in singleton select.[/b:a3518bca37]
(
Ocorre quando rodo esta query no ibExpert
select materia.pagina_inicial,
materia.titulo,
(select foto.id_retranca from foto
where m.ordem = foto.ordem),
(select count(*) from page_view
where page_view.in_tipo = ´Z´
and page_view.nr_tempo_permanecia > ´30´) as leituras
from materia m
)
Jowjow
Curtir tópico
+ 0Posts
12/01/2005
Edison_br
SELECT C.CODIGO, C.NOME, CI.NOME || ´-´ || CI.UF
FROM CLIFOR C, CIDADE CI
WHERE CI.CODIGO = C.CIDADE
se vc não entender explique oque vc que fazer.
[]Edison de Brito
Gostei + 0
12/01/2005
Vinicius2k
O que está acontecendo é que sub-selects só podem trazer um único registro para a linha da select principal...
Uma, ou as duas, sub-selects que vc está utilizando, estão retornando mais de um registro.
Vc precisa rever as cláusulas where das sub-selects para que elas só tragam um único registro para a select principal.
T+
Gostei + 0
13/01/2005
Paulo_amorim
Como o Vinicius disse, a subselect traz mais de um registro, causando conflito. No caso, vê-se que o problema eh na primeira subquery, já que a segunda eh um COUNT
Na sua primeira subquery você não passa parâmetros, mas só faz um Join... isso vai trazer todos os registros relacionados, quando deveria trazer um só. Verifique quais devem ser os parâmetros para que ela funcione adequadamente
Até+
Gostei + 0
23/03/2006
Thyago
Estou enfrentando o mesmo problema que jowjow passsou ou está passando..
Multiple rows in singleton select
Utilizando a seguinte consulta..
SELECT DESCRICAO_OBSERVACAO FROM OBSERVACAO WHERE ID_OBSERVACAO = (SELECT ID_OBSERVACAO FROM AVALIACAO_OBSERVACAO WHERE AVALIACAO_OBSERVACAO.ID_AVALIACAO = ´33´)
Como faço para retornar mais valores??
Onde eu colocaria o Join.. ? Que tipo de Join é recomando usar neste caso? O Inner?
Obrigado.
Gostei + 0
23/03/2006
Emerson Nascimento
SELECT DESCRICAO_OBSERVACAO FROM OBSERVACAO WHERE ID_OBSERVACAO = (SELECT ID_OBSERVACAO FROM AVALIACAO_OBSERVACAO WHERE AVALIACAO_OBSERVACAO.ID_AVALIACAO = ´33´)
no seu caso o mais recomendado é o uso do comparador IN no lugar do = :
SELECT DESCRICAO_OBSERVACAO FROM OBSERVACAO WHERE ID_OBSERVACAO IN (SELECT ID_OBSERVACAO FROM AVALIACAO_OBSERVACAO WHERE AVALIACAO_OBSERVACAO.ID_AVALIACAO = ´33´)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)