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

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