> Tech > Obtenir les bons totaux sur des jointures Many-to-Many

Obtenir les bons totaux sur des jointures Many-to-Many

Tech - Par iTPro - Publié le 24 juin 2010
email

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

EDI : Pratiques de Performance Opérationnelle

EDI : Pratiques de Performance Opérationnelle

Comment mieux satisfaire les directions métiers, rationaliser les échanges, améliorer la qualité des données et gérer l’obsolescence ? Découvrez dans ce livre blanc, les principaux enjeux autour de l’échange de données informatisé, les technologies complémentaires à l’EDI pour gagner en efficacité et les innovations d’offres de services fournis par Generix Group pour digitaliser vos processus.

Tech - Par iTPro - Publié le 24 juin 2010