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

SAS Base Discussion :

Automatiser un dédoublonnage


Sujet :

SAS Base

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut Automatiser un dédoublonnage
    Bonsoir,

    Sur Excel j'avais mis en place une système de dédoublonnage sur les codes siret . Si la ligne du dessus a le même siret alors j'incrémente un compteur qui me donne le nombre maximum de personne rattaché à ce code par comptage.

    Je souhaite faire la même chose sur SAS avec une proc SQL .

    J'ai un ID , je tri l'ID par ordre croissant . Je veux que la ou les requête(s) SQL me dis(ent) sur la ligne ou je suis , je compare le code sur la ligne du dessus. Si les codes sont identiques alors je reprend comptage en faisant +1.

    Au final je placerai mon compteur dans une nouvelle colonne.

    Exemple concret :

    siret1 personneA 1
    siret1 personneB 2
    siret1 personneC 3
    siret2 personneD 1
    siret3 personneE 1
    siret4 personneF 1
    siret4 personneG 2
    siret5 personneH 1
    siret6 personneI 1
    siret6 personneJ 2
    siret6 personneK 3
    siret6 personneL 4

    Dans une matrice SQL peut on calculer comme sur un tableur excel avec les lignes et colonnes ?

    Voici un bricolage que j'ai testé :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT ROW_NUMBER() OVER (ORDER BY siret) AS ligne , siret , code_personne , nom , prenom , numero_personne # numero_personne est une colonne supplemantaire créé pour le comptage des personnes sur un même code
    FROM matable
    IF siret.ROW_NUMBER() = siret.ROW_NUMBER()-1 
    [numero_personne.ROW_NUMBER()]=[numero_personne.ROW_NUMBER()]+1
    ELSE
    [numero_personne.ROW_NUMBER()]=1 ;

    Merci de m'aiguiller.

  2. #2
    Membre éprouvé
    Avatar de Stackware
    Homme Profil pro
    ArchiDuc de la Sasserie
    Inscrit en
    Juillet 2013
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ArchiDuc de la Sasserie
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2013
    Messages : 439
    Points : 1 017
    Points
    1 017
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Si le but est d'avoir une liste des siret avec un compteur en face, il suffit de coder :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select siret, count(*) as nb  from matable group by siret;

    Pour filtrer ceux qui sont au-dessus de 1 :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select siret, count(*) as nb  from matable group by siret having nb > 1;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/06/2004, 16h12
  2. Automatisation et/ou installer pour une bd sql
    Par ZePitou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 22/02/2004, 12h54
  3. [MAPI][info] automatisation des taches de messagerie
    Par peppena dans le forum Windows
    Réponses: 6
    Dernier message: 22/01/2004, 16h06
  4. Automatiser la mise à jour de la bD SQL SERVER from Access
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/11/2003, 15h23
  5. Dédoublonnage pdt copie une table a une autre
    Par Krevette dans le forum Requêtes
    Réponses: 3
    Dernier message: 15/10/2003, 14h26

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