IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Débutez Discussion :

Nettoyage base : condition SQL


Sujet :

Débutez

  1. #1
    Futur Membre du Club
    Homme Profil pro
    stagiaire chargé de traitement
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : stagiaire chargé de traitement
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Nettoyage base : condition SQL
    Bonjour,

    je dois nettoyer une base de donnée de manière automatique. J'aimerai tester des variables puis effectué un nettoyage si besoin est.

    Par exemple la variable sexe est renseigné, je voudrais tester le nombre de modalité. S'il est de 2 c'est que seul masculin et féminin sont présents donc on n'effectue pas de nettoyage sur cette variable. En revanche s'il est de 1 ou 3 et plus il y a un problème donc je veux effectuer le nettoyage.
    Pour récupérer le nombre de modalité j'utilise soit une proc format soit une proc sql.
    Je peux donc voir le nombre de modalité pour la variable, mais je ne sais pas comment l'exploiter dans une boucle if, pour appliquer ou non un nettoyage.

    Je voulais savoir si vous aviez des conseils;

    En espérant avoir été clair,

    Amoole2o

  2. #2
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Bonjour.
    Pour avoir les nombres de modalités de toutes les variables d'une base, tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    PROC FREQ DATA=table NLEVELS ;
      TABLE  _ALL_ / NOPRINT ;
      ODS OUTPUT nLevels = work.nb_modalites ;
    RUN ;
    Tu auras le résultat en tableau dans la sortie mais aussi en table SAS dans la Work.
    Ça fait l'équivalent de toute une kyrielle de COUNT DISTINCT en SQL.

    On peut imaginer croiser ensuite avec le nombre de modalités prévues par un format, et sortir les anomalies quand les deux nombres ne coïncident pas.

    Pour automatiser les corrections derrière, il te faudra du macro-langage, c'est à dire pouvoir lancer un bout de code (le nettoyage de modalités non prévues) en fonction d'un paramètre (la variable nécessite un nettoyage oui/non). Un simple IF risque de ne pas suffire, sauf à se lancer dans des écritures comme CALL EXECUTE que je trouve personnellement compliquées (mais il y a des adeptes sur le forum).
    Bon courage.
    Olivier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    stagiaire chargé de traitement
    Inscrit en
    Avril 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : stagiaire chargé de traitement
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2019
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse, ça me donne un résultat très intéressant.
    Que me conseille tu à la place du if dans ce cas ?

    merci d'avance

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Probablement un %IF, donc du macro-langage.
    Bon courage.
    Olivier

Discussions similaires

  1. Nettoyage journalier d'une base MS Sql
    Par anisb dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/01/2010, 09h23
  2. jointure et rechche dans une base avec sql
    Par sabrina22 dans le forum Bases de données
    Réponses: 9
    Dernier message: 06/01/2006, 13h27
  3. [Sybase] Accèder à une base MS SQL Server
    Par skynet dans le forum Sybase
    Réponses: 7
    Dernier message: 02/09/2005, 15h13
  4. Mettre à jour une base sous SQL SERVER 2000
    Par FilipeVV dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/02/2005, 12h24
  5. [SGBD] Pour moyenne base avec SQL ?
    Par PyRoFlo dans le forum Bases de données
    Réponses: 10
    Dernier message: 13/03/2004, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo