 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Aggelos Novato

Registrado: Sexta-Feira, 18 de Abril de 2008 Mensagens: 69
|
Enviada: Qui Mai 09, 2019 10:05 pm Assunto: Ajuda com SQL para Saldo [Resolvido] |
|
|
Salve, amigos e amigas.
Tenho a seguinte tabela abaixo:
Preciso criar um saldo diminuindo as ENTRADAS dos RETORNOS
Fiz a SQL abaixo mas está dando problema na cláusula GrouBy
SQL:
select codigo_insumo, id_unidade, (quantidade - (select sum(iim2.quantidade) from insumos_itens_movimento iim2 where ((iim2.codigo_insumo = iim1.codigo_insumo) and iim2.movimento = 'RETORNO'))) saldo
from insumos_itens_movimento iim1
where iim1.movimento = 'ENTRADA'
group by iim1.codigo_insumo, iim1.id_unidade
having saldo > 0
Erro:
Invalid token.
Dynamic SQL Error.
SQL error code = @1.
Invalid expression in the @1 (not contained in either an aggregate function or the GROUP BY clause).
Se alguém puder dar uma luz, agradeço. Estou usando o Firebird 2.5
Resolvi com a SQL abaixo:
select distinct
insumos_itens_movimento.codigo_insumo,
insumos_itens_movimento.id_unidade,
(select distinct coalesce(sum(iim1.quantidade), insumos_itens_movimento.quantidade) from insumos_itens_movimento as iim1 where iim1.codigo_insumo = insumos_itens_movimento.codigo_insumo and iim1.movimento = 'ENTRADA') -
(select distinct coalesce(sum(iim2.quantidade), 0) from insumos_itens_movimento as iim2 where iim2.codigo_insumo = insumos_itens_movimento.codigo_insumo and iim2.movimento = 'RETORNO') as estoque
from
insumos_itens_movimento |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Mai 10, 2019 2:54 pm Assunto: |
|
|
Boa tarde,
Percebi que você colocou o "Resolvido" mas acredito que você pode obter o resultado esperado com menos leituras da tabela utilizando a query abaixo:
| Código: | select
codigo_insumo,
id_unidade,
sum(quantidade * case when movimento = 'ENTRADA' then 1 else -1 end) as estoque
from insumos_itens_movimento
group by
codigo_insumo,
id_unidade |
Espero que ajude |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|