• [转] 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 部门名

  • 相关阅读:
    html优化
    HTML练习(网页计算器)
    hdu--4574 Bombs(dfs)
    Robots at Warehouse(搜索+vector的使用)
    poj 2111 Millenium Leapcow(记忆化搜索)
    Codeforces Round #408 (Div. 2) C. Bank Hacking(暴力啊!暴力)
    Gym
    Gym
    浙江省赛--D
    浙江省赛--C
  • 原文地址:https://www.cnblogs.com/temptation/p/1121149.html
Copyright © 2020-2023  润新知