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

SAS Base Discussion :

Modifier les données d'une table sas


Sujet :

SAS Base

  1. #1
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut Modifier les données d'une table sas
    Bonjour,
    supposant que j'ai une table de cette forme.
    les deux cles etangère sont ID1 et ID2.
    si par exemple on prend ID1=1 et ID2=1 on a deux section NO=2 et NO=4
    Pour la premiere section ou NO=2,
    la DT_EFF_SC = 01-oct-50 (reste comme elle est )
    et DT_EFF_TX=DT_EFF_SC de la deuxième obs - 1 jour d'ou
    DT_EFF_TX=31-dec-60


    pour la deuxième section NO=2
    DT_EFF_SC = 01-janv-61 et
    DT_EFF_TX =31/12/9999

    Pareil pour le reste des donnée

    ID1 ID2 NO CO DT_EFF_SC DT_EFF_TX
    1 1 2 A 01-oct-50 01-oct-50
    1 1 2 A 01-janv-61 01-janv-61
    1 1 4 G 01-oct-50 01-oct-50
    1 1 4 G 01-janv-61 01-janv-61
    1 1 4 G 01-janv-67 01-janv-67
    1 1 4 H 01-janv-67 01-janv-67
    37 37 1 A 01-janv-51 01-janv-51
    37 37 1 B 01-janv-51 01-janv-51
    37 37 2 A 01-janv-51 01-janv-51
    37 37 2 B 01-janv-51 01-janv-51


    voici les données attendu

    ID1 ID2 NO CO DT_EFF_SCT DT_EFF_TX
    1 1 2 A 01-oct-50 31/12/1960
    1 1 2 A 01-janv-61 31/12/9999
    1 1 4 G 01-oct-50 31/12/1960
    1 1 4 G 01-janv-61 31/12/9999
    1 1 4 G 01-janv-67 31/12/9999
    1 1 4 H 01-janv-67 31/12/9999
    37 37 1 A 01-janv-51 31/12/1950
    37 37 1 B 01-janv-51 31/12/9999
    37 37 2 A 01-janv-51 31/12/1950
    37 37 2 B 01-janv-51 31/12/9999


    Merci a tous

    cordialement

  2. #2
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    c'est quoi le problème?
    Tu peux envoyer du code pour créer les tables?
    Cela nous permettra de tester rapidement

  3. #3
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Le problème est le suivant .
    je cherche une solution afin d'obtenir la table attendu à partir de la table initiale.

    sinon pour les données la premièr table est un echantillon de données.

    la deuxième table est la table attendu

  4. #4
    Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Octobre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Octobre 2008
    Messages : 42
    Points : 61
    Points
    61
    Par défaut
    Voici une solution

    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
     
     
    PROC SORT DATA = MONFICHIER; BY ID1 ID2 NO CO DESCENDING DT_EFF_SC;   RUN;
     
    DATA RESULTAT;
    SET   MONFICHIER;
    BY     ID1 ID2 NO CO DESCENDING DT_EFF_SC;
    RETAIN  DATE_TEMP;
    KEEP  ID1 ID2 NO CO DT_EFF_SC DT_EFF_TX;
     
     
         IF LAST.NO AND NOT FIRST.NO THEN DT_EFF_TX = DATE_TEMP;
         ELSE DO; 
             DATE_TEMP = DT_EFF_SC - 1;
             IF NOT LAST.NO THEN
                   DT_EFF_TX  = '31DEC9999'D;
         END;
    RUN;
     
    PROC SORT DATA = RESULTAT; BY ID1 ID2 NO CO DT_EFF_SC;   RUN;
    Cela devrait faire le résultat attendu....

  5. #5
    Membre éprouvé
    Avatar de m.brahim
    Homme Profil pro
    SAS / BIG DATA
    Inscrit en
    Juillet 2011
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : SAS / BIG DATA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2011
    Messages : 461
    Points : 1 119
    Points
    1 119
    Billets dans le blog
    14
    Par défaut
    Bonjour,

    J'ai toujours pas resolu mon problème.

    votre idée est bonne mais reste quelque soucis.

    1) la valeur du fist du DT_EFF_TX= DT_EFF_SCT (de l'observation N+1)-1jour
    2) le reste des obeservation =31DEC9999

    voici un exeple prenant uniquement un NO=1

    NO DT_EFF_SCT DT_EFF_TX
    1 01/01/1960 16/12/2011
    1 03/02/1962 15/12/2010

    la table que j'attens est la suite

    NO DT_EFF_SCT DT_EFF_TX
    1 01/01/1960 02/02/1962
    1 03/02/1962 31/12/9999

    comme vous povez le voir
    le premiere obsevation de DT_EFF_TX=(03/12/1962-1)=02/12/1962
    la deuxième obs de DT_EFF_TX=31/12/9999

    cordialement

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2013, 12h26
  2. [AC-2010] Modifier les données dans une table vba
    Par docjo dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/05/2011, 18h17
  3. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 09h51
  4. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 17h21
  5. transformer les données d'une table .dbf vers ma BD
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 09h54

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