有这样一个表,字段如下:
name  kind   date其中name为varchar(100),kind 为int型,date为 date型。现要查询2005-05-12这一天kind为0,1,2,4的name的个数,显示结果如下:
name   count0 count1 count2  count4   date其中countX为kind为X 值的个数请问大家应怎样写sql语句?

解决方案 »

  1.   

    select name
    from 表
    where date=2005-05-12
        and  kind in(0,1,2,4);
      

  2.   

    select 
    name,
    sum(decode(kind,0,countnum,0)) count0,
    sum(decode(kind,1,countnum,0)) count1,
    sum(decode(kind,2,countnum,0)) count2,
    sum(decode(kind,4,countnum,0)) count4,
    date
    from (select name,count(kind),kind,date from 表 group by name,date,kind) a
    group by name,date
      

  3.   

    select 
    name,
    sum(decode(kind,0,countnum,0)) count0,
    sum(decode(kind,1,countnum,0)) count1,
    sum(decode(kind,2,countnum,0)) count2,
    sum(decode(kind,4,countnum,0)) count4,
    date
    from 表 
    date=to_date(‘2005-05-12‘,‘YYYY-MM-DD')
    group by name,date
      

  4.   

    SORRY上面的漏了WHEREselect 
    name,
    sum(decode(kind,0,countnum,0)) count0,
    sum(decode(kind,1,countnum,0)) count1,
    sum(decode(kind,2,countnum,0)) count2,
    sum(decode(kind,4,countnum,0)) count4,
    date
    from 表 
    WHERE date=to_date(‘2005-05-12‘,‘YYYY-MM-DD')
    group by name,date
      

  5.   

    但在mysql中这条语句是不能运行的,各位有没有更好的方法?
      

  6.   

    这里是oracle论坛阿!!!
    不是mysql论坛....