Resumen Referencias cruzadas

Mensaje enviado por "Nelson Paneca" <nelson@rentcha.transtur.tur.cu>

Hola Neo y Berardo:

Primero explicaré que es una tabla de referencias cruzadas y despues pongo un ejemplo:

Una Tabla de Referencias Cruzadas, es una consulta que permite calcular datos que están como registros y mostrarlos como titulos de columnas, por ejemplo tenemos la tabla siguiente llamada tblResOfic:


Mes Año Oficina Plan Real Cump Lugar
1 2001 Centro de Negocios $19.43 $19.73 101.56% 6
1 2001 Hotel Ambos Mundos $30.00 $21.27 70.90% 5
1 2001 Hotel Deauville $35.40 $23.75 67.08% 4
1 2001 Hotel Inglaterra $59.80 $51.89 86.77% 1
1 2001 Hotel Plaza $59.80 $51.46 86.05% 2
1 2001 Hotel Sevilla $55.60 $38.00 68.34% 3
1 2001 Oficina Móvil $12.00 $6.06 50.52% 8
1 2001 Palacio de Artesanía $19.60 $10.04 51.21% 7
2 2001 Centro de Negocios $8.14 $0.19 2.37% 4
2 2001 Hotel Ambos Mundos $8.57 $0.17 1.97% 6
2 2001 Hotel Deauville $10.71 $0.26 2.40% 3
2 2001 Hotel Inglaterra $25.71 $0.08 0.32% 8
2 2001 Hotel Plaza $21.43 $2.06 9.61% 1
2 2001 Hotel Sevilla $11.14 $0.11 0.94% 7
2 2001 Oficina Móvil $12.86 $1.23 9.53% 2
2 2001 Palacio de Artesanía $8.42 $0.17 2.03% 5

Luego de Aplicar la siguiente sentencia SQL dentro de una consulta de Access (: tenga en cuenta que esta consulta usa además las tablas tblOficina y Mes)

TRANSFORM Sum(tblResOfic.Cump) AS [El Valor]
SELECT tblResOfic.Año, tblResOfic.Oficina, Last(tblResOfic.Mes) AS Mes,
First(tblResOfic.Plan) AS Plan, First(tblResOfic.Real) AS [Real]
FROM (tblOficina RIGHT JOIN tblResOfic ON tblOficina.Oficina =
tblResOfic.Oficina) RIGHT JOIN Mes ON tblResOfic.Mes = Mes.IdMes
GROUP BY tblOficina.IdOficina, tblResOfic.Año, tblResOfic.Oficina
ORDER BY tblResOfic.Oficina DESC , tblOficina.IdOficina
PIVOT Mes.IdMes;

nos quedaría lo siguiente:

Año Oficina Mes Plan Real 1 2 3 ...
2001 Palacio de Artesanía 2 $8.42 $0.17 51.21% 2.03%
2001 Oficina Móvil 2 $12.00 $1.23 50.52% 9.53%
2001 Hotel Sevilla 2 $11.14 $0.11 68.34% 0.94%
2001 Hotel Plaza 2 $21.43 $2.06 86.05% 9.61%
2001 Hotel Inglaterra 2 $25.71 $0.08 86.77% 0.32%
2001 Hotel Deauville 2 $10.71 $0.26 67.08% 2.40%
2001 Hotel Ambos Mundos 2 $8.57 $0.17 70.90% 1.97%
2001 Centro de Negocios 2 $8.14 $0.19 101.56% 2.37%

Como pueden ver transformó los registros meses en columnas, ahora para Berardo lo que tienes que hacer en Visual Basic, depende de como tienes definidos los datos si ya tienes la consulta de referencias cruzadas echa entonces todo lo que tienes que hacer es llamarla desde un control Data, un AdoDataControl, o hacerlo por código usando DAO o ADO, ahora si lo no tienes echa la consulta entonces en vez de poner el nombre de la consulta pon la sentencia SQL que deriva de hacer una consulta de referencia cruzada,
si aún tienes duda usa el wizard de Access y genera una consulta de referencias cruzadas, cuando termines dale en vista diseño de la consulta: vista SQL, copia la sentencia y pegala en Visual, si aún tienes duda avisame,

Saludos,

Nelson
nelson@rentcha.transtur.tur.cu



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com