Comparando columnas en sql

Quiero comparar dos columnas en SQL

oldname   newname empid
j11       j12
j12       j13
j13

Quiero obtener una lista de empleados que han completado ciertos certificados. Digamos que emp1 ha realizado el certificado j11 pero más tarde el nombre del certificado cambia a j12. Ese empleado aún debe estar certificado. Más adelante, si j12 se cambia a j13, ese empleado aún debe considerarse certificado.

preguntado el 22 de mayo de 12 a las 13:05

¿podría mostrar la estructura de su tabla de empleados? -

2 Respuestas

Deberías tener tres tablas:

  1. Empleados (IdEmpleado)
  2. Certificados (certificadoId)
  3. EmployeeCertificates (vincula a los empleados con los certificados)

Si proporciona empleados, certificados e identificadores invariables, no importa si sus nombres cambian (este es un principio de diseño importante cuando crea bases de datos relacionales).

contestado el 22 de mayo de 12 a las 14:05

La estructura de su tabla debería verse como dijo web_bod. Su consulta debería ser algo como esto:

SELECT employeeid, name FROM
    Employees e INNER JOIN EmployeeCertificates ec ON e.id = ec.employeeId
    INNER JOIN Certificates c ON c.id = ec.certificateId
WHERE Certificates.id = ?

contestado el 22 de mayo de 12 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.