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

Nilai baris sebelumnya akan diambil

Salah satu opsi di sini adalah melakukan self join dengan payment tabel, bergabung di customer_id dan order_id kolom. Anda dapat menambahkan panggilan fungsi bergabung lainnya dan kemudian menggunakan hasilnya dalam pilihan Anda. Solusi berikut menggunakan query mentah karena Codeigniter tampaknya tidak mentolerir aritmatika dalam kondisi join:

public function order_balance($order_code)
{
    $this->db->query("SELECT p1.*, p2.balance AS previous_balance FROM payment p1 INNER JOIN payment p2 ON p1.order_id = p2.order_id + 1 AND p1.customer_id = p2.customer_id LEFT JOIN services s ON p1.customer_id = s.customer_id ORDER BY p1.id DESC");
    $query = $this->db->get_where('p1', array('code' => $order_code));
    return $query->previous_row();
}

Kueri memiliki bentuk:

SELECT p1.*, p2.balance AS previous_balance
FROM payment p1 INNER JOIN payment p2
    ON p1.order_id = p2.order_id + 1 AND
       p1.customer_id = p2.customer_id
LEFT JOIN services s
    ON p1.customer_id = s.customer_id
ORDER BY p1.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. Eclipse Hibernate.cfg.xml menautkan database sys dari MySQL

  2. Nama Pengguna, Kata Sandi, Pengasinan, Enkripsi, Hash - Bagaimana cara kerjanya?

  3. masalah kunci asing di jdbc

  4. Apakah mungkin menggunakan klausa WHERE untuk memilih semua catatan dalam Pernyataan SQL?

  5. Berikan hak istimewa pilih ke baris dengan kondisi