2016-06-16 4 views
3

Disposition-Codeが存在しない場合にのみDisposition-CodeとDisposition-Descをテーブルに挿入するクエリを作成しようとしています。私は現在これを持っていますが、何らかの理由ですべての記録の処分を私の処分テーブルに挿入しています。私の目標は、すべてのユニークな処分で処分テーブルを持つことです。クエリ繰り返し行を挿入します。

INSERT INTO TexasBexarCountyMisdemeanorDispositions ([DISPOSITION-CODE], [DISPOSITION-DESC]) 
SELECT t1.[DISPOSITION-CODE], t1.[DISPOSITION-DESC] 
FROM TexasBexarCountyMisdemeanorPublicRecords t1 
WHERE t1.[DISPOSITION-CODE] NOT IN (SELECT [DISPOSITION-CODE] FROM TexasBexarCountyMisdemeanorDispositions) 

このコードブロックは、すべてのレコードのすべての処理を新しいテーブルに挿入しています。だから、30の処分のテーブルを持つ代わりに、私は私のレコードテーブルのサイズのテーブルを持っています。私のテーブルに既に挿入されている619の処理コードがあるとします。この処理を再度INSERTしないようにします。

どのようにこれを行うにはどのような洞察力を持っていますか?

+0

重複するレコードを挿入しないでください。 –

答えて

2

このクエリを試してください。選択時のDISTINCT制約に注意してください。

INSERT INTO 
TexasBexarCountyMisdemeanorDispositions 
(
    [DISPOSITION-CODE], 
    [DISPOSITION-DESC] 
) 
SELECT DISTINCT 
[DISPOSITION-CODE], 
[DISPOSITION-DESC] 
FROM 
TexasBexarCountyMisdemeanorPublicRecords 
WHERE [DISPOSITION-CODE] NOT IN 
(
SELECT 
    DISTINCT [DISPOSITION-CODE] 
FROM 
TexasBexarCountyMisdemeanorDispositions 
) 
+1

これは私が投稿しようとしていた答えです。展開する場合: 'DISTINCT'はここでは適切です。なぜなら、' TexasBexarCountyMisdemeanorDispositions'に同じコードが複数コピーされていれば、それらの* all *はその質問の 'WHERE'句を満足するでしょう。重複したエントリを取得します。 –

+0

DUDE !!!あなたはDAリアルMVPです!クエリが100万以上を挿入する前に、このクエリを私のテーブルに253行挿入していただきありがとうございます。あなたの助けをありがとう@DhruvJoshi – Lostaunaum

-2

テクスチャコードの重複値を防ぐために、TexasBexarCountyMisdemeanorDispositionsでインデックスを作成します。 重複インデックスエラーメッセージは警告メッセージに切り替えることができ、それはすべて役に立ちます。 msdn.microsoft.com/en-us/library/ms186869.aspx

+0

インデックスを作成しますか?確かに@bjones – BJones

+0

。インデックスを作成します。 – nicomp

+0

@nicompディスポジションテーブルに一意の識別子を追加しますか? – Lostaunaum