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 31/10/2011, 18h02   #1
Invité de passage
 
Femme
Inscription : octobre 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 35
Points : 1
Points : 1
Par défaut SUM et GROUP BY en SQL

bonjour,

je suis intéressée par les commandes SUM et GROUP BY de SQL mais je n'ai pas compris comment cela fonctionnait. J'ai un fichier de consommation de médicaments et j'aimerai savoir par patient (par ligne) combien chaque patient a consommé de médicament A, B, ...et ce pour chaque période
mon fichier est comme cela :
Patient période1medic1 période1medic2 periode2medic1 periode2medic2
1 A A A B
2 C B A A
3 A B . .


merci pour votre aide
craow87000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 13h49   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
Bonjour.
Je ne sais pas si dans ton cas le SQL est vraiment l'outil le plus approprié, en tout cas pas avec une base organisée comme cela. Ce qui faciliterait tes calculs, ce serait de construire une table organisée ainsi :
PATIENT........PERIODE..........MEDICAMENT
1......................1.....................A
1......................2.....................A
1......................2.....................B
2......................1.....................C
etc.
On peut dériver cette table de la tienne avec une proc TRANSPOSE puis une étape DATA pour construire la variable PERIODE.
Une fois que tes données sont organisées ainsi, tu as le choix : SQL avec un GROUP BY, ou proc FREQ par exemple (l'option SPARSE couplée à LIST te permettant même d'avoir les consommations de tous les médicaments pour chaque patient).
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2011, 19h59   #3
Invité de passage
 
Femme
Inscription : octobre 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 35
Points : 1
Points : 1
Bonsoir,

Merci je vais essayer et vous tiens au courant
craow87000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/11/2011, 22h37   #4
Invité de passage
 
Femme
Inscription : octobre 2011
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 35
Points : 1
Points : 1
Aprés reflexion n'est t'il pas possible de garder ma table 1 patient par ligne et de compter par ligne lme nombre de médicaments A, B.. par période. Ca me permettrait de garder dans ma table d'autres variables que je pourrait utiliser ensuite pour affiner ma description (sexe, age ...)

autre question subsidiaire, comment faire en étape date pour dire " si variable = " de période1médic1 à periode1medicX" alors nouvellevariable=1. ce qui me pose problème c'est "" de période1médic1 à periode1medicX"

merci par avance
craow87000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h31.


 
 
 
 
Partenaires

Hébergement Web