select zzh as zzzh , count(a.zzzh) as zzh1, count(b.zzzh) as zzh2 from 表名称 a, 表名称 b group by a.zzzh,b.zzzh having a.zzzh like "All%" or a.zzzh like "Bll%" or a.zzzh <> b.zzzh ;没测试,不知行不行,呵呵。

解决方案 »

  1.   

    select 
        substr(a.zzzh,1,3),
        count(*) 
    from 
        (select distinct zzzh from 表名) a   --这里是将相同值去掉后的数据集合作为表.
                                             --如果不要则把distinct 去掉
    group by
        substr(a.zzzh,1,3)
      

  2.   

    select substr(zzzh,1,3) zzh, 
    count(substr(zzzh,4,6)) zzh1,
    count(distinct substr(zzzh,4,6)) zzh2
    from tbl group by substr(zzzh,1,3)
      

  3.   

    select substr(zzzh,1,3) zzh, 
    count(substr(zzzh,4,3)) zzh1,
    count(distinct substr(zzzh,4,3)) zzh2
    from tbl group by substr(zzzh,1,3)
      

  4.   

    我试了一下,dinya2003(OK)兄的SQL非常爽,简洁易懂。非常感谢dinya2003(OK)兄及楼主。
      

  5.   

    谢谢大家:
       一楼的理解错了我的意思。我只有一个表;
       dinya2003(OK)兄,你写的语句只能反映出去掉重复值的各,即:
       zzh   count(*)
       A11    3
       B11    3
       我写的是:
       select substr(t1.zzzh,1,3),count(t1.zzzh) zzh1,count(t2.zzzh2) zzh2 from
    zzzh t1,(select distinct zzzh as zzzh2 from zzzh) t2
    group by substr(t1.zzzh,1,3);(请问这条语句有什么错误吗?但不能达到我的效果)
       我把它创建了两表再查询可以成功,但太麻烦了点。
       请问创建临时表的语法怎样写?
      

  6.   

    select 
        zzzh zzzh,
        sum(count1) zzh1,
        sum(count2) zzh2
     from
    ----*************下面是两个不同条件的联合*******************---- 
    (
    select    --这里是不重复的情况 
        substr(a.zzzh,1,3) zzzh,
        0                  count1,    
        count(*)           count2
    from 
        (select distinct zzzh from 表名) a   
    group by
        substr(a.zzzh,1,3)unionselect    --这里是重复的情况
        substr(b.zzzh,1,3) zzzh,
        count(*)           count1, 
        0                  count2
    from 
         表名 b   
    group by
        substr(b.zzzh,1,3)
    )
    --*********************上面是将两个不同条件的联合*****************-----
    group by 
        zzzh  --按联合后的的列分组计算总和实现方法要根据你的需求,有的时候可以有多种方法,但是可以选择一种最好的,插入两个表执行也可以,但是要建表,执行插入和提交动作,总会慢一点.也比较麻烦/
      

  7.   

    谢谢各位:
        我参照welyngj(平平淡淡)的方法已解决了。
        具休方法语句是:
    select substr(zzzh,1,3) zzh, 
    count(zzzh) zzh1,
    count(distinct zzzh) zzh2
    from tbl group by substr(zzzh,1,3);
         我想查询一个序列列(1,2,3)中不存在的序号。
    如:
    1,3,4,5,6,8,9,10,11
     我要查找2,7等。