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 :

Comment trouver la dernière formation proposée par un organisme


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Comment trouver la dernière formation proposée par un organisme
    Bonjour,

    Je construit une base de donnée avec 2 tables:

    - Organisme
    - Formation

    La relation qui lie ces 2 table est que 1 organisme peut proposer plusieurs formation, une formation n'est effectué que par un organisme (relation 1-n).

    Outre tout les autres champs, la table formation contient un champs Fdate_modif, qui enregistre la date de la dernière mise à jour de la formation.

    Je voudrais faire une requête qui donne comme resultat la liste de tout les organisme qui n'ont pas mis a jour de formation depuis une date donnée.

    Pour cela je suis parti sur une piste de requêtes imbriquées:

    la requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ONom, MAX(Fdate_modif) FROM Organisme, Formation WHERE OID=Forganisme GROUP BY Forganisme;
    me donne la liste de tout les organismes ayant au moins 1 formation, et la date de la dernière formation qu'il a modifiée.

    Je voudrais maintenant que seul les organismes pour lesquels cette date est inférieur a une date donnée soit renvoyés.

    J'ai essayé avec une clause AND qui trie sur la date:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ONom, MAX(Fdate_modif) FROM Organisme, Formation WHERE OID=Forganisme AND Fdate_modif<2006-10-08 GROUP BY Forganisme;
    Mais la requête fait le trie sur le MAX après avoir fait la comparaison sur la date, et les Organismes qui ont une formation récente et une formation ancienne se retrouve selectionne alors que je ne veux que ceux qui n'ont que des formations anciennes

    Je précise que j'ai lu le tuto sur les requêtes imbriqués sur develloppez.com, que j'utilise une bdd mysql, et que malgré tout les efforts depuis une semaine, je n'arrive pas a trouver la bonne requête.

    J'espère que mon message n'est pas trop long et suffisament clair, merci de votre aide.

    yohann

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Essaies ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT	Organisme.onom, 
    	MAX(Formation.fdatemodif) 
    FROM	Organisme
    INNER JOIN Formation 
    ON	Organisme.oid = Formation.forganisme 
    GROUP BY ONom
    HAVING 	MAX(fdatemodif) < '10/08/06';

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    merci beaucoup,
    ça marche super bien faudrait quand même que je fasse quelques test car je ne comprend pas exactement ce que fait cette requête (ou plus exactement comment cette requête fait ce que je veux)

    en tout cas bien merci the leading edge!

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

Discussions similaires

  1. Comment trouver la météo au format xml
    Par artotal dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/07/2008, 14h46
  2. Comment trouver de vieux outils (MASM51 CL PROM86 XLINK86)
    Par CFred dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 11/01/2005, 17h54
  3. Réponses: 3
    Dernier message: 21/01/2004, 08h47
  4. Comment trouver le répertoire démarrage sous 98?
    Par PHILOSOPHE dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 18/11/2003, 20h10
  5. [CR] Comment trouver un champs dans un report ??
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 18/09/2003, 08h31

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