这让我很困惑,我找不到原因:2010年 Access,我创建了2个连接查询。加入1:1大桌内连接1 在多个字段上选择子查询。其中一个领域是日期,但在 数字格式,即201701它返回100条记录。
加入2:相同的大表内连接相同的字段与表。该 唯一的区别是连接1是从第二个表创建的 从上面选择查询。它返回超过1000条记录。这是 结果我期待。
我尝试了不同的方法,发现日期字段正在引起 问题。删除该日期字段(RenewalDate)后,两个连接查询 返回相同的结果。
SQL
SELECT POLICY, Date, Val(LEGAL) AS LEGALN, REGION INTO New_Table FROM [TABLE_A] INNER JOIN [FILTER] ON ([TABLE_A].NETWORK = [FILTER].NETWORK) AND ([TABLE_A].LEGAL = [Filter].LEGAL) AND ([TABLE_A].REGION = [Filter].REGION) AND ([TABLE_A].AF = [Filter].AF) AND ([TABLE_A].ML = [Filter].ML) AND ([TABLE_A].ELGIND = [Filter].ELGIND) AND ([TABLE_A].OI = [Filter].OI) AND ([TABLE_A].Policy = [Filter].Policy) AND ([TABLE_A].SEGMENT = [Filter].SEGMENT) AND ([TABLE_A].PRODTYPE = [Filter].PRODTYPE) AND ([TABLE_A].RenewalDATE = [Filter].RenewalDATE) WHERE (([TABLE_A].ASFactor) Is Not Null) AND (([TABLE_A].ProjMed)<>9.9999) AND (([TABLE_A].Proj_R)<>9.9999)
当[过滤]是一个表格时,上面会产生正确的结果 当[Filter]是选择查询时,它将产生错误的结果。 Table_A明显大于[Filter]。基本上,他们有 加入的一堆字段将不会显示在查询结果中。只要 表a上的信息将显示出来。
有人能解释一下这是怎么回事吗?
答案 0 :(得分:0)
您的DOB字段可能没有完全相同的值,尽管它们似乎有。
尝试添加 Where 子句而不是连接:
Where DateValue(a.DOB) = DateValue(b.DOB)
或:
Where DateDiff("d", a.DOB, b.DOB) = 0