Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на присъединяване с групирани редове с данни

Проблемът е, че когато използвате GROUP BY , можете само SELECT агрегати и колоните, по които сте групирали.

invoices.id е колона, която се опитахте да изберете, но не групирате. Мисля, че вероятно искате да добавите тази колона към GROUP BY клауза.

SELECT 
   invoices.id, 
   sum(grossTotal)-IFNULL(depositsCheck.previouslyPaid,0) as todayTotal, 
   depositsCheck.previouslyPaid, sum(grossTotal) as grossTotal  
FROM `invoices`    
    LEFT JOIN (SELECT SUM(amount) as previouslyPaid, invNo 
    FROM deposits 
    GROUP BY invNo) depositsCheck ON depositsCheck.invNo=invoices.id 
GROUP BY  invoices.paymentType, invoices.id ORDER BY id DESC

За примерните таблици, които сте дали, вероятно ще даде:

id    |    paymentType     |     grossTotal   |    dateTime   |   previouslyPaid
1     |         Cash       |        1000      |   UNIX TIME   |       150
2     |         Card       |        1350      |   UNIX TIME   |       350
3     |         Card       |        1250      |   UNIX TIME   |         0
4     |         Card       |        750       |   UNIX TIME   |         0

Но като цяло ще имате нещо като:

id    |    paymentType     |     grossTotal   |    dateTime   |   previouslyPaid
1     |         Cash       |        1000      |   UNIX TIME   |       150
1     |         Card       |        1000      |   UNIX TIME   |       300
2     |         Cash       |        1350      |   UNIX TIME   |       350
2     |         Card       |        1350      |   UNIX TIME   |       350

Където можете да видите по-горе, за фактура 1 150 са платени в брой, а 300 са платени с карта.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Objective-C и MySQL

  2. Система за висок резултат от моята игра за iphone

  3. Как да се свържете с MySQL или MariaDB база данни

  4. Избягване на SQL инжектиране в генериран от потребителя SQL-редовен израз

  5. Проблем с четенето на VBA скрипт от базата данни MySql