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 :

Ordonner par volume sur PROC TABULATE


Sujet :

SAS Base

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut Ordonner par volume sur PROC TABULATE
    Bonjour,

    Soit la proc tabulate ci-dessous me donnant le volume d'identifiant opération par matricule...SAS guide me permet de classer par nom ou matricule mais pas par volume...faut il un order by? et à quel endroit?

    Merci!




    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
    PROC TABULATE
    DATA=WORK.QUERY_FOR_GEC_PREMIUM_NAT_X
     
    	;
     
    	VAR "Identifiant opération"n;
    	CLASS "Matricule agent créé"n /	ORDER=DATA MISSING;
    	CLASS "Nom Prenom"n /	ORDER=DATA MISSING;
    	CLASS DSCS /	ORDER=UNFORMATTED MISSING;
    	TABLE /* Dimension de page */
    DSCS,
    /* Dimension de ligne */
    'Nom Prenom'n*
      'Matricule agent créé'n*
        N,
    /* Dimension de colonne */
    'Identifiant opération'n 		;
    	;
     
    RUN;
    /* -------------------------------------------------------------------
       Fin du code de la tâche.
       ------------------------------------------------------------------- */
    RUN; QUIT;
    TITLE; FOOTNOTE;

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Ordonner par volume sur PROC TABULATE
    Bonjour,

    Je ne suis pas sure de comprendre votre question mais la proc tabulate accepte une option order=data | formatted | freq | unformatted comme la proc freq.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proc tabulate data=work.query_for_gec_premium_nat_x order=freq;
    Cordialement,

    PS : Pensez à utiliser les balises [CODE] autour de votre code, ça facilite la lecture.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    Merci c'est beaucoup mieux avec order=freq..il me reste 2 sur 10 qui ne sont pas dans l'ordre, voyez vous pourquoi?

    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
     
     
    PROC TABULATE
    DATA=WORK.PROD_CHEK order=freq
     
    	;
     
    	VAR "Identifiant opération"n;
    	CLASS LB_TYP_OPE2;
    	CLASS DSCS /;
    	TABLE /* Dimension de page */
    DSCS,
    /* Dimension de ligne */
    LB_TYP_OPE2*
      N 
    ALL={LABEL="Total (ALL)"}*
      N,
    /* Dimension de colonne */
    'Identifiant opération'n 		;
    	;
     
    RUN;

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Ordonner par volume sur PROC TABULATE
    Bonjour,

    Pouvez-vous copier-coller le résultat que vous obtenez ?

    Pour les balises [CODE], il faut entourer le code par Nom : Capture.JPG
Affichages : 166
Taille : 8,6 Ko ou sélectionner le texte et cliquer sur le signe . (Vous pouvez éditer vos précédents messages.)

    Cordialement,

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    LB_TYP_OPE2
    CHEQUE AU CREDIT / DELAI N 3079

    CHEQUE AU DEBIT / MONTANT N 283
    CHEQUE AU CREDIT / MONTANT N 266
    CHEQUE AU DEBIT / OPPOSITION N 225
    CHEQUE AU CREDIT / REJET N 249
    CHEQUE AU CREDIT / OMERIC N 255
    CHEQUE AU DEBIT / IB N 111
    CHEQUE AU CREDIT / PERTE N 163
    CHEQUE AU DEBIT / REJET N 114
    CHEQUE AU DEBIT / DELAI N 74
    CHEQUE DELIVRANCE / DELAI N 3
    CHEQUE DELIVRANCE / REFUS N 3
    Total (ALL) N 4825

  6. #6
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut Ordonner par volume sur PROC TABULATE
    Bonjour,

    Le programme que vous avez indiqué produit un tableau par DSCS. Le programme pour obtenir votre sortie serait plutôt celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROC TABULATE DATA=WORK.PROD_CHEK order=freq;
      CLASS LB_TYP_OPE2 DSCS;
      TABLE (LB_TYP_OPE2*DSCS) all,N;
    RUN;
    Nom : Capture.JPG
Affichages : 250
Taille : 28,8 Ko

    La difficulté vient du fait que votre tableau de fréquences dépend de deux variables (équivalent d'un tableau croisé). Je pense que le plus simple est de concaténer les deux variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data PROD_CHEK;
      set PROD_CHEK;
      LB_TYP_OPE2_DSCS = compbl(LB_TYP_OPE2 || " / " || DSCS);
    run;
     
    PROC TABULATE DATA=WORK.PROD_CHEK order=freq;
      CLASS LB_TYP_OPE2_DSCS;
      TABLE LB_TYP_OPE2_DSCS all,N;
    RUN;
    Nom : Capture.JPG
Affichages : 186
Taille : 40,5 Ko

    Je joins le fichier m'ayant servi de test.

    Cordialement,
    Fichiers attachés Fichiers attachés

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Août 2017
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Août 2017
    Messages : 67
    Points : 29
    Points
    29
    Par défaut
    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. proc Tabulate : nombre limites de croisement autorisé par SAS
    Par maverik40 dans le forum ODS et reporting
    Réponses: 12
    Dernier message: 15/06/2011, 08h54
  2. Réponses: 6
    Dernier message: 16/05/2011, 15h00
  3. [PROC] Remplacer un point par une virgule dans une Proc Tabulate
    Par PAULOM dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/08/2009, 08h36
  4. Colorer une ligne sur deux Proc Tabulate
    Par Deciprog dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 22/03/2009, 10h45
  5. [MySQL] Ordonner par date et heure sur 2 tables
    Par rems033 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 10/02/2009, 14h39

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