Maison >base de données >tutoriel mysql >Comment puis-je afficher des dates uniques lors de la fusion des données de mouvements de produits entrants et sortants dans SQL ?

Comment puis-je afficher des dates uniques lors de la fusion des données de mouvements de produits entrants et sortants dans SQL ?

DDD
DDDoriginal
2024-12-25 22:42:10296parcourir

How Can I Display Unique Dates When Merging Inbound and Outbound Product Movement Data in SQL?

Fusionner des tables et unifier des dates

En SQL, la combinaison des données de plusieurs tables est essentielle pour une analyse complète. Ce problème nécessite la fusion de deux tables, Inbound et Outbound, qui suivent les mouvements des produits. La requête initiale fusionne efficacement ces tables, mais il existe une exigence supplémentaire pour afficher les dates de manière unique.

Affichage unique de la date à l'aide de UNION ALL et GROUP BY

Pour obtenir un résultat unique affichage de la date, la requête d'origine peut être modifiée pour utiliser UNION ALL en conjonction avec GROUP BY :

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
     )
    ) io
GROUP BY Date, Product;

Répartition de la Modifications :

  • UNION ALL combine les résultats de deux sous-requêtes, chacune représentant l'une des tables d'origine.
  • Les sous-requêtes regroupent les données par Inbound_Date (alias Date) et Product pour Inbound et by Outbound_Date et Product pour Outbound.
  • En imbriquant ces sous-requêtes, Inbound et Les quantités sortantes sont séparées en colonnes.
  • La clause GROUP BY externe agrège davantage les données par date et par produit, garantissant ainsi la suppression des dates en double.

Interprétation des résultats :

La requête modifiée produit le résultat souhaité :

Date Product Inbound Outbound
2017-05-23 Product A 400 1
2017-09-04 Product C 380 0
2017-10-18 Product C 0 1
... ... ... ...
2018-09-10 Product B 200 1
... ... ... ...

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