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

Necesito hacer un join.... y no puedo....

Estas en el tema de Necesito hacer un join.... y no puedo.... en el foro de SQL Server en Foros del Web. Estimados... favor su ayuda.... quiero realizar un informe en el cual manejo 2 bbdd. Una es de este tipo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original ...
  #1 (permalink)  
Antiguo 23/06/2010, 16:11
 
Fecha de Ingreso: junio-2010
Mensajes: 25
Antigüedad: 13 años, 11 meses
Puntos: 0
Necesito hacer un join.... y no puedo....

Estimados... favor su ayuda.... quiero realizar un informe en el cual manejo 2 bbdd. Una es de este tipo:

Código SQL:
Ver original
  1. Sitio      Fecha                                                  
  2. ---------- ------------------------------------------------------
  3. BJFC-25    2010-06-21 07:42:17.000
  4. BFKB-78    2010-06-21 13:27:23.000
  5. BFKC-10    2010-06-21 10:55:31.000
  6. BJFF-57    2010-06-21 10:28:22.000
  7. BJFD-72    2010-06-21 13:44:57.000
La que representa que se genero una transaccion en ese SITIO en ese INSTANTE

Mi otra bbdd tiene los siguientes atributos:

Código SQL:
Ver original
  1. SERVICIO        BUS        HORA_INICIO HORA_FIN   FECHAFUGA                                              
  2. --------------- ---------- ----------- ---------- ------------------------------------------------------
  3. T501 00I        BFKB-82    12:03:07 A  12:24:35 A 2010-06-22 00:00:00.000
  4. T501 00I        BDXR-54    12:03:17 A  12:22:30 A 2010-06-22 00:00:00.000
  5. T501 00I        BFKB-67    12:11:07 A  12:31:48 A 2010-06-22 00:00:00.000
  6. T501 00I        BFKC-48    12:21:01 A  12:45:01 A 2010-06-22 00:00:00.000
  7. T501 00I        BFKB-58    12:30:07 A  12:51:33 A 2010-06-22 00:00:00.000
  8. T501 00I        BJFD-86    12:50:57 A  1:17:46 AM 2010-06-22 00:00:00.000
  9. T501 00I        BFKB-91    5:31:14 AM  5:52:02 AM 2010-06-22 00:00:00.000
  10. T501 00I        BFKB-65    5:37:09 AM  5:58:28 AM 2010-06-22 00:00:00.000


Necesito hacer el cruce de ambas y que me indique cuantas transacciones se realizan en un periodo (Hora_inicio-Hora_fin).

Yo hice el siguiente script:
Código SQL:
Ver original
  1. --select * from transacciones
  2. DROP TABLE #paso_transacciones
  3. GO
  4. SELECT top 1000 Sitio,Fecha
  5. INTO #paso_transacciones
  6. FROM  pruebatrx WITH(nolock)
  7. --where Fecha2 >= '2010-03-01' and Fecha2 <='2010-03-31'
  8. --and   Fecha <= '20101231'
  9. GROUP BY Sitio,Fecha
  10. GO
  11.  
  12. ----AGREGO DATOS DE FUGA
  13. DROP TABLE transacciones_fuga
  14. GO
  15. SELECT a.*,b.SERVICIO, b.BUS, b.FECHAFUGA, b.HORA_INICIO, b.HORA_FIN
  16. INTO transacciones_fuga
  17. FROM #paso_transacciones a (nolock)
  18. LEFT JOIN pruebafuga b (nolock)
  19. ON a.Sitio=b.BUS --and a.Fecha=b.FECHAFUGA
  20. GO

pero el resultado que me arroja es :
Código SQL:
Ver original
  1. Sitio      Fecha                                                  SERVICIO        BUS        FECHAFUGA                                              HORA_INICIO HORA_FIN  
  2. ---------- ------------------------------------------------------ --------------- ---------- ------------------------------------------------------ ----------- ----------
  3. BFKB-82    2010-06-20 20:41:04.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A
  4. BFKB-82    2010-06-20 13:19:36.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A
  5. BFKB-82    2010-06-18 16:22:51.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A
  6. BFKB-82    2010-06-19 13:42:49.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A
  7. BFKB-82    2010-06-18 08:49:40.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A
  8. BFKB-82    2010-06-18 13:15:05.000                                T501 00I        BFKB-82    2010-06-22 00:00:00.000                                12:03:07 A  12:24:35 A

