Есть вот такая диаграмма бд, надеюсь по названиям полей +-понятны связи между таблицами.
Собственно Само задание такое: Реализовать скрипты для получения след.инфы
1.Текущий рейтинг игроков в порядке убывания
2.Последние N изменений рейтинга игрока
3.Последние N матчей игрока
4.Последние N личных встреч между двумя игроками
5.Итоговая таблица турнира
6.Все матчи турнира в хронологическом порядке
А вот и сами скрипты
/* Part1*/
select * from Players order by -rating
/* Part2*/
select top(3)
P.nick,
M.date,
R.old_rating,
R.new_rating
from Players P
join Change_Rating R on(P.id=4) and(P.id=R.id_pl)
join Matches M on(R.id_M=M.id)
order by M.date DESC
/* Part3*/
select top(2)
P.nick,
M.date
from Matches M
join Players P on(P.id=M.id_pl1 or P.id=M.id_pl2) and P.id=4
order by M.date DESC
/* Part4*/
select top(2)
F.nick,
S.nick,
M.date
from Matches M
join Players F on(M.id_pl1=F.id or M.id_pl2=F.id) and(F.id=4)
join Players S on(M.id_pl2=S.id or M.id_pl1=S.id) and(S.id=6)
order by M.date DESC
/* Part5*/
select
P.nick,
T.points
from(
select
R.id_pl,
sum(R.new_rating - R.old_rating) as points
from Tournaments T
join Matches M on(T.id=M.id_T) and (T.id=2)
join Change_Rating R on(R.id_M=M.id)
group by R.id_pl
) as T
join Players P on(P.id=T.id_pl)
order by -T.points
/* Part6*/
select
F.nick,
S.nick,
M.date
from Matches M
join Tournaments T on(M.id_T=T.id)and(T.id=1)
join Players F on(F.id=M.id_pl1)
join Players S on(S.id=M.id_pl2)
order by M.