数据为oracle
今天在报表的时候对数据分类并且统计
简单描述一下问题:
例子数据库表如下:create table test (
d_id number(10) primary key,
d_type varchar2(1),
d_date varchar2(10)
)
我插入如下数据
d_id d_type d_date
1 1 A
2 3 B
3 1 C
4 1 A
5 3 C
6 1 A我对上面的数据做一个简单的个数统计:select d_date, count(*) count from test
where d_type = 1
group by d_date
显示结果为:
d_date count
A 3
C 1但是我想要结果为:
d_date count
A 3
B 0
C 1我想让B这一行也显示并且显示一个默认值为0我在项目要查找一个d_type = 4的时候那么结果显示什么都没有
我想要分组照样显示,給与一个默认值为0, 结果差不多是这样
d_date count
A 0
B 0
C 0不知 这样的查询语句怎么样写,还望指点一二!!
今天在报表的时候对数据分类并且统计
简单描述一下问题:
例子数据库表如下:create table test (
d_id number(10) primary key,
d_type varchar2(1),
d_date varchar2(10)
)
我插入如下数据
d_id d_type d_date
1 1 A
2 3 B
3 1 C
4 1 A
5 3 C
6 1 A我对上面的数据做一个简单的个数统计:select d_date, count(*) count from test
where d_type = 1
group by d_date
显示结果为:
d_date count
A 3
C 1但是我想要结果为:
d_date count
A 3
B 0
C 1我想让B这一行也显示并且显示一个默认值为0我在项目要查找一个d_type = 4的时候那么结果显示什么都没有
我想要分组照样显示,給与一个默认值为0, 结果差不多是这样
d_date count
A 0
B 0
C 0不知 这样的查询语句怎么样写,还望指点一二!!
select r.d_date,nvl(t.c,0) from (select distinct(d_date) from test11) r
left join (select d_date,count(0) c from test11 where d_type = '1' group by d_date ) t
on r.d_date = t.d_date order by r.d_date