Prueba lo siguiente.
Lo que he hecho es crear una tabla virtual que contiene meses únicos. A lo que hay información en una de las 3 tablas para ese mes. Entonces las sumas están ligadas a ese mes.
También eliminé el ORDER BY
en el SUM
cláusulas, ya que no cambian el resultado. Su IFNULL
también se puede cambiar, dependiendo de cómo espera que funcione.
Este método le ahorra escribir 3 lotes de SUM para cada 3 campos (9 SUM). Si hay algún error tipográfico, corríjalo en consecuencia.
TENGA EN CUENTA que month
es una palabra clave, en algunos SQL. Entonces, idealmente, se debe usar un mejor nombre de columna.
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