Netsis Yaşlandırma Raporu [T-SQL]

   Stok Yaşlandırma yapalım.

 


CREATE FUNCTION dbo.FN_DEVIR_STOK
(
@STOK_KODU NVARCHAR(50),@TUR NVARCHAR(5)
)

RETURNS FLOAT
AS
BEGIN
DECLARE @SONUC FLOAT
IF @TUR = 'A' BEGIN  /*DEVİR */
SELECT    @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM  TBLSTHAR  WHERE STOK_KODU = @STOK_KODU AND STHAR_HTUR = @TUR AND STHAR_GCKOD = 'G'

END
IF @TUR IN ('J','B')BEGIN  /*FATURA GELEN */
SELECT   @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM  TBLSTHAR  WHERE STOK_KODU = @STOK_KODU AND STHAR_HTUR IN ('J','B') AND
STHAR_GCKOD = 'G' AND STHAR_HTUR  IN ('J','B')

END
IF @TUR IN ('C')BEGIN  /*CIKIS  GELEN */
SELECT   @SONUC = ISNULL(SUM(STHAR_GCMIK),0) FROM  TBLSTHAR  WHERE STOK_KODU = @STOK_KODU AND
STHAR_GCKOD = @TUR

END

IF @TUR  = ('CC')BEGIN  /*CIKIS  GELEN */
SELECT    @SONUC =  ISNULL(SUM(TOP_GIRIS_MIK - TOP_CIKIS_MIK),0) FROM TBLSTOKPH WHERE STOK_KODU =@STOK_KODU AND DEPO_KODU =0

END

IF @TUR  = ('DATE')BEGIN  /*GUNSAYISI    */

DECLARE @ZAMAN INT;

DECLARE @BAS_TARIH DATETIME;
DECLARE @BIT_TARIH DATETIME;

SELECT @BAS_TARIH = MIN(STHAR_TARIH) FROM TBLSTHAR  WHERE STOK_KODU = @STOK_KODU
SELECT @BIT_TARIH = MAX(STHAR_TARIH) FROM TBLSTHAR  WHERE STOK_KODU = @STOK_KODU
IF @BAS_TARIH = @BIT_TARIH BEGIN
SET @BIT_TARIH = GETDATE()
END

SELECT   @ZAMAN = DATEDIFF(DAY,@BAS_TARIH,@BIT_TARIH) FROM  TBLSTHAR  WHERE STOK_KODU = @STOK_KODU
SET @SONUC= CONVERT(FLOAT,@ZAMAN)
END

RETURN @SONUC

END

CREATE PROCEDURE SP_STOK_DEVIR_HIZI
AS

BEGIN

SELECT    HAR.STOK_KODU,dbo.FN_STOK_ADI(HAR.STOK_KODU) AS STOK_ADI,DBO.FN_DEVIR_STOK(HAR.STOK_KODU,'A') AS 'DEVIR',
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,'J') AS 'GIREN_MIKTAR',
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,'C') AS 'CIKIS_MIKTAR',
DBO.FN_DEVIR_STOK(HAR.STOK_KODU,'CC') AS 'BAKIYE',
NULLIF( DBO.FN_DEVIR_STOK(HAR.STOK_KODU,'DATE'),0)   AS 'TARIH_FARKI',
COUNT(*) AS HAREKETSAYISI,
DATEDIFF(DAY    ,'01.01.2018',GETDATE()) AS TARIHARALIGI,
DATEDIFF(DAY    ,'01.01.2018',GETDATE())/ COUNT(*) AS DEVIRHIZI,
CONVERT(DECIMAL(38,2),  SUM(STHAR_GCMIK) )AS TOLAMCIKIS,
CONVERT(DECIMAL(38,2),   SUM(STHAR_GCMIK) / COUNT(*) )AS ORTALAMAHIZMIKTARI
FROM TBLSTHAR AS HAR
WHERE LEFT(HAR.STOK_KODU,3) IN ('150','157')

GROUP BY HAR.STOK_KODU

Tek Yorum

  1. ÖZCAN KESKİNOĞLU demiş ki:

    Netsis Yaşlandırma Raporu Create ederken hata veriyor
    Msg 102, Level 15, State 1, Procedure SP_STOK_DEVIR_HIZI, Line 16
    Incorrect syntax near ‘)’.
    Parantezlerde de herhangi bir sorun yok ama yine de oluşturmadı.

    Kasım 6, 2020
    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir