以下をお試しください。
私が行ったことは、一意の月を含む仮想テーブルを作成することです。その月の3つのテーブルの1つに情報があります。次に、合計はその月にバインドされます。
ORDER BY
も削除しました SUM
で 結果を変更しないため、句。 IFNULL
期待する動作に応じて変更することもできます。
この方法では、3つのフィールド(9つのSUM)ごとに3つのSUMを書き出す必要がありません。タイプミスがある場合は、それに応じて修正してください。
month
一部のSQLではキーワードです。したがって、理想的には、より適切な列名を使用する必要があります。
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