Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2008, 08h59   #1
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 95
Points : 25
Points : 25
Par défaut nombre de chiffres significatifs

Bonjour !

Nouvelle journée nouveau problème ^^
Je récupère des valeurs de variables depuis une table SAS et je veux compter le nombre d'occurences de chaque valeur de la manière suivante :
Code :
1
2
3
4
5
proc sql;
        SELECT p11078 INTO:val FROM split WHERE num=&j AND splitgr=&i;
        SELECT count(*) INTO:nb FROM split WHERE p11078=&val AND splitgr=&i;
        UPDATE split SET nbocc=&nb WHERE num=&j AND splitgr=&i;
      quit;
Problème : les valeurs de p11078 ont 9 chiffres significatifs, mais seulement 5 sont enregistrés dans val, donc le count(*) retourne 0 à chaque fois
J'aimerais bien éviter de tronquer les valeurs pour ne pas fausser l'analyse...
Y a-t-il un moyen de déclarer des variables ayant une plus grande capacité ?

mitmit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 09h10   #2
Nouveau Membre du Club
 
Inscription : janvier 2008
Messages : 60
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 60
Points : 26
Points : 26
Salut,

tu pourras toujours essayer de rajouter l'option dlm='09' x.
cyberboy00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 09h15   #3
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 95
Points : 25
Points : 25
heu pourrais-tu préciser un tout petit peu stp ?

j'ai regardé dans la doc et cette instruction semble être une option de l'instruction INFILE...

je me trompe ?

merci
mitmit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 10h16   #4
Membre chevronné
 
Avatar de steelspirit
 
Inscription : janvier 2008
Messages : 420
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2008
Messages : 420
Points : 739
Points : 739
Envoyer un message via MSN à steelspirit
tout est une question de format mon cher mimit !!! dans un SELECT INTO: ta macro-variable prend le format par défaut (BEST12.)

essaie de mettre format= après ton select :

Code :
1
2
3
4
5
6
proc sql;
        select p11078 format=30.20  into:val from split where num=&j and splitgr=&i;
        select count(*) into:nb from split where p11078=&val and splitgr=&i;
        update split set nbocc=&nb where num=&j and splitgr=&i;
quit;
Steel
steelspirit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 10h29   #5
Nouveau Membre du Club
 
Inscription : avril 2007
Messages : 95
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 95
Points : 25
Points : 25
Merci mille fois tout marche bien à présent
mitmit est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h12.


 
 
 
 
Partenaires

Hébergement Web