IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

Union et Group By


Sujet :

SQL Firebird

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Union et Group By
    Salut
    je veux faire un group by sur une requête utilisant UNION. mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    select a.nom_unite, a.ouvrage, sum(a.volume)
     
     from "[8]PS_BE_RATIO_CONS_ENRG"('31.01.2013') a
     
        union
            select b.nom_unite, b.ouvrage, sum(b.volume)
            from "[8]PS_BE_RATIO_CONS_ENRG"('28.02.2013') b
     
     
    group by a.nom_unite, a.ouvrage
    Je dois avoir le volume par ouvrage et par unité dans les deux dates indiquée mais Firebird me signale une erreur de type "Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)."

    Peut-être que Union ne peut utiliser de Group by ?! dans ce cas comment avoir le bon compte ?!

    Merci par avance.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    ca me parait normal, il manque un GROUP BY celui de la première requête
    et le second a les descripteurs de la première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT a.nom_unite, a.ouvrage, sum(a.volume)
        FROM "[8]PS_BE_RATIO_CONS_ENRG"('31.01.2013') a
        GROUP BY a.nom_unite, a.ouvrage
     union
            SELECT b.nom_unite, b.ouvrage, sum(b.volume)
            FROM "[8]PS_BE_RATIO_CONS_ENRG"('28.02.2013') b
        GROUP BY b.nom_unite, b.ouvrage
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    ca me parait normal, il manque un GROUP BY celui de la première requête
    et le second a les descripteur de la première
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT a.nom_unite, a.ouvrage, sum(a.volume)
        FROM "[8]PS_BE_RATIO_CONS_ENRG"('31.01.2013') a
        GROUP BY a.nom_unite, a.ouvrage
     union
            SELECT b.nom_unite, b.ouvrage, sum(b.volume)
            FROM "[8]PS_BE_RATIO_CONS_ENRG"('28.02.2013') b
        GROUP BY b.nom_unite, b.ouvrage
    bien vu, merci.

    Maintenant, est-il possible d'avoir qu'une seule ligne pour chaque ouvrage ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Je ne suis pas sur de savoir ce que tu désires (mettre un exemple)

    Mais tu peux toujours faire de cette requête, une sous-requête et faire un GROUP BY dans la principale (mais je ne suis pas sur que c'est cela que tu souhaites ?)
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par dehorter olivier Voir le message
    Je ne suis pas sur de savoir ce que tu désires (mettre un exemple)

    Mais tu peux toujours faire de cette requête, une sous-requête et faire un GROUP BY dans la principale (mais je ne suis pas sur que c'est cela que tu souhaites ?)
    Je crois que c'est une impasse ! J'ai bien obtenu le résultat de l'union, mais ce que je veux en final c'est d'avoir les ouvrages regroupés en ligne mais comme l'union fait l'addition des deux ensembles alors pour le même ouvrage j'ai deux lignes correspondantes au deux dates.

    Maintenant est-il possible, dans la même requête, de regrouper les données par ouvrage pour n'avoir qu'une ligne par ouvrage même si j'ai une union ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    As-tu essayé quelque chose comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT S.ouvrage, sum(S.Somme)
    FROM (
    SELECT a.nom_unite, a.ouvrage, sum(a.volume) as Somme
        FROM "[8]PS_BE_RATIO_CONS_ENRG"('31.01.2013') a
        GROUP BY a.nom_unite, a.ouvrage
     union
            SELECT b.nom_unite, b.ouvrage, sum(b.volume) as Somme
            FROM "[8]PS_BE_RATIO_CONS_ENRG"('28.02.2013') b
        GROUP BY b.nom_unite, b.ouvrage) AS S
    GROUP BY S.Ouvrage
    Mais est ce cela que tu souhaites ??
    Merci d'ajouter un sur les tags qui vous ont aidé

  7. #7
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Merciiiiiiiiiiiii
    Citation Envoyé par dehorter olivier Voir le message
    As-tu essayé quelque chose comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT S.ouvrage, sum(S.Somme)
    FROM (
    SELECT a.nom_unite, a.ouvrage, sum(a.volume) as Somme
        FROM "[8]PS_BE_RATIO_CONS_ENRG"('31.01.2013') a
        GROUP BY a.nom_unite, a.ouvrage
     union
            SELECT b.nom_unite, b.ouvrage, sum(b.volume) as Somme
            FROM "[8]PS_BE_RATIO_CONS_ENRG"('28.02.2013') b
        GROUP BY b.nom_unite, b.ouvrage) AS S
    GROUP BY S.Ouvrage
    Mais est ce cela que tu souhaites ??
    Très bien, ça marche.
    Vraiment merci
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    de rien,
    pense au tag
    Merci d'ajouter un sur les tags qui vous ont aidé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question sur UNION et GROUP BY
    Par raicolin dans le forum MySQL
    Réponses: 2
    Dernier message: 15/12/2014, 12h30
  2. Requete Union et Group By
    Par jmde dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 29/01/2009, 10h05
  3. Requête union avec group by qui gère les 2 requêtes.
    Par juha dans le forum Langage SQL
    Réponses: 8
    Dernier message: 22/10/2007, 09h38
  4. union et group by
    Par aurelie83 dans le forum SQL
    Réponses: 1
    Dernier message: 13/09/2007, 18h00
  5. Problème avec UNION et Group by
    Par dujardin dans le forum Requêtes
    Réponses: 4
    Dernier message: 14/02/2007, 04h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo