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 14/12/2011, 19h25   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 46
Points : 7
Points : 7
Par défaut Jointure fichiers : lignes manquantes

Bonjour,

j'ai fait une jointure entre 2 bases à partir du code commune. Après cette jointure, il me manque 321 lignes (nombre total de lignes 111 000). Est-il possible de mettre en évidence ces lignes où la jointure ne s'est pas faite? Je pourrais ainsi comprendre quels sont les problèmes rencontrés voire y remédier pour ne pas perdre de ligne (par exemple, en reprenant à la main les 321 codes communes problématiques). Mes requêtes donneront ensuite des chiffres plus justes.

Je vous remercie par avance pour votre réponse.

Cordialement,
Au pays des stats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 15h21   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
Bien sur,

comment sais tu que tu dois obtenir 111000 lignes? As tu un autre dataset "complet"?

SI oui c'est assez simple, de merger en utliasnt les cles necessaires et ed faire un if a and not b (dis nous si ca te parles pas.. il y a surement des posts qui en evoquent cela).

Sinon, comment sais tu qu'il te manque 321 lignes?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/12/2011, 17h31   #3
Invité régulier
 
Inscription : janvier 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 46
Points : 7
Points : 7
Bonjour,

Merci pour votre réponse.

Je sais que mon entreprise a près de 111 000 clients via différentes bases de données. Je joins deux bases qui rassemblent l'ensemble de nos clients (1 ligne = 1 client). Logiquement, quand je fusionne les 2 bases, je dois bien retrouver le nombre de clients de l'entreprise. S'il en manque (je le vois car il manque 321 lignes), c'est que la jointure s'est mal passée... J'aimerais en comprendre les raisons afin d'y remédier et d'extraire dans un second temps des chiffres corrects.

Je ne vois pas concrètement comment mettre en œuvre vos préconisations. Pouvez-vous être plus explicite ou me dire où je peux trouver de l'information?

Merci encore pour votre aide

Cordialement,
Au pays des stats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 17h50   #4
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 012
Points : 1 717
Points : 1 717
tu peux poster ton code?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/12/2011, 19h38   #5
Invité régulier
 
Inscription : janvier 2011
Messages : 46
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 46
Points : 7
Points : 7
Bonjour,

voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PROC SQL;
 
CREATE TABLE EGTASK.Query1_for_BASEF AS SELECT DISTINCT BASEF.NUM,
 
(N(BASEF.NORD)) AS N_OF_NORD
 
FROM BASES.BASEG AS BASEG
 
INNER JOIN BASES.BASEF AS BASEF ON (BASEG.NORD = BASEF.NORD)
 
WHERE BASEF.NUM = "63" 
 
GROUP BY BASEF.NUM;
 
QUIT;
Merci pour votre aide

Cordialement,
Au pays des stats est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 14h37   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 012
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 012
Points : 1 717
Points : 1 717
il faut vérifier dans les deux tables si les conditions de jointure et le where sont satisfaites.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 14h49   #7
Membre expérimenté
 
Inscription : avril 2009
Messages : 538
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 538
Points : 541
Points : 541
Citation:
il me manque 321 lignes
es tu sur que tu perds pas de lignes suite à ton distinct? ou a cause de ta clause where??

j'ai du mal a voir l'interet du group by dans un select distinct?

Il faut revoir la requete.

X
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/12/2011, 10h22   #8
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 150
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 150
Points : 1 772
Points : 1 772
+1 Xav, il y a 36000 facons de creer un dataset en creant une jointure.

Es tu bien sure de savoir comment tu veux aggreger les donnees?
Manoutz 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 04h59.


 
 
 
 
Partenaires

Hébergement Web