Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Ultimo estado con aggr

Buenas,

Os cuento el caso que estoy intentando resolver.

Tengo un listado de casos con los estados por los que ha pasado y su fecha y su hora.

Yo he definido que la franja horaria se pueda seleccionar de forma manual en la aplicacion, de forma que si selecciono las 15:00 todos los casos que reciba hoy antes de las 15:00 se contarán para el dia de hoy, y los que reciba despues de las 15:00 se contarán para mañana.

Necesito saber cuantos casos se me han quedado pendientes de resolver cada dia, para ello necesito saber cual es el "ultimo estado" en el que han estado según la franja horaria y contar los casos en los que el ultimo estado esté dentro de una lista de estados correspondientes.

Lo estoy intentando hacer con la función aggr, para sacar la hora del ultimo estado y la fecha y despues contar los que ese ultimo estado este dentro de mi lista.

No estoy teniendo mucho exito al resolver este problema. alguien puede ayudarme? Estoy abierta a escuchar otras opciones.

Gracias

7 Replies
jolivares
Specialist

Saludos Maria, la mejor forma de extraer el ultimo estado para los datos que tienes es usando la funcion FirstSortedValue(), posiblemente tendras que usar algun Aggr.

Seria bueno que en el QVW que enviaste especifiques cual es el estado que te interesa o aclarar un poco mas como debe quedar el resultado. Esto para poder ayudarte mejor con la respuesta.

Otro detalle es que si tienes muchos registros es recomendable que la hora la trunques a los minutos, esto te ayudara a ahorrar espacio.

Anonymous
Not applicable
Author

Hola Juan,

Muchas gracias por tu respuesta.

La función First sorted value no he conseguido que me funcione fuera de una tabla.

Los casos que quiero contar son los que se quedan en alguno de estos estados: AS,BC,DP,PP,PI al terminar la jornada en la franja seleccionada.

Respecto a lo de los minutos... al principio lo hice, pero algunas acciones se diferencian en segundos, por lo que para algunas operaciones me generaba error.

Se te ocurre como usar FirstSorted y los agg en un cuadro de texto?

Gracias

sorrakis01
Specialist

Hola Maria,

Un caso pendiente de resolver es cualquier estado?

es decir cuando dices que casos me han quedado pendientes de resolver que estados son? (los que comentas mas arriba?

estados: AS,BC,DP,PP,PI)


Saludos,

Anonymous
Not applicable
Author

Hola Jordi,

Efectivamente, se consideran casos pendientes a los que el ultimo estado en el que han estado ese dia ( el dia efectivo segun la franja horaria seleccionada) es uno de los siguinetes AS,BC,DP,PP,PI

sorrakis01
Specialist

Hola María,

El resultado lo quieres en un cuadro de texto? (basandote en la seleccion del número de operación?)  o lo quieres en una tabla? (un listado de todos los números con su Hora última y su estado?)

El tema es complejo

Lo tengo en tabla pero los sets no me hacen caso

si lo quieres probar:

FirstSortedValue(If(ID_TIPTR='CT',ID_TIPTR),-HoraHist)

(faltarían poner el resto de estados)

(yo tengo una tabla con dimension ID_LZD y expresion: FirstSortedValue(If(ID_TIPTR='CT',ID_TIPTR),-HoraHist) y para la hora máxima FirstSortedValue(If(ID_TIPTR='CT',HoraHist),-HoraHist))

Saludos,

Anonymous
Not applicable
Author

Hola Jordi,

Lo quiero en cuadro de texto, aunque podría intentar ver como apañarme con la tabla.

El ejemplo que me mandas no me tiene en cuenta el dia ni la franja horaria seleccionada, sino simplemente el ultimo estado según la hora, pero yo selecciono la fecha y la hora en los campos que van independientes, no en los que pone Hist.

No  me importaría calcularlo en el script definiendo de antemano aunque fueran 3 franjas horarias, pero tampoco soy capaz de saber como enfocarlo.

Un saludo,

Maria

rubenmarin

Hola Maria, si lo he entendido bien necesitarías un campo con fecha y hora para aplicar el filtro, porque se quiere filtrar una hora menor que la seleccionada para el día seleccionado, pero para los días anteriores puede ser cualquier hora, por poner un ejemplo:

Date(FechaHist)+Time(HoraHist) as FechaHoraHist

Con esto la expresion sería:

=Sum({<FechaHoraHist={"<=$(=Max(Fecha)+Max(Hora))"}>}

Aggr(If(Match(FirstSortedValue({<FechaHoraHist={"<=$(=Max(Fecha)+Max(Hora))"}>} ID_TIPTR,-FechaHoraHist),'AS','BC','DP','PP','PI'), 1), ID_LZD))

Igual se podría buscar evitar el campo FechaHora intentando una suma de set analysis para el día actual con otra para los días anteriores, pero entonces el FirstSortedValue creo que no nos serviría y habría que buscar otra alternativa.