none
Calcular valor de horas? RRS feed

  • Pergunta

  • calcular o valor da hora.

    somei todos os campos da tabela, que na tabela esta como time, na soma total passou a ser varchar, agora como faço para calcular o valor da hora.

    DECLARE 
    		@Total_Horas_Extra_Mes varchar(10),
    		@Soma INT,
    		@DataInicial DATE = '2017-03-26' ,
    		@dataFinal DATE = '2017-04-25'
    
    SET @Soma = (SELECT Quant_Hora_Extra 
    			    = Sum(DateDiff(minute, 0, Quant_Hora_Extra))
    				from TBL_Horas_Extras 
    				where  CAST(Data AS DATE) BETWEEN @DataInicial AND @dataFinal)
    
    		declare @minutos int
    		set @minutos = @Soma
    		SET @Total_Horas_Extra_Mes =  (select cast (@minutos / 60 as varchar) + ':' + cast (@minutos - ((@minutos / 60) * 60) as varchar))
    
    
    
    		DECLARE @Volor_Total decimal(18,2)
    		set @Volor_Total = 
    		('100:00:00' --total de horas
    		* 
    		10.00);--valor da hora
    se alguém puder dar uma ajuda agradeço.

    segunda-feira, 8 de maio de 2017 11:46

Respostas

  • Cara, se eu entendi direito, você precisa calcular o total de horas extra, porém você irá calcular tempos parciais? Por exemplo, se der 01:30 horas extra você deveria pagar 10 ou 15?

    Você pode fazer da seguinte forma:

    DECLARE 
    		@Total_Horas_Extra_Mes varchar(10),
    		@Soma INT,
    		@DataInicial DATE = '2017-03-26' ,
    		@dataFinal DATE = '2017-04-25'
    
    SET @Soma = (SELECT Quant_Hora_Extra 
    			    = Sum(DateDiff(minute, 0, Quant_Hora_Extra))
    				from TBL_Horas_Extras 
    				where  CAST(Data AS DATE) BETWEEN @DataInicial AND @dataFinal)
    
    		declare @minutos int
    		set @minutos = @Soma
    		SET @Total_Horas_Extra_Mes =  (select cast (@minutos / 60 as varchar) + ':' + cast (@minutos % 60 as varchar))
    
    
    
    		DECLARE @Volor_Total decimal(18,2)
    		set @Volor_Total = 10.00*(@minutos/60)--calculo de horas inteiras
                    set @Volor_Total = 10.00*(@minutos/60)+(10.00*(@minutos%60)/60)--calculo de horas quebradas

    Não cheguei a testar, mas deve funcionar.

    Abraço!



    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski


    terça-feira, 9 de maio de 2017 21:09

Todas as Respostas

  • Boa tarde Samuel de Jesus

    O seu caso seria uma questão de Break Fix, ou uma questão de How To?

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 8 de maio de 2017 21:01
    Moderador
  • não intendi, significa que não da para fazer no sql, ou C#

    terça-feira, 9 de maio de 2017 20:58
  • Cara, se eu entendi direito, você precisa calcular o total de horas extra, porém você irá calcular tempos parciais? Por exemplo, se der 01:30 horas extra você deveria pagar 10 ou 15?

    Você pode fazer da seguinte forma:

    DECLARE 
    		@Total_Horas_Extra_Mes varchar(10),
    		@Soma INT,
    		@DataInicial DATE = '2017-03-26' ,
    		@dataFinal DATE = '2017-04-25'
    
    SET @Soma = (SELECT Quant_Hora_Extra 
    			    = Sum(DateDiff(minute, 0, Quant_Hora_Extra))
    				from TBL_Horas_Extras 
    				where  CAST(Data AS DATE) BETWEEN @DataInicial AND @dataFinal)
    
    		declare @minutos int
    		set @minutos = @Soma
    		SET @Total_Horas_Extra_Mes =  (select cast (@minutos / 60 as varchar) + ':' + cast (@minutos % 60 as varchar))
    
    
    
    		DECLARE @Volor_Total decimal(18,2)
    		set @Volor_Total = 10.00*(@minutos/60)--calculo de horas inteiras
                    set @Volor_Total = 10.00*(@minutos/60)+(10.00*(@minutos%60)/60)--calculo de horas quebradas

    Não cheguei a testar, mas deve funcionar.

    Abraço!



    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski


    terça-feira, 9 de maio de 2017 21:09
  • Bom dia

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 12 de maio de 2017 13:07
    Moderador