Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Comparar 2 tablas

Estas en el tema de Comparar 2 tablas en el foro de SQL Server en Foros del Web. Amigos, Necesito que me den una mano con un SQL o con un procedimiento almacenado que me permita comparar 2 tablas, aunque de una manera ...
  #1 (permalink)  
Antiguo 10/12/2007, 10:04
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Pregunta Comparar 2 tablas

Amigos,

Necesito que me den una mano con un SQL o con un procedimiento almacenado que me permita comparar 2 tablas, aunque de una manera un tanto particular..

La estructura de ambas es la siguiente

ORIGEN DESTINO RUTA DISTANCIA

En la rutas_10 tengo como maximo 10 rutas por cada origen destino y en la tabla rutas_100, tengo, como maximo 100 rutas por cada origen destino.

Lo que quiero saber es si las 10 rutas más cortas de la tabla rutas_100 coinciden con las de rutas_10.

No se si me expliqué correctamente...espero que si

Editado para agregar algo importante: La tabla rutas_10 tiene 190.000 filas y la tabla rutas_100 tiene 2 millones...

Saludos,
Luis

Última edición por luisvasquez; 10/12/2007 a las 10:11
  #2 (permalink)  
Antiguo 10/12/2007, 11:34
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 10 meses
Puntos: 146
Re: Comparar 2 tablas

Cita:
Lo que quiero saber es si las 10 rutas más cortas de la tabla rutas_100 coinciden con las de rutas_10.
De las 10 rutas más cortas de un origen-destino de rutas_100 (un select Top 10 ordenado por distancia desc) ... ¿quieres que se muestren las que coincidan (inner join) o las que no se encuentren (not exists)?
  #3 (permalink)  
Antiguo 10/12/2007, 12:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
De acuerdo Re: Comparar 2 tablas

Cita:
Iniciado por Myakire Ver Mensaje
De las 10 rutas más cortas de un origen-destino de rutas_100 (un select Top 10 ordenado por distancia desc) ... ¿quieres que se muestren las que coincidan (inner join) o las que no se encuentren (not exists)?

Gracias..

En realidad quiero las de rutas_10 que no se encuentren entre las primeras 10 de rutas_100.

Saludos...
Luis
  #4 (permalink)  
Antiguo 11/12/2007, 06:40
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Re: Comparar 2 tablas

Alguien se apiada de este minusvalido del SQL?
  #5 (permalink)  
Antiguo 11/12/2007, 10:42
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Re: Comparar 2 tablas

amigos,

hice, con ayuda de un manual de SQL la siguiente instrucción:

SELECT rutas_10.origen, rutas_10.destino, rutas_10.ruta, rutas_10.distancia,rutas.origen, rutas.destino, rutas.ruta,rutas.distancia
FROM rutas_10 left join rutas ON rutas_10.origen = rutas.origen and rutas_10.destino = rutas.destino and rutas_10.ruta = rutas.ruta and rutas_10.distancia = rutas.distancia;

rutas_10 es la tabla que tiene maximo 10 rutas entre cada origen y destino. rutas es la que tiene máximo 100..

Ahora me conformo con saber cuales de rutas_10 no están en rutas (olvidemos lo de las 10 primeras) y este SQL me muestra 190.000 filas, es decir TODAS las de rutas_10...

Un mano para saber que anda mal?

gracias,
Luis
  #6 (permalink)  
Antiguo 27/12/2007, 11:32
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Re: Comparar 2 tablas

Algún SQL-GURU?

Aun estoy con el problema...

Saludos
  #7 (permalink)  
Antiguo 27/12/2007, 19:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Re: Comparar 2 tablas

"Lo que quiero saber es si las 10 rutas más cortas de la tabla rutas_100 coinciden con las de rutas_10."

¿Como sabes cuales son las RUTAS MAS CORTAS?
  #8 (permalink)  
Antiguo 28/12/2007, 07:44
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
De acuerdo Re: Comparar 2 tablas

Cita:
Iniciado por iislas Ver Mensaje
"Lo que quiero saber es si las 10 rutas más cortas de la tabla rutas_100 coinciden con las de rutas_10."

¿Como sabes cuales son las RUTAS MAS CORTAS?

Gracias!

La estructura de ambas tablas es la siguiente:

ORIGEN DESTINO RUTA DISTANCIA

Por la distancia puedo saber cual es la ruta más corta...

Sin embargo, para hacerlo más sencillo, solo requiero saber si todas las filas de rutas_10 están contenidas en rutas_100. Estar contenidas implica que coincidan los campos ORIGEN, DESTINO y RUTA.

Ambas tablas se generaron en procesos diferentes y quiero estar seguro de que el proceso que generó rutas_100 cubre los criterios de generación de rutas_10. Si todos los elementos de rutas_10 se encuentran en rutas_100 todo estará ok.

De nuevo 1000 gracias y saludos,
Luis Vásquez
  #9 (permalink)  
Antiguo 28/12/2007, 10:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Re: Comparar 2 tablas

Veamos

SELECT TOP 10 ORIGEN, DESTINO, RUTA, DISTANCIA
FROM tuTabla
WHERE EXISTS (SELECT ORIGEN, DESTINO, RUTA, DISTANCIA FROM tuOtraTabla)
ORDER BY ORIGEN, DESTINO, RUTA, DISTANCIA

Dime si te da lo que esperas obtener.
  #10 (permalink)  
Antiguo 30/12/2007, 23:01
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Re: Comparar 2 tablas

Cita:
Iniciado por iislas Ver Mensaje
Veamos

SELECT TOP 10 ORIGEN, DESTINO, RUTA, DISTANCIA
FROM tuTabla
WHERE EXISTS (SELECT ORIGEN, DESTINO, RUTA, DISTANCIA FROM tuOtraTabla)
ORDER BY ORIGEN, DESTINO, RUTA, DISTANCIA

Dime si te da lo que esperas obtener.
Gracias...

Disculpa que no había respondido, pues no había tenido oportunidad de ejecutar el SQL porque la data estaba en mi oficina....

Ahora ejecuté y me da el siguiente error:

(10 filas afectadas)

Servidor: mensaje 9002, nivel 17, estado 6, línea 1
El archivo de registro de la base de datos 'tempdb' no está disponible. Haga una copia de seguridad del registro de transacciones para que la base de datos libere espacio de registro.

He revisado la base tempdb y tiene su archivo de transacciones, aunque aca dice que no está disponible...tengo espacio suficiente en disco..he buscado la forma y no tengo idea de como hacer el respaldo del registro de transacciones...

Tiene alguna idea ?

Saludos, Luis
  #11 (permalink)  
Antiguo 31/12/2007, 11:15
Avatar de luisvasquez  
Fecha de Ingreso: diciembre-2003
Ubicación: Venezuela
Mensajes: 879
Antigüedad: 20 años, 11 meses
Puntos: 6
Re: Comparar 2 tablas

Ya funcionó sin problemas...por el administrador corporativo aumenté el tamaño asignado al registro de transacciones de la base de datos TempDb y listo...la consulta corrió perfecto..

1000 gracias a todos
Luis
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.