sql >> Database >  >> RDS >> Mysql

Waarom werkt deze query niet in SQLite, maar werkt deze prima in MySQL en MSAccess?

In SQLite krijg je een kolom voor automatisch ophogen met behulp van INTEGER PRIMARY KEY .(En als u vertrouwt op de werkelijke waarden van payers.id in de zoekopdracht, moet u ze expliciet opgeven.)

Je moet niet proberen om joins te nesten als het niet nodig is:

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. Een aangepaste kolom maken met tekens voor automatisch ophogen

  2. Ongedefinieerde variabele:POST - PHP en MySQL

  3. Doctrine2 met Symfony2 herkent db-tekenset en sortering niet

  4. Hoe kan SQL Workload Analysis u helpen?