tablas Temporales

27/02/2004 - 18:37 por Carlos | Informe spam
Hola Gente !

Me pueden ayudar con este problema ?

En SQL 7 me da un error en este tipo de Store

if @a=0 begin
select tabla1.* , tabla2.* into #temporal from tabla where <alguna
condicion>
left join tabla2 on tabla1.id = tabla2.id
end
else begin
select tabla1.* , tabla2.* into #temporal from tabla1 where <otra
condicion>
left join tabla2 on tabla1.id = tabla12.id
end

select * from #temporal where saldo = 0
me dice que ya existe un objeto llamado #temporal

Hay alguna forma de usar una misma tabla temporal para cada condicion ?

Muchas gracias !

Preguntas similare

Leer las respuestas

#1 ulises
27/02/2004 - 19:21 | Informe spam
No veo la necesidad de que uses una tabla temporal, basta
con dos select en un if :

IF @a = 0
SELECT tabla1.*, tabla2.*
FROM tabla1 join tabla2 ON ( tabla1.id = tabla2 = id )
WHERE saldo = 0 AND ( una condicion )
ELSE
SELECT tabla1.*, tabla2.*
FROM tabla1 join tabla2 ON ( tabla1.id = tabla2 = id )
WHERE saldo = 0 AND ( otra condicion )

Si todavia deseas manejar la tabla temporal (por alguna
condición no indicada en la pregunta) tendrias que llevar
el IF dentro del WHERE con un CASE, si es posible

select tabla1.* , tabla2.* into #temporal
from tabla1 left join tabla2 on tabla1.title_id =
tabla2.title_id
where columna = (CASE @a WHEN 0 THEN 'valor01'
ELSE 'valor02' END)

claro que tendrías que revisar que los nombres de las
columnas no se repitan.

Otra opción es realizar el CREATE al inicio y luego
ejecutar un INSERT ... SELECT .

Saludos,
Ulises

Hola Gente !

Me pueden ayudar con este problema ?

En SQL 7 me da un error en este tipo de Store

if @a=0 begin
select tabla1.* , tabla2.* into #temporal from


tabla where <alguna
condicion>
left join tabla2 on tabla1.id = tabla2.id
end
else begin
select tabla1.* , tabla2.* into #temporal from


tabla1 where <otra
condicion>
left join tabla2 on tabla1.id = tabla12.id
end

select * from #temporal where saldo = 0
me dice que ya existe un objeto llamado #temporal

Hay alguna forma de usar una misma tabla temporal para


cada condicion ?

Muchas gracias !


.

Respuesta Responder a este mensaje
#2 Liliana Sorrentino
27/02/2004 - 19:23 | Informe spam
Hola Carlos,
Podrías dar un nombre diferente para cada condición:
if @a=0 begin
select tabla1.* , tabla2.* into #temporal1 from tabla where <alguna
condicion>
left join tabla2 on tabla1.id = tabla2.id
select * from #temporal1 where saldo = 0
end
else begin
select tabla1.* , tabla2.* into #temporal2 from tabla1 where <otra
condicion>
left join tabla2 on tabla1.id = tabla12.id
select * from #temporal2 where saldo = 0
end
Saludos.. Liliana.

"Carlos" escribió en el mensaje
news:uxH4PhV$
Hola Gente !

Me pueden ayudar con este problema ?

En SQL 7 me da un error en este tipo de Store

if @a=0 begin
select tabla1.* , tabla2.* into #temporal from tabla where <alguna
condicion>
left join tabla2 on tabla1.id = tabla2.id
end
else begin
select tabla1.* , tabla2.* into #temporal from tabla1 where <otra
condicion>
left join tabla2 on tabla1.id = tabla12.id
end

select * from #temporal where saldo = 0
me dice que ya existe un objeto llamado #temporal

Hay alguna forma de usar una misma tabla temporal para cada condicion ?

Muchas gracias !


Respuesta Responder a este mensaje
#3 Carlos
27/02/2004 - 20:04 | Informe spam
Hola y gracias por responder.
Solo coloque un simple ejemplo ya que el query es bastante mas extenso y con
varios criterios de seleccion.
En la temporal coloco el resultado de varios join con la tabla principla, y
ademas de esa tabla temporal debo hacer otra seleccion.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida