SQL - Consulta SQL. Varias tablas de varias bases.

 
Vista:

Consulta SQL. Varias tablas de varias bases.

Publicado por saviri (1 intervención) el 29/02/2012 18:55:30
Hola.
Necesito ayuda.
Programo en Visual Basic 6.0.
Tengo dos bases de datos access1997 (Base1 y Base2).

En Base1 realizo la siguiente consulta SQL:
Set RsConsulta1 = Base1.OpenRecordset( _
"SELECT B1Tabla1.B1T1Campo1, B1Tabla1.B1T1Campo2, B1Tabla1.B1T1CampoComun, B1Tabla2.B1T2campo1" & _
" FROM B1Tabla1 LEFT JOIN B1Tabla2" & _
" ON B1Tabla1.B1T1Campo1 = B1Tabla2.B1T2Campo1" & _
" WHERE B1Tabla1.B1T1Fecha BETWEEN #" & FechaDesde & "# and #" & FechaHasta & "#" & _
" ORDER BY B1Tabla1.B1T1CampoComun", dbOpenSnapshot)

Esto nos devuelve un recordset con todos las filas de la B1Tabla1 comprendidos entre dos fechas y añade una columna(B1T2Campo1) de la B1Tabla2

En Base2 realizo la siguiente consulta SQL:
Set RsConsulta2 = Base2.OpenRecordset( _
"SELECT B2Tabla1.B2T1Campo1, B2Tabla1.B2T1Campo2, B2Tabla1.B2T1CampoComun, B2Tabla2.B2T2Campo1, B2Tabla2.B2T2Campo2, B2Tabla3.B2T3Campo1, B2Tabla1.B2T3Campo2" & _
" FROM B2Tabla1 " & _
" INNER JOIN (B2Tabla2" & _
" INNER JOIN B2Tabla3" & _
" ON B2Tabla3.B2T3Campo2 = B2Tabla2.B2T2Campo2)" & _
" ON B2Tabla2.B2T2Campo1 = B2Tabla1.B2T1Campo1" & _
" WHERE B2Tabla1.B2T1Campo1 BETWEEN " & CampoDesde & " and " & CampoHasta & _
" ORDER BY B2Tabla1.B2T1CampoComun", dbOpenSnapshot)

Esto nos devuelve un recorset con las filas de la B2Tabla1 que cumplan los INNER JOIN y la clausula WHERE.
La clausula WHERE es mas compleja pero para el ejemplo es suficiente.

La pregunta es:
¿Se puede hacer las dos consultas SQL en una única consulta SQL, de tal forma que el resultado fuese todas las filas de B1Tabla1 añadiendo las columnas B1T2Campo1,
B2T1Campo1, B2T2Campo1 y B2T3Campo1?
Las columnas que relacionan las consultas RsConsulta1 y RsConsulta2 son B1Tabla1.B1T1CampoComun y B2Tabla1.B2T1CampoComun.


Gracias por todo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder