日期:2014-05-17  浏览次数:20728 次

难题:怎样每天抽取一条记录并分类统计
有两张表:
一、员工信息表:
   员工ID  姓名  班组
    1     张三   1
    2     李四   1
    3     王二   2
    ...

二、打卡记录表,存放员工打卡记录,共有4个不同类型的打卡机
   员工ID  打卡时间           打卡机号
     1    2012-2-1 8:00      1
     2    2012-2-1 9:00      1
     1    2012-2-1 9:00      1
     3    2012-2-1 8:00      2
     ...
这里有个难题,每人每天在某种型号的打卡机上打卡只能算一次,

要求将某段时间内的打卡记录统计成这样:
    班组    员工姓名    1号机打卡次数   2号机打卡次数  3号机打卡次数   4号机打卡次数
     1      张三           ..            ..           ..           ..
     1      李四           ..            ..           ..           ..
     2      王二           ..            ..           ..           ..
     ...

分不多不好意思,纠结了很久实在想不出来!

------解决方案--------------------
----------------------------
-- Author  :TravyLee(两情若是久长时,又岂在朝朝暮暮!)
-- Date    :2013-03-11 13:19:25
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64) 
-- Jul  9 2008 14:17:44 
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
--
----------------------------
--> 测试数据:[a]
if object_id('[a]') is not null 
drop table [a]
go 
create table [a]
(
[员工ID] int,
[姓名] varchar(4),
[班组] int
)
insert [a]
select 1,'张三',1 union all
select 2,'李四',1 union all
select 3,'王二',2
--> 测试数据:[b]
if object_id('[b]') is not null 
drop table [b]
go 
create table [b]
(
[员工ID] int,
[打卡时间] datetime,
[打卡机号] int
)
insert&nbs