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

Pobierz dane z ostatnich 3 miesięcy jako oddzielne kolumny, a nie wiersze dla każdego użytkownika

  1. Użyj LEFT JOIN aby się upewnić, otrzymasz pełną listę firm, nawet jeśli nie ma rachunku za żaden miesiąc.
  2. Musisz utworzyć n kolumn ręcznie lub za pomocą skryptu.
  3. Możesz po prostu wykonać proste dołączenie, nie jest wymagane żadne podzapytanie.
  4. Użyj GROUP BY do generowania jednego rekordu na firmę.
  5. Użyj CASE WHEN lub IF ELSE aby utworzyć n kolumn i wybrać dane tylko z odpowiedniego wiersza. Może to być pierwszy lub dowolny wiersz, więc użyj funkcji agregującej, aby wybrać dane, nawet jeśli znajdują się w dowolnym wierszu dla grupy, ustawiając inne wartości wiersza jako NULL jako funkcja agregująca wykluczaj wartości null.
SELECT 
    u.display_name,
    SUM(IF( bill_month='Jan2k19', package_price, NULL)) as first_bill,
    SUM(IF( bill_month='Feb2k19', package_price, NULL)) as second_bill,
    SUM(IF( bill_month='Mar2k19', package_price, NULL)) as third_bill
FROM bf_users u 
LEFT JOIN bf_monthly_bill b on u.id=b.company_id
GROUP BY u.display_name;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odwoływanie się do kluczy obcych MySQL

  2. MySQL Workbench:Błąd w zapytaniu (1064):Błąd składni w pobliżu „VISIBLE” w wierszu 1

  3. Jak przechowywać produkty z atrybutami, które można filtrować?

  4. Uzyskaj MAX z GROUP BY

  5. błąd php a nawet po zdefiniowaniu zmiennej