Forum
Merhabalar sorunum şu şekildedir.
"Kişiler", "Kişi_İş_Liste" ve "İşler" tablosundan veri çekmek istiyorum.
Lakin aynı işi birden fazla kişi yapabilmekte yada bir kişi birden fazla işi yapabiliyor.
Bir Kişinin hangi işleri yaptığını yazdırıyorum. A kişisi ile B kişisinin ortak hangi işleri yaptığını nasıl yazdırabilirim
Kişiler Kişi_İş_Liste İşler
--------------------------------------------------------------------------------
KişiID KişiID,İşID İşID
A A,1 1
B B,1 2
C B,2 3
Teşekkürler.
Verdiğiniz örnekte canlandırma yapabilir miyiz ?
A kişisi 1 numaralı işi yapıyor,
B kişisi 1 numaralı iş için A kişisine yardım ediyor ayrıca 2 numaralı işi yapıyor gibi.
Evet aynen öyle, A kişisi 1 numaralı işi ya tek başına yapıyordur ya da b kişisi ile beraber yapıyordur.
Kişi_İş_Listeye kayıt atanırken KişiID(1)|İşID(1) aynı işi birden fazla kişi yapıyorsa KişiID(1)|İşID(1), sonraki Satıra KişiID(2),İşID(1) olarak atılıyor.
Yani tablonun her satırında bir kişi ve bir iş tutuluyor.
Bir kişi, bir işi hem tek başına hem de birden fazla kişi ile yapıyormuş gibi görünemez.
Kişi_İş_Listesindeki Satırları tek tek yazdırırsak her kişiye bir iş düşer.
Toplu baktığımızda ise kişiyi baz alarak yazdırırsak kişinin yaptığı işleri, işi baz alarak yazdırırsak o işi yapanların listesini alabiliriz.
Sorunu şöyle çözmeyi planlıyorum, daha akılcı bir yöntem varsa henüz bilmiyorum.
Kişi_İş_Listesi tablosuna yeni iki alan daha ekliyorum. Bir tanesi evet hayır olarak işaretlenecek Çokluİş alanı.
Eğer işin karşısındaki Çokluİş alanı hayır olarak işaretlenmiş ise KişiID="1" ve Çokluİş="hayır" dersem sadece o kişinin yaptığı işleri getirebilirim.
İkinci alan ise KişiIDLER olacak. Bir işi birden fazla kişi yapmışsa bu alana virgül ayracı ile KişiIDleri atanacak.
İkinci Sorguda KişiIDleri aynı olanları çağırarak, aynı işleri yapmış olan kişilerin kaç ortak iş yapmış olduğunu bulacağım. Ayracı split ederekte bunların kimler olduğunu bulacağım.
Umarım doğru mantık kuruyorumdur.