Jump to content
eduardohaag

Somar dados do Select e Agrupas

Recommended Posts

Boa noite pessoal,

Esbarrei em um novo problema com consultas no meu sistema.

 

Tenho um formulário no sistema que deverá apresentar todos os materiais utilizados em uma determinada Venda e seus respectivos estoques obtidos através da soma das entradas e saidas do estoque.

Para isso devo buscar os dados em 3 tabelas do banco de dados sendo elas VendasProdutos, Composicao,  Materiais e Estoque

image.thumb.png.093c4050500dd8bc666c47f86d9acb75.png

 

Eis que surge meu problema, como posso ter vários produtos na venda e alguns produtos usam os mesmos materiais, a consulta está retornando com os materiais duplicados, quando o que eu gostaria era que somasse de acordo com cada material.

 

A query que estou usando para teste no acesso é a seguinte:

SELECT Composicao.IdMaterial, materiais.descricao, Sum(Estoque.Quantidade) AS Estoque, [VendasProdutos]![Quantidade]*[Composicao]![Quantidade] AS TotalUtilizado
FROM (VendasProdutos LEFT JOIN (materiais RIGHT JOIN Composicao ON materiais.ID = Composicao.IdMaterial) ON VendasProdutos.IdProduto = Composicao.IdProduto) LEFT JOIN Estoque ON materiais.ID = Estoque.IdMaterial
GROUP BY Composicao.IdMaterial, materiais.descricao, [VendasProdutos]![Quantidade]*[Composicao]![Quantidade], VendasProdutos.IdVenda
HAVING (((VendasProdutos.IdVenda)=1));

 

A consulta está retornando os dados dessa forma:

image.thumb.png.ecdbfb1e8a7cff944411ee827e672fb8.png

 

E eu gostaria de que agrupasse por ex:

 

ID                Descricao                Estoque               TotalUtilizado

1                 Capa Agenda             34                             10

2                 Miolo Agenda            27                              5

 

Alguem Sabe como posso fazer isso?

Desulpem pelo post gigante, mas não sabia como explicar melhor.

Share this post


Link to post
Share on other sites

Indenta  a sql melhor.

 

 

 

 

Share this post


Link to post
Share on other sites

Ja tentei de tudo o que me parecia Lógico, mas até agora não consegui alcançar o resultado esperado.

 

O mais próximo que consegui foi com a query

SELECT Composicao.IdMaterial, Materiais.descricao, Sum(Estoque.Quantidade) AS SomaDeQuantidade, Sum([VendasProdutos]![Quantidade]*[Composicao]![Quantidade]) AS QuantidadeMaterial
FROM VendasProdutos LEFT JOIN ((Materiais LEFT JOIN Estoque ON Materiais.ID = Estoque.IdMaterial) RIGHT JOIN Composicao ON Materiais.ID = Composicao.IdMaterial) ON VendasProdutos.IdProduto = Composicao.IdProduto
GROUP BY Composicao.IdMaterial, Materiais.descricao;

 

Porém os valores nos retornos são totalmente maior do que deveria ser.

image.thumb.png.2a3ea2a59d93a8fdf782f1dfa0afc724.png

Share this post


Link to post
Share on other sites

Como não estou conseguindo resolver o problema. Decidi tratar o retorno da consulta direto no codigo do sistema. Sei que não é o ideal, mas é o que consigo fazer no momento.

Ainda aguardo algum auxilio de vocês aqui.

Obrigado.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By johnklo
      COM BASE NA TABELA HR DO ORACLE
      Preciso criar uma sub-rotina (procedure) que imprima na tela o número de funcionários (employees) agrupados por departamentos (department_id). Deve-se ordenar a saída em ordem decrescente pela quantidade de departamentos. Pode-se utilizar qualquer forma de cursor para imprimir o resultado.
    • By c3s1nha
      Boa tarde,
       
      Preciso restaurar a estrutura de um banco de dados (tabelas,views,procedures.. etc) em outro banco de dados que esta vazio (nao tem tabela nenhuma, banco novo), utilizo o sql server. Consigo fazer utilizando o SSMS ?
       
      Para entender melhor estou enviando uma imagem.
       
       
      O banco com todas tabelas,viwes,procedures, registros, etc..  é o Guara_ que esta no servidor   .\SQLEXPRESS   quero fazer uma copia identica dele no banco Nutri no servidor sdb.hsi.
       
      Desde ja agradeço. 

    • By Samuel Pietro
      Tenho um select em PDO e preciso que a consulta retornada vire uma variavel, mas a variavel só pega a ultima linha da tabela e eu preciso que pegue todas as linhas que existirem.
       
      $conexao = conexao::getInstance(); $sql = 'SELECT * FROM RegistroE'; $stm = $conexao->prepare($sql); $stm->execute(); $Sql = $stm->fetchAll(PDO::FETCH_OBJ); foreach ($Sql as $SqlReg): $conteudo_meio = picture_X($SqlReg->E_01,1) .picture_X($SqlReg->E_02,25) .picture_9($SqlReg->E_03,4) .picture_X($SqlReg->E_04,14) .picture_9($SqlReg->E_05,8) .picture_9($SqlReg->E_06,8) .picture_9($SqlReg->E_07,8) .picture_9($SqlReg->E_08,8) .picture_9($SqlReg->E_09,8) .complementoRegistro(96,"brancos") .picture_9($SqlReg->E_11,1) .complementoRegistro(1,"brancos") ; endforeach; Como eu poderia está fazendo isto?
    • By Anderson Campos da Silva
      Olá,
       
      Estou com um problema, que para alguns pode ser simples, é o seguinte:
       
      Tenho 2 tabela relacionadas, MODELO e EQUIPAMENTO
       
      TABELA MODELO
      idModelo (INT) - chave primária  
      txModelo (VARCHAR)
       
      TABELA EQUIPAMENTO 
      idEquipamento (INT) - chave primária   
      patrimonio (VARCHAR)
      situacao (VARCHAR)
      idModelo (INT) - Chave estrangeira
       
      O campo situação pode ser preenchido apenas apenas com PRODUÇÃO OU ESTOQUE.
       
      Enfim, preciso de um SELECT que retorne as seguintes colunas txModelo, quantidade de equipamentos por modelo, quantidade de equipamentos com PRODUÇÃO, e quantidade de equipamentos com ESTOQUE, exemplo:
       
      txModelo | total | produção | estoque
      CISCO           7            4                  3
      HP                15          10                 5
      DELL            10           2                   8
       
      Desde já agradeço
    • By alanbr00
      Olá,
       
      estou tendo dificuldade na instalação, nunca vi esse erro. Estou pensando seriamente em formatar.
       
      Esse é o log.
       
       


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.