Genel Bilgiler
İstatistikler
→ Kullandığı Nesneler (0)
Bağımlılık bulunamadı
← Kullanan Nesneler (7)
→ Bağımlılık Ağacı
Bağımlılık bulunamadı
← Etki Ağacı
- GENEL_EKSIK_SIPARISUSES_VIEW
- STR_GUNCELLEUSES_VIEW
- MALZEME_LISTESI_ESLESTIRMEUSES_VIEW
- MALZEME_RAPORUUSES_VIEW
- STR_RAPORUEXECUTES
- STR_RAPORUEXECUTES
- MALZEME_LISTESIUSES_VIEW
- MALZEME_LISTESIREFERENCES
- STR_RAPORUEXECUTES
- malzeme_listesi_olusturUSES_VIEW
- MALZEME_LISTESI_TABLO_OLUSTURUSES_VIEW
- STR_RAPORUEXECUTES
- malzeme_listesi_olusturUSES_VIEW
- MALZEME_LISTESI_HIZLIUSES_VIEW
- GECICIUSES_VIEW
- GECICI2USES_VIEW
- SP_MALZEME_KAYITUSES_VIEW
- STR_GUNCELLEUSES_VIEW
Tam SQL Kodu
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üzenleSELECT 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_STLINEiçinden iade satırlarını seçiyor (TRCODE=3). -
Satırları
STOCKREFbazında gruplayıpAMOUNTtoplamını alıyor. -
Bu toplamı I2022 kolonuna yazıyor, diğer yılları 0 basıyor.
TRCODE = 3Logo tarafında “Toptan Satış İade Faturası” olarak kullanılır.
LINETYPE = 0“malzeme/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).
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_STLINEdöneminden topluyor. -
Toplamı I2021 kolonuna koyuyor.
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_STLINEdöneminden toptan satış iade miktarlarını stok bazında topluyor. -
Toplamı I2020 kolonuna koyuyor.
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_STLINEdö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.)
... (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 ALLile hepsi alt alta gelir.
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:
-
QQiçindeki satırlar tekrarSTOCKREFbazı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)
-