Maison >base de données >tutoriel mysql >Comment soustraire les valeurs épuisantes de plusieurs lignes SQL en fonction de l'ordre de consommation ?
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 :
Si ce n'est pas la dernière ligne :
S'il y a plus de lignes :
Répétez les étapes 1 et 2 jusqu'à ce que vous atteigniez la dernière ligne.
Si c'est la dernière ligne :
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!