Consultas anidadas

Hola, necesito la siguiente ayuda, tengo la siguiente tabla:
CREATE TABLE tbProducto
(  Cod_Producto INTEGER PRIMARY KEY);
DROP TABLE tbCalidad;
CREATE TABLE tbCalidad
(
Cod_Producto INTEGER,
Cod_Lote INTEGER,   
Valoracion   CHAR(1)  
NOT NULL  
CHECK( Valoracion IN ('a', 'm', 'b')),  
-- a:alto rendimiento, m:medio, b:bajo
PRIMARY KEY (Cod_Producto, Cod_Lote)
);
Sea la consulta:
SELECT Cod_Producto FROM tbProducto  
MINUS
SELECT Cod_Producto FROM tbProducto
WHERE  (Valoracion ='m' AND  
 Cod_Producto NOT IN (SELECT Cod_Producto FROM tbProducto)) OR     
(Valoracion ='a' AND  
 Cod_Producto IN (SELECT Cod_Producto FROM tbProducto));     
La tarea consiste en entender qué realiza la consulta .
¿Me puedes ayudar?
Gracias.
Respuesta
1
Creo que mostraría todos los productos que tienen una valoración de 'm' y 'b'
¿Hola, estas seguro?, es que intenté correr la sentencia pero me sale error en las variables y no pude corregirlas.
A mi modo de ver esa consulta esta mal diseñada no se sabe con certeza que es lo que hace, cuando la vi por primera vez pensé que era alguna trampa o cascarita que llaman que te había puesto un profe, ahora bien si la hiciste tu, dejame decirte que esta mal, por que no me dices que es lo que debe hacer esta consulta y yo te ayudo a diseñarla.
Es un profesor que me puso esa consulta... la verdad es que yo no logro entenderla.. y si, parece que tiene una trampa pero no logro adivinarla.
Gracias por tu apoyo.
Según lo que yo veo la consulta hace lo siguiente
el primer select trae todos los registros de la tabla producto
el segundo select tiene dos condiciones la primera condición dice que devuelva los registros que tienen valoración "m" y el código del producto no este en la tabla producto, pero esta condición nunca se cumple, por que imagino que todos los productos deben estar en la tabla con su código, entonces esta condición no devuelve nada la segunda condición dice que devuelva los registros de la tabla producto donde la valoración sea "a" y que el código este en la tabla producto, (no entiendo por que si como dije anteriormente todos los productos van a estar por ende solo es necesario la primer parte es decir que la valoración sea igual "a")
Así pues el resultado de la consulta serian los registros que están en la tabla producto que no están en la segunda consulta osea los que tienen valoración "a", por lo tanto traería los registros con valoración diferente a "a" osea "m" y "b" como lo dije desde el principio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas