none
obtener el mayor numero de días consecutivos sin ventas por empleado RRS feed

  • Pregunta

  • Saludos estimados,

    Partiendo de una tabla ventas(venta_ID, empleado_ID,fecha_venta) como puedo obtener el empleado_ID, y el numero de días máximo consecutivos sin ventas en un periodo determinado, agrupados por empleado.

    gracias por su ayuda

    sábado, 8 de diciembre de 2018 5:12

Respuestas

  • Si es un SQL Server moderno, puedes hacerlo más o menos como te pongo a continuación.

    -- Datos de ejemplo
    create table ventas(venta_ID int identity primary key, empleado_ID int, fecha_venta datetime) 
    go
    insert ventas (empleado_ID, fecha_venta) values
    (1, '20180812'),
    (1, '20180814'),
    (1, '20180818'),
    (1, '20180912'),
    (21, '20170812'),
    (21, '20170814'),
    (21, '20170818'),
    (21, '20170912')
    go
    
    with cte as (
    select empleado_ID,
    datediff(dd, LAG(fecha_venta,1,null) over (partition by empleado_id order by fecha_venta), fecha_venta) as diasIntervalo
    from ventas
    where fecha_venta between '20160101' and '20190101'
    )
    select empleado_ID,
    max(diasIntervalo) as max_dias
    from cte
    group by empleado_ID
    order by empleado_ID
    Screenshot


    domingo, 9 de diciembre de 2018 11:27