【发布时间】:2016-05-27 17:51:28
【问题描述】:
我有这个 SQL 查询:
CREATE VIEW QueryV5
AS
SELECT DISTINCT
C.Name, P.Name, SUM(Duration.Time) AS TotalTime
FROM
cmpt354_starwars.dbo.Characters C,
cmpt354_starwars.dbo.Planets P,
(SELECT (T.[Time of Departure] - T.[Time of Arrival]) AS Time
FROM cmpt354_starwars.dbo.TimeTable T
WHERE T.CharacterName = C.Name AND T.PlanetName = P.Name) AS Duration
WHERE
P.Affiliation = 'neutral'
我得到了错误:
消息 4104,级别 16,状态 1,过程 QueryV5,第 3 行
无法绑定多部分标识符“C.Name”。消息 4104,级别 16,状态 1,过程 QueryV5,第 3 行
无法绑定多部分标识符“P.Name”。
我不明白发生了什么,为什么它不允许我使用 Duration 作为嵌套查询的别名。我已经将我的查询与其他人的查询进行了比较,但我看不到任何语法差异。怎么回事?
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(20 多年前),不鼓励使用它
标签: sql sql-server