各位大牛,我现在要对一张表里的数据进行分类统计,我现在感到有点困惑。给点建议吧。表结构如下:列名 意义 数据类型 约束
NUM 编号 VARCHAR(20) 主键
CKIND 产品类别 VARCHAR(16) NOT NULL
CHENUM 车号 VARCHAR(20) NOT NULL
DAY 日期 DATE NOT NULL
WEI 实际重量 NUMBER(5,2) NOT NULL
KU 库房 VARCHAR(20) NOT NULL
XING 车型 VARCHAR(10) NOT NULL
FANGAN 装载方案 VARCHAR(20)
EDING 额定金额 NUMBER(6,2) NOT NULL
SJIN 实际金额 NUMBER(6,2) NOT NULL
BAN 班组 VARCHAR(10) NOT NULL
MAN 库管 VARCHAR(10) NOT NULLXING  字段主要包括 敞车, 平板, 汽车 三个值,我要去统计的结果是按照类别分别统计如下内容:产品类别,  敞车及平板的车数的总和,  敞车和平板装载的重量总和,  敞车和平板装载的实际金额总和, 汽车装载的重量总和, 总共的重量,  总共的车数 ,  总共的金额
我现在准备利用case when 及group by 进行计算,但最大的问题在于 如何将 在一条语句里 按照上面的字段 同时统计 敞车和平板装载的重量总和 及  汽车装载的重量总和。希望各位给些建议。

解决方案 »

  1.   


    select CKIND,
    sum(case when XING in ('敞车','平板') then 1 else 0 end) 敞车及平板的车数的总和,
    sum(case when XING in ('敞车','平板') then WEI else 0 end) 敞车和平板装载的重量总和,
    sum(case when XING in ('敞车','平板') then SJIN else 0 end)  敞车和平板装载的实际金额总和,
    sum(case when XING='汽车' then WEI else 0 end) 汽车装载的重量总和,
    sum(WEI) 总共的重量,
    count(1) 总共的车数,
    sum(SJIN) 总共的金额
    from 你的表
    group by CKIND;
      

  2.   

    select CKIND,
    sum(case when XING in ('敞车','平板') then 1 else 0 end) 敞车及平板的车数的总和,
    sum(case when XING in ('敞车','平板') then WEI else 0 end) 敞车和平板装载的重量总和,
    sum(case when XING in ('敞车','平板') then SJIN else 0 end)  敞车和平板装载的实际金额总和,
    sum(case when XING='汽车' then WEI else 0 end) 汽车装载的重量总和,
    sum(WEI) 总共的重量,
    count(1) 总共的车数,
    sum(SJIN) 总共的金额
    from 你的表
    group by CKIND;