Maison >base de données >tutoriel mysql >Comment fusionner des tables SQL et garantir des valeurs de date uniques ?
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!