Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Dlaczego to zapytanie nie działa w SQLite, ale działa dobrze w MySQL i MSAccess?

W SQLite otrzymujesz kolumnę autoinkrementacji za pomocą KLUCZ PODSTAWOWY INTEGER .(A jeśli polegasz na rzeczywistych wartościach payers.id w zapytaniu należy je wyraźnie podać.)

Nie należy próbować zagnieżdżać złączeń, gdy nie jest to potrzebne:

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. Czy w MySQL jest rozróżniana wielkość liter w nazwach kolumn i tabel?

  2. Dialekt SQL nie jest skonfigurowany (Phpstorm)

  3. muszę skonfigurować django i mysql w IDE Pycharm

  4. Czy możesz użyć wielu kolumn dla zapytania, którego nie ma?

  5. Błąd:R nie może połączyć się z MySQL