Wiki Markup |
---|
{scrollbar} |
Las tablas locales se han incorporado para simplificar la extracción de datos y mejorar el desempeño durante la construcción de datamarts. Esto resuelve los problemas resultantes del uso de consultas complejas en bases de datos transaccionales que pueden dar malos resultados.
...
Este es un ejemplo del uso de una tabla local para simplificar una consulta SQL. La técnica de extracción de datos utilizada para este ejemplo sencillo, también es aplicable a casos más complejos.
La siguiente consulta debe hacerse para la fuente de medidas de un modelo multidimensional de análisis:
Code Block |
---|
SELECT F.Fecha, I.CodProducto, R.Representantes, C.Ramo, I.Cantidad
FROM Facturas F, Items I, Productos P, Representantes R, Clientes C
WHERE F.Numero = I.NroFactura
AND F.Emitida = TRUE
AND F.Tipo = 2
AND F.CodCliente = C.CodCliente
AND I.CodProducto = P.CodProducto
AND P.TipoProducto = R.TipoProducto
AND C.CodCliente = R.CodCliente
AND R.FechaValidez = (SELECT MAX(R2.FechaValidez)
FROM Representantes R2
WHERE R2.TipoProducto = R.TipoProducto
AND R2.CodCliente = R.CodCliente)
|
...
(K) indica el campo clave de la tabla local.
Tabla 1
Nombre | Clientes |
---|---|
Consulta | SELECT CodCliente, Ramo |
Campos | CodCliente (K) |
Tabla 2
Nombre | Representante | |
---|---|---|
Consulta |
|
| |
Campos | CodCliente (K) |
Luego se deben definir los siguientes campos virtuales:
Code Block |
---|
Ramo = BuscarCampo("Clientes", "Ramo", CodCliente)
Rep = BuscarCampo("Representantes", "Representante", CodCliente, CodProducto)
|
Y sustituir la consulta SQL de fuente de medidas por la siguiente consulta:
Code Block |
---|
SELECT F.Fecha, I.CodProducto, I.Cantidad, F.CodCliente
FROM Facturas F, Items I
WHERE F.Numero = I.NroFactura AND F.Emitida = TRUE AND F.Tipo = 2
|
...
- Cada tabla local se construye desde una sola fuente de datos.
- Es necesario tener al menos dos campos en la tabla local, uno de clave y otro como campo a buscar
- Se debe definir al menos un campo como clave en una tabla local. Las claves pueden ser múltiples, en cuyo caso el orden en que aparecen los campos es importante y coincide con el orden en que se pasan los parámetros de la función "BuscarCampo" en los Campos Virtuales
- Marque la casilla "Solo para Tabla" para indicar que la fuente de datos se usa solamente para la creación de la tabla local y no se usan datos directamente para la construcción de cubos.
...
...
Child pages (Children Display) |
---|