Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2008
tonyskl tonyskl is offline
Miembro
 
Registrado: oct 2007
Posts: 18
Poder: 0
tonyskl Va por buen camino
Question Full Outer Join

Buenas a todos!!!

Tengo la siguiente sentencia SQL:

Código SQL [-]
select case when t.totalTituloComprado is null then l.codMercado else t.codMercado end as codMercado,
       case when t.totalTituloComprado is null then l.codCuenta  else t.codCuenta  end as codCuenta,
       case when t.desCortaValor is null then l.desCortaValor else t.desCortaValor end as desCortaValor,
       case when l.totalTituloComprado > t.totalTituloComprado or t.totalTituloComprado is null then l.totalTituloComprado else t.totalTituloComprado end as totalTituloComprado,
       case when l.totalTituloVendido  > t.totalTituloVendido  or t.totalTituloVendido  is null then l.totalTituloVendido  else t.totalTituloVendido  end as totalTituloVendido,
       case when t.totalTituloComprado is null then l.precioMedioCompraNeto when l.totalTituloComprado > t.totalTituloComprado then (t.precioMedioCompraNeto * t.totalTituloComprado + ((l.totalTituloComprado - t.totalTituloComprado) * l.precioMedioCompraNeto)) / l.totalTituloComprado else t.precioMedioCompraNeto end as precioMedioCompra,
       case when t.totalTituloComprado is null then l.precioMedioVentaNeto  when l.totalTituloVendido  > t.totalTituloVendido  then (t.precioMedioVentaNeto  * t.totalTituloVendido  + ((l.totalTituloVendido  - t.totalTituloVendido)  * l.precioMedioVentaNeto))  / l.totalTituloVendido  else t.precioMedioVentaNeto  end as precioMedioVenta
  from posicionAbiertaLocal l full outer join posicionAbiertaTotal t 
    on l.codMercado = t.codMercado 
   and l.codCuenta = t.codCuenta 
   and l.desCortaValor = t.desCortaValor

La cuestión es que necesito la información MEZCLADA de 2 tablas. Es decir:
- En la tabla A tenemos x Registros.
- En la tabla B tenemos y Registros.

La consulta nos tiene que devolver TODOS los registros (x e y - sin dejarse ninguno) y despues elegir que datos mostrar (en unos casos los de x en otros los de y)

Esta query funciona correctamente!!! Pero no es muy eficiente. Cuando tenemos unos 18 registros X y 19 registros en Y por ejemplo la consulta me tarda unos 2-3 segundos... (muy lenta)

Tengo indices en las columnas donde hacemos el full outer join.

¿Que podría mejorar en la query?

Saludos y Gracias!!!
Responder Con Cita
  #2  
Antiguo 06-05-2008
tonyskl tonyskl is offline
Miembro
 
Registrado: oct 2007
Posts: 18
Poder: 0
tonyskl Va por buen camino
¿Alguien puede ayudarme?
Responder Con Cita
  #3  
Antiguo 07-06-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Prueba con Full join, omite el outer
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problema con full outer join nemesio Firebird e Interbase 1 05-12-2006 23:17:56
Outer Join en mysql jfontane MySQL 2 28-11-2006 19:05:48
insertar el resultado de full join ddd_ddd SQL 2 22-09-2005 06:59:46
LEFT OUTER JOIN e INNER JOIN Juntos alcides SQL 3 08-07-2005 18:06:27
Outer Join santi SQL 2 03-02-2005 16:57:50


La franja horaria es GMT +2. Ahora son las 08:15:43.


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
Copyright 1996-2007 Club Delphi