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

Requêtes et SQL. Discussion :

[Requête] Colonne invalide avec JOIN et Group By


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut [Requête] Colonne invalide avec JOIN et Group By
    J'utilise Microsoft Access 2003.
    Bon voilà, j'ai une requête possèdant un LEFT JOIN et un Group By.
    Lorsque je fais le Left Join, la colonne Travail affiche des signes bizarre. Certains sont des signes chinois. (J'ai besoin du LEFT JOIN)
    Si je fais un RIGHT ou un INNER Join, c'est la colonne Description, qui affiches ses champs et la colonne travail redevient normal. Dans les tables où cette requête pointe, les données des deux colonnes sont correct.
    Mais j'ai découvert que lorsque je compacte ma base de donnée, les champs de la requête redeviennent normal.
    Je me suis dit que c'était peut-être les JOINS qui ne sont pas compatibles avec les Group By. Mais, si après un compactage cette requête redevient correct. Ce ne dois pas être un problème de compatibilite.
    Mais la question est de savoir pour combien de temps est-ce que les données de la requête seront bonnes. J'aimerais pouvoir prévenir ses erreurs. Ou comprendre pourquoi est-ce que la colonne Travail est invalide avec un LEFT JOIN.

    Voici ma commande SQL même si je ne crois pas que c'est ça le problème. (C'est pourquoi ce message est dans Access plutôt que dans SQL)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT BonTravail.numSequence, Left([numEquipement],4) AS equipement, BonTravail.descDemande, TravailEffectue.travail, BonTravail.nomAssocie1, BonTravail.dateEffectue, BonTravail.type
    FROM BonTravail LEFT JOIN TravailEffectue ON BonTravail.numSequence = TravailEffectue.numSequentiel
    GROUP BY BonTravail.numSequence, Left([numEquipement],4), BonTravail.descDemande, TravailEffectue.travail, BonTravail.nomAssocie1, BonTravail.dateEffectue, BonTravail.type
    HAVING (((BonTravail.type)="reparation"))
    ORDER BY BonTravail.numSequence;

    Merci bien de votre aide.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2003
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 63
    Points : 67
    Points
    67
    Par défaut
    Pourquoi ne fais tu pas un
    "SELECT DISTINCTROW ... FROM ... LEFT JOIN ... WHERE"
    au lieu de
    " SELECT ... FROM ... LEFT JOIN ... GROUP BY ... HAVING" ?

    Comme il n'y a aucun champ calculé, le "GROUP BY" ne me parait pas justifié.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Le group by me permet d'enlever 4000 enregistrements qui sont présent dans la table, bref, les doublons. C'est pourquoi il est necessaire d'en avoir un.(du moins je crois)
    DISTINCTROW ne les enleve pas.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 12
    Points
    12
    Par défaut
    Apres une plus grande analyse, je crois que je peux vivre avec le DISTINCTROW. Du moins pour le moment ca ne pose pas de problème. Si quelqu'un sait pourquoi mes colonnes en Access sont invalides, les explications sont tout de même les bienvenues. Je mettrai ce problème résolu demain matin.

    -Merci de ton aide, j'avais oublié le DISTINCTROW

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin de retrouner des 0 aussi dans une requête SQL avec JOIN
    Par Jean-Marc68 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 05/11/2007, 14h45
  2. Requête SQL avec "Join"
    Par RKU01 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 01/03/2007, 12h42
  3. [debutant]colonne rejetée avec group by
    Par Lyna31 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 27/02/2007, 16h34
  4. Requête SQL - Pb avec la clause GROUP BY
    Par jeromesco dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/07/2006, 09h04
  5. requete avec left join et group by
    Par slc dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/09/2004, 18h03

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