Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consultas por franja horaria (https://www.clubdelphi.com/foros/showthread.php?t=92996)

petercat 13-04-2018 21:02:29

Consultas por franja horaria
 
Buenas Quiero sacar mediante una consulta SQL la suma total de los importes cobrados de una tabla en funcion a la hora de su cobro.
Ahora mismo mediante la siguiente consulta saco el importe total de la suma por horas y ademas lo agupo por fecha.
Código SQL [-]
select sum(total) as venta, EXTRACT(hour FROM fecha) as hora from documentos
   where (COBRADO) and not borrado and not invitado

and cast(fecha as date) =:fecha
     group by hora


Pues lo que necesito es sumar varias franjas horaria es decis sumar importes desde las 7:00 hasta la 12:00 desde la 12: hasta las 17:00 y desde las 18: hasta las 24:00.
Alguein que me pueda ayudar??

Gracias

orodriguezca 13-04-2018 22:28:08

Propongo esta solución (debería funcionar en la mayoría de motores de bases de datos):

Código SQL [-]
with VentasxHora as (
  select 
    sum(total) as venta, 
    EXTRACT(hour FROM fecha) as hora,
    case
       when Extract(hour from fecha) < '12:00' then 'Franja 1'
       when Extract(hour from fecha) < '17:00' then 'Franja 2'
       when Extract(hour from fecha) >= '18:00' then 'Franja 3'
       else 'Franja XX'
    end as Franja 
  from documentos
  where (COBRADO) 
   and not borrado 
   and not invitado
   and cast(fecha as date) =:fecha
  group by hora
)
select 
  Franja, 
  Sum(ventas) as ventasxfranja
from ventasxhora
group by Franja

petercat 17-04-2018 10:12:29

Muchas Gracias, funciono correctamne.
Un saludo :)


La franja horaria es GMT +2. Ahora son las 04:24:39.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi