SQL联接3表
我正在使用SQL2008R2 我从联接表中获得了重复值: 正如你们在图片上看到的,我得到了5530和5533的两倍值 my table FAWEB\u客户端,ID代码为\u客户端SQL联接3表,sql,sql-server-2008,join,left-join,Sql,Sql Server 2008,Join,Left Join,我正在使用SQL2008R2 我从联接表中获得了重复值: 正如你们在图片上看到的,我得到了5530和5533的两倍值 my table FAWEB\u客户端,ID代码为\u客户端 带有ID NOID和NO ORDRE的表格LETTREVOIT ID为NO\u ORDRE和NO\u CLIENT的表ORDRE 我不能使用: 错误消息:由于文本数据类型不可比较,无法将其选择为独立的我怀疑问题在于您的联接不正确。我怀疑您在字母上缺少联接条件。No\u Ordre: SELECT * FROM LET
带有ID NOID和NO ORDRE的表格LETTREVOIT
ID为NO\u ORDRE和NO\u CLIENT的表ORDRE
我不能使用:
错误消息:由于文本数据类型不可比较,无法将其选择为独立的我怀疑问题在于您的联接不正确。我怀疑您在
字母上缺少联接条件。No\u 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')
您可以删除一些可能变得多余的其他联接条件。为什么不能使用
DISTINCT
?文本数据类型不能选择为DISTINCT,因为它不可比较。您可以将查询作为文本复制到问题中吗?作为屏幕截图更容易阅读,修改答案也更容易。
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')