读书人

联动菜单查询的新有关问题

发布时间: 2012-03-16 16:34:56 作者: rapoo

联动菜单查询的新问题
说明

查询人口数量

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



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



[color=#FF0000][/实现方法color]

SQL code
-- 3. 最后取得所有子行政区下属的人口的总数SELECT COUNT(1)from   -- 1. 查询所有sAreaID的下属行政区   (SELECT AREA_ID    FROM A    -- 以AREA_ID = :sAreaID做为递归的起始节点   START WITH AREA_ID = :sAreaID    -- 查询所有子行政区进行递归   CONNECT BY PAREA_ID = PRIOR AREA_ID) X,   -- 2. 将查询得到的行政区与人口表进行关联   BWHERE X.AREA_ID = B.AREA_ID ;


新问题

现在菜单可以复选,比如我想查询辽宁-大连和辽宁-沈阳,而不需要查询 辽宁-鞍山等城市,怎么办呢??

[解决办法]
在connect by处再加一个and条件,对大连和沈阳进行限制罢。
[解决办法]
本质上是删除层次查询的分支。
[解决办法]
这是深度搜索问题。

读书人网 >oracle

热点推荐