Kod: Tümünü seç
SELECT BOR.C13SIRKOD, BOR.C13ODEYIL, BOR.C13ODESNO, BOR.C13CALKOD,
BOR.C13KESTOP, BOR.C13NETMAAS, PER.B79SABKAZ1, PER1.Z5CALADI,
PER1.Z5CALSOY, PER1.Z5DEPKOD, PER1.Z5GRVKOD1
FROM VPERLIB.BORDROF BOR,
VPERLIB.PERBRDF PER,
VPERLIBP.PERMASF PER1
WHERE BOR.C13CALKOD=PER.B79CALKOD
AND BOR.C13CALKOD=PER1.Z5CALKOD
AND (BOR.C13CALKOD = '03311'
OR BOR.C13CALKOD = '03312')
AND BOR.C13ODEYIL = 2006
Ben ne yapmak istediğimi yazayım ona göre öneriniz varsa tartışalım.
A tablosu
sicilleri ve isim soy isim ile görev kodlarını tutuyor.
B tablosu
Sicil bazında aylara göre ödemeleri tutuyor.
C Tablosu
sicil bazında ek ödemelerin tutulduğu bir tablo
D tablosu ise
Görev kodlarının ve açıklamalarının tutulduğu bir yer
Şimdi yapmak istediğimiz şu;
Ayrılan personellerden kafadan kurtulmak için masterfile ı bordro olarak alıyoruz (B tablosu) sonra burdan ilgili ayın kaydına bakarak net maaş ve kesinti kolonlarını çekiyoruz. C tablosundan adamın ek ödemesini çekiyoruz. İstediğimiz aylık olarak departman bazında maaş maliyeti. örneğin 50 görev bilgi işlemin kodu. 50 kodlu personellerin aylık maliyeti gibi.
Şimdi yukardaki kod bunu yapıyor. Ama group by deyince çakılıp kalıyor. İşin tuhafı Tablo Adan işe başlarsam işten çıkmış personeller hala duruyor.
İşin en kötü yanı görev kodlarının açıklamalrınada alayım deyince başlıyor. Yukarda ABCD tablolarının hepsinde Personel Sİcil no KEY ve bu açıdan sorun yok. Ama D tablosunuda göreev kodu üzerinde join edeyim dediğim zaman her kayıt 30 40 kere geliyor. kısaca kartezyen çarpım oluyor.
Ne yapacam şaştım. Bu join vs güzelce anlatan bir kaynak yokmu ya. Query builder ile yapıyorum genede değişmiyor sonuç..
Saygılar