日期的行列转换
来源:互联网 发布:js ide工具 编辑:程序博客网 时间:2024/05/16 13:42
原表如下:
姓名 班次 日期
小王 白班 2010-05-26
小王 白班 2010-05-27
小王 白班 2010-05-28
小王 白班 2010-05-29
小王 白班 2010-05-30
小王 白班 2010-05-31
小王 白班 2010-06-01
小王 白班 2010-06-02
小王 白班 2010-06-03
需要实现内容:
姓名 起始日期 星期一 星期二 星期三 星期四 星期五 星期六 星期日
小王 2010-05-24 白班 白班 白班 白班 白班
小王 2010-05-31 白班 白班 白班 白班 白班 。。。
--> 测试数据: [tb]
if object_id('[tb]') is not null drop table [tb]
create table [tb] (姓名 varchar(4),班次 varchar(4),日期 datetime)
insert into [tb]
select '小王','白班','2010-05-26' union all
select '小王','白班','2010-05-27' union all
select '小王','白班','2010-05-28' union all
select '小王','白班','2010-05-29' union all
select '小王','白班','2010-05-30' union all
select '小王','白班','2010-05-31' union all
select '小王','白班','2010-06-01' union all
select '小王','白班','2010-06-02' union all
select '小王','白班','2010-06-03'
go
set datefirst 1
select 姓名,起始日期,星期一=max(case datename(dw,日期) when '星期一' then 班次 else null end),
星期二=max(case datename(dw,日期) when '星期二' then 班次 else null end),
星期三=max(case datename(dw,日期) when '星期三' then 班次 else null end),
星期四=max(case datename(dw,日期) when '星期四' then 班次 else null end),
星期五=max(case datename(dw,日期) when '星期五' then 班次 else null end),
星期六=max(case datename(dw,日期) when '星期六' then 班次 else null end),
星期七=max(case datename(dw,日期) when '星期七' then 班次 else null end)
from (select *,起始日期=dateadd(dd,1-datepart(dw,日期),日期) from tb)a
group by 姓名,起始日期
--结果:
姓名 起始日期 星期一 星期二 星期三 星期四 星期五 星期六 星期七
---- ----------------------- ---- ---- ---- ---- ---- ---- ----
小王 2010-05-24 00:00:00.000 NULL NULL 白班 白班 白班 白班 NULL
小王 2010-05-31 00:00:00.000 白班 白班 白班 白班 NULL NULL NULL
- 日期的行列转换
- SQL的行列转换
- 2005的行列转换
- 简单的行列转换
- 行列转换的SQL
- 行列转换的SQL
- DataTable的行列转换
- 有意思的行列转换
- DataTable的行列转换
- Oracle的行列转换
- 简单的行列转换
- MySQL的行列转换
- 数据库的行列转换
- Oracle的行列转换
- mysql的行列转换
- Oracle的行列转换
- posgre的行列转换
- 数据库记录的行列转换
- 文件和文件夹的操作
- GridView 滚动条
- 梦
- SQL Server 2005中处理表分区问题
- oracle 简单的字符串拆分函数
- 日期的行列转换
- MyEclipse 6.5 自动补全修改快捷键
- typedef的四个用途和两个陷阱
- 本文实现了一个基于servlet技术的简单的csv文件导出的程序实例。
- 各国网络标识码表(MCC MNC表)
- 为了保护您的计算机安全,IE已经限制此文件显示可能访问您的计算机的活动内容
- CSV文件的生成与分析
- Bugzilla缺陷跟踪软件的使用
- excele导入实现