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

Requêtes MySQL Discussion :

Grouper 2 requêtes SQL


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Par défaut Grouper 2 requêtes SQL
    Bonjour,
    Je souhaiterai établir sous une même requête les deux requêtes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT `FAMILLE`, SUM(`COUT`) AS `montantEntreeParFamille`, SUM(`QTT`) AS `nbrEntreeParFamille` FROM `mouvement` WHERE `MOUVEMENT` LIKE "%E%"  AND (DATE_MOUVEMENT BETWEEN "2018-01-01" AND "2018-11-27") GROUP BY `FAMILLE`
     
    SELECT `FAMILLE`, SUM(`COUT`) AS `montantSortieParFamille`, SUM(`QTT`) AS `nbrSortieParFamille` FROM `mouvement` WHERE `MOUVEMENT` LIKE "%S%" AND (DATE_MOUVEMENT BETWEEN "2018-01-01" AND "2018-11-27") GROUP BY `FAMILLE`
    Auriez vous une idée.

    J'ai bien essayé UNION ALL ou UNION sans succès. Je ne trouve pas la solution.

    Dans l'attente d'une réponse de votre part, par avance merci.

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 917
    Par défaut
    Salut michgoarin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select  `famille`
            sum(case when `mouvement` like '%e%' then `cout` else 0 end) as `montantEntreeParFamille`,
            sum(case when `mouvement` like '%e%' then `qtt`  else 0 end) as `nbrEntreeParFamille`,
            sum(case when `mouvement` like '%s%' then `cout` else 0 end) as `montantSortieParFamille`,
            sum(case when `mouvement` like '%s%' then `qtt`  else 0 end) as `nbrSortieParFamille` 
     
        from  `mouvement`
     
       where (`mouvement`      LIKE '%e%'
          or  `mouvement`      LIKE '%s%')
         and  `date_mouvement` BETWEEN '2018-01-01' AND '2018-11-27'
     
    group by `famille`;
    @+

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Par défaut Erreur line 2
    Bonjour,
    Je viens de tester ta proposition de Artemus24 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT  `FAMILLE`
            SUM(CASE WHEN `MOUVEMENT` LIKE "%E%" THEN `COUT` ELSE 0 END) AS `montantEntreeParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%E%' THEN `QTT`  ELSE 0 END) AS `nbrEntreeParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `COUT` ELSE 0 END) AS `montantSortieParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `QTT`  ELSE 0 END) AS `nbrSortieParFamille` 
     
        FROM  `MOUVEMENT`
     
       WHERE (`MOUVEMENT` LIKE '%E%'
          OR  `MOUVEMENT` LIKE '%S%')
         AND  (`DATE_MOUVEMENT` BETWEEN '2018-01-01' AND '2018-11-27')
     
    GROUP BY `FAMILLE`
    J'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'sum(case when `mouvement` like '%E%' then `COUT` else 0 end) as `montantEntreePa' at line 2
    Je ne comprends pas. Je trouvais cette proposition intéressante.

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Par défaut Solution trouvée
    J'ai finalement trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT  `FAMILLE`,
            SUM(CASE WHEN `MOUVEMENT` LIKE "%E%" THEN `COUT` ELSE 0 END) AS `montantEntreeParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%E%' THEN `QTT`  ELSE 0 END) AS `nbrEntreeParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `COUT` ELSE 0 END) AS `montantSortieParFamille`,
            SUM(CASE WHEN `MOUVEMENT` LIKE '%S%' THEN `QTT`  ELSE 0 END) AS `nbrSortieParFamille` 
     
        FROM  `mouvement`
     
       WHERE (`MOUVEMENT` LIKE '%E%'
          OR  `MOUVEMENT` LIKE '%S%')
         AND  (`DATE_MOUVEMENT` BETWEEN '2018-01-01' AND '2018-11-27')
     
    GROUP BY `FAMILLE`
    Il manquait la virgule après FAMILLE

  5. #5
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 917
    Par défaut
    Salut michgoarin.

    J'ai tendance à oublier les virgules ! Désolé.
    Est-ce que le résultat vous convient ?

    @+

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Avril 2014
    Messages : 40
    Par défaut Les conn... de virgules
    Merci beaucoup pour ton aide.

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

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. Requête SQL/Algo - Grouper en fonction de l'ordre des lignes
    Par Oishiiii dans le forum Développement
    Réponses: 4
    Dernier message: 03/11/2017, 17h15
  3. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  4. Réponses: 8
    Dernier message: 08/02/2008, 23h13
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38

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