Genel Bilgiler

SQL Server
Stored Procedure
✅ Etkilenmez
23.12.2025 07:15
23.12.2025 16:10

Notlar

Düzenle

Henüz not eklenmemiş.

+ Not ekle

İstatistikler

0
Kod Analizi
80
Satır
3
Kullandığı
0
Kullanan

Kullandığı Nesneler (3)

👁️ 001_PLASIYERLER
USES_VIEW
JOINS

Kullanan Nesneler (0)

Bu nesneyi kullanan yok

Bağımlılık Ağacı

Etki Ağacı

Bu nesneyi kullanan yok

Tam SQL Kodu

Düzenle

CREATE PROC [dbo].[SP_GIDER_PLASIYER_AYLARA_GORE_TOPLAM_TABLOSU]
AS
BEGIN
    DECLARE @plasOfMonths TABLE(
        PLAS 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 @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 @PLAS VARCHAR(50)

    SET @SAY = ISNULL((SELECT COUNT(*) FROM dbo.[001_PLASIYERLER]),0)
    SET @SATIR = 1

    WHILE @SATIR <= @SAY
    BEGIN
        SET @PLAS = ISNULL((SELECT DEFINITION_ FROM dbo.[001_PLASIYERLER] WHERE SIRA=@SATIR),'')
        SET @AYLIK = 1

        WHILE @AYLIK <= 12
        BEGIN
            SET @DEGER = ISNULL((
                SELECT AYLIK_TOPLAM 
                FROM dbo.[001_PLASIYER_SIRALI_AYLIK_GIDERLER] 
                WHERE AY = @AYLIK AND PLAS = @PLAS AND YIL=2025
            ),0)

            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

        IF @PLAS <> 'SIRKET'
        BEGIN
            INSERT INTO @plasOfMonths 
            VALUES (@PLAS, @JN, @FB, @MR, @AP, @MY, @JU, @JL, @AU, @SP, @OC, @NV, @DC, 
                    (@JN + @FB + @MR + @AP + @MY + @JU + @JL + @AU + @SP + @OC + @NV + @DC)) 
        END

        SET @SATIR = @SATIR + 1 
    END

    -- ?? PLAKA BILGISI EKLENMIS HALI
    SELECT 
        p.PLAS,
        plk.PLAKA,
        p.JAN, p.FEB, p.MAR, p.APR, p.MAY, p.JUN, p.JUL, p.AUG, 
        p.SEP, p.OCT, p.NOV, p.DCM, p.TOPLAM
    FROM @plasOfMonths p
    INNER JOIN PLAS_RAPOR_PLAKALAR plk ON plk.PLAS = p.PLAS
END

Kodun Çalışma Mantığı (Adım Adım)

Analiz Ekle/Düzenle

Henüz bu nesne için bir analiz girilmemiş.

İlk Analizi Ekle