UTNianos

Versión completa: [GDD] Duda con ejercicio de final
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas, tengo un problema con este tipo de ejercicios (Punto 3):

[Imagen: 512.jpg]

La parte que no puede resolver es la de no mostrar los pares repetidos ("No se deberá retornar el mismo par de hermanos 2 veces"), luego el resto lo puedo hacer.

En realidad lo pude hacer de una forma pero no se si es la correcta creo que es muy rebuscada tiene que haber algo mas fácil. Lo que hice fue usar un CURSOR y una TABLA TEMPORAL. Entonces hago que el SELECT devuelva todas los pares (incluyendo los repetidos) y utilizo el CURSOR para ir insertando las filas en la tabla temporal previo chequeo que no haya una repetida. Y termino haciendo un SELECT final a esa tabla temporal que me da el resultado el ejercicio.

Creo que también se puede hacer usando un trigger y una tabla temporal, el tema es que no puede ser así de complicado creo.

Saludos
Hola!
Se me ocurre hacerlo comparando los IDs de cada persona con su hermano.

Ponele...
SELECT ... WHERE persona.madre = hermano.madre OR persona.padre = hermano.padre AND persona.id > hermano.id

ID | Nombre | Padre | Madre
---------------------------------
01 | Juan | 10 | 11
02 | Pedro | 10 | 15
03 | Martin | 20 | 30
.....

De esta forma, si Juan y Pedro son hermanos, van a tener IDs diferentes y uno va a tener que ser mayor al otro sí o sí.
Con ese mayor harías que te muestre solo uno de ambos pares.

Espero que se entienda!

PD: Ojo cuando piden ANSI SQL no podes hacer cosas de T-SQL (como triggers, cursores, etc) tengo entendido.
URLs de referencia