像这种语句
select a.* from (select ab.*,(SELECT count(1) FROM (SELECT ehr_id FROM Maternal_Health t1 WHERE enable_flag=1 AND to_number(to_char(visit_date,'yyyy'))=2013AND 
 EXISTS(SELECT 1 FROM info e,ws_region t WHERE e.ehr_id=t1.ehr_id AND e.region_id=t.parent_id AND e.town_id=t.region_id AND visit_level<3) GROUP BY ehr_id 
 HAVING count(1)>=5) c) maternal_num, FROM ws_region t
)ab )a
这里提示,找不到t.region_id我该怎么解决。我自己尝试了下把 ws_region t这句话加到from info,ws_region 后面,这样是解决了。可是数据不对,为什么会这样?小弟菜鸟一只!还望大神们!教教,小弟分不多,还望大神别嫌分少

解决方案 »

  1.   

    这是什么需求需要这样写SQL语句?不建议。
      

  2.   

    呵呵,思想太复杂,先把思想简化一下,语句就简单了。最外边一层基本没用,完全可以去掉。倒数第二行 from 前面的逗号有问题吧?去掉。
      

  3.   

    额,刚刚入门不久,比较菜,弱弱的问问,写SQL有什么号的方法么?
      

  4.   

    SELECT 1 FROM info e,ws_region t WHERE e.ehr_id=t1.ehr_id AND e.region_id=t.parent_id AND e.town_id=t.region_id AND visit_level<3中的e.region_id=t.parent_id是主外键关系吗最好把表结构和你要实现的功能说明下...