Author Topic: Bisakah Gabung tiga table dalam satu query?  (Read 160 times)

0 Members and 1 Guest are viewing this topic.

Offline abunuralif

  • Full Member
  • *
  • Posts: 52
Bisakah Gabung tiga table dalam satu query?
« on: November 13, 2018, 03:31:54 PM »
Misalkan saya punya tabel sbb:
Jual
-----------------------
idjual  Nilai
-----------------------
1       10.000
2       20.000
3       30.000

ReturJual_Jual
---------------------------------------
idReturJual_jual   idReturJual   idJual
---------------------------------------
1                               1          1
2                               2          1
3                               3          2
4                               4          3
5                               5          3
6                               6          3
--------------------------------------

ReturJual
-------------------
idReturjual Nilai
-------------------
1              100
2              150
3              200
4              250
5              300
6              350
-------------------

OUTPUT QUERY:
------------------------------------
idjual Nilai Jual Jumlah Retur Net Jual
------------------------------------
1       10.000    250                    9.750
2       20.000    200                  18.800
3       30.000    900                  29.100
-----------------

Pertanyaannya:
Bagaimana Query nya utuk menampilkan hasil query seperti diatas ?

Saya coba seperti ini :
SELECT X.IDJUAL,c.idretjual FROM JUAL X
LEFT JOIN (
 SELECT A.IDJUAL,A.IDRETJUAL,SUM(B.NILAI) AS NILAI FROM RETJUAL_JUAL A
LEFT JOIN RETJUAL B ON A.IDRETJUAL=B.IDRETJUAL
GROUP BY A.IDJUAL
) AS c ON x.idjual=c.idjual

saya coba yang didalamnya, hasilnya benar
<quote>
 SELECT A.IDJUAL,A.IDRETJUAL,SUM(B.NILAI) AS NILAI FROM RETJUAL_JUAL A
LEFT JOIN RETJUAL B ON A.IDRETJUAL=B.IDRETJUAL
GROUP BY A.IDJUAL
</quote>
tapi setelah saya gabungkan ,kok jadi NULL hasilnya


Terimakasih sobat-sobat fox-id
« Last Edit: November 13, 2018, 03:33:27 PM by abunuralif »

Offline dan2y

  • Senior Member
  • *
  • Posts: 576
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #1 on: November 13, 2018, 04:28:07 PM »
OUTPUT QUERY:
------------------------------------
idjual Nilai Jual Jumlah Retur Net Jual
------------------------------------
1       10.000    250                    9.750
2       20.000    200                  18.800
3       30.000    900                  29.100
-----------------

itu yg warna merah ngambil dari mana??

Offline abunuralif

  • Full Member
  • *
  • Posts: 52
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #2 on: November 13, 2018, 04:37:29 PM »
OUTPUT QUERY:
------------------------------------
idjual Nilai Jual Jumlah Retur Net Jual
------------------------------------
1       10.000    250                    9.750
2       20.000    200                  18.800
3       30.000    900                  29.100
-----------------

itu yg warna merah ngambil dari mana??
itu di dapat dari pengurangan Nilai Jual- Retur
10.000-250 = 9.750
20.000-200 = 19.800  ---> maaf salah hitung, disana 18.800 seharusnya 19.800
30.000-900=29.100

Offline dan2y

  • Senior Member
  • *
  • Posts: 576
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #3 on: November 13, 2018, 04:58:30 PM »
di lihat dari struktur tabelnya jadi bingung mau bikin query relasi  :happy2:

Offline dan2y

  • Senior Member
  • *
  • Posts: 576
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #4 on: November 13, 2018, 05:00:08 PM »
coba ga pakai relasi seperti ini
Code: [Select]
create cursor output (idjual c(1),nilai n(5,3),jml_retur n(5),net_jual n(5,3))
sele jual
scan
cid=idjual
cnil=nilai
cnilairetur=0
sele returjual_jual
scan for idjual=cid
cidretjual=idreturjual
sele returjual
locate for idreturjual=cidretjual
if found()
cnilairetur=cnilairetur+returjual.nilai
endif 
endsca

