que tal asi, me cree unas tablas temporales para simular tu tabla real. lo único que en realidad te interesaría es el Update, puedes testearlo en Sql Server este script pero el update creo funcionará para cualquier base de Datos.
Código SQL
[-]Create table #planes_servicios (
id int identity not null,
servicio varchar(10),
nombre varchar(10),
precio money,
id_plan varchar(20)
)
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('001', 'Consulta', 150, 'PLANMAESTRO')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('002', 'Control', 75, 'PLANMAESTRO')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('003', 'Radiogra', 180, 'PLANMAESTRO')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('001', 'Consulta', 50, 'PLAN-B')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('002', 'Control', 70, 'PLAN-B')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('003', 'Radiogra', 80, 'PLAN-B')
insert into #planes_servicios (servicio, nombre, precio, id_plan) values ('004', 'XXXXXXXX', 750, 'PLAN-B')
Select *
from #planes_servicios
update #planes_servicios set precio = (Select ps.precio
from #planes_servicios ps
where ps.id_plan = 'PLANMAESTRO' and ps.servicio = #planes_servicios.servicio)
where id_plan <> 'PLANMAESTRO' and servicio in (Select p.servicio
from #planes_servicios p
where p.id_plan = 'PLANMAESTRO')
Select *
from #planes_servicios
Drop table #planes_servicios
El update es lo que te interesaría.
Salu2