Holen Sie sich gegenseitige Siedlungen mit SQL aus DatensätzenPython

Python-Programme
Guest
 Holen Sie sich gegenseitige Siedlungen mit SQL aus Datensätzen

Post by Guest »

Wie generiert man gegenseitige Siedlungen für einen bestimmten Mitarbeiter in SQL? Die Tabelle enthält die folgenden Spalten: < /p>
  • Code: Select all

    employee_id
    : Die ID des Mitarbeiter
  • Code: Select all

    amount
    : Der Transaktionsbetrag (kann positiv oder negativ sein, basierend auf dem Grund)
  • Code: Select all

    reason
    : Eine Beschreibung der Transaktion
  • Code: Select all

    created_at
    : Der Zeitstempel, wenn die Transaktion auftrat
Ich muss einen Bericht erstellen, der zeigt, wie sich das Gleichgewicht eines Mitarbeiters im Laufe der Zeit ändert, wie folgt:



Start Balance < /th>
Änderung < /th>
Endgültiges Gleichgewicht < /th>
< /tr>
< /thead>


0 < /td>
+50 < /td>
50 < /td>
< /tr>

50 < /td>
-15 < /td>
35 < /td> < Br /> < /tr>

35 < /td>
+10 < /td>
45 < /td >
< /tr>

45 < /td>
-5 < /td>
40 < /td>



Meine SQL -Abfrage (nicht wie erwartet funktioniert)
Ich habe versucht, eine Fensterfunktion zu verwenden, um das vorherige Gleichgewicht, die Änderung und das endgültige Gleichgewicht zu berechnen, aber die Ergebnisse sind falsch: < /p>

Code: Select all

SELECT
id,
employee_id,
COALESCE(LAG(SUM(amount)) OVER (ORDER BY created_at ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING), 0) AS prev_amount,
amount AS change,
SUM(amount) OVER (ORDER BY created_at ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS final_amount
FROM settlement_settlement
GROUP BY id
ORDER BY created_at;

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post