ORA-00979: N'est pas une expression GROUP BY - SQL/NoSQL - Programmation
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
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
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...
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
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.
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.