Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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