Maison > base de données > tutoriel mysql > Comment soustraire les valeurs épuisantes de plusieurs lignes SQL en fonction de l'ordre de consommation ?

Comment soustraire les valeurs épuisantes de plusieurs lignes SQL en fonction de l'ordre de consommation ?

Barbara Streisand
Libérer: 2025-01-10 09:40:42
original
884 Les gens l'ont consulté

How to Subtract Depleting Values from Multiple SQL Rows Based on Consumption Order?

Soustrayez les valeurs décroissantes des lignes en fonction de l'ordre de consommation en SQL

Lorsqu'il s'agit d'un scénario de quantité décroissante, dans lequel une table consomme la quantité d'une autre table, il faut trouver un moyen de soustraire de manière appropriée la valeur consommée de la ligne. Cette question présente une situation dans laquelle la « quantité de consommation » doit être soustraite de plusieurs lignes en fonction de diverses conditions.

La tâche peut se décomposer selon les étapes suivantes :

  1. Si ce n'est pas la dernière ligne :

    • Calculez la « Quantité consommée du lot » comme la différence entre la quantité et la quantité consommée (si la quantité consommée est inférieure à la quantité) ou comme la quantité elle-même.
  2. S'il y a plus de lignes :

    • Réduisez la quantité consommée de la quantité consommée du lot précédent.
  3. Répétez les étapes 1 et 2 jusqu'à ce que vous atteigniez la dernière ligne.

  4. Si c'est la dernière ligne :

    • Réglez la quantité consommée du lot sur la quantité restante consommée.

La requête SQL fournie dans la réponse complète efficacement ces étapes à l'aide d'expressions de table communes (CTE). Il sélectionne d'abord le premier lot de chaque pool et calcule la quantité exécutée et la demande restante en fonction de la quantité consommée. Il utilise ensuite une union récursive pour ajouter les lots suivants à chaque pool et mettre à jour la quantité exécutée et la demande restante.

Enfin, il calcule l'excédent ou le déficit de la dernière ligne pour chaque pool en soustrayant la quantité exécutée de la demande restante. L'ensemble de lignes et de colonnes résultant fournit le résultat souhaité, dans lequel la quantité consommée est réduite du lot fusionné ligne par ligne.

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