注册 登录
编程论坛 SQL Server论坛

数据排查,碰到疑问,求高手帮助

xlfljc3 发布于 2011-03-18 14:16, 640 次点击
cldn是有7W条材料名称的表,clhz是有5W条名称的表;
cldn表下面包含的信息包括,材料货号,材料名称,以及操作日期;
clhz下面包含的信息只有材料货号,材料名称;
两张表中的材料名称都是唯一的,不重复,且5W条的那张表其名称全部包含在7W条的那张表里,
我想找出,其余未包含的那两万条,用了以下语句,
select cldn.材料名称,cldn.材料货号 from cldn
where cldn.材料货号 NOT IN
(select clhz.材料货号 from clhz)
但是查出来的结果却又3W多条,请问是我语句不对,还是别的原因,还请高手指教。
6 回复
#2
红色警戒2011-03-19 12:05
看清楚了是货号还是名称!
#3
xlfljc32011-03-21 09:02
回复 2楼 红色警戒
货号也是唯一的,货号是名称的数字代码,也就是等于名称
#4
png2011-03-22 01:46
语句没错误.

你肯定clhz的5W一定都在cldn里?

试试-
select count(*) from clhz
where 材料货号 NOT IN (select 材料货号 from cldn)

#5
xlfljc32011-03-22 11:36
回复 4楼 png
肯定,执行该结果是0
#6
png2011-03-22 23:59
如果按你所说...货号也是唯一的...

你的查询语句结果应该为 m - n 条:

其中 m = select count(*) from cldn
     n = select count(*) from clhz



 
#7
xlfljc32011-03-28 09:29
请问问题究竟是出在哪呢,想破脑袋额。。。
1