Es decir.. solo me hace la busqueda del primero y no de cada una. Por fa una ayudita... estaria muy agradecido..... Que debo hacer para que no se repita esto????

Saludos y muchas gracias por vuestra ayuda.

Claudio VF
  #2 (permalink)  
Antiguo 25/06/2010, 08:43
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Necesito hacer un join.... y no puedo....

hay una forma de hacer consultas... desde varias Bases de datos, SOLO DANDOLE lAS RUTAS, incluso desde otros Servidores ahi te paso un ejemplo... la unica condicion es que el otro servidor debera estar configurado como un servidor de Confianza
Código SQL:
Ver original
  1. SELECT *
  2. FROM tabla
  3. INNER JOIN [192.168.1.3].dbo.BDAlumnos.TablaNotas Nota ON Nota.Id = Tabla.Id
Espero te sirva de algo... Saludos
  #3 (permalink)  
Antiguo 25/06/2010, 09:28
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Necesito hacer un join.... y no puedo....

El dbo (propietario de la tabla) va entre la BD y la tabla.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 25/06/2010, 10:33
 
Fecha de Ingreso: junio-2010
Mensajes: 25
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Necesito hacer un join.... y no puedo....

Lo que pasa es que ambas tablas estan en una misma base de datos. Lo que deseo hacer es que busque un elemento en la otra base.. es mas o menos asi:
Código SQL:
Ver original
  1. Sitio      Fecha
  2. BJFC-25    2010-06-21 12:30:17.000

que esa fila sea buscada en esta otra base...

Código SQL:
Ver original
  1. SERVICIO        BUS        HORA_INICIO HORA_FIN
  2. T501 00I        BFKB-25    12:03:07   12:24:35

Es posible buscar a traves de un comando entre tiempos que no son fijos... ya que la hora_inicio y hora_fin de la ultima tabla son dinamicas, es decir, no son las mismas....


Saludos,
  #5 (permalink)  
Antiguo 25/06/2010, 11:27
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Necesito hacer un join.... y no puedo....

Cual es la relacion entre esas 2 tablas?
Es decir, cual es el campo que vas a comparar?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 25/06/2010, 14:02
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Necesito hacer un join.... y no puedo....

hasta ahora no le veo relacion :(
explicanos mejor
  #7 (permalink)  
Antiguo 06/07/2010, 16:26
 
Fecha de Ingreso: junio-2010
Mensajes: 25
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Necesito hacer un join.... y no puedo....

Hola.. los campos que necesito comparar son Sitio y BUS. Es la clave para relacionar ambas tablas, pero necesito ademas que las relacione la hora. El problema es que en una tabla tengo una hora especifica... x ejemplo 2010-06-21 12:30:17.000 y en la otra tabla tengo un rango 12:03:07 12:24:35.

No se de que manera poder relacionar ambas tablas y en el fondo lo que deseo saber es cuantas veces tengo una transaccion en un rango determinado... En el ejemplo anterior seria cuantas SITIOS fueron contabilizados en ese periodo de tiempo.

Ojala me explique bien.

Claudio VF
  #8 (permalink)  
Antiguo 06/07/2010, 17:07
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Necesito hacer un join.... y no puedo....

Puedes relacionar esos campos... y los tiempos pues sera dificil... porque no son iguales... si hubiera diferencia de minutos u horas... entonces podrias sumarle un valor a tu fecha de la Tabla SITIO para comparar la Hora de Inicio de tu tabla INSTANTE y restarle el mismo VALOR a tu fecha de la tabla SITIO para comparar con la HORA FIN de tu tabla INSTANTE.

no se si se entendio... jeje pero si son fechas diferentes imposible... por ese campo no lo hagas...
  #9 (permalink)  
Antiguo 06/07/2010, 22:29
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Necesito hacer un join.... y no puedo....

Creo saber, que es lo que quieres, veamos: TABLAS: SITIO Y BUS

FROM SITIO JOIN BUS ON SITIO.sitio = BUS.bus
WHERE SITIO.fecha BETWEEN BUS.FechaInicial AND BUS.FechaFinal
  #10 (permalink)  
Antiguo 07/07/2010, 07:13
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Necesito hacer un join.... y no puedo....

talvez no con las fechas... talvez con las horas... y haciendo el WHERE con la fecha de SITIO y ESTACIOn...
y talvez enviandole un Parametro de MARGEN de Error... En segundos...

Etiquetas: join
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 10:04.