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

Langage SQL Discussion :

Aggrégation de 2 lignes dans une requête


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut Aggrégation de 2 lignes dans une requête
    Bonjour la team,

    savez-vous s'il est possible d'agréger dans une requête mysql 2 lignes en une seule ligne ?

    Ex: ma requêet de bae me retourne :

    NOM DATE_DEBUT DATE_FIN
    Période 1 15/01/2013 null
    Période 2 null 17/01/2013

    Est-il possible d'avoir qu'une seule ligne pour avoir:

    Période1_2 15/01/2013 17/01/2013

    Merci pour vorte aide.

    Berni.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    Avec un regroupement ? (MIN, MAX, GROUP BY)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    merci de ta réponse al1_24, mais ce n'est pas exactement ça.

    En fait prenons l'exemple suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select categorie, valeur
    from ma_table;
    Imaginons que cette requête donne:

    categorie valeur
    C1 V1
    C2 V2

    Est ce possible de transposer ces valeurs en une ligne pour avoir ?
    categorie valeur
    C1C2 V1V2

    Berni.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 109
    Points : 28 437
    Points
    28 437
    Par défaut
    On peut faire tout ce qu'on veut à partir du moment où la règle est définie...
    Qu'est ce qui identifie que (C1, V1) doit être associé à (C2, V2) ?

    Il manque trop d'informations pour pouvoir donner une réponse.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 200
    Points : 66
    Points
    66
    Par défaut
    Je voulais en fait remonter une partie de mon résultat à partir d'un groupe de valeur.

    Du coup, la réponse se résume par:
    1) Faire un group by sur les valeurs non concernées par l'agrégation
    2) Appliquer la régle pour distinguer les valeurs aggrégées.

    Pour mon exemple, on aurait la requête suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CASE WHEN min(categorie) = 'C1' then min(valeur) else null end as "CATEGORIE 1",
    SELECT CASE WHEN max(categorie) = 'C2' then max(valeur) else null end as "CATEGORIE 2",
    FROM ma_table
    GROUP BY autre_critere_1, autre_critere_2;
    Cet exemple permet d'agréger 2 lignes en une seule.

    merci pour votre aide.
    berni.

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

Discussions similaires

  1. Comment obtenir le nombre de ligne dans une requête ?
    Par totoAussi dans le forum Requêtes
    Réponses: 8
    Dernier message: 06/09/2011, 17h28
  2. VBA : Retour ligne dans une requête
    Par Maryy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2010, 08h52
  3. Réponses: 1
    Dernier message: 05/08/2009, 23h29
  4. Numérotation des lignes dans une requête
    Par zoom61 dans le forum Access
    Réponses: 5
    Dernier message: 24/10/2006, 10h35
  5. [Access] Calcule par ligne dans une requête
    Par Belze dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/02/2006, 09h09

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