Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   dos tablas a una sola (https://www.clubdelphi.com/foros/showthread.php?t=44061)

yhoda 27-05-2007 22:06:53

dos tablas a una sola
 
Saludos


bueno, pues ahora tengo una nueva consulta que hacerles......

Tengo dos bases de datos Cuernavaca y Monterrey. En cada base de datos tengo una tabla llamada empleado, y ambas contienen los mismos campos(noEmpleado, NomEmpleado, Sueldo)

como puedo hacer para que ambas tablas salgan en un solo dbgrid? Existe alguna manera de hacerlo???

marcoszorrilla 27-05-2007 23:11:53

Tienes que utilizar la claúsula Union y SQL.

Aquí te pongo un ejemplo, las tablas Alumnos y Halumnos que es el histórico de la anterior tienen la misma estructura.


Código SQL [-]
Select * 
from alumnos
Union
Select *
from Halumnos

Un Saludo.

yhoda 28-05-2007 01:10:39

gracias por tu respuesta...


mmm, pero la cosa es que estan en dos bases de datos diferentes, a cada una la llamo con un Tquery

y en el codigo sql tengo:

select * from empleados;

pero ya trate de hacerle como tu me indicas, y me dice que la tabla no existe.


se puede juntar los datos de dos tablas en dos bases de datos distintas?

Neftali [Germán.Estévez] 28-05-2007 11:12:50

No comentas qué Base de Datos estás usando, pero casi todas permiten esa posibilidad; Normalmente anteponiendo al nombre de la tabla el nombre de la Base de Datos (la sintaxis suele ser diferente para cada BD).
Revisa la ayuda, seguro que explica la nomenclatura para hacerlo tu caso.

yhoda 29-05-2007 00:28:11

Hola...

perdon por los errores en mi pregunta....
Estoy usando dos bases de datos creadas en ms sql server 2000, una se llama Monterrey y otra se llama cuernavaca, en cada una tengo una tabla llamada empleados, de hecho cada una esta residente en una computadora diferente, y ambas estan dadas de alta en odbc de windows, y desde el programa puedo llamar a ambas....
con query1 y query2 y dos DataSourse los puedo visualisar en dbgrid1 y dbgrid 2, pero lo que quisiera es poder ver ambas en un solo dbgrid.... soy un poco(digamos un mucho) verde en delphi, pero quiero aprender..... ya estube haciendo varios intentos con los componentes de DBE y de DataAccess, pero no he tenido suerte.....que puedo hacer?

gracias

Neftali [Germán.Estévez] 29-05-2007 14:05:32

En SQL Server puedes acceder a diferentes Bases de Datos del mismo servidor colocando el nombre delante; Algo así, por ejemplo:

Código SQL [-]
select * from BD1.dbo.MiTabla1
UNION
select * from BD2.dbo.MiTabla2


Si tus Bases de Datos están en distintos servidores SQLm también se puede, aunque debes usar "Linked Servers"; Revisa la ayuda de SQL Server; Está explicado con detalle.

ElDioni 29-05-2007 18:10:39

No se si valdrá pero por si acaso, yo en access tengo hecho lo siguiente en una consulta:
Código SQL [-]
SELECT *
FROM [\\servidor\documentos\tablas\presupuesto.dat;PWD=aire].presupuestos, [\\servidor\documentos\tablas\agenda.dat;PWD=viento].clientes;

de esta forma junto la bbdd de presupuestos con la agenda donde estan los datos de los clientes.
Espero sirva de algo

AzidRain 30-05-2007 00:49:56

No es posible hacer consultas multitabla con bases de datos ubicadas en diferentes servidores. Esto es obvio porque cada base de datos en este supuesto es gestionada por un motor diferente. Para hacer algo similar solamente se puede mediante lo que ya te dijeron: Linked servers o bien clustering, pero me parece demasiado para lo que tu quieres.

Aqui hay que hacer una solución un poco "a mano", obtener los datos del servidor local y luego los datos del servidor remoto, hacer el merge por código en una tabla temporal SQL y mostrarla en el grid.

A mi me paso igual con 3 sucursales y la unica solución viable fue la que te comenté. Hay que tener cuidado de que los querys sean lo mas ligeros que se pueda utilizando únicamente los campos estrictamente necesarios ya que recordemos que se van a traer del servidor remoto.

yhoda 30-05-2007 01:34:31

muchaS GRACIAS POR SU AYUDA, ME VOY A PONER A TRABAJAR CON SUS RESPUESTAS Y EN CUANTO TENGA ALGO LES DIRE CUAL FUE LA SOLUCION QUE ME FUNCIO, PERO MUCHAS GRACIAS A TODOS

yhoda 30-05-2007 02:32:24

Hola, aqui de nuevo, gracias neftali por esto, ya que me esta funcionando bien con baes de datos locales, y tambien con bases distribuidas siempre y cuando esten en el mismo servidor sql, y aunque estoy haciendo una implementacion como la que me recomendo el buen amigo AzidRain, por lo mientras sera una solucion factible, tamien estoy revisando la ayuda por el momento tengo resuelto temporalmente el problema, muchas gracias a todos:D :D :D

Cita:

Empezado por Neftali
En SQL Server puedes acceder a diferentes Bases de Datos del mismo servidor colocando el nombre delante; Algo así, por ejemplo:

Código SQL [-]
select * from BD1.dbo.MiTabla1
UNION
select * from BD2.dbo.MiTabla2


Si tus Bases de Datos están en distintos servidores SQLm también se puede, aunque debes usar "Linked Servers"; Revisa la ayuda de SQL Server; Está explicado con detalle.



La franja horaria es GMT +2. Ahora son las 08:31:40.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi