Quelle sous-requête? Et vos conditions ne correspondent pas à l'ennoncé :
DELETE FROM notation WHERE (numero_stagiaire=1 AND code_module=102) OR (numero_stagiaire=2 AND code_module=101)
Déjà, pourquoi demander la différence en jours si c'est pour la transformer en années?
Ensuite, vous faites la différence entre aujourd'hui et le 1 janvier 2009... faites la plutôt entre date_naissance et le 1 janvier 2009.
Vous calculez une moyenne sur l'ensemble des stagiaires, inutile donc d'inclure nom_stagiaire dans votre SELECT.
Pour la troisième, pas besoin de IF, qui n'existe d'ailleurs pas en SQL.
Si j'ai bien compris la question, il faudra faire un produit cartesien entre l'ensemble des stagiaires filles et l'ensemble des stagiaires garçons, et poser la condition que la valeur absolue de la différence des date_naissance ne dépasse pas 180 jours.
Partager