语句: --测试数据 IF not object_ID('#A') is null drop table #A Go CREATE TABLE #A ( 姓名 NVARCHAR(100) , 人员Id INT, 日期 NVARCHAR(100), 上下午 INT, 时间 NVARCHAR(100) ) Insert #A select 'aa',123,'20160101',0,'8:25' UNION ALL select 'aa',123,'20160101',1,'17:02' UNION ALL select 'b',2546,'20160101',0,'8:12' UNION ALL select 'b',2546,'20160101',1,'17:22' UNION ALL select 'c',308,'20160101',0,'8:20' UNION ALL select 'c',308,'20160101',1,'17:00' UNION ALL select 'aa',123,'20160102',0,'8:02' UNION ALL select 'aa',123,'20160102',1,'17:00' --测试数据结束--读取语句 SELECT 姓名 , 人员Id , 日期 , MAX(CASE WHEN 上下午 = 0 THEN 时间 ELSE NULL END) AS 上午 , MAX(CASE WHEN 上下午 = 1 THEN 时间 ELSE NULL END) AS 下午 FROM #A GROUP BY 姓名 , 人员Id , 日期--删除临时表 DROP TABLE #A结果:
--测试数据
IF not object_ID('#A') is null
drop table #A
Go
CREATE TABLE #A
(
姓名 NVARCHAR(100) ,
人员Id INT,
日期 NVARCHAR(100),
上下午 INT,
时间 NVARCHAR(100)
)
Insert #A
select 'aa',123,'20160101',0,'8:25' UNION ALL
select 'aa',123,'20160101',1,'17:02' UNION ALL
select 'b',2546,'20160101',0,'8:12' UNION ALL
select 'b',2546,'20160101',1,'17:22' UNION ALL
select 'c',308,'20160101',0,'8:20' UNION ALL
select 'c',308,'20160101',1,'17:00' UNION ALL
select 'aa',123,'20160102',0,'8:02' UNION ALL
select 'aa',123,'20160102',1,'17:00' --测试数据结束--读取语句
SELECT 姓名 ,
人员Id ,
日期 ,
MAX(CASE WHEN 上下午 = 0 THEN 时间
ELSE NULL
END) AS 上午 ,
MAX(CASE WHEN 上下午 = 1 THEN 时间
ELSE NULL
END) AS 下午
FROM #A
GROUP BY 姓名 ,
人员Id ,
日期--删除临时表
DROP TABLE #A结果: