Forum

SQL Sorgusu Hakkınd...
 
Bildirimler
Hepsini Temizle

SQL Sorgusu Hakkında Yardım

6 Yazılar
3 Üyeler
0 Likes
702 Görüntüleme
(@ufukh)
Gönderiler: 109
Estimable Member
Konu başlatıcı
 

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

 

 
Gönderildi : 14/04/2016 15:04

(@ufukh)
Gönderiler: 109
Estimable Member
Konu başlatıcı
 

Öncelikle bilgi için teşekkürler fakat yarım ayları nasıl hesap edeceğim.

 
Gönderildi : 15/04/2016 15:12

(@TayfunKOC)
Gönderiler: 169
Reputable Member
 

Ö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.

 
Gönderildi : 18/04/2016 19:42

(@ufukh)
Gönderiler: 109
Estimable Member
Konu başlatıcı
 

Bilgi için teşekkürler bunu Case When ile yapamayız neyi tavsiye edersiniz.

 
Gönderildi : 18/04/2016 20:33

(@TayfunKOC)
Gönderiler: 169
Reputable Member
 

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]

 

 
Gönderildi : 19/04/2016 17:42

(@omercarnacar)
Gönderiler: 86
Estimable Member
 

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

 
Gönderildi : 02/05/2016 12:27

Paylaş: