2 SENE ARASI SATIŞ FARKLARI

Gönderen Konu: 2 SENE ARASI SATIŞ FARKLARI  (Okunma sayısı 485 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı emirfilar

  • Yeni Kullanıcı
  • *
  • Karma: 0
2 SENE ARASI SATIŞ FARKLARI
« : 23.11.2017, 15:37 »
Merhabalar ,

Forumda dolaşırken böyle bir sorgu buldum. Çok faydalı fakat; bunun üzerinde değişiklik yapılabilir mi? Olmasını istediğim şu;
Sorguyu çalıştırdığımda iade olan satışları düşmüyor. Bunu nasıl ekleriz.
Birde 2016 yılında olmayıp 2017 yılında yeni gelen ürünlerin de satışlarını göstermiyor.
Bunları ekleyen biri çıkar mı acaba ? Şimdiden teşekkür ederim.


WITH TABLOA
AS (SELECT '2016' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(STL.AMOUNT) AS MİKTAR2016,
        SUM(STL.LINENET) AS TUTAR2016
    FROM dbo.LG_016_01_STLINE AS STL
        INNER JOIN dbo.LG_016_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
    WHERE STL.TRCODE = 8
          AND ITM.CARDTYPE = 1
    GROUP BY ITM.NAME,
        ITM.CODE
   ),
TABLOB
AS (SELECT '2015' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(STL.AMOUNT) AS MİKTAR2015,
        SUM(STL.LINENET) AS TUTAR2015
    FROM dbo.LG_015_01_STLINE AS STL
        INNER JOIN dbo.LG_015_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
    WHERE STL.TRCODE = 8 /*TOPTAN SATIŞ*/
          AND ITM.CARDTYPE = 1
    GROUP BY ITM.NAME,
        ITM.CODE
   )
SELECT TABLOA.CODE,
    TABLOA.NAME,
    TABLOA.MİKTAR2016,
    TABLOB.MİKTAR2015,
    TABLOA.TUTAR2016,
    TABLOB.TUTAR2015,
    TABLOA.TUTAR2016 - TABLOB.TUTAR2015 AS FARK
FROM TABLOA
    INNER JOIN TABLOB
        ON TABLOB.NAME = TABLOA.NAME;

vedat_ozer

  • Ziyaretçi
Ynt: 2 SENE ARASI SATIŞ FARKLARI
« Yanıtla #1 : 23.11.2017, 16:03 »
Selamlar,

İade ile ilgili sorgu

Kod: [Seç]
WITH TABLOA
AS (
SELECT '2016' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.AMOUNT ELSE -STL.AMOUNT END) AS MİKTAR2016,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.VATMATRAH ELSE -STL.VATMATRAH END)AS TUTAR2016
    FROM dbo.LG_016_01_STLINE AS STL
        INNER JOIN dbo.LG_016_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
    WHERE   
      STL.LINETYPE IN(0)
      AND STL.CANCELLED =0
      AND STL.TRCODE IN(7,8,2,3)
    GROUP BY
    ITM.NAME,
        ITM.CODE
   ),
TABLOB
AS (SELECT '2015' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.AMOUNT ELSE -STL.AMOUNT END) AS MİKTAR2015,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.VATMATRAH ELSE -STL.VATMATRAH END) AS TUTAR2015
    FROM dbo.LG_015_01_STLINE AS STL
        INNER JOIN dbo.LG_015_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
     WHERE   
      STL.LINETYPE IN(0)
      AND STL.CANCELLED =0
      AND STL.TRCODE IN(7,8,2,3)
    GROUP BY
    ITM.NAME,
        ITM.CODE
   )
SELECT TABLOA.CODE,
    TABLOA.NAME,
    TABLOA.MİKTAR2016,
    TABLOB.MİKTAR2015,
    TABLOA.TUTAR2016,
    TABLOB.TUTAR2015,
    TABLOA.TUTAR2016 - TABLOB.TUTAR2015 AS FARK
FROM TABLOA
    INNER JOIN TABLOB
        ON TABLOB.NAME = TABLOA.NAME;

Karşılaştırma ile ilgili sorgu

Kod: [Seç]
WITH TABLOA
AS (
SELECT '2016' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.AMOUNT ELSE -STL.AMOUNT END) AS MİKTAR2016,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.VATMATRAH  ELSE -STL.VATMATRAH END)AS TUTAR2016
    FROM dbo.LG_016_01_STLINE AS STL
        INNER JOIN dbo.LG_016_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
    WHERE   
      STL.LINETYPE IN(0)
      AND STL.CANCELLED =0
      AND STL.TRCODE IN(7,8,2,3)
    GROUP BY
    ITM.NAME,
        ITM.CODE
   ),
TABLOB
AS (SELECT '2015' FİRMA,
        ITM.CODE,
        ITM.NAME,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.AMOUNT ELSE -STL.AMOUNT END) AS MİKTAR2015,
        SUM(CASE WHEN STL.TRCODE IN(7,8) THEN STL.VATMATRAH  ELSE -STL.VATMATRAH END) AS TUTAR2015
    FROM dbo.LG_015_01_STLINE AS STL
        INNER JOIN dbo.LG_015_ITEMS AS ITM
            ON ITM.LOGICALREF = STL.STOCKREF
     WHERE   
      STL.LINETYPE IN(0)
      AND STL.CANCELLED =0
      AND STL.TRCODE IN(7,8,2,3)
    GROUP BY
    ITM.NAME,
        ITM.CODE
   )
SELECT TABLOA.CODE,
    TABLOA.NAME,
    TABLOA.MİKTAR2016,
    TABLOB.MİKTAR2015,
    TABLOA.TUTAR2016,
    TABLOB.TUTAR2015,
    TABLOA.TUTAR2016 - TABLOB.TUTAR2015 AS FARK
FROM TABLOA
    LEFT OUTER JOIN TABLOB
        ON TABLOB.NAME = TABLOA.NAME;
« Son Düzenleme: 23.11.2017, 16:28 Gönderen: Vedat ÖZER »

Çevrimdışı emirfilar

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: 2 SENE ARASI SATIŞ FARKLARI
« Yanıtla #2 : 23.11.2017, 16:19 »
Vedat bey teşekkür ederim.

Fakat tutar kısımlarında yanlışlık var yanlış hesaplıyor.

vedat_ozer

  • Ziyaretçi
Ynt: 2 SENE ARASI SATIŞ FARKLARI
« Yanıtla #3 : 23.11.2017, 16:27 »
Selamlar,

Düzelttim kontrol edin

Çevrimdışı emirfilar

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: 2 SENE ARASI SATIŞ FARKLARI
« Yanıtla #4 : 23.11.2017, 16:37 »
Çok teşekkürler

Çok işime yaradı bu sorgu

vedat_ozer

  • Ziyaretçi
Ynt: 2 SENE ARASI SATIŞ FARKLARI
« Yanıtla #5 : 23.11.2017, 16:43 »
Rica Ederim.