📄 Tam SQL Kodu (Referans)

Analiz eklerken buradan kod parçalarını kopyalayabilirsiniz

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

➕ Yeni Kod Analizi Ekle

📋 Mevcut Analizler (0)

Henüz kod analizi eklenmemiş.

Yukarıdaki formu kullanarak ilk analizi ekleyin.