Acces : Group By 15Min - VB/VBA/VBS - Programmation
Marsh Posté le 19-06-2007 à 10:08:09
un truc du style
select count where heure between adddate(now,0,'m') and adddate(now,15,'m')
?
Marsh Posté le 19-06-2007 à 10:34:21
Première étape : il faut transformer pour chaque enregistrement l'heure réelle en quart d'heure (champ calculé).
Ça se fait avec l'aide de la formule suivante
(CInt(format$("10/07/2006 08:45:00", "nn" )) \ 15) * 15
Cette formule renvoie 0, 15, 30 et 45 en fonction de l'heure réelle.
Cela te permettra de créer un autre champ calculé avec la nouvelle heure répartie par quart (reprendre la date et remplacer les minutes par le résultat trouvé et les secondes par 00).
Sur ce dernier champ tu pourras faire un GROUP BY et ton COUNT fonctionnera.
En théorie. Je crois, À vérifier
Marsh Posté le 19-06-2007 à 10:51:24
tegu a écrit : Première étape : il faut transformer pour chaque enregistrement l'heure réelle en quart d'heure (champ calculé). |
Yess je vois bien le principe. J'y connais rien au VBA Access mais je vais tenter ma chance et je reviendrai vers vous le cas echéant.
Si je comprend bien je met le résultat de ma requête dans un nouvelle table dans laquelle j'ajoute une nouvelle colonne avec ta formule puis je fais un group by sur l'heure puis le quart d'heure ?
Marsh Posté le 19-06-2007 à 13:08:43
Non, tu peux créer des champs calculés implicitement dans tes requetes à l'aide de formules de calcul et d'un alias de champ (nom du champ) :
SELECT A.champ1, A.champ2, CInt(Format$(...) As ChampCalcul FROM A...
Si tu ouvres un recordset sur cette requete, tu auras un champ nommé ChampCalcul directement exploitable.
edit: il faut que ton group by porte sur la date et l'heure (modifiée) pour garder un tri correct, à moins que tu ne veuilles regrouper les « 8h15 » de n'importe quel jour écoulé.
Marsh Posté le 19-06-2007 à 15:38:26
tegu a écrit : Non, tu peux créer des champs calculés implicitement dans tes requetes à l'aide de formules de calcul et d'un alias de champ (nom du champ) : |
En effet je m'en suis sorti avec :
Code :
|
Le but étant tous jours confondus de compter les appels reçus par heure et par quart d'heure
Merci encore
Edit : ici la fonction "fix" est plus appropriée, en effet à 55min "cint" arrondira à 4 (car 55 / 15 = 3.6) en non à 3.
Marsh Posté le 19-06-2007 à 16:50:22
Je n'ai pas écris 55 / 15, mais 55 \ 15
Ça n'était pas une faute de frappe mais un opérateur VB qui fait la division et ne garde que la partie entière du résultat
Marsh Posté le 19-06-2007 à 16:52:37
tegu a écrit : Je n'ai pas écris 55 / 15, mais 55 \ 15 |
ouye je n'avais pas vu. Bé merci encore
Marsh Posté le 19-06-2007 à 10:03:07
Bonjour,
J'ai une table dont le contenu ressemble à ça :
TSTAMP ID GROUP
10/07/2006 08:02:31 527526 Groupe1
10/07/2006 08:03:34 527527 Groupe2
10/07/2006 08:07:05 527530 Groupe1
J'aimerais compter le nombre d'occurence de groupe toutes les 15 minutes. Je sais le faire par heure, jour ou mois avec les foontions PartDate appliqués sur TSTAMP mais comment le fair toutes le 15 minutes.
Le résultat devrait ressembler à ca :
10/07/2006 08:00:00 2
10/07/2006 08:15:00 4
etc...
Merci pour vos éventuelles pistes
Message édité par 86bavaria le 19-06-2007 à 10:03:23