Peut DB2 AVEC la déclaration dans le cadre d'une mise à JOUR ou de FUSION?

J'ai besoin de mettre à jour des lignes dans une table DB. Comment je identifier les lignes à mettre à jour une série de compliqué états, et j'ai réussi à les faire bouillir jusqu'à une série de déclarations. Maintenant, j'ai le bon de valeurs de données, j'ai besoin de mettre à jour la table.

Depuis que j'ai réussi à obtenir ces valeurs avec une instruction with, j'espérais pouvoir l'utiliser dans la mise à JOUR/FUSION. Un exemple simplifié suivant:

with data1
(
    ID_1
)
as
(
    Select ID
    from  ID_TABLE
    where ID > 10
)
,
cmedb.data2
(
     MIN_ORIGINAL_ID
    ,OTHER_ID
)
as
(
    Select min(ORIGINAL_ID)
           ,OTHER_ID
    from   OTHER_ID_TABLE
    where  OTHER_ID in
    (
        Select distinct ID_1
        From   data1
    )
    group by OTHER_ID

)
select MIN_ORIGINAL_ID
      ,OTHER_ID
from cmedb.data2

Maintenant, j'ai les deux colonnes de données, je veux les utiliser pour mettre à jour une table. Donc au lieu de devoir les sélectionner en bas, j'ai essayé toutes sortes de combinaisons de fusions et mises à jour, y compris l'instruction au-dessus de la mise à JOUR/de FUSION, ou dans le cadre de la mise à JOUR/MERGE. Voici ce qui s'en rapproche le plus dans mon esprit, ce que je veux faire:

merge into ID_TABLE as it
using
(
    select MIN_ORIGINAL_ID
          ,OTHER_ID
    from cmedb.data2

) AS SEL
ON
(
    it.ID = sel.OTHER_ID
)
when matched then
update
set it.ORIGINAL_ID = sel.MIN_ORIGINAL_ID

De sorte qu'il ne fonctionne pas. Je ne suis pas sûr si cela est encore possible, comme je l'ai pas trouvé des exemples sur internet à l'aide de déclarations en combinaison avec la mise à JOUR ou de FUSION. J'ai des exemples de déclarations d'être utilisé en conjonction avec d'INSERTION, de sorte crois qu'il pourrait être possible.

Si quelqu'un peut aider ce serait génial, et s'il vous plaît laissez-moi savoir si j'ai laissé de côté toute information qui pourrait être utile pour résoudre le problème.

Avertissement: L'exemple que j'ai fourni est une bouillie version de ce que je suis en train de faire, et ne peut pas réellement aucun sens!

InformationsquelleAutor Clarkey | 2011-02-01