Heim > Datenbank > MySQL-Tutorial > Wie summiert man Barwerte effizient nach Transaktions-ID basierend auf dem Valutadatum in SQL?

Wie summiert man Barwerte effizient nach Transaktions-ID basierend auf dem Valutadatum in SQL?

Linda Hamilton
Freigeben: 2024-12-16 11:14:10
Original
442 Leute haben es durchsucht

How to Efficiently Sum Cash Values by Transaction ID Based on Value Date in SQL?

Berechnung der Summe mit bedingten Valutadaten

In einer SQL-Anweisung möchten Sie den Gesamtbetrag für jede eindeutige Transaktions-ID innerhalb der letzten berechnen Monat. Um dies zu erreichen, müssen Sie eine vorhandene Anweisung so ändern, dass sie die Bedingung enthält, dass nur Barwerte mit einem Wertstellungsdatum nach einem bestimmten Datum einbezogen werden sollen.

Um dieses Problem zu beheben, haben Sie versucht, die CASE-Anweisung zu verwenden, aber Es ist ein Fehler aufgrund einer falschen Syntax aufgetreten.

Die korrekte Syntax für den gesuchten CASE-Ausdruck lautet:

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

Der Ausdruck sollte wie folgt geändert werden folgt:

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

Dieser Ausdruck wertet das ValueDate-Feld für jeden Datensatz aus. Wenn das ValueDate größer als das angegebene Startmonatsdatum ist, wird der Barwert zurückgegeben; andernfalls wird 0 zurückgegeben. Die resultierenden Werte werden dann summiert, um den Gesamtbetrag für den angegebenen Zeitraum bereitzustellen.

Alternativer Ansatz

Für eine verbesserte Leistung sollten Sie stattdessen die Verwendung einer JOIN- und GROUP BY-Anweisung in Betracht ziehen eine abhängige Unterabfrage:

SELECT SUM(cash)
FROM Table_a AS a
JOIN Table_b AS b ON a.branch = b.branch AND a.transID = b.transID
WHERE ValueDate > @startMonthDate
GROUP BY a.transID
Nach dem Login kopieren

Dieser Ansatz vermeidet den mit einer Unterabfrage verbundenen Overhead und kann zu einer schnelleren Ausführung führen Zeit.

Das obige ist der detaillierte Inhalt vonWie summiert man Barwerte effizient nach Transaktions-ID basierend auf dem Valutadatum 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