Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
Prueba con el archivo que adjunto a ver si te vale.
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
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
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
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
volverà el numero 30, osea el numero de dìas del mes de Abril
Andrea
Prueba con el archivo que adjunto a ver si te vale.
Prueba con esta:
sum(Value) / day(MonthEnd(Makedate(Año,Mes,1)))
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
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
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.
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