0
SELECT      P.CODE,
            P.STATUS,
            G.DESCRIPTION,
            x.xref_code,
            X.XREF_STATUS

FROM        table1.price_data p,
            TABLE2.GENERAL_DATA G,
            TABLE3.XREF_DATA X

WHERE        
        P.CODE = G.CODE
        AND G.CODE=X.CODE
        AND x.code=4545645
        AND X.VEHICLE_CODE=9999999

文字通り 30,000 行をフィルター処理する必要があります...上記のクエリを変更して、x.xref_status の一意の値のみを表示するにはどうすればよいですか?

4

1 に答える 1

1

X.XREF_STATUS が重複する理由は明らかではありません: TABLE3 テーブルに重複がありますか? それとも、関連するレコードに XREF_STATUS 値への参照が多数ある可能性が高いですか?

X.XREF_STATUS 以外の列で行が異なる場合、別の行ではなく 1 つの行を選択して、一意の X.XREF_STATUS 値のみを表示することはできません。

一意の X.XREF_STATUS 値のリストは、次の方法で取得できます。

select distinct X.XREF_STATUS
from TABLE3.XREF_DATA X
where x.code=4545645
AND X.VEHICLE_CODE=9999999

これを他のテーブルに結合して関連データを取得できますが、X.XREF_STATUS への複数の参照を含むテーブルと結合すると、それに応じて複製されます。重複を避けるために、他の列 (COUNT、SUM など) を集計する必要があります。

于 2012-07-16T15:09:29.730 に答える