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 :

Requete SQL non compatible Access?


Sujet :

Requêtes et SQL.

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut Requete SQL non compatible Access?
    bonjour
    Je pense que la syntaxe sql de ma requete est bonne, mais access ne l'accepte pas . Est-moi ou lui qui est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT p.nom_p, m.libellemois
    FROM pays AS p, mois AS m, avis AS a
    WHERE p.code_p=a.code_p 
    And a.codemois=m.codemois
    GROUP BY p.nom_p, m.libellemois
    HAVING (a.tempmaxmoy) =  (Select  max(a1.tempmaxmoy), p1.Nom_p 
    From pays as  p1, avis as a1
    Where p1.code_p = a1.code_p
    GROUP BY p1.nom_p);
    Message d'erreur:
    La sous requete peut renvoyer n enregistrement : Utiliser Exist dans le from de la requete principale
    Merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 598
    Points
    24 598
    Par défaut
    Citation Envoyé par totoche
    bonjour
    Je pense que la syntaxe sql de ma requete est bonne, mais access ne l'accepte pas . Est-moi ou lui qui est
    D'après toi ?
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Le problème c'est ta sous requête.

    Nombre de collonne renvoyée ? incorrecte
    table source ? douteuses
    Clause Where ? incomprise
    Regroupement ? pas nécessaire.
    Amicalement

  4. #4
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Merci de votre aide
    ma sous requete prise de façon 'unitaire' fonctionne.
    Jointure bonne
    Regroupement obligatoire : agregat MAX
    application group by pour partitionner mes résultats.

    PS loufab avant ta réponse, je pensais que c'était access qui ne savait pas géré cette requete, maintenant je doute.
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par totoche
    Merci de votre aide
    ma sous requete prise de façon 'unitaire' fonctionne.
    Bien sur que toute seule elle marche.
    Mais quand tu fais

    ... HAVING (a.tempmaxmoy) = (Select max(a1.tempmaxmoy), p1.Nom_p
    From pays as p1, avis as a1 ...
    Tu compares icic une collonne a.tempmaxmoy a deux collonnes max(a1.tempmaxmoy), p1.Nom_p ce qui n'est pas possible !

    A la limite tu doit avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... HAVING (a.tempmaxmoy) =  (Select  max(a1.tempmaxmoy) From  ...
    Peux être aussi que tu as besoin de tes clauses et te regroupement j'en sais rien pour l'instant.
    Amicalement

  6. #6
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Ok , si je corrige
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GROUP BY p.nom_p, m.libellemois, a.tempmaxmoy
    HAVING(a.tempmaxmoy) =  (Select max(a1.tempmaxmoy)...
    Ma requete me renvoie le pays qui a la température max alors que je veux la température max de chaque pays...
    faut qu j'utilise une sous requete après le Select max...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HAVING(a.tempmaxmoy) =  (Select max(a1.tempmaxmoy)
    From Select (*)
    from pays p1, avis a1
    Where p1.code_p = a1.code_p
    group by p1.nom_p) ;
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 111
    Points
    111
    Par défaut
    et un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT p.nom_p, m.libellemois, max(a.tempmaxmoy)
    FROM pays AS p, mois AS m, avis AS a
    WHERE p.code_p=a.code_p 
    And a.codemois=m.codemois
    group by p.nom_p, m.libellemois;
    non ?

  8. #8
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Je ne dois pas faire afficher le max(a.tempmaxmoy)...
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 90
    Points : 111
    Points
    111
    Par défaut
    ahh ok. Alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT p.nom_p, m.libellemois
    FROM pays AS p, mois AS m, avis AS a
    WHERE p.code_p=a.code_p 
    And a.codemois=m.codemois
    and a.tempmaxmoy in (
    SELECT max(a.tempmaxmoy)
    FROM pays AS p2, mois AS m2, avis AS a2
    WHERE p.code_p=p2.code_p 
    and p2.code_p=a2.code_p 
    )

  10. #10
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    ok, je ne savais pas qu'avec l'opérateur in a l'interieur de la sous-reqûete on pouvait faire un condition de jointure comme avec l'opérateur exists
    J'ai juste corrigé le domaine de définition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    and a.tempmaxmoy in (
    SELECT max(a2.tempmaxmoy)
    Merci
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

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

Discussions similaires

  1. Requete Sql Non Valide
    Par Thesum dans le forum Langage SQL
    Réponses: 9
    Dernier message: 21/02/2008, 19h44
  2. Problème requete SQL SELECT avec access
    Par cactus666 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/12/2007, 12h46
  3. requete SQL update base access
    Par samtheh dans le forum VBA Access
    Réponses: 6
    Dernier message: 01/06/2007, 13h06
  4. Convertisseur de requete SQL-SERVER en ACCESS
    Par emazes dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/12/2005, 09h12
  5. [sybase] requete SQL non-ANSI
    Par geoffrey_k dans le forum Sybase
    Réponses: 6
    Dernier message: 12/08/2004, 09h45

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