Boa Tarde !!!
Nunca trabalhei com intervalo de horas e tenho a seguinte situação.
Pessoal tem uma tabela com duas datas como uma agenda.
Campo "Datainicio" 01/12/2015 08:00 e campo "Datafim" 01/12/2015 10:45
Sempre as datas estarão com intervalo de múltiplos de 15 minutos.
O que preciso saber é quantos intervalos de 15 min tenho de cada Datafim - Datainicio.
O Interval de =Interval([Datafim]-[Datainicio]) é 02:45 nesse caso tenho 11 intervalos de 15 min.
Agradeço.
ViniciusRoteli, será que isso te ajuda ?
//Deixei o script assim
teste:
LOAD * INLINE [
Horainicio, Horafim
'19/08/2015 14:00:00', '19/08/2015 17:00:00'
'10/12/2015 08:00:00', '10/12/2015 11:15:00'
];
Teste1:
NoConcatenate
load date#(Date(Horainicio,'DD/MM/YYYY HH:mm'),'DD/MM/YYYY HH:mm') as Dataini,
time#(Time(Horainicio,'HH:mm'),'HH:mm') as Horaini,
time#(Time(Horafim,'HH:mm'),'HH:mm') as Horafim Resident teste;
drop Table teste;
Fiz uma expressão da seguinte forma :
=hour(Interval(Horafim - Horaini)) * 60 / 15 + Minute(Interval(Horafim - Horaini)) / 15
Segue o QVW .
cleveranjos dessa forma ele vai contar só os casos que são criação, mas preciso ignorar o evento quando o mesmo tiver exclusão.
O que tinha feito era exatamente isso mas com um if
if(round({<[Tipo Ação]=-{"EXCLUSAO"}>}(Horafim - Horainicio)*24*4)-round({<[Tipo Ação]=-{"CRIACAO"}>}(Horafim - Horainicio)*24*4)>0,round((Horafim - Horainicio)*24*4), NULL())
Não sei se teia uma forma diferente de fazer.
Você precisa carregar os excluidos ??? Na carga faz um where tipoacao <> 'Excluído ';
Sim,
Eu preciso carregar os Excluídos, pois no fim faço uma contagem dos status 'CRIAÇÃO' E 'EXCLUÍDOS', mas para fazer a contagem dos intervalos de 15 min é só para os casos que não tenham o Status 'EXCLUÍDOS'.
Conforme exemplo acima.
Evento | Tipo Ação | Hora Início | Hora Fim | Expressão |
84 | CRIACAO | 21/08/2015 21:00:00 | 21/08/2015 21:30:00 | 0 |
84 | EXCLUSAO | 21/08/2015 21:00:00 | 21/08/2015 21:30:00 | 0 |
85 | CRIACAO | 21/08/2015 22:00:00 | 21/08/2015 22:30:00 | 2 |
depois contar a qtde total de intervalos de 15 min.
if([Tipo Ação]<>'EXCLUSAO',round((Horafim - Horainicio)*24*4))
ou
Round(SUM({<[Tipo Ação]=-{'EXCLUSAO'}>}(Horafim - Horainicio)*24*4))
"dessa forma ele vai contar só os casos que são criação, " Na verdade vai contar os que não são Exceção, existe um "-" antes do "="
Sim eu entendi, mas se o evento tiver o tipo ação "EXCLUSAO" é pq esse evento foi cancelado e devo desconsiderar.
o que estou fazendo é isso
if(round({<[Tipo Ação]=-{"CRIACAO"}>}(Horafim - Horainicio)*24*4) - round({<[Tipo Ação]=-{"EXCLUSAO"}>}(Horafim - Horainicio)*24*4)=0,NULL(),round((Horafim - Horainicio)*24*4),)
pois se tiver os 2 a conta vai dar zero e não vou contar, queria saber se existe um outra forma apenas.
Vinicius,
Não entendi muito bem sua regra de negócio, porém, sua sintaxe está incorreta, deveria ser por exemplo:
if(Round(SUM({<[Tipo Ação]=-{'CRIACAO'}>}(Horafim - Horainicio)*24*4)) - Round(SUM({<[Tipo Ação]=-{'EXCLUSAO'}>}(Horafim - Horainicio)*24*4))=0,'S',round((Horafim - Horainicio)*24*4))
Se você precisa apenas desconsiderar o registro (EXCLUSAO), siga o que postei anteriormente.