← Detay Sayfası
Nesne Düzenle
|
SP_GIDER_PLASIYER_AYLARA_GORE_KALEM_TOPLAM_TABLOSU
İlgili Uygulama
-- Seçiniz --
SQL Server
Nesne Türü
View
Stored Procedure
Trigger
Job
Nesne Adı
Bu nesne dönem devrinden etkileniyor mu? (Örn: İçinde _01_ gibi sabit dönem kodu var mı?)
Genel Kullanım Amacı ve Notlar
Tam SQL Kodu
CREATE PROC [dbo].[SP_GIDER_PLASIYER_AYLARA_GORE_KALEM_TOPLAM_TABLOSU] ( @YIL INT) AS BEGIN DECLARE @plasOfMonths TABLE(YIL INT, PLAS VARCHAR(50), GIDER VARCHAR(50), JAN FLOAT, FEB FLOAT, MAR FLOAT, APR FLOAT, MAY FLOAT, JUN FLOAT, JUL FLOAT, AUG FLOAT, SEP FLOAT, OCT FLOAT, NOV FLOAT, DCM FLOAT, TOPLAM FLOAT) DECLARE @SAY INT DECLARE @SATIR INT DECLARE @AYLIK INT DECLARE @PLASSAY INT DECLARE @PLASSATIR INT DECLARE @PLAS VARCHAR(50) DECLARE @JN FLOAT DECLARE @FB FLOAT DECLARE @MR FLOAT DECLARE @AP FLOAT DECLARE @MY FLOAT DECLARE @JU FLOAT DECLARE @JL FLOAT DECLARE @AU FLOAT DECLARE @SP FLOAT DECLARE @OC FLOAT DECLARE @NV FLOAT DECLARE @DC FLOAT DECLARE @DEGER FLOAT DECLARE @GIDER VARCHAR(50) SET @PLASSAY = ISNULL((SELECT COUNT(*) FROM dbo.PLASIYERLER_GIDER_SIRALI), 0) SET @PLASSATIR = 1 WHILE @PLASSATIR <= @PLASSAY BEGIN SET @PLAS = ISNULL((SELECT PLAS FROM dbo.PLASIYERLER_GIDER_SIRALI WHERE SIRA = @PLASSATIR), '') SET @SAY = ISNULL((SELECT COUNT(*) FROM dbo.[001_GIDERLER]), 0) SET @SATIR = 1 WHILE @SATIR <= @SAY BEGIN SET @GIDER = ISNULL((SELECT DEFINITION_ FROM dbo.[001_GIDERLER] WHERE SIRA = @SATIR), '') SET @AYLIK = 1 SET @JN = 0 SET @FB = 0 SET @MR = 0 SET @AP = 0 SET @MY = 0 SET @JU = 0 SET @JL = 0 SET @AU = 0 SET @SP = 0 SET @OC = 0 SET @NV = 0 SET @DC = 0 WHILE @AYLIK <= 12 BEGIN SET @DEGER = ISNULL((SELECT CASE WHEN @PLAS = 'SIRKET' THEN SUM(AYLIK_TOPLAM) ELSE MAX(AYLIK_TOPLAM) END FROM dbo.[001_PLASIYER_SIRALI_AYLIK_GIDER_KALEM_TOPLAMLARI] WHERE AY = @AYLIK AND PLAS = @PLAS AND YIL = @YIL AND GIDER = @GIDER), 0) IF @DEGER = 0 SET @DEGER = 1 IF @AYLIK = 1 SET @JN = @DEGER ELSE IF @AYLIK = 2 SET @FB = @DEGER ELSE IF @AYLIK = 3 SET @MR = @DEGER ELSE IF @AYLIK = 4 SET @AP = @DEGER ELSE IF @AYLIK = 5 SET @MY = @DEGER ELSE IF @AYLIK = 6 SET @JU = @DEGER ELSE IF @AYLIK = 7 SET @JL = @DEGER ELSE IF @AYLIK = 8 SET @AU = @DEGER ELSE IF @AYLIK = 9 SET @SP = @DEGER ELSE IF @AYLIK = 10 SET @OC = @DEGER ELSE IF @AYLIK = 11 SET @NV = @DEGER ELSE IF @AYLIK = 12 SET @DC = @DEGER SET @AYLIK = @AYLIK + 1 END INSERT INTO @plasOfMonths VALUES (@YIL, @PLAS, @GIDER, @JN, @FB, @MR, @AP, @MY, @JU, @JL, @AU, @SP, @OC, @NV, @DC, (@JN + @FB + @MR + @AP + @MY + @JU + @JL + @AU + @SP + @OC + @NV + @DC)) SET @SATIR = @SATIR + 1 END SET @PLASSATIR = @PLASSATIR + 1 END -- Yeni tabloya verileri aktarma INSERT INTO dbo.GIDER_PLASIYER_AYLARA_GORE_KALEM_TOPLAM_TABLOSU (YIL, PLAS, GIDER, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DCM, TOPLAM) SELECT YIL, PLAS, GIDER, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DCM, TOPLAM FROM @plasOfMonths -- Geçici tabloyu da döndürme (istege bagli) END
Oluşturulma: 23.12.2025 07:15
Son Güncelleme: 23.12.2025 17:28
İptal
Nesneyi Sil
Değişiklikleri Kaydet