2016-09-23 14 views
1

私は、顧客キーが何年かの金利とマッチするMS Accessテーブルを持っています。ユーザーインタラクションのために、同じ金利と年のデータが2回表示されますが、キーは異なります。MS Accessで複数行の重複を検索する

[KEY] [year] [data1] [data2] 
    1 2000 0,3  0,2 
    1 2003 0,7  0,3 
    1 2007 0,1  0,2 
    2 2000 0,3  0,2 
    2 2003 0,7  0,3 
    2 2007 0,1  0,2 
    2 2016 0,3  0,1 

[KEY] [year] [data1] [data2] 
    1 2000 0,3  0,2   
    1 2003 0,7  0,3  
    1 2007 0,1  0,2  
    1 2016 0,3  0,1 

ので、影響を受けたキーのいずれかを削除すべき歴史的な対応が存在する場合になると、私は方法でこれらをフィルタリングしたい(そしてもちろん、このキーは、顧客に更新されるべきです表)。 これをコード化する方法を知っている人はいますか?

+0

私は、あなたが望む出力の最後の行に誤字があると思います。 2016年の '[KEY]'は '2 'でなければなりませんか? –

+0

いいえ、キーの1つを削除したいので、すべてのデータがキー1または2でなければなりません。バックグラウンドでは、1つのキーに複数のレートが接続されていますが、レートの1つ(2016のデータを追加)他のものを更新することに同意するのを忘れると、最新のものを除いて同じデータを有する1つの追加キーが生成される。私はこのプロセスを逆にするプログラムを書こうとしています – xxx

+0

'いいえ、私は鍵の一つを削除しますか? –

答えて

2
DELETE t1.* 
FROM yourTable t1 
WHERE NOT EXISTS 
(
    SELECT 1 
    FROM 
    (
     SELECT [year], [data1], [data2], MIN([KEY]) AS KEY 
     FROM yourTable 
     GROUP BY [year], [data1], [data2] 
    ) t2 
    WHERE t1.[KEY] = t2.[KEY] AND 
      t1.[year] = t2.[year] AND 
      t1.[data1] = t2.[data1] AND 
      t1.[data2] = t2.[data2] 
) 
+0

お返事ありがとうございます!これは上の例でうまくいきますが、別のキー3に年を追加した場合などです。 2000年と2003年に異なるdata1とdata2で削除されます。私はMin(Key)に行くことができません。なぜなら、関係の鍵年が2回以上現れることがあるからです。それを含める方法がありますか?精巧で悪くて申し訳ありません。 – xxx

+1

あなたのニーズに対応するために私の答えが更新されました。 –

関連する問題