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 :

Clause where : croisement de 3 tables


Sujet :

SAS Base

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Points : 80
    Points
    80
    Par défaut Clause where : croisement de 3 tables
    bonjour,
    afin de limiter les extraction car les tables sont enormes ,je voudrai faire une selection de dates (mois_an) sur les alias b,c,d avec champ=INSIDE_HISTRQ_DT

    dans SAS ,j'ai un format date9. pour mes champs dates
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    proc sql;
     
    create table resultat_toussaint as  
    select VAR3,CA_HT_AM,EFFECTIF_NU,SEGMENT_DOS_LN 
    FROM WORK.TOUSSAINT as a
    LEFT JOIN LIBDTORD.V_DTO_H_CA_M as b
    ON a.VAR3=b.SIRET_ID
    LEFT JOIN LIBDTORD.V_DTO_H_TIERS_M  as c 
    ON a.VAR3=c.SIRET_ID 
    LEFT JOIN LIBDTORD.V_DTO_H_SEGMENT_DOS_M as d
    ON a.VAR3=d.SIRET_ID
     
    where month(b.INSIDE_HISTRQ_DT)=1 and year(b.INSIDE_HISTRQ_DT)=2013 and month(c.INSIDE_HISTRQ_DT) = 1 and month(c.INSIDE_HISTRQ_DT) = 2013 and month(d.INSIDE_HISTRQ_DT) = 1 and month(d.INSIDE_HISTRQ_DT) = 2013;
    quit;

  2. #2
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    c'est quoi le problème?
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Points : 80
    Points
    80
    Par défaut
    ok ,j'ai touvé une partie de mon erreur,j'ai mis plusieurs fois month au lieu de year.....mais malgré ce petit détail la machine me dit:

    no more spool space in sas

    alors que dans ma table source que j'essaie d'enrichir(toussaint)j'ai a peine 66000 lignes

  4. #4
    Membre émérite

    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mars 2005
    Messages
    1 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 364
    Points : 2 329
    Points
    2 329
    Par défaut
    essaye de faire la jointure entre deux tables.
    tu es sur de tes clés de jointure?
    Consultez les FAQs et les anciens postes avant de poser vos questions. Merci

  5. #5
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 87
    Points : 80
    Points
    80
    Par défaut
    tu as surement raison:
    la table de gauche est un import d'excel,d'ailleurs le champ var3 s'appelait siret dans excel....
    je verifie le format importé dans SAS et je corrige,car je crois que dans mes autres tables sas,j'ai du texte...
    ca existe des format de conversion txt->num ou num->txt ?comme cnum()...?
    je pourrait le faire a chaque fois dans mon sql(au cas ou...)

  6. #6
    Membre actif
    Inscrit en
    Juillet 2010
    Messages
    199
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 199
    Points : 214
    Points
    214
    Par défaut
    salut,

    il existe la fonction input qui te permet de convertir une variable caractère en numérique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    y = input(variable,8.);
    et de numérique vers caractère c'est la fonction put :


Discussions similaires

  1. Count avec clause where multi table
    Par james_kirk dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/01/2008, 17h35
  2. Réponses: 0
    Dernier message: 16/11/2007, 09h05
  3. Réponses: 4
    Dernier message: 10/05/2006, 18h40
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

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