- Brug
LEFT JOIN
for at sikre dig, får du en komplet liste over virksomheder, selvom der ikke er nogen regning for nogen måned.
- Du skal oprette n kolonner manuelt eller ved hjælp af et script.
- Du kan blot lave en simpel joinforbindelse, ingen underforespørgsel er påkrævet.
- Brug
GROUP BY
at generere en enkelt post pr. virksomhed.
- Brug
CASE WHEN
eller IF ELSE
at oprette n kolonner og kun vælge data fra den relevante række. Det kan være den første eller en hvilken som helst række, så brug den aggregerede funktion til at vælge data, selvom det er på en hvilken som helst række for en gruppe ved at lave andre rækkeværdier som NULL
som aggregeret funktion ekskluder null-værdier.
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;