Oracle 查询合并两个表
Oracle Query combining Two tables
我有两张桌子。我想合并这些表以获得如下结果:
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 分别获取每年的结果,但我无法像要求那样以列格式获取年份。非常感谢任何帮助。
提前致谢。
如果您在查询中使用的条件适用于您的数据,那么您可以使用此查询:
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
我有两张桌子。我想合并这些表以获得如下结果:
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 分别获取每年的结果,但我无法像要求那样以列格式获取年份。非常感谢任何帮助。
提前致谢。
如果您在查询中使用的条件适用于您的数据,那么您可以使用此查询:
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