¿Vale la pena crear una variable tabla en este caso?

24/05/2007 - 12:03 por Victor | Informe spam
Hola a tod@s.

Tengo una consulta, que no es que sea muy pesada, pero la tengo utilizo 4
veces en un select union all, donde lo que cambian son los parámetros del
where:

select 1 from tabla1 inner join tabal2 on a = b
where salida = @ida and ofe = 0
union all
select 1 from tabla1 inner join tabal2 on a = b
where salida = @llegada and ofe = 0
union all
select 1 from tabla1 inner join tabal2 on a = b
where salida = @ida and ofe <> 0
union all
select 1 from tabla1 inner join tabal2 on a = b
where salida = @llegada and ofe <> 0

Había pensado guardar los datos del select1 (sin tener en cuenta las
condiciones) en una variable tabla, y sobre ésta realizar las uniones:

select 1 from @tabla1
where salida = @ida and ofe = 0
union all
select 1 from @tabla1
where salida = @llegada and ofe = 0
union all
select 1 from @tabla1
where salida = @ida and ofe <> 0
union all
select 1 from @tabla1
where salida = @llegada and ofe <> 0

¿Vale la pena?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
24/05/2007 - 15:08 | Informe spam
Victor,

Trata:

select 1
from tabla1 inner join tabal2 on a = b
where salida in (@ida, @llegada)
go

No veo porque usar la column [ofe], ya que primero usas [ofe] = 0 y luego la
misma sentencia con [ofe] != 0.


Mostrar la cita
Esto equivale a:

select 1 from tabla1 inner join tabal2 on a = b
where salida = @ida


AMB

"Victor" wrote:

Mostrar la cita
#2 Victor
24/05/2007 - 18:00 | Informe spam
Vale.

Faltan más datos, jejeje.

Si ofe = 0, el where tiene unas condiciones, y si es <> 0 tiene otras.


"Alejandro Mesa" escribió en el
mensaje news:
Mostrar la cita
la
Mostrar la cita
4
Mostrar la cita
del
Mostrar la cita
#3 PablodeGerli
24/05/2007 - 19:31 | Informe spam
select 1 from tabla1 inner join tabal2 on a = b
where
(salida = @ida and ofe = 0 ) or
(salida = @llegada and ofe = 0 ) or
(salida = @ida and ofe <> 0 ) or
(salida = @llegada and ofe <> 0 )
aunque mejor creo seria ver que otras condiciones estas usando porque con
esta info a simple vista seria
((salida = @ida or salida = @llegada) and ofe = 0 ) or
((salida = @ida or salida = @llegada) and ofe <> 0 ) or
ahora si a cada renglon de estos le tenes que seguir agregando filtros es
otra cosa


"Victor" escribió en el mensaje
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida