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

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 7
    Points : 5
    Points
    5

    Par défaut [Hive] Démultiplier nombre de ligne --> boucle ?

    Bonjour,

    J'ai un fichier décrivant les activités saisies par les collaborateurs de mon entreprise, par semaine.
    une saisie = une activité + un code projet, une ligne par semaine pour chaque couple (activité,projet)
    colonne "date fin semaine" = date du dimanche de la semaine concernée.
    un dessin vaut mieux qu'un long discours, voici a quoi ressemble mon fichier:

    Nom : Capture d’écran 2019-03-05 à 22.29.37.png
Affichages : 27
Taille : 61,4 Ko

    Ce que je souhaiterai, c'est une ligne par jour et non une ligne par semaine, il faut donc démultiplier le nombre de ligne. Par exemple, pour la ligne concernant "Jean Jean"

    Nom : Capture d’écran 2019-03-05 à 22.31.37.png
Affichages : 28
Taille : 19,3 Ko

    Comment faire ?

    Je ne sais pas si j'ai été très clair... mais ca fait un moment que je réfléchis à cela, et je cale !
    Images attachées Images attachées   

  2. #2
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    7 775
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 775
    Points : 15 316
    Points
    15 316

    Par défaut

    Vous voulez le faire sur Excel ou sur une base de données ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : janvier 2008
    Messages : 7
    Points : 5
    Points
    5

    Par défaut

    Je suis sur une base de données Hive.
    Voici le code utilisé pour consuire cette table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SELECT 
    dc_agentpe_creation_id,
    dc_codeactivitetache,
    dc_codecontexte,
    dc_utilisateurpe,
    dc_valeurlundi,
    dc_valeurmardi,
    dc_valeurmercredi,
    dc_valeurjeudi,
    dc_valeurvendredi,
    dc_valeursamedi,
    dc_valeurdimanche,
    dc_valeurtotalsaisie,
    dd_datedebutsemaine
    FROM braff00.pr00_ppr042_saisieactiviterh
    where 
        dd_datedebutsemaine>='2019-01-01'  
        and kd_dateextraction in (select MAX(kd_dateextraction) from braff00.pr00_ppr042_saisieactiviterh) limit 400;
    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Consultant Teradata
    Inscrit en
    septembre 2008
    Messages
    7 775
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Teradata

    Informations forums :
    Inscription : septembre 2008
    Messages : 7 775
    Points : 15 316
    Points
    15 316

    Par défaut

    Deux méthodes.
    Une version SQL à base d'UNION ALL, à compléter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    SELECT dc_agentpe_creation_id
         , dc_codeactivitetache
         , dc_codecontexte
         , dc_utilisateurpe
         , dc_valeurlundi
         , dd_datedebutsemaine + 0 as datejour
      FROM braff00.pr00_ppr042_saisieactiviterh
     UNION ALL
    SELECT dc_agentpe_creation_id
         , dc_codeactivitetache
         , dc_codecontexte
         , dc_utilisateurpe
         , dc_valeurmardi
         , dd_datedebutsemaine + 1 as datejour
      FROM braff00.pr00_ppr042_saisieactiviterh
    ...
    Et une version à base de explode ( map ( ) ) que ressemblera à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select explode(map(dd_datedebutsemaine + 0, dc_valeurlundi,
                       dd_datedebutsemaine + 1, dc_valeurmardi,
                       ...)) as (date, valtotale)
      from braff00.pr00_ppr042_saisieactiviterh

Discussions similaires

  1. Boucle sur les feuilles d'un fichier et calcul du nombre de lignes
    Par eric4459 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/01/2015, 16h33
  2. Réponses: 2
    Dernier message: 24/04/2014, 11h39
  3. [3.2] [Excel ou MySQL] traiter un nombre de ligne puis bouclé si condition
    Par slimlus dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 09/11/2010, 00h43
  4. Réponses: 2
    Dernier message: 02/03/2004, 20h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 21h25

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