duvida sobre consulta SQL

Firebird

16/02/2011

Caros ao realizar uma consulta SQL para me retornar adiferenca de entrada e saida de produtos com group by nao consegui prosseguir pois a consulta nao me retona valor algum, peco a ajuda a vcs para resolver esta questao pois a meu ver a consulta esta correta. utilizo FIREBIRD + IBEXPERT + DELPHI 7 segue a consulta:  
SELECT  p.descricao,sum(v.qtd), SUM (E.QTD)
fROM  produto P ,venda v ,entradas E
    WHERE  p.id_prod = v.id_produto AND
           E.id_produto = V.id_produto
        GROUP BY p.descricao     estrutura das tabelas   tabela produto id_produto descricao_produto     tabela venda id_venda id_produto qtd     tabela entrada id_entrada id_produto qtd   desde ja agradeco a ajuda
Miguel

Miguel

Curtidas 0

Respostas

Leonardo Xavier

Leonardo Xavier

16/02/2011

Tente com like

SELECT  p.descricao,sum(v.qtd), SUM (E.QTD)
fROM  produto P ,venda v ,entradas E
    LIKE  p.id_prod = v.id_produto AND
           E.id_produto = V.id_produto
        GROUP BY p.descricao

GOSTEI 0
Emerson Nascimento

Emerson Nascimento

16/02/2011

recomendo a você fazar join explícitos. fica mais fácil pra nós - que não desenhamos e nem temos o seu banco de dados - entendermos como são feitos os relacionamentos.

outra coisa: creio que não apareça nada porque você está efetuando inner joins e, se alguma tabela não tiver conteúdo que atenda ao relacionamento, nada é trazido. use left join.

SELECT
  p.descricao, coalesce(sum(v.qtd),0) saidas,
  (select coalesce(sum(E.QTD),0)
   from entradas E
   where E.id_produto = P.id_produto) entradas
FROM produto P
LEFT JOIN venda v on v.id_produto = P.id_produto
GROUP BY p.descricao

- geralmente não se agrupa por descrição e sim por código/id ou código/id + descrição.
- foi preciso utilizar sub-selects porque de outra forma os valores poderiam aparcerem multiplicados.
GOSTEI 0
POSTAR