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 Oracle Discussion :

Duplication de ligne sur la sortie d'une requête [12c]


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Duplication de ligne sur la sortie d'une requête
    Bonjour à toutes et à tous !

    J'aurai besoin de votre aide. Actuellement je travaille sur un rapport PowerBI qui s'automatise tout seul chaque début de semaine. Ce rapport tire ses données d'une requête SQL sous Oracle (jointure de plusieurs tables et sélection uniquement des variables qui m'intéresse).
    Il s'agit d'une requête SQL assez complexe qui sort les données sous cette forme (Je ne vais pas pouvoir vous donner les données car elles sont confidentielles) :

    Date Département Ville Date etc etc
    19/01/20 Morbihan Vannes 20/07/21 ........

    Voici donc un exemple.

    Le soucis que je rencontre est le suivant :

    Pour la variable Ville, je peux avoir pour une même ligne plusieurs villes séparées d'un "-", c'est à dire par exemple : Tourcoing-Lille.

    Le soucis va être ici : Mon rapport PowerBI qui reprend au final la sortie (un peu modifiée sous PowerBI) sous la forme d'un tableau (avec toutes les variables énumérées précédemment) mais donc avec parfois plusieurs villes séparées d'un "-", pouvant aller jusqu'à même 9 villes pour une ligne de la variable Ville. Cela me pose donc problème car cela va poser soucis pour des questions de simplicité/visibilité et ainsi que pour compter le nombre de lieux (Villes) sous PowerBI.

    Je souhaite donc directement sur ma requête SQL une duplication du nombre de lignes en fonction du nombre de villes pour la variable Ville. Si j'ai 5 villes pour une même ligne, je dois donc dupliquer cette ligne en 5 lignes avec une ligne pour chaque ville. Et donc supprimer chaque "-".

    J'espère avoir été assez clair sur mon sujet actuel et j'espère vous avoir donnée assez d'informations

    PS : Je ne pourrai pas vous donner la requête non plus pour cause de confidentialité et il m'est impossible de modifier les tables d'où proviennent les données de ma requête

    Cordialement

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 159
    Points : 1 949
    Points
    1 949
    Par défaut
    Bonjour,

    Il faut utiliser la construction "connect by level <=" pour scinder les valeurs en lignes.

    Dans ton cas, quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select date1, departement, regexp_substr(ville, '[^-]+', 1, level) ville, date2, ...
    from v
    connect by level <= regexp_count(ville, '-') + 1
     and prior ville = ville
     and prior sys_guid() is not null;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    C'est super ! Cela fonctionne parfaitement sur ma requête SQL !
    Je vous remercie

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 957
    Points : 4 386
    Points
    4 386
    Par défaut
    Le choix du tiret comme séparateur est quand même questionnable… comme s’il n’existait de villes dont le nom lui-même n’en contienne pas… mais vous avez peut-être la chance de ne pas en avoir dans vos données…
    Vous devriez quand même faire une requête sur la colonne ville seule pour en être certain, pour éviter q’un jour découvrir des dizaines de « le », « petit », « grand », « pont », « les », « bains »… dans vos résultats…

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2021
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Je viens de regarder dans ma base et toutes les villes possédant des "-" n'en ont pas, et à la place du "-" se trouve un espace (aucun signe de ponctuations ou d'accents...
    Je vous remercie de votre aide ainsi que de votre remarque, qui si était vérifiée, allait me poser soucis

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

Discussions similaires

  1. [XL-2013] Selection d'une ligne sur sa valeur dans une cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/11/2015, 14h05
  2. Retour a la ligne sur le résultat d'une fonction
    Par bastounseb dans le forum Langage
    Réponses: 9
    Dernier message: 01/10/2014, 01h59
  3. [XL-2003] Fusion de lignes sur la valeur d'une colonne
    Par dombeya dans le forum Excel
    Réponses: 6
    Dernier message: 31/01/2011, 14h35
  4. Comment filtrer des lignes sur la valeur d'une colonne
    Par BerBiX dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/06/2010, 13h46
  5. Calcul ligne par ligne sur le résultat d'une requête
    Par CanardJM dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2008, 13h06

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