이 SQL 쿼리를 가지고 있는데 Enter와 Exit Events의 값이 필요하므로 VehicleMonitoring Log Table에 두 번 가입해야합니다. 여기서 6은 입력하고 7은 Exit입니다.더블 내부 조인 - 잘못된 결과
문제는이 스크립트를 실행할 때 입력 시간이 항상 동일하다는 것입니다.
Select top 100
aEnter.iAssetId as AssetEnter,
aEnter.iAssetId as AssetExit,
vmEnter.dtUTCDateTime,
g.iGeofenceId,
g.sGeofenceName,
c.sCategoryName,
c.iCategoryId,
s.sSiteName,
s.iSiteId,
vmEnter.dtUTCDateTime as EnterTime,
vmExit.dtUTCDateTime as ExitTime
--,
--convert(char(8),dateadd(s,DATEDIFF(s,vmEnter.dtUTCDateTime, vmExit.dtUTCDateTime),'1900-1-1'),8) as Times
From Sites s
Inner Join Categories c on s.iSiteId = c.iSiteId
Inner Join Assets aEnter on c.iCategoryId = aEnter.iCategoryId
Inner Join VehicleMonitoringLog vmEnter on vmEnter.iAssetId = aEnter.iAssetId and vmEnter.eEventCode = 6
Inner Join VehicleMonitoringLog vmExit on vmExit.iAssetId = aEnter.iAssetId and vmExit.eEventCode = 7
Inner Join Geofences g on g.iGeofenceId = vmEnter.iGeofenceId
결합이 잘못 되었습니까?
조인은 iAssetID에 있습니다. 귀하의 결과에 AssetEnter (iAssetId)가 모든 레코드에 대해 동일하게 표시되는 것처럼 보입니다. 따라서 입력 시간이 적절할 것으로 기대됩니다. –
은 코드가 모든 출입 시간을 나열하는 것처럼 보입니다. 출구가 주어진 출품과 관련되어 있음을 어떻게 알 수 있습니까? – mrtig
나는 mrtig에 동의한다. vehicleMonitoringLog의 두 별명 사이의 관계를 정의해야합니다. –