Help with PROC

As you suggested, I am not able to suggest the changes you should make because I don't know the data. However, you can debug it yourself by following a step by step procedure.

To do this, isolate one employee for which you are getting multiple records, but should be getting only one record. Then run a query against the UPEMPL table with a where clause that filters for only that employee. For example:

SELECT
	*
FROM
	SageHRMS_GTM..UPEMPL e
WHERE
	e.Employee = 'XYZ'

Presumably, you should get only one record, if there is only one row for a given employee in the UPEMPL table. Now, add in the second table.

SELECT
	*
FROM
	SageHRMS_GTM..UPEMPL e
	INNER JOIN SageHRMS_GTM..UPCHKD d ON e.EMPLOYEE = d.EMPLOYEE
WHERE
	e.Employee = 'XYZ'	

When you do this if you still get only one row, you have the correct join condition. If you get more than one row, look at those rows, and see which of those rows you should be getting. Then, figure out what is the criterion that makes that one row in the UPCHKD table that makes it the candidate row that you want. Based on that, add something more to the join condition.

Repeat this process until you get only one row with all the tables joined together.