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

Robienie dość podstawowych sum przy różnych stołach

Jednym z podejść byłoby użycie widoków wbudowanych. Aby to zrobić

  • Utwórz zapytanie sumujące zdobyte punkty
  • Utwórz zapytanie sumujące wydane punkty
  • Połącz zapytania razem (lewe sprzężenie na wypadek, gdyby jeszcze nic nie wydali)
  • Wykonaj odejmowanie


SELECT SumOfPointsEarned.Points - COALESCE(SumOfPointsOfPurchasesMade.Points, 0) AS CurrentPoints
FROM   
(
    SELECT SUM(Points) AS Points, Recipient_ID 
    FROM   transactions 
            WHERE Recipient_ID= 137642
    GROUP  BY Recipient_ID
) AS SumOfPointsEarned 
    LEFT JOIN 
    (
        SELECT purchases.Student_ID,  SUM(rewards.Cost_to_User) AS Points 
        FROM   purchases 
            INNER JOIN rewards 
            ON purchases.Reward_ID = rewards.Reward_ID 
                    WHERE Student_ID = 137642
        GROUP  BY purchases.Student_ID
    ) AS SumOfPointsOfPurchasesMade 
    ON SumOfPointsEarned.Recipient_ID = SumOfPointsOfPurchasesMade.Student_ID


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Aplikacja Windows Phone 8.1 łączy się z bazą danych

  2. jak wstawić dane ciągu do tabeli jako różne dane kolumny w wierszu

  3. Aktualizuj wiele wierszy z różnymi wartościami w jednym zapytaniu - MySQL

  4. dostęp do mysql na hoście z wirtualnej skrzynki gościa

  5. Nie można zainstalować pakietu libmysqlclient-dev podczas budowania pliku docker z ubuntu