Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Cuando tengo una dimensión con campos concatenados, la jerarquía no me funciona.

Hola,

Quisiera hacer una consulta...

Tengo una dimensión jerárquica formada por la concatenación de dos campos: nombreCalle1 &' y '& nombreCalle2 y aparte otro campo más. Pero en los gráficos no se ve reflejado, toma en cuenta sólo el cruce de calles y nada más.

Si la hago al revés:

campo1

nombreCalle1 &' y '& nombreCalle2


Así funciona bien pero la necesito al revés. Alguna idea de por qué no funciona?

Gracias!

1 Solution

Accepted Solutions
hector_munoz
Specialist
Specialist

Hola Alicia,

¿Y si pruebas algo parecido a esto?

MAP_CALLES:

MAPPING LOAD numeroCalle AS [MAP_CALLES ID],

             nombreCalle AS [MAP_CALLES Desc];

SELECT numeroCalle,

       nombreCalle

FROM   ...;


CRUCE:

LOAD   *,

       Calle1 & ' y ' & Calle2  as Cadena_Calles;

LOAD ApplyMap('MAP_CALLES',

              numero_calle1,

              'Desconocida') as Calle1,

     ApplyMap('MAP_CALLES',

              numero_calle2,

              'Desconocida') as Calle2, 

     numero_calle1,

     numero_calle2,

     identificador           as idCruce;

SELECT "numero_calle1",

       "numero_calle2",

       identificador

FROM   ....

Espero que te sirva...

Saludos,
H

View solution in original post

13 Replies
isorinrusu
Partner - Creator III
Partner - Creator III

Hola Alicia,

Intuyo que tiene algo que ver con que nombreCalle2 es nulo. Como esto no te crea otro campo, sino que te selecciona en los dos campos, tendrá problemas al seleccionar nulos o algo parecido en el nombreCalle2 y por tanto no baja al segundo nivel de la jerarquía.

Es solo una posibilidad.

Deberías concatenar las calles en el Script, y así te quitarías este problema.

Saludos,

Sorin.

hector_munoz
Specialist
Specialist

Hola Alicia,

Cuando en un grupo jerárquico QlikView se encuentra con que la dimensión actual solo tiene un valor para las selecciones actuales, automáticamente pasa al siguiente nivel de la jerarquía y así sucesivamente. Entonces, pudiera ser, si no te he entendido mal, que tu campo 'campo1' solo tuviese un valor y por eso te pasase directamente a nombreCalle1 &' y '& nombreCalle2.

Esto se podría solucionar, como te digo, si 'campo1' tuviese más de un valor. Alguna vez lo he solucionado añadiendo en script combinaciones (con el CONCATENATE) de registros a la tabla necesaria añadiendo un valor nulo. Para que luego no me falsee datos y menos el gráfico donde uso el grupo jerárquico, escojo la opción se suprimir valores nulos... No sé si me he explicado... Si lo necesitas te paso un ejemplo...

De todas formas, ¿un grupo cíclico no te valdría?

Espero que te sirva!

Saludos,

H

jubarrosor
Partner Ambassador
Partner Ambassador

Hola Alicia:

Como bien dice Sorin, en estos casos donde queremos obtener dimensiones a partir de campos concatenados siempre es más optimo hacer la concatenación de dichos campos en el script:

Tabla:

LOAD

     ...

     nombreCalle1 &' y '& nombreCalle2    as campo1

     ...

FROM

     ...

Un saludo,

Juan P. Barroso

Anonymous
Not applicable
Author

Entiendo pero ya quise hacerlo así y no me funcionó porque nombreCalle1 y nombreCalle2 no están en la misma tabla... por eso lo hice desde el Qlik y no en el script.

Tengo que re pensarlo...

Gracias!

jubarrosor
Partner Ambassador
Partner Ambassador

Hola Alicia:

Puede que entonces sea interesante relacionar ambas (con algún tipo de join o mapeo) para poder hacer la concatenación de ambos campos.

Un saludo,

Juan P. Barroso

Anonymous
Not applicable
Author

Lo que pasa que ya me quedó algo confuso:

[Calle1]:

LOAD numeroCalle as numeroCalle1,

     nombreCalle as nombreCalle1;

SELECT numeroCalle,

       nombreCalle

FROM ...

[Calle2]:

LOAD numeroCalle as numeroCalle2,

     nombreCalle as nombreCalle2;

   

SELECT numeroCalle,

       nombreCalle

FROM ....

[Cruce]:

LOAD numero_calle1 as numeroCalle1,

     numero_calle2 as numeroCalle2,  

     numero_calle1 &'_'& numero_calle2 as [%key_Cruce],

     identificador as idCruce;

   

SELECT "numero_calle1",

       "numero_calle2",

       identificador

FROM ....

No tuve más remedio que cargar la tabla dos veces para poder armar el cruce, pude concatenar los números de calle, pero así como está no puedo concatenar los nombres desde acá, por eso lo hacía desde Qlik.

Gracias!

jubarrosor
Partner Ambassador
Partner Ambassador

Hola Alicia:

¿Puedes compartir tu aplicación o las tablas existentes?

Un saludo,

Juan P. Barroso

Anonymous
Not applicable
Author

Ya te envié, gracias!

hector_munoz
Specialist
Specialist

Hola Alicia,

¿Y si pruebas algo parecido a esto?

MAP_CALLES:

MAPPING LOAD numeroCalle AS [MAP_CALLES ID],

             nombreCalle AS [MAP_CALLES Desc];

SELECT numeroCalle,

       nombreCalle

FROM   ...;


CRUCE:

LOAD   *,

       Calle1 & ' y ' & Calle2  as Cadena_Calles;

LOAD ApplyMap('MAP_CALLES',

              numero_calle1,

              'Desconocida') as Calle1,

     ApplyMap('MAP_CALLES',

              numero_calle2,

              'Desconocida') as Calle2, 

     numero_calle1,

     numero_calle2,

     identificador           as idCruce;

SELECT "numero_calle1",

       "numero_calle2",

       identificador

FROM   ....

Espero que te sirva...

Saludos,
H