Maison >base de données >tutoriel mysql >Comment fusionner des tables SQL et garantir des valeurs de date uniques ?

Comment fusionner des tables SQL et garantir des valeurs de date uniques ?

DDD
DDDoriginal
2024-12-27 00:51:10951parcourir

How to Merge SQL Tables and Ensure Unique Date Values?

Fusionner des tables avec des dates uniques

En SQL, fusionner deux tables tout en conservant des valeurs de date uniques est une tâche courante. Voici une solution à votre problème de fusion des tables Inbound et Outbound :

La première étape consiste à fusionner les tables à l'aide de l'opérateur UNION ALL. Cet opérateur combine les lignes des deux tables sans supprimer les doublons :

(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
)

Ensuite, nous devons éliminer les dates en double. Pour cela, nous utilisons la clause GROUP BY pour consolider les lignes avec la même date et le même produit :

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;

Cette requête finale aboutit à une table avec des valeurs de date uniques, comme vous le souhaitez. Le résultat sera similaire à l'exemple que vous avez fourni :

Date           Product       Inbound        Outbound
2017-05-13     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