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éveloppement SQL Server Discussion :

Problème sur requete outer join


Sujet :

Développement SQL Server

  1. #1
    Candidat au Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème sur requete outer join
    Bonjour,

    J'ai un problème sur une requête avec la jointure left outer join, je m'explique :

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  r.RG_Date,r.rg_no,e.DO_Piece
    FROM  dbo.F_CREGLEMENT R
    LEFT OUTER JOIN  dbo.F_REGLECH e
           ON (e.RG_No=RG_No) AND (e.RG_No<>RG_No)
    WHERE 
    ( r.RG_Compta=0 )
    AND
      (r.CT_NumPayeur=c.CLI_NUMPAYEUR)
    AND 
      r.RG_Date>'22/07/2011' 
      ;
    J'ai fait cette requête là pour qu'il m'affiche tous les règlements avec le numero de facture y compris ceux qui ne sont pas liés à une facture(e.do_piece).

    Il me renvoie donc bien tous les règlements mais dans ma colonne e.DO_piece, il y a inscrit 'NULL' sur toutes les lignes alors qu'il n'y a normalement que 3 numéros de règlement qui n'existe pas dans la table
    dbo.F_REGLECH e.

    C'est cela que je ne comprends pas, pourquoi me met-il 'NULL' ? On dirait qu'il ne fait pas le lien des RG_NO.

    Que puis-je faire pour qu'il me les affiche ?

    Merci d'avance pour votre aide,
    Cordialement,

  2. #2
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    faire le lien avec ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (e.RG_No=RG_No) AND (e.RG_No<>RG_No)
    me parrait délicat, puisque cela equivaut a un FALSE

    Faites simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    LEFT OUTER JOIN  dbo.F_REGLECH e
           ON (e.RG_No=RG_No)
    La jointure externe se chargera de vous rappatrier les lignes meme si elles ne sont pas liées

  3. #3
    Candidat au Club
    Femme Profil pro
    Technicien réseau
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Reponse à Yanika_Bzh
    Bonjour,
    Tout d'abord merci de ta réponse.
    Si je mets juste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LEFT OUTER JOIN  dbo.F_REGLECH e
           ON (e.RG_No=RG_No)
    Il me renvoie 33 000 lignes au lieu de 13 avec des n° de facture (e.do_piece) complètement incohérents, c'est à dire qu'il va me mettre plusieurs n° facture pour le même numéro de règlement.

    J'ai essayé en rajoutant un distinct, cela me diminue le nombre de ligne mais c'est tout.

    Je te mets aussi la 1ere requête que j'avais faite où il me manque juste les 3 N° de règlement inexistants dans la table "dbo.F_REGLECH e". Les n° factures sont par contre corrects :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  r.RG_Date,r.rg_no,e.DO_Piece
    FROM  dbo.F_CREGLEMENT R, dbo.F_REGLECH E
     
      where ( r.RG_Compta=0 )
     
      and
      (r.RG_no=e.RG_No)
     
      and 
     r.RG_Date>'22/07/2011'
     
     
      ;
    Merci encore pour ton aide,

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Pouvez vous poster la requete entiere qui vous ramene ces 33 000 lignes "incohérentes" ?

Discussions similaires

  1. [Hibernate]Problème de requete avec "join fetch"
    Par gauloiskiki dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 09h54
  2. Problème avec left outer join
    Par jgfa9 dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2005, 21h07
  3. problème sur requete insert
    Par shadowmoon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/06/2005, 11h46
  4. [ASA] Problème sur requete ASA
    Par shadeoner dans le forum SQL Anywhere
    Réponses: 6
    Dernier message: 06/04/2005, 14h35
  5. [ASA] Problème sur requete
    Par shadeoner dans le forum SQL Anywhere
    Réponses: 9
    Dernier message: 30/03/2005, 15h59

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