← Detay Sayfası
Nesne Düzenle
|
PLAS_RAPOR_AYLIK_PRIM
İ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 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;
Oluşturulma: 23.12.2025 07:15
Son Güncelleme: 23.12.2025 17:28
İptal
Nesneyi Sil
Değişiklikleri Kaydet