首页新闻找找看学习计划

求SQL大神 支招

0
悬赏园豆:100 [已解决问题] 解决于 2017-11-08 13:02

需求描述:在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显示

一招定乾坤的主页 一招定乾坤 | 初学一级 | 园豆:104
提问于:2017-11-08 11:30
< >
分享
最佳答案
0

你这需求。。。。

再建一个表,里面1到12.然后两个表join下group by,空列直接赋值0

收获园豆:100
Daniel Cai | 专家六级 |园豆:10374 | 2017-11-08 11:33

大神:如何为空列赋值?sql语句可以实现吗?

一招定乾坤 | 园豆:104 (初学一级) | 2017-11-08 11:40

非常感谢。我已经解决NULL转换为0了。在查询语句中使用case end

一招定乾坤 | 园豆:104 (初学一级) | 2017-11-08 11:45

@一招定乾坤: mssql有isnull函数。。。

Daniel Cai | 园豆:10374 (专家六级) | 2017-11-08 11:53
其他回答(1)
0

使用创建的新表左外连接之前的查询结果。 拿月份作为连接列。最后拿无数据的表列null做isnull函数。当为null,则设置默认值0.

一招定乾坤 | 园豆:104 (初学一级) | 2017-11-08 13:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册