Pregunta 111

Técnico Auxiliar Informática del Estado - 2010 - TAI PI OEP 2010

Teniendo en cuenta la base de datos representada en el diagrama de entidad / relación anterior. Señale la sentencia SQL correcta para obtener el listado con las becas que se quedaron desiertas en el 2009, es decir, las becas que fueron solicitadas al menos por algún aspirante pero que NO se otorgaron nunca a nadie en 2009:

  • A.SELECT * FROM Becas WHERE ((Becas.id) NOT IN (SELECT Solicita.cod_beca FROM Solicita, Becas WHERE Becas.id=Solicita.cod_beca AND Solicita.año_otorgamiento = TRUE)) AND ((Becas.año)=2009);
  • B.SELECT Becas.* FROM Solicita, Becas WHERE ((Becas.id) NOT IN (SELECT Solicita.cod_beca FROM Solicita, Becas WHERE Becas.id=Solicita.cod_beca AND Solicita.otorgada = TRUE)) AND ((Becas.año) = 2009));
  • C.SELECT Becas.* FROM Becas, Solicita WHERE ((Becas.id) NOT IN (SELECT Solicita.cod_beca FROM Solicita WHERE Becas.id=Solicita.cod_beca AND Solicita.año_otorgamiento =2009 AND Solicita.otorgada=FALSE);
  • D.SELECT * FROM Becas, Solicita WHERE Becas.id=Solicita.cod_beca AND ((Becas.id) NOT IN (SELECT Solicita.cod_beca FROM Solicita WHERE Solicita.otorgada = TRUE));Respuesta correcta

Explicación

Becas desiertas en 2009 son aquellas solicitadas pero nunca otorgadas. La consulta SQL debe seleccionar becas que aparecen en Solicita pero excluir aquellas en subconsulta de otorgadas. El enunciado pide filtrado por año 2009. Las opciones presentadas muestran errores de sintaxis SQL (paréntesis desbalanceados, referencias circulares).