consulta de update

11/05/2006 - 14:53 por Mennegguzzi | Informe spam
Hola, le detallo mi problema:

tengo una tabla con la siguiente estructura:

Tabla_Cod1 Tabla_Nro1 Tabla_Cod2 Tabla_Nro2 Tabla_Vto
FA 1 FA 1
28-04-2006
FA 2 FA 2
03-05-2006
FA 3 FA 3
10-05-2006
OP 8 FA 1
06-05-2006 (1)
OP 9 FA 2
08-05-2006 (2)
FA 4 FA 4
15-05-2006

lo que necesito es que para cada registro donde el campo Tabla_Cod1 sea = a
'OP', el campo Tabla_Vto sea igual al campo Tabla_Vto del registro donde
el campo Tabla_Cod1 sea igual al campo Tabla_Cod2 del registro original, y
lo miso con los campos Tabla_Nro1 y Tabla_Nro2

como creo que no sé explicarlo muy bien lo hago con el ejemplo:

(1) necesito que es valor sea 28-04-2006, igual que el mismo campo en el
primer registro de la tabla del ejemplo, ver que los campos Cod2 y Nro2 del
4º registro son iguales a los campos Cod1 y Nro1 del 1º registro

(2) necesito que es valor sea 03-05-2006, igual que el mismo campo en el
segundo registro de la tabla del ejemplo, ver que los campos Cod2 y Nro2 del
5º registro son iguales a los campos Cod1 y Nro1 del 2º registro


Pido disculpas por no saber explicarlo mejor, espero se pueda entender

intenté hacerlo con la siguiente consulta, pero de el resultado que les
copio abajo:

Consulta:

UPDATE Tabla
SET Tabla_Vto = C.Tabla_Vto
FROM Tabla INNER JOIN Tabla C ON
Tabla_Cod2 = C.Tabla_Cod1 AND
Tabla_Nro2 = C.Tabla_Nro1
WHERE Tabla_Cod1 = 'OP' AND
Tabla_Cta = 'PROV1'

Resultado:

Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name Tabla_Cod2 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Nro2'.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cod1 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cod1 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cta'.


Alguno quizás pueda ayudarme u orientarme como hacerlo

Muchísimas gracias de antemano

Saludos

Pablo

Preguntas similare

Leer las respuestas

#1 rossittamarin
11/05/2006 - 15:34 | Informe spam
Hola pablo

creo que puedes solucionar tu problema asi:

UPDATE Tabla
SET Tabla_Vto = V.Tabla_Vto
FROM Tabla T
INNER JOIN Tabla V ON V.Tabla_Cod2 = T.Tabla_Cod1 AND V.Tabla_Nro2 T..Tabla_Nro1
WHERE V.Tabla_Cod1 = 'OP' AND V.Tabla_Cta = 'PROV1'
Respuesta Responder a este mensaje
#2 Alejandro Mesa
11/05/2006 - 15:45 | Informe spam
Trata:

use northwind
go

create table t1 (
Tabla_Cod1 char(2),
Tabla_Nro1 int,
Tabla_Cod2 char(2),
Tabla_Nro2 int,
Tabla_Vto datetime
)
go

insert into t1 values('FA', 1, 'FA', 1, '20060428')
insert into t1 values('FA', 2, 'FA', 2, '20060503')
insert into t1 values('FA', 3, 'FA', 3, '20060510')
insert into t1 values('OP', 8, 'FA', 1, '20060506')
insert into t1 values('OP', 9, 'FA', 2, '20060508')
insert into t1 values('FA', 4, 'FA', 4, '20060515')
go

update t1
set t1.Tabla_Vto = (select t2.Tabla_Vto from t1 as t2 where t2.Tabla_Cod1 =
t1.Tabla_Cod2 and t2.Tabla_Nro1 = t1.Tabla_Nro2)
where t1.Tabla_Cod1 = 'OP'
and exists (select * from t1 as t2 where t2.Tabla_Cod1 = t1.Tabla_Cod2 and
t2.Tabla_Nro1 = t1.Tabla_Nro2
)
go

select * from t1
go

drop table t1
go


AMB


"Mennegguzzi" wrote:

Hola, le detallo mi problema:

tengo una tabla con la siguiente estructura:

Tabla_Cod1 Tabla_Nro1 Tabla_Cod2 Tabla_Nro2 Tabla_Vto
FA 1 FA 1
28-04-2006
FA 2 FA 2
03-05-2006
FA 3 FA 3
10-05-2006
OP 8 FA 1
06-05-2006 (1)
OP 9 FA 2
08-05-2006 (2)
FA 4 FA 4
15-05-2006

lo que necesito es que para cada registro donde el campo Tabla_Cod1 sea = a
'OP', el campo Tabla_Vto sea igual al campo Tabla_Vto del registro donde
el campo Tabla_Cod1 sea igual al campo Tabla_Cod2 del registro original, y
lo miso con los campos Tabla_Nro1 y Tabla_Nro2

como creo que no sé explicarlo muy bien lo hago con el ejemplo:

(1) necesito que es valor sea 28-04-2006, igual que el mismo campo en el
primer registro de la tabla del ejemplo, ver que los campos Cod2 y Nro2 del
4º registro son iguales a los campos Cod1 y Nro1 del 1º registro

(2) necesito que es valor sea 03-05-2006, igual que el mismo campo en el
segundo registro de la tabla del ejemplo, ver que los campos Cod2 y Nro2 del
5º registro son iguales a los campos Cod1 y Nro1 del 2º registro


Pido disculpas por no saber explicarlo mejor, espero se pueda entender

intenté hacerlo con la siguiente consulta, pero de el resultado que les
copio abajo:

Consulta:

UPDATE Tabla
SET Tabla_Vto = C.Tabla_Vto
FROM Tabla INNER JOIN Tabla C ON
Tabla_Cod2 = C.Tabla_Cod1 AND
Tabla_Nro2 = C.Tabla_Nro1
WHERE Tabla_Cod1 = 'OP' AND
Tabla_Cta = 'PROV1'

Resultado:

Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name Tabla_Cod2 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Nro2'.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cod1 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cod1 '.
Servidor: mensaje 209, nivel 16, estado 1, línea 1
Ambiguous column name 'Tabla_Cta'.


Alguno quizás pueda ayudarme u orientarme como hacerlo

Muchísimas gracias de antemano

Saludos

Pablo



Respuesta Responder a este mensaje
#3 Mennegguzzi
11/05/2006 - 16:20 | Informe spam
Hola Rosita, muchas gracias por tu respuesta, te hago una consulta respecto
a la misma:

en la query que me pasás lo que estoy actualizando es el campo Tabla_Vto ,
pero en ningún lugar del Where le estoy diciendo sobre que registros de
Tabla actualizar,
en el where le estoy pasando como parámetros los registros de la tabla
V.Tabla

está bien eso?




escribió en el mensaje
news:
Hola pablo

creo que puedes solucionar tu problema asi:

UPDATE Tabla
SET Tabla_Vto = V.Tabla_Vto
FROM Tabla T
INNER JOIN Tabla V ON V.Tabla_Cod2 = T.Tabla_Cod1 AND V.Tabla_Nro2 > T..Tabla_Nro1
WHERE V.Tabla_Cod1 = 'OP' AND V.Tabla_Cta = 'PROV1'

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida