Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola, tengo un problema que no se me ocurre cómo poder solucionarlo.
Utilizo la siguiente expresión para calcular la energía del periodo seleccionado, ya que la energía es acumulativa y hay k hacer la resta entre la fecha máxima y la mínima.
Sum({<UTCDateTime={$(=max((UTCDateTime)))}>} Energía)-Sum({<UTCDateTime={$(=min((UTCDateTime)))}>} Energía))
Pero me he encontrado con el problema de que si selecciono por ejemplo 2 días que no sean correlativos ( ej: 2 y 9 ya que quiero comparar el mismo día de la semana) no hace bien la resta que quiero, ya que quiero restar la máxima fecha menos la mínima de cada día y sumarlas.
Con las horas me pasa lo mismo.
Cómo podría hacer esto?
Os lo agradecería mucho.
Un saludo y gracias.
Veo los datos que pusiste, tienes para cada día, varias horas y una medición de energía para cada medidor, aunque como dices la energía no se va incrementando.
Ahora sólo parar entender bien la pregunta:
- Quieres comparar para cada medidor, las diferencias de energía entre varios días.
- Tomas como energía del día: la diferencia entre el máximo del día y el mínimo del día.
Si como ejemplo, dejando de lado los medidores, tienes datos para cuatro días:
Día 1, mín día 100, máx 300, diferencia 200
Día 2, mín día 350, máx 450, diferencia 100
Día 3, mín día 500, máx 750, diferencia 250
Día 4, mín día 800, máx 825, diferencia 25
¿Si seleccionas los días 1, 2 y 4, que resultado esperarías obtener?
Obtendría la suma de esos 3, es decir, 200+100+25=325.
Yo calculo el máximo menos el mínimo porque la energía se va acumulando, que quiere decir que el valor va incrementando siempre.
Pero no se qué pasa que al elegir varios dias o horas no consecutivos no lo calcula bien.
Un saludo y gracias.
En mi ejemplo, la suma de los diferenciales de los días seleccionados, la obtendrías con la expresión:
=Sum(TOTAL Aggr(Aggr(Max(Energia),UCTDate) - Aggr(Min(Energia),UCTDate),UCTDate))
Eso daría la suma de los diferenciales de los días seleccionados.
Muchas gracias por la ayuda Alex, pero no lo consigo ni con tu fórmula, ni probando muchas modificaciones como nuevas agrupaciones y demás.
¿ Hay alguna otra forma de calcular la energía sin tener que restar el máximo menos el mínimo....?
Un saludo y gracias.
Hola Alexis,
el ejemplo que te subo es lo que he entendido que necesitas.
La expresión en mi proyecto es:
Aggr(Sum( TOTAL <Medidor> Aggr(Max(Energia)-Min(Energia),UCTDate,Medidor)),Medidor,UCTDate)
Revisa el fichero que te adjunto y me cuentas.
Un saludo,
Hola Alexis,
¿pudiste probar en tu proyecto la lógica que seguí en el mío?
¿Te funcionó?
Hola Alex, disculpa por no responderte, pero he estado ocupado con otros temas.
Lo probé en un momento y en un principio no me funcionaba, pero tengo que volverlo a probar y a ver si consigo ver de dónde viene el error.
Gracias y un saludo.
Tranquilo, solo era curiosidad 😉
De todas maneras, la expresión es para el ejemplo que yo puse. Según tu estructura de datos, probablemente necesites ajustarlo.
Echa un vistazo al fichero, mínimo te dará pistas sobre cómo conseguirlo.
Un saludo y ánimo!
Hola Alexis,
¿hiciste algún avance en este tema? ¿Pudiste probar el fichero que te mandé?
Segun entiendo quieres manejar por dia de la semana, ej, Lunes, martes, etc y en un rango de fechas dado.
Si es así tienes que tambien hacer una consulta para cada dia, me explico, tu clausula WHERE debe tener
WHERE DATENAME([weekday], UTCDateTime) = 'Lunes';
se veria algo así:
LOAD
year(UTCDateTime)&'-'&Month(UTCDateTime) as MesAño,
Day(UTCDateTime)&'/'&Month(UTCDateTime)&'/'&Year(UTCDateTime) as FechaC,
week(UTCDateTime)&'-'&Date(DayName(UTCDateTime),'www') as [semana-dia],
UTCDateTime AS fecha,
month(UTCDateTime) as Mes,
week(UTCDateTime) as semana,
day(UTCDateTime) as dia,
Year(UTCDateTime) as Año,
Hour(UTCDateTime) as Hora,
Date(DayName(UTCDateTime),'www') as diaN,
Energia as ELunes
;
SELECT
UTCDateTime,
Energia
FROM <TU_TABLA>
WHERE DATENAME([weekday], hora_embarque) = 'Lunes';
Ahora si a ver por dia de semana y por rango de fechas.
Saludos