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

Langage SQL Discussion :

Problème de RIGHT JOIN sous Access


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Problème de RIGHT JOIN sous Access
    Bonjour,

    J'ai 1 table LigneCdeFournisseur avec notamment une date de commande (de type DateTime) et 1 table contenant toutes les années de 1999 à 2030 (table contenant un seul champ de type long).
    Je n'arrive pas a afficher TOUTES les années avec la somme des quantités commandées (ou non, dans ce cas la quantité et la ref doivent être à NULL)

    Mon script :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT YEAR(DateDocument),FIRST(`CodeArticle`),SUM(Quantite)
    FROM LigneCdeFournisseur LCF
    RIGHT JOIN TBL_Annees ON TBL_Annees.Annee = YEAR(LCF.DateDocument)
    WHERE CodeArticle like "SA-A3%"
    GROUP BY YEAR(DateDocument)

    Seules les lignes avec un comptage <>0 s'affichent.

    Une idée, un conseil pour aider un débutant ??

    Merci d'avance et bonne soirée

    Ricquet

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Comme tu as mis un critère sur la table LigneCdeFournisseur dans la clause WHERE, les lignes de résultat sans ligne de commande sont ignorées.
    Tu peux faire ainsi:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT YEAR(DateDocument),FIRST(`CodeArticle`),SUM(Quantite)
    FROM TBL_Annees 
    LEFT OUTER JOIN LigneCdeFournisseur LCF ON TBL_Annees.Annee = YEAR(LCF.DateDocument) and CodeArticle like "SA-A3%"
    GROUP BY YEAR(DateDocument)
    Ainsi tu as toutes les années, et les lignes de commande s'il y en a.

    Tatayo.

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci Tatayo,

    Ca ne fonctionne malheureusement pas (erreur expression de jointure non supportée).
    Si je retire le AND..., là ca fonctionne(j'ai bien toutes les années) mais evidemment ca ne donne pas les résultats escomptés.

    Encore merci quand même, je laisse le sujet ouvert...

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    J'aurai dû me relire…

    Il faut préfixer la colonne avec le nom de la table dans la jointure:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT YEAR(DateDocument),FIRST(`CodeArticle`),SUM(Quantite)
    FROM TBL_Annees 
    LEFT OUTER JOIN LigneCdeFournisseur LCF ON TBL_Annees.Annee = YEAR(LCF.DateDocument) and LCF.CodeArticle like "SA-A3%"
    GROUP BY YEAR(DateDocument)

    Tatayo.

  5. #5
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Un grand merci pour ton temps.
    Malheureusement ca ne fonctionne toujours pas...J'ai aussi essayé avec des parenthèses, pas mieux. Même message d'erreur (jointure non supportée).

    Ricquet

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour

    Dans la requete, remplacez les guillemets doubles par des guillemets simples.

    like "SA-A3%" --> like 'SA-A3%'

  7. #7
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Merci à Aieeeuuuuu de participer à mon souci, mais ca ne fonctionne toujours pas (j'ai aussi essayé avec la guillemet simple inversée `, mais pas mieux).

  8. #8
    Candidat au Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Si vous avez un peu de temps, j'ai préparé une base MDB avec mes données de test.
    Merci d'avance à tous.

    Ricquet
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. L'équivalent de FULL OUTER JOIN sous ACCESS
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/03/2013, 12h36
  2. Problème de mise à jour sous Access
    Par ash_rmy dans le forum Access
    Réponses: 3
    Dernier message: 24/07/2006, 13h51
  3. Problème curseur de saisie sous Access
    Par anonymenet dans le forum Access
    Réponses: 2
    Dernier message: 27/06/2006, 10h55
  4. Problème de table liées sous Access 2003
    Par FuRioX dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 12h19
  5. problème de selection automatique sous access...
    Par Moustique67 dans le forum Access
    Réponses: 4
    Dernier message: 29/11/2005, 00h33

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