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

一个较为复杂的存储过程,该怎么处理

2013-06-19 
一个较为复杂的存储过程我这里用的是MFC和Sql server,现在有个上班排班数据库表,表中有列名如下(姓名,账号

一个较为复杂的存储过程
我这里用的是MFC和Sql server,现在有个上班排班数据库表,表中有列名如下(姓名,账号,票厅号,开始时间,结束时间,班次)如下
namesell_IDkioskIDclassestime_fromtime_to
柳1001一号票厅上午2013/4/52013/4/15
军1002二号票厅下午2013/4/52013/4/15
贞1003一号票厅下午2013/4/32013/4/13
霞1004六号票厅上午2013/4/122013/4/20


现在想在数据库中用视图或者存储过程,把他存成如下格式
时间  班次一号票厅二号票厅三号票厅四号票厅五号票厅六号票厅
2013/4/5  上午柳凤茜伲霞
  下午贞军香华
2013/4/6  上午柳凤茜伲霞
  下午贞军香华
应该怎么做好呢,最好给出具体方法,在线求助 数据库 SQL?Server 存储 视图
[解决办法]

if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (name nvarchar(2),sell_ID int,kioskID nvarchar(8),classes nvarchar(4),time_from datetime,time_to datetime)
insert into [TB]
select '柳',1001,'一号票厅','上午','2013/4/5','2013/4/15' union all
select '军',1002,'二号票厅','下午','2013/4/5','2013/4/15' union all
select '贞',1003,'一号票厅','下午','2013/4/3','2013/4/13' union all
select '霞',1004,'六号票厅','上午','2013/4/12','2013/4/20'

select * from [TB]

;WITH tt
AS(
SELECT classes,time_from,time_to,
MAX(CASE WHEN kioskid='一号票厅' THEN NAME ELSE '' END ) AS '一号票厅',
MAX(CASE WHEN kioskid='二号票厅' THEN NAME ELSE '' END ) AS '二号票厅',
MAX(CASE WHEN kioskid='三号票厅' THEN NAME ELSE '' END ) AS '三号票厅',
MAX(CASE WHEN kioskid='四号票厅' THEN NAME ELSE '' END ) AS '四号票厅',
MAX(CASE WHEN kioskid='五号票厅' THEN NAME ELSE '' END ) AS '五号票厅',
MAX(CASE WHEN kioskid='六号票厅' THEN NAME ELSE '' END ) AS '六号票厅'
FROM dbo.TB
GROUP BY classes,time_from,time_to)


SELECT  DATEADD(dd, m.number, tt.time_from) AS 日期 ,
        tt.classes ,
        tt.一号票厅 ,
        tt.二号票厅 ,
        tt.三号票厅 ,
        tt.四号票厅 ,
        tt.五号票厅 ,
        tt.六号票厅
FROM    tt
        LEFT JOIN master..spt_values M ON DATEADD(dd, m.number, tt.time_from) BETWEEN tt.time_from
                                                              AND
                                                              tt.time_to
                                          AND M.TYPE = 'P'


ORDER BY DATEADD(dd, m.number, tt.time_from) ,
        tt.classes ASC

/*
日期classes一号票厅二号票厅三号票厅四号票厅五号票厅六号票厅
2013-04-03 00:00:00.000下午贞
2013-04-04 00:00:00.000下午贞
2013-04-05 00:00:00.000上午柳
2013-04-05 00:00:00.000下午贞
2013-04-05 00:00:00.000下午军
2013-04-06 00:00:00.000上午柳
2013-04-06 00:00:00.000下午军
2013-04-06 00:00:00.000下午贞
2013-04-07 00:00:00.000上午柳
2013-04-07 00:00:00.000下午贞
2013-04-07 00:00:00.000下午军
2013-04-08 00:00:00.000上午柳
2013-04-08 00:00:00.000下午军
2013-04-08 00:00:00.000下午贞
2013-04-09 00:00:00.000上午柳
2013-04-09 00:00:00.000下午贞
2013-04-09 00:00:00.000下午军
2013-04-10 00:00:00.000上午柳
2013-04-10 00:00:00.000下午军
2013-04-10 00:00:00.000下午贞
2013-04-11 00:00:00.000上午柳
2013-04-11 00:00:00.000下午贞
2013-04-11 00:00:00.000下午军
2013-04-12 00:00:00.000上午柳
2013-04-12 00:00:00.000上午霞
2013-04-12 00:00:00.000下午军
2013-04-12 00:00:00.000下午贞
2013-04-13 00:00:00.000上午霞
2013-04-13 00:00:00.000上午柳
2013-04-13 00:00:00.000下午贞
2013-04-13 00:00:00.000下午军
2013-04-14 00:00:00.000上午柳
2013-04-14 00:00:00.000上午霞
2013-04-14 00:00:00.000下午军
2013-04-15 00:00:00.000上午霞
2013-04-15 00:00:00.000上午柳
2013-04-15 00:00:00.000下午军
2013-04-16 00:00:00.000上午霞
2013-04-17 00:00:00.000上午霞
2013-04-18 00:00:00.000上午霞
2013-04-19 00:00:00.000上午霞
2013-04-20 00:00:00.000上午霞*/

热点排行
Bad Request.