我有两张桌子。我想结合这些表来得到如下结果:
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每年单独获得结果,但是我无法按照要求的列式格式获得年份。任何帮助都非常感谢。
提前致谢。
答案 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