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 :

Un cas d'école.


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    254
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 254
    Par défaut Un cas d'école.
    Bonjour,

    Je suis un vrai débutant en SQL et je me pose une question concernant une query. C'est pas dans mon genre de venir poser des questions de ce genre ici mais là je sèche cruellement.

    Pour faire simple j'ai deux tables. Une table TASK qui contient une colone ID et une colone MANDAYS. Ma seconde table est SCHEDULE et, toujours pour faire simple, contient 3 colones : ID, NAME, MANDAYS.

    Dans la table TASK je crée des tâches et je leurs assignent un nombre de MANDAYS. Dans la table SCHEDULE j'assigne un nombre de ces MANDAYS à une personne. Plusieurs personnes peuvent donc être assignée à une même tâche la règle étant que le total des MANDAYS de ces personnes ne dépasse pas le nombre de MANDAYS total de ma tâche.

    Exemple : Je crée une tâche "Ecrire la query SQL" avec un total mandays estimés de 10 et j'assigne 4 mandays à Jean et 3 mandays à Pierre. 3 mandays sont toujours non assignés.

    Je cherche à écrire la query me permettant de récupéré une liste de toutes les tâches non complètement assignées. Autrement dit je cherche à afficher toutes les tâches sauf celles dont le nombre MANDAYS est plus petit ou égal au nombre de MANDAYS total des personnes assignées.

    J'ai bien quelques idée en sélectionnant toutes le tâches d'une table puis de l'autre en additionant les MANDAYS. Mais tout ca m'a l'air peut performant et 'ai comme le sentiment que mon problème est un cas d'école dont il doit exister une solution toute simple que je ne connais pas. Ai je raison ?

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2008
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 861
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select t.id, t.mandays, sum(s.mandays) as nb_affectes
    from task t
    left join schedule s on t.id = s.id
    group by t.id, t.mandays
    having t.mandays > sum(s.mandays)

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

Discussions similaires

  1. IO entrée sortie cas d'école [débutant]
    Par crazykangourou dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 15h24
  2. cas d'école - exclusion mutuelle
    Par zais_ethael dans le forum C
    Réponses: 5
    Dernier message: 01/12/2006, 09h14
  3. Sous requête et performance. Un cas d'école ?
    Par asaintleger dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/11/2006, 12h04
  4. [Tableaux] Retout chariot: cas d'école.
    Par cybertj dans le forum Langage
    Réponses: 14
    Dernier message: 11/10/2006, 01h06

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