2 de enero de 2014

Desvincular una Tabla con Set Analysis

En algunas ocasiones se quiere un gráfico que no esté vinculado a las selecciones de todos los campos de una tabla Calendario (u otra tabla).

Puede hacerse un Set Analysis desvinculando cada campo, pero esto podría ser muy extenso y tendría que modificarse en caso que se agregue otro campo en la tabla Calendario.

Una técnica para desvincular todos los campos de una tabla podría ser la siguiente:

1. Cargar datos de ejemplo
Ventas:
   
LOAD * INLINE [
    Fecha, Sucursal, Venta
    2/01/2011, Este, 485
    10/08/2009, Oeste, 106
    3/08/2009, Sur, 708
    7/11/2011, Norte, 351
    9/04/2010, Oeste, 308]
;

Calendario:
    
LOAD Fecha,
    
day(Fecha)         as Dia,
    
Week(Fecha)        as Semana,
    
Month(Fecha)       as Mes,
    
QuarterName(Fecha) as Trimestre,
    
Year(Fecha)        as Año
Resident Ventas; 


Esto creará la siguiente relación:


2. Crear variable  en Configuración\Panel de Variables > Añadir. 
Se asigna nombre de variable: Desvincular_Calendario
En Definición se escribe:
[$(=Concat({1<$Table={'Calendario'}>}distinct $Field,']=,[')&']=')

3. Se crea un grafico de Tabla Simple con la siguiente Dimensión y Expresión:
Dimensión = Sucursal
Expresión = Sum( {<$(Desvincular_Calendario)>} Venta)

Este nuevo grafico de tabla simple no se verá afectada por las selecciones realizadas en los campos de la tabla Calendario.











2 comentarios:

José María dijo...

Buenas!

Yo iría un paso mas allá y crearía una variabla que reciba como parámetro el nombre de la tabla que queremos ignorar. Sería algo así;

fIgnoraTabla = '[' & Concat({1<$Table={$1}>}distinct $Field,']=,[') & ']='

Y se usaría de la siguente manera:
Sum( {<$(fIgnoraTabla('Calendario'))>} Venta)

De esta forma no hay que crear una variable por cada tabla que queramos ignorar.

PD.: acabo de descubrir tu blog y tiene cosas muy interesantes, muchas gracias por compartirlas.

Enmanuel Santana dijo...

Hola Jose Maria
Muy buena la técnica, cuando tenga tiempo la pruebo y dejo mis comentarios.

Gracias por tus comentarios del blog