Requete multitables avec relation pas dans le schéma
	
	
		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:
	Code:
	
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 | 
 le but est de savoir chaque mois qui a le plus fait un travail de réduction de sa boite.
la requete SQL donne:
	Code:
	
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;  | 
 ce que j'ai transcrit en DSL:
	Code:
	
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)'); | 
 sauf que ça me donne comme requete (via echo $q->getSqlQuery();)
	Code:
	
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)  | 
 et au $q->execute() le message d'erreur:
	Code:
	
1 2
   |  
"email" with an alias of "f" in your query does not reference the parent component it is related to.  | 
 je ne voie pas trop comme me dépatouiller de ça :cry: