Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
gabriel_as
Contributor III
Contributor III

Mapping y ApplyMap vs Inner Join en Tablas SQL Server

Me Enfrente una, Que al elaborar Una consulta con Múltiples INNER JOIN, con tablas de ventas, (Facturas: Clientes, Proveedores, Artículos amount, etc), Donde en Un año TENEMOS mas de 2'000,000 de registros (a Nivel Renglones Facturados) , ademas Consulta la de dilatar al rededor de 8 minutes alentaba o bloqueaba al resto de los Usuarios Para Hacer Operaciones Hacia el Servidor SQL, con el uso de "Mapping" Y "ApplyMap" La Consulta dilata 30 Segundos.

Gracias a la ayuda, En Este foro, de José Federico Moreno y de José Manuel Martínez Mayoral   Que Me introdujeron al USO de "Mapping" y "ApplyMap", La Solución quedo de la siguiente Manera.

Dejo Estas Conclusiones Porque No Encontré algo claro Como Lo Que trato de explicar, espero se de utilidad  para mas de alguien:

1.- CREAR los mapas.

2.- Los mapas deben tener 2 y solo 2 campos

    EJEMPLO (Creamos 3 MAPAS, pueden ustedes crear los que requieran, 1 Hasta los que)

/////////////////////////////////

MapaCategoria:

LOAD Categoria,

  categoria;

SELECT Nombre as Categoria,

  code as categoria

FROM CATEGORIA;

// Categoria es el nombre y categoria (Todo en Minúsculas) es la clave de la categoría

MapaSubCategoria:

LOAD Sub_categoria,

  sub_cat;

SELECT Nombre as Sub_categoria,

  code as sub_cat

FROM Subcategoria;

MapaProveedores:

LOAD Proveedor,

  proveedorC;

SELECT CardCode as proveedorC,

  CardName as Proveedor

FROM OCRD;


////////////////////////////////////////////////


3.- (aqui lo util) utilizamos el dato Que No Tiene La tabla "Articulos" Desde los MAPAS CREADOS, En Este Caso nombre del Proveedor, Categoria y Sub_categoria)

    Ejempllo

//////////////////////////////////

// CATALOGO DE ARTICULOS

Articulos:

LOAD Cod_SAP,

  Descripcion,

  sub_cat,

  categoria,

  proveedorC,

ApplyMap ('MapaProveedores', proveedorC, null ()) as Proveedor,

ApplyMap ('MapaCategoria', categoria, null ()) as Categoria,

  ApplyMap ('MapaSubCategoria', sub_cat, null ()) as Sub_categoria;

SELECT

  Itemcode as Cod_SAP,

  ItemName as Descripcion,

  U_SubCategoria as sub_cat,

  U_Categoria as categoria,

  CardCode as proveedorC

FROM OITM

;

////////////////////////////////////

Ahora QlickView Dispone De Una tabla Llamada Articulos, ademas desde el lugar de los Datos Que ya Tiene La tabla de origen, Contiene el "Proveedor" (nombre), en base de una su "proveedorC" (clave de Proveedor), la "Categoria" (nombre ), en base de una "categoria" (clave Do de la Categoría) y la "Sub_categoria" (nombre), en base de una "sub_cat" su (clave de la sub Categoría)

En Caso de no claro Sido Haber, con gusto contesto SUS Preguntas.

Saludos

1 Reply
Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Enhorabuena por haber entendido el funcionamiento del Mapping Load y de la función ApplyMap.

Cuesta comprender el texto que acompaña a las sentencias de script utilizadas.

Saludos

Joaquín