SQL Statment

What is wrong with this code? i get this error

 System.Data.SqlClient.SqlException: The multi-part identifier "Employee.ID" could not be bound.
SELECT        Employees.title, Employees.firstName, Employees.lastName, Addresses.Line1, Addresses.Line2, Addresses.Line3, Addresses.City, Addresses.Postcode
FROM            Employees INNER JOIN
                         Addresses ON Employees.addressId = Addresses.ID
WHERE        (Employees.ID NOT IN
                             (SELECT        EmployeeID
                               FROM            ExpenceForms))

Open in new window

aaron-macleodAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
sammySeltzerConnect With a Mentor Commented:
I think it should be something like this:

SELECT Employees.title, Employees.firstName, Employees.lastName, Addresses.Line1, 
Addresses.Line2, Addresses.Line3, Addresses.City, Addresses.Postcode
FROM   Employees INNER JOIN
                         Addresses ON Employees.addressId = Addresses.ID
WHERE  Employees.ID NOT IN (SELECT ExpenceForms.EmployeeID
                               FROM ExpenceForms)

Open in new window

0
 
Paul MacDonaldDirector, Information SystemsCommented:
You have both Employee.ID and EmployeeID.  Are they both present?
0
 
Éric MoreauSenior .Net ConsultantCommented:
your exception has Employee while your query as EmployeeS. do you have a typo?
0
 
ralmadaCommented:
>> The multi-part identifier "Employee.ID" could not be bound.<<
That query doesn't seem to be producing that error. The error is caused because you are trying to use a column named ID from a table called (or aliased) "Employee" (without "s" at the end) . I don't see anywhere in the above query the "Employee.ID" expression.

Anyway, check your column and alias to ensure that they match with your current tables definition.

Also, another way of doing this query is
SELECT  Employees.title, 
	Employees.firstName, 
	Employees.lastName, 
	Addresses.Line1, 
	Addresses.Line2, 
	Addresses.Line3, 
	Addresses.City, 
	Addresses.Postcode
FROM    Employees 
INNER JOIN Addresses ON Employees.addressId = Addresses.ID
INNER JOIN ExpenceForms ON Employees.ID <> ExpenceForms.EmployeeID

Open in new window

0
 
ralmadaCommented:
crap, too late
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.