Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 查询中出错:无法绑定多部分标识符“XYZ”_Sql_Sql Server_Inner Join_Alias - Fatal编程技术网

Sql 查询中出错:无法绑定多部分标识符“XYZ”

Sql 查询中出错:无法绑定多部分标识符“XYZ”,sql,sql-server,inner-join,alias,Sql,Sql Server,Inner Join,Alias,只是一个简单的问题。。 我有以下sql查询,它在执行时抛出了一个错误。此查询使用单表的内部联接。请帮助,为什么这会在语句中抛出错误 SELECT OutOps.MachineId, OutOps.CBPOsVersion, OutOps.LastTimeStamp FROM CBPOperationStatsDaily AS OutOps INNER JOIN (SELECT MAX(LastTimeStamp) , MachineId FROM CBPOperationSta

只是一个简单的问题。。 我有以下sql查询,它在执行时抛出了一个错误。此查询使用单表的内部联接。请帮助,为什么这会在语句中抛出错误

SELECT OutOps.MachineId, OutOps.CBPOsVersion, OutOps.LastTimeStamp
FROM  CBPOperationStatsDaily AS OutOps
INNER JOIN
    (SELECT MAX(LastTimeStamp) , MachineId
    FROM CBPOperationStatsDaily AS InOps
    GROUP BY InOps.MachineID)
ON (InOps.LastTimeStamp=OutOps.LastTimeStamp)
编辑:添加缺少的括号,仍然失败

编辑:找到了解决方案,很抱歉管理员对问题的解释不准确

决议:
有两个错误,第一个错误是没有命名MAX列,第二个错误是没有在“ON”语句中使用不正确的InOps。对于Join nameON,将使用外部表别名,而对于GROUP BY InOps,将使用外部表别名

子查询的InOps缺少表别名,maxLastTimeStamp列也缺少别名

SELECT OutOps.MachineId, OutOps.CBPOsVersion, OutOps.LastTimeStamp
FROM  CBPOperationStatsDaily AS OutOps
INNER JOIN
    (  SELECT MAX(LastTimeStamp) as LTS , MachineId
       FROM CBPOperationStatsDaily
       GROUP BY MachineID) AS InOps
ON (InOps.LTS=OutOps.LastTimeStamp)

更改联接台的alias InOps的位置:

SELECT OutOps.MachineId, OutOps.CBPOsVersion, OutOps.LastTimeStamp FROM  CBPOperationStatsDaily AS OutOps INNER JOIN
    (SELECT MAX(LastTimeStamp) as LastTimeStamp , MachineId
    FROM CBPOperationStatsDaily
    GROUP BY MachineID) as InOps ON (InOps.LastTimeStamp=OutOps.LastTimeStamp)

内部查询后缺少右括号。因此,InOps的表别名需要位于内部查询之后。i、 内部连接。。。作为寻求调试帮助的问题,为什么这段代码不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。另外请注意,SO不是调试服务。而且,您在最后一个字段中有一个输入错误。输出应该是输出?若你们的问题用答案解决了,那个么标记为答案@ConfusednerDi如果运行此查询,则在“¨”附近出现错误语法错误:从CBPoperationStatsDay中选择OutOps.MachineId、OutOps.CBPOsVersion、OutPos.LastTimeStamp作为OutOps内部联接选择MAXLastTimeStamp,来自CBPOperationStatsDaily的MachineId由MachineId InOps在InOps上分组。LastTimeStamp=OutOps.LastTimeStamp–只是一个小错误:修复,谢谢你在主查询中使用了错误的别名。我刚刚复制了他的版本并修复了真正的问题。我没发现他也有打字错误。非常感谢。