ORA-00979: N'est pas une expression GROUP BY

ORA-00979: N'est pas une expression GROUP BY - SQL/NoSQL - Programmation

Marsh Posté le 17-10-2006 à 22:06:16    

Bonjour à tous, c'est mon premier message mais surement pas mon dernier.
 
Je vous explique mon problème.
 
J'ai 4 tables:
 
<<Table>>Bibliothèques
{Clé primaire : NoBiblio}
NoBiblio : INTEGER
NomBiblio : VARCHAR(30)
-----------------------
 
<<Table>>Exemplaires
{Clé primaire : NoExempl}
NoExempl : INTEGER
NoBiblio : INTEGER
NoLivre : INTEGER
------------------------
 
<<Table>>Livres
{Clé primaire : NoLivre}
NoLivre : INTEGER
Titre : VARCHAR(100)
NoAuteur : INTEGER
------------------------
 
<<Table>>Auteurs
{Clé primaire : NoAuteur}
NoAuteur : INTEGER
NomAuteur : VARCHAR(30)
PrenomAuteur : VARCHAR(30)
-------------------------
 
-La table Exemplaires est liée à la table Bibliotheques par NoBiblio
-La table Exemplaires est liée à la table Livres par NoLivre
-La table Livres est liée à la table Auteurs par NoAuteur
 
 
Je dois donc pour chaque livre, donner le nombre d'exemplaires détenu par chaque bibliotheque et afficherer :
--le numero du livre,
--son titre,
--le nom de son auteur,
--le nom de la bibliotheque,
--le nombre d'exemplaires,
--le tout trié par numéro de livre et nom de bibliothèque
 
Présentement voici ma requête:
 
SELECT e.NoLivre, Titre, NomAuteur, nomBiblio, COUNT(*) AS NOMBRE
FROM Livres l, Exemplaires e, Bibliotheques b, Auteurs a
WHERE e.NoBiblio = b.NoBiblio
AND l.NoLivre = l.NoLivre
AND l.NoAuteur = a.NoAuteur
GROUP BY e.NoLivre, nomBiblio
/
 
(J'utilise ORACLE)
Le truc c'est qu'elle me retourne : ORA-00979: N'est pas une expression GROUP BY
 
Je ne comprends pas pourquoi... Si je comprends bien, le COUNT(*) compte tous les enregistrements retourné selon le GROUP BY(ici 2 colonnes).. alors logiquement pour chacun des enregistrement contenant les mêmes valeurs pour ces 2 colonnes cela devrais me retourner le nombre d'occurence..je ne vois pas le problème.
 
Si quelqu'un pouvais m'aider ce serait bien parce que c'est pour un TP et je retrouve le même problème dans plusieurs numéros.
 
Merci d'avance.

Reply

Marsh Posté le 17-10-2006 à 22:06:16   

Reply

Marsh Posté le 17-10-2006 à 22:25:28    

Je suis loin d'être un pro ... mais je suis tanné de chercher pour mon problème alors je vais essayer kke chose :D
 
SELECT e.NoLivre NoLivre, l.Titre Titre, a.NomAuteur Auteur, b.nomBiblio Biblio, COUNT(e.NoExempl) AS NOMBRE  
FROM Livres l, Exemplaires e, Bibliotheques b, Auteurs a  
WHERE e.NoBiblio = b.NoBiblio  
AND l.NoLivre = l.NoLivre  
AND l.NoAuteur = a.NoAuteur  
GROUP BY e.NoLivre, b.nomBiblio

Reply

Marsh Posté le 17-10-2006 à 22:31:07    

Sa me donne exactement la même erreur:
 
ERREUR a la ligne 1 :
ORA-00979: N'est pas une expression GROUP BY
 
Merci d'avoir essayé. Je crois que c'est directement lié a Oracle.
Ou p-e que c'est moi qui pige pas le rôle de COUNT ou de GROUP BY...

Reply

Marsh Posté le 18-10-2006 à 04:34:24    

Enleve le AS ... laisse :COUNT(e.NoExempl) NOMBRE

Reply

Marsh Posté le 18-10-2006 à 07:27:20    

faut mettre dans le GROUP BY tous les champs de ton SELECT sauf le COUNT
 
GROUP BY e.NoLivre, b.nomBiblio, l.Titre, a.NomAuteur


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 18-10-2006 à 08:53:44    

GROUP BY e.NoLivre NoLivre, l.Titre Titre, a.NomAuteur Auteur, b.nomBiblio Biblio
 
ou fonction analytique.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed