【发布时间】:2020-03-31 20:22:18
【问题描述】:
我的数据库是基于电影院的,我正在尝试查询显示为每部电影放映购买的门票数量。此查询涉及的表是 Bookings、Screenings 和 Movies。
这是 Bookings 表:
放映表:
还有电影表:
到目前为止,我已经设法使查询达到了能够显示每次放映的预订量的程度,但这并没有考虑到单次预订可能会购买多张票的事实,因此 Bookings 中的 Quantity 列:
这是让我走到这一步的 SQL 代码:
SELECT Count(Bookings.[Booking ID])
AS [Bookings Per Screening],
Bookings.[Screening ID],
Movies.Movie
FROM Movies
INNER JOIN (Screenings
INNER JOIN Bookings
ON
Screenings.[Screening ID] = Bookings.[Screening ID])
ON Movies.[Movie ID] = Screenings.[Movie ID]
GROUP BY
Bookings.[Screening ID], Movies.Movie,
Screenings.[Movie ID], Movies.[Movie ID];
但是,当我尝试添加一个字段来计算每次放映购买的门票数量,而不是每次放映的预订量时,每次放映都会显示多行:
这是产生该代码的代码:
SELECT Count(Bookings.[Booking ID])
AS [Bookings Per Screening],
Bookings.[Screening ID],
Movies.Movie,
[Bookings Per Screening]*[Quantity] AS [Ticket Per Booking],
Bookings.Quantity
FROM Movies
INNER JOIN (Screenings
INNER JOIN Bookings
ON Screenings.[Screening ID] = Bookings.[Screening ID])
ON Movies.[Movie ID] = Screenings.[Movie ID]
GROUP BY Bookings.[Screening ID], Movies.Movie,
Screenings.[Movie ID], Movies.[Movie ID], Bookings.Quantity;
我必须怎么做才能让它工作?
【问题讨论】:
标签: sql ms-access group-by relational-database inner-join