Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen cvheneburi »

Merhabalar. ürünler ve ürün hareketleri diye iki tablom var. master detail olarak dbgridlerde ekrana getiriyorum kayıtları fakat ürün hareketleri tablosunda kayıt olmamasına rağmen raporlamada master alanında ürün bilgileri gözüküyor. ben detail tabloda hareket kaydı olmayan ürünlerin raporlama da gözükmesini istemiyorum. bunu nasıl gerçekleştirebilirim. veritabanım firebird. teşekkür ederim
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen yusuf simsek »

Hayırlı Günler

MASTER - DETAIL arasında ki bağlantıyı LEFT JOIN yerine INNER JOIN ile yaparsanız sorununuz çözülecektir.
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen cvheneburi »

yusuf simsek kardeşim teşekkür ederim ilginden dolayı.

select * from stokkart INNER JOIN STOKHAREKET ON stokkart.stokkartid=stokhareket.stokkartid
where stokhareket.stokkartadi<>''

bu şekilde kullanıyorum zaten inner join i fakat bu sefer de bir üründen stokhareket tablosunda birden fazla kayıt olduğu için o ürünü birden fazla listeliyor
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen yusuf simsek »

Rapor ekranında almak istediğiniz sonuç nedir? Ona göre sorguyu kurgulayalim
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen mrmarman »

Merhaba.

- Master / Detail tablo ilişkisini iki farklı DBGrid ile görüntülüyorsanız, JOIN yapmayın.
- Master DBGrid'in SQL'ini ( farklı bir Query ile ) yapılandırın, sonra onun OnAfterScroll eventinde Detail'e ait DBGrid'in SQL'ini hazırlayın. JOIN için kullandığınız ilişki ikinci Query için anahtar niteliğinde olacatır.
Resim
Resim ....Resim
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen cvheneburi »

master dbgrid de ürünler tablosundaki ürünleri gösteriyorum detail dbgrid de ise master dbgrid de seçili olan ürüne ait hareketleri. birbirlerine master/detail soruce ile bağlı. farklı bir kod yazmadım onlar için. benim isteğim raporlama kısmında örneğin stok girişi yapılan ürünlerin listesini almak istiyorum master / detail olarak
üst satırda ürünler tablosundaki ürünün bilgileri
altında o ürüne ait seçili tarihler arasındaki ürün hareketleri

tek ürün için aldığım zaman raporlamamda sıkıntı yok fakat hepsini listele dediğim zaman hem ürünler tablosunda fazla kayıt olduğundan dolayı hazırlaması uzun sürüyor hemde hareki olmayan ürünleri de listeliyor

ben hepsini dediğim zaman hareket tablosunda hareketleri olan ürünlerin detaylı hareket listesini almak istiyorum
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen mrmarman »

Anladığım odur ki, hateketi olmayan ürünün Master DBGrid'den filtrelenmesini istiyorsunuz. O zaman yine join'den vazgeçin diyorum. Master SQL sorgusunda WHERE AnaTablo.Kayno in (Select....) şeklinde hareket olanların masterini sadeleştirin.

Master'dan sadece bir veya birden fazla seçili kaydın detayını alacaksanız da ek bilgi vereyim DBGrid kayıtlarını Dbdrid ve Bookmark anahtar kelimelerini aratın, seçili kayıtların kayıt nolarını Detail tablonun SQL querysine vererek gereken kayıtları çekebilirsiniz.
Resim
Resim ....Resim
cvheneburi
Üye
Mesajlar: 95
Kayıt: 07 Eki 2010 03:55

Re: Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen cvheneburi »

mrmarman bey teşekkür ederim ilginiz için sorguyu şu şekilde yazınca sorunum çözüldü tekrar teşekkür ederim.
select * from stokkart where stokkartid in (select stokkartid from stokhareket)
Cevapla