select Dates as 日期,count(Dates) as 下单个数 from Taborders where datediff(day,Dates<=1000 group by Dates order by Dates desc
这个是计算下面dates的总数的,,怎样在一个sql语句中根据ispay的值分两类,当ispay=0时 计算count(dates),当ispay=1时计算count(dates)
最后成为三个字段:日期,ispay=0时的总数,ispay=1时的总数
---------------------------------
id |dates|ispay
1  |7-15 |0
2  |7-25 |1
3  |7-30 |1
4  |7-31 |0

解决方案 »

  1.   

    怎么写啊,,我说的是把两个字段都显示出来,一个是ispey=1的总和,一个是ispey=0的总和!
    能写一下sql语句吗
      

  2.   

    select Dates as 日期, case when ispay=0 then count(Dates) else 0 end as 下单个数0,
    case when ispay=1 then count(Dates) else 0 end as 下单个数1 
    from Taborders where ...
      

  3.   

    select Dates as 日期, sum(case when ispay=0 then count(Dates) else 0 end) as 下单个数0, 
    sum(case when ispay=1 then count(Dates) else 0 end) as 下单个数1 
    from Taborders where ...这个应该可以的
      

  4.   

    select Dates as 日期, sum(case when ispay=0 then 1 else 0) end as 下单个数0, 
    sum(case when ispay=1 then 1 else 0) end as 下单个数1 
    from Taborders where ...这个呢?
      

  5.   

    还是不行,,说Ispay字段有问题
      

  6.   

    select a.Dates,a.sum1,b.sum2 from 
    (select Dates,Count(dates) as sum1 from Taborders where datediff(day,Dates)<=1000 and ispay=0 group by Dates) a ,
    (select Dates,Count(dates) as sum2 from Taborders where datediff(day,Dates)<=1000 and ispay=1 group by Dates) b
      

  7.   

    例:
    数据表名为:C1数据以下:
    dates   ispay
    7-15   0
    7-25   1
    7-30   1
    7-31   0
    7-15   1
    7-15   1select dates,sum(零总量) as 零总量 ,sum(壹总量) as 壹总量 from
    ( Select dates ,count(1) as 零总量,0 as 壹总量 from c1 where ispay=0 group by dates
     UNION ALL
     Select dates ,0 as 零总量,count(1) as 壹总量 from c1 where ispay=1 group by dates) m
     group by dates{结果:
    dates   零总量  壹总量
    ---------------------
    7-15   1  2
    7-25   0  1
    7-30   0  1
    7-31   1  0
    }