Coba di bawah ini.
Apa yang saya lakukan adalah membuat tabel virtual, berisi bulan-bulan unik. Untuk yang ada info di salah satu dari 3 tabel untuk bulan itu. Kemudian jumlahnya diikat ke bulan itu.
Saya juga telah menghapus ORDER BY
di SUM
klausa, karena tidak mengubah hasilnya. IFNULL
. Anda juga dapat diubah, tergantung cara kerjanya.
Metode ini menghemat penulisan 3 lot SUM untuk setiap 3 bidang (9 SUM). Jika ada kesalahan ketik, harap perbaiki.
PERHATIKAN bahwa month
adalah kata kunci, dalam beberapa SQL. Jadi idealnya, nama kolom yang lebih baik harus digunakan.
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