04/06/2013, 19:46
|
| Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años Puntos: 2658 | |
Respuesta: Consulta que no repita los campos con UNION Una nota final para mayor claridad sobre el uso de UNION:
El UNION se puede usar si y sólo si las subconsultas que lo componen tienen:
1) La misma cantidad de columnas.
2) Las columnas están en el mismo orden.
3) Cada columna de casa subselect coincide en tipo de dato con el resto.
4) Cada columna pertenece al mismo dominio.
Eso último es sumamente importante y es donde tu consulta inicial falla completamente: No puedes mezclar relaciones de diferentes dominios en un UNION, porque estás mezclando caballos con manzanas. Si la primera selección obtenía el detalle de observaciones, los responsables, las observaciones y los procesos, la segunda sólo obtenida observaciones y procesos. No coinciden los dominios de los resultados.
¿Se entiende la idea?
Como las relaciones no son exactamente las misma, no se debe usar un UNION. De allí tu fallo conceptual inicial.
En otras palabras: UNION se debe usar si deseas obtener en una sola consulta subsegmentos de un mismo conjunto resultado, pero parametrizados cada uno en base a diferentes criterios. No es razonable usarlo para agrupar en una misma tabla datos que no responden al dominio (ver concepto dominio de funciones).
Espero que esta aclaración sea útil.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |