Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Problema con unión de campos y mostrar los datos

Hola, a ver si alguien me puede ayudar en un problema que arrastro desde hace unos días.

Recojo los datos de proyectos de 2 sitios: Base de datos y Excel. ( Unidos por código ).

Los Proyectos de Excel tienen su código ( 1002 ), fase ( PROYECTO/DIRECCION ), instalación ( -GAS; -AGUA,... ), Horas_TEORICAS ( 150 )....

Los Proyectos de B.D    tienen su código ( 1002 ), fase_BD ( PROYECTO/DIRECCION ), instalaciónBD ( -GAS; -AGUA,... ), Horas_Reales( 150 )....

Del excel el jefe de proyecto rellena las horas que cree que van a hacer los empleados ( Horas_TEORICAS) y en B.D se almacenan las horas reales que se han hecho.

Represento en una gráfica las horas teóricas y reales dependiendo de la instalación:

Dimensión: fase

Expresiones: 1- Sum(Horas_TEORICAS)

                    2- Sum(Horas_Reales)         

Que son 2 barras una al lado de la otra para poder comparar entre las horas teóricas y las reales.

El problema es que como instalación y instalación_BD no están unidos por su nombre, al representarlo en la gráfica si pongo instalación me salen las Horas_TEORICAS y si pongo instalación_BD las Horas_Reales, pero nunca salen las 2.

Ya que las 2 tablas están unidas por código, pensé en unirlas también por fase y instalación, para que entienda que en las 2 tablas son lo mismo, pero al hacerlo me salen referencias circulares porque hay más conexiones con otras tablas.

Necesito ayuda, ya que este problema me perseguirá.

Un saludo y gracias.

                                                                                       

6 Replies
jaygarcia
Contributor III
Contributor III

Hola Juan,

fase y fase_BD contienen la misma info por codigo o es diferente? Lo mismo para instalación e instalaciónBD?


Jay

Not applicable
Author

Hola,

Deberían de tener la misma información, pero no, porque se crean al meter horas teóricas al principio, al realizar un proyecto, pero las horas reales hasta que no se desarrolla el proyecto no estarán.

Y puede que se pongan horas teóricas en alguna instalación concreta y luego no se hagan esas horas realmente para dicha instalación, ya que puede que no hagan falta.

Puede que haya proyectos que se presupuestan y se ponen horas teóricas, pero no al final no se realizan.

Un saludo y gracias Jay.

jaygarcia
Contributor III
Contributor III

Hola Juan,

Hice una prueba con datos similares y creo que la mejor opcion es si buscas como unir los campos fase con faseBD, e intalacion con instalacionBD, porque a mi me funciono. Te mando una imagen para que veas. Lo hice con LOAD INLINE usando:

BD:

LOAD * INLINE [

    código, fase, instalación, Horas_reales

    1002, PROYECTO, GAS, 175

    1003, PROYECTO, AGUA, 225

    1004, DIRECCION , GAS, 150

    1005, PROYECTO, AGUA, 200

    1006, DIRECCION , GAS, 250

];

EXCEL:

LOAD * INLINE [

    código, fase, instalación, Horas_TEORICAS

    1002, PROYECTO, GAS, 220

    1003, PROYECTO, AGUA, 200

    1004, DIRECCION , GAS, 170

    1005, PROYECTO, AGUA, 200,

    1006, DIRECCION , GAS, 250,

    1007, DIRECCION , GAS, 250,

    1008, DIRECCION , GAS, 250

];

untitled.JPG.jpg

Creo que deberias dar mas detalles acerca de como estas conexiones a los campos fases o instalaciones estan afectandote, y a partir de alli buscamos una solucion.

Espero esto sea de ayuda,

Saludos!

Jay

Not applicable
Author

Muchas gracias, pero veo imposible poder unirlas, ya que tengo un diagrama muy grande y podría afectar a muchas tablas. Si alguien sabe cómo puedo unirlas de otra forma? sin que salgan referencias circulares?

Podría poner alguna condición en la gráfica de si fase es igual a fase_BD que muestre las 2 barras?

Un saludo y gracias.

soniacoprosa
Creator
Creator

Hola Juan,

Creo que podrías probar a crear una tabla nueva para el gráfico, que sea la unión de esas 2 que comentas. Como ya tienes cargadas esas 2 tablas puedes utilizar “Resident” para traerte los datos que te interesan.

Para evitar las referencias circulares, calificas la tabla con “Qualify”, de esta forma los campos pasan a estar calificados (TablaNew.nombre del campo)

Ej.:

Qualify *;

Unqualify código;

TablaNew:

LOAD

    Codigo,

    Fase,

    Instalación,   

    HorasTeoricas

resident Tabla_excel;

left Join(TablaNew)

LOAD

    Codigo,

    Fase_BD as TablaNew.Fase,

    Instalación_BD as TablaNew.Instalación,     

    HorasReales as TablaNew.HorasReales

resident Tabla_BD;

Unqualify *;

Un saludo,