-1

找到在单个电影租赁上花费低于 3 美元但总花费超过 15 美元的客户?

我写的查询如下

SELECT CustomerID,Customer.CustomerFirstName,Customer.CustomerSurname,Total FROM (SELECT DISTINCT Customer.CustomerID,Customer.CustomerFirstName,Customer.CustomerSurname,sum(([Rental].[Quantity])*([Film].[FilmPrice])) AS Total
FROM Film RIGHT JOIN (Customer INNER JOIN Rental ON Customer.CustomerID = Rental.CustomerIDFk) ON Film.FilmID = Rental.FlimIDFk 
GROUP BY Customer.CustomerID,Customer.CustomerFirstName,Customer.CustomerSurname) T WHERE  Total>15;

现在我该如何应用第二个条件,即 FilmPrice<3 请帮帮我。

这是 ERD 谢谢

4

2 回答 2

0

只需在子查询中添加另一个 where 子句,在您加入之后但在 group by for 之前WHERE FilmPrice<3

于 2021-03-03T22:08:48.173 回答
0

您想找到他们租用的电影的最高价格小于 3 并且他们租用的所有电影的总价格大于 15 的客户。

像这样的东西:

SELECT CustomerID,
       CustomerFirstName,
       CustomerSurname
FROM   Customer
WHERE  CustomerId IN (
  SELECT r.CustomerIDFk
  FROM   Rental r
         INNER JOIN Film f
         ON ( f.FilmId = e.FilmIdFk )
  GROUP BY r.CustomerIdFk
  HAVING MAX(f.FilmPrice) < 3
  AND    SUM(f.FilmPrice * r.Quantity)>15
)
于 2021-04-21T13:07:06.740 回答