- Gebruik
LEFT JOIN
om er zeker van te zijn, krijgt u een volledige lijst met bedrijven, ook al is er geen enkele maand een factuur.
- Je moet handmatig of met een script n kolommen maken.
- Je kunt gewoon meedoen, er is geen subquery vereist.
- Gebruik
GROUP BY
om één record per bedrijf te genereren.
- Gebruik
CASE WHEN
of IF ELSE
om n kolommen te maken en alleen gegevens uit de relevante rij te kiezen. Het kan de eerste of elke rij zijn, dus gebruik de aggregatiefunctie om gegevens te kiezen, zelfs als deze zich in een rij voor een groep bevinden, door andere rijwaarden te maken als NULL
als aggregatiefunctie null-waarden uitsluiten.
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;