wuronghong
wuronghong
采纳率66.7%
2019-05-10 08:04 阅读 347

求指点一个SQ语句,非常感谢!

图片说明

oracle 怎么用SQL语句实现上面的表展示,求各位朋友指点。注意:甲乙丙这个班在数据库不是固定的,有空能是别的名称。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    weixin_45069503 ZJHZ_叶 2019-05-15 10:55

    select* from table_test
    pivot(max(banci) for banzu in('甲' 甲,'乙' 乙,'丙' 丙))

    in 里面传进来你要的班组

    点赞 评论 复制链接分享
  • weixin_42080504 have_power 2019-05-10 09:16

    这是最简单的行列转换了,老兄。

    select workdate 日期,case when banzu = '甲' then banci end 甲,case when banzu = '乙' then banci end 乙,case when banzu = '丙' then banci end 丙 from table_name group by  workdate;
    
    点赞 评论 复制链接分享
  • qq_33380252 1进击的小白 2019-05-10 09:39
    select a.workdate as 日期 ,a.banci as 甲,b.banci as 乙,c.banci as 丙 from(select workdate ,banci from question2 where banzu='甲') as a INNER JOIN
    (select workdate ,banci from question2 where banzu='乙') b on a.workdate=b.workdate INNER JOIN
    (select workdate ,banci from question2 where banzu='丙') as c on a.workdate=c.workdate 
    

    上面是mysql的,而且是拼接出来的数据
    下面用的oracle的,参考一楼的答案修改的

    select workdate 日期,Max(case when banzu = '甲' then banci end) 甲,Max(case when banzu = '乙' then banci end )乙,Max(case when banzu = '丙' then banci end )丙 from question2 group by  workdate;
    

    我都是用mysql数据库测试的,如果答案没错的话希望采纳一楼

    点赞 评论 复制链接分享

相关推荐