Quand vous joignez deux tables qui ont une relation many-to-many (plusieurs à plusieurs), SQL joint toutes les lignes correspondantes de la première table à toutes les lignes correspondantes de la seconde. Pour résumer les valeurs provenant des deux tables, spécifiez un subselect sur le join.
Obtenir les bons totaux sur des jointures Many-to-Many

Par exemple, pour totaliser les quantités order et dispatch des items, au lieu de SELECT O.ITEM, SUM(O.QTY), SUM(D.QTY) FROM MONYLIB.ORDDTL O JOIN MONYLIB.DSPDTL D ON O.ITEM = D.ITEM GROUP BY O.ITEM codez plutôt : SELECT O.ITEM, SUM(O.QTY), MIN(D.DESPQTY) FROM ORDDTL O JOIN (SELECT ITEM, SUM(QTY) AS DESPQTY FROM DSPDTL GROUP BY ITEM) AS D ON O.ITEM = D.ITEM GROUP BY O.ITEM
Le subselect additionne la quantité dispatch comme DESPQTY et spécifie un nom de corrélation de D de telle sorte que les valeurs retournées par la sous-requête puissent être référencées dans la requête principale. La fonction MIN dans la requête extérieure (outer) garantit que DESPQTY n’est sorti qu’une fois pour chaque item.
– Julian Monypenny Rédacteur technique System iNEWS
Téléchargez cette ressource

Guide de Cyber-résilience pour Microsoft 365
La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- DSI en assurance : gardien du temple ou moteur de la transformation ?
- Ransomware : persistance des cyberattaques à l’échelle mondiale
- Cybersécurité : l’IA générative rebat les cartes du cybercrime
- Le World Cyber Ranking, 1er classement mondial de la cybersécurité des entreprises
- Comment le Quarter Plan permet d’aligner IT et Métiers pour délivrer
