Responda según los comentarios sobre la pregunta. Lo probé en una base de datos SQLite, y dado que la sintaxis puede estar mal en comparación con SQLServer, solo puedo darle instrucciones. No tengo un enlace a una base de datos.
Encontrar lo básico:
- Encuentre el par mat_no, hijo en mat_rel donde el padre ES NULL
- Encuentre todas las filas en mat_rel que coincidan con mat_no y donde el padre coincida con el hijo de 1. Agregue el SQL de 1. en un JOIN como (SELECCIONAR ..).
Encontrar discrepancias (comparar child=child y mat_no=mat_no):
- Encuentre todas las filas desde la 2, donde no hay ninguna fila coincidente en mat_item. Use LEFT JOIN o NO EXISTE
- Encuentre todas las filas en mat_item donde no hay una fila coincidente en mat_rel desde 2. Use RIGHT JOIN o NOT EXISTS.
Encontrar 3 y 4:
- Utilice ambos SQL con UNION ALL