← Detay Sayfası
Nesne Düzenle
|
sp_RAPOR_AYLIK_SATIS_HIZLI
İ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 PROCEDURE [dbo].[sp_RAPOR_AYLIK_SATIS_HIZLI] @YIL INT AS BEGIN DECLARE @SAYAC INT DECLARE @AYLIK TINYINT DECLARE @TOPLAM TINYINT DECLARE @TOPLAM1 FLOAT DECLARE @TOPLAM2 FLOAT DECLARE @PLAS INT DECLARE @MAHLAS VARCHAR(50) DECLARE @MNG VARCHAR(50) DECLARE @DEF VARCHAR(50) DECLARE @KONTROL INT DECLARE @DEGER FLOAT DECLARE @JN FLOAT = 0 DECLARE @FB FLOAT = 0 DECLARE @MR FLOAT = 0 DECLARE @AP FLOAT = 0 DECLARE @MY FLOAT = 0 DECLARE @JU FLOAT = 0 DECLARE @JL FLOAT = 0 DECLARE @AU FLOAT = 0 DECLARE @SP FLOAT = 0 DECLARE @OC FLOAT = 0 DECLARE @NV FLOAT = 0 DECLARE @DC FLOAT = 0 DECLARE @PLSD VARCHAR(50) DECLARE @CURRENT_MONTH TINYINT = MONTH(GETDATE()) -- Bu ayi al -- Geçici bir tablo olustur DECLARE @TempTable TABLE ( MAHLAS VARCHAR(50), DEF VARCHAR(50), JAN FLOAT, FEB FLOAT, MAR FLOAT, APR FLOAT, MAY FLOAT, JUN FLOAT, JUL FLOAT, AUG FLOAT, SEP FLOAT, OCT FLOAT, NOV FLOAT, DEC FLOAT, TOPLAM FLOAT, TOPLAM2023 FLOAT, TOPLAM2022 FLOAT, PLAS INT, TPLAS VARCHAR(50), MANG VARCHAR(50) ); -- Tablonun içerigini temizle SET @SAYAC = 1 SET @TOPLAM = ISNULL((SELECT COUNT(*) FROM dbo.PLAS_SIRALI_TUMU WHERE PLAS IS NOT NULL), 0); WHILE @SAYAC <= @TOPLAM BEGIN SELECT @MAHLAS = PLAS, @PLAS = LOGICALREF ,@MNG=MANG FROM dbo.PLAS_SIRALI_TUMU WHERE PLAS IS NOT NULL AND SIRA = @SAYAC; SET @AYLIK = 1; WHILE @AYLIK <= 12 BEGIN IF @AYLIK <= @CURRENT_MONTH -- Sadece geçerli ay ve öncesine bak BEGIN SELECT @DEGER = ISNULL(TUTAR, 0), @PLSD = PLS FROM dbo.PLAS_RAPOR_AYLIK_TOPLAM WHERE MONTH_ = @AYLIK AND LOGICALREF = @PLAS AND YEAR_ = @YIL; IF @@ROWCOUNT = 0 BEGIN SET @DEGER = 0; END SET @KONTROL = CHARINDEX('WEB', @PLSD); IF @KONTROL = 0 SET @DEF = 'BIREYSEL'; ELSE SET @DEF = 'FIRMA'; SELECT @TOPLAM1 = TUTAR FROM dbo.PLAS_RAPOR_YILLIK_TOPLAM WHERE YEAR_ = @YIL - 1 AND LOGICALREF = @PLAS; SELECT @TOPLAM2 = TUTAR FROM dbo.PLAS_RAPOR_YILLIK_TOPLAM WHERE YEAR_ = @YIL - 2 AND LOGICALREF = @PLAS; 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; END SET @AYLIK = @AYLIK + 1; END INSERT INTO @TempTable (MAHLAS, DEF, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TOPLAM, TOPLAM2023, TOPLAM2022, PLAS, TPLAS, MANG) VALUES (@MAHLAS, @DEF, @JN, @FB, @MR, @AP, @MY, @JU, @JL, @AU, @SP, @OC, @NV, @DC, (@JN + @FB + @MR + @AP + @MY + @JU + @JL + @AU + @SP + @OC + @NV + @DC), @TOPLAM1, @TOPLAM2, @PLAS, @PLSD, @MNG); -- Degerleri sifirlama 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; SET @SAYAC = @SAYAC + 1; END -- Geçici tablodan ana tabloya veri ekleme INSERT INTO [UNIVERSALDB].[dbo].RAPOR_PLAS_AYLIK_SATIS (MAHLAS, DEF, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TOPLAM2024, TOPLAM2023, TOPLAM2022, PLAS, TPLAS, MANG, YIL) SELECT MAHLAS, DEF, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TOPLAM, TOPLAM2023, TOPLAM2022, PLAS, TPLAS, MANG, @YIL FROM @TempTable; -- Toplamlari ekleme INSERT INTO [UNIVERSALDB].[dbo].RAPOR_PLAS_AYLIK_SATIS (MAHLAS, DEF, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TOPLAM2024, TOPLAM2023, TOPLAM2022, PLAS, TPLAS, MANG, YIL) SELECT MAHLAS, 'TOPLAM' AS DEF, SUM(JAN) AS JAN, SUM(FEB) AS FEB, SUM(MAR) AS MAR, SUM(APR) AS APR, SUM(MAY) AS MAY, SUM(JUN) AS JUN, SUM(JUL) AS JUL, SUM(AUG) AS AUG, SUM(SEP) AS SEP, SUM(OCT) AS OCT, SUM(NOV) AS NOV, SUM([DEC]) AS [DEC], SUM(TOPLAM2024) AS TOPLAM, SUM(TOPLAM2023) AS TOPLAM2023, SUM(TOPLAM2022) AS TOPLAM2022, NULL AS PLAS, NULL AS TPLAS, MANG, @YIL FROM [UNIVERSALDB].[dbo].RAPOR_PLAS_AYLIK_SATIS GROUP BY MAHLAS, MANG; -- Bos satirlari ekleme INSERT INTO [UNIVERSALDB].[dbo].RAPOR_PLAS_AYLIK_SATIS (MAHLAS, DEF, JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC, TOPLAM2024, TOPLAM2023, TOPLAM2022, PLAS, TPLAS, MANG, YIL) SELECT MAHLAS, 'Z' AS DEF, NULL AS JAN, NULL AS FEB, NULL AS MAR, NULL AS APR, NULL AS MAY, NULL AS JUN, NULL AS JUL, NULL AS AUG, NULL AS SEP, NULL AS OCT, NULL AS NOV, NULL AS DEC, NULL AS TOPLAM, NULL AS TOPLAM2023, NULL AS TOPLAM2022, NULL AS PLAS, NULL AS TPLAS, MANG, @YIL FROM [UNIVERSALDB].[dbo].RAPOR_PLAS_AYLIK_SATIS WHERE DEF = 'TOPLAM'; END
Oluşturulma: 23.12.2025 07:15
Son Güncelleme: 23.12.2025 17:28
İptal
Nesneyi Sil
Değişiklikleri Kaydet