Adres Defteri Gibi bir şey düşünün.Kurumlara ait kayıtlar bir tabloda, Kişilere ait kayıtlar başka bir tabloda tutuluyor.İkisini birleştirip tek bir gridde kullanıcıya gösterilmesi gerekiyor ve Kişilere ait tabloda örneğin KişiId= alanına kurumsal bir kaydın IDsi girildiğinde o kaydın son kullanımda-listelemede Kurumsal kaydın altında gözükmesi gerekiyor.Join veya union gibi çeşitli seçeneklerle tabloları birleştirdim ama ortaya çıkan sonuç istediğim gibi olmadı maalesef..
Örneğin şöyle bir sorgu yazmıştım :
Kod: Tümünü seç
AdoQuery1.Close;
AdoQuery1.Sql.Clear;
AdoQuery1.Sql.Add('select ID,KUNVAN,KTELEFON1,KTELEFON2,KFAX from KURUMLAR'); //Kurum kaydınıda görebilmek için önce kurumTablosundan çekiyorum
AdoQuery1.Sql.Add('Union');
AdoQuery1.Sql.Add(' select Kurumlar.ID,Kurumlar.Unvan,Kisiler.KurumID,Kisiler.Adı,Kisiler.Soyadı From Kurumlar Left Join Kisiler On Kurumlar.Id=Kisiler.KurumId');
AdoQuery1.Open;
İlk Satırda evet Kurum Ünvanı Telefonu vs.
ikinci satırda bu kuruma bağlanmış bir çalışan-Kişi kaydı.Mantık doğru,çıktı doğru , ama görüntü yanlış. Çünkü Kuruma Bağlanmış kişi-çalışanın isminden önce kurum ismi de listeleniyor.. Bu eğer o kuruma 15 kişi bağlanmışsa Gridin FirmaÜnvan alanında 15 tane aynı firma ünvanı ismi demek oluyorki çok çirkin bir görüntü.. Bunu aşabileceğim bir yöntem varmı?
Şu Şekilde Bir Çıktı Yakalamam mümkün mü ? Tablo yapısına vs bir alan vs eklemem gerekli mi ?
FirmaÜnvanı Telefon1 Telefon2 KişiAdıSoaydı EvTelefon CepTelefon
Örnek1 AŞ------ **** ----- ****
----------------------------------------ÖrnekKişi----- ***----------*** //Örnek1 AŞ ye bağlanmış 1ci Kişi
----------------------------------------ÖrnekKişi------***----------*** //Örnek1 AŞ ye bağlanmış 2ci Kişi
Örnek2 AŞ------ **** ----- ****
Örnek3 AŞ------ **** ----- ****
----------------------------------------ÖrnekKişi------***----------*** //Örnek3 AŞ ye bağlanmış 2ci Kişi
----------------------------------------ÖrnekKişi------***----------*** //Hiç bir kuruma bağlanmamış kişi
Sanırım Biraz uzun oldu ama umarım derdimi anlatabilmişimdir.
Yardımlarınız için şimdiden teşekkür ederim..