Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 17h12   #1
Membre à l'essai
 
Inscription : décembre 2010
Messages : 30
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 30
Points : 21
Points : 21
Par défaut rédiger une requête SQL

Bonjour à tous,

Voilà je cherche désespérement à convertir la requête suivante en DQL :

Code SQL :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT r.ref_user, IFNULL(sl.stock_labos, 0) AS total_labo, IFNULL(sb.stock_bunkers, 0) AS total_bunker, (IFNULL(sl.stock_labos, 0) + IFNULL(sb.stock_bunkers, 0) ) AS stock_total
FROM ref_user_produit r
LEFT JOIN (
  SELECT ref_user_id, SUM(quantite) AS stock_labos 
  FROM stock_ref_produit_labo 
  GROUP BY ref_user_id
  ) AS sl ON r.id = sl.ref_user_id
LEFT JOIN (
  SELECT ref_user_id, SUM(quantite) AS stock_bunkers 
  FROM stock_ref_produit_bunker 
  GROUP BY ref_user_id
  ) AS sb ON r.id = sb.ref_user_id
WHERE (
r.produit_id =1
)

Le plus proche que j'ai réussi à obtenir est le code suivant, mais il comporte une erreur de taille : si le nombre de lignes diffère entre les 2 tables jointes, j'obtiens une erreur de stock.

Code PHP :
1
2
3
4
5
6
7
8
  $query = Doctrine::getTable('RefUserProduit')
              ->createQuery('r')
              ->select('r.ref_user, SUM(sl.quantite) AS stock_labo, SUM(sb.quantite) AS stock_bunker')
              ->leftJoin('r.StockRefProduitLabo sl')
              ->leftJoin('r.StockRefProduitBunker sb')
              ->addWhere('r.produit_id = ?', $request->getParameter('id'))
              ->addGroupBy('r.ref_user')
              ;

L'autre idée que j'ai eue serait de créer les méthodes getStockLabos et getStockBunker, renvoyant leur SUM respectif et de les intégrer au DQL, mais je ne vois pas trop comment c'est possible ...

Si un gourou de doctrine venait à passer dans le coin pour m'aiguiller

Mais j'en appelle aussi à toutes les bonnes volontés, d'avance merci
Valockar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web