Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Duda calendario maestro y relación con otras tablas

Hola, tengo una duda , que paso a detallar:

Yo creo un calendario maestro de la siguiente manera:

let vMin  = num(MakeDate(2014,09,09));

let vMax = num(today());

       Calendario:

       load

       date(IterNo() + $(vMin)-1) as fecha

       AutoGenerate 1 while IterNo() + $(vMin) -1 <= $(vMax);

    

       CalendarioMaestro:

       load

        fecha, year(fecha) as año, Num(Month(fecha)) as mes, Day(fecha) as dia, Week(fecha) as NumeroSemana,

       1 as contadorDias

       resident Calendario  ORDER BY fecha ASC;

    

       drop table Calendario;

    

Y luego genero una tabla de la siguiente manera:

TablaEjemplo:

        select ID,count(*) as total,date_format(fecha,'%Y-%m-%d') as fecha

        from tabla

        where ID is not null

        group by ID,date_format(fecha,'%Y-%m-%d');

En TablaEjemplo, tengo diferentes ID,  cada ID puede tener ventas en diferentes días (diferentes fechas). Es decir, en tabla para un determinado ID no tiene porque estar todas las fechas. Yo debo calcular la media en un periodo de tiempo

Pongo un ejemplo, febrero tiene 28 días, pero yo en tabla no tengo los dias 15,16, 24,28, para un ID concreto. Para yo calcular la media de dicho ID siguen siendo 28 días aunque me falten esos 4 días. Yo dispongo de 3 selectores uno para dia otro para mes y otro para año. Si para un determinado ID falta como en el ejemplo los días 15,16,24,28, en el selector de dia no me lo dejara seleccionar. Pero a la hora de hacer la media, si necesito que me compute esos dias

   Yo hago un count(distinct fecha) o un count (contadorDias) en ambos caso me daría 24 días, pero yo necesito que me de los 28 del mes completo

Un saludo

1 Solution

Accepted Solutions
fvelascog72
Partner - Specialist
Partner - Specialist

Prueba con el archivo que adjunto a ver si te vale.

View solution in original post

10 Replies
fvelascog72
Partner - Specialist
Partner - Specialist

Hola,

Podrías rellenar los días que faltan con ceros.

Otra opción sería que contaras las fechas pero por conjuntos no tener en cuenta la selección de tu campo ID

Algo así como: Count({<ID>}Fecha)

Saludos

Anonymous
Not applicable
Author

Buenas, la opción de añadir ceros, no la veo muy factible, ya que se tratan de miles de registros que si tengo que ponerle para cada ID, las fechas que faltan todavía serian muchos más miles.

La opción de poner el count como dices, tampoco me funciona, me sigue dando el número de fechas en las que hay coincidencia con esa ID.

Adjunto una captura de mis tablas, para aclarar

captura_modelo.jpg

las 3 tablas de la izquierda serian 3 tablas Ejemplo de la que digo arriba. A efectos prácticos ahora mismo es como si tuviera una sola tabla

Un saludo

anlonghi2
Creator II
Creator II

Hola Jonay,

lo que podes hacer es utilizar a la funcion (se escribirà asì?) Monthend, Day y makedate.

Por ejemplo: day(monthend(makedate(youryear, yourmonth,yourday))) con

  • youryear=2015
  • yourmonth=04
  • yourday=12

volverà el numero 30, osea el numero de dìas del mes de Abril

Andrea

fvelascog72
Partner - Specialist
Partner - Specialist

Prueba con el archivo que adjunto a ver si te vale.

anlonghi2
Creator II
Creator II

Prueba con esta:

sum(Value) / day(MonthEnd(Makedate(Año,Mes,1)))

Anonymous
Not applicable
Author

Hola, esto me serviría si los periodos que seleccionara fuera siempre de un mes concreto, pero en mi caso puedo seleccionar dias, o un par de meses, o selecciones de ese tipo. De todas formas me lo apunto, muchas gracias

Anonymous
Not applicable
Author

Buenas, el calendario funcionaba correctamente como lo tenía, (de manera similar al tuyo). Mi fallo era que si ponia el ID como dimensión, la información se me vinculaba a ese ID y por tanto no me daba todos los posibles días. Mi solución fue poner el ID como una expresión más y así el número de días que me daba era el general y no los días que tuvieran relación con ese ID. Muchas gracias

fvelascog72
Partner - Specialist
Partner - Specialist

En el ejemplo que adjunté anteriormente aparecen los días seleccionados y la media de las ventas respecto a las fechas seleccionadas, independientemente de la selección de ID.

Saludos.

Anonymous
Not applicable
Author

Hola Federico, pero yo me referia que en mi caso concreto, yo lo que hacía es una tabla simple y ponia como dimensión el ID, por tanto la información se me vinculaba respecto a ese ID y no me calculaba en función de todas las fechas posibles.

De todas formas muchas gracias, porque lo que me pasastes era correcto

Un saludo