需求描述:在sql server 中
创建一张表。
create table test
(
dqtime datetime,
dmoney money
)
插入数据:
insert into test values('2017/10/1',1000)
insert into test values('2017/9/1',2000)
本人写的sql查询语句
select month(dqtime) ,sum(dmoney) from test group by month(dqtime)
得到结果:
9 2000
10 10000
期望查询的结果:
1 0
2 0
....
9 2000
10 1000
11 0
12 0
要求:就是每次查询如果日期列中无该月的数据。则以0显示
你这需求。。。。
再建一个表,里面1到12.然后两个表join下group by,空列直接赋值0
大神:如何为空列赋值?sql语句可以实现吗?
非常感谢。我已经解决NULL转换为0了。在查询语句中使用case end
@一招定乾坤: mssql有isnull函数。。。
使用创建的新表左外连接之前的查询结果。 拿月份作为连接列。最后拿无数据的表列null做isnull函数。当为null,则设置默认值0.