none
Como evitar a soma das colunas com o resultado NULL RRS feed

  • Pergunta

  • Bom dia!

    Senhores gostaria de ajuda se possível. Tenho um SELECT onde preciso criar um campo total com a soma das demais colunas. O problema é que se uma das colunas tem zero como valor (este zero é devido ao uso de ISNULL) , o meu campo total exibe NULL. Não consigo entender porque o resultado de alguns campos da coluna total é NULL se usei o ISNULL para as colunas que estou somando. Abaixo código e resultado.

    SELECT 
    	RIGHT(RTRIM(LTRIM(STR(DateProcessing))),2) + '/' + 
    	SUBSTRING(RTRIM(LTRIM(STR(DateProcessing))),5,2) + '/' + 
    	LEFT(RTRIM(LTRIM(STR(DateProcessing))),4)  AS Data,
    	ISNULL([GUIA DE CONSULTA],0)			   AS 'GUIA DE CONSULTA' ,
    	ISNULL([GUIA DE SP SADT],0)				   AS 'GUIA DE SP SADT',
    	ISNULL([GUIA DE HONORARIO INDIVIDUAL],0)   AS 'GUIA DE HONORARIO INDIVIDUAL' ,
    	ISNULL([GUIA RESUMO DE INTERNACAO],0)	   AS 'GUIA RESUMO DE INTERNACAO', 
    	[GUIA DE CONSULTA]+[GUIA DE SP SADT]+[GUIA DE HONORARIO INDIVIDUAL]+[GUIA RESUMO DE INTERNACAO] AS TOTALMOVIMENTO
    FROM
    	(
    	SELECT 
    		B.DateProcessing,BC.ClassName, ISNULL(COUNT(DS.DocumentStorageStatus),0)AS Digitado
    	FROM 
    		DocumentStorage DS
    		RIGHT JOIN DocumentStorageStatus DSS ON DSS.DocumentStorageStatus = DS.DocumentStorageStatus 
    		INNER JOIN Batch B					 ON B.BatchID = DS.BatchID
    		INNER JOIN BatchCatalog BC			 ON BC.BatchCatalogID = B.BatchCatalogID 
    		INNER JOIN BatchStatus BS			 ON BS.BatchStatus = B.BatchStatus 
    		INNER JOIN CreationStation CS		 ON B.CreationStationID = CS.CreationStationID 
    		INNER JOIN CreationSite CSI			 ON CS.CreationSiteID = CSI.CreationSiteID 
    	WHERE 
    		DS.DateProcessing BETWEEN 20121018 AND 20121231
    		AND CSI.CreationSiteID = 1
    		AND DS.DocumentStorageStatus IN (5,16,12) 
    		AND B.BatchStatus IN (20, 23, 24, 12)
    		AND DS.Sequence <> 1  
    	GROUP BY
    	B.DateProcessing,BC.ClassName
    	)AA
    PIVOT
    (SUM(Digitado)FOR ClassName IN ([GUIA DE CONSULTA],[GUIA DE SP SADT],[GUIA DE HONORARIO INDIVIDUAL],[GUIA RESUMO DE INTERNACAO])) AB
    
    Data COL1   COL2        COL3       COL4 TOTAL

    18/10/2012 258 150 100 0 NULL
    24/10/2012 1615 490 105 4 2214
    26/10/2012 837 652 35 6 1530
    07/11/2012 1706 670 0 0 NULL
    08/11/2012 762 690 0 0 NULL
    28/11/2012 846 692 0 0 NULL
    29/11/2012 2701 1812 79 9 4601
    30/11/2012 1364 698 11 0 NULL
    03/12/2012 150 178 8 0 NULL
    05/12/2012 16 0 1 0 NULL
    06/12/2012 709 819 174 3 1705

    segunda-feira, 28 de janeiro de 2013 13:54

Respostas

  • Boa tarde Almeida,

    Você deverá colocar o ISNULL na coluna TOTALMOVIMENTO também... ex:

    ISNULL(GUIA DE CONSULTA,0)+ ISNULL(GUIA DE SP SADT,0) + ....

    At.
    Rafael

    • Marcado como Resposta Ricardo Russo quarta-feira, 30 de janeiro de 2013 13:46
    segunda-feira, 28 de janeiro de 2013 15:56