有一个表
xxx(id,money)values(1,0.00)(2,1.00) (3,3.00)
怎么才能在一个sql里面查询出 money是0.00的数量 money不是0.00的数量 还有sum(money)
这个sql怎么写呀 谢谢

解决方案 »

  1.   

    试试
    select
      sum(if(`money`=0.00,1,0)) as `0的数量`,
      sum(if(`money`<>0.00,1,0)) as `非0的数量`,
      sum(`money`) as `合计金额`
    from
      xxx
      

  2.   

    select
      sum(if(`money`=0.00,1,0)) as `0的数量`,
      sum(if(`money>0.00,1,0)) as `非0的数量`,
      sum(`money`) as `合计金额`
    from TT
      
      

  3.   

    select
      sum(if(`money`=0.00,1,0)) as `0的数量`,
      sum(if(`money>0.00,1,0)) as `非0的数量`,
      sum(`money`) as `合计金额`
    from TT
      
    我运行了这个好像不会,”非0的数量“ 总是0
      

  4.   

    xxx(id,userid,money)values(1,34,0.00)(2,35,0.20) (3,34,3.00) (4,34,3.00)
    这是数据
      

  5.   

    用你的测试数据,直接用1楼的语句没有问题啊,(二楼的语句则完全是一楼一样,无需再测)
    mysql> select * from t_fafalong2988;
    +------+--------+-------+
    | id   | userid | money |
    +------+--------+-------+
    |    1 |     34 |  0.00 |
    |    2 |     35 |  0.20 |
    |    3 |     34 |  3.00 |
    |    4 |     34 |  3.00 |
    +------+--------+-------+
    4 rows in set (0.00 sec)mysql>
    mysql> select
        ->   sum(if(`money`=0.00,1,0)) as `0的数量`,
        ->   sum(if(`money`<>0.00,1,0)) as `非0的数量`,
        ->   sum(`money`) as `合计金额`
        -> from
        ->   t_fafalong2988;
    +---------+-----------+----------+
    | 0的数量 | 非0的数量 | 合计金额 |
    +---------+-----------+----------+
    |       1 |         3 |     6.20 |
    +---------+-----------+----------+
    1 row in set (0.08 sec)mysql>
      

  6.   

    select 
      sum(if(`money`=0.00,1,0)) as `0的数量`, 
      sum(if(`money`>0.00,1,0)) as `非0的数量`,sum(`money`) as `合计金额`
     from xxx
    测试通过