La tabla es ambigua

16/11/2008 - 17:44 por Gilbert | Informe spam
Hola amigos

Tengo una tabla parecida a esta:

Tabla1
Depto, tipo, DeptoSuperior
1 , E,
1-1 , E, 1
1-1-1 , , 1-1
2 , B,
2-1 , B, 2
2-1-1 , , 2-1

DeptoSuperior es solo un campo calculado para sacar el Departamento a que
pertenece Depto. Es como un arbol ya que DeptoSuperior se refiere al
registro padre de cada registro.

Me dieron la tabla para que los registros que tengan el tipo en blanco lo
actualice tomandolo del tipo del DeptoSuperior.

Trato de hacer este Update y me dice que la tabla tabla1 es ambigua:

Update Tabla1 set tipo=B.tipo
from Tabla1 A inner join Tabla1 B on A.DeptoSuperior=B.Depto
where Tabla1.tipo=''

Me he liado en como hacer este update.
 

Leer las respuestas

#1 Alejandro Mesa
16/11/2008 - 18:50 | Informe spam
Gilbert,

Esa version de Microsoft que permite unir tablas en la sentencia update,
suele tener mejor desempenio que la version ANSI, pero para mi es mas
complicada.

Trata:

update t_A
set tipo = (select b.tipo from t_A as a where a.Depto = t_A.DeptoSuperior)
where exists (
select *
from select b.tipo from t_A as a
where a.Depto = t_A.DeptoSuperior and a.tipo is not null
)
GO


AMB


"Gilbert" wrote:

Hola amigos

Tengo una tabla parecida a esta:

Tabla1
Depto, tipo, DeptoSuperior
1 , E,
1-1 , E, 1
1-1-1 , , 1-1
2 , B,
2-1 , B, 2
2-1-1 , , 2-1

DeptoSuperior es solo un campo calculado para sacar el Departamento a que
pertenece Depto. Es como un arbol ya que DeptoSuperior se refiere al
registro padre de cada registro.

Me dieron la tabla para que los registros que tengan el tipo en blanco lo
actualice tomandolo del tipo del DeptoSuperior.

Trato de hacer este Update y me dice que la tabla tabla1 es ambigua:

Update Tabla1 set tipo=B.tipo
from Tabla1 A inner join Tabla1 B on A.DeptoSuperior=B.Depto
where Tabla1.tipo=''

Me he liado en como hacer este update.



Preguntas similares