Problème de requêtes imbriquées

Messages postés
494
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
18 août 2019
-
Bonjour,
ma requête pour obtenir le résultat que indique l'image ne fonctionne pas correctement.
1- voici le résultat attendu :


2. voici la requête que j'ai écrite qui donne pas le résultat attendu .
SELECT IC.id_class,(
                        SELECT COUNT(sexe) FROM tb_inscrit_classe IC, inscription I
			   WHERE IC.id_elv = I.id_inscri AND sexe = 'H' AND doublant = 'Non Doublant' 
                       ) NBRE_M_ND,
					   (
                        SELECT COUNT(sexe) FROM tb_inscrit_classe IC, inscription I
			   WHERE IC.id_elv = I.id_inscri AND sexe = 'H'  AND doublant = 'Doublant' 
                       ) NBRE_M_D,
					   (
                        SELECT COUNT(sexe) FROM tb_inscrit_classe IC, inscription I
			   WHERE IC.id_elv = I.id_inscri AND sexe = 'F'  AND doublant = 'Non Doublant' 
                       ) NBRE_F_D,
					   (
                        SELECT COUNT(sexe) FROM tb_inscrit_classe IC, inscription I
			   WHERE IC.id_elv = I.id_inscri AND sexe = 'F'  AND doublant = 'Doublant' 
                       ) NBRE_F_D
               FROM tb_inscrit_classe IC, inscription I
			   WHERE IC.id_elv = I.id_inscri
               GROUP BY I.sexe, IC.id_class


3. voici la structure des 2 tables en question
CREATE TABLE IF NOT EXISTS `inscription` (
`id_inscri` int(11) NOT NULL AUTO_INCREMENT,
`matricule` varchar(15) NOT NULL,
`nom` varchar(200) NOT NULL,
`prenom` varchar(220) NOT NULL,
`sexe` varchar(5) NOT NULL,
PRIMARY KEY (`id_inscri`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=358 ;


CREATE TABLE IF NOT EXISTS `tb_inscrit_classe` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_elv` int(11) NOT NULL,
`id_class` int(11) NOT NULL,
`doublant` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=412 ;
Afficher la suite