10/08/2013, 11:04
|
| | Fecha de Ingreso: agosto-2013
Mensajes: 8
Antigüedad: 11 años, 4 meses Puntos: 0 | |
Respuesta: Evitar repeticiones en tablas. Si, me gustaría evitarlo ya que la solución sería ver solamente uno.
El enunciado del ejercicio es el siguiente:
- Nombre y apellidos de parejas de profesores cuya diferencia de antigüedad (en valor absoluto) sea inferior a dos años y pertenezcan al mismo departamento.
Muestre la antigüedad de cada uno de ellos en años.
Y mi solución actual es:
select p1.nombre, p1.apellido1, p1.apellido2, TRUNC(months_between(sysdate, p1.antiguedad)/12) as antiguedad_p1,
p2.nombre, p2.apellido1, p2.apellido2, TRUNC(months_between(sysdate, p2.antiguedad)/12) as antiguedad_p2
from profesores p1, profesores p2
where abs(months_between(sysdate, p1.antiguedad)/12-(months_between(sysdate, p2.antiguedad))/12) < 2
AND p1.departamento = p2.departamento
AND p1.nrp != p2.nrp;
nrp es un valor numérico único, asi evito que salga Juan 2 Juan 2 (por ejemplo). |