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

  FORUM HardWare.fr
  Programmation
  Divers

  [Access]Requete pas simple.....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access]Requete pas simple.....

n°373850
les_valseu​ses
Posté le 28-04-2003 à 10:05:44  profilanswer
 

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!!!

mood
Publicité
Posté le 28-04-2003 à 10:05:44  profilanswer
 

n°373871
reddwarf
gazzz
Posté le 28-04-2003 à 10:14:32  profilanswer
 

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
n°373879
les_valseu​ses
Posté le 28-04-2003 à 10:18:57  profilanswer
 

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
n°373888
reddwarf
gazzz
Posté le 28-04-2003 à 10:21:50  profilanswer
 

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 !
 

n°373939
les_valseu​ses
Posté le 28-04-2003 à 10:46:29  profilanswer
 

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?????

n°373947
MagicBuzz
Posté le 28-04-2003 à 10:48:58  profilanswer
 

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

n°373956
reddwarf
gazzz
Posté le 28-04-2003 à 10:53:23  profilanswer
 

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

n°373964
les_valseu​ses
Posté le 28-04-2003 à 10:56:10  profilanswer
 

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:

n°373998
les_valseu​ses
Posté le 28-04-2003 à 11:09:25  profilanswer
 

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.....

n°374063
reddwarf
gazzz
Posté le 28-04-2003 à 11:36:04  profilanswer
 

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

mood
Publicité
Posté le 28-04-2003 à 11:36:04  profilanswer
 

n°374075
les_valseu​ses
Posté le 28-04-2003 à 11:40:26  profilanswer
 

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:

n°374128
les_valseu​ses
Posté le 28-04-2003 à 12:08:52  profilanswer
 

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

n°374218
les_valseu​ses
Posté le 28-04-2003 à 13:19:45  profilanswer
 

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

n°374328
reddwarf
gazzz
Posté le 28-04-2003 à 14:22:14  profilanswer
 

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

n°374457
MagicBuzz
Posté le 28-04-2003 à 15:08:05  profilanswer
 

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;

n°374505
les_valseu​ses
Posté le 28-04-2003 à 15:18:51  profilanswer
 

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 ;)

n°374554
reddwarf
gazzz
Posté le 28-04-2003 à 15:31:47  profilanswer
 

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 ! ;)

n°374569
les_valseu​ses
Posté le 28-04-2003 à 15:33:59  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Access]Requete pas simple.....

 

Sujets relatifs
VBA -> access -> liste deroulanteUtiliser une variable dans une requête SQL
enregistrer requête dans une table[access] je cherche des infos sur access
[ACCESS]Probleme activex suite a un changement de poste[VBA][ACCESS] une liste deroulante qui change de table ???
MySQL Access DeniedProbleme avec un champ Date sous Access...
Besoin d'aide pr optimisation (ACCESS)Quels outils (Access, oracle... php, asp...) choisir ?
Plus de sujets relatifs à : [Access]Requete pas simple.....


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