SQL统计1-12月的数据,没有数据的月份显示为0
2015-03-17 16:15
736 查看
1.利用临时表补足数据(HANA)
2.新建一张表,表中只有一个字段,只有12行数据,即(1,2,3,4,5...12),然后左链接需要统计的数据表。
3.利用Case When Else End 枚举:(月份显示在表名上)(SQL)
select A.DATAYEAR as DATAYEAR, A.DATAMONTH as DATAMONTH,sum(DATANUM) as DATANUM from (select YEAR(GL_LZ_XKTZ_NY) as DATAYEAR,Month(GL_LZ_XKTZ_NY) as DATAMONTH,count(*) as DATANUM from TableName where Year(GL_LZ_XKTZ_NY) >= year(ADD_YEARS(current_date,-1)) and Year(GL_LZ_XKTZ_NY) <= year(current_date) group by YEAR(GL_LZ_XKTZ_NY) , Month(GL_LZ_XKTZ_NY) union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 1 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 2 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 3 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 4 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 5 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 6 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 7 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 8 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 9 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 10 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 11 as DATAMONTH , 0 as DATANUM from DUMMY union select year(ADD_YEARS(current_date,-1)) as DATAYEAR, 12 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 1 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 2 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 3 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 4 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 5 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 6 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 7 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 8 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 9 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 10 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 11 as DATAMONTH , 0 as DATANUM from DUMMY union select year(current_date) as DATAYEAR, 12 as DATAMONTH , 0 as DATANUM from DUMMY )A group by A.DATAYEAR,A.DATAMONTH order by A.DATAYEAR,A.DATAMONTH注:DUMMY 是虚表、临时表
2.新建一张表,表中只有一个字段,只有12行数据,即(1,2,3,4,5...12),然后左链接需要统计的数据表。
3.利用Case When Else End 枚举:(月份显示在表名上)(SQL)
select 'Title' as 'dataTitle', isnull(sum(case when month = '1' then ThisMonthPassNum else 0 end),0) as 'month1' , isnull(sum(case when month = '2' then ThisMonthPassNum else 0 end),0) as 'month2' , isnull(sum(case when month = '3' then ThisMonthPassNum else 0 end),0) as 'month3' , isnull(sum(case when month = '4' then ThisMonthPassNum else 0 end),0) as 'month4' , isnull(sum(case when month = '5' then ThisMonthPassNum else 0 end),0) as 'month5' , isnull(sum(case when month = '6' then ThisMonthPassNum else 0 end),0) as 'month6' , isnull(sum(case when month = '7' then ThisMonthPassNum else 0 end),0) as 'month7' , isnull(sum(case when month = '8' then ThisMonthPassNum else 0 end),0) as 'month8' , isnull(sum(case when month = '9' then ThisMonthPassNum else 0 end),0) as 'month9' , isnull(sum(case when month = '10' then ThisMonthPassNum else 0 end),0) as 'month10' , isnull(sum(case when month = '11' then ThisMonthPassNum else 0 end),0) as 'month11' , isnull(sum(case when month = '12' then ThisMonthPassNum else 0 end),0) as 'month12' from TableName
相关文章推荐
- sql查询统计,根据新闻类别ID统计,没有数据显示0
- 按月统计的问题,即数据中没有该月的数据,该月的数据显示为0
- [MSSQL2005]月统计SQL脚本(包括没有记录的月份)
- SQL按年份月份统计数据
- 如何让Gridview在没有数据的时候显示表头[没有使用SqlDataSource控件时]
- mysql查询 根据月份查询每天的数据 没有数据显示0
- SQL统计报表中1-12月的数据
- 使用Mysql 统计一周数据,若没有数据显示为0
- MS SQL Server树型结构数据显示的SQL语句(纯SQL语句,不用函数)
- 树形数据显示SQL示例代码(在ms sql 2000 DBMS中调试通过)
- 树型结构数据的客户部门SQL显示语句(纯sql语句)
- sql server数据分组统计
- Scott Mitchell 的ASP.NET 2.0数据教程之十五:在GridView的页脚中显示统计信息
- GridView没有数据时显示表头
- 也许有用的SQL:对单表数据进行count统计生成简单的交叉表
- SQL 中的单列数据到多列数据的转换,以及转换后的分组统计
- SQL语句技巧:按月统计数据
- 按部门,按月份统计总金额的SQL写法!!
- 用一条SQL完成数据表的行统计
- 用一条SQL完成数据表的行统计