Muchas gracias Sergio por tu aclaración. Estudiaremos la manera de realizar el merge, ya que parece bastante útil y las casuísticas en las que se puede utilizar son muy comunes.
Aún así,me gustaría saber cual es la "norma" de SQL en la que deberíamos basarnos en casos como estos, ya que es bastante complicado encontrar ayuda que "funcione" googleando sin saber qué debemos tener en cuenta de base. El ejemplo lo hemos sacado de la web de IBM de DB2 pero NO de DB2 for i, y es por eso que nos lleva a error. Tampoco debemos basarnos en la norma de SQL server /my sql o cualquier otro, y estaría bien si alguien nos pudiese aclarar de dónde partir a la hora de ver la sintaxis o los ejemplos. Lo dicho, mil gracias! On Mon, Mar 8, 2021 at 4:36 PM Sergio Martinez Roig <[email protected]> wrote: > Hola Estela, > > > > Para ejecutar este tipo de sentencias update de una tabla en función de > otra debes utilizar la estructura MERGE, en el ejemplo que pones tú sería > de la siguiente manera: > > > > MERGE INTO PROJECT AS P > > USING (SELECT DEPTNO, LOCATION FROM DEPARTMENT) AS D > > ON P.DEPTNO = D.DEPTNO > > WHEN MATCHED THEN UPDATE SET P.LOCATION = D.LOCATION; > > > > Hasta dónde yo se un UPDATE no acepta el FROM. Otra cosa que no tengo > clara es a partir de que reléase está disponible el MERGE. > > > > En este artículo te explica bien el MERGE: > > > > https://medium.com/@esteeeban10/merge-en-db2-as400-3ab986c36bef > > > > Un saludo > > Sergio Martínez > > Estibarna, CPE > > > > *De:* Forum.help400 <[email protected]> *En > nombre de *estela retes > *Enviado el:* lunes, 8 de marzo de 2021 16:16 > *Para:* forum.help400 <[email protected]> > *Asunto:* Norma SQL DB2 en V7R4 > > > > Buenas a todos, > > > > Disculpad por lo básico de la pregunta. > > > > Estamos intentando ejecutar unas sentencias SQL de tipo UPDATE desde el > Rational (desde STRSQL nos ocurre lo mismo), similares a ésta de un manual > de IBM: > > > > UPDATE PROJECT P > > SET P.LOCATION = D.LOCATION > > FROM DEPARTMENT D > > WHERE P.DEPTNO = D.DEPTNO; > > > > Estamos obteniendo el error: > > [SQL0199] Palabra clave FROM inesperada. Símbolos válidos: USE SKIP WAIT > WITH FETCH LIMIT ORDER WHERE OFFSET. > > > > Entendemos que no nos está permitiendo poner una cláusula FROM en una > UPDATE y nos gustaría saber porqué nos está rechazando esta sintaxis y en > qué "norma" de SQL debemos basarnos a la hora de construir dichas > sentencias. > > > > Gracias a todos y un saludo. > > > > -- > > Estela > Este mensaje contiene información confidencial dirigida al destinatario > del mismo. Las opiniones expresadas pertenecen al autor y no necesariamente > a ESTIBARNA. Si Ud. recibe este mensaje por error, se ruega informe > inmediatamente al remitente del mismo. Queda prohibido el uso, divulgación, > copia o distribución a terceros de la información incluida en este mensaje. > ____________________________________________________ > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) > Forum.Help400 © Publicaciones Help400, S.L. -- Estela
____________________________________________________ �nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones Help400, S.L.
