Précédent   Forum du club des développeurs et IT Pro > 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
 
Outils de la discussion
Publicité
'
Vieux 25/02/2013, 15h53   #1
Dav6706
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2013
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : janvier 2013
Messages : 9
Points : 0
Points : 0
Par défaut Remplacement cases vides

Bonjour à tous,

Je voulais savoir ce que je dois rajouter à ce programme pour utiliser un critère "date" supplémentaire pour obtenir le tableau suivant:

Numeroclient Produitacheté M1 M2 M3 M4 M5 M6 Date
1 X 3 . 4 5 6 7 23/11
1 Y . 4. . . . . 23/11
1 X 5 . . . 6 7 24/12
1 Y . 4 5 6 . . 24/12

Je souhaiterai obtenir:
Numeroclient Produitacheté M1 M2 M3 M4 M5 M6
1 X 3 4 4 5 6 7 23/11
1 X 5 4 5 6 6 7 24/12

Je voudrai tenir compte à la fois du numéro client du Produitacheté et de la date. Est-il possible de modifier le programme suivant ou d'ajouter quelque chose pour que le critère date soit pris en compte?

Si quelqu'un a une idée....



Code :
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
26
27
28
29
30
31
32
33
34
DATA TEST;
INPUT Numeroclient Porduitacheté $1. M1 M2 M3 M4 M5;
cards;
1 X 2 . 3 . 2
1 Y . 5 . 3 .
1 Z 1 3 1 4 1
2 X 1 4 3 1 .
2 Y . . . . 2
3 X 2 3 2 . .
3 Y . . . 2 4
4 Y . 5 . 1 4
RUN;
 
PROC SQL;
   CREATE TABLE TEST2 AS SELECT
     Numeroclient,
     "X" AS Porduitacheté,
     SUM (M1) AS M1,
     SUM (M2) AS M2,
     SUM (M3) AS M3,
     SUM (M4) AS M4,
     SUM (M5) AS M5
   FROM TEST
     WHERE Numeroclient IN 
          (SELECT DISTINCT Numeroclient 
           FROM TEST 
               WHERE Porduitacheté IN ("X", "Y") 
               GROUP BY Numeroclient 
               HAVING COUNT(DISTINCT Porduitacheté) > 1) 
        AND Porduitacheté NE "Z"
    GROUP BY Numeroclient
 ;
 
QUIT;
Dav6706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 17h07   #2
jmarandet
Membre du Club
 
Homme julien marandet
Ingénieur Statisticien
Inscription : janvier 2013
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme julien marandet
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur Statisticien
Secteur : Service public

Informations forums :
Inscription : janvier 2013
Messages : 28
Points : 54
Points : 54
Bonjour Dav6706,

En cherchant un petit peu (ici par exemple ?) vous trouverez certainement votre réponse...

Vous n'êtes pas très loin de la solution.
jmarandet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2013, 10h05   #3
Dav6706
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2013
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : janvier 2013
Messages : 9
Points : 0
Points : 0
Bonjour,

C'est bon, merci de m'avoir mis sur la piste il manquait vraiment pas grand chose effectivementb. Il faudrait vraiment que je me mette au langage sql...

Merci


Dan
Dav6706 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h33.


 
 
 
 
Partenaires

Hébergement Web