Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

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

Master Tablo İçin Detay Tabloda Olmayan Kayıtlar

Mesaj gönderen cvheneburi » 23 Oca 2019 08:41

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: 307
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 » 23 Oca 2019 12:44

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: 84
Kayıt: 07 Eki 2010 02:55

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

Mesaj gönderen cvheneburi » 24 Oca 2019 07:24

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: 307
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 » 24 Oca 2019 08:10

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: 4731
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

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

Mesaj gönderen mrmarman » 24 Oca 2019 08:23

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

cvheneburi
Üye
Mesajlar: 84
Kayıt: 07 Eki 2010 02:55

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

Mesaj gönderen cvheneburi » 24 Oca 2019 09:01

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: 4731
Kayıt: 09 Ara 2003 08:13
Konum: Ankara
İletişim:

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

Mesaj gönderen mrmarman » 24 Oca 2019 10:00

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

cvheneburi
Üye
Mesajlar: 84
Kayıt: 07 Eki 2010 02:55

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

Mesaj gönderen cvheneburi » 24 Oca 2019 10:14

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