zoukankan      html  css  js  c++  java
  • [转] SQL Server中的行列转换问题

    原表结构
    序号
    1 a 800
    2 b 900
    3 a 400
    4 d  1400
    5 e 1200
    6 f 500
    7 a  300
    8 d 1000
    9 d 1230
    10 b 2000
    11 c 2000
    12 b 1200

    最终显示
      人数                    小于800元  从800至999  从1000元至1190元     大于1200元
    a          3 2 1 2 1 0 0
    b         3 1 2 0 1 0 2
    c          1 1 0 0 0 0 1
    d         3 1 2 0 0 1 2
    e         1 1 0 0 0 0 1
    f          1 1 0 1 0 0 0

    SELECT 部门名,COUNT(序号) as 人数,
         
    SUM(CASE 性别 WHEN 1 THEN 1 ELSE 0 ENDas 男,
               
    SUM(CASE 性别 WHEN 2 THEN 1 ELSE 0 ENDas 女,
         
    SUM(CASE SIGN(工资-800WHEN -1 THEN 1 ELSE 0 ENDas 小于800元,
         
    SUM((CASE SIGN(工资-800)*SIGN(工资-1000)                     /*用*来实现<和>功能*/
              
    WHEN -1 THEN 1 ELSE 0 END)+(CASE 工资
              
    WHEN 800   THEN 1 ELSE 0 END)) as 从800至999,          /*注意别名不能以数字开头*/
         
    SUM((CASE SIGN(工资-1000)*SIGN(工资-1200)
              
    WHEN -1 THEN 1 ELSE 0 END)+(CASE 工资
              
    WHEN 1000 THEN 1 ELSE 0 END)) as 从1000元至1199元,
         
    SUM((CASE SIGN(工资-1200WHEN 1 THEN 1 ELSE 0 END)
         
    +(CASE 工资 WHEN 1200 THEN 1 ELSE 0 END)) as 大于1200元
    FroM 工资明细表 
    GROUP BY 部门名

  • 相关阅读:
    Mysql的相关命令
    设置数据窗口的过滤与排序
    org.springframework.web.servlet.DispatcherServlet noHandlerFound
    tomcatPluginV321.zip
    js获取modelandview的值
    cintanotes
    暗手机
    TASKCITY
    win commands
    book
  • 原文地址:https://www.cnblogs.com/temptation/p/1121149.html
Copyright © 2011-2022 走看看