Creación de tablas en base a consultas

Te comento que es lo que haré, tengo planillas de haberes desde 1999 hasta la fecha, lo que quiero hacer es construir un sistema para realizar las consultas que siempre me solicitan, ¿quién pertenece a tal unidad? ¿Cuál es su seguimiento hasta la fecha? ¿Cuál es su antigüedad? Etc. Así que lleve mis planillas (tablas) a access y para realizar la conexión mediante visual basic y ADO. La idea que tengo es que mi usuario elija la que sera la planilla base, esta planilla sera el resultado de otras 3 tablas (datos cliente + haberes + unidad, las tres relacionadas por el campo de apertura programática), en base a esta tabla podre hacer cualquier tipo de consulta, desde una persona en especial hasta de una unidad especifica y una vez realizado el informe final, esta planilla resumen debe ser eliminada, para crear otra en la siguiente sesión del usuario, ¿así qué necesito saber como crear esta tabla resumen y luego eliminarla y como lograr que esta tabla este abierta hasta que se cierre la sesión del usuario?

1 respuesta

Respuesta
1
Siento el retraso, pero el servidor de Todoexpertos no me permitía contestar.
Respuesta :
Desde un punto de vista purista, no es aceptable el crear una Tabla en función de otras tres, para eso están las vistas ( o consultas según access) Pero se puede crear una tabla con un sencillo :
Create Table NombreTabla as Select etc...
Para cargarte la tabla sirve un sencillo Drop Table NombreDeTabla.
Pero lo lógico es crear una consulta por las tablas añadiéndole un ID del usuario en esa consulta/vista lo que puedes hacer es asegurarte que los campos de las tablas originales tienen indices que aceleren la consulta limitandoles el tiempo de acceso a los datos.
Crear una tabla temporal de todos modos es sencillo.
Si quieres crear la tabla de modo que múltiples usuarios no tengan acceso a la misma, el método consiste en generarla con un nombre único en función del usuario. Si se autentifican al entrar, sirve que pongas el login como parte del nombre de la tabla.
Lo que hacia yo antes para crear tablas temporales de oracle era generar un número único que me devolvía windows, pero el proceso era demasiado pesado, y a partir del nombre del usuario puedes crear la tabla sin tener ningún problema.
Para que la velocidad de tus consultas sea optima, deberás crear un indice por cada campo del que hagas un sencillo where en la consulta SQL.
Procura substituir los Left Outer Join de Access por consultas de productos cartesianos con wheres por las intersecciones...
Es decir, si creas una consulta con tus datos de cliente, haberes y unidad. Debería de ser de este estilo :
Select
Cliente. Dato1,
Cliente. Dato2,
...
Haberes. Dato1,
Haberes. Dato2,
...
Unidad. Dato1,
unidad. Dato2
From
Cliente, haberes, unidad
where
haberes.cliente= cliente.cliente and
unidad.haberes= haberes.haberes
O algo así, dado que no se como relacionas haberes, clientes y unidad
No se si te he aclarado la duda. En cualquier caso, es un placer solucionar en la medida en la que puedo o intentarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas