Prova nedan.
Det jag har gjort är att skapa en virtuell tabell som innehåller unika månader. Till vilken det finns information i en av de 3 tabellerna för den månaden. Då är beloppen bundna till den månaden.
Jag har också tagit bort ORDER BY
i SUM
klausuler, eftersom de inte ändrar resultatet. Din IFNULL
kan också ändras, beroende på hur du förväntar dig att det ska fungera.
Denna metod sparar dig att skriva ut 3 massor av SUMMA för varje 3 fält (9 SUMMA). Om det finns några stavfel, vänligen åtgärda det.
OBS att month
är ett nyckelord, i viss SQL. Så helst bör ett bättre kolumnnamn användas.
SELECT month,
(SELECT IFNULL (SUM(FTL.tradebalanceamount),0 )
FROM farmertradelabel as FTL
WHERE FTL.mobileno = '9486032141' AND strftime('%m-%Y', FTL.tradedate) = month) AS tradeamount,
(SELECT IFNULL (SUM(advanceamount),0)
FROM advancelabel
WHERE advancelabel.mobileno = '9486032141' AND strftime('%m-%Y', advancelabel.advancedate) = month) AS advanceamount,
(SELECT IFNULL (SUM(loantotalamount),0)
FROM loanlabel
WHERE loanlabel.mobileno = '9486032141' AND strftime('%m-%Y', loanlabel.loandate) = month) AS loanamount
FROM
(SELECT strftime('%m-%Y', tradedate) as 'month' FROM farmertradelabel
UNION
SELECT strftime('%m-%Y', advancedate) as 'month' FROM advancelabel
UNION
SELECT strftime('%m-%Y', loandate) as 'month' FROM loanlabel
) as dateTable