none
Campo só apresenta um tipo de valor RRS feed

  • Pergunta

  • Olá

    Tenho um campo em uma query que retorna entrada e saida de itens

    Se for entrada o número é positivo. senão negativo.

    Dessa forma:

    A query funciona dessa forma:

    Use SCC
    
    ;WITH CTE AS 
    (
    
    	SELECT 
    		ROW_NUMBER() OVER (ORDER BY X.NF, X.DATA) as ID,
    		X.* 
    	FROM 
    
    
    	(
    
    
    		SELECT 
    
    			P.Descricao  AS Descricao, 
    			P.Cod_Produto AS Codigo_do_Produto,
    			ESI.Id_Doc  AS NF, 
    			ESI.Cod_Produto AS Cod_Produto, 
    			ESI.Cod_Empresa AS Cod_Empresa, 
    			S.Dta_Entrada AS Data, 
    			ESI.[Qtde]  AS Qtde, 
    			ESI.V_Unitario AS V_Unitario, 
    			ESI.V_Total  AS V_Total,
    			S.Id_Doc AS Id_Doc
    		
    				
    		FROM 
    		 
    			dbo.Entrada_Itens AS ESI INNER JOIN
    			dbo.Produtos AS P ON ESI.Cod_Empresa = P.Cod_Empresa AND ESI.Cod_Estoque = P.Cod_Estoque AND ESI.Cod_Produto = P.Cod_Produto INNER JOIN
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc INNER JOIN
    			[dbo].[Estoque] AS EST ON EST.Cod_Empresa = S.Cod_Empresa AND EST.Cod_Produto = P.Cod_Produto
    		
    		WHERE 
    
    			(ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada Between '2007-07-31' AND '2007-12-31')
    			
    	UNION 
    
    		SELECT 
    
    			P.Descricao  AS Descricao, 
    			P.Cod_Produto AS Codigo_do_Produto,
    			ESI.Id_Doc  AS NF, 
    			ESI.Cod_Produto AS Cod_Produto, 
    			ESI.Cod_Empresa AS Cod_Empresa, 
    			S.Dta_Entrada AS Data, 
    			-ESI.Qtde  AS Qtde, 
    			ESI.V_Unitario AS V_Unitario, 
    			-ESI.V_Total  AS V_Total,
    			S.Id_Doc AS Id_Doc
    			
    		FROM  
    
    			dbo.Saida_Itens AS ESI INNER JOIN
    			dbo.Produtos AS P ON ESI.Cod_Empresa = P.Cod_Empresa AND ESI.Cod_Estoque = P.Cod_Estoque AND ESI.Cod_Produto = P.Cod_Produto INNER JOIN
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc INNER JOIN
    			[dbo].[Estoque] AS EST ON EST.Cod_Empresa = S.Cod_Empresa  AND EST.Cod_Produto = P.Cod_Produto
    
    		WHERE 
    
    			(ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada Between '2007-07-31' AND'2007-12-31')
    			
    	) AS X
    	
    )
    
    SELECT *,
    
    
    --==========SOMA qtd de entadas no periodo==========
    
    			(SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1')AND 
    			(S.Dta_Entrada Between '2007-07-31' AND '2007-12-31')) AS V_SE,
    			
    --==========Total entradas no estoque==========
    
    			(SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1')AND 
    			(S.Dta_Entrada Between '2007-07-31' AND '2007-12-31'))*(V_Unitario)AS V_SSE,			
    			
    --==========SOMA SAIDAS no Periodo==========
    
    			(SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada Between '2007-07-31' AND '2007-12-31')) AS V_SS, 
    
    --==========Estoque no período=================
    		--(select ESI.[Qtde]  AS QtdeSaida
    		--from dbo.Saida_Itens AS ESI inner join
    		--dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc
    		--where
    		--	(ESI.Cod_Estoque = '01') AND 
    		--	(ESI.Cod_Produto = '00322') AND 
    		--	(ESI.Cod_Empresa = '1') AND 
    		--	(S.Dta_Entrada Between '2007-07-31' AND'2007-12-31')) AS QtdeSaida,
    
    
    
    
    --==========Total de SAIDAS no estoque==========
    
    			(SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada Between '2007-07-31' AND '2007-12-31'))*(V_Unitario) AS V_SSV,
    			
    --==========ENTRADAS ANTES DO PERIODO==========
    
    			((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 	
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1')AND 
    			(S.Dta_Entrada < '2007-07-31')) 
    			- (SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada < '2007-07-31'))) AS V_DQ,
    
    --==========Disponivel no estoque antes do periodo==========
    
    			((SELECT SUM(ESI.Qtde) FROM Entrada_Itens AS ESI INNER JOIN 
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND 
    			(ESI.Cod_Produto = '00322') AND 
    			(ESI.Cod_Empresa = '1')AND 
    			(S.Dta_Entrada < '2007-07-31')) 
    			-(SELECT SUM(ESI.Qtde) FROM Saida_Itens AS ESI INNER JOIN
    			dbo.Saida AS S ON ESI.Cod_Empresa = S.Cod_Empresa AND ESI.Id_Doc = S.Id_Doc 
    			WHERE (ESI.Cod_Estoque = '01') AND
    			(ESI.Cod_Produto = '00322') AND
    			(ESI.Cod_Empresa = '1') AND 
    			(S.Dta_Entrada < '2007-07-31')))*(V_Unitario) AS V_DV,
    
    --===========================================================
    
    	        V_Acum = (SELECT SUM(V_Total) FROM CTE WHERE ID <= C.ID) 
    FROM 
    
    	CTE AS C

    Quando importo o parâmetro no Crystal Report 8 o relatório so me traz o resultdos negativos. 

    Aqui está o arquivo RPT

    Como eu faço para que no relatório mostre os resultado positivos e negativos conforme a query mostra?

    O sistema está em VB6 e está rodando perfeitamente.

    Obrigado.

    terça-feira, 21 de janeiro de 2014 14:06

Respostas