Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3154 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Petit problème de requete

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access] Petit problème de requete

n°1635763
jackdaniel​s26
Posté le 02-11-2007 à 20:52:45  profilanswer
 

Bonjour à tous, j'ai un petit probleme concernant les valeurs de deux requetes que j'aimerais comparer :
 
SELECT employe.nom, employe.prenom, sum(D1.nbheures)
FROM employes, realisations, durees AS D1
WHERE employes.employeID=realisations.employeID And D1.dureeID=realisations.duree
GROUP BY employes.nom, employes.prenom;
 
et
 
SELECT employe.nom, employe.prenom, sum(D2.nbheures)
FROM employes, durees AS D2, previsions
WHERE employes.employeID=previsions.employeID And D2.dureeID=previsions.duree
GROUP BY employes.nom, employes.prenom;
 
En gros la premiere m'affiche le nombre d'heures réalisées par employé, la seconde le nombre d'heures prévues. Les tables previsions et realisations ont les meme champs et sont reliées toutes les deux à durees et employés.
 
Je souhaiterais tout mettre dans une seule requete pour afficher les employés qui ont réalisé moins d'heures que prévu...
 
Et je n'arrive pas à faire qu'une seule requête pour m'afficher ce que je veux...
 
Si quelqu'un a une idée je le remercie d'avance !
 
EDIT : J'ai éditer car mes noms de table ne correspondaient pas (erreur dans le copier coller).


Message édité par jackdaniels26 le 04-11-2007 à 21:31:13
mood
Publicité
Posté le 02-11-2007 à 20:52:45  profilanswer
 

n°1636438
jackdaniel​s26
Posté le 04-11-2007 à 16:47:42  profilanswer
 

Personne pour m'aider ?

n°1636527
moi23372
Posté le 04-11-2007 à 21:05:05  profilanswer
 

il y a moyen d'y arriver, mais quand je vois tes deux requêtes, je suis presque persuader qu'elle ne t'affiche déjà pas le bon résultat pour la bonne et simple raison que tu ne fait aucune jointes avec la tables EMPLOYES. Donc ta requête va effectuer un produit cartésien.  
 
Donc, déjà pourrais tu me donner la structure de toutes tes tables dans ces requêtes. Ensuite, je te fournirais la requête qui te permettra de mettre en une requête ces deux requêtes qui j'espère seront corrigée avec une jointe de la tables EMPLOYES.

n°1636536
jackdaniel​s26
Posté le 04-11-2007 à 21:15:42  profilanswer
 

Désolé, je viens de m'apercevoir que j'avais fait une erreur de manip dans mon copier coller ! J'ai changé ce qui n'allait pas.
 
Merci !
 
Re-edit : quand tu me dis la structure de mes tables, tu veux dire quoi ? désolé je rame vraiment...


Message édité par jackdaniels26 le 04-11-2007 à 21:18:10
n°1636791
jackdaniel​s26
Posté le 05-11-2007 à 13:18:31  profilanswer
 

Svp désolé je suis lourd, mais je galère vraiment.

n°1637211
moi23372
Posté le 05-11-2007 à 21:03:49  profilanswer
 

jackdaniels26 a écrit :

Svp désolé je suis lourd, mais je galère vraiment.


 
la query va dépendre vraiment d'access. Access est un petit moteur pourri qui n'aime vraiment pas les requête tordues. cette requête devrait fonctionner normalement, mais teste la quand même, on pourrait avoir un problème de lenteur avec ACCESS qui digère mal ce genre de requête.
Si ça ne marche pas, copie moi la structure exacte de tes tables (par structure, j'entends la liste des colonnes des tables concernée par la requête).
 
SELECT emp1.nom, emp1.prenom, sum(D1.nbheures),
           (SELECT sum(D2.nbheures)  
            FROM durees AS D2, previsions  
            WHERE emp1.employeID=previsions.employeID  
            AND D2.dureeID=previsions.duree) as resultat
FROM employes as emp1, realisations, durees AS D1  
WHERE emp1.employeID=realisations.employeID  
AND D1.dureeID=realisations.duree  
GROUP BY emp1.nom, emp1.prenom;
 
mais je suis pas sure que ça va marcher à cause du group BY :(
essayons autrement
 
SELECT emp.nom, emp.prenom,
            (SELECT sum(durees.nbheures)  
            FROM durees, previsions  
            WHERE emp.employeID=previsions.employeID  
            AND durees.dureeID=previsions.duree) as resultat1,
            (SELECT sum(durees.nbheures)  
            FROM durees, realisations
            WHERE emp.employeID=realisations.employeID  
            AND durees.dureeID=realisations.duree) as resultat2,
FROM employes as emp;


Message édité par moi23372 le 05-11-2007 à 21:08:44

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Access] Petit problème de requete

 

Sujets relatifs
[AJAX] Problème pour affichage de l'heureproblème dans un bloc PL/SQL[RESOLU]
Probleme avec session_destroyProbleme legal copie SQL (Haut importance)
probleme infobulle javascriptProbleme de compilation
probleme avec script php et HTML[PROLOG] Petit problème simple de prédicat
[VB.NET]Problème traduction C#/VB.NET 
Plus de sujets relatifs à : [Access] Petit problème de requete


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR