perintah sql untuk menampilkan data berdasarkan statusnya

sebelumnya saya pernah bertanya disini dengan kasus https://sekolahkoding.com/forum/perintah-sql-untuk-mengambil-data-terakhir-per-id-1614050821 . ternyata ada kondisi yg harus diubah.

total bruto.png

yang saya tanyakan gan, data yang harus ditampilkan di tabel itu jika statusnya Lunas maka data yang lunas pertama yang dimunculin (yang saya kasih warna).

Yang bikin saya bingung jika user blm pernah melakukan pembayaran sama sekali data yang dimunculkan itu total pokok dan total bruto nya gan (yang saya warnain). padahal total pokok dan total bruto nya itu ga ada di database jadi saya bingung gmn mau ngambil nya

*Edited

total bruto.png

Klo user udah bayar sekali data yg ditampilin, data yang saya warnain

total bruto blm bayar.png

Klo user belum bayar sama sekali, data yang dimunculin, data penjumlahan dari total pokok dan bruto nya gan (yg saya warnain), kan itu ga ada di database, karena yg ditampilin di DB cuman angsuran nya

Nah, klo dari perintah sql @keccikun dia cmn ngambil data yg belum bayar, jadi klo misalnya si user sudah bayar, data total_pokok dan total_bruto yang "Lunas" dia tetep munculin yg ga ada di database (3.505.363 | 3.870.000) harusnya yg ditampilin (2.334.841 | 2.580.000), soalnya where nya "BelumBayar". (FY1 : 0 = BelumBayar, 1 = Lunas)


SELECT (pokok + angsuran_pokok) AS total_pokok, (bruto + nominal) AS total_bruto FROM akutansi WHERE id IN (SELECT MIN(id) FROM akutansi WHERE status = '0' GROUP BY user)

where nya 0.png

Saya juga udh coba klo where nya "Lunas", yang ditampilin tetep 3502262, 3.869.999 /3870000. harusnya 2.334.841 | 2.580.000


SELECT (pokok + angsuran_pokok) AS total_pokok, (bruto + nominal) AS total_bruto FROM akutansi WHERE id IN (SELECT MIN(id) FROM akutansi WHERE status = '1' GROUP BY user)

where nya 1.png

avatar dynemix
@dynemix

43 Kontribusi 5 Poin

Diperbarui 2 tahun yang lalu

1 Jawaban:

<div>Halo&nbsp;<a href="https://sekolahkoding.com/user/dynemix">@dynemix</a><br><br>Mohon izin menjawab,<br><br>Kamu bisa coba query ini:</div><pre>SELECT (pokok + angsuran_pokok) AS total_pokok, (bruto + nominal) AS total_bruto FROM akutansi WHERE id IN (SELECT MIN(id) FROM akutansi GROUP BY user)</pre><div><br>sumber: https://www.w3resource.com/sql/arithmetic-operators/sql-arithmetic-operators.php</div>

avatar keccikun
@keccikun

364 Kontribusi 196 Poin

Dipost 2 tahun yang lalu

Tanggapan

gan sorry, utk total bruto jika angsuran nya sudah dibayar harusnya data yg diambil data yg ada didatabase yang statusnya "LUNAS" gan, tp klo utk kode agan tetap mengambil data yg "BelumBayar", tau solusi nya gan?

tinggal ditambah aja where nya gan: SELECT (pokok + angsuran_pokok) AS total_pokok, (bruto + nominal) AS total_bruto FROM akutansi WHERE id IN (SELECT MIN(id) FROM akutansi WHERE status = 'BelumBayar' GROUP BY user)

saya udh edit post buat nunjukin sql yg dibuat agan di post coba liat gan yg *edited.

jadi dia cmn ngambil data yg belum bayar, jadi klo misalnya si user sudah bayar, data total_pokok dan total_bruto yang "Lunas" dia tetep munculin yg blm bayar, harusnya ngambil data di DB yang "Lunas".

Login untuk ikut Jawaban