【发布时间】:2021-03-18 14:47:43
【问题描述】:
SELECT DISTINCT
t1.Movie, t1.Genre, t1.Author, t1.[Watch Date]
FROM
(SELECT
m.[Name] AS Movie, mg.Genre, a.Author,
[Watch Date] = CONVERT(VARCHAR, wh.[Watch Date], 107)
FROM
Movie m, [Movie Genres] mg, Author a, [Watch History] wh
WHERE
Genre LIKE '%TV Shows%'
AND m.GenreID = mg.Id
AND m.AuthorID = a.Id
AND m.Id = wh.MovieId
ORDER BY
[Watch Date] DESC) t1 --LINE 64
GROUP BY
t1.Movie
我收到此错误:
消息 1033,第 15 级,状态 1,第 64 行
ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非还指定了 TOP、OFFSET 或 FOR XML。
我正在尝试选择具有不同电影名称的表的第一个数据。 所以我想存储每部电影的每一个 FIRST 记录
【问题讨论】:
-
这能回答你的问题吗? SQL Error with Order By in Subquery
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(25 多年前),不鼓励使用它 -
查看
cross apply的解决方案,在this question/answer 中解释。 -
大概一部电影也可以有多种类型。哪里有多个,你要显示哪一个?另外,您将日期转换为 varchar 是否有任何特殊原因?
标签: sql-server tsql