Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

La siguiente tabla ilustra esta situación, donde se agregó la columna Movimiento que debe calcularse a partir del Saldo 

Mes

Saldo

Movimiento

1

10

10

2

15

5

3

17

2

4

20

3

5

18

-2

6

21

3

7

17

17

8

11

-6

9

7

-4

10

22

15

11

31

9

12

27

-4

Si bien una alternativa es realizar el cálculo los movimientos directamente en la consulta de los saldos mediante consultas anidadas, estas requieren varias pasadas sobre los datos.

...

Con esta solución cada registro de la consulta de Saldos genera 2 tuplas en el cubo tal como se ilustra en la siguiente tabla:

Mes

Saldo

Mes

Valor

1

10

1
2

10
-10

2

15

2
3

15
-15

3

17

3
4

17
-17

4

20

4
5

20
-20

5

18

5
6

18
-18

6

21

6
7

21
0

7

17

7
8

17
-17

8

11

8
9

11
-11

9

7

9
10

7
-7

10

22

10
11

22
-22

11

31

11
12

31
-31

12

27

12
1

27
0

Notar los ceros que se muestran en rojo que son generados debido a que los saldos se acumulan dentro del semestre por lo que para los meses de Enero y Julio no deben realizarse ajustes.

...

Tip
titleCampo Virtual para el Valor

mes=Month(FechaParaMensual);
ultimoMes=Month(Date(1,12,2007));
Ajuste=((mes==ultimoMes) || (mes==12) || (mes==6)) ? 0 : -SaldoParaMensual;
(TN==2 && Ajuste==0) ? Skip() : Choose(TN, SaldoParaMensual, Ajuste)

...

Si bien en este ejemplo se definió el último mes como una constante en la expresión, es posible hacer algo más realista a través de una consulta sobre la tabla de Saldos que devuelva un único registro con la máxima fecha. Esta consulta luego puede convertirse en tabla local para recuperar dicho valor desde el campo virtual.

A modo de ejemplo se anexan unos archivos que ilustran este tip

Archivo

Descripción

Saldos.mdl

Modelo de ejemplo que implementa este Tip de Diseño

Saldos.cube

Cubo construido con datos de ejemplo. Este cubo incluye el Saldo y el Movimiento obtenidos de la fuente de datos, así como el Movimiento calculado a partir del mecanismo indicado en esta página usando los Saldos

Saldos.txt

Fuente de datos para los Saldos. Incluye la columna de Movimientos para poder comparar dicho valor con el calculado con el mecanismo indicado en esta página

Parametros.txt

Fuente auxiliar para ejemplificar el mecanismo de comparación con la última fecha. Este archivo debería reemplazarse por una consulta del estilo
SELECT 'UltimaFecha' AS Parametro, MAX(Fecha) AS Valor FROM Saldo

Saldos.xls

Planilla Excel utilizada para generar los datos para este ejemplo