0

私のリクエストは少し奇妙で具体的ですが、ご容赦ください。

Comments数十万行のテーブルを持つ Access 2003 データベースがあります。いくつかのフィールドがあります - それらA, B, C, Dを と と呼びましょうcomment。列A-Cは、テーブルの PK を形成します。したがって、コメントが異なる 5 行、10 行、または 50 行が存在する可能性がありますが、すべてがA-CPK に関連しています。

フィールド( PK) とを持つCOREテーブルを含む別のテーブルがあります。coreA, B, C, DA-Ccomment_value_insert

私がしたいこと:

ではComments、同一の行の「セット」ごとにA-C(フィールドDは異なる場合があります)、comment特定の値に一致する値がない場合 ( と呼びましょうcritical)、 で同じ行を検索し、 とを含む新しい行をテーブルにCORE挿入します。commentsA-DComments.comment = core.comment_value_insert

これがSQLで可能かどうかさえわかりません(おそらくVBA?したがってタグです)。アドバイスはありますか?さらに明確にするために、離れて尋ねてください。

よろしくお願いします。

編集

私が欲しいものを正確に示すには:

私のCommentsテーブルが次のように見える場合

A | B | C | D | Comment
1   2   3   b   val1
1   2   3   x   val2
1   2   3   a   val3
2   9   8   z   val4
2   9   8   a   val5
3   3   3   x   val6
END

そして、私のCOREテーブルは次のようになります

A | B | C | D | Comment_value_insert
1   2   3   u   critical1
2   9   8   t   critical2
4   8   6   x   critical3
END

critical1次に、からの行を行だけでなく行COREにも挿入したいと思いますCommentsが、critical2行ではありませんcritical3

Comments次に、テーブルの最終製品は次のようになります

A | B | C | D | Comment
1   2   3   b   val1
1   2   3   x   val2
1   2   3   a   val3
1   2   3   u   critical1
2   9   8   z   val4
2   9   8   a   val5
2   9   8   t   critical2
3   3   3   x   val6
END
4

2 に答える 2

0

**このバージョンは私のために働いた**

INSERT INTO comments  
SELECT a, 
       b, 
       c, 
       d, 
       comment_value_insert AS comment  
FROM   core  
WHERE  EXISTS (SELECT comments.*  
               FROM   comments  
               WHERE  core.c = comments.c  
                      AND core.b = comments.b  
                      AND core.a = comments.a)  
       AND NOT EXISTS (SELECT comments.*  
                       FROM   comments  
                       WHERE  core.c = comments.c  
                              AND core.b = comments.b  
                              AND core.a = comments.a  
                              AND core.comment_value_insert = comments.comment)   
于 2013-08-09T08:21:30.330 に答える