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 :

Sélection de projets validés dans un ensemble de projets


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de ecarbill
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 146
    Points
    146
    Par défaut Sélection de projets validés dans un ensemble de projets
    Bonjour à tous. Je résume mon problème :
    J’ai un ensemble de projets à gérer. Chaque projet se subdivise en taches. Les taches sont proposées par le responsable de projet mais elles doivent être validées par un gestionnaire.
    Mes tables se présentent comme suit :

    tblprojet (Id_projet, #id_responsables, site_projet, libelle_projet)
    tbltache (Id_tache,#Id_projet,cout_tache,description_tache,...)
    tbltache_validee(id_validation,#Id_tache,date_validation,date_debut_tache)

    Je souhaite écrire une requête qui renvoie l'ensemble des projets, avec le coût global du projet, et le coût global des taches validées pour ce projet (0 si aucune tache n'est validée pour un projet).

    Pour le coût global du projet, la requete est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT p.libelle_projet as projet,sum(t.cout_tache) as cout_projet
    FROM tblprojet p INNER JOIN tbltache ON p.Id_projet=t.Id_projet
    GROUP BY p.libelle_projet

    Pour le coût global des taches validées, je ne sais pas trop que faire étant donné que l'identifiant des taches validée est dans la table tbltache_validee alors que les coûts correspondants sont dans tbltache.
    Merci de me donner un coup de main
    Une somme de savoirs en chaque matière, si minime soit-elle, rend n'importe quel benêt, dans un pays de benêts, docte.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,

    il f
    Le Porc est un loup pour le Porc.

  3. #3
    Membre habitué Avatar de ecarbill
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 146
    Points
    146
    Par défaut
    Bonjour à asmduty . Je sais pas ce qui s'est passé mais ta reponse est presque vide. Su tu peux reprendre le post.

    Merci
    Une somme de savoirs en chaque matière, si minime soit-elle, rend n'importe quel benêt, dans un pays de benêts, docte.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Pourquoi avoir créé un identifiant spécifique à la table "tbltache_validee" ?

    Il me semble que tu devrais avoir cette association avec une identification relative :
    tache -0,1----avoir----(1,1)- validation

    Ce qui donnerait cette structure plus simple pour la table :
    tbltache_validee (#Id_tache, date_validation, date_debut_tache)

    Pour ta question, essaie cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT p.libelle_projet AS projet,
    	SUM(t.cout_tache) AS cout_projet,
    	SUM(CASE 
    			WHEN tv.id_tache IS NOT NULL THEN t.cout_tache
    		END
    	) AS cout_taches_validees
    FROM tblprojet p 
    INNER JOIN tbltache t ON p.Id_projet = t.Id_projet
    	LEFT OUTER JOIN tbltache_validee tv ON tv.Id_tache = t.Id_tache
    GROUP BY p.libelle_projet
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre habitué Avatar de ecarbill
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Juin 2004
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Cyberdocumentaliste
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2004
    Messages : 225
    Points : 146
    Points
    146
    Par défaut
    Merci a CinePhil pour ton coup de main. J'avais oublié de préciser que c'était sous access. Donc j'ai légèrement modifier le code que tu m'a proposé étant donné qu'ACCESS ne supporte pas le CASE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT p.libelle_projet AS projet,
    	SUM(t.cout_tache) AS cout_projet,
    	SUM(
                  IIF(tv.id_tache IS NOT NULL ,t.cout_tache,0)
    	) AS cout_taches_validees
    FROM (tblprojet p 
    INNER JOIN tbltache t ON p.Id_projet = t.Id_projet)
    	LEFT OUTER JOIN tbltache_validee tv ON tv.Id_tache = t.Id_tache
    GROUP BY p.libelle_projet
    Il faut aussi noter la parenthèse après la close FROM car sans cette parenthèse ça ne marche pas non plus.
    Une somme de savoirs en chaque matière, si minime soit-elle, rend n'importe quel benêt, dans un pays de benêts, docte.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faut aussi noter la parenthèse après la close FROM car sans cette parenthèse ça ne marche pas non plus.
    Access et sa forêt de parenthèses ! Tout un programme !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Désolé pour mon post amputé des 3/4
    Tu as eu ta réponse maintenant grace à CinePhil, bonne continuation.
    Le Porc est un loup pour le Porc.

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

Discussions similaires

  1. [XL-2010] Sélection d'une plage dans validation de données
    Par r.morel dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/08/2014, 19h12
  2. Comment créer un ensemble de projets dans un projet existant ?
    Par fleuryns dans le forum Eclipse Platform
    Réponses: 5
    Dernier message: 27/07/2012, 21h18
  3. Réponses: 10
    Dernier message: 03/09/2004, 17h26
  4. Sélection d'une ligne dans un JTable
    Par dam21 dans le forum Composants
    Réponses: 3
    Dernier message: 28/07/2004, 12h57
  5. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57

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