select sum(case when b.mingcheng='北京' then a.renshu else 0 end) '北京人数',sum(case when b.mingcheng='上海' then a.renshu else 0 end) '上海人数'
from Tbl_checkIn a,tbl_PiaoLei b
where a.piaolei=b.bianhao 
and CheckInTime>= '2012-10-01' 
and CheckInTime<= '2012-10-07' 
and CheckInNo='01' 
请教各位老师,这个是查询几天的合计人数,如何把查询出来的结果每天显示北京多少人,上海多少人呢?请问应该怎么写?谢谢!

解决方案 »

  1.   

    select CheckInTime,sum(case when b.mingcheng='北京' then a.renshu else 0 end) '北京人数',sum(case when b.mingcheng='上海' then a.renshu else 0 end) '上海人数'
     from Tbl_checkIn a,tbl_PiaoLei b
     where a.piaolei=b.bianhao 
     and CheckInTime>= '2012-10-01' 
     and CheckInTime<= '2012-10-07' 
     and CheckInNo='01' 
     GROUP BY CheckInTime
    没数据不好改,你试试
      

  2.   

    这样试试:SELECT b.mingcheng,
    COUNT(b.mingcheng) AS [人数]
    FROM Tbl_checkIn a INNER JOIN 
    tbl_PiaoLei b
    where a.piaolei=b.bianhao 
    and CheckInTime>= '2012-10-01' 
    and CheckInTime<= '2012-10-07' 
    and CheckInNo='01' 
    GROUP BY b.mingcheng
      

  3.   

    1楼DBA哥的方法已经可以满足了……
      

  4.   

    group by convert(date,日期)这个就可以了。去除了时分秒
      

  5.   

    sum是聚集函数  需要group by来进行分组统计不同的地区。