jueves, 6 de diciembre de 2012

Resolución ejercicio final (9) - Crear un único listado que incluya los emails de Clientes y Proveedores.


RESOLUCIÓN DEL PUNTO 6 DEL ENUNCIADO DEL EJERCICIO FINAL.

En esta entrada resolveremos el punto 6:
Crear un único listado que incluya los emails de Clientes y Proveedores.



Al igual que al localizar los clientes sin email, para localizar los clientes con email será preciso comprobar dos condiciones.

Por un lado que el campo no es nulo.
select * from clientes where email is not NULL; 

Sin embargo con esta condición aparecerán en el listado los clientes a los que se les ha borrado el email o a los que se les ha inicializado el email a una cadena vacía.

Por lo tanto será preciso comprobar también aquellos campos que sean distintos de la cadena vacía.

select * from clientes where email <> "";

Para que la consulta conjunta funcione es preciso unirlas mediante el operador AND.

select nombre, email from clientes 
    where email is not NULL AND email <> "";



Pero el enunciado pide un único listado en el que se incluyan también los emails de los proveedores.

Para obtener un listado de emails de proveedores se usará la siguiente sentencia:


select nombre, email from proveedores
    where email is not NULL AND email <> "";


Para responder correctamente al enunciado, se deberá obtener una salida en la que se muestren los resultados de las dos consultas anteriores.

Para obtener ese resultado es posible unir las dos consultas mediante el operador UNION ALL o UNION (dependiendo de si deseamos que se muestren los datos repetidos o no.

NOTA: En este caso al querer obtener un listado de emails, no sería lógico obtener datos repetidos, por lo que usaremos el operador UNION.


select nombre, email from proveedores
    where email is not NULL AND email <> ""
UNION
select nombre, email from clientes
    where email is not NULL AND email <> "";



NOTA: En la imagen anterior se ven, en un recuadro en rojo los emails correspondientes a los proveedores, y en un recuadro verde parte de los emails correspondientes a los clientes.

No hay comentarios:

Publicar un comentario