1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE REQUETE LEFT OUTER JOIN

Discussion dans 'Résolution problème & conseils' créé par aminej76, Sept 16, 2018.

  1. aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Bonjour ! :)

    Soit les tables suivantes

    CLIENT(COD_CLI,RAIS_CLI,COD_REP)
    REPRESENTANT(COD_REP,NOM_PRENOM)
    FACTURE(NUM_FAC,DATE_FAC,COD_CLI,COD_REP,MT_TTC)

    Je voudrais écrire une requête permettant d'afficher la liste des clients qui n'ont pas de factures entre 01/09/2018 et 16/09/2018 dont le Code Représentant = "001"

    Merci d'avance.
     
    #1 aminej76, Sept 16, 2018
    Dernière édition par un modérateur: Sept 16, 2018
    Tags:
  2. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Bonjour,

    Quelque chose comme ça:

    Code (Text):
    SELECT DISTINCT
      CLIENT.IDCLIENT AS IDCLIENT,
      CLIENT.COD_CLI AS COD_CLI,
      CLIENT.RAIS_CLI AS RAIS_CLI,
      CLIENT.COD_REP AS COD_REP
    FROM
      CLIENT
    WHERE
      CLIENT.COD_REP = {sParamCOD_REP}
      AND  CLIENT.COD_CLI NOT IN
        (
          SELECT DISTINCT
            FACTURE.IDFACTURE AS IDFACTURE,
            FACTURE.NUM_FAC AS NUM_FAC,
            FACTURE.DATE_FAC AS DATE_FAC,
            FACTURE.COD_CLI AS COD_CLI,
            FACTURE.COD_REP AS COD_REP,
            FACTURE.MT_TTC AS MT_TTC
          FROM
            FACTURE
          WHERE
            FACTURE.DATE_FAC BETWEEN {sParamDATE_DEB} AND {sParamDATE_FIN}
        )

     
    Bon Dev
     
    aminej76 apprécie ceci.
  3. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    648
    J'aime reçus:
    227

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    je ne sais pas si tu as testé, mais le IN et NOT IN doivent être appliqué à un select avec une seule colonne
     
    Fouedusa, aminej76 et channibal aiment ça.
  4. channibal

    channibal Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 22, 2018
    Messages:
    210
    J'aime reçus:
    277
    Oui

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ,
    je ne sais pas si tu as testé, mais le IN et NOT IN doivent être appliqué à un select avec une seule colonne
    Cliquez pour agrandir...
    Effectivement Merci

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    ;)

    Code (Text):
    AND  CLIENT.COD_CLI NOT IN
        (
          SELECT DISTINCT
            FACTURE.COD_CLI AS COD_CLI,
          FROM
            FACTURE
          WHERE
            FACTURE.DATE_FAC BETWEEN {sParamDATE_DEB} AND {sParamDATE_FIN}
        )
     
    LAPIPE2018, Fouedusa et aminej76 aiment ça.
  • aminej76

    aminej76 Active Member
    MEMBRE WX

    Inscrit:
    Jan 23, 2018
    Messages:
    283
    J'aime reçus:
    102
    Merci pour vos retours.
    La 1 méthode
    Code (Text):

    SELECT
    CLIENT.COD_CLI AS COD_CLI,  
    CLIENT.RAIS_CLI AS RAIS_CLI,
    FROM CLIENT
    LEFT OUTER JOIN FACTURE
    ON CLIENT.COD_CLI=FACTURE.COD_CLI AND
    (
    FACTURE.DATE_FAC BETWEEN {Param1} AND {Param2}
    )
    WHERE FACTURE.COD_CLI IS NULL
    AND CLIENT.COD_REP= {Param3}
     
    La 2 méthode
    Code (Text):

    SELECT
    CLIENT.COD_CLI AS COD_CLI,  
    CLIENT.RAIS_CLI AS RAIS_CLI,
    FROM CLIENT
    WHERE
    CLIENT.COD_REP = {sParamCOD_REP}
    AND  CLIENT.COD_CLI NOT IN

    (
    SELECT DISTINCT
    FACTURE.COD_CLI AS COD_CLI
    FROM
    FACTURE
    WHERE
    FACTURE.DATE_FAC BETWEEN {sParamDATE_DEB} AND {sParamDATE_FIN}
    )
     
    La 2ème méthode est plus rapide que la 1
     
  • Partager cette page

    Chargement...