use*_*861 3 t-sql sql-server calculated-columns ambiguous
我花了几个小时研究一个非常简单的T-SQL语句的答案.
情况就是这样.我想通过帮助台数据库进行报告.我有一个表(calllog),其中包含有关故障单的基本非重复信息和另一个事务表(Asgnmnt),其中包含对不同人员的各种分配以解决问题.我只是想确定Asgnmnt表中的最后一个分配,将它与呼叫日志文件链接,并使用外部选择中的数据来进行更多的数据报告.Asgnmnt表包含一个字段调用HEATSeq.给定CallID的最高HEATSeq将是最后一次分配.这是我的T-SQL语句和错误.
SELECT
Callid,
Priority,
RecvdDate,
RecvdTime,
ClosedDate,
ClosedTime,
CustID,
CallType,
CallDesc,
HeatSEQ#
FROM
(Select
a.Callid,
a.Priority,
a.RecvdDate,
a.RecvdTime,
a.ClosedDate,
a.ClosedTime,
a.CustID,
a.CallType,
a.CallDesc,
(select TOP 1 HEATSeq from Asgnmnt f
WHERE a.CallID = f.CallID
ORDER BY HEATSeq desc) as HeatSeq#
FROM dbo.CallLog a
where a.CallID = '00520308') as z
LEFT OUTER JOIN dbo.Asgnmnt c on z.Callid=c.CallID and z.HeatSeq# = c.HEATSeq
Run Code Online (Sandbox Code Playgroud)
这是[错误]
Msg 209, Level 16, State 1, Line 2
Ambiguous column name 'Callid'.
Msg 209, Level 16, State 1, Line 9
Ambiguous column name 'CallType'
Run Code Online (Sandbox Code Playgroud)
您可能在z和c中都有Callid和CallType(至少).对于外部查询中的至少那些列,请使用表别名:
SELECT
z.Callid, -- No longer ambiguous
z.Priority,
z.RecvdDate,
z.RecvdTime,
z.ClosedDate,
z.ClosedTime,
z.CustID,
z.CallType,
z.CallDesc,
z.HeatSEQ#
FROM
(Select
a.Callid,
a.Priority,
a.RecvdDate,
a.RecvdTime,
a.ClosedDate,
a.ClosedTime,
a.CustID,
a.CallType,
a.CallDesc,
(select TOP 1 HEATSeq from Asgnmnt f
WHERE a.CallID = f.CallID
ORDER BY HEATSeq desc) as HeatSeq#
FROM dbo.CallLog a
where a.CallID = '00520308') as z
LEFT OUTER JOIN dbo.Asgnmnt c on z.Callid=c.CallID and z.HeatSeq# = c.HEATSeq
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |