Kaskus

Tech

smartparentsAvatar border
TS
smartparents
[ASK PHP-Mysql] Query join tabel
Permisi agans... ane ada persoalan membuat query yang lebih simpel.
(tabel dan field sdh di-rename sehingga mungkin ada yang tidak konsisten dalam contoh kodenya, harap maklum)

Tabel MySQL terdiri atas "summary" yang berisi proyek, kontrak, volume. Satu kontrak bisa punya beberapa proyek.
Kemudian "detail" adalah breakdown "summary". Satu proyek (satu id) bisa punya beberapa item dengan tanggal awal dan selesai masing-masing.
Total "volume" di tabel "detail" belum tentu sama dengan total "volume" per kontrak. Ane nantinya mesti menghitung outstanding atau selisih volume dari total kontrak.
[ASK PHP-Mysql] Query join tabel

Ane grup berdasarkan kontraknya.
PHP Code:
$querypertama ->
"SELECT pd.kontrak as kontrak,GROUP_CONCAT(pd.destinasi) as destinasi,GROUP_CONCAT(pd.pro_id) as proid, GROUP_CONCAT(pd.nama_pro) as nama_pro,GROUP_CONCAT(pd.volume) as vol, SUM(pd.volume) as total
FROM proyek_summary pd 
WHERE pd.kontrak != '' AND pd.status = 'ongoing' 
GROUP BY pd.kontrak"



Hasil
Spoiler for hasil $querypertama:


Ane ingin mem-breakdown setiap proyek dengan mengambil data "proyek_detail". Sebenarnya ingin satu query di atas, cuma masih gak ketemu hasilnya.

Sejauh ini ane loop di hasil $querypertama dengan WHERE IN "pro_id" di dalam arraynya.
PHP Code:
//pseudo code
foreach($querypertama as $r)
{
"SELECT   GROUP_CONCAT(tr.det_id) as det_id, tr.pro_id as pro_id,SUM(coalesce(NULLIF(tr.volume, ''), 0)) as total, GROUP_CONCAT(tr.mulai) as mulai,GROUP_CONCAT(tr.selesai) as selesai 
FROM proyek_detail tr 
WHERE tr.pro_id  IN ("
.$r['pro_id'].") 
GROUP BY tr.pro_id"
;


Hasilnya
Spoiler for hasil $query loop:


Ane bisa mengolah hasil ini. Masalah bagi ane... melakukan query dalam foreach sepertinya tidak benar. $querypertama bisa jadi terdiri atas ratusan baris.

Adakah solusi untuk query langsung (di $querypertama) dg JOIN sehingga ane bisa membreakdown detail proyek, volume dan tanggal mulai-selesai per proyek berdasarkan/grup by KONTRAK?

Thanks agan-agan yang baik.
Diubah oleh smartparents 28-09-2016 11:36
nona212Avatar border
nona212 memberi reputasi
1
1.1K
2
GuestAvatar border
Komentar yang asik ya
Urutan
Terbaru
Terlama
GuestAvatar border
Komentar yang asik ya
Komunitas Pilihan