2015 ve 2016 Yılı Satışlarını Aynı Sorguda Karşılaştırmak

Gönderen Konu: 2015 ve 2016 Yılı Satışlarını Aynı Sorguda Karşılaştırmak  (Okunma sayısı 936 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı bluedeath82

  • Yeni Kullanıcı
  • *
  • Karma: 0
Merhaba Arkadaşlar

Yıl sonu raporları için 2015 ve 2016 ürün satışlarını birbirleri ile karşılaştırmak istiyorum. Aşağıdaki bir tabloda ürünler için istemiş olduğum bir örnek bulunmaktadır. Yardımcı olacak arkadaşlar şimdiden gönülden çok teşekkür ediyorum.
Not : Tek sorguda böyle bir şey yapılabilir mi ?  Yılların firma numaraları birbirinden farklıdır. (015 =2015  016=2016 )

ürün kodu      ürün açıklaması        2015 adet   2016 adet    2015 ciro    2016 ciro
m.0001            elma                          10               17              5,00            8,50

Çevrimdışı Teknik21

  • Logo Kullanıcısı
  • **
  • Karma: 2
Sorguyu Çalıştırıp Sonucu yazarsanız.

Kod: [Seç]




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;
« Son Düzenleme: 04.09.2016, 21:23 Gönderen: Teknik21 »

Çevrimdışı cousen

  • Logo Uzman Kullanıcı
  • ****
  • Karma: 1
Sorguyu Çalıştırıp Sonucu yazarsanız.

Kod: [Seç]




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;

Rapor çok iyi çalışıyor burda ürünlerin birimler stok grup kodları cari hesap kodu yada ünvanı eklenirse çok kullanışlı olabilir.

Çevrimdışı Koray Ü.

  • Uzman Kullanıcı
  • Logo Uzmanı
  • *****
  • Karma: 8
toptan satış faturası kesilerken hizmet kalemi içeriyorsa sonuçlar yanlış dönüyor.. bilginize..

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
herşeyi devletten beklemeyin , çalışın , araştırın biraz :)

Çevrimdışı Teknik21

  • Logo Kullanıcısı
  • **
  • Karma: 2
Ana tablo bizden  , gerisi   sizden

Çevrimdışı bluedeath82

  • Yeni Kullanıcı
  • *
  • Karma: 0
Rapor kendime göre uyarladıktan sonra çok güzel olmuş emeği geçen herkese çok teşekkür ederim.
TabloA 2016 yılını kapsıyor ve TabloB 2015 yılını kapsamaktadır.
2015 yılında tüm satış yapılan ürünleri göstermiyor. Sadece 2016 daki ürünlere göre 2015 yılının satışlarını getirmektedir.
2016 ürünlerinin içerisine 2015 yılından 2016 yılana devredilmeyen ürünleri de getirebilir mi? 

Çevrimdışı Teknik21

  • Logo Kullanıcısı
  • **
  • Karma: 2
O zaman  INNER JOIN  yerine   LEFT JOIN veya  RIGTH JOIN yapınız..

vedat_ozer

  • Ziyaretçi
Selamlar,

Teknik21 vermiş olduğunuz paylaşım için teşekkür ederim.

Ben çoktan beri arıyodum :)


« Son Düzenleme: 19.09.2016, 10:58 Gönderen: vedat_ozer »