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 :

Tri dans une requete SQL [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut Tri dans une requete SQL
    Bonjour,

    j'ai un petit problème avec une base que j'ai récupérée et que je modifie : Je voudrais trier la requete ci-dessous par le champ HISTO_DATE mais je n'arrive pas à placer correctement mon "ORDER BY", quelqu'un pourrait m'aider ?

    Et si en plus je pouvais faire faire un "sous-tri" avec le champ HISTO_HEURE" cela serait le summun !

    Merci
    str_Req = "SELECT HISTORIQUE.ID_MATERIEL, LIB_SOUS_FONCTION, INDICE_DEF, ACTION, DESIGNATION, HISTO_DATE, HISTO_HEURE, DATE_RETOUR,"
    str_Req = str_Req & "NOM_INGENIEUR & ' ' & PRENOM_INGENIEUR as INGENIEUR, LIB_ETAT, LIB_LOCALISATION, MOTIF, COMMENTAIRE, NUM_PIECE, UTILISATEUR_BDD "
    str_Req = str_Req & "FROM ((SOUS_FONCTION RIGHT JOIN (MATERIEL RIGHT JOIN (LOCALISATION RIGHT JOIN HISTORIQUE ON "
    str_Req = str_Req & "LOCALISATION.ID_LOCALISATION = HISTORIQUE.ID_LOCALISATION) ON MATERIEL.ID_MATERIEL = "
    str_Req = str_Req & "HISTORIQUE.ID_MATERIEL) ON SOUS_FONCTION.ID_SOUS_FONCTION = MATERIEL.ID_SOUS_FONCTION) LEFT "
    str_Req = str_Req & "JOIN ETAT ON HISTORIQUE.ID_ETAT = ETAT.ID_ETAT) LEFT JOIN INGENIEUR ON HISTORIQUE.ID_INGENIEUR "
    str_Req = str_Req & "= INGENIEUR.ID_INGENIEUR WHERE HISTORIQUE.ID_MATERIEL = " & IIf(Cb_Materiel.Text = "", 1, Cb_Materiel.Text) & ";"

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    A force de bidouiller à droite et à gauche j'ai trouvé comment faire : il faillait mettre le "ORDER BY HISTO_DATE" à la fin mais en enlevant le point virgule. Ne me demandais pas pourquoi mais cela marche !


    Par contre si quelqu'un connait le moyen de faire un double tri sur un deuxième champ (HISTO_HEURE) je suis preneur



    str_Req = "SELECT HISTORIQUE.ID_MATERIEL, LIB_SOUS_FONCTION, INDICE_DEF, ACTION, DESIGNATION, HISTO_DATE, HISTO_HEURE, DATE_RETOUR,"
    str_Req = str_Req & "NOM_INGENIEUR & ' ' & PRENOM_INGENIEUR as INGENIEUR, LIB_ETAT, LIB_LOCALISATION, MOTIF, COMMENTAIRE, NUM_PIECE, UTILISATEUR_BDD "
    str_Req = str_Req & "FROM ((SOUS_FONCTION RIGHT JOIN (MATERIEL RIGHT JOIN (LOCALISATION RIGHT JOIN HISTORIQUE ON "
    str_Req = str_Req & "LOCALISATION.ID_LOCALISATION = HISTORIQUE.ID_LOCALISATION) ON MATERIEL.ID_MATERIEL = "
    str_Req = str_Req & "HISTORIQUE.ID_MATERIEL) ON SOUS_FONCTION.ID_SOUS_FONCTION = MATERIEL.ID_SOUS_FONCTION) LEFT "
    str_Req = str_Req & "JOIN ETAT ON HISTORIQUE.ID_ETAT = ETAT.ID_ETAT) LEFT JOIN INGENIEUR ON HISTORIQUE.ID_INGENIEUR "
    str_Req = str_Req & "= INGENIEUR.ID_INGENIEUR WHERE HISTORIQUE.ID_MATERIEL = " & IIf(Cb_Materiel.Text = "", 1, Cb_Materiel.Text) & " ORDER BY HISTO_DATE"

  3. #3
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Taiby,

    Je te suggère de créer tes requêtes via l'assistant qui, lui, génère du SQL avec la bonne syntaxe (puisque Access se le génère pour lui-même). En passant du mode graphique au mode SQL, tu peux récupérer le code par un simple copier/coller. Tu peux, également faire le test sur une requête bidon, simplement pour repérer l'emplacement des clauses.

    Sinon,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .../... & " ORDER BY HISTO_DATE, xxxxx, yyyyy"
    L'idée de l'assistant est à utiliser : cela te permettra de ne pas attendre de réponse d'un tiers.

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 206
    Points : 83
    Points
    83
    Par défaut
    Merci Richard, je viens de découvrir grâce à toi ce mode SQL depuis le mode graphique. Je ne connaissais pas (je suis autodidacte non par choix mais par la force des choses, d'où mes lacunes) et je dois dire que c'est super pratique !!

    Merci pour ton coup de main

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

Discussions similaires

  1. utilisation du contenu d'un champ edit dans une requete sql
    Par amri2006 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/01/2006, 16h05
  2. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 21h56
  3. pb de guillemet dans une requete SQL
    Par linouline dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/12/2005, 11h38
  4. [JDBC]Caractères spéciaux dans une requete SQL
    Par frizby dans le forum JDBC
    Réponses: 2
    Dernier message: 28/11/2005, 18h01
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

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