Bonjour,
Je dis écrire des requêtes de statistiques d'insertion en base sur des periodes (une période étant une entité avec une StartDate et EndDate)
Lorsque l'utilisateur demande des stats entre 2 date je créé des entité Period en base ayant des startdate et enddate correspondant au premier et dernier jour de chacun des mois entre les 2 date (ca permet d'avoir des stats par mois mais cela peut etre ajusté facilement) toutes ces entités partagent une clef specifique à la stat qui me permet de les retrouver pour la stat et les supprimer.
>>> Si cela vous interesse vous pouvez sauter au 4 eme post les précédants sont mauvais
J'ai donc écris ma stat comme cela (Objects contient une objectquery sur les entités à compter):
Le souci c'est que cela ne marche pas vraiment comme je le veux... en effet pour cette stat (mais pas pour les future qui seront sur plusieurs lignes) au lieu d'avoir autant de résultat que de periode j'ai autant de résultat que de periode * nombre des objets à analyser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 public void GetStatesCount(DateTime startDate, DateTime endDate) { Guid statId = PeriodManager.CreatePeriods(startDate, endDate); try { var periods = ctx.Objects<Period>().Where(p => p.StatId == statId); var q = from s in Objects from p in periods join sj in Objects on (s.Date >= p.StartDate && s.Date <= p.EndDate) equals true into g orderby p.StartDate select new { Period = p, Count = g.Count() }; var res = q.ToArray(); res.ToString();//BreakPoint } catch (Exception ex) { //BreakPoint } finally { PeriodManager.DeletePeriods(statId); } }
Y a surement un distinct a mettre quelque part mais je ne vois pas ou (il faudrait prendre en compte mes prochaines stats qui auront 3 champs dans le retour : Period, count, un champ de l'objet à analyser)
Des idées ?
Merci![]()
Partager