0
這裏是數據庫描述:整蠱SQL運動
公司(ID_comp,名)
旅行(trip_no,id_comp,飛機,town_from,town_to,TIME_OUT,time_in)
客運( ID_psg,名)
Pass_in_trip(trip_no,日期,ID_psg,地點)
- 公司桌上有公司的身份證件和公司名稱,用於運送乘客。
- 旅行表有關於旅行的信息:旅行號碼,公司ID,飛機類型,出發城市,到達城市,出發時間和到達時間。
- 乘客桌上有乘客身份證和乘客姓名。
- Pass_in_trip表中有關於航班的信息:航班號,出發日期(日期),乘客ID和他在航班中的位置。
我們應該注意的是,
- 任何行程每天都被完成;航班的持續時間少於日曆日(24小時);
- 時間和日期被認爲是相對一個時區;
- 出發時間和到達時間在一分鐘內給出;
- 可以有同名乘客(例如,布魯斯威利斯);
- 飛行期間的地方是一個數字後跟一個字母;該數字定義了行號,字母(a - d) - 行中的地方(從左到右)按字母順序排列;
- 關係和限制顯示在數據模式中。
這裏是問題:
找到不同的乘客,這顯然不止一次在同一個座位的名字。
我已經試過此查詢
select name from (
select id_psg, count(name) as total from (
select a.id_psg, name, date,place from passenger a join
pass_in_trip b on a.id_psg=b.id_psg order by a.id_psg, place
) as t1
group by t1.id_psg
) as a join passenger b on a.id_psg = b.id_psg
join pass_in_trip c on a.id_psg=c.id_psg
where total > 1
group by name,place
having count(place) >=2
order by name,place;
但它說:
Wrong
Your query produced correct result set on main database, but it failed test on second, checking database
* Wrong number of records (more by 8)
- 這是SQL-RU BTW的練習。