Witam. Mam problem, który wynika pewnie z braku doświadczenia w sql i Wy mi pomożecie z łatwością :)
Otóż mam bazę danych, która przechowuję między innymi sportowców, starty tych sportowców, konkurencje i rezultaty(wyniki). Tabele wyglądają tak:
CREATE TABLE sportowcy (
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
imie varchar(20) NOT NULL,
drugie_imie varchar(20),
nazwisko varchar(30) NOT NULL,
narodowosc varchar(30) NOT NULL,
id_miasta int NOT NULL foreign key references miasta(id)
);
CREATE TABLE starty (
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
godzina time NOT NULL,
id_sportowca int NOT NULL FOREIGN KEY REFERENCES sportowcy(id),
nazwa_konkurencji varchar(255) NOT NULL FOREIGN KEY REFERENCES konkurencje(nazwa),
nazwa_etapu varchar(255) NOT NULL FOREIGN KEY REFERENCES etapy(nazwa_etapu),
);
CREATE TABLE rezultaty (
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
rezultat float NOT NULL,
numer_miejsca int FOREIGN KEY REFERENCES miejsca(numer),
id_startu int NOT NULL FOREIGN KEY REFERENCES starty(id)
);
CREATE TABLE konkurencje (
nazwa varchar(255) NOT NULL PRIMARY KEY,
jednostka_wyniku char(3) NOT NULL
);
Mój problem polega na tym, że nie wiem jak stworzyć zapytanie, które pobierze mi najlepsze wyniki i dane sportowców, którzy je osiągali z poszczególnych konkurencji. Problem też jest w tym, że np. w rzucie młotem najlepszy wynik będzie jak największy. Czyli 40m jest lepsze od 35m, ale za to w biegu na 100m lepszym wynikiem jest 10s niż 11s.
Mam nadzieje, że wytłumaczyłem dość jasno o co mi chodzi i prosiłbym o pomoc