Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Soru Merkezi  > SQL Server Soru Merkezi > sql server ortalama vade hesaplama.

sql server ortalama vade hesaplama. 30.07.2009 19:40:16

emrekenan
Merhaba SQL server 2005 üzerinde bir ERP yazılımı kullanmaktayız. SQL üzerindeki database den alacağım bilgilerden bir rapor hazırlamaktayım fakat ortalama vade hesaplatılması konusunda takıldım. yapmaya çalıştığım rapor kısaca bir Borç&Alacak Durum Raporu fakat her cari hesabın yanında cari hesabın ortalama vadesi çıkması gerekmektedir. ortalama vade hesaplatılması ile ilgili bir sp yada function varmı yararlanabileceğim. ( ortalama vade hesabı derken firmanın faturalarına istinaden yapılan ödemeler çıktıktan sonra kalan faturalarının vadesinin ortalaması)  şimdiden teşekkürler.
 

31.07.2009 21:06:34

semgoksu
Cvp: sql server ortalama vade hesaplama.

Formül'ü vardır bu vade hesaplamanın mutlaka. Onu yazarsan daha fazla yardımcı olabiliriz ;)

11.08.2009 15:12:19

emrekenan
Cvp: sql server ortalama vade hesaplama.

http://www.termo-heat.com/OrtalamaVade.xls adresinde örnek bir excell dökümanı koydum. geç cevap verebildim kusura bakmayın. senelik izindeydim. bu dökümanda yapmak istediğim işlemin excell olararak açıklaması var

14.08.2009 11:03:38

emrekenan
Cvp: sql server ortalama vade hesaplama.

Bir arkadaşımdan aldığım destek sayesinde ortay çıkan çalışma aşağıdadır.

Adat, ortalama Vade hesaplama için kullanılabilecek çok güzel bir function oldu.

 

create FUNCTION [dbo].[ORTVADE](@FIRMA_ID varchar(10), @YIL_ID int) RETURNS SMALLDATETIME

AS

BEGIN

DECLARE @REFDATE SMALLDATETIME

DECLARE @Bakiye DECIMAL(38,2)

DECLARE @xBA VARCHAR(1)

--Bakiye Tutarının Öğrenilmesi

DECLARE CarıOZET_Cursor CURSOR FOR

SELECT bakıye FROM Carıozet

WHERE (FIRMAKODU = @FIRMA_ID) AND (YIL = @YIL_ID)

OPEN CarıOZET_Cursor

--Bakiye Tutarı Belirlendi

FETCH NEXT FROM CarıOZET_Cursor

INTO @Bakiye

CLOSE CarıOZET_Cursor

DEALLOCATE CarıOZET_Cursor

IF @Bakiye >= 0 SET @xBA = 'B'

ELSE SET @xBA = 'A'

SET @REFDATE = Getdate()-2000

DECLARE @SAdat Float, @SBakiye Float, @Flag int

DECLARE @VADETAR SMALLDATETIME, @BA VARCHAR(1), @BORC Float, @ALACAK float

DECLARE CarıEkstre_Cursor CURSOR FOR

SELECT Vadetar, BA, BORC, ALACAK FROM CarıEkstre

WHERE (FIRMAKODU = @FIRMA_ID) AND (YIL = @YIL_ID) AND (BA = @xBA)

ORDER BY VADETAR DESC

OPEN CarıEkstre_Cursor

FETCH NEXT FROM CarıEkstre_Cursor

INTO @VADETAR, @BA, @BORC, @ALACAK

SET @SAdat=0

SET @SBakiye = 0

SET @FLAG = @@FETCH_STATUS

WHILE (@FLAG = 0 )

BEGIN

IF @xBA = 'B'

BEGIN

If @SBakiye + @Borc > @Bakiye

BEGIN

SET @SAdat=@SAdat + (@Bakiye - @SBakiye) * CONVERT(float, @VADETAR - @RefDate)

SET @SBakiye = @Bakiye

SET @Flag=1

END

ELSE

BEGIN

SET @SBakiye = @SBakiye + @Borc

SET @SAdat=@SAdat + @BORC * CONVERT(float, @VADETAR - @RefDate)

END

END

ELSE

BEGIN

If @SBakiye + @Alacak > @Bakiye

BEGIN

SET @SAdat=@SAdat + (@Bakiye - @SBakiye) * CONVERT(float, @VADETAR - @RefDate)

SET @SBakiye = @Bakiye

SET @Flag=1

END

ELSE

BEGIN

SET @SBakiye = @SBakiye + @Alacak

SET @SAdat=@SAdat + @Alacak * CONVERT(float, @VADETAR - @RefDate)

END

END

FETCH NEXT FROM CarıEkstre_Cursor

INTO @VADETAR, @BA, @BORC, @ALACAK

IF @@FETCH_STATUS <> 0 SET @Flag=1

END

CLOSE CarıEkstre_Cursor

DEALLOCATE CarıEkstre_Cursor

RETURN @REFDATE + FLOOR(@SAdat / @SBakiye)

END

Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.