2016-10-04 54 views
1

我需要一些来自日志的数据,例如谁驾车XY天。无法绑定多部分标识符“t1.LogTime”。我错过了什么?

查询是:

SELECT 
t1.LogTime, 
t1.UnitId, 
t1.Alarm, 
t1.Speed, 
t1.Km, 
t1.GPSVisibleSats, 
t1.InputMask, 
t1.AX0, 
t1.Country, 
t1.City, 
t1.Street, 
t3.Name 
FROM dbo.t_log AS t1 
LEFT JOIN 
    (SELECT TOP 1 * FROM dbo.t_driver_log AS v1 WHERE v1.UnitId = '391.03.016' AND t1.LogTime BETWEEN v1.StartTime AND v1.StopTime) AS t2 ON (t1.UnitId = t2.UnitId) 
LEFT JOIN dbo.t_driver AS t3 ON (t2.DriverId = t3.DriverId) 
WHERE t1.UnitId = '391.03.016' AND t1.LogTime BETWEEN '2016-10-04 00:00:00' AND '2016-10-04 23:59:59' 

什么不对的家伙?该错误来自子查询。

SQL Schema

+0

这种情况下你告诉我:什么_is_它做错误? –

回答

0

问题的子查询既然你不能在子查询中直接直接访问t1.LogTime,尝试更新脚本,尝试移动AND t1.LogTime BETWEEN t2.StartTime AND t2.StopTimeJOIN

... 
FROM dbo.t_log AS t1 
LEFT JOIN 
(SELECT TOP 1 * 
FROM dbo.t_driver_log AS v1 
WHERE v1.UnitId = '391.03.016' 
) AS t2 ON (t1.UnitId = t2.UnitId AND t1.LogTime BETWEEN t2.StartTime AND t2.StopTime) 
LEFT JOIN dbo.t_driver AS t3 ON (t2.DriverId = t3.DriverId) 
WHERE t1.UnitId = '391.03.016' AND t1.LogTime BETWEEN '2016-10-04 00:00:00' AND '2016-10-04 23:59:59' 
相关问题