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

求一存储过程,内容如下
表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


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)