Usuário com melhor resposta
Calcular valor de horas?

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.
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
- Editado Kanaãm Luz Romero Rodrigues terça-feira, 9 de maio de 2017 21:15
- Marcado como Resposta Guilherme Macedo SModerator sexta-feira, 12 de maio de 2017 13:07
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.
-
-
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
- Editado Kanaãm Luz Romero Rodrigues terça-feira, 9 de maio de 2017 21:15
- Marcado como Resposta Guilherme Macedo SModerator sexta-feira, 12 de maio de 2017 13:07
-
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.