DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Alex Sandro Martins de Araujo
 


País: Brasil
Estado: SP
Cidade: sao jose dos campos
Mensagens: 3
 Postado em: 27/5/2010 10:22:31 PM
 
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
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 Cry.

[]´s
Alex Sandro Martins de Araujo
 


País: Brasil
Estado: SP
Cidade: sao jose dos campos
Mensagens: 3
 Postado em: 27/5/2010 10:52:55 PM
 
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
Alex Sandro Martins de Araujo
 


País: Brasil
Estado: SP
Cidade: sao jose dos campos
Mensagens: 3
 Postado em: 27/5/2010 11:25:59 PM
 
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
CARLOS EDUARDO DOMINGUES MAZZI
 

 


País: Brasil
Estado: SP
Cidade: LINS
Mensagens: 591
 Postado em: 21/8/2010 05:26:37 PM
 
Beleza garoto!, ajudou mais um hoje.. abracos
Emerson
 

 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 21/8/2010 07:09:58 PM
 

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


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...
ERILEY VILAGRANDE BARBOSA
 

 


País: Brasil
Estado: RS
Cidade: Alegrete
Mensagens: 700
 Postado em: 23/8/2010 01:15:31 PM
 
Realmente sua query ta faltando os joins, faça como o Emerson mostrou
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03