I have the following table named 'MoviesInStock'
我想选择上个月的最新电影。 在这种情况下,结果应该只是电影' The Mummy'因为他是最新的。
我正在尝试下一个查询:
SELECT MovieName
FROM MovieInStock
WHERE Month = (SELECT MAX(Month) FROM MovieInStock) AND
(SELECT MovieName FROM MovieInStock WHERE Year = (SELECT MAX(Year) FROM MovieInStock))
但选择AND运算符并不那么聪明。我还尝试使用SELECT INTO #
创建一个临时表来选择Max Year,然后在temp表上选择Max Month,但随后它变得很复杂。
答案 0 :(得分:1)
你的问题太复杂了。您可以将TOP
与ORDER BY
一起使用。
因为你说“电影”:
select top (1) with ties mis.*
from movieinstock mis
order by year desc, month desc
答案 1 :(得分:0)
其他解决方案,但更好的是戈登解决方案
with maxdt as (
select MAX(Month) MaxMonth, MAX(Year) MaxYear FROM MovieInStock
)
SELECT top 1 MovieName
FROM MovieInStock f1
inner join maxdt f2 on f1.Month=f2.MaxMonth and f1.Year=MaxYear