2015-12-08 3 views
1

Если у меня есть структуру таблицы вроде этого:Как получить данные для нескольких экземпляров, принадлежащих одному и тому же ключу?

req_serial req_year emp_num name 
    15  2014  673  Jo 
    16  2015  673  Jo 
    17  2014  785  Noha 
    17  2015  785  Noha 
    17  2014  634  Reem 
    17  2015  634  Reem 
    18  2014  358  Moh 
    18  2014  34  Amr 
    18  2015  34  Amr 

Как получить следующий результат:

17 
18 

Я хочу, чтобы получить req_serial если же работник существует в более чем один req_year принадлежит к тем же req_serial? .Как это сделать?

ответ

2

Простой GROUP BY должен это сделать:

SELECT DISTINCT req_serial 
FROM mytable 
GROUP BY req_serial, name 
HAVING COUNT(DISTINCT req_year) > 1 

Если же пара значений req_serial, name пролетов над более чем на один год, то выше запрос возвращает эту точную пару. Нам нужен только req_serial, поэтому DISTINCT req_serial используется в статье SELECT.

Demo here

+3

Вероятно, лучше группы по '' emp_num' чем name'. – shawnt00

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