如何查询排班表记录集后行列互换??及关于交叉数据的疑问!!

cosby 2004-12-10 04:55:05
有一排班表如下:
班别分二种:A 上午班 B 下午班

日期 班别 Emp_ID 班次 假期
2004-11-1 A P001 早班 NULL
2004-11-1 P P001 早班 NULL
2004-11-2 A P001 NULL 事假
2004-11-2 P P001 早班 NULL
......
请问如何根据日期生成 一个月排班表,格式如下:
Year Month Emp_ID Day1_A Day1_P Day2_A Day2_P ......Day31_A Day31_P
2004 11 P001 早班 早班 事假 早班 ......
....

谢谢
...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker_tmj 2004-12-13
  • 打赏
  • 举报
回复
关注
cosby 2004-12-13
  • 打赏
  • 举报
回复
好,我试试看!
vinsonshen 2004-12-11
  • 打赏
  • 举报
回复
declare @str varchar(8000)
set @str=''
select @str=@str+'[Day'+cast(day(日期) as varchar)+'_'+[班别]+']= max(case when (day(日期)='''+cast(day(日期) as varchar)+''' and [班别]='''+[班别]+''' and [班次] is not null) then [班次] else [假期] end),' from 表名
set @str=left(@str,len(@str)-1)
exec ('select year(日期) as [year],month(日期) as [month],Emp_ID,'+@str+' from 表名 group by year(日期),month(日期),Emp_ID')

把上面的"表名"替换成你的表名就行了,楼主你拿你本地的数据试试看...:P
long111 2004-12-10
  • 打赏
  • 举报
回复
关注,同时也在努力...........
syilo 2004-12-10
  • 打赏
  • 举报
回复
UP
aohan 2004-12-10
  • 打赏
  • 举报
回复
先顶一下
calisen 2004-12-10
  • 打赏
  • 举报
回复
我遇过这个问题,我要下班了。下个星期一定答你。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