Hola,
Necesito sacar uun cuadro que muestre para cada uno de los objetivos (DescNOC) la puntuación (ValoraNOC) que ha obtenido en la evaluación trimestral (Fila) de modo que yo pueda evaluar en esa misma tabla si se ha tenido mejora en el objetivo o no, este es un ejemplo de la tabla de datos origen:
Centro | Capitulo | Tipo Asistencia | Fila | DescNOC | ValoraNOC |
HH0701 | 2012H0255 | UD1 | 6 | (FI) mantener la alineación de pelvis | 2 |
HH0701 | 2012H0255 | UD1 | 7 | (FI) mantener la alineación de pelvis | 2 |
HH0701 | 2012H0255 | UD1 | 8 | (FI) mantener la alineación de pelvis | 2 |
HH0701 | 2012H0255 | UD1 | 9 | (FI) mantener la alineación de pelvis | 1 |
HH0701 | 2012H0255 | UD1 | 6 | (FI) mantener la extensibilidad de los grupos musculares de MMII | 1 |
HH0701 | 2012H0255 | UD1 | 7 | (FI) mantener la extensibilidad de los grupos musculares de MMII | 1 |
HH0701 | 2012H0255 | UD1 | 8 | (FI) mantener la extensibilidad de los grupos musculares de MMII | 1 |
HH0701 | 2012H0255 | UD1 | 9 | (FI) mantener la extensibilidad de los grupos musculares de MMII | 1 |
Para ello, calculo los valores Mínimo y Máximo que pueden tomar los valores Fila para cada objetivo y en base a eso, ya debería poder sacar la valoración de cada evaluación (con Mínimo, Mínimo +1, Mínimo+2...),
La cuestión es que aunque saco los valores Mínimo y Máximo sin problema, luego no puedo obtener la valoración asociada a esos valores, sólo lo hace bien en el caso de que Mínimo y Máximo sean iguales
¿Cómo podría hacerlo para que funcione bien?
He probado mil cosas, ahora estoy en el punto en que los cálculos son los siguientes:
Mínimo: aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC) -- OK
Máximo: aggr(max(EvolObjetivos.Fila), EvolObjetivos.DescNOC) -- OK
Eval1: if (EvolObjetivos.Fila = Column(1), EvolObjetivos.ValoraNOC) NO OK
Eval2: if (EvolObjetivos.Fila = Column(1)+1, EvolObjetivos.ValoraNOC) NO OK
Eval3: if (EvolObjetivos.Fila = Column(1)+2, EvolObjetivos.ValoraNOC) NO OK
Eval4: if (EvolObjetivos.Fila = Column(2), EvolObjetivos.ValoraNOC) NO OK
Seguro que es algo muy simple, pero no doy con ello...
Muchas gracias!!
Hola Ramon,
A mi no me va de ninguna de las maneras.... (lo curioso es que con valor numérico si que funciona) Yo creo que una buena opción seria convertir las Eval en dimensión mediante una dimensión calculada. Pero para ello tendríamos que saber cuantos valores de Fila hay.... si habrá muchos.... pq veo q hay 1 y luego salta a 5,6,7,8.....
Saludos,
Hola,
usando el nombre de la columna no funciona y metiendo el cálculo del mínimo directamente en el if, funciona solo para el cálculo de Eval1, pero no funciona para ninguno de los otros 3, en el caso de Eval4 que tendría la misma fórmula de Eval1 pero cambiando un min por un max, sólo lo hace bien en el caso de que tanto mínimo como máximo sean iguales...
Gracias.
Hola,
el campo Fila es un ranking para cada DescNOC y fecha, en la excel adjunta se ve mejor, lo malo es que en el mismo rango de fechas podemos tener en Fila distintos valores, de ahí la idea de calcular el mínimo y el máximo...
Gracias
Os paso lo que tengo hecho por si quereis aprovechar sobre el documento.
Saludos,
Hola Elena,
MIra este ejemplo, he modificado el script..... Mira si es un poco lo que quieres. No acabo de entender lo del valor numérico pero creo que es por culpa del cálcula con la dimensión que solo debe encontrar 1 valor.
Ya nos cuentas.
Saludos,
Hola,
voy a tener que trabajarlo un poquito porque había simplificado un poco el problema (entran temas de fechas y demás), pero creo que de esta manera sí que podré sacarlo, no me había planteado hacerlo desde el script.
Me sigue quedando la duda de por qué no funciona la referencia en las fórmulas...
Voy a darle una vuelta con esto y os cuento.
Mil gracias!
Saludos,
Elena
ya analice el documento, el problema con la referencia de las formulas es porque estás usando un campo que no es parte de las dimensiones que se están mostrando, si agregaras el campo de fila la expression debe de funcionar como esperas, aunque la información no sería desplegada como la quieres ver.
Estoy de acuerdo con Jordi, lo más fácil si es hacer algo a nivel de script, ya sea que generes un número de secuencia con peek e identifiques tu menor y mayor con una bandera o alguna otra opcion, yo tiendo inclinarme por crear una secuencia
Hola,
Al final lo has podido solucionar?
Saludos,
Hola,
al final lo que hemos hecho es incluir otro ranking en la query que extrae los datos que nos dice a qué evaluación pertenece cada Fila en base al resto del número Fila:
case
when row_number() over (partition by Centro,Capitulo, DescNOC order by FechaImputacion)% 4=1 then 1
when row_number() over (partition by Centro,Capitulo,DescNOC order by FechaImputacion)% 4=2 then 2
when row_number() over (partition by Centro,Capitulo,DescNOC order by FechaImputacion)% 4=3 then 3
when row_number() over (partition by Centro,Capitulo,DescNOC order by FechaImputacion)% 4=0 then 4
end NEval,
Con esto podemos igualar el campo Fila a 1, 2, 3 o 4 y nos olvidamos del mínimo y el máximo, pone alguna restricción al usuario ya que debe ser más riguroso a la hora de registrar sus datos, pero bueno, seguro que lo asumen.
Muchísimas gracias por vuestra ayuda
Genial Elena
Cierra el hilo con la respuesta correcta.
Saludos,