Ir para conteúdo

POWERED BY:

Arquivado

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

Skoitoman

Fusão de tabelas

Recommended Posts

Senhores, como posso alterar esta procedure para quando a linha de ep e sp, carregar as entradas e saidas na mesma linha, pois quando possui entradas e saidas na mesma data, empresa e produto, carrega em linhas duas diferentes, uma com o valor de saidas e entradas 0, e outra com o valor de entradas e saidas 0.

 

Podem me ajudar:

 

CREATE procedure stpSelEntradasSaidasProdutos(	@EmpresaID int=null,	@ProdutoID varchar(13)=null,	@DataInicial datetime=null,	@DataFinal datetime=null)asSELECT EmpresaID, tesp.ProdutoID, tp.Descricao, Data, EntradasFROM (SELECT *	FROM (SELECT tep.EmpresaID, tep.ProdutoID, 		tep.DataDoPedido AS Data, SUM(isnull(tep.QuantidadeEntregue,0)) AS Entradas, 0 AS Saidas		FROM tblEntrada te INNER JOIN tblEntradaProduto tep ON			te.EmpresaID = tep.EmpresaID AND 			te.EntradaID = tep.EntradaID AND 			te.DataDoPedido = tep.DataDoPedido		GROUP BY tep.DataDoPedido, tep.ProdutoID, tep.EmpresaID) ep	   UNION	   SELECT *	   FROM (SELECT tos.EmpresaID, tosp.ProdutoID, tos.Data, 0 AS Entradas, SUM(isnull(tosp.Quantidade,0)) AS Saidas		FROM tblOS tos INNER JOIN tblOSProduto tosp ON 			tos.EmpresaID = tosp.EmpresaID AND 			tos.OSID = tosp.OSID AND 			tos.Data = tosp.Data		GROUP BY tos.Data, tosp.ProdutoID, tos.EmpresaID) sp) tespINNER JOIN tblProduto tp ON tesp.ProdutoID = tp.ProdutoIDWHERE	 	(@EmpresaID is null or EmpresaID = @EmpresaID) AND 	(@DataInicial is null or Data >= @DataInicial) and	(@DataFinal is null or Data <= @DataFinal) and	(@ProdutoID is null or tesp.ProdutoID=@ProdutoID)GO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado galera, mas consegui de uma outra maneira, utilizei o sum nas colunas entradas e saidas e dei um group by nos outros campos, ficou bem simples:

 

CREATE procedure stpSelEntradasSaidasProdutos(	@EmpresaID int=null,	@ProdutoID varchar(13)=null,	@DataInicial datetime=null,	@DataFinal datetime=null)asSELECT top 50 EmpresaID, tesp.ProdutoID, 0 as Descricao, Data, sum(Entradas) as Entradas, Sum(Saidas) as Saidas, SUM(Entradas-Saidas) as SaldoFROM (SELECT *	FROM (SELECT EmpresaID, ProdutoID, DataDoPedido as Data, SUM(ISNULL(QuantidadeEntregue,0)) AS Entradas, 0 as Saidas		FROM tblEntradaProduto		GROUP BY EmpresaID, DataDoPedido, ProdutoID) ep	   UNION	   SELECT *	   FROM (SELECT EmpresaID, ProdutoID, Data,  0 as Entradas, SUM(ISNULL(Quantidade,0)) AS Saidas		FROM tblOSProduto		GROUP BY EmpresaID, Data, ProdutoID) sp) tespGROUP BY EmpresaID, tesp.ProdutoID,  Data	HAVING	 	(@EmpresaID is null or EmpresaID = @EmpresaID) AND 	(@DataInicial is null or Data >= @DataInicial) and	(@DataFinal is null or Data <= @DataFinal) and	(@ProdutoID is null or tesp.ProdutoID=@ProdutoID)GO

Valeu!!!!!!!!!!!!!!!!!

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.