Bonjour à tous!

Je cherche à simplifier (et optimiser) une requête. Je précise que celle ci fonctionne, mais ne me semble pas très optimale niveau performance.

Pour résumé j'ai une table produit, une table entree, une table sortie.
Je veux réaliser une vue avec pour chaque produit, la somme des entrées/sorties.

Voilà la requête que j'utilise actuellement (qui fonctionne bien). En gros je fais la somme des entrées, la somme des sorties puis la somme des deux résultats:
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
 SELECT id_produit, SUM(COALESCE(nbr_to_add, 0)) AS sum_entree_sortie
 FROM
 (
 
  SELECT p.id_produit, SUM(COALESCE(e.qty_entree, 0)) AS nbr_to_add
   FROM produit p
   LEFT JOIN entree e ON e.id_produit = p.id_produit
   GROUP BY p.id_produit
 
   UNION
 
  SELECT p.id_produit, SUM(COALESCE(s.qty_sortie, 0)) AS nbr_to_add
   FROM produit p
   LEFT JOIN sortie s ON s.id_produit = p.id_produit
   GROUP BY p.id_produit
 
 ) as entreesortie
   GROUP BY id_produit;
Est-ce qu'a votre avis il y a moyen de l'optimiser / simplifier ? Je précise qu'il est compliqué de toucher à la structure des tables!

Merci d'avoir lu ces lignes!