sele output
appen blank
repl idjual with cid
repla nilai with cnilai
repla jml_retur with cnilairetur
repla net_jual with cnilai-cnilairetur
endsca

sele output
brow

hasilnya ga tau soalnya ga ada datanya, jdi cuma berdasarkan logika saja :icon_biggrin:
« Last Edit: November 13, 2018, 05:02:17 PM by dan2y »

Offline abunuralif

  • Full Member
  • *
  • Posts: 52
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #5 on: November 13, 2018, 05:36:54 PM »
jalan terakhir pake coding di vfp..
tapi saya terus terang penasaran, apakah bisa dalam satu query semisal memanfaatkan penggabungan query, biar dilaporan hanya satu eksekusi langsung kita terima Cursornya he he


Offline rnd

  • Hero Member
  • *
  • Posts: 1.277
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #6 on: November 13, 2018, 10:08:10 PM »

SELECT a.idjual, a.nilai, b.returrp, a.nilai - b.returrp FROM jual a
LEFT JOIN  (SELECT b.idjual, SUM(x.nilai) AS  returrp FROM returjual_jual x LEFT JOIN returjual z ON z.idreturjual = x.idreturjual GROUP BY x.idjual) b ON b.idjual = a.idjual 

Ngak test ya, harusnya sih bisa

Offline abunuralif

  • Full Member
  • *
  • Posts: 52
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #7 on: November 14, 2018, 07:51:50 AM »

SELECT a.idjual, a.nilai, b.returrp, a.nilai - b.returrp FROM jual a
LEFT JOIN  (SELECT b.idjual, SUM(x.nilai) AS  returrp FROM returjual_jual x LEFT JOIN returjual z ON z.idreturjual = x.idreturjual GROUP BY x.idjual) b ON b.idjual = a.idjual 

Ngak test ya, harusnya sih bisa

Alhamdulillah ternyata dengan query diatas bisa sukses, jadi ketemu persoalannya yang meskipun saya nggk ngerti juga.
Query saya dibawah ini asalnya :
Quote
SELECT X.IDJUAL,c.idretjual FROM JUAL X
LEFT JOIN (
 SELECT A.IDJUAL,A.IDRETJUAL,SUM(B.NILAI) AS NILAI FROM RETJUAL_JUAL A
LEFT JOIN RETJUAL B ON A.IDRETJUAL=B.IDRETJUAL
GROUP BY A.IDJUAL
) AS c ON x.idjual=c.idjual

ditambah kolom query seperti dibawah ini,menjadi sukses:
Quote
SELECT X.IDJUAL,c.idretjual  ,c.nilai,x.netnilai FROM JUAL X
LEFT JOIN (
 SELECT A.IDJUAL,A.IDRETJUAL,SUM(B.NILAI) AS NILAI FROM RETJUAL_JUAL A
LEFT JOIN RETJUAL B ON A.IDRETJUAL=B.IDRETJUAL
GROUP BY A.IDJUAL
) AS c ON x.idjual=c.idjual

hanya ditambahin c.nilai,x.netnilai
terus terang saya nggk ngerti, seharusnya kolom ini saja (select X.IDJUAL,c.idretjual) kolom akan muncul, tapi malah idretjual bernilai NULL.
Setelah ditambahin c.nilai,x.netnilai .... kolom c.idretjual tidak bernilai NULL tapi ada nilainya.

Terima kasih sobat

Offline dan2y

  • Senior Member
  • *
  • Posts: 576
Re: Bisakah Gabung tiga table dalam satu query?
« Reply #8 on: November 14, 2018, 08:21:11 AM »

SELECT a.idjual, a.nilai, b.returrp, a.nilai - b.returrp FROM jual a
LEFT JOIN  (SELECT b.idjual, SUM(x.nilai) AS  returrp FROM returjual_jual x LEFT JOIN returjual z ON z.idreturjual = x.idreturjual GROUP BY x.idjual) b ON b.idjual = a.idjual 

Ngak test ya, harusnya sih bisa

mantap om rnd :thumbsup: