Join Tabel Malah Berulang2

Forum diskusi pemrograman web PHP

Moderators: irzan2010, trail

Join Tabel Malah Berulang2

Postby wawo » 16 Jan 2012, 11:11

salam kenal :) , saya buat query pake join. engga error sih tp kok hasilnya engga sesuai dengan yang diharapkan.
tabel-table
Code: Select all
tabel transaksi (mstra):
KDKEGMSTRA | JMLTRAMSTRA
2132              | 100000
2132              | 200000

tabel anggaran (msmak):
KDKEGMSTRA | DNMAKMSMAK | SDMAKMSMAK | THMAKMSMAK
2132              | 2205000         | 2205000          | 2012
2132              | 1000000         | 700000            | 2012
2132              | 1030000         | 2205000          | 2012
2132              | 1000000         |1000000           | 2012

query :
Code: Select all
SELECT SUM(mstra.JMLTRAMSTRA) AS TRANSAKSI, SUM(msmak.DNMAKMSMAK) AS DN, SUM(msmak.SDMAKMSMAK) AS SDN, tbkeg.KETKEGTBKEG
FROM mstra JOIN msmak JOIN tbkeg
ON mstra.KDKEGMSTRA = '2132' AND
      mstra.KDKEGMSTRA = tbkeg.KDKEGTBKEG AND
      msmak.KDKEGMSMAK = tbkeg.KDKEGTBKEG AND
      msmak.THMAKMSMAK = '2012' AND
      mstra.THTRAMSTRA = msmak.THMAKMSMAK GROUP BY mstra.KDKEGMSTRA;

hasil query:
Code: Select all
TRANSAKSI | DN          | SDN       | KETKEGTBKEG
1200000     |10470000 | 9870000 | Peningkatan Akses dan Mutu Pendidikan


kok hasil SUM transaksinya nya jadi 4 kali lipa , DN(DANA) dan SDN (SISA DANA) jadi 2 kali lipat?, help om, mba, mbah.
udah pusing nih. dah pake LEFT JOIN, CROS JOIN, RIGHT JOIN engga ada yang berhasil. :-l
wawo
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 16 Jan 2012, 10:36
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: Join Tabel Malah Berulang2

Postby wawo » 16 Jan 2012, 11:15

Table "tbkeg" itu hanya referensi untuk mengetahui keterangan dari Kode (2132)
wawo
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 16 Jan 2012, 10:36
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: Join Tabel Malah Berulang2

Postby vberror13 » 16 Jan 2012, 16:35

Saya nggak lihat ada field bernama KDKEGMSMAK di table msmak? Kenapa di querynya ada? Begitu pun, dengan asumsi bahwa KDKEGMSMAK adalah foreign key dari tbKeg, maka kira-kira begini querynya:

Code: Select all
SELECT SUM(mstra.jmltramstra) AS transaksi,
       SUM(msmak.dnmakmsmak)  AS dn,
       SUM(msmak.sdmakmsmak)  AS sdn,
       tbkeg.ketkegtbkeg
FROM   msmak
       INNER JOIN mstra
         ON msmak.kdkegmstra = mstra.kdkegmstra
       INNER JOIN tbkeg
         ON msmak.kdkegmsmak = tbkeg.kdkegtbkeg
WHERE  msmak.thmakmsmak = '2012'
GROUP  BY msmak.thmakmsmak



TIPS: bikinlah nama table dan nama field yang gampang dibaca dan diingat. dengan demikian kesalahan pemanggilan field/table dapat langsung diketahui.
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: Join Tabel Malah Berulang2

Postby wawo » 17 Jan 2012, 13:14

yang di tabel "msmak" itu kan saya tulis "KDKEGMSTRA", yang benar "KDKEGMSMAK".

jadi saya mau tampilkan total jumlah transaksi (JMLTRAMSTRA) yang berkode "2132", dan Total dana(DNMAKMSMAK) serta sisanya(SDMAKMSMAK) yang berkode 2132". jadi pengelompokannya itu berdasarkan tahun 2012 dan kode 2132.

seharusnya kan yang berkode "2132" total transaksinya = 300.000 (di tabel mstra),
total dananya = 5.235.000 dan sisa dananya = 4.935.000 (di tabel msmak).

saya sudah coba semua query di atas dan hasilnya sama. total transaksi yang seharusnya 300.000 malah jadi 1.200.000. total dana dan sisa dananya juga jadi 4 kali lipa.
wawo
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 16 Jan 2012, 10:36
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: Join Tabel Malah Berulang2

Postby vberror13 » 17 Jan 2012, 18:12

wawo wrote:saya sudah coba semua query di atas dan hasilnya sama. total transaksi yang seharusnya 300.000 malah jadi 1.200.000. total dana dan sisa dananya juga jadi 4 kali lipa.
:-? ah, masa query yang saya buat juga begitu? Kalo punya si oom, jelas bisa empat kali lipat, karena si oom pake cross join. Yang punya saya pake inner join, nggak mungkin berlebih.
Coba lihat lagi inner joinnya. Kata si oom, tadi salah kasi info (saya tulis "KDKEGMSTRA", yang benar "KDKEGMSMAK".). coba benarin dulu inner joinnya, pasti tokcer deh. :)
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: Join Tabel Malah Berulang2

Postby wawo » 18 Jan 2012, 00:12

inner join sama aja deh kayaknya dengan join (saya baca di buku) :D . om, tolong dong di coba langsung query nya. udah beberapa hari googling kesana kemari (jadi kayak ayu tingting) blum dapat2 juga solusinya. :-l :-l :-l . thanx om atas bantuannya.
wawo
Prajurit Dua
Prajurit Dua
 
Posts: 4
Joined: 16 Jan 2012, 10:36
Memberi kopi: 0 cangkir
Mendapat kopi: 0 cangkir

Re: Join Tabel Malah Berulang2

Postby vberror13 » 18 Jan 2012, 23:46

Join itu ada beberapa macam, oom
a. Cross join, semua value dari semua table ditampilkan, tidak peduli apakah foreignkeynya atau tidak
b. inner join, semua value dari field yang foreign keynya ada, yang tidak ada tidak ditampilkan.
c. outer join, semua value dari field yang foreignkeynya ada, dan yang tidak ada akan ditampilkan sebagai null.

Nah, apa nih yang oom maksud dengan "inner join sama aja deh kayaknya dengan join (saya baca di buku)" ? :>
Yakin deh dengan inner join pasti bisa, nggak kebanyakan sum-nya. :D
:ymbilly: :ymbilly: :ymbilly: =:) :ymbilly:
Just Because You Are Unique, Doesn't Mean You Are Useful
User avatar
vberror13
Global Moderator
Global Moderator
 
Posts: 1847
Joined: 13 Mar 2010, 20:34
Location: Medan Indonesia
Memberi kopi: 296 cangkir
Mendapat kopi: 321 cangkir

Re: Join Tabel Malah Berulang2

Postby ekaperintis » 18 Jan 2012, 23:53

@Wawo : silahkan di coba dulu lah om saran dan masukkan om vberror, khan beliau udah bilang pasti "TOKCER" <:D>
Image
User avatar
ekaperintis
Sersan Satu
Sersan Satu
 
Posts: 2088
Joined: 17 Mar 2010, 14:27
Location: Parungpanjang-Bogor
Memberi kopi: 82 cangkir
Mendapat kopi: 154 cangkir


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests