Office中国论坛/Access中国论坛

标题: 【求助】如何实现对应任意值的查询? [打印本页]

作者: mikeyzq    时间: 2009-3-3 11:36
标题: 【求助】如何实现对应任意值的查询?
还是通过举例说明直观:

有两个表,一个是“地区表”:
省份   市   人口
广东 深圳  1000
广东 广州  1500
广东 珠海  500

另外一个是“人事表”:
姓名  主管省  主管市
HHH  广东   
XZH  广东    深圳
YYY  广东     广州

问题:想做一个查询,把这两个表联接起来,如下:
姓名  主管省  主管市  人口
HHH  广东     深圳    1000
HHH  广东     广州    1500
HHH  广东     珠海     500
XZH  广东     深圳    1000
YYY  广东      广州    1500

难点在于,HHH是主管整个广东的所有市,我想实现“人事表”中“主管市”放空即代表可以连接“地区表”中“广东”下面的所有市,请高手赐教!(附:用LIKE是不严谨的)
作者: ACMAIN_CHM    时间: 2009-3-3 14:14
select p.姓名,p.主管省, a.市 as 主管市,a.人口
from 人事表 p ,地区表 a
where p.主管省=a.省份
and (a.主管市 is null or a.主管市=b.市)



******************
*  一切皆有可能  *
******************

.
ACMAIN - Access论坛回贴准则(个人).
.

.
QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/BList/OtherDatabase .
http://www.accessbbs.cn/bbs/index.php .
http://www.accessoft.com/bbs/index.asp .
http://www.access-programmers.co.uk/forums .
http://www.office-cn.net .
.
http://www.office-cn.net/home/space.php?uid=141646 .
作者: mikeyzq    时间: 2009-3-3 15:07
大致看懂楼上的SQL语言,谢谢!过分的要求:不知能否直接在查询设计界面实现?
作者: mikeyzq    时间: 2009-3-6 15:25
没大侠指点,自己顶一个~
作者: 老鬼    时间: 2009-3-6 16:44
可以的,查询设计器中的代码如下,你拷进去就可以了:
SELECT 人事表.姓名, 人事表.主管省, 地区表.市, 地区表.人口
FROM 地区表 LEFT JOIN 人事表 ON 地区表.省份 = 人事表.主管省
WHERE (((人事表.主管市) Is Null Or (人事表.主管市)=[市]))
ORDER BY 人事表.姓名;




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