有一张表Course表中有字段 C_Name(姓名),C_Sex(性别),C_Time(时间),InsertPeople(录入员),C_area(地区ID),C_state(状态)我想要查询出 属于某一个时间段中某一个录入员(即字段InsertPeople)信息的总数,同时查询出C_state的值等于1(有效),等于2(无效)时的总数,还有地区ID等于1,以及不等于1时的总数 也就是结果最后显示统计数 录入员姓名 时间 地区等于1 地区不等于1 有效总数 无效总数 合计 张三 2011-10至2011-11 5 10 100 22 137 李四 2011-10至2011-11 8 12 88 22 130 王五 2011-10至2011-11 8 12 88 22 130 求高手啊
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
select InsertPeople as '录入员姓名',convert(Varchar(7),C_Time,120) as '时间',sum(case C_area when 1 then 1 else 0 end) as '地区等于1' ,sum (case C_area when 1 then 0 else 1 end)as ' 地区不等于1',count(InsertPeople) as '有效总数', (select count(*) from Course where C_state='2' )as' 无效总数' from Course where C_state='1' group by InsertPeople
繁华开满天机
TA贡献1816条经验 获得超4个赞
select a.C_name,'2010-10-1'+'至'+'2010-10-6' as CTime,C_stateF,C_stateT,C_areaF,C_areaT,(C_stateF+C_stateT+C_areaF+C_areaT)as Total from Course a left join (select C_name,Count(C_state) C_stateF from Course where C_state=0 group by C_state,C_name) b on a.C_name=b.C_name left join (select C_name,Count(C_state) C_stateT from Course where C_state=1 group by C_state,C_name) c on a.C_name=c.C_name left join (select C_name,Count(C_area) C_areaF from Course where C_area=1 group by C_name,C_area) e on a.C_name=e.C_name left join (select C_name,Count(C_area) C_areaT from Course where C_area!=1 group by C_name,C_area) d on a.C_name=d.C_name where C_Time BETWEEN '2010-10-1' and '2010-10-6' group by a.C_name,C_stateF,C_stateT,C_areaF,C_areaT
- 2 回答
- 0 关注
- 329 浏览
添加回答
举报
0/150
提交
取消