Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
Gagal query untuk report dengan data yang berbeda
Permasalahan 1 : Jadi gue ada masalah mengenai pembuatan report dengan data berbeda. Jadi gue punya 2 tabel di sini
- Monthly Plan
- Daily Plan
Ini hasil yg Gue Bikin dan gue cuman query yang
monthly plannya Ini hasil yg gue pengen tapi hasilnya yg daily plan aku edit di reportnya hasilnya kaya gini :
Permasalahan 2 : Jika misalkan di Line 10 yang monthly plan cuman satu data sedangkan daily plan ada 3 data. Itu cara siasatinnya gimana ?
Contohnya seperti ini :

Berikut database gue dan contoh masing masing querynya :
https://db-fiddle.com/f/2bA7StrBpz18tLFgAQh2QV/3Dan ini kodingan gue :
https://pastebin.com/4Jy1G9yyMohon bantuannya.
Comments
yg masalah 2 itu pake GROUP_CONCAT
saat ditampilkan mesti pake explode()
jadi sekali terima record, tetep 1 record,
tapi kemungkinan daily nya bisa nyambung banyak yg harus di explode() pake delimiter yg elo tentukan sendiri dan harus unik
yang permaslahan kedua itu gimana ya, gue belum paham . Itu query gue salah ngga?
lha wong ta coba ta eksekusi keluarnya ini :
Query : SELECT a.Keterangan, a.IdBukti,c.LineName,a.LineID,a.Tanggal,b.TypeProduksi AS partnamemonthly,a.PartID AS partidmonthly,a.Qt...
Error Code : 1146
Table 'test.ms_part' doesn't exist
Execution Time : 00:00:00:000
Transfer Time : 00:00:00:000
Total Time : 00:00:00:000
monthly plan ... ini bulanan kan ?
daily plan ... ini harian kan ?
kalo ini bulanan, kenapa kondisi WHERE yg dipake masih melibatkan tanggal ?
yyyy-mm-dd ... kenapa masih pake dd -nya ?
kalo misal rujukannya adalah bulanan pada tanggal tertentu,
tetep yg diambil mestinya bulan itu, tanpa dd
kalo pun ada rujukan data lain (daily plan) yg ngikut, baru itu pake dd-nya
bener ndak kaya begini ?
entah ini salah pengartian di mana ...
tapi kalo buat gw, model kaya gitu bukan mothly plan dan daily plan
tapi daily plan dan daily realization
rencana kerja harian dan realisasinya
rencananya hari ini kerja A
tapi realisasinya kerja B
soalnya kacamata ngeliatnya per hari, jadi penamaannya juga sama "daily"
kalo dibilang monthly, itu scope nya lebih besar,
langsung tgl 1 s/d akhir bulan
jadi kalo mau ngomong "rencana bulan ini" ya langsung ambil gambaran tgl 1 s/d akhir
cuma masalah istilah sih
yg penting pemahamannya sudah sama
lha kalo model elo kaya gitu,
- table "mothly plan" itu table apa ?
- table "daily plan" itu table apa ?
- yg menghubungkan antara table "monthly plan" dgn "daily plan" itu field apa ?
- table monthly plan yg gua maksud ini : trans_ppicbdt_dt
- table daily plan yg gue maksud : trans_ppich
- Keduanya dihubungkan dengan field LineID yang sama, contoh :
Di line 1, monthly plannya ada dua data yaitu Part A & B
Di line 1, daily plannya ada dua data juga yaitu Part C & D
Sampai disini paham kan ?
biar ada pegangan titik berangkatnya dari situ ndak ke mana-mana
berangkat dari "monthly plan" dulu
karena itu bisa dibilang titik acuan utama nya
Jadi gini loh 'monthly plan' yg gue tulis disini itu adalah detail planning bulanannya jadi loe bisa sebut monthly plan gue 'daily plan'. nah kalau daily plan gue itu ya planning realization kaya loe bilang. Sistem di sini gitu soalnya hehe
sekarang melekatkan "daily plan" nya bener kaya gitu ?
elo definisikan sendiri b.??? nya, karena gw ndak tau field2 mana aja yg elo butuhin
a. itu planning / monthly nya
b. itu realisasi / daily nya
record dari yg monthly dipaksa gabung jadi 1 record
coba elo hapus GROUP BY nya
.kalau pakai 2 query gimana ? tapi tampilannya kaya yg gue tunjukkin itu. Jadi ada query monthly plan , dan daily plan. Jadi seakan akan ada dua tabel report tapi jadi satu. Paham ngga ?
masalahnya elo sendiri bikin relasi cuma ngandelin LineID
harusnya kalo bentuknya rencana-realisasi
itu harus ada relasi yg tepat antara rencana dan realisasi
bisa one-to-one atau one-to-many
bahwa rencana X realisasinya A
atau rencana Y realisasinya N, M & O
tapi bakal susah kalo many-to-many
di "monthly" yg LineID L1001 ada 2 (many)
di "daily" yg LineID L1001 juga ada 2 (many)
jadi elo harus bener-bener bisa mencatat
partmonthly "MCMX-FG612-BL-KGX" itu saat pengerjaan jadinya partdaily yg mana
kalo elo pake 2 query
- grouping nya susah
- menentukan daily ini punya monthly yg mana juga ndak jelas
- elo mau bikin tampilan kaya yg elo mau juga susah, soalnya ndak bisa memprediksi jumlah "daily" nya ada berapa
soalnya masalah elo yg kedua itu bisa selesai jika relasinya one-to-one atau one-to-many
buat ngitung jumlah rawspan nya
soalnya saat baca record monthly di 1 titik, harus sudah tau jumlah "anak" nya ada brp
dan 1 lagi, kalo elo maksa pake 2 query ada bom waktu yg elo tanam
tiap kali baca 1 record monthly, elo query ke daily
kalo data sedikit ndak masalah
tapi kalo data mulai membengkak, query nya bakal jadi lambat
sudah banyak contoh kasus di tret2 lama yg bawa masalah aplikasi jadi lemot karena data membengkak dan aplikasi pake banyak query
eksekusi query ndak cuma terima 1 menit (ini aja sudah bisa dibilang lambat)
10 menit ditunggu tetep ndak keluar hasilnya
coba begini ... bakal banyak pake explode() di koding nya, paling ndak 4x di dalam loop
tapi itu juga bakal bisa ketemu masalah juga
kalo misal monthly ada 2 record dgn LineID yg sama
sementara daily lebih banyak record (lebih dari 2)
tampilan table nya jadi bagaimana ?
misal monthly A & B, daily nya R,S & T
A sebaris dgn R
B sebaris dgn S
lalu T nya ?
itu baru 2 ketemu 3
lha kalo ketemu 5 ? 7 ? atau lebih banyak lagi ?
ya kalo monthlynya cuma 2, kalo lebih banyak gimana ?
lalu kalo daily nya justru lebih sedikit ?
terus kalau dailynya lebih dikit juga ada kasus seperti itu. solusi gimana
makanya itu gw bilang ... harusnya ada relasi yg bener
jadi tau bahwa "rencana ini" <-> "realisasi nya ini"
mau dibuat kaya tampilan elo yg kedua itu bisa dibilang presentasi data elo salah
dari gambar 1, itu bakal terbaca :
rencana part name "mcm-612" saat dikerjakan jadi "mcm-507"
rencana part name "mcm-638" saat dikerjakan jadi "mcm-508"
padahal ndak ada hubungannya sama sekali
bukan "mcm-612" jadi "mcm-507"
tapi "mcm-612 & mcm-638" jadi "mcm-507 & mcm-508"
begitu kan ?
gambar 2 jadi terbaca :
rencana part name "mcg 171" saat dikerjakan jadi "...", "...", "..."
padahal bukan itu harusnya
lha wong rencananya banyak, realisasi juga banyak
itu yg gw bilang "presentasi data" / "penyajian data" nya salah
kemungkinan terakhir ya tampilan table nya yg diubah
untuk gambar/ kasus kedua emang sering gitu, jadi misalkan monthly plannya di line 10 cuman "mcg 171" ternyata stok habis maka itu daily plannya ada 3 part yg beda.
terus kalau table diubah gimana maksudnya ?
kira-kira kaya begini :
jadi antar part name ndak ada garis
mau ndak mau orang bacanya juga itu satu kelompok
satu kelompok rencana, hasilnya juga satu kelompok realisasi
yg jadi masalah remark nya
elo maunya gimana ?
kalo masalah data nya, ok, bisa kaya di atas
data elo bukan multi line
bisa gampang dibaca
tapi beda ama remark elo
itu bisa multi line, tanpa garis jadi susah bacanya
ndak ada pemisah antar kalimat
mau tetep ada garis pemisah tiap remark ?
ini berarti elo di kolom yg lain pake rowspan
atau ndak masalah juga tanpa garis ?
ini malah gampang, semua cuma pake <br>
terus ini contoh monthly plannya lebih banyak
Kira kira bisa ngga kaya gitu ? kalau nggabisa cara yg loe usulin gimana. Need help banget
ini kodingan gue : https://pastebin.com/4Jy1G9yy
query gw pake model gw yg terakhir
dgn model tampilan kaya yg gw bilang
kalo masalah tampilan ...
intinya cuma jumlah baris yg akan digabung (rowspan) harus bisa didapatkan sebelum echo kolom pertama
pahami sendiri, gw ndak sempat jelasin
ini kodingan gue ada yg salah ngga ? https://pastebin.com/ar70VZ5H