Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
El objetivo es identificar cual era el coste que había de un determinado producto a la fecha del acuerdo de precio.
Para ello disponemos de dos tablas:
T_Historico_de_Costes:
Articulo
Fecha_Coste (fecha en la que se actualiza el coste del producto)
Coste
T_Historico_Precios:
Cliente
Articulo
Fecha_Inicio (a partir de cuando un determinado precio entra en vigor)
Fecha_Caducidad (fecha fin, hasta cuando es valido un determinado precio, si dicho precio está vigente seguramente este campo estará vacío)
Precio
He intentado mediante Set Analysis calcular cual es la Fecha_Coste anterior a la Fecha_Inicio máxima, pero el resultado no es correcto.
Había utilizado la siguiente expresion:
Max({<Fecha_Coste={"<=$(=Max(Fecha_Inicio))"}>} Fecha_Coste)
La cual sólo funciona si selecciono un sólo producto.
¿Alguien podría ayudarme?
Gracias de antemano.
Hola, puedes usar Before, pero seria de gran ayuda si envias un qvd con un ejemplo, asi te podran ayudar mas.
Saludos
JM
Hola, el set analysis se calcula antes de las filas, al igual que el $-expansion, por lo que devolverá el mismo resultado en todas las filas, aplicando la misma fecha a Fecha_Coste en todos los productos.
Si tienes que usar una fecha distinta para cada artículo creo que vas a necesitar un Aggr(), por ejemplo, suponiendo que fuese una tabla con artículo como dimension:
Max(Aggr(
If(Fecha_Coste<=Max(TOTAL <Articulo> Fecha_Inicio), Fecha_Coste)
, Articulo, Fecha_Coste))
De esta forma el Aggr(... , Articulo, Fecha_Coste) devolverá, para cada combinación de Artículo y fecha de coste, la propia fecha de coste si esta es menor que la Fecha_Inicio más alta del artículo.
Si hay más de una Fecha_Coste menor que Max(Fecha_Inicio) el Max() exterior se queda con la más alta.
Otra opción es llevar los cálculos al script, añadiendo la Fecha_Coste correspondiente como un campo más a la tabla T_Historico_Precios, el rendimiento será mejor que calculándolo en el gráfico pero si no son demasiados datos puede que no sea necesario.
En primer lugar, agraceder a Ruben y Juan Manuel su predisposición a ayudarme en este problemilla.
Trato de poner un ejemplo adjuntando un excel con:
Esperando que con este ejemplo puedan echarme una mano.
Muchas gracias y un saludo
Hola, puedes probar con:
Max(Aggr(
If(Fecha_Coste<=Max(TOTAL <CodCliente,Articulo> Fecha_Inicio), Fecha_Coste)
, CodCliente,Articulo, Fecha_Coste))