如何将查询结果纵向变成横向显示

jingmaomao 2013-08-15 03:33:05
表 温度监测 一小时一次

Date Time ID temperature
2013-01-01 00:00:00 1 20.7
2013-01-01 00:00:00 2 20.2
2013-01-01 00:01:00 1 19.9
2013-01-01 00:01:00 2 18.5
2013-01-01 00:02:00 1 21.2
2013-01-01 00:02:00 2 20
...
随着时间推移,数据越来越多

现在需要将查询结果这样显示

DATE ID temperatrue0 tempearture1 temperatrue2 ....
2013-01-01 1 20.7 19.9 21.2 ...
2013-01-01 2 20.2 18.5 20 ...
请问该如何写查询语句?
...全文
393 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
whxxr 2013-08-18
  • 打赏
  • 举报
回复
create table tb ( Name varchar(10) , Subject varchar(10) , Result int ) insert into tb(Name , Subject , Result) values('张三' , '语文' , 74) insert into tb(Name , Subject , Result) values('张三' , '数学' , 83) insert into tb(Name , Subject , Result) values('张三' , '物理' , 93) insert into tb(Name , Subject , Result) values('李四' , '语文' , 74) insert into tb(Name , Subject , Result) values('李四' , '数学' , 84) insert into tb(Name , Subject , Result) values('李四' , '物理' , 94) go --静态SQL,指subject只有语文、数学、物理这三门课程。 select name 姓名, max(case subject when '语文' then result else 0 end) 语文, max(case subject when '数学' then result else 0 end) 数学, max(case subject when '物理' then result else 0 end) 物理 from tb group by name /* 姓名 语文 数学 物理 ---------- ----------- ----------- ----------- 李四 74 84 94 张三 74 83 93 */ 以前高手帮俺解答的.正好看到!
jingmaomao 2013-08-16
  • 打赏
  • 举报
回复
能不能详细些
jingmaomao 2013-08-16
  • 打赏
  • 举报
回复
搜索了,但是 看到的例子都是显示的是不同字段的 例如: 姓名 学科 分数 张三 数学 90 张三 语文 80 张三 英语 90 李四 数学 98 李四 语文 88 李四 英语 83 要求这样显示 姓名 数学 语文 英语 张三 。。 。。 。。。 李四 。。。。。。。。 我这个是显示的都是Temperature 字段,是同一个字段,该如何写SQL 语句?
鐵蛋 2013-08-15
  • 打赏
  • 举报
回复
交叉表 case一下
我看见佛 2013-08-15
  • 打赏
  • 举报
回复
百度一下交叉表。
jingmaomao 2013-08-15
  • 打赏
  • 举报
回复
在线等,希望慷慨帮忙

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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