bonjour,
je cherche a faire une requete d'aggrégation sur 3 tables dont une qui est fille d'une table plus grosse, je ne comprends pas comment faire.
mon schéma simplifier:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
 
section:
  columns:
    name: string(50)
 
user:
  columns:
    firstname: string(50)
    lastname: string(50)
    section_id: integer
  relations:
   section:
     foreignAlias: listuser
 
asset:
   columns:
     type: string(50)
     name: string(50)
     user_id: integer
  relations:
    user:
       foreignAlias: listasset
 
email:
   inheritance:
     extends: asset
     type: columns_aggregation
     keyField: type
     keyValue: email
  columns:
     serveur: string(50)
 
email_historic:
  columns:
     email_id: integer
     date: date
     size: integer
  relations:
    email:
       foreignAlias: HistoricSize
ce que je souhaite, c'est pour un mois la somme par section des boites mail, du style:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
SELECT s.name, sum(e.size)
FROM section s
LEFT JOIN user u ON u.section_id = s.id
LEFT JOIN email e ON e.user_id = u.id
GROUP BY s.name
WHERE e.date="2001-06-01"
j'ai créer la requete DQL suivante mais ça ne marche pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 
->SELECT('s.name, sum(e.size)')
->FROM('section s')
->leftJoin('s.listuser u')
->leftJoin('u.listasset e')
->leftJoin('e.HistoricSize')
->GROUPBY('s.name')
->where('e.date=?','2011-096-01')
message d'erreur: Unknown relation alias HistoricSize