sql显示12个月数据
需求
最近在做一个财务报表展示系统,Budget需要当月上传,还未上传月份的数据也需要显示出来。
数据库设计
cBudget表结构如下
CREATE TABLE [dbo].[cBudget](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Month] [int] NOT NULL,
[Sales] [decimal](18, 0) NULL
) ON [PRIMARY] GO
插入测试数据,数据截至到今年的7月份
INSERT INTO [cBudget] VALUES(1,111)
INSERT INTO [cBudget] VALUES(2,222)
INSERT INTO [cBudget] VALUES(3,333)
INSERT INTO [cBudget] VALUES(4,444)
INSERT INTO [cBudget] VALUES(5,555)
INSERT INTO [cBudget] VALUES(6,666)
INSERT INTO [cBudget] VALUES(7,777)
问题及解决方案
常规的写法直接select,F5执行,Oh My God~~~,显示的7月份的数据,绑定报表插件也只显示到7月份,和需求完全不符啊。

不要着急,下面就是master..spt_values发挥的时候了(当然,你也可以自己建一个存储1-12个数字的临时表),1到12月份的数据出来了
select b.number as Month,ISNULL(a.Sales,0) as Sales
from cbudget as a right join
(
select number from master.dbo.spt_values AS T1
WHERE T1.type = 'P' AND T1.number between 1 and 12
) b
on b.number=a.month

大致的原理就是这样,更为复杂的sql语句需要自己来变通了。
sql显示12个月数据的更多相关文章
- 报表统计——java实现查询某年12个月数据,没数据补0
一般图表绘制例如echarts等,返回数据格式都大同小异.重点是利用sql或者java实现数据格式的转型,接下来是关键部分: 1.mapper层sql语句,返回统计好的月份与对应月份的数据. < ...
- SQL显示某月全部日期明细以及SQL日期格式
SQL显示某月全部日期明细<存储过程> 方法一: declare @date datetime declare @end datetime ,getdate()) ,@date) crea ...
- Python得到前面12个月的数据,Python得到现在时间 前一年的数据,
#Python 实现得到现在时间12个月前的每个月 # 假设现在的时间是2016年9月25日 #得到现在的时间 得到now等于2016年9月25日 now = datetime.datetime.no ...
- Postgresql查询最近12个月、最近30天数据
-- 最近 12 个月 SELECT * FROM 表名 WHERE 日期字段 BETWEEN (now() - INTERVAL '12 months') AND now() -- 最近 30 天 ...
- Razor视图引擎布局 Razor视图引擎的基本概念与法语 SQL Server Mobile 和 .NET 数据访问接口之间的数据类型映射 binary 和 varbinary datetime 和 smalldatetime float 和 real
Razor视图引擎布局 不需要像过去aspx一样,使用.Master文件,而是统一使用.cshtml 或 .vbhtml文件.但文件名一般以 _开头,这样做文件不会当做View显示出来 使用@Re ...
- 恢复SQL Server被误删除的数据(再扩展)
恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...
- 恢复SQL Server被误删除的数据
恢复SQL Server被误删除的数据 <恢复SQL Server被误删除的数据(再扩展)> 地址:http://www.cnblogs.com/lyhabc/p/4620764.html ...
- 你真的会玩SQL吗?简单的数据修改
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
- SQL实现类似于自动刷新数据的功能
有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据.但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了.貌似SQL没有像 ...
随机推荐
- H5 视频直播相关技术
一.移动视频直播发展 大家首先来看下面这张图: 可以看到,直播从 PC 到一直发展到移动端,越来越多的直播类 App 上线,同时移动直播进入了前所未有的爆发阶段,但是对于大多数移动直播来说,还是要以 ...
- Maven 工程下 Spring MVC 站点配置 (一)
最近,查找一些具体资料时,虽然会有很多,但是系统的却很少,尤其是对maven 下 spring mvc 站点搭建的配置,总是说的很多但让新手一目了然的步骤却少之又少. 对此闲暇时整理了一下,做了一套较 ...
- Ubuntu 12.04 搭建 Eclipse Android 开发环境(转)
Ubuntu 12.04 搭建 Eclipse Android 开发环境 http://blog.sina.com.cn/s/blog_93dc666c0101b39p.html (2012-09-0 ...
- npm创建和发布模块
今天项目需要使用npm去创建一个模块,然后我查询了了npm的使用文档(Working with private modules),然后对其进行了整理. 一.在操作之前,我们首先要将npm装好,并且登录 ...
- Hibernate 查询:HQL查询(Hibernate Query Languge)
HQL是一种面向对象的查询语言,其中没有表和字段的概念,只有类,对象和属性的概念. 使用HQL查询所有学生: public static void main(String[] args) { Sess ...
- 用记事本编写C#程序并运行C#代码
net framework自带有C#编译器 csc.exe,用它就好了 它在.NET框架目录下的<\Microsoft.NET\Framework\v**** (*号内容与版本有关) 不行你直接 ...
- php中数字和字母生成随机字符串
function strrand($len) { $arr = array( "0", "1", "2", "3", & ...
- 【iOS】objective-c 文档生成工具 appledoc
最近做ios framework的一些测试,提供给其他开发者使用的framework,API文档变得更加重要,以前没有接触过,这次尝试使用了一把appledoc来生成一下文档,感觉还不错. 首先,是从 ...
- Asp.net SignalR 初试和应用笔记一 认识和使用 SignalR
如果你在用QQ,微信.你会知道,广告和消息无处不在.也有好的一面,比如通过QQ或微信,微博等及时聊天功能,你找到了你的初恋,你找到了小学的班级等等. 这里的及时通信在很多应用场所能用到,比如: 1.球 ...
- 括号配对问题--nyoj-2(栈)
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=10 ...