[firebase-br] subselect retornando mais de uma linha

Reijanio Nunes Ribeiro rnribeiro em gmail.com
Seg Jan 19 18:40:08 -03 2015


com o existis a coluna virou um campo boolean

to apanhando pra kraio porque:
 a tabela com alias a e a tabela de lmc(tab_lmc)= então ela registra
somente 1 linha
a tabela de alias b(tab_pagina_lmc) é a tabela de movimentação do lmc
ela registra todas as entradas e saídas para cada dia do mês e a
ligação entre a e b é o campo seq_lmc
a tabela de alias c(tab_medicao_tanque) é a tabela de medições do
tanque de combustível preciso pegar uma medição pra cada dia do mês e
a ligação entre os campos também é a coluna seq_lmc.

 já tentei de tudo e continua múltiplas linhas no retorno

Em 19 de janeiro de 2015 17:27, Antonio Lucas Finotti Pereira
<lcsfipe em gmail.com> escreveu:
> Boa tarde,
>
> Tente fazer um exists para pegar o ultimo registro que vc precisa no subselect ou use o comando TOP < 2.
>
> Nao me lembro no firebird..as no oracle é rownum, sqlserver é limit e mysql é top... Se nao me engano. 😊
>
> Vc verificou se o registro nao esta duplicado.. Se estiver tenta um distinct.
>
> Espero ter ajudado.
>
> -----Mensagem Original-----
> De: "Reijanio Nunes Ribeiro" <rnribeiro em gmail.com>
> Enviada em: ‎19/‎01/‎2015 18:07
> Para: "lista-delphi" <lista-delphi em yahoogrupos.com.br>; "FireBase" <lista em firebase.com.br>
> Assunto: [firebase-br] subselect retornando mais de uma linha
>
> gente alguém pode me dar uma dica com esse subselect
> SELECT distinct d.des_item,
>     b.dta_movimento, a.cod_empresa,a.seq_lmc,
>     (select t.qtd_medicao from tab_medicao_tanque t WHERE t.seq_lmc =
> a.seq_lmc) as medicao_tanque,
>     sum(b.qtd_abertura_tq1    +
>     b.qtd_abertura_tq2 +
>     b.qtd_abertura_tq3 +
>     b.qtd_abertura_tq4 +
>     b.qtd_abertura_tq5 +
>     b.qtd_abertura_tq6 +
>     b.qtd_abertura_tq7 +
>     b.qtd_abertura_tq8 +
>     b.qtd_abertura_tq9 +
>     b.qtd_abertura_tq10 +
>     b.qtd_abertura_tQ11 +
>     b.qtd_abertura_tq12) AS estoque_abertura,
>     sum(b.qtd_fechamento_tq1 +
>     b.qtd_fechamento_tq2 +
>     b.qtd_fechamento_tq3 +
>     b.qtd_fechamento_tq4 +
>     b.qtd_fechamento_tq5 +
>     b.qtd_fechamento_tq6 +
>     b.qtd_fechamento_tq7 +
>     b.qtd_fechamento_tq8 +
>     b.qtd_fechamento_tq9 +
>     b.qtd_fechamento_tq10 +
>     b.qtd_fechamento_tq11 +
>     b.qtd_fechamento_tq12) AS estoque_fechamento,
>     b.des_observacao
> FROM    tab_lmc a
> INNER JOIN tab_pagina_lmc b
> ON ( b.seq_lmc = a.seq_lmc)
> INNER JOIN tab_item d
> ON ( a.cod_item = d.cod_item)
> inner JOIN tab_medicao_tanque t
> ON(a.seq_lmc = t.seq_lmc)
> WHERE a.cod_item = 5198
> and a.cod_empresa = 5
> AND    b.dta_movimento between '2014-12-01' and '2014-12-02'
> and a.seq_lmc = b.seq_lmc
> group by a.cod_empresa,b.dta_movimento,b.des_observacao, t.seq_lmc,
> a.seq_lmc, d.des_item, b.seq_lmc
> order by b.dta_movimento;
>
> não to conseguindo resolver eset problema de o subselect retornar mais
> de um registro
>
> desde já grato pela ajuda
> --
> Reijanio Nunes Ribeiro
> Desenvolvedor Delphi/Php
> Suporte em TI
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa



-- 
Reijanio Nunes Ribeiro
Desenvolvedor Delphi/Php
Suporte em TI




Mais detalhes sobre a lista de discussão lista