2016-10-04 10 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' 

はこの男と間違って何ですか?エラーはサブクエリから発生しています。それはやって_is_何を:あなたは直接直接サブクエリでt1.LogTimeにアクセスカント以来サブクエリと

SQL Schema

+0

AND t1.LogTime BETWEEN t2.StartTime AND t2.StopTimeにこの条件を移動しよう違う? –

答えて

0

問題は、更新されたスクリプトを試してみてください、あなたは私に言うJOIN

... 
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' 
関連する問題