请教一个简单的交叉表查询

piaozi2003 2006-07-11 02:12:01
有一个记录员工考勤的表

name date time
A 06-01 8:00
A 06-02 8:01
A 06-03 7:58
...............

想做成这样的形式

name 06-01 06-02 06-03 .........
A 8:00 8:01 7:58 ...........
B ..................................

请问如何写SQL语句?
...全文
191 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyxfly 2006-07-11
  • 打赏
  • 举报
回复
行转列~ 同意楼上的 :)
子陌红尘 2006-07-11
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s=''
select @s=@s+',['+date+']=max(case date when '''+date+''' then time end)' from 考勤表 group by date order by date
set @s='select name'+@s+' from 考勤表 group by name order by name'
exec(@s)
子陌红尘 2006-07-11
  • 打赏
  • 举报
回复
declare @s varchar(8000)
set @s=''
select @s=@s+',['+date+']=max(case date when '''+date+''' then time end)' from 考勤表 group by date order by date
set @s='select name'+@sql+' from 考勤表 group by name order by name'
exec(@s)
angel8601 2006-07-11
  • 打赏
  • 举报
回复
lZ按照楼上的去找,你的这个问题有案例
fcuandy 2006-07-11
  • 打赏
  • 举报
回复
先点右上角的 X

再到贴子列表页面,点搜索,关健字'行转列'

34,837

社区成员

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

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