2010-12-31 9 views
0

新しいデータを1つのテーブルに追加する追加クエリを作成しようとしていますが、2番目のテーブルのレコードの共通セットとマージしてから、 入力された新しいデータは同じフィールドを持つことができますが、異なる組み合わせであることができます。現在、クエリは最初のテーブルのすべてのレコードを継続的に更新し、3番目のテーブルに重複レコードを作成しています。私は、したがって、質問と顧客の入力に共通のフィールドで推測しているクエリ2007を使用して新しいレコードの作成にアクセスする

INSERT INTO Answers ( 
    [Cust Key], [Bu Key], 
    [Question No], Question) 
SELECT 
    [Customer Input].[Cust Key], 
    [Customer Input].[Bu Key], 
    Questions.[Question Id], Questions.Question 
FROM [Customer Input] 
INNER JOIN Questions 
ON [Customer Input].[Question Id] = Questions.[Question Id] 
WHERE [Customer Input].[Cust Key] 
NOT IN (SELECT [Cust Key] FROM Answers) 

[Customer Input].[Question Id] = Questions.[Question Id] 

のようなものでなければなりません
INSERT INTO ANSWERS ([CUST KEY], [BU KEY], [QUESTION NO], QUESTION) 
SELECT [CUSTOMER INPUT].[CUST KEY], [CUSTOMER INPUT].[BU KEY], QUESTIONS.[QUESTION ID], QUESTIONS.QUESTION 
FROM [CUSTOMER INPUT], QUESTIONS; 
+0

を読むことを望むかもしれない、あなたは(デカルト積を見つけることができますこれはあなたが持っているものです)有用です。必要なものだが、重複を生成している場合は、代わりにSELECT DISTINCTを試すことができます。 –

答えて

0

を下回っているよう

クエリ余談だが、人生が過ぎ去る前に、フィールドやテーブルの名前のスペースをすべて取り除いてくださいlicated。アンダースコアを使用することも、削除することもできます。テーブルは実際に関連していない場合は

あなたは(すなわち、1つのレコードが他の関連する子ではありません)
Fundamental Microsoft Jet SQL for Access 2000
Intermediate Microsoft Jet SQL for Access 2000
Advanced Microsoft Jet SQL for Access 2000