表l_pxzx_kq
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[l_pxzx_kq]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[l_pxzx_kq]
GO
CREATE TABLE [dbo].[l_pxzx_kq] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[ssdm] [varchar] (4) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ssmc] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[sfz] [varchar] (18) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ryxm] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[xmdm] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[xmmc] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[s_kq] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[x_kq] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[scrq] [datetime] NOT NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[l_pxzx_kq] ADD
CONSTRAINT [DF_l_pxzx_kq_ssdm] DEFAULT ('') FOR [ssdm],
CONSTRAINT [DF_l_pxzx_kq_sfz] DEFAULT ('') FOR [sfz],
CONSTRAINT [DF_l_pxzx_kq_xmdm] DEFAULT ('') FOR [xmdm],
CONSTRAINT [DF_l_pxzx_kq_scrq] DEFAULT (getdate()) FOR [scrq],
CONSTRAINT [PK_l_pxzx_kq] PRIMARY KEY CLUSTERED
(
[id]
) ON [PRIMARY]
GO
想实现列变行,就是把scrq里的值变成行,然后他的值是s_kq,x_kq,scrq的值是动态的
如下
原表
ssdm ssmc sfz ryxm xmdm xmmc s_kq x_kq scrq
02 A班 20209 张三 2013015 电子小组 全勤 全勤 2013/1/11
02 A班 20209 张三 2013015 电子小组 迟到 旷课 2013/1/12
02 A班 20209 张三 2013015 电子小组 旷课 迟到 2013/1/13
02 A班 20209 张三 2013015 电子小组 全勤 全勤 2013/1/14
02 A班 20209 张三 2013015 电子小组 全勤 全勤 2013/1/1
根据给的参数xmdm,找出属于xmdm下的记录,实现结果如下
ssdm ssmc sfz ryxm 2013-1-1 2013-1-11 2013-1-12 2013-1-13 2013-1-14
02 A班 20209 张三 全勤 全勤 全勤 全勤 迟到 旷课 旷课 迟到 全勤 全勤
日期是动态的,不是固定的几天。
在线等
------解决方案--------------------
参考http://bbs.csdn.net/topics/240002706
------解决方案--------------------

你自己关键字搜索看看吧
------解决方案--------------------
s_kq+x_kq 字符串连接 都是字符型的吧?
------解决方案--------------------
----------------------------
-- Author :DBA_Huangzj(發糞塗牆)
-- Date :2013-01-16 16:01:58
-- Version:
-- Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)