Skip to main content

AccessTr.neT


sorgu içinde case kullanımı

sorgu içinde case kullanımı

Çözüldü #1
Merhaba,

Personele ait yıllık izinleri sorgu içinde gün farklarına göre case ile hesaplamaya çalışıyorum, yalnız sorgu içinde Case kısmından sonra hata veriyor. 
SELECT Tb_Personel_son.Sicil, Tb_İzin_Tah.Adi_Soyadi, Tb_Personel_son.Basin_Karti, Tb_Personel_son.T_C_Kimlik, Year(DateAdd("yyyy",1,[Tb_İzin_Tah.Hakedis_Tar])) AS Yil, 

CASE ((Date()-[Ise_Giris_Tar]))
WHEN 365 <=1825  THEN ‘14’
WHEN 1826 <= 5475 THEN ‘21’
ELSE ‘26’
END

'0' AS kgun, (Tb_Personel_son.Ise_Giris_Tar) AS Giris_Tarihi, DateAdd("yyyy",1,[Tb_İzin_Tah.Hakedis_Tar]) AS haked, Tb_Personel_son.Sicil & "-" & Year(DateAdd("yyyy",1,[Tb_İzin_Tah.Hakedis_Tar])) AS ref
FROM Tb_Personel_son INNER JOIN Tb_İzin_Tah ON Tb_Personel_son.Sicil=Tb_İzin_Tah.Sicil
WHERE (((Tb_Personel_son.[Cikis_Tar]) Is Null)) ORDER BY 2;
Cevapla
#2
sayın denizfatihi,

yazılı kodlama üzerinden yanıtlar vermek kimi zaman pek de sağlıklı olmayabilir ve bundan dolayı da konunun mesaj dahiliyetinin artmasına yol açabilir.

bu sebeple,örnek uygulamanızı eklemeniz halinde,katılımcılar tarafından daha verimli ve net bilgilerin ya da alternatif çözümlerin sunulması söz konusu olabilir.

mesela,case yerine IIF olarak da çözüm elde edilebilir.bu sebeple,IIF kullanımı hakkında tercihinize göre ister bu sitenin arama sayfasından istersenizde internetten çeşitli sitelerde aratmak sureti ile kullanımı hakkında bilgiler ve örnek uygulamalar edinebilirsiniz.

son olarak,uygulamanızı 2007 üzeri kullanıyorsanız,2007 olarak da inceleyebilme imkanı da sağlayıp bu şekilde de örneğinizi ekleyebilir misiniz lütfen.teşekkürler...bilgilerinize.

iyi çalışmalar,
saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#3
 Merhaba,

Örnek bir çalışmayı ekte gönderdim, olayın özü sorgu içinde yer alan günlere göre izin hesaplatmak.

365 ile 1825 arası 14 gün
1826 - 5475 arası 21 gün
5476 günden sonra 26 gün

şeklinde.

Yardımınız için şimdiden teşekkürler.
.rar izin - Kopya.rar (Dosya Boyutu: 389 KB | İndirme Sayısı: 10)
Cevapla
#4
sayın denizfatihi,

uygulamanız incelendiğinde,bahsi geçen talebinize yönelik olarak çözüm için aşağıdaki ifadeyi,sorgunuzun en son sütununa ekleyerek elde edebilirsiniz.


Kod:
CS: IIf(([Calisma_Suresi]) Between 365 And 1825;14;IIf(([Calisma_Suresi]) Between 1826 And 5475;21;IIf([Calisma_Suresi]>5476;26;0)))
son olarak,sayın denizfatihi,
sorularınızı örnek uygulamalar kategorisine değil de,lütfen

Access Soruları ve Cevapları

kategorisine açınız ki,hem doğru kategoride sorular yer alsın hem de üyeler aradıklarını doğru kategoride bulabilsinler.teşekkürler...bu nedenden dolayı,konu ilgili kategoriye taşınmıştır.bilgilerinize,
iyi çalışmalar,
saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#5
Kod:
IIf(([Calisma_Suresi]) Between 365 And 1825;14;IIf(([Calisma_Suresi]) Between 1826 And 5475;21;IIf([Calisma_Suresi]>5476;26;0)))

;14; kısmında söz dizimi hatası veriyor
Cevapla
#6
sayın denizfatihi,

EK'te;yukarıda bahsi geçen sorgu ifadesinin yer aldığı örnek uygulama mevcuttur.inceleyebilirsiniz.bilgilerinize.

iyi çalışmalar,
saygılar.
.rar izin-ATOZ.rar (Dosya Boyutu: 146,21 KB | İndirme Sayısı: 15)
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task