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

beegeezzz 152 Messages postés mardi 4 novembre 2008Date d'inscription 10 avril 2017 Dernière intervention - 10 mai 2009 à 08:28 - Dernière réponse : beegeezzz 152 Messages postés mardi 4 novembre 2008Date d'inscription 10 avril 2017 Dernière intervention
- 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
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 10 mai 2009 à 11:42
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 10 mai 2009 à 11:17
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
beegeezzz 152 Messages postés mardi 4 novembre 2008Date d'inscription 10 avril 2017 Dernière intervention - 10 mai 2009 à 11:36
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
beegeezzz 152 Messages postés mardi 4 novembre 2008Date d'inscription 10 avril 2017 Dernière intervention - 13 mai 2009 à 20:51
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.