本帖最后由 hxhyxd 于 2013-02-27 23:25:05 编辑

解决方案 »

  1.   

    这个查询结果比较奇怪,“中国”和“北京”的列名不一样啊。。再做子查询什么的
    如果显示为下面格式就简单多了:
    中国 北京   1 2 3
    中国 四川   4 3 1
    美国 西部   2 2 2
    英国 伦敦   1 1 1SELECT  gn  ,  name, o1, o2, o3 FROM 表1 JOIN 表2
    on
    表1.id = 表2.id
    where 表2.o1 != 0
    and 表2.o2 != 0
    and 表2.o3 != 0
      

  2.   

     
    SELECT min(id),gn,'','','','' from tta a where exists(select 1 from ttb where a.mid=mid)
    group by gn
    union all
    SELECT a.id,a.gn,a.name,b.o1,b.o2,b.o3 from tta a inner join ttb b on a.mid=b.mid
    where o1+o2+o3<>0
    order by 1 ,2,3