none
Procedure com tabela de retorno com Count RRS feed

  • Pergunta

  • Bom dia

    Desenvolvi  esta procedure que traz o resultado agrupado por entidade, Fornecedor e qualificação e contabiliza a coluna qtdAtendido onde a condição do campo TempoGasto  for <= 0, preciso incluir mais uma coluna que traga a quantidade de registros onde a condição for >0.

    Conseguem me ajudar? Abaixo exemplo.

    USE [Apolo_Teste]
    GO
    /****** Object:  StoredProcedure [dbo].[uspControleEntregas]    Script Date: 12/17/2018 08:12:16 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER 	PROCEDURE [dbo].[uspControleEntregasFornecedor]  @DataInicial DATETIME,  @DataFinal DATETIME
    
    AS 
    BEGIN
    
    
    	DECLARE		@vTabelaRetorno  TABLE (
    				Data			        DATETIME,
    				Codigo			        VARCHAR (30),
    				Descricao				VARCHAR (80),
    				UnidMed				    VARCHAR (7),
    				QuantidadeRecebida		NUMERIC (24,9),
    				QuantidadePedida	    NUMERIC (24,9),
    				Pedido		            VARCHAR (10),
    				NR		                VARCHAR (20),
    				Entidade                VARCHAR (7),
    				Fornecedor              VARCHAR (100),
    				NotaFiscal              VARCHAR (10),
    				Qualificação            VARCHAR (255),
    				DataPrometida           DATETIME,
    				TempoGasto              DATETIME)
    	
    	INSERT
    	INTO	@vTabelaRetorno
    	
    	SELECT RM.RecMercDataMovimento As Data,
    	       IRM.ProdCodEstr As Codigo,
    	       P.ProdNome As Descricao,
    		   IRM.ItRecMercUnidMedCod As UnidMed,
               IRM.ItRecMercQtdProd As QuantidadeRecebida, 
               Ipc.ItPedCompQtd As QuantidadePedida, 
               IRM.PedCompNum As Pedido,
    	       CLIRM.CtrlLoteRecMercNum As NR,
    	       E.EntCod As Entidade,
    	       E.EntNome As Fornecedor,	   
               RM.RecMercDocNum As NotaFiscal,
               E.EntInfFinAvaliacao As Qualificação,          
               IPC.ItPedCompDataEntregaPromForn As DataPrometida,
               dbo.fn_DiasUteis_Logist(IPC.ItPedCompDataEntregaPromForn,RM.RecMercDataMovimento, 'Sim', 'Sim', 'Sim','','') As TempoGasto 
       
    	 
    	FROM  
    	
    		   REC_MERC RM WITH(NOLOCK),
    		   ITEM_REC_MERC IRM WITH(NOLOCK),
    	       PRODUTO P WITH(NOLOCK),
    	       CTRL_LOTE_ITEM_REC_MERC CLIRM WITH(NOLOCK),
    	       ENTIDADE E WITH(NOLOCK),
               ITEM_PED_COMP IPC WITH(NOLOCK)
    	
       WHERE 
    	       RM.RecMercChv = IRM.RecMercChv
           AND P.ProdCodEstr = IRM.ProdCodEstr
           AND RM.RecMercDataMovimento BETWEEN @DataInicial AND @DataFinal
           AND CLIRM.RecMercChv = IRM.RecMercChv
           AND CLIRM.ProdCodEstr = IRM.ProdCodEstr
           AND CLIRM.TipoEtapaCodEstr = IRM.TipoEtapaCodEstr
           AND IRM.TipoEtapaCodEstr = '1.2'
           AND E.EntCod = RM.EntCod
           AND P.ProdCodEstr >= '12.01.0001'
           AND P.ProdCodEstr <= '13.99.9999'
           AND P.ProdCodEstr = IPC.ProdCodEstr
           AND IRM.PedCompNum = IPC.PedCompNum
           AND IRM.ItPedCompSeq = IPC.ItPedCompSeq
    
    
    		
    	SELECT						
    			      Entidade As Entidade,
    			      Fornecedor As Fornecedor,			
    			      Qualificação As Qualificação,
    		          COUNT (TempoGasto) As QtdAtendido
    		                     		          		                      		         										
    			
    	FROM	@vTabelaRetorno
        WHERE    TempoGasto <= 0
        
        
         
    		
        GROUP BY 
    			Entidade,
    			Fornecedor,		
    			Qualificação
    			
        ORDER BY 
    		1			
    			
    END

    segunda-feira, 17 de dezembro de 2018 13:11

Respostas

Todas as Respostas