Efectivamente, si hubiese varios registros en archivoA con el mismo valor de campo1, se produciría un error en tiempo de ejecución, que te dejaría algunos registros de archivoA cambiados, y otros sin cambiar, sin poder determinar cuales, por lo que sería conveniente tomar precauciones.
Alternativamente, se puede modificar la instrucción para que no se produzca
un error, pero no garantiza que el resultado sea el deseado.
update archivoB set campoUno = (select MAX(campoDos) from archivoA where
archivoA.campoUno = archivoB.campoUno)
where exists (select * from archivoA where
archivoA.campoUno = archivoB.campoUno)
o también:
update archivoB set campoUno = (select campoDos from archivoA where
archivoA.campoUno = archivoB.campoUno)
where campoUno IN(select campoUno from archivoA GROUP BY
campoUno HAVING count(*)=1)
Saludos,
---------------------------
Santiago Martí
Dusen, S.A.
---------------------------
Fernando Pérez
<[EMAIL PROTECTED]
m> Para
Enviado por: "forum.help400"
forum.help400-bou <[email protected]>
[EMAIL PROTECTED] cc
os.es
Asunto
Re: Actualizacion por sql
10/05/2007 10:56
Por favor,
responda a
"forum.help400"
<[EMAIL PROTECTED]
stas.combios.es>
Si te he entendido bien, creo que la siguiente sentencia te valdrá Si en A
no hay valores repetidos en campo1 (lo cual no parecería lógico)
update B set campo1 = (select campo2 from A where campo1 = b.campo1)
where exists (select campo1 from A where campo1 = b.campo1)
El where es necesario si no todas las filas de B tienen su correspondiente
en A
Saludos.
Fernando Pérez
Cerámica Saloni. Dpto. Auditoría y Organización
Jaime Villa Torres escribió:
Señores, recurro a su ayuda, el problema es que me estoy llenando de
programas y estoy pensando en una solución dinamica.
Existe un archivoA con dos campos,
campo uno, especifica un valor anterior.
campo dos, especifica un valor nuevo.
Otro archivoB
campo uno, especifica un valor
Con la informacion de este archivoA, se debe tomar el VALOR ANTERIOR,
que es el valor de un campo del archivoB, y cambiar ese valor del
archivoB por el NUEVO VALOR del archivoA.
Lo primero que pense, es en una sentencia sql embebida en un
SQLRPGLE, pero realmente no lo he logrado.
Cualquier ayuda es bien venida.
Gracias de antemano.
__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; Publicaciones Help400, S.L. - Todos los derechos
reservados
http://www.help400.es
_____________________________________________________
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
(See attached file: fperez.vcf)
__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; Publicaciones Help400, S.L. - Todos los derechos
reservados
http://www.help400.es
_____________________________________________________
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
fperez.vcf
Description: Binary data
__________________________________________________ Forum.HELP400 es un servicio m&#225;s de NEWS/400. &#169; Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja visita la siguente URL: http://listas.combios.es/mailman/listinfo/forum.help400

