none
Erro select no servidor RRS feed

  • Pergunta

  • Boa noite pessoal ! tenho uma consulta que funciona perfeitamente no servidor local (meu PC), mas quando executo a mesma consulta no servidor apresenta numero totalmente direrente ou seja acredito que o servidor esta configurado com o padrao YMD.. alguem tem ideia de como ficaria essa consulta executando no servidor com configuracao YMD ?

    code


    		
    DECLARE @DATA_DIA_ATUAL DATETIME
    SET @DATA_DIA_ATUAL =(SELECT CAST(CONVERT(VARCHAR,GETDATE(),101) AS DATETIME))
    
    DECLARE @DATA_D_1 DATETIME
    SET @DATA_D_1 =(SELECT CAST(CONVERT(VARCHAR,GETDATE() -1,101) AS DATETIME))
    
    DECLARE @MES_ATUAL INT = (SELECT DATEPART(MM, GETDATE()))
    DECLARE @ANO_ATUAL INT = (SELECT DATEPART(YY,GETDATE()))
    DECLARE @DATA_ACUM_MES DATETIME = (SELECT CONVERT(VARCHAR(4),@ANO_ATUAL) + '-'+ '01-'+ CONVERT(VARCHAR(2), @MES_ATUAL))
    
    DECLARE @SEM_PREVISAO DATETIME = (SELECT CAST(CONVERT(VARCHAR,'1900-01-01 00:00:00.000',103)AS DATETIME))
    
    
    DECLARE @INDICADOR_DF TABLE
    (
    	FROTA VARCHAR(100),
    	TOTAL_HR_MANUT_D_1 INT,
    	TOTAL_HR_MANUT_MES INT
    )
    INSERT INTO @INDICADOR_DF
    SELECT
    
    IMPACTO.EQU_FROTA,
    
    (SELECT CASE 	
    				WHEN ((SAI_DT_INICIO < @DATA_ACUM_MES)AND(SAI_DT_FIM = @SEM_PREVISAO)) THEN
    				     DATEDIFF(HOUR,@DATA_D_1, @DATA_DIA_ATUAL)
    	
    				WHEN(DATEPART(MONTH,SAI_DT_INICIO) < DATEPART(MONTH, @DATA_ACUM_MES))
    				     AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)) 
    				     AND ((SAI_DT_INICIO < @DATA_D_1)AND(SAI_DT_FIM < @DATA_D_1)) THEN
    				     DATEDIFF(HOUR,@DATA_D_1, @DATA_D_1)
    				     
    				WHEN(DATEPART(MONTH,SAI_DT_INICIO) = DATEPART(MONTH, @DATA_ACUM_MES))
    				     AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)) 
    				     AND ((SAI_DT_INICIO < @DATA_D_1)AND(SAI_DT_FIM = @SEM_PREVISAO)) THEN
    				     DATEDIFF(HOUR,@DATA_D_1, @DATA_DIA_ATUAL)	
    				 				     
    				WHEN(DATEPART(MONTH,SAI_DT_INICIO) = DATEPART(MONTH, @DATA_ACUM_MES))
    				     AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)) 
    				     AND ((SAI_DT_INICIO BETWEEN @DATA_D_1 AND @DATA_DIA_ATUAL)AND(SAI_DT_FIM = @SEM_PREVISAO)) THEN
    				     DATEDIFF(HOUR,SAI_DT_INICIO, @DATA_DIA_ATUAL)				     
    
                     WHEN(DATEPART(MONTH,SAI_DT_INICIO) = DATEPART(MONTH, @DATA_ACUM_MES))
    				     AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)) 
    				     AND ((SAI_DT_INICIO < @DATA_D_1)AND(SAI_DT_FIM < @DATA_D_1)) THEN
    				     DATEDIFF(HOUR,@DATA_D_1, @DATA_D_1)
    				     
    				 WHEN(SAI_DT_INICIO < @DATA_D_1) AND (SAI_DT_FIM BETWEEN @DATA_D_1 AND @DATA_DIA_ATUAL) THEN
    			         DATEDIFF(HOUR,@DATA_D_1,SAI_DT_FIM) 	
    			         
                     WHEN (SAI_DT_INICIO < @DATA_D_1) AND(SAI_DT_FIM > @DATA_DIA_ATUAL)THEN
    			         DATEDIFF(HOUR,@DATA_D_1, @DATA_DIA_ATUAL)
    			         
    			     WHEN(SAI_DT_INICIO > @DATA_D_1) AND(SAI_DT_FIM > @DATA_DIA_ATUAL)THEN
    				     DATEDIFF(HOUR,SAI_DT_INICIO, @DATA_DIA_ATUAL)
    				 				 			     	        
                     ELSE DATEDIFF(HOUR,SAI_DT_INICIO,SAI_DT_FIM) END FROM MANUTENCAO_RETENCAO_TEMPO 
    WHERE MAN_ID = IMPACTO.MAN_ID ) AS D_1,
    
    
    
    (SELECT CASE 
    
    			WHEN ((SAI_DT_INICIO < @DATA_ACUM_MES)AND(SAI_DT_FIM = @SEM_PREVISAO)) THEN
    				     DATEDIFF(HOUR,@DATA_ACUM_MES, @DATA_DIA_ATUAL)  
    
    			WHEN(DATEPART(MONTH,SAI_DT_INICIO) = DATEPART(MONTH, @DATA_DIA_ATUAL))
    				     AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_DIA_ATUAL)) 
    				     AND (SAI_DT_FIM = @SEM_PREVISAO) THEN
    				     DATEDIFF(HOUR,SAI_DT_INICIO, @DATA_DIA_ATUAL)			
    
    			WHEN DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)
    				  AND DATEPART(MONTH,SAI_DT_INICIO)< DATEPART(MONTH,@DATA_ACUM_MES)
    				  AND DATEPART(MONTH,SAI_DT_FIM) < DATEPART(MONTH,@DATA_ACUM_MES) THEN
    				  DATEDIFF(HOUR,@DATA_D_1, @DATA_D_1) 		
    			
    			WHEN DATEPART(MONTH,SAI_DT_INICIO)< DATEPART(MONTH,SAI_DT_FIM)
    				  AND(SAI_DT_FIM < @DATA_DIA_ATUAL)
    				  AND(DATEPART(YEAR,SAI_DT_INICIO)= DATEPART(YEAR,@DATA_ACUM_MES)) THEN
    			      DATEDIFF(HOUR,@DATA_ACUM_MES,SAI_DT_FIM) 
    			      
                 WHEN DATEPART(MONTH,SAI_DT_INICIO)>= DATEPART(MONTH,SAI_DT_FIM)
                      AND(SAI_DT_FIM >= @DATA_DIA_ATUAL)
                      AND (DATEPART(YEAR,SAI_DT_INICIO)=DATEPART(YEAR,@DATA_ACUM_MES))THEN
                      DATEDIFF(HOUR,SAI_DT_INICIO,@DATA_DIA_ATUAL)
                      
                 WHEN DATEPART(MONTH,SAI_DT_INICIO)< DATEPART(MONTH,SAI_DT_FIM)
                      AND(SAI_DT_FIM >= @DATA_DIA_ATUAL)
                      AND (DATEPART(YEAR,SAI_DT_INICIO)=DATEPART(YEAR,@DATA_ACUM_MES))THEN
    				  DATEDIFF(HOUR,@DATA_ACUM_MES,@DATA_DIA_ATUAL)	
    				  
                 ELSE DATEDIFF(HOUR,SAI_DT_INICIO,SAI_DT_FIM) END FROM MANUTENCAO_RETENCAO_TEMPO 
    WHERE MAN_ID = IMPACTO.MAN_ID )AS ACUM_MES
        
    
    	FROM
    MANUTENCAO_RETENCAO_TEMPO AS IMPACTO
    	INNER JOIN MANUTENCOES AS MANUT ON IMPACTO.MAN_ID = MANUT.MAN_ID
    	LEFT JOIN EQUIPAMENTO AS EQUIP ON MANUT.EQU_ID = EQUIP.EQU_ID
    
    WHERE
    	EQUIP.EQU_IMPACTO LIKE'SIM'AND 
    	EQUIP.EQU_TIPO LIKE 'EVP'AND 
    	IMPACTO.MAN_IMPACTO LIKE 'RETIDO' AND 
    	IMPACTO.STA_ID <> 2 
    	AND ((DATEPART(MM,SAI_DT_FIM)=DATEPART(MM,@DATA_ACUM_MES)) 
    	OR(SAI_DT_FIM = @SEM_PREVISAO))
    
    
    select distinct 
    	
    	EQU_FROTA,
    	EQU_PESO,
    	EQU_META,
    	(SELECT COUNT(EQU_NOME)FROM EQUIPAMENTO WHERE EQU_FROTA = EQUIP.EQU_FROTA)AS QTDE,
    	
    	ISNULL ((CONVERT(DECIMAL(10,2),(100 -(SELECT (SUM(CONVERT(DECIMAL,TOTAL_HR_MANUT_D_1)/(24*4)*100)) FROM @INDICADOR_DF WHERE FROTA = EQU_FROTA)))),100)AS D_1,
    	ISNULL ((CONVERT(DECIMAL(10,2),(100 -(SELECT (SUM(CONVERT(DECIMAL,TOTAL_HR_MANUT_MES)/(24*4*(DATEPART(DD,GETDATE()-1)))*100)) FROM @INDICADOR_DF WHERE FROTA = EQU_FROTA)))),100)AS ACUM_MES
    	   
    from 
    	EQUIPAMENTO EQUIP
    WHERE
    	EQU_TIPO LIKE 'EVP' AND EQU_IMPACTO LIKE 'SIM' AND EQU_PESO > 0
    

    Desculpe nao estava sabendo formatar aqui srs perdao!



    • Editado RJ_Silva quinta-feira, 9 de agosto de 2012 22:46
    quinta-feira, 9 de agosto de 2012 20:28

