voila j'ai besoin de comparé une donnée dans une table qui varie tout les mois (la taille d'une boite mail).
mon schéma:
le but est de savoir chaque mois qui a le plus fait un travail de réduction de sa boite.
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 email: columns: datestate: date asset_id: integer specialaccount: string(50) total: integer billable_euro: float(2) billable_act: float(2) snapshot_annual_act: float(2) billable_adj: float(2) snapshot_annual_adj: float(2) indexes: unique: fields: [datestate, asset_id] type: unique relations: Asset: local: asset_id foreign: id foreignAlias: monthlydiskspaceln
la requete SQL donne:
ce que j'ai transcrit en DSL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT e.asset_id, e.total,f.total,e.total-f.total FROM email e LEFT JOIN email f ON e.asset_id=f.asset_id AND f.datestate="2010-11-01" WHERE e.datestate="2010-12-01" ORDER BY e.total-f.total;
sauf que ça me donne comme requete (via echo $q->getSqlQuery()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $q = $this->createQuery() ->select('e.id, e.asset_id,e.total,f.total') ->from('email e') ->leftJoin('email f ON e.asset_id = f.asset_id AND f.datestate="'.$prevdate.'"') ->where('e.datestate= ? ',$date) ->orderBy('(e.total-f.total)');
et au $q->execute() le message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT e.id AS e__id, e.asset_id AS e__asset_id, e.total AS e__total, e2.id AS e2__id, e2.total AS e2__total FROM email e, email e2 WHERE (e.datestate = ?) ORDER BY (e.total-e2.total)
je ne voie pas trop comme me dépatouiller de ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 "email" with an alias of "f" in your query does not reference the parent component it is related to.![]()
Partager