sorgu icine sorgu?

Oracle veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
metemete
Üye
Mesajlar: 422
Kayıt: 21 Mar 2004 12:30
Konum: samsun
İletişim:

sorgu icine sorgu?

Mesaj gönderen metemete » 11 Kas 2009 09:07

5 nolu lokasyonun fiyatlarını almak icin

Kod: Tümünü seç

SELECT tbl_urunler.urunid, tbl_urunler.kod, tbl_urunler.aciklama,

           (SELECT netfiyat
              FROM (SELECT * FROM myasoft_001.tbl_fiyatlar  WHERE  (tbl_fiyatlar.lokasyonno = 5)) drv
             WHERE (drv.urunid = tbl_urunler.urunid) AND ROWNUM <= 1) AS sfiyat

  FROM myasoft_001.tbl_urunler
sorunsuz calısıyor
fakat tüm lokasyonların fiyatını almak 5 yerine tbl_lokasyonlar.lokasyonno diyorum hata veriyor alanı tanımıyor sanırım?
bu sorguyu nasıl çözerim yardımlütfen?
ORA-00904: "TBL_LOKASYONLAR"."LOK_NO": invalid identifier

Kod: Tümünü seç

SELECT tbl_urunler.urunid, tbl_urunler.kod, tbl_urunler.aciklama,

           (SELECT netfiyat
              FROM (SELECT * FROM myasoft_001.tbl_fiyatlar  WHERE  (tbl_fiyatlar.lokasyonno = tbl_lokasyonlar.lok_no)) drv
             WHERE (drv.urunid = tbl_urunler.urunid) AND ROWNUM <= 1) AS sfiyat

  FROM myasoft_001.tbl_urunler,myasoft_001.tbl_lokasyonlar

destiny24
Üye
Mesajlar: 131
Kayıt: 22 Tem 2010 08:42

Re: sorgu icine sorgu?

Mesaj gönderen destiny24 » 08 May 2013 08:12

bence alanları değil tabloyu tanımıyor olabilir. Onun için tablolarına isim vererek kullan her zaman.

Örn./ Select a.urunid, a.kod, a.ciklama from tbl_urunler As a

mkysoft
Kıdemli Üye
Mesajlar: 2812
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: sorgu icine sorgu?

Mesaj gönderen mkysoft » 13 May 2013 06:42

tbl_lokasyonlar tablosunu select kısmında kullanmışsınız ama verilerini from kısmında getirmişsiniz bu nedenle tanımaz. bir alt sorgu daha kullanmalsınız.

Kod: Tümünü seç

SELECT tbl_urunler.urunid, tbl_urunler.kod, tbl_urunler.aciklama,

           (SELECT netfiyat
              FROM (SELECT * FROM myasoft_001.tbl_fiyatlar  WHERE  (tbl_fiyatlar.lokasyonno in (SELECT lok_no FROM tbl_lokasyonlar))) drv
             WHERE (drv.urunid = tbl_urunler.urunid) AND ROWNUM <= 1) AS sfiyat

  FROM myasoft_001.tbl_urunler,myasoft_001.tbl_lokasyonlar

Cevapla