Cita:
Iniciado por franko1809 Segun la logica esto que mencionas no podria suceder ya que la relacion es de 1 a muchos y por lo tanto el id_razgo_morfologico es primary key y efectivamente se puede repetir pero con el mismo contenido sino es asi entonces ESTA MAL LA LOGICA y es un mal diseño de la BD y esto se llama inconsistencia de datos
Franko: no sé por qué mencionas que los datos que coloco no podría suceder. Creo que te estás olvidando de las llaves primarias compuestas. El primer campo corresponde efectivamente al grupo morfológico, mientras que la unión de los campos 1 y 2 podría formar parte de la llave de rasgos. Eso por supuesto que no lo puedo asegurar, depende del compañero Adrián verificar si la lógica es correcta o no.
Adrián: el operador EXCEPT es soportado a partir de la versión 2005 y posteriores de SQL Server por lo que si utilizas alguna de estas ver. el ejemplo deberá funcionar sin problemas.
Si estás utilizando SQL Server 2000 entonces podrías retomar la lógica que te puse con el concat, sólo que aplicando la sintaxis correcta para SQL Server. Como tus campos son tipo numérico tendrías que poner algo como esto:
Código SQL:
Ver originalSELECT rm.id_grupo_morfologia, rm.id_razgo_morfologico, gm.desc_grupo_morfologia, rm.desc_razgo_morfologico
FROM CFG_GRUPOS_MORFOLOGIAS gm
INNER JOIN CFG_RAZGOS_MORFOLOGICOS rm ON gm.id_grupo_morfologia=rm.id_grupo_morfologia
WHERE 1 = 1
AND UPPER(gm.desc_grupo_morfologia) LIKE UPPER('%pierna-izq%')
AND CAST(rm.id_grupo_morfologia AS VARCHAR) + '-' + CAST(rm.id_razgo_morfologico AS VARCHAR) != '40-2'
Y como comenta acertadamente franko1809 creo que el tema ya se extendió demasiado y tal pareciera que aun no terminamos de entender la problemática. Igual y sería conveniente que si continuas con problemas abras otro tema y comenzar desde cero, tratando de plantear mejor las cosas
Saludos
Leo.