Fusionner des tables et garantir des valeurs de date uniques dans SQL
Pour fusionner deux tables tout en garantissant l'unicité des valeurs de date, utilisez l'approche suivante :
-
Union des deux sous-requêtes : Créez deux sous-requêtes pour extraire des données à partir des tables Entrants et Sortants. Additionnez la colonne Quantité dans la sous-requête Inbound et comptez le OutboundType dans la sous-requête Outbound.
-
Combinez les résultats avec Union All : Combinez les résultats des deux sous-requêtes à l'aide de l'opérateur UNION ALL. Cela créera un ensemble de résultats unique contenant à la fois les transactions entrantes et sortantes.
-
Regrouper par date et produit : Appliquez l'opérateur GROUP BY à l'ensemble de résultats combiné, en utilisant les colonnes Date et Produit comme critères de regroupement. Cela garantira que chaque combinaison date-produit unique n'est représentée qu'une seule fois dans le résultat final.
-
Somme entrante et sortante : Utilisez SUM pour calculer la quantité totale entrante pour chaque combinaison date-produit. et SUM pour compter le total des transactions sortantes pour chaque combinaison.
-
Afficher les résultats : L'ensemble de résultats final affichera la date, le produit et le total. Quantité entrante et total des transactions sortantes pour chaque date et combinaison de produits uniques.
Exemple de code :
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;
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