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 部门名

  • 相关阅读:
    倍增
    「BZOJ 2152」聪聪可可
    「POJ 1741」Tree
    点分治
    高斯消元
    网络流24题之餐巾计划问题
    网络流24题之骑士共存问题
    网络流24题之方格取数问题
    网络流24题之负载平衡问题
    网络流24题之分配问题
  • 原文地址:https://www.cnblogs.com/temptation/p/1121149.html
Copyright © 2011-2022 走看看