有这样两个表COMPANYCID         Cname
1 公司A
2 公司B
3 公司C
4 公司D
5 公司E
count
id        cid        NUM
101101 1 10
101101 1 2
101102 1 15
1012 1 8
1015 1 16
1015 1 7
1015 1 8
10160101 1 9
10160102 1 5
10160102 1 19
101602 1 5
101101 2 5
101102 2 15
1012 2 8
1015 2 7
10160101 2 9
10160102 2 0
101602 2 3
.....有这样一个对应关系(id的前四位就能决定对应关系)
101101  a
101102 a
1012 a
1015 b
10160101 b
10160102 b
101602 b
.....但是这个对应关系现在不能进入数据库,需要根据上面两张表查询出如下的结果
Cname  a b
公司A       35           69 
公司B       38           19
这个查询怎么写效率比较高

解决方案 »

  1.   


    我也想做个表直接链接,方便又快捷  实际情况只能在SQL语句中写 id in('101101','101102','1012') 或者id like '1011%' or id like '1012%'这样的语句来判断
      

  2.   

    substr(id,1,4) in ('1011','1012','1015','1016')
    没弄懂要做什么,用上substr比直接in要简化些
      

  3.   

    ---这样?
    select
       a.cname,
       sum(case when id like '1011%' or id like '1012%' then 1 else 0 end) as a,
       sum(case when id like '1015%' or id like '1016%' then 1 else 0 end) as b
    from
       company a,[count] b
    where 
       a.cid=b.cid 
    group by
       a.cname
      

  4.   

    是不是想把两个表关联起来啊  ?用 select * from COMPANY a left join count b on a.cid=b.cid--用left join 或right join自己酌情而定。