Transformer SQL en QueryBuilder

Résolu
Leo98 -  
 Leo98 -
Bonjour,

J'ai une requête SQL que je dois faire en QueryBuilder, mais je n'arrive pas à cause de plusieurs leftJoin.

Voici ma requête SQL

SELECT r.lot,DATE_FORMAT(r.datetime_creation,'%d-%m-%Y %H:%i') as date_creation, u.societe, j_3.date_cloture , COUNT(r.id_reparation) as nb_element, j_2.nb_element_total
, IF(j_1.nb_element_cloture IS NULL,0,CONVERT((j_1.nb_element_cloture * 100 / j_2.nb_element_total),int)) as progression
FROM utilisateur u, reparation r
LEFT JOIN (SELECT COUNT(*) as nb_element_cloture, lot FROM reparation WHERE fk_reparation_statut_id IN (5,10,11,14,15,23,24,27)  GROUP BY lot) j_1 ON j_1.lot = r.lot
LEFT JOIN (SELECT COUNT(*) as nb_element_total, lot FROM reparation WHERE fk_reparation_statut_id > 0 GROUP BY lot) j_2 ON j_2.lot = r.lot
LEFT JOIN (SELECT DATE_FOreparationT(datetime_cloture ,'%d-%m-%Y %H:%i') as date_cloture,lot
              FROM reparation
              WHERE fk_reparation_statut_id IN (5,10,11,14,15,23,24,27)
              GROUP BY lot
             ORDER BY datetime_cloture DESC) j_3 ON j_3.lot = r.lot
  WHERE r.fk_reparation_statut_id IN(1, 16)
    AND r.revendeur = u.id_utilisateur


Est-il possible de mettre les SELECT dans les leftJoin avec QueryBuilder? et si oui comment dois-je procéder?

Merci !
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu un message d'erreur?
0
Leo98
 
Bonjour, merci pour votre réponse, j'ai essayé plusieurs codes différant, mais je ne sais pas comment faire les sous-requêtes en createQueryBuilder et sur le net j'ai rien trouvé sauf ça, mais ça ne marche pas.

https://askcodez.com/la-sous-requete-de-doctrine-dans-innerjoin.html
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Leo98
 
montre-nous ce que tu as essayé et les résultats obtenus.
la requête que tu nous montres fonctionne-t-elle?
te donne-t-elle le résultat attendu?
0
Leo98 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci pour votre aide, je ne vous donne pas ma queryBuilder origine car la logique n'était pas bonne, donc je l'ai supprimé, voici un petit code d'exemple :
j'ai ce code, comment transformer ça en QueryBuilder ?

Je n'arrive pas à trouver la solution et votre aide me serait précieuse.

SELECT * FROM `table`
WHERE `nom_colonne` = (
    SELECT `valeur`
    FROM `table2`
  )


Merci
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Leo98
 
ce code SQL fonctionne bien?
0
Leo98 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour, merci pour votre aide, finalement, j'ai choisi faire le DBAL.

Cordialement,
0