Besoin d'aide pour un MERGE [DB2] - SQL/NoSQL - Programmation
Marsh Posté le 25-09-2012 à 19:57:44
je m'y connais pas en DB2 (j'annonce)
mais je me demande si tu peux pas essayer
une requete dans ce style ne marche pas?
SELECT
ITMCO#
, ITMNUM
, RIGHT(LEFT(ITMGRP, 2),1) || 'YY'
FROM HAYRUN.ITP010 AS ITP010, OPP238
WHERE ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S' AND OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#
Marsh Posté le 25-09-2012 à 20:18:56
Salut,
oui la jointure fonctionne, il n'y a pas de problème pour ça
le problème c'est pour faire un UPDATE avec une jointure, manifestement possible avec le MERGE
mais j'y arrives pas
Marsh Posté le 25-09-2012 à 20:37:24
UPDATE SET PIDGRP = GRP FROM (SELECT
ITMCO#
, ITMNUM
, RIGHT(LEFT(ITMGRP, 2),1) || 'YY' AS GRP
, OPP238.PIDGRP
FROM HAYRUN.ITP010 AS ITP010, OPP238
WHERE ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S' AND OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#) AS TEST
ça n'existe pas ?
Marsh Posté le 26-09-2012 à 08:40:05
Non
ce n'est pas de l'ISO SQL ... malheureusement (ça marche très bien sous mon SQL Server)
Marsh Posté le 25-09-2012 à 09:39:08
J'ai une base de donnée sous DB2 / AS400 / iSeries (déjà ça part mal )
je dois mettre à jour une table à partir d'une autre, vu que les jointures ne sont pas acceptées dans les requetes de type UPDATE, je souhaite utiliser la fonction MERGE
mon code SQL :
MERGE INTO HAYRUN.OPP238 AS OPP238
USING
(
SELECT
ITMCO#
, ITMNUM
, RIGHT(LEFT(ITMGRP, 2),1) || 'YY'
FROM HAYRUN.ITP010 AS ITP010
WHERE ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S'
) AS ITM(ITMCO,ITMNUM,GRP) ON OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#
WHEN MATCHED THEN
UPDATE SET PIDGRP = ITM.GRP
ELSE IGNORE
bref ça me parait assez simple comme instruction,
et bé sous le query de iNavigator je choppe l'erreur suivante :
Message : [SQL0104] Token MERGE was not valid. Valid tokens: ( END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER BEGIN. Cause . . . . . : A syntax error was detected at token MERGE. Token MERGE is not a valid token. (...)
Pourtant la version de la BDD (7.1) est sensé supporter le MERGE : http://publib.boulder.ibm.com/info [...] ymerge.htm
ca fait déjà un jour que je coince là dessus,
une ptite idée ?
merci
---------------
Galerie Photo (Canon)