2017-04-04 16 views
-1

私は会社の情報を取得する必要があるクエリを作成しようとしています。しかし、私は2レコードだけを取得する必要があり、私は6レコードを取得しています。 以下は私の質問です。Select Distinctで重複を取得する

SELECT distinct a.FOLIO      
        ,a.MAIN_ADDRESS1 
        ,a.MAIN_ADDRESS2 
        ,b.COMPANY_NAME 
        ,b.FIRST_NAME 
        ,b.LAST_NAME 
        ,a.OPEN 
        ,a.CLOSE 
        ,c.CC 
        ,c.CNAME     

FROM vw_CODE_CASE AS a 
INNER JOIN vw_CODE_CASE_VIOLATOR_CONTACTS AS b ON b.CMCODECASEID=a.CMCODECASEID 
INNER JOIN vw_CODE_CASE_WORK_FLOW AS c ON c.CMCODECASEID=a.CMCODECASEID 

インナージョイントの量が原因ですか? ありがとうございます。

+3

確かに、1つ以上の列がデータを別のものと表示することになります。サンプルデータと期待される出力を投稿する。また、あなたの現在の出力は何ですか? – GurV

+1

DISTINCTは1つのフィールドには適用されず、行全体(すべてのフィールドの組み合わせ)に適用されます。あなたのベスト・ベットは、データの代表サンプルを分離し、データベースにあるものを示し、そのサンプル・データから望む結果を含めることです。 – MatBailie

答えて

1

サンプルデータがないと、どの列のために異なるデータがクエリから来ていないのかを特定することは困難です。

しかし、原因を特定するために1つのことを行うことができます.1つ1つの列を削除し、クエリからデータをチェックすることができます。予想されるデータを取得した時点で、最後に削除された列が問題の原因になります。

これが役に立ちます。

+0

これはコメントです。回答ではありません。 – MatBailie

+0

コメントありがとうございました。私はそれをして、どの列が重複を生成しているか、どのテーブルから出ているかを知っていました。今、私は、この問題に遭遇したときを識別するための簡単な方法を、将来の参照のために知っています。 – sergio089