30% OFF para compra e renovaÇÃo. Comprar agora

Autor Tópico: Calcular o total de horas numa coluna [RESOLVIDO]  (Lida 1846 vezes)

jobsoncunha

  • Iniciante
  • **
  • Mensagens: 83
    • Email
Calcular o total de horas numa coluna [RESOLVIDO]
« Online: Maio 29, 2015, 12:52:11 pm »
Senhores, sei que esse tópico foi bastante discutido, mas não encontrei em nenhum deles a solução para meu problema. Tenho uma consulta que mostra o tempo de duração de uma narrativa numa coluna e o tempo de duração de um vídeo em outra. Como são inúmeros registros e esses são quebrados por blocos, preciso o total das narrativas e o total do tempo dos vídeos de cada bloco e no final o total geral das colunas. Os campos na BD é do tipo TIME. Ví que o SC soma apenas campos numéricos, então, o que posso fazer parra resolver esse dilema?


« Última modificação: Junho 08, 2015, 10:08:34 am por jobsoncunha »

Kleyber

  • Expert
  • *****
  • Mensagens: 3113
    • TK Informídia
Re:Calcular o total de horas numa coluna
« Responder #1 Online: Maio 29, 2015, 02:58:42 pm »
jobson,

Tem sim alguns links sobre cálculo de horas. Tem este link, por exemplo: http://www.scriptcase.com.br/forum/index.php/topic,10740.msg54118.html#msg54118. Se não for o que procura, veja a macro sc_time_diff().
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão

Arquimedes

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 588
  • Ajudar para ser ajudado
Re:Calcular o total de horas numa coluna
« Responder #2 Online: Maio 30, 2015, 07:28:27 am »
Qual é o banco? Geralmente consultas com campos elaborados eu faço na sql e crio uma view para  exibir esses campos de soma ja prontos e nao exigir muito do sistema ai fica a tarefa para o banco de dados.
 Ex:
02:35:00
01:20:00
03:40:00

SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( nome_campo ) ) ) AS total_horas FROM nome_tabela
ou criar um campo e da um valor da variavel de soma a ele

$check_sql = "SELECT SEC_TO_TIME( SUM( TIME_TO_SEC( nome_campo ) ) ) AS total_horas FROM nome_tabela";
sc_lookup(rs, $check_sql);

$soma_hora = {rs[0][0]};

{campo_soma}=$soma_hora ;

Att Arquimedes
« Última modificação: Maio 30, 2015, 09:59:30 am por Arquimedes »

jobsoncunha

  • Iniciante
  • **
  • Mensagens: 83
    • Email
Re:Calcular o total de horas numa coluna [RESOLVIDO]
« Responder #3 Online: Junho 08, 2015, 10:08:16 am »
Para resolver o meu problema fiz o seguinte:

no SQL usei:
    extract( epoch from tmp_esc) AS total_esc,
    extract( epoch from tmp_vt) AS total_vt

na Totalização marquei como soma os campos:
    total_esc e total_vt

no evento da quebra bloco_onGroupBy
    $seconds = {sum_bloco_total_vt} + {sum_bloco_total_esc};
    $hours = floor($seconds / 3600);
    $seconds -= $hours * 3600;
    $minutes = floor($seconds / 60);
    $seconds -= $minutes * 60;
    $hours = str_pad($hours, 2, '0', STR_PAD_LEFT);
    $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT);
    $seconds = str_pad($seconds, 2, '0', STR_PAD_LEFT);
    {sum_bloco_tempo_total} = $hours . ':' . $minutes . ':' . $seconds;

Obtendo dessa forma o total do tempo para cada bloco de materias.