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.

Reply via email to