有时候需要做报表时,如何将一个字段年份划分成12个月份呢?

原创 2016年06月01日 17:15:16
select v_short_name, 
       sum(case when c_time = '201501' then n_amount else 0 end) as Jan,
       sum(case when c_time = '201502' then n_amount else 0 end) as Feb,
       sum(case when c_time = '201503' then n_amount else 0 end) as Mar,
       sum(case when c_time = '201504' then n_amount else 0 end) as Apr,
       sum(case when c_time = '201505' then n_amount else 0 end) as May,
       sum(case when c_time = '201506' then n_amount else 0 end) as Jun,
       sum(case when c_time = '201507' then n_amount else 0 end) as Jul,
       sum(case when c_time = '201508' then n_amount else 0 end) as Aug,
       sum(case when c_time = '201509' then n_amount else 0 end) as Sep,
       sum(case when c_time = '201510' then n_amount else 0 end) as Oct,
       sum(case when c_time = '201511' then n_amount else 0 end) as Nov,
       sum(case when c_time = '201512' then n_amount else 0 end) as Decn,
       sum(n_amount) as Total 
  from XXX

 group by v_short_name;


这个代码可以实现这个功能。


上面的方法为静态,下面的方法为动态:

SET @asql='';
    SELECT DISTINCT c_time,
    @asql:=CONCAT(@asql,CONCAT('MAX(CASE DATE(c_time) WHEN \'',DATE(c_time),'\' THEN n_amount ELSE 0 END) AS `',DATE(c_time)),'`,')
    FROM 表名;
    SET @asql=CONCAT('SELECT v_short_name 'LEFT(@asql,LENGTH(@asql)-1),' FROM 表名GROUP BY v_short_name');
      SELECT @asql;
      PREPARE stml FROM @asql;
      EXECUTE stml;

版权声明:本文为博主原创文章,未经博主允许不得转载。

输入任意一个年份和月份,输出该月份的公历日历

#include "iostream" using namespace std; int main() { int m,d,monthmax,y; while(1)...

C语言实验:输入任意一个年份和月份,输出该月份的公历日历

利用吉姆拉尔森公式,详见初等数论,注意控制格式。 看不懂c++的童鞋,把所有cin理解为scanf,把cout理解为printf,这个程序是小时候写的,所有不想改了。 #include "io...

R语言-将数据按照月份、季度、年份划分及求某个代码(地名、产业名等)对应的累积值

R语言-将数据按照月份、季度、年份划分及求某个代码(地名、产业名等)对应的累积值...
  • Trisyp
  • Trisyp
  • 2016年08月26日 10:54
  • 1251

js实现获取当前月份前的12个月份,格式化后放在一个数组里。

js实现获取当前月份前的12个月份,格式化后放在一个数组里。 例如当前是2017年2月,现获取前12个月的月份放在数组里,输出的结果如下: [2017-01,2016-12,2016-11,2016-...

报表填报时,如何实现多个单元格绑定一个字段?

在使用报表过程中,本来要想将所有科目都填报入库,则需要添加多个内置SQL,会非常影响填报效率,今天我来告诉大家可以在一个内置SQL中为单个数据表字段绑定多个单元格,即单元格组。...

java——从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * 作 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有时候需要做报表时,如何将一个字段年份划分成12个月份呢?
举报原因:
原因补充:

(最多只允许输入30个字)