No, la primera consulta no está bien para obtener lo que quier.
Cita: Esto se debe hacer:
1. buscar al empleado cuando udfnum=2 es decir udftext='clave'
2. Ya que encontre al empleado igualar el valor de udfnum=2 al id (ya que id es un valor unico)
3. Despues hago una consulta para los demas datos
La última consulta que te he puesto hace exactamente lo que tu dices, salvo que tiene una condición mal puesta:
Código:
SELECT upper(NAMES.FName)+' '+ upper(NAMES.LName)as FULLNAME, b.UdfNum , b.UdfText
FROM (NAMES INNER JOIN UDF a ON NAMES.ID = UDF.NameID)
join UDF b on a.nameid=b.nameid
where a.UdfText = '307406'
and b.UdfText != '307406'
sólo había que corregir la condición entre las tablas con alias a y b.
Un saludo.