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

新人求助:地址与地域代码对应问题~~

agnes_q 发布于 2010-08-17 11:56, 808 次点击
有个比较菜鸟问题请大家帮忙~~
现在有两个表,
表1,两列,
<地域代码>       <省市区县>
  110000           北京市
  110100           市辖区
  110101           东城区
   ……             ……
表2,一列
<地址>
北京市东城区安定门
北京市经济开发区

想达到的结果是将两个表连接能得出地址对应的地域代码,如
<地址>             <地域代码>
北京市东城区         110101
北京市经济开发区     110100     *由于表1里没有对应的经济开发区的代码,所以只能以市辖区的为代码,即110100

我之前的代码是
select 地址.地址,地域代码.代码,地域代码.省市区县
from 地址 inner join
     地域代码 on 地址.地址 like ‘%’+ 地域代码.省市区县+‘%’

但是得出来的结果是一条地址对应很多个地域代码,例如,北京市东城区对应的有两条,110000和110101
而且,在表1里的省市区县有重复的名字,我本来想group by 以后提取最大的代码作为结果,但是有重复了就不能保证结果是对的了……
请各位大侠指教!!!谢谢!!!!
6 回复
#2
cnfarer2010-08-17 21:44
没有隶属关系怎么弄?比如还有个。。。的编码是110200。。。,这个时候你怎么确定北京市经济开发区代码?
#3
SQLCenter2010-08-18 00:57
呵呵
#4
agnes_q2010-08-20 11:21
以下是引用cnfarer在2010-8-17 21:44:30的发言:

没有隶属关系怎么弄?比如还有个。。。的编码是110200。。。,这个时候你怎么确定北京市经济开发区代码?
不是代码确定地址,是用地址对应代码呀~~
隶属关系我也想过,比如说一级划分的省市自治区代号是1,二级划分的区县代号是2
可是一直都没什么头绪不知道该怎么写……而且最关键的问题是,比如北京市经济开发区这样的地址,因为经济开发区没有对应的代码,所以要返回上一级的代码,想破脑袋都无法实现……
高人指点啊!!!!!
#5
agnes_q2010-08-23 16:15
以下是引用cnfarer在2010-8-17 21:44:30的发言:

没有隶属关系怎么弄?比如还有个。。。的编码是110200。。。,这个时候你怎么确定北京市经济开发区代码?
我把原始表里加了等级一列,现在表结构是这样的
代码 省市区县 等级
110000 北京市 1
110100 市辖区 5
110101 东城区 3
610000 陕西省 1
610100 西安市 2
610101 市辖区 5  

例如:
北京市经济开发区 要返回上一级110100
陕西省西安市小寨东路 要返回上一级610101

像这种没有对应地区的都是5等级的,想达到的效果就是如果代码的最后一位是0的,除了地址 LIKe %东莞市%和%中山市%的,都要返回上一级的代码,也就是<等级>是5的代码,我是很菜的新人不太会写啊~~版主帮助一下呗~~非常感谢~~
#6
dearwolf41282010-08-23 17:50
select 表2.地址,表1.地域代码 from 表1,表2 where 表2.地域代码 like 表1.省市区县%   and 表2.地域代码 like %表1.省市区县%
#7
agnes_q2010-08-24 12:33
以下是引用dearwolf4128在2010-8-23 17:50:31的发言:

select 表2.地址,表1.地域代码 from 表1,表2 where 表2.地域代码 like 表1.省市区县%   and 表2.地域代码 like %表1.省市区县%
1