Maison > base de données > tutoriel mysql > Comment l'opération UNION de SQL peut-elle consolider les heures de plusieurs tables ?

Comment l'opération UNION de SQL peut-elle consolider les heures de plusieurs tables ?

Susan Sarandon
Libérer: 2025-01-04 15:05:41
original
183 Les gens l'ont consulté

How Can SQL's UNION Operation Consolidate Hours from Multiple Tables?

Combiner des tables pour une sortie consolidée

Dans le domaine de la manipulation de données, la fusion de plusieurs tables en une seule sortie cohérente est un défi courant. Considérez le scénario dans lequel vous disposez de deux tables, KnownHours et UnknownHours, chacune contenant des numéros de frais, des catégories, des mois et des heures travaillées. L'objectif est d'agréger les heures, sans tenir compte du mois, pour obtenir une vue consolidée.

Pour y parvenir, vous pouvez exploiter la puissance du fonctionnement UNION de SQL. Cela vous permet de combiner les résultats de plusieurs requêtes en un seul ensemble de données. Dans ce cas particulier, vous devez regrouper les heures par numéro de charge et catégorie, en utilisant la fonction d'agrégation SUM().

La requête SQL pour y parvenir est la suivante :

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum;
Copier après la connexion

Ici, le mot clé UNION ALL combine les résultats de deux requêtes distinctes. La première requête récupère les heures de la table KnownHours, en les regroupant par numéro de charge et catégorie ; la deuxième requête récupère les heures de la table UnknownHours, en les traitant comme appartenant à une catégorie « Inconnu ».

En utilisant UNION ALL, l'étape de vérification des doublons est omise, ce qui entraîne de meilleures performances par rapport à l'utilisation de UNION seule.

Le résultat de cette requête est un tableau consolidé qui fournit le total des heures travaillées pour chaque numéro et catégorie d'accusation, quel que soit le mois au cours duquel elles ont eu lieu.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal