[Access]Requete pas simple.....

Requete pas simple..... [Access] - Divers - Programmation

Marsh Posté le 28-04-2003 à 10:05:44    

Bonjour, dans le cadre d'un projet je dois réaliser une application access, or une des requetes me pose probleme :
 
j'ai 2 tables :
 
1 table "section" comrenant des numéro de section d'employes
1 table "conso" comprenant les numéros de section des employes, le temps passé par chaque employé sur chaque projet...
 
Je dois afficher tous les employes groupés par numéro de section et dont ce numéro de section est dans la table section (si la table section contient 8, 12 et 14 je devrais afficher 3 lignes :  8, 12 et 14) chaque ligne contenant la somme des temps passés de tous les employés de la section.
 
Par ex :
|---------|------------|
|Section  |Temps passé |
|    8    |  12.8      |
|    12   |  189.6     |
|    14   |  7.56      |
 
 
 
Si vous savez comment faire ca je suis preneur!!!

Reply

Marsh Posté le 28-04-2003 à 10:05:44   

Reply

Marsh Posté le 28-04-2003 à 10:14:32    

un select avec une jointure sur les champs numéro de section et un group by devrait suffire nope ??  :heink:  
 
select " champs à afficher " where table1.numero_de_section = table2.numero_de_section group by table2.numero_de_section
 
edit : pour le temps passé par projet -> sum et group by


Message édité par reddwarf le 28-04-2003 à 10:15:50
Reply

Marsh Posté le 28-04-2003 à 10:18:57    

En sql je pense pouvoir y arriver, mais c'est du access la!!!!
Surtout que c'est pour afficher dans un état apres.....
 
ah oui, il faut aussi que j'affiche le total en bas et un pourcentage.......(putain de projet a la con :fou:)


Message édité par les_valseuses le 28-04-2003 à 10:19:47
Reply

Marsh Posté le 28-04-2003 à 10:21:50    

bah en access tu peux taper directement du sql !
 
perso sur access j utilise rarement l interface graphique pour creer une requete !
 
et apres tu bases ton etat sur cette requete !
 

Reply

Marsh Posté le 28-04-2003 à 10:46:29    

reddwarf a écrit :

bah en access tu peux taper directement du sql !
 
perso sur access j utilise rarement l interface graphique pour creer une requete !
 
et apres tu bases ton etat sur cette requete !
 


et comment je peux faire pour créer ma requete en sql puis baser mon etat la dessus?????

Reply

Marsh Posté le 28-04-2003 à 10:48:58    

dans l'écran "requête", y'a un bouton "sql" c quand même explicite...

Reply

Marsh Posté le 28-04-2003 à 10:53:23    

clique droit sur la fenetre de ta requete puis selectionne le mode sql  :ange:  
 

Reply

Marsh Posté le 28-04-2003 à 10:56:10    

MagicBuzz a écrit :

dans l'écran "requête", y'a un bouton "sql" c quand même explicite...

désolé, tout le monde ne connait pas access aussi bien que toi, je suis désolé d'etre aussi con..... :heink:

Reply

Marsh Posté le 28-04-2003 à 11:09:25    

j'ai fait comme ca :
 
SELECT C.idconso, sum(C.tps_passe)
FROM T_section AS S, T_conso AS C
WHERE S.num_section=C.idconso
GROUP BY C.idconso;
 
 
mais ca merde au niveau de la somme, ca m'affiche des nombres bien trop petits.....

Reply

Marsh Posté le 28-04-2003 à 11:36:04    

il te manque une close dans le group by pour cumuler le temps passé par projet  :??:

Reply

Marsh Posté le 28-04-2003 à 11:36:04   

Reply

Marsh Posté le 28-04-2003 à 11:40:26    

reddwarf a écrit :

il te manque une close dans le group by pour cumuler le temps passé par projet  :??:  


ok, je vais chercher de la doc sur le group by, merci :hello:

Reply

Marsh Posté le 28-04-2003 à 12:08:52    

Bon en fait je m'étais trompé sur les noms des attributs :heink:  :heink:  :heink:  :D
 
 
voici a quoi ressemble mar requete :
 

Citation :

SELECT C.sect_empl, ARRONDI(sum(C.tps_passe),1)
FROM T_conso AS C, T_section AS S
WHERE S.num_section=C.sect_empl And tache Like "903*"
GROUP BY C.sect_empl;


 
En fait maintenant j'aimerai savoir comment je peux afficher le total et faire un % par rapport à toute ma table (la je limite aux "tache" qui commencent par "903" : tache like "9803*" )
 
je m'explique : dans ma table j'ai un champ tache, dans ma requete je ne veux afficher que ceux qui commencent par 903 mais a coté de ceux ci il faut que j'affiche un % par rapport a toute la table (et donc sans le tache like "903*" ) et je vois pas trop comment faire ca....
 
Si qq un a une idée je suis preneur :D

Reply

Marsh Posté le 28-04-2003 à 13:19:45    

y'en a pas un qui a une idée??? :??:

Reply

Marsh Posté le 28-04-2003 à 14:22:14    

si c est pour l afficher dans l etat je pense que tu peux t en sortir en faisant une requete pour la somme total et une autre pour calculer les pourcentages  
 
apres tu bases ton etat sur les 3 requetes

Reply

Marsh Posté le 28-04-2003 à 15:08:05    

1) Quand il existe un équivalent SQL standard à la syntaxe Access, utilise-les. Ca sera plus édvident pour ceux qui ne connaissent pas, et plus portable pour toi le jour où tu voudra changer de SGBD (même si c'est non applicable dans ce cas précis, c'est une habitude a prendre)
 
2) "tache", c'est bien un type 'text' ? Parceque si c'est un nombre, ça marchera pas comme ça.
 
Ta requête remise en forme et corrigée dans la cas d'un champ "tache" de type 'numeric' :
 


SELECT C.sect_empl, round(sum(C.tps_passe),1) AS total
FROM T_conso C, T_section S  
WHERE S.num_section = C.sect_empl  
And cstr(tache) Like '903%'  
GROUP BY C.sect_empl;

Reply

Marsh Posté le 28-04-2003 à 15:18:51    

En fait ce que j'ai fait c'est que je calcule le pourcentage en VBA à l'affichage de l'etat, par contre je ne sais pas comment calculer le total, il faudrait qu'a chaque fois que ca ecrit une ligne dans l'etat ca incremente une sorte de variable globale, mais je sais pas comment faire ca en access.....
 
Enfin, merci qd meme a vous 2
 
 
ps : voui, "tache" est un champs texte ;)

Reply

Marsh Posté le 28-04-2003 à 15:31:47    

MagicBuzz a écrit :

1) Quand il existe un équivalent SQL standard à la syntaxe Access, utilise-les. Ca sera plus édvident pour ceux qui ne connaissent pas, et plus portable pour toi le jour où tu voudra changer de SGBD (même si c'est non applicable dans ce cas précis, c'est une habitude a prendre)
 


 
Tout à fait d'accord ! ;)

Reply

Marsh Posté le 28-04-2003 à 15:33:59    

reddwarf a écrit :


 
Tout à fait d'accord ! ;)  


+1
mais bon vu que je fais du php+mysql et qu'on a vu le sql à l'iut je maitrise mieux le sql que le access aussi  :sarcastic:  
:D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed