Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buen día
Estoy haciendo un reporte que paso a contarles cual es la necesidad para entender el contexto, tengo dos tablas principales de las cuales trabajo y son Notas_Pedidos y Facturas. Yo tomo la fecha de la nota de pedido y la fecha de factura y saco una diferencia en días, el cual seria los días que tardan en facturar dicha nota de pedido. Pero tengo una cuestión, mucha veces nos agarra fin de semana y feriados o días que no se trabajan por diferentes motivos. La forma correcta para contabilizar: contar los días desde F_Nota_Pedido hasta F_Factura, por cada día medir la cantidad de comprobantes que se realizaron y si es mas de 50 comprobantes, contabilizar ese día y si es mejor no. Vamos al ejemplo que es mas fácil de interpretar.
Siempre antes de consultar intento hacer una formula, pero en este caso no sé por donde arrancar.
Muchas Gracias de antemano
Buen día
Después de unos días de investigación y prueba, opte por usar esta solución utilizando ApplyMap. Les comparto el link de la solución, me fui muy útil y aprendí muchas cosas en el camino.
Saludos!
Se ocurrió hacer una tabla desde script que tiene 3 campos
[Comprobantes_Ventas_PorDia]:
LOAD *;
SQL
DECLARE @FechaHasta DATETIME
DECLARE @FechaDesde DATETIME
SELECT @FechaHasta = GETDATE()
SELECT @FechaDesde = DATEADD(MM, DATEDIFF(MM,0,DATEADD(year, -1, GETDATE())), 0)
SELECT
Comprobantes_Ventas.Fecha
,count(*) as 'Cantidad_Comprobantes'
,CASE WHEN count(*) >= 50 THEN '1' ELSE '0' END AS 'Laboral'
FROM Comprobantes_Ventas
WHERE Comprobantes_Ventas.Fecha BETWEEN @FechaDesde AND @FechaHasta
GROUP BY Comprobantes_Ventas.Fecha;
Esto me genero una tabla con la fecha que tengo comprobantes y la cantidad, más un campos que se llama "laboral", el cual guarda 1 si es mayor a 50 comprobantes.
Luego en una tabla simple con los registros de los comprobantes de venta, hago un calculo sobre esa tabla generada, pero no la tengo con relación a ninguna tabla (Solo de info)
La columna que dice Diferencia el la diferencia de dias entre las dos fechas, en la que dice LABORAL es la que calcula sobre la tabla creada.
No me estaría calculando por cada fila, sino que hace el calculo una sola vez y repite en todos las filas
Buenas, igual te puede servir la función NetWorkDays, que le pasas una fecha de inicio, otra de fin, y un listado de días festivos y te calcula los días laborales entre ambas fechas (cuenta de lunes a viernes, quitando los festivos).
El listado de festivos se pueden guardar en una variable:
SET vFestivos = '01/01/2020','06/01/2020'...;
Tabla:
LOAD NetWorkDays (FechaNota, FechaFactura, $(vFestivos)) as DiasDiferencia...
La alternativa contando como días laborables los que tengan más de 50 comprobante se podría trasladar también a script de Qlik teniendo una tabla que calcule las fechas donde haya más de 50 comprobantes y usar Exists() para comprobar si la fecha está en el listado.
Buen día
Después de unos días de investigación y prueba, opte por usar esta solución utilizando ApplyMap. Les comparto el link de la solución, me fui muy útil y aprendí muchas cosas en el camino.
Saludos!