Heim >Datenbank >MySQL-Tutorial >Wie subtrahiere ich erschöpfende Werte aus mehreren SQL-Zeilen basierend auf der Verbrauchsreihenfolge?
Wenn es sich um ein Szenario mit abnehmender Menge handelt, bei dem eine Tabelle Menge von einer anderen Tabelle verbraucht, muss eine Möglichkeit gefunden werden, den verbrauchten Wert angemessen von der Zeile zu subtrahieren. Diese Frage stellt eine Situation dar, in der die „Verbrauchsmenge“ aufgrund verschiedener Bedingungen von mehreren Zeilen abgezogen werden muss.
Die Aufgabe kann in folgende Schritte unterteilt werden:
Wenn nicht die letzte Zeile:
Wenn es mehr Zeilen gibt:
Wiederholen Sie die Schritte 1-2, bis Sie die letzte Reihe erreicht haben.
Wenn es die letzte Zeile ist:
Die in der Antwort bereitgestellte SQL-Abfrage führt diese Schritte mithilfe von Common Table Expressions (CTE) effizient aus. Es wählt zunächst die erste Charge jedes Pools aus und berechnet die Laufmenge und den verbleibenden Bedarf basierend auf der verbrauchten Menge. Anschließend wird eine rekursive Vereinigung verwendet, um jedem Pool nachfolgende Chargen hinzuzufügen und die Laufmenge und den verbleibenden Bedarf zu aktualisieren.
Abschließend wird der Überschuss oder das Defizit der letzten Leitung für jeden Pool berechnet, indem die Laufmenge vom verbleibenden Bedarf abgezogen wird. Der resultierende Satz von Zeilen und Spalten liefert die gewünschte Ausgabe, wobei die verbrauchte Menge aus der zusammengeführten Charge Zeile für Zeile reduziert wird.
Das obige ist der detaillierte Inhalt vonWie subtrahiere ich erschöpfende Werte aus mehreren SQL-Zeilen basierend auf der Verbrauchsreihenfolge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!