Microsoft Access SQL查询 - 实例

时间:2014-11-11 17:57:23

标签: sql ms-access

我想找到有两个以上房间预订的模块(即表中有两个实例)并显示预订数量。

在我的房间里有桌子

 bookingID | roomCode | moduleCode | dayReq | timeReq | semester | classSize 
    1      |  AM200   |  CT230     |  Tues  | 14:00   |     1    |    130
   10      |  AM200   |  ST237     |  Tues  
   11      |  SC005   |  EC273     |  Mon   
   12      |  AM150   |  EC273     |  Tues  
    2      |  AM200   |  CT230     |  Wed
    3      |  IT250   |  CT229     |  Fri
    4      |  SC005   |  CT2103    |  Mon
    5      |  AM200   |  ST237     |  Mon
    6      |  IT125G  |  CT2101    |  Mon
    7      |  IT204   |  CT2101    |  Tues
    8      |  AC216   |  CT2103    |  Fri
    9      |  UC102   |  CT229     |  Fri
   13      |  IT204   |  CT335     |  Mon
   14      |  SC002   |  CT335     |  Wed

等。

我不确定如何创建一个询问表中实例的查询,例如,moduleCode CT230可能与bookingID 4 7和13相关联,但是如何显示实例并将其应用于SQL查询?

1 个答案:

答案 0 :(得分:1)

根据您问题中的详细信息,我认为这是您正在寻找的内容:

SELECT 
    COUNT(BookingID) AS 'Number of bookings'
    , ModuleCode
FROM roomBooking
GROUP BY ModuleCode
HAVING COUNT(BookingID) > 2

<强>更新

您可能实际上正在寻找至少两个房间预订的模块,而不是&#34;超过两个房间预订&#34; (引自你的问题)。

使用您提供的示例数据,上述查询确实不会返回任何结果(但根据您的问题请求,它可以正常工作)。

如果您正在寻找至少有两个房间预订的模块,那么下面的查询将返回数据。

SELECT 
    COUNT(BookingID) AS 'Number of bookings'
    , ModuleCode
FROM roomBooking
GROUP BY ModuleCode
HAVING COUNT(BookingID) >= 2

SQLFiddle也支持此查询,具体取决于您提供的示例数据。