请教一段SQL语句 10CSDN]

发布时间:2017-6-25 8:15:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"请教一段SQL语句 10CSDN]",主要涉及到请教一段SQL语句 10CSDN]方面的内容,对于请教一段SQL语句 10CSDN]感兴趣的同学可以参考一下。

有user表,表的信息如下: --------------------------- name     type        time tyl      morning     8:00 zl       morning     7:00 tyl      afternoon   11:00 zl       afternoon   10:00 tyl      evening     14:00 zl       evening     13:00 ------------------------------ 编写一段SQL语句,结果如下: ------------------------------- name   time1    time2     time3   tyl    8:00     11:00     14:00 zl     7:00     10:00     13:00 -------------------------------

SELECT name, time1 = MAX(CASE type WHEN 'morning' THEN time END), time2 = MAX(CASE type WHEN 'afternoon' THEN time END), time3 = MAX(CASE type WHEN 'evening' THEN time END) FROM [user] GROUP BY name

-- sql 2005 SELECT name, time1 = morning, time2 = afternoon, time3 = evening FROM [user] PIVOT( MAX(time) FOR type IN([morning], [afternoon], [evening]) )P

select name ,      sum(when type = morning then time else 0 end) time1,      sum(when tye =  afternoon then time else 0 end ) time2,      sum(when type =  evening  then time else 0 end ) time3 from user group by name

顶~!

能力有限,读不懂?

个人认为这个代码结构比较清晰, SELECT name, time1 = MAX(CASE type WHEN 'morning' THEN time END), time2 = MAX(CASE type WHEN 'afternoon' THEN time END), time3 = MAX(CASE type WHEN 'evening' THEN time END) FROM [user] GROUP BY name 只是 time1 = MAX(CASE type WHEN 'morning' THEN time END), time2 = MAX(CASE type WHEN 'afternoon' THEN time END), time3 = MAX(CASE type WHEN 'evening' THEN time END) 这段不理解

看看交叉数据报表

上一篇:格式化日期类型 20CSDN]
下一篇:为什么不能启用SQL验证?? 20CSDN]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。