0

Accessデータベースに重複する値を持つ1,000を超えるエントリがあります。trueDuplicateという列を作成し、レコードが特定の値を持つ最初の列ではない場合に設定したいと思います。つまり、レコードが値「RedChair」の最初のレコードである場合、Duplicateフィールドはに設定されますが、false値が「RedChair」の後続のすべてのレコードのDuplicateフィールドはに設定されtrueます。

Accessでこのクエリを実行するにはどうすればよいですか?

このデータベースはSQLServerデータベースにアップサイズされるため、SQLクエリでレコードを取得するときに、重複するレコードを「無視」するオプションがあります。このオプションが実行可能である場合、代わりにSQLでこれを行う方法を知りたいです。ありがとう。

4

3 に答える 3

2

サブクエリを使用する必要があります。これを試して

UPDATE Tabelle1 SET Tabelle1.b = 'Duplicate'
WHERE 
((Tabelle1.[ID] In 
 (SELECT Tabelle1.[ID] FROM Tabelle1 WHERE 
  ((Tabelle1.[a] In 
     (SELECT [a] FROM [Tabelle1] As Tmp GROUP BY [a] HAVING Count(*)>1 )
   )
  AND 
  (Tabelle1.[ID] Not In 
    (SELECT min([id]) FROM [Tabelle1] as grpid GROUP BY [a] HAVING Count(*)>1)
  ));
)));
于 2012-04-22T22:42:29.230 に答える
2

私はアクセス方言の専門家ではありませんが、RJIGOの回答または同様のもののこの適応も機能し、より効率的である可能性があります。

UPDATE Tabelle1 SET
  b = 'Duplicate'
WHERE 
  Tabelle1.[ID] > (
    SELECT min([id])
    FROM [Tabelle1] as T2
    WHERE T2.[a] = Tabelle1.[a]
  );
于 2012-04-23T02:33:59.300 に答える
1

私はこのSQLがあなたを助けることを願っています:

SELECT table.field、Count(table.field)AS test、IIf([test]> 1、 "TRUE"、 "FALSE")AS check FROM table GROUP BY table.field、IIf([test]> 1、 "TRUE "、" FALSE ");

于 2012-04-22T23:01:24.610 に答える