をHAVING +複数テーブルの結合、私は4つのテーブルがあります。は句
create table Hotel (
numHotel int primary key,
nomHotel varchar(30),
ville varchar(30),
etoiles tinyint
);
create table Chambre (
numChambre int identity primary key,
numHotel int foreign key references Hotel(numHotel),
etage tinyint,
prixnuit smallmoney not null check (prixnuit>=100)
);
create table Client (
cinClient varchar(10) primary key,
nom varchar(30),
prenom varchar(30),
adresse varchar(255) default 'non renseignée',
telephone varchar(10) check (telephone like '0%' and len(telephone)=10)
);
create table reservation (
numReservation int identity primary key,
numChambre int foreign key references Chambre(numChambre),
numCl varchar(10) foreign key references Client(cinClient),
dateArrivee date,
dateDepart date,
constraint ck_dates check ((Datediff(day,dateArrivee,dateDepart)>0))
);
列名をフランス語ですが、私は彼らが理解しやすいだと思います。
そこで質問です:私は(nomHotel)ホテルの名前を選択する必要がありますが、より高い一定の価格よりも(例えば10000)
を合計金額を達成したこれは私が紙の上に何をしたかである:
select nomHotel from Hotel h join Chambre ch on h.numHotel=ch.numChambre join reservation r on ch.numChambre=r.numChambre
group by nomHotel
having COUNT(r.numChambre)*ch.prixnuit>10000
そして(もちろん)間違っています。 ご協力ありがとうございました。
翻訳:「prixnuit」は1泊あたりの部屋の価格です。
はい、。本当にありがとう。 – Outman
@outmanありがとうございます。受理した回答を\ –
に記入してください。 – Outman