2015-06-11 2 views
0

У меня есть две таблицы. Я хочу, чтобы объединить эти таблицы, чтобы получить результаты, как показано ниже:Объяснение Oracle Query Две таблицы

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 
-------------------- 

Я использую группу чтобы получить результаты отдельно для каждого года, но я не могу получить год в формате столбцов li ke требование. Любая помощь высоко ценится.

Заранее спасибо.

+0

Является частью REGNO после 'ABC/R /' должно быть, дата? Покажите запрос, который у вас есть. –

+0

Нет, как 13-14 и 2014-15 гг. Я использую следующий запрос, но его не дающий нужного результата: выберите a.class_category_id, count (*) из m_vendor_hdr a, m_class b , где a.CLASS_CATEGORY_ID = b.class_id и a.vendor_registration_number, такие как APW% 13-14 % 'группой a.CLASS_CATEGORY_ID; –

+0

У таблицы_1 есть регулярное поле даты для создания класса или присоединения класса или что-то в этом роде? Поскольку это было бы быстрее, как показано на рисунке ниже – Jester

ответ

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 
+0

Большое спасибо .. вы спасли мой день –

Смежные вопросы