Saya ada 4 meja:
1-Pembekal
ID_A | Nama pembekal |
---|---|
1 | Epal |
2 | Xiaomi |
3 | Nokia |
4 | OPPO |
2-Mulakan baki
ID_B | Imbangan permulaan |
---|---|
1 | 1000 |
2 | 1000 |
3 | 1000 |
4 | kosong |
3- Invois
ID_C | Nilai invois |
---|---|
1 | 200 |
1 | 500 |
2 | 800 |
3 | 250 |
3 | 400 |
4 | kosong |
4-Kembali
ID_D | Pulangan_nilai |
---|---|
1 | 100 |
2 | 50 |
2 | 25 |
3 | kosong |
4 | kosong |
Kaedah aritmetik untuk memaparkan data sebagai hasilnya:
Baki Permulaan + Invois - Pulangan = Baki Akhir
Saya cuba menggunakan UNION dan JOINS dalam mysql:
SELECT null , Supplier_name , ID_A , SUM(Invoice_value) , null , null FROM Suppliers inner JOIN Invoices ON ID_A = ID_C group by ID_A UNION ALL SELECT null , Supplier_name , ID_A , null , SUM(Return_value), null FROM Suppliers left JOIN Returns ON ID_A = ID_D group by ID_A UNION ALL SELECT Start Balance , Supplier_name, ID_A , null , null ,( Start Balance + ifnull(SUM(Invoice_value),0) - ifnull(SUM(Return_value),0) ) FROM Suppliers left JOIN Start Balance ON ID_A = ID_B left JOIN Invoices ON ID_A = ID_C left JOIN Returns ON ID_A = ID_D group by ID_A
Saya jangkakan keputusan ini ialah:
Imbangan permulaan | Nama pembekal | ID_A | Nilai invois | Pulangan_nilai | Imbangan_Akhir |
---|---|---|---|---|---|
1000 | Epal | 1 | 700 | 100 | 1600 |
1000 | Xiaomi | 2 | 800 | 75 | 1725 |
1000 | Nokia | 3 | 650 | kosong | 1650 |
kosong | OPPO | 4 | kosong | kosong | kosong |
Tetapi ia tidak berfungsi dengan baik, ia menunjukkan keputusan dalam baris yang berbeza dan pengiraan baki akhir adalah salah Apakah kod yang betul untuk memaparkan hasil ini
Anda boleh menjumlahkan jumlah dalam subkueri dan menyertainya bersama
Violin