Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak zrobić bieżące sumy z drugiej kolumny?

Skrzypce SQL

Konfiguracja schematu Oracle 11g R2 :

CREATE TABLE lots ( Lot_Size, Reported_QTY ) AS
          SELECT 150, 100 FROM DUAL
UNION ALL SELECT 150, 100 FROM DUAL
UNION ALL SELECT 150,  80 FROM DUAL
UNION ALL SELECT 150,  80 FROM DUAL
UNION ALL SELECT 150,   5 FROM DUAL;

Zapytanie 1 :

SELECT Lot_Size,
       Reported_QTY,
       COALESCE( LAG( Reported_QTY ) OVER ( ORDER BY NULL ) - Reported_QTY,
                 Lot_Size - Reported_QTY ) AS Qty_Balance
FROM   Lots

Wyniki :

| LOT_SIZE | REPORTED_QTY | QTY_BALANCE |
|----------|--------------|-------------|
|      150 |          100 |          50 |
|      150 |          100 |           0 |
|      150 |           80 |          20 |
|      150 |           80 |           0 |
|      150 |            5 |          75 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie funkcji LAG lub Other w klauzuli SUM

  2. Upewnij się, że sesja php otrzymuje tę samą sesję oracle podczas korzystania z oci_pconnect

  3. Oracle pobierz wiersz, w którym zmieniła się wartość kolumny

  4. Zapytanie SQL, aby uzyskać pierwszą datę, w zależności od aktualnej grupy (~przerwa kontrolna)

  5. Precyzja interwału dla wartości funkcji PL/SQL