zoukankan      html  css  js  c++  java
  • SQL的行转列问题

    create table abc 
    (
    student 
    varchar(50),
    class 
    varchar(50),
    grade 
    int
    )
    INSERT INTO abc
    SELECT '孙小美','数学',10 UNION ALL
    SELECT '孙小美','语文',20 UNION ALL
    SELECT '孙小美','英语',30 UNION ALL
    SELECT '阿土伯','数学',40 UNION ALL
    SELECT '阿土伯','语文',50 UNION ALL
    SELECT '阿土伯','英语',60 UNION ALL
    SELECT '小叮铛','数学',70 UNION ALL
    SELECT '小叮铛','语文',80 UNION ALL
    SELECT '小叮铛','英语',90

    SELECT 
        student,
        
    MAX(数学) AS 数学,
        
    MAX(语文) AS 语文,
        
    MAX(英语) AS 英语
    FROM
        (
        
    SELECT 
            student,
            
    CASE class WHEN '数学' THEN grade END AS 数学,
            
    CASE class WHEN '语文' THEN grade END AS 语文,
            
    CASE class WHEN '英语' THEN grade END AS 英语
        
    FROM abc
        ) 
    AS a
    GROUP BY student
    /*
     代码  进货单位   药类     让利金额
       01     广州      西药       10
       01     广州      中成药      9
       01     广州      医材        8
       01     广州      中草药      7
       02     西安      西药        2
       02     西安      医材        6
       03     深圳      西药        5
    */

    select 代码,进货单位,
    "西药"=(select 让利金额 from abc where 药类 ='西药' and 代码=t1.代码), 
    "中成药"=(select 让利金额 from abc where 药类 ='中成药' and 代码=t1.代码), 
    "医材 "=(select 让利金额 from abc where 药类 ='医材' and 代码=t1.代码), 
    "中草药"=(select 让利金额 from abc where 药类 ='中草药' and 代码=t1.代码),
    "合计"=(select sum(药类) from abc where  代码=t1.代码 group by 代码)
     from  abc  t1 group by 代码,进货单位
    /*
         代码  进货单位   西药   中成药   医材   中草药    合计  
         01      广州         10       9          8        7            34
         02      西安          2        0          6        0            8
    */

  • 相关阅读:
    JavaScript 语句
    JavaScript语法
    JavaScript输出
    JavaScript用法
    JavaScript简介
    利用IDEA构建springboot应用-构建好SpringBoot + SSM 框架
    SP2010开发和VS2010专家"食谱"--第二章节--工作流(4)--创建自定义任务表单
    SP2010开发和VS2010专家"食谱"--第二章节--工作流(3)--创建工作流里的任务
    SP2010开发和VS2010专家"食谱"--第二章节--工作流(2)--部署工作流的InfoPath表单
    SP2010开发和VS2010专家"食谱"--第二章节--工作流(1)--创建带有初始表单的网站工作流
  • 原文地址:https://www.cnblogs.com/acelove/p/70434.html
Copyright © 2011-2022 走看看