Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitung saldo dengan mysql

Jawaban singkat, ya

Jawaban yang lebih panjang, Anda dapat menggunakan variabel untuk menghitungnya saat ia mengulangi baris, mis.

SELECT 
    `table`.`ID`,
    `table`.`In`,
    `table`.`Out`,
    @Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
FROM `table`, (SELECT @Balance := 0) AS variableInit
ORDER BY `table`.`ID` ASC

, (SELECT @Balance := 0) AS variableInit memastikan bahwa @Balance diinisialisasi ke 0 sebelum Anda mulai. Untuk setiap baris kemudian set @Balance menjadi @Balance + In - Out , lalu menampilkan nilai yang dihitung.

Juga ada baiknya memastikan ORDER konsisten karena jika tidak, Saldo akan bervariasi tergantung pada urutan baris yang dikembalikan. Jika Anda ingin memesannya kembali ke depan, misalnya, Anda dapat menggunakan ini sebagai subkueri karena kueri luar berhubungan dengan nilai yang dihitung sehingga memastikan Saldo tetap benar yaitu

SELECT
    `balanceCalculation`.`ID`,
    `balanceCalculation`.`In`,
    `balanceCalculation`.`Out`,
    `balanceCalculation`.`Balance`
FROM (
    SELECT 
        `table`.`ID`,
        `table`.`In`,
        `table`.`Out`,
        @Balance := @Balance + `table`.`In` - `table`.`Out` AS `Balance`
    FROM `table`, (SELECT @Balance := 0) AS variableInit
    ORDER BY `table`.`ID` ASC
) AS `balanceCalculation`
ORDER BY `balanceCalculation`.`ID` DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengembalikan semua hak istimewa ke pengguna root di MySQL?

  2. Bagaimana cara mendaftarkan fungsi SQL non-standar secara manual di aplikasi Spring Boot?

  3. Host server tidak dikenal PHP MySql

  4. cara menyimpan konten ckeditor di database mysql

  5. Kesalahan MySQL::'Akses ditolak untuk pengguna 'root'@'localhost'