Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

will_jdc

Somar quantidade de produtos vendidos

Recommended Posts

Bom Dia Galera,

 

Estou com um problema em uma consulta com Inner Join em tres tabelas

 

Preciso fazer uma consulta que some a quantidade de produtos vendidos em uma data especifica, porém

o calculo esta saindo errado e não estou conseguindo identificar o erro.

 

a consulta é a seguinte

 

SELECT OrcProd.CodProd, Produtos.Descricao, SUM(OrcProd.Quantidade), FROM Produtos

INNER JOIN OrcProd on Produtos.Codigo = OrcProd.CodProd

INNER JOIN Orcamentos on Orcamentos.QuitData = 'Data' and Orcamentos.OrcNum = OrcProd.OrcNum

GROUP BY OrcProd.CodProd, Produtos.Descricao

 

Me ajudem aí por favor ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma de identificar isto é rodar a query com "select *" e sem agrupar, talvez seja algum produto cartesiano indevido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Inseri 3 itens em um orçamento (Orçamento N° 5)

 

Codigo Descricao Quantidade

01 item1 1

02 item2 1

03 item3 1

 

executei o codigo:

 

SELECT OrcProd.CodProd, Produtos.Descricao, SUM(OrcProd.Quantidade) FROM Produtos
INNER JOIN OrcProd on Produtos.Codigo = OrcProd.CodProd
INNER JOIN Orcamentos on Orcamentos.QuitData = '27/10/2014' and Orcamentos.OrcNum = OrcProd.OrcNum
GROUP BY OrcProd.CodProd, Produtos.Descricao

 

e o resultado foi

 

Codigo Descricao Quantidade

01 item1 3
02 item2 3
03 item3 3

 

sendo que a quantidade deveria ser 1 de cada

Compartilhar este post


Link para o post
Compartilhar em outros sites

will_jdc

 

O problemas esta nesta parte do inner join

INNER JOIN Orcamentos on Orcamentos.QuitData = '27/10/2014' and Orcamentos.OrcNum = OrcProd.OrcNum

Joga dentro having ou do where

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui identificar o erro no inner Join que voce falou


will_jdc

 

O problemas esta nesta parte do inner join

INNER JOIN Orcamentos on Orcamentos.QuitData = '27/10/2014' and Orcamentos.OrcNum = OrcProd.OrcNum

Joga dentro having ou do where

 

Nao consegui identificar o Erro no Inner Join que voce falou

Compartilhar este post


Link para o post
Compartilhar em outros sites
will_jdc

 

 

Tenta dessa maneira e ve se vai retorna o mesmo erro ou algum tipo de erro.

SELECT OrcProd.CodProd, Produtos.Descricao, SUM( distinct OrcProd.Quantidade) FROM Produtos
INNER JOIN OrcProd on Produtos.Codigo = OrcProd.CodProd
INNER JOIN Orcamentos on Orcamentos.QuitData = 'Data' and Orcamentos.OrcNum = OrcProd.OrcNum
GROUP BY OrcProd.CodProd, Produtos.Descricao

Compartilhar este post


Link para o post
Compartilhar em outros sites

will_jdc

 

 

Tenta dessa maneira e ve se vai retorna o mesmo erro ou algum tipo de erro.

SELECT OrcProd.CodProd, Produtos.Descricao, SUM( distinct OrcProd.Quantidade) FROM Produtos
INNER JOIN OrcProd on Produtos.Codigo = OrcProd.CodProd
INNER JOIN Orcamentos on Orcamentos.QuitData = 'Data' and Orcamentos.OrcNum = OrcProd.OrcNum
GROUP BY OrcProd.CodProd, Produtos.Descricao

 

Dessa forma esta somando somente as quantidades com valores distintos e retornou

 

Codigo Descricao Quantidade

01 item1 1

02 item2 1

03 item3 1

 

Porem eu acrescentei mais um item de cada e deveria retornar na quantidade 2 de cada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então você tem que somar o item e sua quantidade vai ser sua resposta, não soma quantidade.

Eu preciso saber quantos produtos foram vendidos , essa quantidade é a quantidade de produtos que foram vendidos

Compartilhar este post


Link para o post
Compartilhar em outros sites
Tente desta forma:



SELECT OrcProd.CodProd
, Produtos.Descricao
, SUM(OrcProd.Quantidade) as Soma_Quantidade
FROM Produtos
INNER JOIN OrcProd on Produtos.Codigo = OrcProd.CodProd
INNER JOIN Orcamentos on Orcamentos.OrcNum = OrcProd.OrcNum
where Orcamentos.QuitData = 'Data'
GROUP BY OrcProd.CodProd
, Produtos.Descricao
[sql]

A grosso modo, seria isso:

[sql]

declare @produtos table (Codigo int, Descricao varchar(max), Quantidade int)

insert into @produtos values (1, 'item01',1)
insert into @produtos values (2, 'item02',1)
insert into @produtos values (3, 'item03',1)

insert into @produtos values (1, 'item01',5)
insert into @produtos values (2, 'item02',5)


select SUM(Quantidade) as Soma_Quantidade
, Codigo
, Descricao
from @produtos
Group by Codigo, Descricao


Caso nao de certo, poste a estrutura das tabelas envolvidas.


Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

will_jdc

 

Deixa eu ver se entendi certinho, vc quer saber a quantidade que foi vendido em uma certa data blz!

 

Eu montei pra vc um exemplo usando a base de dados northwind importada dentro do sql.

select  dbo.Produtos.NomeDoProduto, sum  (dbo.[Detalhes do Pedido].Quantidade) as 'quantidade vendida' from Pedidos
inner join [Detalhes do Pedido] on dbo.[Detalhes do Pedido].NúmeroDoPedido = Pedidos.NúmeroDoPedido
inner join Produtos on Produtos.CódigoDoProduto = dbo.[Detalhes do Pedido].CódigoDoProduto
where dbo.Pedidos.DataDoPedido = '1994-08-08'
group by  dbo.Produtos.NomeDoProduto
 

neste exemplo eu peguei o nome do produto, quantidade que foi vendida e usei a data para ver quantos que foi vendido na quela data.

 

Obs: O SUM não entra dentro do group by

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.