Sql server 在sql上搜索其他表中不存在的项
我有这样的脚本:Sql server 在sql上搜索其他表中不存在的项,sql-server,join,Sql Server,Join,我有这样的脚本: SELECT NO_ORDRE ,[CODE_CLIENT] ,[DATE_CLOTUR_REEL] FROM [ORDRE] where CODE_CLIENT = '50929' AND DATEPART(YEAR,DATE_CLOTUR)=2015 AND DATEPART(MONTH,DATE_CLOTUR)=11 -- order by NO_ORDRE,CODE_CLIENT E
SELECT NO_ORDRE
,[CODE_CLIENT]
,[DATE_CLOTUR_REEL]
FROM [ORDRE]
where CODE_CLIENT = '50929'
AND DATEPART(YEAR,DATE_CLOTUR)=2015 AND DATEPART(MONTH,DATE_CLOTUR)=11
-- order by NO_ORDRE,CODE_CLIENT
EXCEPT
SELECT [NO_ORDRE]
,[CODE_CLIENT]
,DATE_CLOTUR_REEL
FROM [LETTRE_VOIT]
where CODE_CLIENT = '50929'
AND DATEPART(YEAR,DATE_CLOTURE)=2015 AND DATEPART(MONTH,DATE_CLOTURE)=11
这很好,但是当我将code\u客户机='50929'
更改为code\u客户机,比如'50%'
它不符合我的预期…它选择了所有项目
有什么想法吗?试试这个:
SELECT O.NO_ORDRE, O.[CODE_CLIENT], O.[DATE_CLOTUR_REEL]
FROM [ORDRE] O
LEFT JOIN [LETTRE_VOIT] L
ON O.CODE_CLIENT = L.CODE_CLIENT
AND DATEPART(YEAR,O.DATE_CLOTUR) = DATEPART(YEAR,L.DATE_CLOTUR)
AND DATEPART(MONTH,O.DATE_CLOTUR) = DATEPART(MONTH,L.DATE_CLOTUR)
WHERE O.CODE_CLIENT = '50929'
AND DATEPART(YEAR,O.DATE_CLOTUR)=2015 AND DATEPART(MONTH,O.DATE_CLOTUR)=11
AND L.CODE_CLIENT IS NULL
不起作用?你是怎么猜到的;不行?