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 :

probleme requete sql


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut probleme requete sql
    bonjour voila j'essaie d'effectuer cette requete sur une page ASP

    Select id,titre,auteur,type,disponibilite from Document Where Titre LIKE '%théâtre%' and (type='Livre'or type = 'Memoire' ) group by titre,auteur,type,id,disponibilite ORDER BY id;
    certains documents sont en double dans ma base de donnée, donc quand j'afffiche la liste des documents evidement il affiche les documents plusieurs fois si il y en a plusieurs. j'ai voulu eviter cela avec GROUP BY mais apparament ca ne marche pas... quelqu'un pourrait me dire qu'elle erreur il y a dans ma requete?
    apparament je ne peux pas mettre plus d'un element a la fois dans le GRoup by , mais si je met pas tout les element du select dans le group by il me fait une erreur. donc je ne vois aps comment faire

  2. #2
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    si ton probleme = doublons pourquoi ne mets tu pas un distinct?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    je ne connaissais pas distinct mais la c pareil si je met plus d'un champ ca ne marche pas...

    il y a moyen en 1 seule requete de selectionner plusieurs champs et d'eviter les doublons?

    ca c la requete dans laquelle je voudrais eviter les doublons
    Select id,titre,auteur,type,disponibilite from Document Where Titre LIKE '%théâtre%' and (type='Livre'or type = 'Memoire' ) ORDER BY id;

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Si tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT distinct id, titre, auteur, type, disponibilite
    FROM document
    WHERE ....
    toutes les lignes en double ne s'afficheront qu'une fois... c'est pas ce que tu veux?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Je ne comprend pas tu fais un select sur ID mais ID n'est pas ta clé primaire?

    Car si c'est ta clé primaire, c'est un élément unique. Donc tes lignes s'afficheront plusieurs fois tant que ID est dans ton SELECT..

  6. #6
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Peux tu nous donner un exemple de "doublons" qui est ramené
    histoire de bien appréhender le probleme
    Signé : Capitaine Jean-Luc Picard

  7. #7
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    effectivement si id est la cléf primaire

    Peut etre ce ci !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select min(id),titre,auteur,type,max(disponibilite) from Document Where Titre LIKE '%théâtre%' and (type='Livre'or type = 'Memoire' )
    group by titre,auteur,type;
    Signé : Capitaine Jean-Luc Picard

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    je suppose qu'il a mis ID en clé primaire... il a pas répondu à la question.. ;-)

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    effectivement ma clef primaire est bien le champ ID

    maintenant j'ai essayer ca

    Select min(id),titre,auteur,type,max(disponibilite) from Document Where Titre LIKE '%théâtre%' and (type='Livre'or type = 'Memoire' ) group by titre,auteur,type ORDER BY id;
    ca me donne une erreur comme ca :

    You tried to execute a query that does not include the specified expression 'id' as part of an aggregate function

    le probleme zazou c que je veux garder ID dans mon select pour aller selectionner d'autre information qui se trouve dans d'autre table et que je ne peux avoir qu'avec l'id du document..

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    apparament la requete que j'ai mis au dessus marche si je fais ORDER by Auteur a la place de ID

    mais avec cette requete je n'arrive plus a recuperer la valeur de ID dans mon recordset comment je peux recuperer cette valeur?

  11. #11
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    order by min(id)
    Signé : Capitaine Jean-Luc Picard

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    oki merci

    mon prob cetait surtout que je n'arrivais pas a recuperer ni id ni min(id) dans mon record set

    jai fais select min(id) as iddoc et jai recuperer la variable iddoc :p donc ca marche

  13. #13
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    Un ptit tag [resolu] 8) 8)
    Signé : Capitaine Jean-Luc Picard

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

Discussions similaires

  1. [SQL] Probleme requete SQL HELP
    Par sephirothmana dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 16/06/2006, 15h50
  2. [MySQL] Probleme requete sql et code html
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 16/03/2006, 17h38
  3. [Access] Probleme requete SQL
    Par kissmytoe dans le forum Langage SQL
    Réponses: 11
    Dernier message: 24/02/2006, 15h25
  4. probleme requete SQL
    Par grochenel dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/12/2005, 09h26
  5. [MySQL] probleme requete sql et php
    Par digger dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/10/2005, 14h15

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