-1

I'm getting this error in different places and I have no idea why so I was wondering if anyone here might have any clues. Here's the sql.

select Intranet.dbo.tblPeople.FirstName,
     Intranet.dbo.tblPeople.LastName,
     Intranet.dbo.tblPeople.CellPhone
     tblActivities.OnSiteSupervisorID,
     tblActivities.OffSiteSupervisorID,
     tblProjects.projectid,
     tblVehicleData.Description AS vehicle,
     tblVehicleData.VehicleID,
    tblVehicleData.ActivityID as ActivityID, 
     tblProjects.ProjectName,
     tblActivities.numPersons,
     tblActivities.Description,
     tblActivities.ChannelNumber,
     tblActivities.StartDate,
     tblActivities.EndDate,
     tblActivities.estimatedExitTime,
     tblLocations.locationname,
from Intranet.dbo.tblPeople,
     smartroadmangement.dbo.tblVehicleData,
     smartroadmangement.dbo.tblProjects,
     smartroadmangement.dbo.tblActivities 
left join smartroadmangement.dbo.tblLocations 
    on smartroadmangement.dbo.tblActivities.locationId = smartroadmangement.dbo.tblLocations.locationid
left join Intranet.dbo.tblPeople as people 
    on people.PersonID = smartroadmangement.dbo.tblActivities.OnSiteSupervisorID
left join tblActivities as Activities 
    on Activities.ActivityID = tblVehicleData.ActivityID
left join tblActivities as Activitiez 
    on Activitiez.ProjectID = tblProjects.ProjectID 
WHERE (smartroadmangement.dbo.tblActivities.StartDate Between '2012-07-15 14:17:09' and '2012-07-15 20:17:09') 
    AND (smartroadmangement.dbo.tblActivities.EndDate Between '2012-07-15 20:17:09'and '2012-07-15 23:17:09')
Taryn
  • 242,637
  • 56
  • 362
  • 405
Guyver
  • 155
  • 1
  • 4
  • 15
  • Which identifier is having the problem? – Abe Miessler Jul 30 '12 at 20:44
  • Forgot to add I'm getting the error on these two lines. left join tblActivities as Activities on Activities.ActivityID = tblVehicleData.ActivityID left join tblActivities as Activitiez on Activitiez.ProjectID = tblProjects.ProjectID – Guyver Jul 30 '12 at 20:45
  • I'm confused why you have multiple tables in your FROM, and then join them explicitly too. I recommend you read this question regarding your use of implicit joins http://stackoverflow.com/questions/894490/sql-left-join-vs-multiple-tables-on-from-line – hatchet - done with SOverflow Jul 30 '12 at 20:49
  • Identical to [The multi-part identifier could not be bound](http://stackoverflow.com/questions/7314134/the-multi-part-identifier-could-not-be-bound). – Andriy M Jul 30 '12 at 21:58

2 Answers2

5

My first suggestion would be to use proper JOIN syntax on all of your JOINs. You are joining using commas and JOIN syntax which is making is difficult to debug your query.

Your comment stated you are getting the error here:

left join tblActivities as Activities 
    on Activities.ActivityID = tblVehicleData.ActivityID
left join tblActivities as Activitiez 
    on Activitiez.ProjectID = tblProjects.ProjectID

Is that table actually smartroadmangement.dbo.tblActivities in your query?

Based on you comment below, you might want to try:

left join smartroadmangement.dbo.tblActivities as Activities 
    on Activities.ActivityID = tblVehicleData.ActivityID
left join smartroadmangement.dbo.tblActivities as Activitiez 
    on Activitiez.ProjectID = tblProjects.ProjectID

here is a query updated with proper JOIN syntax:

select ppl.FirstName,
     ppl.LastName,
     ppl.CellPhone
     a1.OnSiteSupervisorID,
     a1.OffSiteSupervisorID,
     tblProjects.projectid,
     v.Description AS vehicle,
     v.VehicleID,
     v.ActivityID as ActivityID, 
     tblProjects.ProjectName,
     a1.numPersons,
     a1.Description,
     a1.ChannelNumber,
     a1.StartDate,
     a1.EndDate,
     a1.estimatedExitTime,
     l.locationname,
from Intranet.dbo.tblPeople ppl
left join smartroadmangement.dbo.tblActivities a1
    on ppl.PersonID = a1.OnSiteSupervisorID
left join smartroadmangement.dbo.tblLocations l
    on a1.locationId = l.locationid 
left join smartroadmangement.dbo.tblVehicleData v
    on a1.ActivityID = v.ActivityID
left join smartroadmangement.dbo.tblProjects pj 
    on a1.ProjectID = pj.ProjectID 
WHERE (a1.StartDate Between '2012-07-15 14:17:09' and '2012-07-15 20:17:09') 
    AND (a1.EndDate Between '2012-07-15 20:17:09'and '2012-07-15 23:17:09')
Taryn
  • 242,637
  • 56
  • 362
  • 405
  • @Guyver please edit my edit, I updated your query to use proper join syntax. You will have to check if it works – Taryn Jul 30 '12 at 21:52
0

You are using a four part name. Do you have the linked server/alias named smartroadmangement set up?

Roji P Thomas
  • 530
  • 2
  • 5
  • I was using something like smartroadmangement.dbo but it didn't seem to mind me not using it for stuff in that database. Just for the stuff from the other one I'm using. – Guyver Jul 30 '12 at 20:51