Calcular Hora entre Datas

Firebird

03/07/2012

Galera eu estou precisando fazer uma consulta onde me retorno quantos minutos tem entre um pedido e outro.
Exemplo: um vendedor fez 10 pedidos no dia, eu preciso saber quantos minutos ele passou entro o 1º pedido e 2º pedido, depois entro o 2º pedido e o 3º pedido, etc...

na minha tabela eu tenho um campo TimeStamp que é o data_trasmitida, e inclusive eu ja tenho um select funcionando só que eu preciso passar dois parâmetros, o numero do 1º pedido e o numero do 2º pedido, e assim eu teria que fazer um a um, ou seja, primeiro tenho que comprar o numero do 1º pedido e o numero do 2º pedido depois o numero do 2º pedido e o numero do 3º pedido, o numero do 4º pedido e o numero do 5º pedido, etc... Mas eu preciso que ele faça tudo de uma vez, é possível?


select first 1
(select extract(hour from data_trasmitida)||:|| extract(minute from data_trasmitida) from pedidos where status = 2 and ped_id = :p1) as h1,
(select extract(hour from data_trasmitida)||:|| extract(minute from data_trasmitida) from pedidos where status = 2 and ped_id = :p2) as h2,
round(((select data_trasmitida from pedidos where status = 2 and ped_id = :p2) -
(select data_trasmitida from pedidos where status = 2 and ped_id = :p1))*24*60) || minuto(s) as minu
from pedidos where status = 2
Sidney Abreu

Sidney Abreu

Curtidas 0

Respostas

William

William

03/07/2012

Cara analisando assim sem ter o IBExpert por perto, acho que vc poderia criar StoreProcedure usando o FOR para percorrer toda a tabela e dentro desse inserir as condições necessárias paras os cálculos, esse procedure porderia retornar só a quantidada de minutos. Desse modo vc consegue percorrer toda a tabela e calcular e somar os minutos.

Claro precisa ser testado essa idéia estou sugerindo mas não testei ...
GOSTEI 0
POSTAR