Forum
Arkadaşlar Öncelikle Merhaba,
Örnek Tablo Aşağıdaki Gibidir.
Marka | Aylık Kira | Gunluk Kira | Başlangıç Tarihi | Bitiş Tarihi |
Mercedes | 5000 | 166,67 | 01.01.2016 | NULL |
Renault | 3000 | 100,00 | 01.01.2016 | 20.03.2016 |
Ford | 4000 | 133,33 | 01.02.2016 | NULL |
İstemiş olduğum Sonuç ise Aşağıdadır.
Aracın Başlangıç ve bitiş tarihlerine bakarak ay ay kira hesaplamasını istiyorum. Case When ile çıkamadım çünkü ay 30 yada 31 çektiğini dikkate almamalı sadece eksik çalıştığı ayda çalıştığı gün kadarını Günlük kira ile çarpmalı.
Yardımlarınız için şimdiden teşekkürler
Marka | Aylık Kira | Gunluk Kira | Başlangıç Tarihi | Bitiş Tarihi | Ocak | Şubat | Mart | Nisan | Mayıs | Haziran | Temmuz | Ağustos | Eylül | Ekim | Kasım | Aralık |
Mercedes | 5000 | 166,67 | 01.01.2016 | NULL | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 | 5000 |
Renault | 3000 | 100,00 | 01.01.2016 | 20.03.2016 | 3000 | 3000 | 2000 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Ford | 4000 | 133,33 | 01.02.2016 | 10.06.2016 | 4000 | 4000 | 4000 | 4000 | 4000 | 1333,333 | 0 | 0 | 0 | 0 | 0 | 0 |
Öncelikle bilgi için teşekkürler fakat yarım ayları nasıl hesap edeceğim.
Öncelikle bilgi için teşekkürler fakat yarım ayları nasıl hesap edeceğim.
Merhabalar,
Başlangıç ve bitiş tarihleri iligli ayın ilk günü yada son günü mü diye kontrol edilip eğer değilse ilk günü yada son günü arasıdan ki gün farkı ile günlük ücreti çarpıp toplamdan çıkarabilirsin.
Örneğin başlangıç tarihi 20.01.2016 ise bu tarihi bir fonksiyonda 1. ayın ilk günü mü diye bakılıp değilse ilk günü ile arasında ki gün farkı günlük ücret ile çarpılarak aylık ücretten çıkarılır.Bitiş tarihi içinde son günü üzerinden kontrol yapılabilir.
Bilgi için teşekkürler bunu Case When ile yapamayız neyi tavsiye edersiniz.
Bilgi için teşekkürler bunu Case When ile yapamayız neyi tavsiye edersiniz.
Merhabalar,
Bir fonksiyon içerisinde fonksiyona ay ve yıl bilgisi göndererek gelen ay ve yıl bilgisine göre ayın ilk gününe göre tarih dönüren bir fonksiyon yazılır.Aynı amntıkta ayın son gününe göre tarih döndüren bir fonksiyon daha yazılır.
Ayın son günü bulmak için ayın ilk gününe Dateadd fonsyionu ile bir ay ekleyip sonra 1 gün çıkarabilirsin.
Aşağıda ki işlemler örnek olabilir.Sen sadece elinde ki tarihi parçalara ayırıp ilgili yerlere koyarsın.
SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE())-1,0) [İlk Gün],
DATEADD(DAY,-(DAY(GETDATE())),GETDATE()) [Son Gün]
Merhaba ,
Pivot Şablonu paylasıyorum..
SELECT *
FROM (
SELECT *
FROM dbo.table_name
) t
PIVOT (
SUM(aggregated_column)
FOR header_column IN ([pivoted_column1], [pivoted_column2])
) p