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 :

Différence arrêt initial / prolongation


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut Différence arrêt initial / prolongation
    Bonjour,



    J'ai un problème car ce qui ressort de notre SIH est une ligne par arrêt. Il n'y a pas de regroupement entre les arrêts et les prolongation.



    Je voudrai avoir la prolongation lié à l'arrêt initial afin de comptabiliser le nombre d'arrêts de travail. Ou du moins je voudrai identifier d'un coté les arrêts et de l'autre les prolongations.



    J'ai les champs ci dessous :

    je vous mets un exemple de ce qui me ressort :


    Nom ABSDEF ABSDRET ABSNBJ
    AAA 05/02/2015 06/02/2015 1
    AAA 15/06/2015 02/07/2015 17
    AAA 02/07/2015 12/07/2015 10
    AAA 12/07/2015 23/07/2015 11





    A partir de la je voudrai déterminer arrêt initial (première et deuxième ligne) et prolongation (ligne 3 et 4 en lien avec l'arrêt initial de la ligne 2).



    J'ai utilisé cette formule dans le script :


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    Base:
    LOAD
          @cle_CAL,
          Date                                                                       as Date_RH,
          Année                                                                   as Année_RH,
          Mois                                                                       as Mois_RH,
          CODE_UF                                                                   as UF_RH, 
          LIBELLE_UF                                                               as Libellé_UF,
          SERVICE                                                                   as Service,
          DEPARTEMENT                                                               as Département,
          POLE                                                                       as Pôle,
          @cle_AFF,
          GRADREG,
          GRADE,
          STATUT,
          ABS,
          MATRI,
          DATEVT,
          QUAND,
          DFIbis,
          NBJPER,
          ENTDEF,
          SORTDEF,
          ECHELON,
          TPSDEF,
          TPSMOTIF,
          TPSDFI,
          AFFDEF,
          ABSDEF,
          ABSNBJ,
          ABSNBJPER,
          ABSDRET,
          NOM,
          PRENOM,
          ID_AGENT,
          [Motif d'absence],
          LIBSTAT,
          CORPSNEH,
          GRADENEH,
          EMPLOINEH,
          FONCTNEH,
          LIBELLE,
          SIGNA,
          PourcentageAffectation,
          AFFTYP,
          DateFinAffectation,
          AFFNUIT,
          ETPJourTravaillé,
          ETPJourPayé,
          BUDGET
    FROM
    [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd]
    (qvd);
     
     
     
    arrets:
    load ABSDRET,
    ABSDEF,
     
     
     
    if(previous(ABSDRET)=ABSDEF,'prolon','initial')  as PROLONGATION  //Previous()recherche la valeur de l'expression expr en utilisant les données de l'enregistrement d'entrée précédent
     
     
     
    FROM
    [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd]
    (qvd);


    mais pour certains arrêts il me double les ligne (une en arrêt initial et l'autre en prolongation)



    Help svp



    Merci

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 651
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 651
    Points : 2 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Dans la 2em partie de votre script, il faut :
    - Ajouter la colonne "Nom" (qui doit être unique !!! autant préférer un identifiant de personne), car rien n'empêche 2 personnes d'avoir les mêmes dates.
    - Trier les données par "Nom" puis par "ABSDEF" (pour être sûr d'avoir les données dans l'ordre, et groupées par Nom).
    - Vérifier qu'on est toujours en train de parler du même "Nom" que l'enregistrement précédent, sinon, une ligne pourra être considérée comme le prolongement d'une autre alors que ce sont 2 noms différents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(previous(ABSDRET)=ABSDEF and previous(Nom) = Nom,'prolon','initial')  as PROLONGATION
    A votre place, je terminerai mon script par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RENAME Base TO Base_TMP;
     
    Base:
    NOCONCATENATE LOAD 
    *,
    if(previous(ABSDRET)=ABSDEF and previous(NOM) = NOM,'prolon','initial')  as PROLONGATION
    RESIDENT Base_TMP
    ORDER BY NOM ASC, ABSDEF ASC
    ;
     
    DROP TABLE Base_TMP;
    en remplaçant "NOM" par un champ qui identifie de manière unique une personne.

  3. #3
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Pourquoi lire 2 fois le QVD ? Ce n'est pas nécessaire.

    Sinon +1 pour la comparaison sur le nom.

    Par contre je fais toujours une 1ere table triée, puis une 2e table qui contient le previous. En v10 j'ai déjà constaté que Qlikview ne fait pas forcément Load, Order, calculs mais parfois Load, calculs, Order. Depuis je n'ai plus tenté le diable, mais c'est peut-être ok en v11.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut encore un petit peu d'aide
    Bonjour et tout d’abord merci pour votre aide,

    En appliquant votre méthode phunky j'ai toujours le problème des doublons de lignes.

    Est ce que vous savez comment faire pour qu'il n'apparaisse qu'une ligne soit prolongation soit Initial ?

    Ci dessous ce qui ressort de mon script :

    002241 05/02/2015 06/02/2015 1 initial
    002241 15/06/2015 02/07/2015 17 initial
    002241 02/07/2015 12/07/2015 10 initial
    002241 02/07/2015 12/07/2015 10 prolon
    002241 12/07/2015 23/07/2015 11 initial
    002241 12/07/2015 23/07/2015 11 prolon
    002241 23/07/2015 15/09/2015 54 initial
    002241 23/07/2015 15/09/2015 54 prolon
    002241 15/09/2015 21/09/2015 6 initial
    002241 15/09/2015 21/09/2015 6 prolon
    002241 21/09/2015 14/10/2015 23 initial
    002241 21/09/2015 14/10/2015 23 prolon
    002241 14/10/2015 14/11/2015 31 initial
    002241 14/10/2015 14/11/2015 31 prolon
    002241 14/11/2015 09/12/2015 25 initial
    002241 14/11/2015 09/12/2015 25 prolon
    002241 09/12/2015 06/01/2016 28 initial
    002241 09/12/2015 06/01/2016 28 prolon
    002241 initial


    Merci beaucoup

    Cordialement

  5. #5
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour,
    Pourriez-vous vous assurer que vous n'avez pas de doublon dans votre base
    et pourriez-vous nous poster votre script ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut scipt
    Bonjour formulary

    Je n'ai pas de doublon dans ma base, voici ci-dessous mon scipt
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    Base:
    LOAD 
          @cle_CAL, 
          Date 													              	as Date_RH, 
          Année 												              	as Année_RH, 
          Mois 													              	as Mois_RH, 
          CODE_UF 												              	as UF_RH,  
          LIBELLE_UF 												          	as Libellé_UF,
          SERVICE 													          	as Service, 
          DEPARTEMENT 												          	as Département,
          POLE 														          	as Pôle,
          @cle_AFF, 
          GRADREG, 
          GRADE, 
          STATUT, 
          ABS, 
          MATRI, 
          DATEVT, 
          QUAND, 
          DFIbis, 
          NBJPER, 
          ENTDEF, 
          SORTDEF, 
          ECHELON, 
          TPSDEF, 
          TPSMOTIF, 
          TPSDFI, 
          AFFDEF, 
          ABSDEF, 
          ABSNBJ, 
          ABSNBJPER, 
          ABSDRET, 
          NOM, 
          PRENOM, 
          ID_AGENT, 
          [Motif d'absence], 
          LIBSTAT, 
          CORPSNEH, 
          GRADENEH, 
          EMPLOINEH, 
          FONCTNEH, 
          LIBELLE, 
          SIGNA, 
          PourcentageAffectation, 
          AFFTYP, 
          DateFinAffectation, 
          AFFNUIT, 
          ETPJourTravaillé, 
          ETPJourPayé, 
          BUDGET
    FROM
    [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd]
    (qvd);
     
    RENAME Table Base to Base_TMP;
     
    Base : 
    NoConcatenate LOAD *,
     
    if(previous(ABSDRET)=ABSDEF and previous(MATRI)=MATRI,'prolon','initial')  as PROLONGATION  
    //Previous()recherche la valeur de l'expression expr en utilisant les données de l'enregistrement d'entrée précédent 
     
    Resident Base_TMP
    ORDER BY MATRI ASC, ABSDEF ASC;
     
    DROP TABLE Base_TMP;

    Merci par avance pour ton aide

    Bien cordialement

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour,
    Pouvez-vous essayer avec script ?
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Base:
    LOAD 
          @cle_CAL, 
          Date 													              	as Date_RH, 
          Année 												              	as Année_RH, 
          Mois 													              	as Mois_RH, 
          CODE_UF 												              	as UF_RH,  
          LIBELLE_UF 												          	as Libellé_UF,
          SERVICE 													          	as Service, 
          DEPARTEMENT 												          	as Département,
          POLE 														          	as Pôle,
          @cle_AFF, 
          GRADREG, 
          GRADE, 
          STATUT, 
          ABS, 
          MATRI, 
          DATEVT, 
          QUAND, 
          DFIbis, 
          NBJPER, 
          ENTDEF, 
          SORTDEF, 
          ECHELON, 
          TPSDEF, 
          TPSMOTIF, 
          TPSDFI, 
          AFFDEF, 
          ABSDEF, 
          ABSNBJ, 
          ABSNBJPER, 
          ABSDRET, 
          NOM, 
          PRENOM, 
          ID_AGENT, 
          [Motif d'absence], 
          LIBSTAT, 
          CORPSNEH, 
          GRADENEH, 
          EMPLOINEH, 
          FONCTNEH, 
          LIBELLE, 
          SIGNA, 
          PourcentageAffectation, 
          AFFTYP, 
          DateFinAffectation, 
          AFFNUIT, 
          ETPJourTravaillé, 
          ETPJourPayé, 
          BUDGET,
          if(previous(ABSDRET)=ABSDEF and previous(MATRI)=MATRI,'prolon','initial')  as PROLONGATION  
    FROM [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
    ORDER BY MATRI ASC, ABSDEF ASC;
    Si ça ne marche pas, notez un matricule au hasard, retirez le champ prolongation du script, rechargez et re-vérifiez si le matricule est en double ou non

  8. #8
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut pas de doublon dans la base
    Bonjour formulary

    J'ai essayé ta petite astuce et ton script et le problème des doublons de lignes persiste.

    J'ai ensuite comme tu me l'a indiqué mis la ligne avec le if prévious en commentaire pour ne pas en tenir compte dans le scipt et la au chargement miracle plus de doublons de ligne.


    Mon tableau ci dessous apparaît, je ne sais donc pas identifier arrêt initial de prolongation

    Sans le Ifprévious :

    NOM ABSDEF ABSDRET ABSNBJ Test dif arrêt
    petit_arrêt
    CORSET 42040 42041 1 petit_arrêt
    CORSET 42170 42187 17 long_arrêt
    CORSET 42187 42197 10 long_arrêt
    CORSET 42197 42208 11 long_arrêt
    CORSET 42208 42262 54 long_arrêt
    CORSET 42262 42268 6 long_arrêt
    CORSET 42268 42291 23 long_arrêt
    CORSET 42291 42322 31 long_arrêt
    CORSET 42322 42347 25 long_arrêt
    CORSET 42347 42375 28 long_arrêt
    CORSET petit_arrêt


    Avec le IFPREVIOUS

    NOM ABSDEF ABSDRET ABSNBJ PROLONGATION Test dif arrêt
    petit_arrêt
    CORSET 42040 42041 1 initial petit_arrêt
    CORSET 42170 42187 17 initial long_arrêt
    CORSET 42187 42197 10 initial long_arrêt
    CORSET 42187 42197 10 prolon long_arrêt
    CORSET 42197 42208 11 initial long_arrêt
    CORSET 42197 42208 11 prolon long_arrêt
    CORSET 42208 42262 54 initial long_arrêt
    CORSET 42208 42262 54 prolon long_arrêt
    CORSET 42262 42268 6 initial long_arrêt
    CORSET 42268 42291 23 initial long_arrêt
    CORSET 42268 42291 23 prolon long_arrêt
    CORSET 42291 42322 31 initial long_arrêt
    CORSET 42291 42322 31 prolon long_arrêt
    CORSET 42322 42347 25 initial long_arrêt
    CORSET 42347 42375 28 initial long_arrêt
    CORSET 42347 42375 28 prolon long_arrêt
    CORSET initial petit_arrêt


    Merci encore pour votre aide

    Bien cordialement

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour,
    Ca ressemble à un doublonnage de ta base, pourtant ...
    Je ne comprends pas ...
    Quand vous utilisez Ctrl-T pour afficher les tables (chargées SANS le IF PREVIOUS) et que vous cliquez avec le bouton droit sur la table Base pour afficher les enregistrements sans passer par un graphique, confirmez-vous que CORSET n'a qu'un seul enregistrement pour chaque date ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut doublage
    Aie ça commence à m’inquiéter

    Alors quand je clic sur le bouton droit sur la table je ne vois que les 1000 premières ligne et bien entendu je n'ai pas CORSET dedans

    Par contre sur ma feuille j'ai fait sélectionner des champs, j'ai affiché Nom, prénom et les différentes dates.

    Quand je sélectionne CORSET dans le champs nom, j'ai bien mes différentes dates qui apparaissent dans les autres champs et une seule fois !!!

    Merci pour ton aide

    Cordialement

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    C'est normal : L'affichage d'une table se limite aux 1000 premiers enregistrements.
    Modifiez temporairement le script pour ajouter un Where nom = 'CORSET' et rechargez le.

    Pour le graphique, QV n'affiche qu'une ligne par dimension(s) donc une ligne par nom / date si c'est vos dimensions.
    Le but de la manip étant de vérifier que vous n'avez qu'un seul enregistrement au niveau de votre QVD.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut doublons
    oulah j'ai en effet l'impression d'avoir des soucis

    Prenons 2013 pour CORSET seulement un arrêt et une prolongation :

    NOM ABSDEF ABSDRET ABSNBJ Test dif arrêt
    petit_arrêt
    CORSET 41304 41305 1 petit_arrêt
    CORSET 41305 41314 9 long_arrêt
    CORSET petit_arrêt


    Et dans la visualisation de la table base :

    Cf pièce jointe

    Pourquoi j'ai des ABSDRET vide ?

    Cordialement

    merci
    Fichiers attachés Fichiers attachés

  13. #13
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour. Ceci explique cela.
    Lors de la lecture de la base, la fonction previous() renvoie la valeur de l'enregistrement lu juste avant.
    Comme on a plusieurs fois un enregistrement à vide, on a donc des prolongations et des arrêts initiaux.

    Par contre, pour le QVD, il faut voir dans le script qui a généré le QVD ce qu'il charge exactement ...

  14. #14
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut merci pour ton aide
    Bonjour,

    Existe t'il un moyen simple et efficace pour lutter contre ces champs vide ?

    Modification du script ?

    Merci par avance

    Cordialement

  15. #15
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    Déjà essayez de comprendre pourquoi votre QVD possède ces enregistrements.
    Sinon vous pouvez ajouter un Where not isnull(absdef) dans votre load

  16. #16
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut MERCI !!!
    Bonjour,

    Un grand merci a toi pour ta patience et pour toute cette aide je vais essayer de creuser de mon coté

    Bonne fin de journée et encore merci

    Cordialement

  17. #17
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut peek ?
    Bonjour,

    J'ai essayé le not isnull et cela ne change rien au problème.

    Est ce que tu penses que si j'utilise une fonction peek le résultat sera identique ?
    Je maîtrise pas trop cette formule mais peut être qu'avec la bonne syntaxe elle fonctionnerait.

    Merci beaucoup

    Cordialement

  18. #18
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    La fonction peek renvoie la valeur d'un champ d'un enregistrement à partir de son numéro.
    Il faudrait donc faire des tas de tests pour comprendre.

    Déjà créez un nouveau fichier QV et dans le script mettez un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Base:
    Load * from [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
    where nom='CORSET';
    Regardez la table obtenue (Ctrl-T puis clic droit sur la table).
    Modifiez le script avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Base:
    Load * from [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
    where nom='CORSET' and not isnull(ABSDRET);
    Les enregistrements à blanc ont-il disparus ?
    Si non, essayez de modifier le script avec un " and ABSDRET>0 "
    ou essayez de nous poster un affichage de la table obtenue avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Load ABSDEF,ABSDRET from [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
    where nom='CORSET';
    Et avez-vous regardé le script Load du fichier QV qui fait le store du fichier qvd ?

  19. #19
    Membre à l'essai
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Janvier 2015
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2015
    Messages : 33
    Points : 22
    Points
    22
    Par défaut bonjour
    Bonjour,

    J'ai fait les différents tests et avec ce script ci dessous les enregistrements a blanc ont disparus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Base:
    Load * from [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
    where NOM='CORSET' and not isnull(ABSDRET);
    j'ai donc ajouter le if prévious :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Base:
    Load *,
     if(previous(ABSDRET)=ABSDEF and previous(MATRI)=MATRI,'prolon','initial')  as PROLONGATION
     
     from [..\ENTREPOT\REFERENTIELS\BaseGRH.qvd] (qvd)
     
     where NOM='CORSET' and not isnull(ABSDRET);
    Les enregistrements a vide ne sont toujours pas la et j'obtient le résultat suivant :

    NOM PRENOM ABSDEF ABSDRET ABSNBJ PROLONGATION
    CORSET SOLANGE 05/02/2015 06/02/2015 1 initial
    CORSET SOLANGE 15/06/2015 02/07/2015 17 initial
    CORSET SOLANGE 02/07/2015 12/07/2015 10 initial
    CORSET SOLANGE 12/07/2015 23/07/2015 11 initial
    CORSET SOLANGE 23/07/2015 15/09/2015 54 initial
    CORSET SOLANGE 15/09/2015 21/09/2015 6 initial
    CORSET SOLANGE 21/09/2015 14/10/2015 23 initial
    CORSET SOLANGE 14/10/2015 14/11/2015 31 initial
    CORSET SOLANGE 14/11/2015 09/12/2015 25 initial
    CORSET SOLANGE 14/11/2015 09/12/2015 25 prolon
    CORSET SOLANGE 09/12/2015 06/01/2016 28 initial
    CORSET SOLANGE 09/12/2015 06/01/2016 28 prolon


    Le prolongation/initial ne fonctionne pas grrrrr

    Je pense que l'on en est pas très loin ??

    Merciiiii

    Cordialement

  20. #20
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    Ajoutez un order by nom,absdef dans le load pour trier sur le nom et la date.
    Les 2 derniers enregistrements sont doublés. Vérifiez les enregistrements chargés sans le previous, il doit y avoir des doublons ...

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/10/2014, 12h08
  2. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 11h53
  3. [CLIPS] Différence deffacts et initial-facts
    Par Kylie - XX dans le forum Autres langages
    Réponses: 0
    Dernier message: 13/05/2008, 19h36
  4. Différences entre jmp, jz, jnz, etc
    Par christbilale dans le forum Assembleur
    Réponses: 3
    Dernier message: 05/07/2002, 16h09
  5. Réponses: 3
    Dernier message: 07/05/2002, 17h06

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