Autor
Mensagem
Boa Noite,
Pessoal estou com o seguinte problema e preciso de um help.
Estou tentando criar um query doida varrida, bom meu problema e o seguinte:
Tenho 5 tabelas:
TAB1 = TAB_PRODUTOS
TAB2 = TAB_ENTRADAPRODNF
TAB3 = TAB_ENTRADAPROD
TAB3 = TAB_SAIDAPROD
TAB4 = TAB_SAIDAPRODNF
Quero que minha query some as "qtda" da TAB2 + TAB3 e subtraia as "QTDA" da TAB3 - TAB4
Assim me informando o total geral.
Otimo ate ai tudo bem ele soma e subtrai e me mostra o resultado, mas com um porem se uma das tabelas nao tiver o valor ele não faz o sum.
Estou utilizando essa query para gerar essa regra mas sem futuro.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade,
sum((tab2.quantidade)+(tab4.quantidade)+(tab3.quantidade)+(tab5.quantidade))
from tab_produtos TAB1
left join tab_entradaprod tab2 ON tab1.id = tab2.idprod
left join tab_saidaprod tab3 on tab1.id = tab3.idprod
left join tab_entradaprodnf tab4 on tab1.id = tab4.idprod
left join tab_saidaprodnf tab5 on tab1.id = tab5.idprod
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade
[/CODE]
Alguem teria uma luz para me dar
.
[]´s
Pessoal estou com o seguinte problema e preciso de um help.
Estou tentando criar um query doida varrida, bom meu problema e o seguinte:
Tenho 5 tabelas:
TAB1 = TAB_PRODUTOS
| ID | DESCRICAO | VALOR |
| 1 | PLACA MAE | 135,00 |
TAB2 = TAB_ENTRADAPRODNF
| ID | IDPROD | QTDA |
| 1 | 1 | 3 |
TAB3 = TAB_ENTRADAPROD
| ID | IDPROD | QTDA |
| 1 | 1 | 0 |
TAB3 = TAB_SAIDAPROD
| ID | IDPROD | QTDA |
| 1 | 1 | 5 |
TAB4 = TAB_SAIDAPRODNF
| ID | IDPROD | QTDA |
| null | null | null |
Quero que minha query some as "qtda" da TAB2 + TAB3 e subtraia as "QTDA" da TAB3 - TAB4
Assim me informando o total geral.
Otimo ate ai tudo bem ele soma e subtrai e me mostra o resultado, mas com um porem se uma das tabelas nao tiver o valor ele não faz o sum.
Estou utilizando essa query para gerar essa regra mas sem futuro.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade,
sum((tab2.quantidade)+(tab4.quantidade)+(tab3.quantidade)+(tab5.quantidade))
from tab_produtos TAB1
left join tab_entradaprod tab2 ON tab1.id = tab2.idprod
left join tab_saidaprod tab3 on tab1.id = tab3.idprod
left join tab_entradaprodnf tab4 on tab1.id = tab4.idprod
left join tab_saidaprodnf tab5 on tab1.id = tab5.idprod
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade
[/CODE]
Alguem teria uma luz para me dar
.[]´s
Boa Noite,
Resolvido.
Utilizei da seguinte forma:
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade,
sum((COALESCE(tab2.quantidade,0))+(COALESCE(tab4.quantidade,0))-(COALESCE(tab3.quantidade,0))+(COALESCE(tab5.quantidade,0)))
from tab_produtos TAB1
left join tab_entradaprod tab2 ON tab1.id = tab2.idprod
left join tab_saidaprod tab3 on tab1.id = tab3.idprod
left join tab_entradaprodnf tab4 on tab1.id = tab4.idprod
left join tab_saidaprodnf tab5 on tab1.id = tab5.idprod
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade
[/CODE]
[]´s
Resolvido.
Utilizei da seguinte forma:
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade,
sum((COALESCE(tab2.quantidade,0))+(COALESCE(tab4.quantidade,0))-(COALESCE(tab3.quantidade,0))+(COALESCE(tab5.quantidade,0)))
from tab_produtos TAB1
left join tab_entradaprod tab2 ON tab1.id = tab2.idprod
left join tab_saidaprod tab3 on tab1.id = tab3.idprod
left join tab_entradaprodnf tab4 on tab1.id = tab4.idprod
left join tab_saidaprodnf tab5 on tab1.id = tab5.idprod
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda,
tab2.quantidade,
tab3.quantidade,
tab4.quantidade,
tab5.quantidade
[/CODE]
[]´s
Ops Ops...Ainda estava com erro:
Agora a query correta.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
(select (sum (quantidade)) from tab_entradaprod),
(select (sum (quantidade)) from tab_entradaprodnf),
(select (sum (quantidade)) from tab_saidaprod),
(select (sum (quantidade)) from tab_saidaprodnf),
sum((select (sum (quantidade)) from tab_entradaprod)+((select (sum (quantidade)) from tab_entradaprodnf))-
((select (sum (quantidade)) from tab_saidaprod))-((select (sum (quantidade)) from tab_saidaprodnf)))
from tab_produtos TAB1
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda
[/CODE]
[]s
Agora a query correta.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
(select (sum (quantidade)) from tab_entradaprod),
(select (sum (quantidade)) from tab_entradaprodnf),
(select (sum (quantidade)) from tab_saidaprod),
(select (sum (quantidade)) from tab_saidaprodnf),
sum((select (sum (quantidade)) from tab_entradaprod)+((select (sum (quantidade)) from tab_entradaprodnf))-
((select (sum (quantidade)) from tab_saidaprod))-((select (sum (quantidade)) from tab_saidaprodnf)))
from tab_produtos TAB1
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda
[/CODE]
[]s
Citação:
Ops Ops...Ainda estava com erro:
Agora a query correta.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
(select (sum (quantidade)) from tab_entradaprod),
(select (sum (quantidade)) from tab_entradaprodnf),
(select (sum (quantidade)) from tab_saidaprod),
(select (sum (quantidade)) from tab_saidaprodnf),
sum((select (sum (quantidade)) from tab_entradaprod)+((select (sum (quantidade)) from tab_entradaprodnf))-
((select (sum (quantidade)) from tab_saidaprod))-((select (sum (quantidade)) from tab_saidaprodnf)))
from tab_produtos TAB1
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda
[/CODE]
[]s
Ops Ops...Ainda estava com erro:
Agora a query correta.
[CODE]
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
(select (sum (quantidade)) from tab_entradaprod),
(select (sum (quantidade)) from tab_entradaprodnf),
(select (sum (quantidade)) from tab_saidaprod),
(select (sum (quantidade)) from tab_saidaprodnf),
sum((select (sum (quantidade)) from tab_entradaprod)+((select (sum (quantidade)) from tab_entradaprodnf))-
((select (sum (quantidade)) from tab_saidaprod))-((select (sum (quantidade)) from tab_saidaprodnf)))
from tab_produtos TAB1
where tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda
[/CODE]
[]s
esta query está correta??? onde, nas subselects, você está relacionando o produto?
creio que o correto seja:
select
tab1.id,
tab1.descricao,
tab1.preco_venda,
(select coalesce(sum(ep.quantidade),0) from tab_entradaprod ep where ep.idprod = tab1.id) qtdentrada,
(select coalesce(sum(enf.quantidade),0) from tab_entradaprodnf enf where enf.idprod = tab1.id) qtdentradanf,
(select coalesce(sum(sp.quantidade),0) from tab_saidaprod sp where sp.idprod = tab1.id) qtdsaida,
(select coalesce(sum(snf.quantidade),0) from tab_saidaprodnf snf where snf.idprod = tab1.id) qtdsaidanf,
(select coalesce(sum(ep.quantidade),0) from tab_entradaprod ep where ep.idprod = tab1.id)+
(select coalesce(sum(enf.quantidade),0) from tab_entradaprodnf enf where enf.idprod = tab1.id)-
(select coalesce(sum(sp.quantidade),0) from tab_saidaprod sp where sp.idprod = tab1.id)-
(select coalesce(sum(snf.quantidade),0) from tab_saidaprodnf snf where snf.idprod = tab1.id) total
from
tab_produtos TAB1
where
tab1.descricao like 'PLACA%'
group by
tab1.id,
tab1.descricao,
tab1.preco_venda
veja se é isso mesmo ou se eu estou falando bobagem...









