首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server 2005 pivot 行列倒置请问

2012-12-15 
sql server 2005 pivot 行列倒置请教源表数据目标要求如下图所示是这样的:以下为生成测试语句的SQL语句,偶

sql server 2005 pivot 行列倒置请教
源表数据目标要求如下图所示是这样的:



以下为生成测试语句的SQL语句,偶先放在这儿了哈!



CREATE TABLE [dbo].[#CLOCK]
(
[dDate] [datetime] NOT NULL,
[TIME] [varchar](10) NOT NULL,
[ID] [varchar] (12) NOT NULL,
[Kind] [varchar] (10) NOT NULL


INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','07:52:08','A02','上班入1' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','12:01:20','A02','上班出1' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','13:24:26','A02','上班入2' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','17:32:56','A02','上班出2' )

DROP TABLE #CLOCK



路过的有空的朋友指导一下,PIOVT!!!
[最优解释]
CREATE TABLE [dbo].[#CLOCK]
(
[dDate] [datetime] NOT NULL,
[TIME] [varchar](10) NOT NULL,
[ID] [varchar] (12) NOT NULL,
[Kind] [varchar] (10) NOT NULL

 
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','07:52:08','A02','上班入1' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','12:01:20','A02','上班出1' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','13:24:26','A02','上班入2' )
INSERT #CLOCK( dDate,TIME,ID,Kind)VALUES  ( '2012-03-01','17:32:56','A02','上班出2' )
 
select
*
from 
#CLOCK
pivot(max([TIME]) for [Kind]in([上班入1],[上班出1],[上班入2],[上班出2]))b
/*
dDate                   ID           上班入1       上班出1       上班入2       上班出2
----------------------- ------------ ---------- ---------- ---------- ----------
2012-03-01 00:00:00.000 A02          07:52:08   12:01:20   13:24:26   17:32:56

(1 行受影响)


*/



[其他解释]
天,汗颜,这么快就写出来了....
我要好好好学习学习!!!
深深表示感谢!!

热点排行