Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/07/2008, 08:58
jvillamil
 
Fecha de Ingreso: julio-2008
Ubicación: Hermosillo, Sonora
Mensajes: 95
Antigüedad: 15 años, 10 meses
Puntos: 3
Información Respuesta: Update SQL desde otra tabla

Pues mira, he hecho todo el script para verificar que funcione y en efecto, funciona
Aquí te pongo los resultados de la tabla "t_articulos" antes de actualizar

codarticulo precio
----------- ---------------------------------------
a1 0.00
a2 0.00
a3 0.00
a4 0.00
a5 0.00
a6 0.00

Ahora la misma tabla, pero despues del update
codarticulo precio
----------- ---------------------------------------
a1 1000.00
a2 800.00
a3 70.00
a4 20.00
a5 400.00
a6 60.00


Y por ultimo, pues el script:

'------------------------------------------------
drop table t_articulos
drop table t_suministro
go

create table t_articulos
(
codarticulo varchar(5),
precio decimal(12,2)
)

create table t_suministro
(
codarticulo varchar(5),
precio decimal(12,2)
)
go


insert into t_articulos (codarticulo, precio)
values ('a1', 0)
insert into t_articulos (codarticulo, precio)
values ('a2', 0)
insert into t_articulos (codarticulo, precio)
values ('a3', 0)
insert into t_articulos (codarticulo, precio)
values ('a4', 0)
insert into t_articulos (codarticulo, precio)
values ('a5', 0)
insert into t_articulos (codarticulo, precio)
values ('a6', 0)
go

insert into t_suministro (codarticulo, precio)
values ('a1', 1000)
insert into t_suministro (codarticulo, precio)
values ('a1', 100)
insert into t_suministro (codarticulo, precio)
values ('a1', 200)
insert into t_suministro (codarticulo, precio)
values ('a1', 300)
insert into t_suministro (codarticulo, precio)
values ('a2', 800)
insert into t_suministro (codarticulo, precio)
values ('a2', 400)
insert into t_suministro (codarticulo, precio)
values ('a3', 50)
insert into t_suministro (codarticulo, precio)
values ('a3', 70)
insert into t_suministro (codarticulo, precio)
values ('a4', 20)
insert into t_suministro (codarticulo, precio)
values ('a4', 10)
insert into t_suministro (codarticulo, precio)
values ('a5', 400)
insert into t_suministro (codarticulo, precio)
values ('a5', 50)
insert into t_suministro (codarticulo, precio)
values ('a6', 60)
go

select * from t_articulos
go

update x
set x.precio = (select max(t.precio) from t_suministro t where t.codarticulo = x.codarticulo group by t.codarticulo)
from t_articulos x
go

select * from t_articulos
go
-----------------------------------------------'

Veo que estas corriendo sobre Oracle y pues si acepta subconsultas, quiza tengas que configurar algo o al parecer lo que tienes mal son los alias que no estan definidos en la subconsulta.


Salu2...