Oracle Query结合了两个表

时间:2015-06-11 12:48:25

标签: sql oracle group-by

我有两张桌子。我想结合这些表来得到如下结果:

TABLE_1

RegNo       Class_id    Name    Address
------------------------------------------------
ABC/R/13-14-1       1   Name1   Address1
ABC/R/13-14-2       2   Name1   Address1
ABC/R/2014-15-1     1   Name1   Address1
ABC/R/2014-15-2     3   Name1   Address1
ABC/R/13-14-3       1   Name1   Address1
------------------------------------------------

TABLE_2

Class_id    Class
----------------------
1       IA
2       IB
3       IC
----------------------

我需要结果如:

Class   2013    2014
--------------------
IA  2   1
IB  1   0
IC  0   1
--------------------

我使用Group by每年单独获得结果,但是我无法按照要求的列式格式获得年份。任何帮助都非常感谢。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您在查询中使用的条件适用于您的数据,那么您可以使用此查询:

select t2.class, 
    sum(case when regno like 'ABC%13-14%' then 1 else 0 end) c2013,
    sum(case when regno like 'ABC%14-15%' then 1 else 0 end) c2014
  from table_1 t1
  join table_2 t2 on t1.class_id = t2.class_id
  group by t2.class

输出:

CLASS      C2013      C2014
----- ---------- ----------
IA             2          1
IB             1          0
IC             0          1