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
    961
    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 : 961
    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. 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