Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content
Announcements
Gartner® Magic Quadrant™: 15 YEARS A LEADER - GET THE REPORT
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

COMO HAGO PARA RELACIONAR TABLAS EN QLIKVIEW

Hola como estan, quisiera saber si alguien me puede ayudar en explicarme como hago para relacion tablas en qlikview, se que hay campos primarios en ambas tablas y pues ambos son lo mismo solo que en diferente base de datos.

gracias por su ayuda.

10 Replies
Miguel_Angel_Baeyens

Hola,

Efectivamente no hay claves primarias como tales en QlikView. La forma de relacionar dos tablas es que ambas compartan un campo con el mismo nombre. Por ejemplo, una tabla "Facturas" con los campos "Codigo factura" y "Codigo Cliente" y una tabla "Clientes" con los campos "Codigo Cliente" y "Nombre Cliente" se relacionarán automáticamente por el código de cliente.

Los nombres de campos y valores son sensibles a mayúsculas: "CODIGO" no es lo mismo que "Codigo"

Un saludo.

Not applicable
Author

Ok entiendo, pero digamos que hay ambos campos en las bases de datos uno se llama codigo y el otro se llama codigo articulo, qlikview no las relaciona porque no se lleman de la misma forma, para que qlikview las relacion tengo que renombrarlas? y si es asi como hago para cambiar el nombre?

gracias

Not applicable
Author

Miguel esta es la imagen de las tablas, te explico que es lo que quiero hacer el campo ITEM_NUMBRE LO QUIERO RELACIONAR CON EL CAMPO Itemcode de la tabla OITM ESTO SE PUEDE HACER O DEPLANO ESTOY BATEANDO?

Not applicable
Author

Hola eroldan009

Al momento de hacer la carga de tu información tu tienes el poder de armar la estructura de tus tablas como desees.

Como te comentaba Miguel, solo requieres que tus tablas compartan un campo en común y con eso será suficiente para que tengan una liga entre ellas.

Al momento de estar realizando el Load puedes cambiar el nombre de tus campos.

En la tabla OITM cambia el valor de tu campo ItemCode por ITEM_NUMBER

OITM:

Load ItemCode AS ITEM_NUMBER,

....

Con eso ligaras tu tabla OITM.

Oye esa imagen la tomaste directamente del Table Viewer de QlikView?

Esa relación entre las tablas debió generarte una tabla mas llamada $Syn1.

Saludos!

Not applicable
Author

Si la imagen es del visor de tablas de QV, ahora otra pregunta ese comando va de ultimo en el scrip?

Not applicable
Author

Tengo otra duda al este campo, que pasa con lo demas campos de la tabla oitm quedan viculados para poder hacer filtros?

Miguel_Angel_Baeyens

Hola,

Veo aquí varias cosas.

En primer lugar, estás relacionando tablas por múltiples campos. En sí mismo no debería ser un error pero podría serlo. Es decir, por ejemplo, Si ya tienes un campo ITEM_ESSENTIALITY o ITEM_DESCRIPTION en la tabla DETAILAGING, ¿realmente necesitas cargarlo de nuevo en la tabla ITEMNO_MST? Yo creo que no. Lo mismo con ITEM_CODE y LOCATION.

De hecho, la lógica asociativa, que es la base sobre la que QlikView funciona, dice que con relacionar una tabla con otra a través de un sólo campo, cuando esto es posible (que es la mayoría de los casos), los datos quedan automáticamente enlazados.

Para tu pregunta concreta, es muy sencillo: haz siempre un LOAD después de cada SELECT de forma que pongas un nombre a cada campo. Tal como tienes el modelo de datos, asociar la tabla OITM es muy sencillo, como han mencionado más arriba:

OITM:LOAD ItemCode AS ITEM_NUMBER, ItemName, FrgnName....;SQL SELECT ItemCode, ItemName, FrgnNumberFROM OrigenDeDatos;


De esta forma, automáticamente tu tabla enlazará con las restantes a través de un campo que ya existe en todas ellas, como es ITEM_NUMBER.

En cualquier caso, si es la primera vez que trabajas con QlikView, te recomiendo que dediques un tiempo primero a revisar cómo están construidos los ejemplos del tutorial y la documentación, ya que todo este tipo de problemas ya se explican y resuelven allí.

Un saludo.

Not applicable
Author

hola, tengo 3 vistas (account, contact, account_contact) que se relacionan por account_id, contacts_id. A pesar de nombrar igual a los campos en las 3 solo relaciona account con  account contact. contact no se relaciona. Alguién puede decirme cuál puede ser el motivo? A continuación muestro el script.

SQL SELECT `Accounts_Account_Name`,

    `Accounts_ID`

FROM finderCRM.`vista_accounts`;

SQL SELECT `Accounts_ID`,

    `Contacts_ ID`

FROM finderCRM.`vista_accounts_contacts`;

SQL SELECT `Contacts_First_Name`,

    `Contacts_ID`,

    `Contacts_Last_Name`

FROM finderCRM.`vista_contact`;

Not applicable
Author

Miguel Angel:

muchas gracias tu explicación me ha servido a corregir muchos modelados

saludos