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

Autres SGBD Discussion :

[Teradata] Trouver une rupture entre 2 arrêtés


Sujet :

Autres SGBD

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 277
    Par défaut [Teradata] Trouver une rupture entre 2 arrêtés
    Bonjour,

    J'ai une table qui contient les données suivantes, la clé étant l'identifiant (P1 ou P2) et le mois.

    01/01/2020 P1 1
    01/02/2020 P1 2
    01/04/2020 P1 2
    01/05/2020 P1 4
    01/01/2022 P2 3
    01/02/2022 P2 6
    01/04/2022 P2 3

    En résumé :
    - la colonne 1 est censée contenir le 1er de chaque mois
    - la colonne 2 est le numéro de l'identifiant
    - la colonne 3 est là mais ne nous sert à rien pour la question

    Pour chaque identifiant, il faut que je trouve le dernier mois où il y a eu une rupture.
    Par exemple :

    - Pour P1
    ----sur l'arrêté de mai, le dernier trou a commencé sur l'arrêté de mars
    ----sur l'arrêté d'avril, le dernier trou a commencé sur l'arrêté de mars
    ----sur l'arrêté de février, le dernier trou a commencé en décembre 2019
    ----sur l'arrêté de janvier, le dernier trou a commencé en décembre 2019

    - Pour P2 :
    ----sur l'arrêté d'avril, le dernier trou a commencé sur l'arrêté de mars
    ----sur l'arrêté de février, le dernier trou a commencé en décembre 2021
    ----sur l'arrêté de janvier, le dernier trou a commencé en décembre 2021


    Il faudrait que j'arrive, pour chaque enregistrement, à connaître le mois du dernier arrêté mensuel manquant.

    Je n'y arrive pas, pourriez-vous m'assister svp ?

    Je vous remercie pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 956
    Par défaut
    Bonsoir,
    Je ne suis pas un spécialiste de Terradata

    Si les fonctions suivantes sont disponibles :
    * lag() over (partition by ... order by ...)
    * datediff()
    alors un truc dans le genre devrait vous être utile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select colonne1
    , colonnel2 as Id
    , lag(colonnel1) over (partion by colonne2 order by colonne1) as colonne1_prec
    ,datediff(month, lag(colonnel1) over (partition by colonne2 order by colonne1) , colonnel2 ) as delta_month
    from T1
    -- where datediff(month, lag(colonnel1) over (partition by colonne2 order by colonne1) , colonnel2 ) >1

    NB : une clé, ou un identifiant, est unique dans la table ; ici c'est très probablement le nom de colonne de "foreign key" qui est en relation avec un identifiant d'une autre table

Discussions similaires

  1. Trouver une intersection entre 2 segments
    Par Pecose dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 06/02/2020, 16h17
  2. [WD-2010] Trouver une image entre deux signets
    Par Tanoffy dans le forum VBA Word
    Réponses: 2
    Dernier message: 08/12/2014, 15h08
  3. Trouver une liasion entre deux bases de données
    Par Kinff dans le forum Excel
    Réponses: 5
    Dernier message: 17/05/2013, 09h52
  4. [RegEx] Trouver certains mots entre [] dans une chaine de caractères
    Par Prosis dans le forum Langage
    Réponses: 3
    Dernier message: 22/10/2007, 21h52
  5. Trouver une partie commune entre 2 images
    Par fredoxxx dans le forum Traitement d'images
    Réponses: 1
    Dernier message: 30/06/2007, 07h00

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