Office中国论坛/Access中国论坛

标题: 求助有关不匹配查询 [打印本页]

作者: guankee    时间: 2008-8-11 23:08
标题: 求助有关不匹配查询
如附件需要查询SJMX表中有而GX表中没有的数据

要求SJMX.CstmID=GX.CstmID 且SJMX.ItenID有数据而GX.ItemID中没有的数据,且要求GX.ItemID不为空
[attach]31531[/attach]
不知道我说清楚了没有,希望大家帮一下,谢谢

[attach]31532[/attach]
作者: ui    时间: 2008-8-12 08:36
是否以ItemId为准
select * from sjmx where ItemId not in (select itemid from gx)
作者: guankee    时间: 2008-8-12 10:06
可能是我没表达清楚吧,我只是想得到SJMX表中编号为5和7的数据
如果按楼主朋友的SQL查询出来是没有数据的

我作如下SQL:
SELECT SJMX.*
FROM SJMX LEFT JOIN GX ON (SJMX.ItemID = GX.ItemID) AND (SJMX.CstmID = GX.CstmID)
WHERE (((GX.编号) Is Null));

却多出了GX表中Item_ID为空的CstemID对应的数据,
作者: guankee    时间: 2008-8-12 10:27
极待解决,望朋友们不吝出手,在线等
作者: hi-wzj    时间: 2008-8-12 13:49
"而GX.ItemID中没有的数据,且要求GX.ItemID不为空"
这话怎么说?没有对应的记录时GX.ItemID的值就为null了呀?
作者: guankee    时间: 2008-8-12 14:31
可能是我没表达清楚吧,我只是想得到SJMX表中编号为5和7的数据

我作如下SQL:
SELECT SJMX.*
FROM SJMX LEFT JOIN GX ON (SJMX.ItemID = GX.ItemID) AND (SJMX.CstmID = GX.CstmID)
WHERE (((GX.编号) Is Null));

希望以上SQL查出的数据中去掉像(GX表中Item_ID为空的CstemID=2对应的数据)这样的结果
作者: thththth    时间: 2008-8-13 21:21
不清楚呀
作者: ui    时间: 2008-8-13 23:31
select * from sjmx where ItemId not in (select itemid from gx) 应该是有数据的, 我测试过
作者: guankee    时间: 2008-8-19 13:00
原帖由 ui 于 2008-8-13 23:31 发表
select * from sjmx where ItemId not in (select itemid from gx) 应该是有数据的, 我测试过


我在ACCESS2003中无数据
作者: liwen    时间: 2008-8-19 15:21
可能是空值的原因,可以先去除空值后再查询

SELECT sjmx.ItemID, sjmx.CstmID, sjmx.qty
FROM sjmx
WHERE (((sjmx.ItemID) Not In (SELECT ItemID
FROM gx
WHERE ((Not (ItemID) Is Null)))));




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3