Genel Bilgiler
SQL Server
Stored Procedure
✅ Etkilenmez
23.12.2025 07:15
23.12.2025 16:10
İstatistikler
0
Kod Analizi
68
Satır
3
Kullandığı
2
Kullanan
→ Kullandığı Nesneler (3)
USES_VIEW
USES_VIEW
REFERENCES
← Kullanan Nesneler (2)
CALLS_SP
CALLS_SP
→ Bağımlılık Ağacı
- PLASIYERLER_IADE_SIRALIUSES_VIEW
- PLAS_RAPOR_AYLIK_TOPLAMUSES_VIEW
- CITY_MANGJOINS
- PLAS_RAPOR_PRIM_LISTESIUSES_VIEW
- PlasRaporAylikPrimREFERENCES
← Etki Ağacı
- STR_GUNCELLECALLS_SP
- STR_GUNCELLECALLS_SP
Tam SQL Kodu
CREATE PROCEDURE PLAS_RAPOR_AYLIK_PRIM
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SAYAC INT;
DECLARE @PLAS VARCHAR(50);
DECLARE @PLASREF INT;
DECLARE @MNG VARCHAR(50);
DECLARE @TOPLAM INT;
DECLARE @AYLIK TINYINT;
DECLARE @TUTAR FLOAT;
DECLARE @CURRENT_MONTH TINYINT = MONTH(GETDATE()); -- Bu ayi al
-- Geçici tablo yerine gerçek tablo kullaniliyor
-- Geçici tablo olusturulmasina gerek yok
BEGIN TRY
-- Toplam kayit sayisini al
SET @TOPLAM = ISNULL((SELECT COUNT(*) FROM [UNIVERSALDB].[dbo].[PLASIYERLER_IADE_SIRALI]), 0);
SET @SAYAC = 1;
TRUNCATE TABLE dbo.PlasRaporAylikPrim
-- Dis döngü
WHILE @SAYAC <= @TOPLAM
BEGIN
SET @AYLIK = 1;
-- Plasiyer bilgilerini al
SELECT @PLAS = PLAS, @PLASREF = LOGICALREF, @MNG = MANG
FROM [UNIVERSALDB].[dbo].[PLASIYERLER_IADE_SIRALI]
WHERE SIRA = @SAYAC;
-- Iç döngü
WHILE @AYLIK < @CURRENT_MONTH
BEGIN
-- Tutari al
SELECT @TUTAR = TRNET
FROM dbo.PLAS_RAPOR_PRIM_LISTESI
WHERE DEFINITION_ LIKE '%' + LTRIM(@PLAS) + '%' AND MONTH_ = @AYLIK;
-- Gerçek tabloya ekle
INSERT INTO dbo.PlasRaporAylikPrim
(MONTH_, LOGICALREF, PLS, TUTAR, MANG)
VALUES
(@AYLIK, @PLASREF, @PLAS, ISNULL(@TUTAR, 0), @MNG);
SET @TUTAR = 0;
SET @AYLIK = @AYLIK + 1;
END;
SET @SAYAC = @SAYAC + 1;
END;
END TRY
BEGIN CATCH
-- Hata durumunda mesaj döndür
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END;