1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : août 2017
    Messages : 49
    Points : 18
    Points
    18

    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!




    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 confirmé
    Inscrit en
    novembre 2009
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 301
    Points : 592
    Points
    592

    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
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : août 2017
    Messages : 49
    Points : 18
    Points
    18

    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]

    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;

    {CODE]

  4. #4
    Membre confirmé
    Inscrit en
    novembre 2009
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 301
    Points : 592
    Points
    592

    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 : 21
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
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : août 2017
    Messages : 49
    Points : 18
    Points
    18

    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 confirmé
    Inscrit en
    novembre 2009
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : novembre 2009
    Messages : 301
    Points : 592
    Points
    592

    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 : 15
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 : 15
Taille : 40,5 Ko

    Je joins le fichier m'ayant servi de test.

    Cordialement,
    Fichiers attachés Fichiers attachés

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    août 2017
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : août 2017
    Messages : 49
    Points : 18
    Points
    18

    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. Ordonner par date et heure sur 2 tables
    Par rems033 dans le forum PHP & MySQL
    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