2013-09-27 30 views
-3

enter image description here請解決這個選擇查詢在MS Access

enter image description here

這裏的關係和Pasenger_detail形式的圖片和我寫的查詢選擇seat_no但它不能正常工作。它只顯示所有座位按照巴士預留ID。但要求只顯示那些尚未選定的項目。這裏是查詢

"Select seat_no.seat_no FROM Seat_No Where seat_no.seat_no <= (select br_info.Seats_Reserved from br_info where ((Br_info.br_id)=[forms]![pasenger_detail]![br_id]) AND (Seat_No.seat_no) NOT IN (SELECT Pasenger_Detail.Seat_No FROM Pasenger_Detail WHERE (((Pasenger_Detail.Group_ID)=[forms]![Pasenger_Detail]![Group_ID]) AND ((Pasenger_Detail.BR_ID)=[forms]![Pasenger_Detail]![BR_ID]))));" 

回答

0
SELECT S.Seat_No 
FROM Seat_No AS S 
WHERE S.Seat_No Not In 
(
    SELECT P.Seat_No 
    FROM BR_Info AS B INNER JOIN Pasenger_Detail AS P ON B.BR_ID = P.BR_ID 
    WHERE B.BR_ID = Forms!pasenger_detail!BR_ID 
    AND B.Group_ID = Forms!Pasenger_Detail!Group_ID 
) 

在我加盟BR_InfoPassenger_Detail一起上面的查詢。這是一個INNER JOIN,這意味着該記錄必須存在於BR_InfoPassenger_Detail之間才能被考慮。然後我使用Not In來獲取子查詢中未包含的所有​​。

+0

請問你能告訴我什麼是不同的b/w內連接(加入)和子查詢。他們是兩種不同的技術用於相同的目的 –

+0

他們只是兩種不同的方式來做一些事情。一個連接應該運行得更快,然後嚴重的嵌套級別的子查詢 – Linger

+0

老闆您的查詢開始工作完美,早些時候我的也給了我一些數據。但目前的問題對我來說很奇怪。當我輸入三個記錄的數據時,它輸入正確,但是當我排在第四位時,seat_no組合框沒有顯示任何內容。我爲此嘗試了很多時間,但同樣的問題。然後我關閉數據庫並重新運行它。它開始工作,但在兩三條記錄後發生了同樣的情況我想也許這是由於lost_focus事件,因爲我在那個事件中寫了那個查詢。我是否需要在任何其他事件中編寫查詢或其他任何問題。任何建議,請。 –