我要做个统计比如有 表A
字段
name Date 是否当值 字段(isduty)
张三 2009-10-12 1
李四 2009-10-12 1
张三 2009-10-25 1
.......
然后 我要选择 2009-10-10到2009-10-25号 所有人 星期一,星期二 ...星期天 值了多少····
我要做个统计比如有 表A
字段
name Date 是否当值 字段(isduty)
张三 2009-10-12 1
李四 2009-10-12 1
张三 2009-10-25 1
.......
然后 我要选择 2009-10-10到2009-10-25号 所有人 星期一,星期二 ...星期天 值了多少····
我来助你吧,如下即可
select 名字=name,星期日=count(case when datepart(dw,date)=1 then isduty end), 星期一=count(case when datepart(dw,date)=2 then isduty end), 星期二=count(case when datepart(dw,date)=3 then isduty end), 星期三=count(case when datepart(dw,date)=4 then isduty end), 星期四=count(case when datepart(dw,date)=5 then isduty end), 星期五=count(case when datepart(dw,date)=6 then isduty end), 星期六=count(case when datepart(dw,date)=7 then isduty end) from example1 group by name
select count(id) from a where datename(weekday,Date)='星期一(也是输入条件)' and date between '输入的日期一' and '输入的日期二' and name='这个人的姓名' and isduty=1
你只能多次查询
这一条是返回一个人"星期一"值过多少次你再传输入星期二、三、四等等
就是你最后要的结果不明白的话call我77000561
--author:【DBA】小七
set nocount on declare @t table (name char(10) ,Date datetime,isduty char(1)) INSERT INTO @t SELECT '张三',convert(datetime,'2009-10-12',120),'1' union all select '张三',convert(datetime,'2009-10-15',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-16',120),'1' UNIOn ALL select '张三',convert(datetime,'2009-10-18',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-23',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-25',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-28',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-11-2',120),'1' UNIOn ALL select '李四',convert(datetime,'2009-10-5',120),'1' SELECT * FROM @t
select name,count(isduty) '值日次数' from @t where date between '2009-10-12' and '2009-10-25' group by name
name Date isduty ---------- ------------------------------------------------------ ------ 张三 2009-10-12 00:00:00.000 1 张三 2009-10-15 00:00:00.000 1 李四 2009-10-16 00:00:00.000 1 张三 2009-10-18 00:00:00.000 1 李四 2009-10-23 00:00:00.000 1 李四 2009-10-25 00:00:00.000 1 李四 2009-10-28 00:00:00.000 1 李四 2009-11-02 00:00:00.000 1 李四 2009-10-05 00:00:00.000 1
name 值日次数 ---------- ----------- 李四 3 张三 3