Я абсолютный новичок в изучении баз данных.И я испортил свою проблему и понятия не имею, как ее решить.Любые советы приветствуются,
Вот мои две таблицы:
- сотрудник: eid (строка)
информация: eid (строка), cid(строка), квартал (квартал), год (целое число)
eid: идентификатор сотрудника
- cid: идентификатор курса (какой сотрудник принимает)
- qtr: квартал (весна, зима, лето)
Info
- это таблица, в которой содержится информация о том, какие курсы посещал каждый сотрудник, учитывая количество и год.И курс может быть взят только один раз.
Сотрудник может иметь пробелы в зачислении (нет необходимости проходить курс каждый квартал)
Мне нужно выяснить:
Списокколичество курсов за каждый квартал, которые по крайней мере один сотрудник прошел, но меньше, чем сотрудник прошел (и я хочу показать qtr, year, count (*))
Например, мой результат должен выглядеть следующим образом
qtr year num
-----------------
W 2001 2
W 2002 1
F 2003 1
Вот мой код
select
a.qtr, a.year, a.count(*) AS num
from
info a
where
(select *
from info b
where a.cid = b.cid and a.qtr = b.qtr and a.year = b.year and a.eid < b.eid)
group by
a.qtr, a.year
having
num > 0 and num < 3;