У меня есть следующие таблицы
create table players
(
name varchar(30) not null primary key,
);
create table injuries
bId int not null primarykey,
date DATE not null,
name varchar(30),
foreign key(name) references players
);
create table sportsBegins
(
cId int not null primarykey,
date DATE,
sportname varchar(20),
name varchar(30)
foreign key(name) references players
);
Данные следующего примера:
игроков
name
John
Jane
George
shows players in db
sportsBegins
cId | date | sportname | name
1 2020-01-01 Basketball John
2 2020-02-02 Basketball John
3 2020-01-01 Soccer John
4 2020-02-02 Basketball Jane
5 2020-01-03 Basketball George
6 2020-01-04 Badminton George
shows what date players begin playing a sport
травмы
bId | date | name
1 2020-01-01 John
2 2020-02-03 Jane
3 2020-01-05 George
shows the date these players reported injuries.
Я хочу посчитать количество ДИСТИНКТ игроков, которые получили травму в баскетболе ПОСЛЕ первого дня, когда они получили вид спорта ( не в тот же день).
Так что для каждого игрока мне нужно взять только первое свидание, которое они начали играть в баскетбол. Затем для этого игрока мне нужно сравнить его имя И дату с именем И датой в таблице травм, чтобы узнать, не сообщал ли он когда-либо о травме после даты, когда ему был назначен вид спорта.
Пример
В приведенных мной примерах данных это будет вывод
Total basketball injuries
2
Объяснение ответа
Джон дважды получил баскетбол. Только посмотрите на первое свидание, он получил назначенный баскетбол. Тогда посмотрите на таблицу травм. Он только сообщил о травме в тот день, но не после, так что игнорируйте. Джейн и Джордж сообщили о травмах после первого назначенного баскетбольного матча, поэтому посчитайте их