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/03/2008, 23h19   #1
Futur Membre du Club
 
Inscription : avril 2007
Messages : 153
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 153
Points : 17
Points : 17
Par défaut Problème d affichage

bonjour,

la je suis bloquée sur une requete j ai passé toute l'après-midi dessus
j ai une table commande avce les champs suivant
-numcommande
-modelivraison (soit express ou normal)
-codplateforme (BOUL92 , ISSY92 , MEUD92)
-datecommande
j arrive pas a faire ma requette de tel sorte que j'obtienne combien de commande normal sont passées mois de janvier .
la dans ma table je sais que j ai 52 commande normal passées en 2008 , en mois de JAV, FEV , et MARS
le resultat que je veux obtenir est un truc qui ressemble a ca :
JAN : 32
Fev : 18
Mrs : 2

mais avce ma requete je suis loin de ca apperment
Code :
1
2
3
4
5
6
CREATE TABLE te_data.nbcmd AS
SELECT numcommande, datecommande /*, modelivraison, codplateforme*/
FROM te_data.commande
WHERE numcommande LIKE 'count' AND etatcommande LIKE 'normal'
ORDER BY numcommande;
quit ;
nita2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 09h25   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Bonjour,
Il me semble qu'il faut tout simplement faire un groupement par date(mois il faut faire attention si tu as des données en janvier 2007 et janvier 2008, tu auras le cumul des deux années)
Correction : ce n'est pas une somme qu 'il faire mais un count(comme expliquée dans la réponse ci-dessous, la somme peut marcher si je fais un sum(*) as nb_commande)

Code :
1
2
3
4
5
6
CREATE TABLE te_data.nbcmd AS
SELECT month(datecommande), count(numcommande) AS nombre_de_commande
FROM te_data.commande
WHERE numcommande LIKE 'count' AND etatcommande LIKE 'normal'
GROUP BY month(datecommande);
quit ;
Si tu as des données sur plusieurs années
Code :
1
2
3
4
5
6
CREATE TABLE te_data.nbcmd AS
SELECT year(datecommande),month(datecommande), count(numcommande) AS nombre_de_commande
FROM te_data.commande
WHERE numcommande LIKE 'count' AND etatcommande LIKE 'normal'
GROUP BY year(datecommande),month(datecommande);
quit ;
Cordialement
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 09h28   #3
Responsable SAS
 
Inscription : septembre 2006
Messages : 1 973
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 973
Points : 4 810
Points : 4 810
Bonjour,
Il faut que tu utilise la fonction month pour obtenir les mois et que tu utilises la fonction count pour compter. N'oublis pas non plus d'utiliser un GROUP BY.
Par exemple :
Code :
1
2
3
SELECT Month([date]), Count(numcommmande)
FROM base
GROUP BY Month([date]);
fafabzh6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 15h21   #4
Futur Membre du Club
 
Inscription : avril 2007
Messages : 153
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 153
Points : 17
Points : 17
oui en fait , j ai executé ta requete , mais je comprend pas pourquoi il m affcihe dans le resultat que le mois 'juin' et pas les autres mois ,
justement dans ma table j ai 4 commandes qui sont passées en Juin ,ca n empeche que j en ai encore plien dans les autres mois ??!!!
nita2006 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 16h55   #5
Membre Expert
 
Inscription : mars 2005
Messages : 1 028
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 028
Points : 1 278
Points : 1 278
Envoyer un message via Yahoo à bahraoui
Ta variable date est de quel type?

Il faut voir les filtres (le where)!!

Cordialement
bahraoui 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 19h01.


 
 
 
 
Partenaires

Hébergement Web