обновить запрос на выборку в oracle DB - PullRequest
0 голосов
/ 13 октября 2018

У меня есть 5 таблиц в такой БД (скрипт ниже) ::

image

SCBIPT DB


CREATE TABLE EQUIPE (
    code_equipe char(3) primary key,
    nom varchar(30),
    directeur varchar(30));
CREATE TABLE PAYS (
    code_pays varchar(3) primary key,
    nom varchar(20));
CREATE TABLE COUREUR (
    num_dossart number(3) primary key,
    code_equipe char(3),
    nom varchar(30),
    code_pays varchar(3));
CREATE TABLE ETAPE (
    num_etape number(1) primary key,
    date_etape date,
    kms number(3),
    ville_depart varchar(20),
    ville_arrivee varchar(20));
CREATE TABLE TEMPS (
    num_dossart number(3),
    num_etape number(1),
    temps_realise number(6),
    primary key(num_dossart,num_etape));
ALTER table COUREUR add CONSTRAINT FK_avoir_code_equipe FOREIGN KEY (code_equipe) REFERENCES EQUIPE(code_equipe);
ALTER table COUREUR add CONSTRAINT FK_avoir_code_pays FOREIGN KEY (code_pays) REFERENCES PAYS(code_pays);
ALTER table TEMPS add CONSTRAINT FK_avoir_num_dossart FOREIGN KEY (num_dossart) REFERENCES COUREUR(num_dossart);
ALTER table TEMPS add CONSTRAINT FK_avoir_num_etape FOREIGN KEY (num_etape) REFERENCES ETAPE(num_etape);

и мой запрос

select num_etape,max(temps_realise) from TEMPS group by num_etape

дал этот результат

image

, и я хочу обновить его, чтобы получить такой результат

enter image description here

это

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Я решил мой вопрос, спасибо, ребята

select num_dossart,nom,num_etape,dernier from COUREUR C,
(select num_etape ,max(temps_realise) as dernier from TEMPS GROUP BY num_etape) T 
where num_dossart = 
(select num_dossart from TEMPS where temps_realise = dernier )
0 голосов
/ 13 октября 2018

Если я правильно прочитал, простое объединение сделает работу:

select t.num_etape, 
       c.nom, 
       max(n.temps_realise)
from temps t join coureur c on c.num_dossart = t.num.dossart
group by t.num_etape, 
         c.nom;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...