sql >> Databáze >  >> RDS >> Mysql

Proč tento dotaz nefunguje v SQLite, ale funguje dobře v MySQL a MSAccess?

V SQLite získáte automatický inkrementační sloupec pomocí INTEGER PRIMARY KEY .(A pokud se spoléháte na skutečné hodnoty payers.id v dotazu byste je měli uvést výslovně.)

Neměli byste se pokoušet vnořovat spojení, když to není potřeba:

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. Jak by měly být ip2long převedené IP uloženy v MySQL?

  2. Počítání počtu provedených dotazů

  3. Node.js Použití async/wait s mysql

  4. Propojení nebo import dat ze Salesforce