Problème d'opérande dans le résultat de ma chaine sql [Résolu]

Signaler
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
-
Bonjour tout le monde,

J'ai un petit souci avec cette chaine SQL :

SELECT NOTE
FROM inscrits_en
WHERE MATRICULE_ET
IN (

SELECT DISTINCT MATRICULE_ET, NOM_ET, PRENOM_ET
FROM etudiants
WHERE matricule_et
IN (

SELECT DISTINCT MATRICULE_ET
FROM inscrits_en
WHERE MNEMONIC
IN (

SELECT MNEMONIC
FROM cours
WHERE NOM_ANNEE = "BA3"
AND TYPE_DE_COURS = "TH"
AND CATEGORIE = "NORMAL"
)
)
ORDER BY NOM_ET
)

J'obtiens ce message d'erreur :

Operand should contain 1 column(s)

Sauriez-vous me dire comment je peux résoudre ce problème svp ?

Merci d'avance.

beegees

4 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
C'est ce que j'imaiginais effectivement.

Essaye ceci :
SELECT NOTE, NOM_ET, PRENOM_ET
FROM inscrits_en
INNER JOIN etudiants ON inscrits_en.MATRICULE_ET=etudiants.MATRICULE_ET
WHERE inscrits_en.MNEMONIC
IN (
    SELECT MNEMONIC
    FROM cours
    WHERE NOM_ANNEE = "BA3"
    AND TYPE_DE_COURS = "TH"
    AND CATEGORIE = "NORMAL"
    )
ORDER BY NOM_ET

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Puisque la première requette atten une liste de valeur dans la clause WHERE, la seconde requette ne peut renvoyé qu'un seul champ.

SELECT NOTE
FROM inscrits_en
WHERE MATRICULE_ET
IN (

SELECT DISTINCT MATRICULE_ET<strike>, NOM_ET, PRENOM_ET</strike>
FROM etudiants
WHERE matricule_et
IN (

SELECT DISTINCT MATRICULE_ET
FROM inscrits_en
WHERE MNEMONIC
IN (

SELECT MNEMONIC
FROM cours
WHERE NOM_ANNEE = "BA3"
AND TYPE_DE_COURS = "TH"
AND CATEGORIE = "NORMAL"
)
)
ORDER BY NOM_ET
)

Mais après modif, je comprend pas trop l'intérêt d'une telle requête, es-tu sur qu'elle est bien construite et qu'elle correspond à ce que tu attend ?

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Resalut Casy,

Merci pour ta réponse.

En effet, le fait de retirer nom et prenom fait que la chaine fonctionne dans mysql.

J'aimerais pourtant avoir le nom et le prénom car là, je n'obtiens que les cotes sans savoir à qui elles appartiennent.

Saurais-tu me dire comment faire stp ?

Encore un tout grand merci et bon Dimanche.

beegeezzzz
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Statut
Membre
Dernière intervention
10 avril 2017
1
Salut Casy,

Un super, hyper, grand merci pour ta réponse qui m'a permis de résoudre mon problème mais aussi un autre problème PHP.

Comme on dit, c'est une pierre, deux coups.

Encore merci.

beegees