Condicion para un Join ?

09/05/2006 - 18:06 por Penta | Informe spam
Estimados.
Se que no es la manera mas optima, pero me consultaron y no supe si es
posible, les cuento:

Tengo Tabla1 y TABLA2 ( Detalle)

Tabla1
ID1 Descripcion1 ID2 Descripcion2

Tabla2
ID1 ID2

La Tabla2 tiene unos 5000 registros, donde el 50% de ellos tiene el
valor 0 en ID2, el tema es, que cuando el ID2 no sea 0 hacer el join
con Tabla1 con ID2, caso contrario, es decir cuando ID2 tenga valor = 0
hacer el joing con Tabla1 con ID1

Lo pongo en seudo para que se entiendas mejor:
Si ID2=0 entonces
Tabla1 A join Tabla2 B
On a.id1=b.id1
Si no
on a.id2=b.id2
Fin Si

Atte,
Penta.
 

Leer las respuestas

#1 Alejandro Mesa
09/05/2006 - 19:29 | Informe spam
Trata:

...
from t1 inner join t2
on case when t2.id2 = 0 then t2.id1 else t2.id2 end = case when t2.id2 = 0
then t1.id1 else t1.id2 end


AMB

"Penta" wrote:

Estimados.
Se que no es la manera mas optima, pero me consultaron y no supe si es
posible, les cuento:

Tengo Tabla1 y TABLA2 ( Detalle)

Tabla1
ID1 Descripcion1 ID2 Descripcion2

Tabla2
ID1 ID2

La Tabla2 tiene unos 5000 registros, donde el 50% de ellos tiene el
valor 0 en ID2, el tema es, que cuando el ID2 no sea 0 hacer el join
con Tabla1 con ID2, caso contrario, es decir cuando ID2 tenga valor = 0
hacer el joing con Tabla1 con ID1

Lo pongo en seudo para que se entiendas mejor:
Si ID2=0 entonces
Tabla1 A join Tabla2 B
On a.id1=b.id1
Si no
on a.id2=b.id2
Fin Si

Atte,
Penta.


Preguntas similares