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 :

Problème de "case" sous sas data integration


Sujet :

SAS Base

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 98
    Points : 56
    Points
    56
    Par défaut Problème de "case" sous sas data integration
    Lors du chargement d'une table, je dois utiliser un cas pour remplir un champ.
    La formule est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CASE  WHEN ID_SYS_3  ^= . THEN ID_SYS_3  ELSE ID_SYS_1  END
    Ou ID_SYS_3 et ID_SYS_1 sont deux champ de ma table source.

    Lorsque je met cette formule et que j'execute le job, voici l'erreur affiché dans le journal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR: sqlplan internal error: Cannot find symbol ID_SYS_1, var=19, tag=0001. This message can be caused by attempting to make 
           correlated references between two different items on a single FROM clause.
    Et ce que je trouve bisard, c'est que dans l'expression, si je remplace le ID_SYS_1 par une valeur 10 par exemple, ca fonctionne.
    Si quelqu'un peut m'aider, car la je ne comprends vraiment pas ou est le problème!!!
    Merci.

  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 : 47
    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
    D'après le message d'erreur, le champ ID_SYS_1 n'existe pas. Es-tu sûr de son nom, et de sa déclaration dans la structure de la table ?
    Alternative à ton CASE, pour ce cas particulier (si la variable est manquante alors ceci, sinon cela) on peut utiliser la fonction SQL COALESCE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COALESCE(ID_SYS_3, ID_SYS_1)
    Olivier

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 98
    Points : 56
    Points
    56
    Par défaut
    La variable s'apelle bien comme ca.
    Mais j'ai pris un chemin détourné, j'ai utilisé le case au niveau des jointures sql.
    Et la ca marche, sas m'a répondu à ce problème en disant qu'il fallait faire des mises à jour sur le serveur.

Discussions similaires

  1. importation sous SAS data integration
    Par maverik40 dans le forum Outils BI
    Réponses: 0
    Dernier message: 02/04/2009, 15h48
  2. Réponses: 9
    Dernier message: 07/08/2008, 17h08
  3. Réponses: 1
    Dernier message: 20/03/2008, 16h00

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