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 15/09/2011, 15h26   #1
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 17
Points : 10
Points : 10
Par défaut Manipulation de bases de données avec first et where

J'ai ma table et le -1 signifie que l'auteur ou adresse n'est pas renseigné. Donc je souhaite avoir tous les articles qui ont deux auteur non renseigné et deux adresses non renseignés en même temps.

ID.............authors_ID ..............adress_id
1............... 4............................-1
1............... 5............................-1
1............... -1...........................A
1............... -1............................B
2............... 1............................-1
2............... 2............................-1
2............... 3............................-1
2...............-1............................D
2............... -1............................E
2................-1.............................F

en sorti je veux avoir:
ID.............authors_ID ..............adress_id
1............... 4............................-1
1............... 5............................-1
1............... -1...........................A
1............... -1............................B

J'ai fait un programme mais ça ne marche pas du tout
Merci d'avance
boudake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 17h54   #2
Membre éclairé
 
Homme
statisticien
Inscription : mai 2011
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : statisticien
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mai 2011
Messages : 212
Points : 319
Points : 319
Citation:
J'ai fait un programme mais ça ne marche pas du tout
Merci d'avance
Bonsoir

Montre ton code
jerome_pdv2 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/09/2011, 19h55   #3
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 17
Points : 10
Points : 10
J'ai utilisée first et un where!!!! mais ça donne rien de rine
boudake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 21h54   #4
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
Citation:
Envoyé par boudake Voir le message
J'ai utilisée first et un where!!!! mais ça donne rien de rine
Peut-être parce que FIRST est dans le vecteur de travail tandis que WHERE évalue ses conditions sur la table en amont. Il faudrait tester ton FIRST avec un IF et pas un WHERE... si c'est un test que tu fais (+1 Jérôme, si on avait une idée du code on pourrait sans doute proposer des solutions).
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h17   #5
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 17
Points : 10
Points : 10
Avec le first ça marche pas donc j'ai fait un programme sql mais il me sort pas exclusivement les cas que je souhaite
Code :
1
2
3
4
5
6
7
8
9
10
proc sql;
   CREATE TABLE essaie
(WHERE=(Nbre_cas = 4)) AS
      SELECT  iD, address_id, Authors_id,count(*) AS Nbre_cas
      FROM TABLE 
	   WHERE (address_id = -1 OR Authors_id = -1 
      GROUP BY articles_id 
     ORDER BY articles_id ;
 
quit;
boudake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h11   #6
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.
A partir de ce que tu proposes, je crois qu'il faut scinder en 3 :
1) compter le nombre de -1 sur AUTHORS_ID et mettre dans une table
2) compter le nombre de -1 sur ADDRESS_ID et mettre dans une table
3) fusionner les 2 tables et sommer les deux comptages : là tu ne veux que quand la somme = 4.
Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 14h03   #7
Candidat au titre de Membre du Club
 
Homme
Étudiant
Inscription : mai 2011
Messages : 17
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : mai 2011
Messages : 17
Points : 10
Points : 10
Le problème est que je veux deux de chacune des tables dont vous parlez pour avoir le nombre quatre!!!!
boudake est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 15h16   #8
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
Oui c'est vrai, j'avais zappé ce point.
Donc la condition à l'étape 3 serait NB1=2 AND NB2=2 et pas besoin de faire la somme.
olivier.decourt 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 00h37.


 
 
 
 
Partenaires

Hébergement Web