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:
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!
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;
Merci d'avoir lu ces lignes!
Partager