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

Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Dernière intervention
10 avril 2017
- - Dernière réponse : beegeezzz
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Dernière intervention
10 avril 2017
- 13 mai 2009 à 20:51
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
3
Merci
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

Merci cs_casy 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Dernière intervention
24 septembre 2014
0
Merci
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
Commenter la réponse de cs_casy
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Dernière intervention
10 avril 2017
0
Merci
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
Commenter la réponse de beegeezzz
Messages postés
152
Date d'inscription
mardi 4 novembre 2008
Dernière intervention
10 avril 2017
0
Merci
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
Commenter la réponse de beegeezzz

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.