par
mcorgnet » 18 janv. 2007, 12:25
Bonjour,
j'ai un petit problème avec une requête oracle. Voici la version qui fonctionne :
Code : Tout sélectionner
SELECT E.NOM, E.PRENOM, NVL(to_char(N.NOTE), 'ABS')
FROM ELEVE E, NOTES N, MATIERE M
WHERE E.NUMELE = N.NUMELE (+)
AND M.NUMMAT (+) = N.NUMMAT
AND TYPEDEV (+) = 'TP'
AND N.NUMMAT (+) = 1;
Mais, dans mon exercice, je dois changer la dernière ligne en ça :
Code : Tout sélectionner
SELECT E.NOM, E.PRENOM, NVL(to_char(N.NOTE), 'ABS')
FROM ELEVE E, NOTES N, MATIERE M
WHERE E.NUMELE = N.NUMELE (+)
AND M.NUMMAT (+) = N.NUMMAT
AND TYPEDEV (+) = 'TP'
AND M.LIBELLE (+) = 'Bases de Donnees'
Et là, c'est le drame : elle ne renvoie plus le bon nombre de résultats ... En fait, ça fonctionne dans la première parce que je travaille avec la table centrale, et ça déraille dans la seconde parce que je n'utilise plus la même table, même si les données de références sont les mêmes.
En clair : je ne sais pas pourquoi ça ne fonctionne pas ...
Merci de votre aide
Bonjour,
j'ai un petit problème avec une requête oracle. Voici la version qui fonctionne :
[code]SELECT E.NOM, E.PRENOM, NVL(to_char(N.NOTE), 'ABS')
FROM ELEVE E, NOTES N, MATIERE M
WHERE E.NUMELE = N.NUMELE (+)
AND M.NUMMAT (+) = N.NUMMAT
AND TYPEDEV (+) = 'TP'
AND N.NUMMAT (+) = 1;[/code]
Mais, dans mon exercice, je dois changer la dernière ligne en ça :
[code]SELECT E.NOM, E.PRENOM, NVL(to_char(N.NOTE), 'ABS')
FROM ELEVE E, NOTES N, MATIERE M
WHERE E.NUMELE = N.NUMELE (+)
AND M.NUMMAT (+) = N.NUMMAT
AND TYPEDEV (+) = 'TP'
AND M.LIBELLE (+) = 'Bases de Donnees'[/code]
Et là, c'est le drame : elle ne renvoie plus le bon nombre de résultats ... En fait, ça fonctionne dans la première parce que je travaille avec la table centrale, et ça déraille dans la seconde parce que je n'utilise plus la même table, même si les données de références sont les mêmes.
En clair : je ne sais pas pourquoi ça ne fonctionne pas ...
Merci de votre aide