Heim > Datenbank > MySQL-Tutorial > Wie berechnet man die Summe der Barwerte innerhalb des letzten Monats in SQL?

Wie berechnet man die Summe der Barwerte innerhalb des letzten Monats in SQL?

Linda Hamilton
Freigeben: 2024-12-17 00:29:25
Original
804 Leute haben es durchsucht

How to Calculate the Sum of Cash Values within the Last Month in SQL?

Berechnen der Summe mit bedingter Filterung in SQL

Beim Umgang mit großen SQL-Anweisungen ist es oft notwendig, Summenwerte zu berechnen. Manchmal ist es jedoch erforderlich, nur eine Teilmenge der Daten basierend auf einer bestimmten Bedingung zu berücksichtigen. In diesem Artikel wird erläutert, wie Sie einen vorhandenen Kontoauszug ändern, um die Summe der Barwerte für eindeutige Transaktions-IDs zu berechnen, jedoch nur für solche mit einem Wertstellungsdatum innerhalb des letzten Monats.

Problem:

Um den gesamten Bargeldbetrag für jede Transaktions-ID innerhalb einer komplexen SQL-Anweisung zu berechnen, wird der folgende Code verwendet:

select sum(cash) from Table a where a.branch = p.branch and a.transID = p.transID) TotalCash
Nach dem Login kopieren

Das Ziel besteht jedoch darin, diese Anweisung zu ändern um nur Barwerte zu summieren, deren Wertstellung innerhalb des letzten Monats liegt.

Lösung:

Der überarbeitete Code sollte den ursprünglichen CASE-Ausdruck durch Folgendes ersetzen:

SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)
Nach dem Login kopieren

Erklärung:

Der CASE-Ausdruck in Ihrem ursprünglichen Code wurde falsch verwendet Syntax. In diesem Fall ist die SEARCH CASE-Syntax erforderlich, da ein boolescher Ausdruck ausgewertet wird, um das Ergebnis zu ermitteln:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
Nach dem Login kopieren

Im überarbeiteten Code prüft der CASE-Ausdruck, ob das ValueDate größer als das @startMonthDate ist. Ist dies der Fall, wird der Barbetrag in die Berechnung einbezogen; andernfalls wird es durch 0 ersetzt. Dadurch wird sichergestellt, dass nur Barwerte innerhalb des letzten Monats berücksichtigt werden.

Überlegungen zur Leistung:

Wenn die Leistung zum Problem wird, dann ist sie das auch Es wird empfohlen, die Verwendung von JOIN und GROUP BY anstelle einer abhängigen Unterabfrage in Betracht zu ziehen. Dies kann die Ausführungsgeschwindigkeit der Anweisung verbessern.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Summe der Barwerte innerhalb des letzten Monats in SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage