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)