Carlos, Suponíamos que era algo así, pero muchas veces es realmente difícil entrar estas cosas en internet. Los link nos vienen genial, cada día es más complicado buscar en IBM, o al menos a mí se me hace difícil.
Aclaradas todas las dudas. Muchas gracias!!!! On Mon, Mar 8, 2021 at 6:14 PM Carlos <[email protected]> wrote: > Hola > > La "norma" es la de SQL de DB2 de i; que dicho así parece una tonteria (y > seguramente lo sea 😁) pero lo que quiero decir es que es SQL standard con > adaptaciones para i. El ejemplo a lo mejor lo has sacado de la página de > DB2 de Z, que también tiene sus diferencias. > > En tu sentencia funcionaría con un segundo SELECT (quizá con DISTINCT o > alguna cláusula para que solo devuelva una fila) > > UPDATE PROJECT P > > SET P.LOCATION = (*SELECT* D.LOCATION > > FROM DEPARTMENT D > > WHERE P.DEPTNO = D.DEPTNO); > > > Para buscar en Google yo suelo añadir iseries a las búsquedas para acotar, > aunque no siempre sirve. > > Y como referencia, tienes la documentación de IBM donde también puedes > encontrar ejemplos (sobre todo en el de programación): > > https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/db2/rbafzintro.htm > > > https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/sqlp/rbafykickoff.htm > > Saludos > Carlos > > > El 8/3/21 a las 16:45, estela retes escribió: > > 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. > > ____________________________________________________ > Ú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.
