日期:2014-05-17  浏览次数:20709 次

多个选择菜单连动的查询
比如:
查询人口数量

  菜单1---菜单2----菜单3----菜单4
1) 中国----辽宁----大连----西岗区
2) 中国----辽宁----大连----不指定
3) 中国----北京----朝阳----不显示  
4) 中国----不指定



说明:
一共有4层菜单
菜单1--菜单4 都是连动的,如果某个菜单是最后层菜单,那么它的下个菜单就不会显示(如例子:3)
如果不是最后层,那么显示下个菜单,并且不选择[不指定]的话,会显示到菜单4为止(如例子:1)
除了菜单1之外,其余菜单都可以选择[不指定](如例子:2),需要查询大连所有区的人口数
例子4就是查询中国所有省,市,区的人口数

问题:
目前菜单连动已经实现,sql怎么写呢??

没有思路阿,麻烦大家帮帮忙,谢谢了



------解决方案--------------------
你有没有设计表结构的?
------解决方案--------------------
是Web应用还是桌面应用?
是用什么语言实现的?
再有不管用什么语言实现,得看你数据库表的具体定义。
------解决方案--------------------
用树的概念就可以了
------解决方案--------------------
1. 假设楼主的菜单联动已经实现,并且能够取得所选择的行政区域的ID = sAreaID。
2. 假设楼主的数据存储结构如下:
表A 区域关系表
区域ID(AREA_ID) 上级区域ID(PAREA_ID) 区域等级(AREA_LEVEL)

表B 区域人口表
区域ID(AREA_ID) 人员编号(Member_ID) ........

3. 对应的SQL:
SQL code

SELECT COUNT(1)
from
   (SELECT AREA_ID 
   FROM A 
   START WITH AREA_ID = :sAreaID 
   CONNECT BY PAREA_ID = PRIOR AREA_ID) X,
   B
WHERE X.AREA_ID = B.AREA_ID ;