Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: tam karşılaştırma için ne yapmalıym ?  (Okunma sayısı 270 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Joker

  • Delphi 2 Level 2
  • **
  • İleti: 61
  • Rep: +0/-1
tam karşılaştırma için ne yapmalıym ?
« : 15 Kasım 2011 15:27:08 »
tablo1 den X alanı ile tablo2 deki Y alanlarını çekiyorum.
Tablo1.X alanındaki veriler 1-2-3-4 olsun...
Tablo2.Y alanındaki verilerle tam EŞLEŞME sağlandığında sorgu çalışssın ? yani Tablo2 de 1-2-3 var ama 4 yoksa geriye null dönsün istiyorum.

lef join ile birleştirdğim tablo sayısı çok fazla kriterlerim çok ayrıntıya girmeden en basit bu hale indirebildim :) yardımcı olabilirseniz sevinirim..


Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #1 : 15 Kasım 2011 17:34:01 »
Kod: [Seç]
select * from tablo1
left join tablo2 on tablo1.X=tablo2.Y
sorgusundan
Kod: [Seç]
X         Y
---       ---
1         1
2         2
3         3
4        Null
sonucu çıkar.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı Joker

  • Delphi 2 Level 2
  • **
  • İleti: 61
  • Rep: +0/-1
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #2 : 15 Kasım 2011 19:33:30 »
durum şu işte o null olursa bu tablo gelmesin..Boş satır dönsün istiyorum..
Olayın biraz daha ayrıntısını vermek istiyorum..

Bir tablodan belli bir sütun değeri alıyorum opno=3 bu değeri bir başka tablonun sütunudan aratıyorum..diyelimki arattığım sütunun iki satırında buldu..Bulduğu satırlardaki iki farklı satır değerini sorguladığım bir birbaşka tabloda olması şartı var.Yani o satırlardaki değerlerden bir tanesi bile olmaz ise bana boş sonuç döndürsün..

tablo1 den opno yu alıyorum (3)
tablo2 nin oncelik sütununda opnoya denk gelen satırları alıyorum (2 satır denk geldi)
Tablo2 den çekilen o iki satırın mamul_kodu sütunlarında iki farklı değer var diyelimki 1234 ve 5678 bunlarıda
tablo3 de aratıyorum ve bu iki değerden bir tanesi dahi yoksa olursa boş sonuç gelsin..

Bir türlü çıkamadım işin içinden..
« Son Düzenleme: 15 Kasım 2011 19:36:23 by Joker »

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #3 : 16 Kasım 2011 06:50:53 »
Verdiğiniz bilgilerde eksik nokta kalmış olabilir, tablo1 - tablo3 arasında herhangi bir bağ var mı? Eğer tüm bağlantılı yapıyı tablo1, tablo2 ve tablo3'ü 2-3 kayıtla örnekleyip sonuçta elde etmek istediğiniz listenin de bir örneğini basitçe liste olarak yazarsanız yapıyı anlatmanıza bile gerek kalmayabilir.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı Joker

  • Delphi 2 Level 2
  • **
  • İleti: 61
  • Rep: +0/-1
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #4 : 16 Kasım 2011 08:34:25 »
hemen şöyle bir tablo oluşturalım..
Tablo1 alanları:
isemrino/miktar/makine_no/operasyon_no/planlanan_personel/opno

Tablo2 alanları:
isemrino/mamulkodu/ham_kodu/miktar_kalem/opr_bil/opno/açıklama/istkodu/oncelik/

tablo3 alanları:
irsaliye_no/stok_kodu/depo_kodu/sıra

tablo4 alanları
stok_kodu/stok_adi/stokgrubu


istediğim sonuç tablo1 den tek satır isemrino/miktar/makine_no/operasyon_no/planlanan_personel bu satırada şu şekilde ulaşmam lazım ve
orataya çıkacak sonuç şu kritere bağlı olmalı..

tablo1 den tablo2 ye ulaşıyoruz,tablo2 de oncelik alanının ve işemri alanının tablo1 deki opno ve işemri ile karşılaştırıp sonuçları alıyoruz, akabinde ortaya çıkan sonuçların ham_kodu ve işemri alanlarını tablo 3 içerisinde kontrol ediyoruz
Tablo2 deki ham_kodu alanlarının eksiksiz olarak tablo3 de bulunması gerekiyor..
tablo2 de ulaştığım ham_kodlarından 1 tanesi bile tablo3 stok_kodu alanlarında yoksa sonuç sıfır...


birde tablo 4 var :) ama onun ilgili bir sıkıntı yaşamam..Orada tablo1,tablo2 ve tablo üçten gelecek sonuçların açıklamaları tutuluyor..Bi şekilde onu çıkartırım..fakat dediğim gibi karşıma gelecek sonuç listesi tek satır..O satırında gelip gelmemesi tamamen yukarıda anlattıklarım ile bağlantılı..

Umarım kısmende olsa anlatabildim...
İlgin için çok teşekkürler..
« Son Düzenleme: 16 Kasım 2011 08:39:28 by Joker »

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #5 : 16 Kasım 2011 13:28:18 »
..ortaya çıkan sonuçların ham_kodu ve işemri alanlarını tablo 3 içerisinde kontrol ediyoruz  ????? ?? ?? ?????
Tablo2 deki ham_kodu alanlarının eksiksiz olarak tablo3 de bulunması gerekiyor..
Hangi alanlardan ilişki kurulacak. Tablo3'ten hangi alanlarla ilişkiler kuruluyor belirtimemiş.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı Joker

  • Delphi 2 Level 2
  • **
  • İleti: 61
  • Rep: +0/-1
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #6 : 16 Kasım 2011 13:33:00 »
tablo2 deki ham_kodu ve işemri alanı tablo3 deki irsaliye_no ve stok_kodu ile ilişkilendirilecek..


Çok teşekkürler..
« Son Düzenleme: 16 Kasım 2011 13:33:41 by Joker »

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #7 : 17 Kasım 2011 11:22:26 »
Kod: [Seç]
select * from Tablo1 as t1
inner join Tablo2 as t2 on t1.opno=t2.oncelik and t1.isemrino=t2.isemrino
inner join Tablo3 as t3 on t2.ham_kodu=t3.irsaliye_no and t2.isemri=t3.stok_kodu
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı Joker

  • Delphi 2 Level 2
  • **
  • İleti: 61
  • Rep: +0/-1
Ynt: tam karşılaştırma için ne yapmalıym ?
« Yanıtla #8 : 18 Kasım 2011 17:36:04 »
Teşekkürler barutali derleyip sonucu bildiricem..

Kolay gelsin..