Respostas

  • pessoal vlw pela atencao conseguir resolver da seguinte forma

    alterei a seguinte linha 

    DECLARE @DATA_ACUM_MES DATETIME = (SELECT CONVERT(VARCHAR(4),@ANO_ATUAL) + '-'+ '01-'+ CONVERT(VARCHAR(2), @MES_ATUAL))

    Para

    DECLARE @DATA_ACUM_MES DATETIME = (SELECT CONVERT(VARCHAR(4),@ANO_ATUAL)+ '-'+ CONVERT(VARCHAR(2), @MES_ATUAL)+'-'+' 01')

    Desculpa por postar uma query grande demais mas achei que ia facilitar o entedimento

    Vlw

    • Marcado como Resposta RJ_Silva sexta-feira, 10 de agosto de 2012 00:12
    sexta-feira, 10 de agosto de 2012 00:12

Todas as Respostas

  • Olá Rafael...

    Pra facilitar nosso entendimento, formate o código da query.

    Abraço !


    Não esqueça de marcar o post como útil caso tenha te ajudado.

    quinta-feira, 9 de agosto de 2012 20:36
  • Rafael,

    Evite colocar arquivos em sites que exijam cadastros e afins.

    O fórum tem um botão para inserção de código fonte... basta inserir o seu código pré-formatado e mandar publicar.

    quinta-feira, 9 de agosto de 2012 21:49
  • Rafael,

    Evite colocar arquivos em sites que exijam cadastros e afins.

    O fórum tem um botão para inserção de código fonte... basta inserir o seu código pré-formatado e mandar publicar.

    Desculpe Logan nao estava sabendo formatar o codigo sou meio leigo ainda com Sql  vlw pela atencao !
    quinta-feira, 9 de agosto de 2012 22:47
  • pessoal vlw pela atencao conseguir resolver da seguinte forma

    alterei a seguinte linha 

    DECLARE @DATA_ACUM_MES DATETIME = (SELECT CONVERT(VARCHAR(4),@ANO_ATUAL) + '-'+ '01-'+ CONVERT(VARCHAR(2), @MES_ATUAL))

    Para

    DECLARE @DATA_ACUM_MES DATETIME = (SELECT CONVERT(VARCHAR(4),@ANO_ATUAL)+ '-'+ CONVERT(VARCHAR(2), @MES_ATUAL)+'-'+' 01')

    Desculpa por postar uma query grande demais mas achei que ia facilitar o entedimento

    Vlw

    • Marcado como Resposta RJ_Silva sexta-feira, 10 de agosto de 2012 00:12
    sexta-feira, 10 de agosto de 2012 00:12