Genel Bilgiler

SQL Server
View
⚠️ Devirde Güncellenmeli
23.12.2025 07:15
23.12.2025 16:10

Notlar

Düzenle

Henüz not eklenmemiş.

+ Not ekle

İstatistikler

6
Kod Analizi
24
Satır
0
Kullandığı
7
Kullanan

Kullandığı Nesneler (0)

Bağımlılık bulunamadı

Kullanan Nesneler (7)

USES_VIEW
👁️ MALZEME_LISTESI
USES_VIEW
USES_VIEW
USES_VIEW
👁️ MALZEME_RAPORU
USES_VIEW
USES_VIEW
USES_VIEW

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

Bağımlılık bulunamadı

Etki Ağacı

Tam SQL Kodu

Düzenle
CREATE VIEW dbo.[00001_SATIS_IADELER]
AS
SELECT        QQ.STOCKREF, SUM(QQ.I2022) AS AIDE2022, SUM(QQ.I2021) AS IADE2021, SUM(QQ.I2020) AS IADE2020, SUM(QQ.I2022) + SUM(QQ.I2021) AS SONIKI, SUM(QQ.I2022) + SUM(QQ.I2021) + SUM(QQ.I2020) AS TOPLAM
FROM            ((SELECT        STOCKREF, SUM(AMOUNT) AS I2022, 0 AS I2021, 0 AS I2020
                            FROM            [UNIVERSALDB].[dbo].LG_011_08_STLINE
                            WHERE        CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
                            GROUP BY STOCKREF)
                         UNION ALL
                         (SELECT        STOCKREF, 0 AS I2022, SUM(AMOUNT) AS I2021, 0 AS I2020
                          FROM            [UNIVERSALDB].[dbo].LG_011_07_STLINE
                          WHERE        CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
                          GROUP BY STOCKREF)
UNION ALL
(SELECT        STOCKREF, 0 AS I2022, 0 AS I2021, SUM(AMOUNT) AS I2020
 FROM            [UNIVERSALDB].[dbo].LG_011_06_STLINE
 WHERE        CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
 GROUP BY STOCKREF)
UNION ALL
(SELECT        STOCKREF, 0 AS I2022, 0 AS I2021, SUM(AMOUNT) AS I2020
 FROM            [UNIVERSALDB].[dbo].LG_011_05_STLINE
 WHERE        CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
 GROUP BY STOCKREF)) QQ
GROUP BY QQ.STOCKREF

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

Analiz Ekle/Düzenle
Adım 1
SELECT STOCKREF, SUM(AMOUNT) AS I2022, 0 AS I2021, 0 AS I2020
FROM [UNIVERSALDB].[dbo].LG_011_08_STLINE
WHERE CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
GROUP BY STOCKREF

Ne yapıyor?

  • LG_011_08_STLINE içinden iade satırlarını seçiyor (TRCODE=3).

  • Satırları STOCKREF bazında gruplayıp AMOUNT toplamını alıyor.

  • Bu toplamı I2022 kolonuna yazıyor, diğer yılları 0 basıyor.

TRCODE = 3 Logo tarafında “Toptan Satış İade Faturası” olarak kullanılır. 
LINETYPE = 0malzeme/stok satırı” demektir; hizmet/başka satır tipleri hariç tutulur. 

STLINE tabloları faturaların/irsaliyelerin satır detaylarının tutulduğu tablolardır (raporlarda stok hareket satırı çekmek için okunur). 

Adım 2
SELECT STOCKREF, 0 AS I2022, SUM(AMOUNT) AS I2021, 0 AS I2020
FROM [UNIVERSALDB].[dbo].LG_011_07_STLINE
WHERE CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
GROUP BY STOCKREF

Ne yapıyor?

  • Aynı filtrelerle (iptal değil, toptan satış iade, malzeme satırı) bu sefer LG_011_07_STLINE döneminden topluyor.

  • Toplamı I2021 kolonuna koyuyor.

Adım 3
SELECT STOCKREF, 0 AS I2022, 0 AS I2021, SUM(AMOUNT) AS I2020
FROM [UNIVERSALDB].[dbo].LG_011_06_STLINE
WHERE CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
GROUP BY STOCKREF

Ne yapıyor?

  • LG_011_06_STLINE döneminden toptan satış iade miktarlarını stok bazında topluyor.

  • Toplamı I2020 kolonuna koyuyor.

Adım 4
SELECT STOCKREF, 0 AS I2022, 0 AS I2021, SUM(AMOUNT) AS I2020
FROM [UNIVERSALDB].[dbo].LG_011_05_STLINE
WHERE CANCELLED = 0 AND TRCODE = 3 AND LINETYPE = 0
GROUP BY STOCKREF

Ne yapıyor?

  • LG_011_05_STLINE döneminden toptan satış iade toplamını alıyor,

  • ama bunu da I2020 kolonuna yazıyor.

⚠️ Bu bilinçli olabilir (ör. 2020 verisi iki döneme bölünmüşse “birleştir” mantığıyla), ama eğer amaç “05 = 2019” gibi ayrı yıl ise burada kolon adı hatalı/eksik bırakılmış da olabilir. (Ben sadece mevcut kodun yaptığı davranışı söylüyorum.)

Adım 5
... (08 select)
UNION ALL (07 select)
UNION ALL (06 select)
UNION ALL (05 select)

Mantık:

  • Her select aynı kolonları üretir (I2022, I2021, I2020) ama sadece biri dolu, diğerleri 0.

  • UNION ALL ile hepsi alt alta gelir.

Adım 6
SELECT QQ.STOCKREF,
       SUM(QQ.I2022) AS AIDE2022,
       SUM(QQ.I2021) AS IADE2021,
       SUM(QQ.I2020) AS IADE2020,
       SUM(QQ.I2022) + SUM(QQ.I2021) AS SONIKI,
       SUM(QQ.I2022) + SUM(QQ.I2021) + SUM(QQ.I2020) AS TOPLAM
FROM ( ... ) QQ
GROUP BY QQ.STOCKREF

Burada yapılanlar:

  • QQ içindeki satırlar tekrar STOCKREF bazında gruplanır.

  • Aynı stok için:

    • I2022 toplamıAIDE2022 (burada küçük bir yazım hatası var gibi; “IADE2022” olması beklenirdi ama kod “AIDE2022” demiş)

    • I2021 toplamıIADE2021

    • I2020 toplamıIADE2020

  • Ek kolonlar:

    • SONIKI = I2022 + I2021 (son iki dönem toplam iade)

    • TOPLAM = I2022 + I2021 + I2020 (toplam iade)