İçsel Sorgu

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

İçsel Sorgu

Mesaj gönderen pro_imaj »

Merhaba,

Aşağıdaki işlemi nasıl yapabilirim acaba.
Liste

Kod: Tümünü seç

ürün  no
a     1
a     2
b     2
c     2
c     1
d     2
sonuç olarak

Kod: Tümünü seç

sonuc
liste
ürün  no
b     2
d     2
Yukarıdaki işlemde no kısmı 2 olan ve aynı ürünün no kısmı 1 olmayan ürünlerin listesi.

İçsel sorgu ile olması gerek ama bir türlü bu sonuca ulaşamıyorum.
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ben tam anlamadım, tablo tek mi iki mi?
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Ben de anlamadım....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Özür dilerim tam yazmamışım sizler söyleyince fark ettim.

Tek tablo var (üstteki) alttaki olmasını istediğim sonuç :oops:
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Deneme şansım yok ama bu şekilde olur gibime geliyor....
Olmazsa uniona çevirerek de denenebilir... Ama sonuçta hallolacağına şüphe yok...

Kod: Tümünü seç

select T1.URUN, T1.NO
from TABLO T1
where T1.NO=2 or (T1.URUN in (select T2.URUN from TABLO T2 where T2.NO=2) and T1.NO<>1)
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Fahrettin abi.

Değerli cevabın için çok teşekkür ederim.

Hocam içsel sorgularla ilgili baya bir proplemim var. Mantığını tam olarak kavrayamıyorum, bu yüzden tam olarak derleyemedim şöyleki.

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum
from Uretim T1 
Yukarıdaki kod ile içsel sorgunun ilk seçimi çalışıyor hocam.

Yukarıda soruda sorduğum
ürün:=Adi
no:=Nereden

Hocam nasıl olacak acaba ben son olarak şöyle yaptım ama olmadı

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum
from Uretim T1 
Where T1.Nerede=2 or (T1.Adi in(select T2.Adi from Uretim T2 Where T2.Nereden=2)and T1.Nereden<>1) 
Yukarıdaki şekilde hata veriyor hocam. (SQL Explorer ile yaptığımdan hatanın ne olduğunuda anlayamıyorum :oops:

Saygılarımla.
Teşekkür ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum
from Uretim T1
Where T1.Nereden=2 or (T1.Adi in(select T2.Adi from Uretim T2 Where T2.Nereden=2)and T1.Nereden<>1) 
Kod aynen bu ise ufak bir hata var ...
3. satirda

Kod: Tümünü seç

Where T1.Nerede=2
yazmışsınız...

Kod: Tümünü seç

Where T1.Nereden=2
olmalı...
Bunun dışında görebildiğim kadarı ile bu kodun paradoxta bile çalışması lazım... Veritabanınız nedir?
Bir de verdiği hatayi yazarsanız daha iyi olur... Belki ne olduğunu anlayan biri çıkar aramızdan....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Fahrettin abi :oops:
Size ne kadar teşekkür etsem azdır. Sonunda çözüldü ve sizin belirttiğiniz şekilde Nereden yazacağım yere Nerede yazmışım :oops:

Sizin son yazdığınız kod bloğu ile sonuca ulaştım fahrettin abi.

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum 
from Uretim T1 
Where T1.Nereden=2 or (T1.Adi in(select T2.Adi from Uretim T2 Where T2.Nereden=2)and T1.Nereden<>1) 
Elinize sağlık abi En kısa sürede bu içsel sorguları öğrenmem gerek baya zorlanıyorum abi. Sizin bildiğiniz bir kaynak varmı acaba bu konuda.

Teşekkürler.

Saygılarımla
Çalışmalarınızdaki başarılarınızın daim olması dileğiyle.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Fahrettin abi abi içsel sorguda hangi neyi seçtiriyoruz acaba yani şöyle bir sorun varda.

Aşağıdaki veri tabanında bilgilet mevcut vt ismi Uretim

Kod: Tümünü seç

Kod          Adi           Adet       Nereden       Durum
1          Bilgisayar      2              1              Giris
1          Monitör          2               2              Cikis
1          Hard Disk       4              2              Cikis
1          Monitör          2               1              Giris

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum 
from Uretim T1 
Where T1.Nereden=2 or (T1.Adi in(select T2.Adi from Uretim T2 Where T2.Nereden=2)and T1.Nereden<>1) 
Bu kod ile listelediğimde
aşağıdaki sonucu alıyorum

Kod: Tümünü seç

Kod	Adi         Adet        Nereden      Durum
1	Monitör	2               2              Cikis
1	Hard Disk	4               2              Cikis
Halbuki

Kod: Tümünü seç

1	Hard Disk	4	2	Cikis
Bu sonucu döndürmesi gerekiyor.

Not: Balık tutturmak oldu bu biliyorum fahrettin abi ve çok özür diliyorum. Bu üretim programına girdim gireli ben bende değilim. :cry:

Saygılarımla
En son pro_imaj tarafından 17 Eki 2005 03:25 tarihinde düzenlendi, toplamda 5 kere düzenlendi.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

problemin halledilmesine sevindim...
Bu konuda bildiğim kaynak... Delphiturkiyenin veritabanı ve sql seminerleri... :)
Orada bu tarz örnekler yapmıştık...
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Fahrettin abi.

Seminerleri izliyorum fırsat buldukça ama 8. semöinerden sonrasına gelemedim henüz eksikliklerimi tamalıcam en kısa sürede :)

Fahrettin abi. ikimizde galiba aynı anda yazdık. sorun tam çözlmedi bir üstteki msj'ma bakarsan sevirim abi. :oops:

Teşekkürler.
Saygılarımla
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Bence sonuç doğru yani sorunuzdan benim anladığım buydu zaten....

O zaman monitore ait nereden alanı 1 olan bir kayıt olduğu için bu listee girmeyecek öyle mi?

Eğer dopru anladıysam o zaman da şöyle olmalı gibime geliyor...

Kod: Tümünü seç

select T1.Kod,T1.Adi,T1.Adet,T1.Nereden,T1.Durum
from Uretim T1
Where T1.Nereden=2 and not exists(select 1 from Uretim T2 Where T1.Adi=T2.Adi and T2.Nereden=1) 
Çıkmam gerekiyor apar topar yazdım ama hata yapmamışımdır inşallah.....
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba,

Fahrettin Abi Çok saol Bu sefer sonucu gördüm dediğin oldu. :)

Çok teşekkür ederim.
Allah (cc) sizden razı olsun hocam.

Sorunla birebir ilgilendiniz.

Saygılarımla
Çalışmalarınızda başarılar hocam.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla