Dear Pak Hery,

mau coba bantu menjelaskan :)

UPDATE TEMP_SELLOUT_ MP_HY SET ID = 
(SELECT ID FROM REF_TOKO WHERE NAMA IN
(
    SELECT NAMA_TOKO FROM TEMP_SELLOUT_ MP_HY WHERE KOTA = 'YOGYAKARTA6' AND    
 NAMA_MALL = 'RAMAIMALL'
) 
) WHERE KOTA = 'YOGYAKARTA6' AND NAMA_MALL = 'RAMAIMALL'

kenapa query itu kalau dijalankan akan keluar error seperti ini
Error at line 1
ORA-01427: single-row subquery returns more than one row
 
hal itu dikarenakan query yang saya bold dan warnai biru diatas.
jika query yang warna itu dijalankan sendiri ada kemungkinan bisa mengembalikan 
lebih dari satu nama_toko.

Lalu bapak mengambil ID dari REF_TOKO yang mana berasal dari subquery yang 
kemungkinan memberikan hasil balik/ return lebih dari satu nilai, bisa jadi ID 
nya return multiple value.

Efek nya di query yang warna hijau, bapak mau update TEMP_SELLOUT_MP_HY dengan 
single nilai ID menggunakan operand ''='' (yang arti nya hanya memiliki 1 
nilai).

tetapi query itu akan return error karena nilai yang diharapkan single ternyata 
multiple karena subquery dibawahnya return multiple value.

solusi: ubah subquery sehingga hanya menghasilkan return single value

CMIIW.

Regards,
Febry Kurniawan



________________________________
From: Subekti Pranoto <[email protected]>
To: [email protected]
Sent: Wed, March 10, 2010 5:05:30 PM
Subject: Re: [indo-oracle] single rows sub query return more than rows

  
mungkin hasil query ini bisa membantu. 

select ID, KOTA, NAMA_MALL
from TEMP_SELLOUT_ MP_HY 
where KOTA = 'YOGYAKARTA6' AND NAMA_MALL = 'RAMAIMALL'

SELECT ID, NAMA 
FROM REF_TOKO 
WHERE NAMA IN
(SELECT NAMA_TOKO 
FROM TEMP_SELLOUT_ MP_HY 
WHERE KOTA = 'YOGYAKARTA6' AND NAMA_MALL = 'RAMAIMALL')

SELECT NAMA_TOKO 
FROM TEMP_SELLOUT_ MP_HY 
WHERE KOTA = 'YOGYAKARTA6' AND NAMA_MALL = 'RAMAIMALL'

jika bapak paham output yang dihasilkan dari query itu, maka bapak akan 
menemukan jawaban pertanyaan bapak.
semoga membantu.

regard,
subekti

----- Original Message ----- 
From: hery_777 
To: indo-oracle@ yahoogroups. com 
Sent: Wednesday, March 10, 2010 4:54 PM
Subject: [indo-oracle] single rows sub query return more than rows

ini adalah code sql 

UPDATE TEMP_SELLOUT_ MP_HY SET ID = (SELECT ID FROM REF_TOKO WHERE NAMA 
IN(SELECT NAMA_TOKO FROM TEMP_SELLOUT_ MP_HY WHERE KOTA = 'YOGYAKARTA6' AND 
NAMA_MALL = 'RAMAIMALL') ) WHERE KOTA = 'YOGYAKARTA6' AND NAMA_MALL = 
'RAMAIMALL'

Error at line 1
ORA-01427: single-row subquery returns more than one row

Apa yang salah ya.??? 

[Non-text portions of this message have been removed]





      

[Non-text portions of this message have been removed]

Kirim email ke