Office中国论坛/Access中国论坛

标题: 如何进行两表交叉模糊查询 [打印本页]

作者: alex00    时间: 2008-4-16 13:07
标题: 如何进行两表交叉模糊查询
现有两表,
销量表
类型
型号销量
产品1-12A11
产品2-65422
产品1-45B33
产品2-78G44
规格表
型号
产品1-1234060
产品2-6546060
产品1-4595255
产品2-7845455
由于两表来源不同的数据库,型号命名接近,但不一致,
型号(销量表)型号(规格表)
产品1-12A产品1-123
产品2-654产品2-654
产品1-45B产品1-459
产品2-78G产品2-784
如何使用交叉查询,变成下表
类型
型号销量
产品1-12A114060
产品2-654226060
产品1-45B335255
产品2-78G445455

作者: zwtiger    时间: 2008-4-16 14:15
两个表现在是在同一个数据库里吗?有没有建立关系?最好把实例传上来看看
作者: bonesoup    时间: 2008-4-16 14:36
你要模糊查询,可能得出的结果也是模糊的。
除非你可以接受模糊的结果。
所以,最好是做一张类似以下的对照表。
型号(销量表) 型号(规格表)
产品1-12A     产品1-123
产品2-654     产品2-654
产品1-45B    产品1-459
产品2-78G    产品2-784
作者: alex00    时间: 2008-4-16 15:36
这是举例,真正的数据有万条,太多数据,不可能一对一的做参照表。
作者: alex00    时间: 2008-4-16 15:38
标题: 回复 3# 的帖子
两个型号命名接近,但不一致,但都是指同一个物体
作者: bonesoup    时间: 2008-4-16 15:47
必须得在两张表中搭座桥,两者之间才可以关联。
也就是说得找两张表型号字段的关联。
是否前六个字符相同即视为同一产品?

型号(销量表) 型号(规格表)
产品1-12A 产品1-123
产品2-654 产品2-654
产品1-45B 产品1-459
产品2-78G 产品2-784
作者: alex00    时间: 2008-4-16 16:57
标题: 回复 5# 的帖子
是的,可以这理解
作者: andymark    时间: 2008-4-16 18:48
2表必须存在对应关系,  基本上是表没设计好
作者: bonesoup    时间: 2008-4-17 13:39
原帖由 alex00 于 2008-4-16 16:57 发表
是的,可以这理解


SELECT 销量表.类型, 销量表.型号, 销量表.销量, 规格表.深, 规格表.宽
FROM 规格表 INNER JOIN 销量表 ON left(规格表.型号,6) = left(销量表.型号,6);
作者: alex00    时间: 2008-4-21 12:05
标题: 回复 9# 的帖子
谢谢
其实我的思路是这样,如果 [规格表.型号] 包含 left(销量表.型号,6) 的字符,那么他们是相关的。
那么 left(规格表.型号,6) = left(销量表.型号,6) 这个条件应如何改呢




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