Pessoal,
Tenho uma tabela que possui a alocação de recursos tendo uma data inicial e uma data final de cada aloação.
Preciso montar uma query que me contenha minuto a minuto a qtde de recursos alocados.
Isso é possível fazer em um select?
Pessoal,
Tenho uma tabela que possui a alocação de recursos tendo uma data inicial e uma data final de cada aloação.
Preciso montar uma query que me contenha minuto a minuto a qtde de recursos alocados.
Isso é possível fazer em um select?
Depende… qual a descrição completa das colunas dessa tabela?
tabela recurso_ocupacao:
id_recurso: int
data_inicial: timestamp
data_final: timestamp
Exemplo:
id_recurso | data_inicial | data_final |
1 | 2006-08-30 08:00 | 2006-08-30 08:02 |
2 | 2006-08-30 08:00 | 2006-08-30 08:05 |
3 | 2006-08-30 08:01 | 2006-08-30 08:03 |
O resultado deveria ser assim:
2006-08-30 08:00 | 2
2006-08-30 08:01 | 3
2006-08-30 08:02 | 3
2006-08-30 08:03 | 2
2006-08-30 08:04 | 1
2006-08-30 08:05 | 1
Já tentou algo assim?
SELECT count(r1.id_recurso), r1.data_inicial
FROM recurso_ocupacao r1, recurso_ocupacao r2,
WHERE r1.data_inicial between r2.data_inicial and r2.data_final
GROUP BY r1.data_inicial
count | data_inicial
4 | 2006-08-30 08:00:00
3 | 2006-08-30 08:01:00
Boaglio,
O problema é que eu vejo é que eu teria que gerar antes do group by uma linha para cada minuto ocupado, exemplo, para o registro 1 deveria ter no resultset tres linhas, com os horários a cada minuto…