此MS Access 2007子查询中存在错误

时间:2013-09-20 16:52:56

标签: ms-access ms-access-2007 access-vba ms-access-2010 ms-access-2003

我有两张桌子。第一表passenger_info具有关于乘客和第二表seat_no的信息,只有一个字段是seat_no。

现在我需要在seat_no字段中获取座位数,但仅包括尚未分配给任何乘客的所有座位。这是使用表单选择值检查子查询中的group_id和br_id,然后将结果值进一步与主查询进行比较。这个值是否存在于主要查询的比较中,然后在passenger_info表中为seat_no字段选择了这个座位号,并且在处理整个查询时这样做。所有未分配的席位都列在passenger_info表格的seat_no字段组合框中。

所以我认为这个查询有一些小错误。通过计算它我可以解决这个问题。

 select seat_no.seat_no 
 FROM Seat_No 
 where seat_no.seat_no 
           ( 
             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))
           )               
  is null;

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题(假设seat_no在两个表中都是相同的数据类型):

select seat_no.seat_no 
FROM Seat_No 
where 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))
       )