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

Designer Discussion :

Auto-jointure externe sur SQL server


Sujet :

Designer

  1. #1
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut Auto-jointure externe sur SQL server
    Hello !

    Sur le Designer utilisant une DB Oracle, on peut créer une condition du genre : maTable.monChamp(+) = "valeur"

    Comment puis-je faire l'équivalent avec une DB MS SQL Server ? Si c'est possible...

    Thanks...

  2. #2
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2011
    Messages : 140
    Points : 181
    Points
    181
    Par défaut
    Bonjour,

    Oui c'est tout à fait possible, il faut pour cela modifier un paramètre de l'univers
    ANSI92=YES

    il me semble que cela devrait suffire (en tout cas ça à fonctionner pour moi)

    En fait cela va ré-écrire les requêtes SQL avec du left outer join ou du right outer join.

    Si ça ne marche pas, quelle est la version de sql serveur?

    bon courage

  3. #3
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    C'est avec beaucoup d'espoir que j'ai tenté ta solution, mais malheureusement il n'y a aucun changement... il ne reconnait toujours pas le (+)...

    Si je te dis que la version de SQL Server c'est : 10.50.1790...
    Ca te parle ???

    Apparemment c'est la "2008 R2 + Q2494086"... (source Google)

  4. #4
    Rédacteur/Modérateur
    Avatar de NorocBzh
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2008
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 834
    Points : 1 265
    Points
    1 265
    Par défaut
    Citation Envoyé par djam21 Voir le message
    C'est avec beaucoup d'espoir que j'ai tenté ta solution, mais malheureusement il n'y a aucun changement... il ne reconnait toujours pas le (+)...
    Salut,

    Le fait de passer en ANSI92=Yes permet de ne plus afficher ce "+" justement. Si tu le met manuellement, il ne va pas aimer.
    Par contre, si tu fais ta jointure normale, et que tu coches "Jointure externe", ça devrait être bon je pense.

    A propos du "+" pour les jointures externes, il est déconseillé de l'utilisé, il n'est plus au normes SQL à ce qu'on m'a dit. Il faut utiliser les LEFT/ RIGHT OUTER JOIN...

  5. #5
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    Sauf que ce n'est pas une jointure que je souhaite faire... mais une condition...

    Condition : Where = MaTable.MonChamp(+) = 'valeur'

    Ceci permet de filtre sur la valeur + les lignes qui n'existe pas dans la table MaTable...

    Avec une DB Oracle, en cochant "jointure externe", il rajoute ce "+"... Donc çà doit être encore permis avec Oracle...

  6. #6
    Membre habitué
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Octobre 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2011
    Messages : 140
    Points : 181
    Points
    181
    Par défaut
    oui il ne faut pas rajouter ce (+) qui n'est plus un paramètre reconnu.
    l'autre solution si tu veux absolument utiliser ce paramètre et de changer une variable sur ton sql server pour le passer en interprétation sql server 2000 mais je pense que tu vas y perdre au change...

    Tu as essayé d'enlever le (+) mais en laissant MaTable.MonChamp = 'valeur' ?

    Je vais peut être dire une ânerie je ne connais pas ton modèle mais pourquoi tu ne fais pas juste un filtre ? je ne vois pas trop la jointure là... pour moi il s'agit juste d'une condition de filtrage

  7. #7
    Membre expérimenté Avatar de djam21
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2006
    Messages
    843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 843
    Points : 1 307
    Points
    1 307
    Par défaut
    C'est une condition == filtre... Ce n'est pas une jointure...

    En gros çà me permet de récupérer uniquement les lignes correspondant à ma valeur plus les lignes sans correspondance dans la table...

    Celles qui ont une valeur correspondante dans la table mais pas la valeur souhaitée sont rejetées..

    Dans tous les cas vive Oracle...

Discussions similaires

  1. Requete SQL jointure externe sur plusieurs tables
    Par mattmax dans le forum Développement
    Réponses: 4
    Dernier message: 28/12/2010, 10h07
  2. Problème champ auto-incrément sur SQL Server 2000
    Par samirmember dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2010, 13h17
  3. Auto jointure (externe) sur clés etrangères
    Par mauvais_karma dans le forum Langage SQL
    Réponses: 13
    Dernier message: 30/11/2006, 13h46
  4. [debutant]Auto incrementation sur sql-server 2000
    Par syl2095 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/11/2004, 18h00
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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