2016-11-24 4 views
0

私はすべての[N_SINISTRO]を複製したクエリを持っています。このクエリから、[ID_UTILIZADOR]が異なる[N_SINISTRO]のすべての重複を提示する必要があります。重複のクエリの援助

SELECT listagem.N_SINISTRO, listagem.ID, listagem.N_SUBSINCOGEN, listagem.ID_UTILIZADOR, listagem.Utilizador, listagem.Equipa, listagem.[Tipo Viatura], listagem.Situação, listagem.[Cod Postal], listagem.Concelho, listagem.[Estatuto Ofic], listagem.Rede, listagem.Oficina, listagem.DATA_ENTREGA, listagem.DATA_VENDA 
FROM listagem 
WHERE (((listagem.N_SINISTRO) In (SELECT [N_SINISTRO] FROM [listagem] As Tmp 
            GROUP BY [N_SINISTRO] 
            HAVING Count(*)>1)) 
    AND ((listagem.DATA_VENDA) Between [Forms]![menu]![Text1] And [Forms]![menu]![Text3])) 
ORDER BY listagem.N_SINISTRO; 

これは、クエリが私に与えるものです。

[N_SINISTRO] [ID_UTILIZADOR] 
Y    X 
Y    X 
Y    N 

これらは必要な値です。

[N_SINISTRO] [ID_UTILIZADOR] 
Y    X 
Y    N 
+0

単に「SELECT DISTINCT」を実行しますか? (あなたのクエリでは多くの列が選択されていますが、例の結果には2列しかありません)簡略化しすぎますか? – jarlh

+0

はい、単純化しただけです – Bole

+0

'SELECT DISTINCT'を使用するにはどうすればよいですか? @ jarlh – Bole

答えて

0

これはGROUP BYを使用してMS Accessで実行できます。しかし、出力には3つのカラムがありますが、クエリにはさらに多くのものがあるため、正確な構文がわかりません。指定した出力の場合

GROUP BYは次のようになります。

GROUP BY N_SINISTRO, ID_UTILIZADOR 

しかし、これらはSELECTで唯一の列でなければならないであろう。

+0

です。このクエリでは、ID_UTILIZADORによって既にグループ化されていますが、N_SINISTROの複製のみを表示することはできません。 'listagem.N_SINISTRO、listagem.ID_UTILIZADOR で(((listagem.N_SINISTRO)を有することによってlistagem FROM 基listagem.N_SINISTRO、listagem.ID_UTILIZADOR を選択(SELECT [N_SINISTRO] FROM [listagem] TmpのGROUP BY [N_SINISTRO] HAVINGカウントとして(*)> 1)))); ' – Bole