hocam sorun oradan da kaynaklanmiyor... update i kaldirdim yalnizca insert i biraktim sonuc yine ayni...
soruyu söyle toparlayayim...
iki adet tablo var. birincisi master tablo (isciler) ikincisi detail tablo (hasta)... matser tabloda isciye ait olan (hasta) field i kimi zaman degistirmem icab ediyor. bu alan smallinteger olarak tanimli ve 0 veya 1 olarak islenmesi gerekiyor...
örnegin isci telefon etti ve bugünden itibaren istirahatte oldugunu üc gün ise gelemeyecegini bildirdi. ben detail tabloya bilgi girisi yapiyorum.
***********************
isci_id
baslangic
bitis
***********************
bu tabloda bir islem gerceklestiginde master tabloda hasta field i 1 olmali... yalniz bunu yaparken case ile iki sart uyguluyorum.
Kod: Tümünü seç
baslangic >= date and bitis <= date
yukarida belirttigim detail tablonun trigger inde after insert ve after update den sonra su sekilde kullaniyorum...
Kod: Tümünü seç
update isci set hasta= (case when old.baslangic>=date and old.bitis<=date then 1 else 0 end) where isci_id = old.isci_id;
isci istirahate cikmadan bir önceki gün hasta oldugunu bildiremez. ve yine istirahatten döndükten sonra ben hastaydim onun icin gelemedim diyemez. bundan dolayi case'i sartlandirmaliyim...