簡體   English   中英

根據第一個查詢答案聯接兩個SQL查詢

[英]Join two SQL Queries based on first query answer

我一直到處尋找,這將是向某人尋求幫助的最佳網站。 我必須進行SQL查詢,以檢查特定航班的預訂總額,然后根據預訂數量,系統應提供飛機的選擇。 第一個查詢有效,它可以找到預訂總數,而且我認為我有選擇飛機的案例陳述權,但是我找不到物理上同時連接這兩個查詢的方式,我嘗試使用統一,內部連接和嵌套查詢,但看來找不到預訂的座位總數(第一個查詢的答案),請幫幫我。

第一個SQL查詢(查找預訂總數)

SELECT count(bookingdetails.FlightID)AS TotalNumberOfSeatsBooked,flightdetails.FlightID
FROM  bookingdetails, bookingdetails AS TEMP,flightdetails
WHERE bookingdetails.BookingID = TEMP.BookingID
AND bookingdetails.FlightID= flightdetails.FlightID
Group BY FlightID;

第二個SQL查詢(根據預訂數量選擇飛機類​​型)

    SELECT CASE chooseaircraft
    WHEN TotalNumberOfSeatsBooked <= 110 THEN 'BA 146-200'
    ELSE'Embraer 170'
    END AS ChoiceOfAircraft
    FROM aircrafttype;

謝謝大家。在我回答一個問題后,我認為我正朝着正確的方向進行合並兩個查詢,該代碼現在在子查詢中顯示了座位總數和航班號,但飛機列的選擇仍然沒有顯示,但確實如此如果您自行運行查詢,我就知道我已經接近完成了,我將感謝您提供任何幫助以改善SQL,現在我擁有的代碼是:

SELECT count(bookingdetails.FlightID)AS TotalNumberOfSeatsBooked,flightdetails.FlightID
FROM  bookingdetails, bookingdetails AS TEMP,flightdetails
WHERE  bookingdetails.BookingID = TEMP.BookingID
AND bookingdetails.FlightID= flightdetails.FlightID
AND bookingdetails.FlightID= flightdetails.FlightID IN(
SELECT CASE WHEN count(bookingdetails.FlightID) <= 110 THEN 'BA 146-200'
ELSE'Embraer 170' 
END AS ChoiceOfAircraft
FROM bookingdetails,flightdetails)
Group BY FlightID;

您可以在CASE語句中使用相同的表達式count(bookingdetails.FlightID) (或)將第一個查詢包裝在子查詢中,並訪問外部查詢中的列。 那是

CASE WHEN count(bookingdetails.FlightID) <= 110 THEN 'BA 146-200'
ELSE'Embraer 170'
END AS ChoiceOfAircraft

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM