Maison >base de données >tutoriel mysql >Comment fusionner et agréger des données entrantes/sortantes avec des dates uniques en SQL ?

Comment fusionner et agréger des données entrantes/sortantes avec des dates uniques en SQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-27 00:06:10396parcourir

How to Merge & Aggregate Inbound/Outbound Data with Unique Dates in SQL?

Fusionner des tables et des valeurs de date uniques en SQL

Le défi consiste à fusionner deux tables, entrantes et sortantes, tout en garantissant que la table résultante affiche dates uniques.

Le code VBA fourni fusionne avec succès les tables en utilisant UNION ALL. Cependant, pour rendre les dates uniques, une modification est nécessaire.

La requête révisée utilise à la fois UNION ALL et GROUP BY. Plus précisément, il combine les données des deux tables en un seul ensemble de données à l'aide de UNION ALL, puis regroupe les résultats par date et par produit. Cela garantit que chaque combinaison de Date et Produit n'apparaît qu'une seule fois dans la table fusionnée.

La requête finale est la suivante :

SELECT Date, Product, SUM(Inbound) AS Inbound, SUM(Outbound) AS Outbound
FROM ((SELECT Inbound_Date AS Date, Product, SUM(Quantity) AS Inbound, 0 AS Outbound
      FROM Inbound
      GROUP BY 1, 2
     ) UNION ALL
     (SELECT Outbound_Date, Product, 0 AS Inbound, COUNT(*) AS Outbound
      FROM Outbound
      GROUP BY 1, 2
     )
    ) AS io
GROUP BY Date, Product;

Avec cette modification, la table fusionnée affichera des dates uniques tout en conservant l'agrégation de données souhaitée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn