又是我——我有一個新的家庭作業,我沒有再做任何事情了。
任務是:
查看 2013 年 11 月 10 日至 2013 年 11 月 20 日期間從法蘭克福飛往達拉斯的所有航班的航班日期 (DATE_FLY)、航班號 (FLY_NR)、制造商 (MANUF)、型別 (TYP) 和序列號 (SER_NR)。
這是departure_table
:
DATE_FLY | FLY_NR | MANUF | 典型值 | PER_NR | SER_NR | TIME_START |
---|---|---|---|---|---|---|
06.07.13 | LH-888 | 波音公司 | B747 | 9fg-he-ztu8 | 10010071 | 11.23 |
2013 年 8 月 10 日 | LH-238 | 空客 | A320 | z3et-bwe7 | 10010072 | 22.06 |
13.11.13 | LH-341 | 波音公司 | B737 | ba23-0012 | 10010001 | 10.23 |
14.11.13 | LH-358 | 波音公司 | B737 | ba23-0012 | 10010001 | 8.17 |
13.11.13 | LH-553 | 波音公司 | B777 | xv23-0889 | 10010002 | 16.53 |
15.11.13 | LH-421 | 波音公司 | B777 | xv56-3142 | 10010002 | 14.45 |
17.11.13 | LH-789 | 空客 | A330 | 45-6789 | 10010003 | 8.11 |
14.11.13 | LH-112 | 波音公司 | B737 | ba23-0034 | 10010001 | 8.14 |
17.11.13 | LH-421 | 波音公司 | B777 | xv23-0889 | 10010002 | 16.26 |
18.11.13 | LH-223 | 空客 | A380 | ab-45-6xf | 10010004 | 9.45 |
19.11.13 | LH-634 | 空客 | A350 | 5478-敬畏3 | 10010005 | 20.25 |
2014 年 2 月 18 日 | LH-238 | 空客 | A320 | z3et-bwe7 | 10010072 | 23.06 |
這就是fly_table
我需要加入的:
FLY_NR | START_FLY | DEST_FLY | TIME_FLY | 公里 |
---|---|---|---|---|
LH-341 | 薩爾布呂肯 | 漢堡 | 1.2 | 490 |
LH-358 | 薩爾布呂肯 | 萊比錫 | 1.1 | 430 |
LH-553 | 萊比錫 | 漢堡 | .5 | 290 |
LH-112 | 盧森堡 | 倫敦 | 1.1 | 480 |
LH-421 | 盧森堡 | 安卡拉 | 2.5 | 2300 |
LH-789 | 盧森堡 | 紐約 | 3.5 | 8300 |
LH-223 | 法蘭克福 | 達拉斯 | 3.9 | 8600 |
LH-634 | 法蘭克福 | 莫斯考 | 2.3 | 2020 |
LH-888 | 法蘭克福 | 北京 | 9.5 | 7780 |
LH-238 | 慕尼黑 | 柏林 | 1.1 | 479 |
我寫了以下查詢,但它顯示“未找到資料”:
select
dp.date_fly, dp.fly_nr, dp.manuf, dp.typ, dp.ser_nr
from
departure_table dp, fly_table fl
where
dp.fly_nr = fl.fly_nr
and start_fly = 'Frankfurt'
and dest_fly = 'Dallas'
and dp.date_fly between 10.11.2013 and 20.11.2013;
我嘗試了一個簡單的連接,但我仍然只收到“未找到資料”的訊息:
select
dp.date_fly, dp.fly_nr, dp.manuf, dp.typ, dp.ser_nr
from
departure_table dp, fly_table fl
where
dp.fly_nr = fl.fly_nr;
我不知道我做錯了什么......如果有人可以通過 join 功能幫助解決這個問題,我將非常感激。
我需要得到這個結果:
DATE_FLY | FLY_NR | MANUF | 典型值 | SER_NR |
---|---|---|---|---|
13 年 11 月 18 日 | LH-223 | 空客 | A380 | 10010004 |
謝謝!
uj5u.com熱心網友回復:
該列
FLY_DATE
具有VARCHAR2
格式
這是不好的做法。如果您有日期,請將其存盤為日期。如果您必須將其存盤為字串(真的,不要這樣做),然后使用 ISO8601 格式存盤它,該格式YYYY-MM-DD
可以按字母順序排序為日期順序(而不是DD-MM-YYYY
不容易排序)。
由于您使用的是(大部分不可用的)字串格式,因此您需要DATE
使用該TO_DATE
函式將其轉換為 a 并將其與DATE
文字進行比較:
select dp.date_fly,
dp.fly_nr,
dp.manuf,
dp.typ,
dp.ser_nr
from departure_table dp
INNER JOIN fly_table fl
ON dp.fly_nr = fl.fly_nr
where start_fly = 'Frankfurt'
and dest_fly = 'Dallas'
and TO_DATE(dp.date_fly, 'DD.MM.YYYY') between DATE '2013-11-10' and DATE '2013-11-20';
其中,對于樣本資料:
CREATE TABLE departure_table (DATE_FLY, FLY_NR, MANUF, TYP, PER_NR, SER_NR, TIME_START) AS
SELECT '06.07.2013', 'LH-888', 'Boeing', 'B747', '9fg-he-ztu8', 10010071, 11.23 FROM DUAL UNION ALL
SELECT '08.10.2013', 'LH-238', 'Airbus', 'A320', 'z3et-bwe7', 10010072, 22.06 FROM DUAL UNION ALL
SELECT '13.11.2013', 'LH-341', 'Boeing', 'B737', 'ba23-0012', 10010001, 10.23 FROM DUAL UNION ALL
SELECT '14.11.2013', 'LH-358', 'Boeing', 'B737', 'ba23-0012', 10010001, 8.17 FROM DUAL UNION ALL
SELECT '13.11.2013', 'LH-553', 'Boeing', 'B777', 'xv23-0889', 10010002, 16.53 FROM DUAL UNION ALL
SELECT '15.11.2013', 'LH-421', 'Boeing', 'B777', 'xv56-3142', 10010002, 14.45 FROM DUAL UNION ALL
SELECT '17.11.2013', 'LH-789', 'Airbus', 'A330', '45-6789', 10010003, 8.11 FROM DUAL UNION ALL
SELECT '14.11.2013', 'LH-112', 'Boeing', 'B737', 'ba23-0034', 10010001, 8.14 FROM DUAL UNION ALL
SELECT '17.11.2013', 'LH-421', 'Boeing', 'B777', 'xv23-0889', 10010002, 16.26 FROM DUAL UNION ALL
SELECT '18.11.2013', 'LH-223', 'Airbus', 'A380', 'ab-45-6xf', 10010004, 9.45 FROM DUAL UNION ALL
SELECT '19.11.2013', 'LH-634', 'Airbus', 'A350', '5478-awe3', 10010005, 20.25 FROM DUAL UNION ALL
SELECT '18.02.2014', 'LH-238', 'Airbus', 'A320', 'z3et-bwe7', 10010072, 23.06 FROM DUAL;
CREATE TABLE fly_table (FLY_NR, START_FLY, DEST_FLY, TIME_FLY, KM) AS
SELECT 'LH-341', 'Saarbruecken', 'Hamburg', 1.2, 490 FROM DUAL UNION ALL
SELECT 'LH-358', 'Saarbruecken', 'Leipzig', 1.1, 430 FROM DUAL UNION ALL
SELECT 'LH-553', 'Leipzig', 'Hamburg', .5, 290 FROM DUAL UNION ALL
SELECT 'LH-112', 'Luxemburg', 'London', 1.1, 480 FROM DUAL UNION ALL
SELECT 'LH-421', 'Luxemburg', 'Ankara', 2.5, 2300 FROM DUAL UNION ALL
SELECT 'LH-789', 'Luxemburg', 'New-York', 3.5, 8300 FROM DUAL UNION ALL
SELECT 'LH-223', 'Frankfurt', 'Dallas', 3.9, 8600 FROM DUAL UNION ALL
SELECT 'LH-634', 'Frankfurt', 'Moskau', 2.3, 2020 FROM DUAL UNION ALL
SELECT 'LH-888', 'Frankfurt', 'Peking', 9.5, 7780 FROM DUAL UNION ALL
SELECT 'LH-238', 'Muenchen', 'Berlin', 1.1, 479 FROM DUAL;
輸出:
DATE_FLY | FLY_NR | MANUF | 典型值 | SER_NR |
---|---|---|---|---|
18.11.2013 | LH-223 | 空客 | A380 | 10010004 |
小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/506875.html
下一篇:Oracle11g所需的下表輸出