Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/05/2011, 11h54   #1
 
Homme Bibs Body
Administrateur de base de données
Inscription : mai 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Bibs Body
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mai 2011
Messages : 3
Points : -1
Points : -1
Par défaut Problème avec une somme de sommes

Code :
1
2
3
4
5
6
7
8
9
10
SELECT constructeur.nom, sum(val) FROM(SELECT c.nom, count(*) AS val
FROM certification AS cert
INNER JOIN constructeur AS c ON ( cert.nco = c.nco )
GROUP BY c.nco
UNION ALL
SELECT c1.nom, count(*) AS val
FROM formation AS form
INNER JOIN constructeur AS c1 ON ( form.nco = c1.nco ) 
GROUP BY constructeur.nco) unAliasAuPif
GROUP BY constructeur.nom
Bonjour Juvamine,

En m'appuyant sur ce sujet, ta requête ne marche pas : je l'ai adaptée à ma requête et je l'ai exécutée dans phpMyAdmin.
Paffff un message d'erreur FUNCTION treuilstockprod.SUM does not exist , treuilstockprod étant le nom de ma base.
Est-ce que ta requête marchait bien de ton côté ?

Bien cordialement,

Bibsbody
bibsbody est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 16/05/2011, 12h03   #2
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
c'est un pb avec l'alias

Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT Unaliasaupif.Nom,
       SUM(Val)
  FROM (SELECT C.Nom,
               COUNT(*) AS Val
          FROM Certification AS Cert
            INNER JOIN Constructeur AS C ON (Cert.Nco = C.Nco)
        GROUP BY C.Nco
        UNION ALL
        SELECT C1.Nom,
               COUNT(*) AS Val
          FROM Formation AS Form
            INNER JOIN Constructeur AS C1 ON (Form.Nco = C1.Nco)
        GROUP BY Constructeur.Nco) Unaliasaupif
GROUP BY Unaliasaupif.Nom
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 13h38   #3
Membre éclairé
 
Avatar de juvamine
 
Développeur informatique
Inscription : mai 2004
Messages : 394
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2004
Messages : 394
Points : 377
Points : 377
Le message d'erreur est tout de même bizarre (SUM does not existe).
Au pire des cas tu n'as même pas besoin de l'alias...
Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT Nom,
       SUM(Val)
  FROM (SELECT C.Nom,
               COUNT(*) AS Val
          FROM Certification AS Cert
            INNER JOIN Constructeur AS C ON (Cert.Nco = C.Nco)
        GROUP BY C.Nco
        UNION ALL
        SELECT C1.Nom,
               COUNT(*) AS Val
          FROM Formation AS Form
            INNER JOIN Constructeur AS C1 ON (Form.Nco = C1.Nco)
        GROUP BY Constructeur.Nco) Unaliasaupif
GROUP BY Nom

ça doit être dû à un copier/coller de l'époque ^^

A+
juva
__________________
http://chat.developpez.com/ -- Salon Base de Données --
juvamine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h55   #4
 
Homme Bibs Body
Administrateur de base de données
Inscription : mai 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Bibs Body
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mai 2011
Messages : 3
Points : -1
Points : -1
Je ne sais pas où se trouve le problème. J'ai appliqué la même syntaxe. Et toi Juvamine t'as une fois exécuté la requête sans souci?
bibsbody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h00   #5
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
il y a un autre souci :


Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT Unaliasaupif.Nom,
       SUM(Val)
  FROM (SELECT C.Nom,
               COUNT(*) AS Val
          FROM Certification AS Cert
            INNER JOIN Constructeur AS C ON (Cert.Nco = C.Nco)
        GROUP BY C.Nco
        UNION ALL
        SELECT C1.Nom,
               COUNT(*) AS Val
          FROM Formation AS Form
            INNER JOIN Constructeur AS C1 ON (Form.Nco = C1.Nco)
        GROUP BY Constructeur.Nco) Unaliasaupif
GROUP BY Unaliasaupif.Nom

les GROUP BY ne sont pas bons
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h06   #6
 
Homme Bibs Body
Administrateur de base de données
Inscription : mai 2011
Messages : 3
Détails du profil
Informations personnelles :
Nom : Homme Bibs Body
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Administrateur de base de données

Informations forums :
Inscription : mai 2011
Messages : 3
Points : -1
Points : -1
Quel est le problème avec les deux Group by
bibsbody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h13   #7
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
il faut que ce soit les memes colonnes dans le SELECT et le GROUP BY

ex pour premier

Code :
1
2
3
4
5
SELECT C.Nco,
               COUNT(*) AS Val
          FROM Certification AS Cert
            INNER JOIN Constructeur AS C ON (Cert.Nco = C.Nco)
        GROUP BY C.Nco
ou

Code :
1
2
3
4
5
SELECT C.Nom,
               COUNT(*) AS Val
          FROM Certification AS Cert
            INNER JOIN Constructeur AS C ON (Cert.Nco = C.Nco)
        GROUP BY C.Nom
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h06.


 
 
 
 
Partenaires

Hébergement Web