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

SQL Oracle Discussion :

Problème requete left join


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 78
    Points
    78
    Par défaut Problème requete left join
    Bonjour à tous,

    voici mon problème:
    je dois sortir une requete qui me donne le nombre de facture sur base d'un croisement d'info de la table client. J'ai fais ceci qui fonctionne très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select SIH.SIVTYP_0,ml6220.LANMES_0, ml406.LANMES_0, count(*) as result from RES.SINVOICE SIH
    left join RES.BPCUSTOMER BPC on SIH.BPR_0 = BPC.BPCNUM_0 
    left join RES.SINVOICEV SIV on SIH.NUM_0 = SIV.NUM_0
    left join RES.APLSTD ml6220 on (ml6220.LANCHP_0=6220 and ml6220.LAN_0='FRA' and ml6220.LANNUM_0= BPC.YCODIMP_0)
    left join RES.APLSTD ml406 on (ml406.LANCHP_0=406 and ml406.LAN_0='FRA' and ml406.LANNUM_0= BPC.INVPER_0)
    where SIH.accdat_0 between to_date('20170701','YYYYMMDD') and to_date('20170731','YYYYMMDD') and
    BPC.BCGCOD_0 in ('TRD','TRX','TRY') and
    SIV.SALFCY_0 in ('WES','CWS','CTS','GTS','GSS','WSS','GDS','CGS')
    group by SIH.SIVTYP_0,ml6220.LANMES_0, ml406.LANMES_0
    cela me donne les infos demandées mais on me demande maintenant que si un croisement possible à un nombre à 0 il doit quand même apparaitre dans le résultat. Je pensais que le left join ferais le boulot mais j'ai du louper quelque chose. Pourriez vous me donner un petit coup de main.

    Voici ce que je devrais avoir:

    impression périodicité nombre
    standard mois 10
    standard quinzaine 0
    standard jour 5

    merci du coup de main

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Remontez vos filtres suivant dans les conditions de jointures appropriées pour que la jointure externe soit effective :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    BPC.BCGCOD_0 in ('TRD','TRX','TRY') and
    SIV.SALFCY_0 in ('WES','CWS','CTS','GTS','GSS','WSS','GDS','CGS')
    Jointure externe et condition de restriction.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 66
    Points : 78
    Points
    78
    Par défaut
    merci de la réponse
    mais je n'ai toujours pas mes lignes à 0 est ce que cela vient du fait de mon where sur la date retenue dans la table facture ?

    Bonne journée

    Greg

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Il ne faut pas utiliser count(*) mais count(colonne) car count(*) compte les NULL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with t as (
    select NULL as c from dual
    )
    select count(*), count(c) from t
     
      COUNT(*)   COUNT(C)
    ---------- ----------
             1          0

Discussions similaires

  1. [Mysql 3.23] Avis sur une requete LEFT JOIN
    Par griese dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/02/2007, 09h36
  2. Problème avec LEFT JOIN
    Par Sorgue dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/01/2007, 18h37
  3. Réponses: 3
    Dernier message: 13/11/2006, 17h06
  4. problème ave LEFT JOIN dans MySql
    Par lm0210 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/05/2006, 19h46
  5. Requete Left join
    Par nicodour dans le forum Requêtes
    Réponses: 5
    Dernier message: 29/12/2005, 16h23

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