Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom Dia,
Estou com um problema e já pesquisei por vários sites e não consegui resolvê-lo, talvez alguém aqui possa me ajudar. O problema é o seguinte:
Identificação | Área | Horario |
1 | XXX | 06/10/2016 18:30 |
1 | YYY | 06/10/2016 18:35 |
1 | XXX | 10/10/2016 09:45 |
2 | AAA | 15/10/2016 15:20 |
2 | BBB | 15/10/2016 17:33 |
Tenho a tabela acima e preciso calcular o tempo que cada usuário permaneceu em cada área, ou seja, se o código da 'Identificação' da linha atual for igual ao da próxima linha e a 'Área' for diferente eu preciso pegar o 'Horario' da próxima linha e subtrair da atual como exemplo abaixo:
Identificação | Área | Horario | Tempo em cada Área |
1 | XXX | 06/10/2016 18:30 | 06/10/2016 18:35 - 06/10/2016 18:30 = 00:05 |
Porém quando a 'Área' for a mesma eu apenas somo os horários.
Alguém consegue me ajudar?
I think tou can add to every record the fields of the next one, ie
U:
load *, rowno() as id inline [
Identificao, Area, Horario
1, XXX, 06/10/2016 18:30
1, YYY, 06/10/2016 18:35
1, XXX, 10/10/2016 09:45
2, AAA, 15/10/2016 15:20
2, BBB, 15/10/2016 17:33
];
U1:
load *,
peek('Identificao') as NextIdentificao,
peek('Area') as NextArea,
peek('Horario') as NextHorario
Resident U
Order by id desc;
DROP Table U;
The result is this table: now you have in a single row all the data you need to calc the time difference between the 2rows
Juliene,
se você conseguir ordenar os dados, é possível fazer conforme o anexo.
Juliene,
segue um modelo com os seus dados...
Identificação | Área | Horario | Diferenca |
---|---|---|---|
1 | XXX | 06/10/2016 18:30 | |
1 | YYY | 06/10/2016 18:35 | 00:05:00 |
1 | XXX | 10/10/2016 09:45 | 15:10:00 |
2 | AAA | 15/10/2016 15:20 | |
2 | BBB | 15/10/2016 17:33 | 02:13:00 |
I think tou can add to every record the fields of the next one, ie
U:
load *, rowno() as id inline [
Identificao, Area, Horario
1, XXX, 06/10/2016 18:30
1, YYY, 06/10/2016 18:35
1, XXX, 10/10/2016 09:45
2, AAA, 15/10/2016 15:20
2, BBB, 15/10/2016 17:33
];
U1:
load *,
peek('Identificao') as NextIdentificao,
peek('Area') as NextArea,
peek('Horario') as NextHorario
Resident U
Order by id desc;
DROP Table U;
The result is this table: now you have in a single row all the data you need to calc the time difference between the 2rows
O tempo que mostra a tabela esta errado.....mas o calculo esta certo....formatei o campo mas nao fiz o calculo...
(sum(Diferenca)*24)*60
Identificação | Área | Horario | Minutos |
---|---|---|---|
5368,00 | |||
1 | YYY | 06/10/2016 18:35 | 5,00 |
1 | XXX | 10/10/2016 09:45 | 5230,00 |
2 | BBB | 15/10/2016 17:33 | 133,00 |
Bom Dia pessoal,
Muito obrigada pela ajuda, marquei a resposta do M G como correta pois era a linha de raciocínio que eu tinha começado, mas as outras também da certo, depende da forma se prefere trabalhar.
Abraços.