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

QlikView Discussion :

Avant dernière date


Sujet :

QlikView

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut Avant dernière date
    Bonjour à tous.

    j'ai une table qui contient une liste d'individu venus passer des examens de santé.
    Chaque individu peut avoir suivi un ou plusieurs examens de santé.
    Exemple ici pour un individu ayant suivi plusieurs examens ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    NIND	NTI	DATE_EXAMEN	DATE_EXAMEN_PRECEDENT
    2346378	5016788	05/01/2015	10/06/1997
    2346378	5016788	05/01/2015	14/02/2003
    2346378	5016788	05/01/2015	24/07/2009
    2346378	5016788	05/01/2015	06/08/2010
    2346378	5016788	05/01/2015	20/09/2011
    2346378	5016788	05/01/2015	16/10/2012
    2346378	5016788	05/01/2015	03/12/2013
    2346378	5016788	05/01/2015	05/01/2015
    J'aimerais trouver la date de l'avant dernier examen de santé.
    Avec Above, j'obtient la liste de tous les examen avec en regard de la date de l'examen récent (colonne DATE_EXAMEN) l'examen précédent (colonne DATE_EXAMEN_PRECEDENT).
    Or j'aimerais ne récupérer qu'une seule ligne par individus, avec la date du dernier examen et la date de l'avant dernier examen.
    Soit cette ligne ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2346378	5016788	05/01/2015		03/12/2013
    Comment puis je faire ?
    Pourriez-vous m'aider svp ?

    Rq; j'ai essayé peek et previous dans le load mais ces fonctions me renvoient l'avant dernière date d'examen de l'ensemble de la table.

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    En 2 temps :
    - LEFT JOIN sur la table en récupérant le max(DATE_EXAMEN_PRECEDENT) AS MAX_DATE_EXAMEN_PRECEDENT WHERE DATE_EXAMEN <> DATE_EXAMEN_PRECEDENT groupé par NIND
    - en chargeant une nouvelle table avec un WHERE DATE_EXAMEN_PRECEDENT = MAX_DATE_EXAMEN_PRECEDENT

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut Je vais essayer
    OK, merci pour ta réponse rapide.
    Je vais essayer ça, mais je me demandais si, comme pour ORACLE avec LEAD et LAG, on pouvait tout faire en une fois ?

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Est-ce que vous voulez avoir l'information au chargement de données ou dans un calcul de tableau ?

    Si je regarde votre exemple, j'ai l'impression que pour toutes les dates d'examen, vous avez autant de lignes qu'il y a eu d'examens.
    Ce n'est pas un peu bizarre ?

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Mars 2009
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 113
    Points : 82
    Points
    82
    Par défaut Complément de requête.
    Ce n'est pas comme ça en réalité.
    Il y a, pour un NTI autant de ligne NIND que de date d'examen.
    La table a cette forme ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    NIND	NTI	DATE_EXAMEN	
    2346378	5016788	10/06/1997
    2346378	5016788	14/02/2003
    2346378	5016788	24/07/2009
    2346378	5016788	06/08/2010
    2346378	5016788	20/09/2011
    2346378	5016788	16/10/2012
    2346378	5016788	03/12/2013
    2346378	5016788	05/01/2015
    Ici DATE_EXAMEN est la date des examens passés par le consultant.
    A ce propos un NIND correspond à une date d'examen.
    Dans mon exemple précedent j'ai renommé les colonnes.
    Ainsi DATE_EXAMEN est la date d'examen la plus récente (max(Date_examen)) et DATE_EXAMEN_PRECEDENT correspond en réalité à la date de l'examen seule.
    Désolé ça embrouille un peu la question mais j'espère que c'est plus clair.
    En tout cas la solution en plusieurs passage fonctionne, et je t'en remercie.

    Quand à ta question
    l'information au chargement de données ou dans un calcul de tableau ?
    Dans un calcul de tableau.

Discussions similaires

  1. Sélectionner l'avant dernière date
    Par harry le ravi dans le forum Requêtes
    Réponses: 12
    Dernier message: 30/07/2009, 11h36
  2. select sur la dernière date
    Par Oraman dans le forum Oracle
    Réponses: 21
    Dernier message: 09/11/2006, 15h23
  3. [SQL Server 2000] exclusion dernière date dans un between?
    Par biloumousse dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/04/2006, 17h11
  4. Réponses: 9
    Dernier message: 16/03/2006, 16h39
  5. [ORACLE]20 dernières dates de facturation
    Par Frank dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/10/2005, 10h06

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