【问题标题】:Aggregate Function Error With Basic Query基本查询的聚合函数错误
【发布时间】:2020-03-31 20:22:18
【问题描述】:

我的数据库是基于电影院的,我正在尝试查询显示为每部电影放映购买的门票数量。此查询涉及的表是 BookingsScreeningsMovies

这是 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


    【解决方案1】:

    停止尝试计算 Bookings 并将它们相乘。

    每一行已经告诉您售出了多少张门票。

    SELECT
      [Screenings].[Screening Date],
      [Screenings].[Screening Time],
      [Movie].[Movie],
      SUM([Bookings].[Quantity]) AS [Seats Bought]
    FROM
      [Bookings]
    INNER JOIN
      [Screenings]
    ON [Bookings].[Screening ID] = [Screenings].[Screening ID]
    INNER JOIN
       [Movies]
    ON  [Movies].[Movie ID] = [Screenings].[Movie ID]
    GROUP BY
      [Screenings].[Screening Date],
      [Screenings].[Screening Time],
      [Movie].[Movie];
    

    【讨论】:

      【解决方案2】:

      在 SELECT 语句中,Movies.Quantity 和 [Bookings Per Screening]*[Quantity] AS [Tickets per Screening] 之间似乎缺少 ,。

      【讨论】:

      • 对不起,如果你刷新页面你会看到我稍微编辑了帖子。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多