0

SQL2008R2を使用しているim

結合テーブルから重複した値を取得しました: テーブルに参加

SELECT *
FROM LETTRE_VOIT 
 LEFT JOIN FAWEB_CLIENT ON FAWEB_CLIENT.CODE_CLIENT = LETTRE_VOIT.CODE_CLIENT
 LEFT  JOIN ORDRE ON ORDRE.CODE_DEST = LETTRE_VOIT.CODE_DEST AND ORDRE.CODE_CLIENT = LETTRE_VOIT.CODE_CLIENT
   AND ORDRE.DATE_CLOTUR = LETTRE_VOIT.DATE_CLOTURE
WHERE  LETTRE_VOIT.NO_ORDRE IN ('5530','5533')

あなたが画像で見ることができるように、私は5530と5533の2倍の値を得ました。

私のテーブルFAWEB_CLIENT(ID Code_Client)
テーブルLETTRE_VOIT(ID NOIDおよびNO_ORDRE)
テーブルORDRE(ID NO_ORDREおよびNO_CLIENT)

DISTINCTを使用できません: 明確 エラーメッセージ:テキストデータタイプは比較できないため、DISTINCTとして選択できません

4

1 に答える 1

1

問題は、結合が正しくないことだと思います。私の疑いは、次の結合条件が欠落していることですLetter_Voit.No_Ordre

SELECT *
FROM LETTRE_VOIT 
 LEFT JOIN FAWEB_CLIENT ON FAWEB_CLIENT.CODE_CLIENT = LETTRE_VOIT.CODE_CLIENT
 LEFT  JOIN ORDRE ON ORDRE.CODE_DEST = LETTRE_VOIT.CODE_DEST AND ORDRE.CODE_CLIENT = LETTRE_VOIT.CODE_CLIENT
   AND ORDRE.DATE_CLOTUR = LETTRE_VOIT.DATE_CLOTURE and
   LETTRE_VOIT.No_ORDRE = Order.No_ORDRE
WHERE  LETTRE_VOIT.NO_ORDRE IN ('5530','5533')

冗長になる可能性のある他の結合条件のいくつかを削除できる場合があります。

于 2012-12-17T15:18:46.947 に答える