Fórum Calcular Hora entre Datas #419237
03/07/2012
0
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
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
Curtir tópico
+ 0
Responder
Posts
03/07/2012
William
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 ...
Claro precisa ser testado essa idéia estou sugerindo mas não testei ...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)