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

Mengapa kueri ini tidak berfungsi di SQLite tetapi berfungsi dengan baik di MySQL dan MSAccess?

Di SQLite, Anda mendapatkan kolom peningkatan otomatis dengan menggunakan INTEGER PRIMARY KEY .(Dan jika Anda mengandalkan nilai sebenarnya dari payers.id dalam kueri, Anda harus memberikannya secara eksplisit.)

Anda tidak boleh mencoba menggabungkan gabungan saat tidak diperlukan:

SELECT payer_payment.payer_id,
       Sum(payer_payment.amount)                             AS total_paid,
       Sum(payer_payment.pays * payments_share.single_share) AS fair_share
FROM       payers
INNER JOIN payer_payment
        ON payers.id = payer_payment.payer_id
INNER JOIN (SELECT payment_id,
                   Sum(amount) / Sum(pays) AS single_share
            FROM   payer_payment
            GROUP  BY payment_id) AS payments_share
        ON payer_payment.payment_id = payments_share.payment_id
WHERE payers.user_id = 1
GROUP BY payer_payment.payer_id;

SQLFiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa pengaturan Driver JDBC-mysql untuk penanganan DATETIME dan TIMESTAMP yang waras di UTC?

  2. Kesalahan MySQL:Tidak dapat membuat/menulis ke file '/var/mysqltmp/#sql_1fbd_0.MYI' (Errcode:13)

  3. Doctrine Paginator memilih seluruh tabel (sangat lambat)?

  4. Apakah ada MySQL yang setara dengan preg_replace PHP?

  5. Cara mengetahui kata sandi root MySQL