Musteri Risk Sorgusu

Gönderen Konu: Musteri Risk Sorgusu  (Okunma sayısı 1659 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı xisouthros

  • Yeni Kullanıcı
  • *
  • Karma: 0
Musteri Risk Sorgusu
« : 01.03.2014, 14:27 »
Herkese selamlar,
şöyle bir sorgu hazırladım sorgu isteğime cevap veriyor ancak Çek Risk Tutarında şöyle bir sorun çıkıyor, Vadesi geldiyse ve tahsil edilmediyse çek riskine eklemem gerekiyor ancak tahsil durumunu sorgunun neresine koymalıyım? (2 haftadır çalıştığım bir sorgu bu sorguyu bedavaya bulamazsınız :) )

DECLARE @BasTarih VARCHAR(20)= '20140101', @SonTarih VARCHAR(20) = '20140227'

SELECT     
 CariKartAna.CODE AS [Cari Kod],
 CariKartAna.DEFINITION_ AS [Cari Ad],
 CariHesapHareketAna.AMOUNT AS [Açılış Bakiye],
  --Devir Çekleri
  (SELECT     ISNULL(SUM(CariKart.AMOUNT), 0) AS Expr1
  FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket
   INNER JOIN  LKSDB.dbo.LG_214_01_CSCARD AS CariKart ON CekSenetHareket.CSREF = CariKart.LOGICALREF
  WHERE      (CekSenetHareket.CARDREF = (SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetHareket.DEVIR = 1))
  AS [Devir Çekleri],
                     

(ISNULL((
SELECT SUM([Toplam Bakiye])
FROM (
 SELECT     
 SUM(Fatura.NETTOTAL) AS [Toplam Bakiye]
FROM         LKSDB.dbo.LG_214_01_INVOICE AS Fatura INNER JOIN
                      LKSDB.dbo.LG_214_CLCARD AS CariKart0 ON Fatura.CLIENTREF = CariKart0.LOGICALREF
WHERE     (Fatura.TRCODE = 8) AND (CariKart0.ACTIVE = 0)
GROUP BY CariKart0.CODE,Fatura.DATE_
HAVING      (CariKart0.CODE = CariKartAna.CODE)
AND (Fatura.DATE_ <  CONVERT(DATETIME, @BasTarih, 104) )
) AS A
),0) + CariHesapHareketAna.AMOUNT )- ISNULL((SELECT
                    SUM(C.AMOUNT) 'Alınan Ödemeler'
                    FROM LKSDB.dbo.LG_214_01_CLFLINE C
                    INNER JOIN LKSDB.dbo.LG_214_CLCARD CR ON C.CLIENTREF=CR.LOGICALREF
                    where C.TRCODE IN (31,61,62) AND C.DATE_ < CONVERT(DATE, @BasTarih,104) AND  CR.CODE = CariKartAna.Code ) ,0)
                   


 AS [Başlangıç Tarihi Bakiye] ,

(ISNULL((
SELECT SUM([Toplam Bakiye])
FROM (
 SELECT     
 SUM(Fatura.NETTOTAL) AS [Toplam Bakiye]
FROM         LKSDB.dbo.LG_214_01_INVOICE AS Fatura INNER JOIN
                      LKSDB.dbo.LG_214_CLCARD AS CariKart0 ON Fatura.CLIENTREF = CariKart0.LOGICALREF
WHERE     (Fatura.TRCODE = 8) AND (CariKart0.ACTIVE = 0)
GROUP BY CariKart0.CODE,Fatura.DATE_
HAVING      (CariKart0.CODE = CariKartAna.CODE)
AND (Fatura.DATE_ <  CONVERT(DATETIME, @SonTarih, 104) )
) AS A
),0)+ CariHesapHareketAna.AMOUNT) - ISNULL((SELECT
                    SUM(C.AMOUNT) 'Alınan Ödemeler'
                    FROM LKSDB.dbo.LG_214_01_CLFLINE C
                    INNER JOIN LKSDB.dbo.LG_214_CLCARD CR ON C.CLIENTREF=CR.LOGICALREF
                    where C.TRCODE IN (31,61,62) AND C.DATE_ < CONVERT(DATE, @SonTarih,104) AND  CR.CODE = CariKartAna.Code ) ,0)
                   
 AS [Bitiş Tarihi Bakiye] ,
                     

  ISNULL((SELECT SUM(NET_SATISLAR)
         FROM    (   SELECT     
                CASE MalzemeHareket.DECPRDIFF
                WHEN 0 THEN SUM(ISNULL(MalzemeHareket.VATAMNT,0) + ISNULL(MalzemeHareket.LINENET,0))
                WHEN 1 THEN (SUM(ISNULL(MalzemeHareket.VATAMNT,0) + ISNULL(MalzemeHareket.LINENET,0)) + CariHesapHareketAna.AMOUNT * - 1)
                ELSE -99
                END AS NET_SATISLAR
                FROM         LKSDB.dbo.LG_214_01_INVOICE as Fatura INNER JOIN
                                      LKSDB.dbo.LG_214_01_STLINE as MalzemeHareket  ON Fatura.LOGICALREF = MalzemeHareket.INVOICEREF INNER JOIN
                                      LKSDB.dbo.LG_214_CLCARD AS CariKart11 ON Fatura.CLIENTREF = CariKart11.LOGICALREF INNER JOIN
                                      LKSDB.dbo.LG_214_ITEMS AS Malzeme ON MalzemeHareket.STOCKREF = Malzeme.LOGICALREF
                GROUP BY CariKart11.CODE, Fatura.TRCODE, MalzemeHareket.DECPRDIFF, Fatura.DATE_
                HAVING      (CariKart11.CODE = CariKartAna.CODE) AND Fatura.DATE_ <= @SonTarih
)
 as NS),0) AS [Net Satış]

,
CariSonBakiyeAna.DEBIT - CariSonBakiyeAna.CREDIT AS [Bu gün Bakiyesi],
--Çek Risk Tutarı
  (SELECT     ISNULL(SUM(CekSenetKart2.AMOUNT), 0) AS Expr1
  FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket2
  INNER JOIN LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart2 ON CekSenetHareket2.CSREF = CekSenetKart2.LOGICALREF
  WHERE      (CekSenetHareket2.CARDREF = (SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetKart2.CURRSTAT IN (8, 4, 1, 2))
  AND (CONVERT(DATE, CekSenetKart2.DUEDATE, 104) > CONVERT(DATE,@SonTarih , 104))) AS [Çek Risk Tutarı],
--Ortalama Alacak
  ((ISNULL(CariHesapHareketAna.AMOUNT,0)  /*Açılış Bakiyesi*/
  +
    (SELECT     ISNULL(SUM(CekSenetKart3.AMOUNT), 0) AS Expr1
    FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket3
    INNER JOIN LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart3 ON CekSenetHareket3.CSREF = CekSenetKart3.LOGICALREF
    WHERE      (CekSenetHareket3.CARDREF =(SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetHareket3.DEVIR = 1))) /*Devir Çekleri*/
  +
  (ISNULL(CariSonBakiyeAna.DEBIT,0) - ISNULL(CariSonBakiyeAna.CREDIT,0))/*Bu gün bakiyesi*/
   +
  (SELECT     ISNULL(SUM(CekSenetKart4.AMOUNT), 0) AS Expr1
  FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket4
   INNER JOIN  LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart4 ON CekSenetHareket4.CSREF = CekSenetKart4.LOGICALREF
  WHERE      (CekSenetHareket4.CARDREF = (SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetKart4.CURRSTAT IN (8, 4, 1, 2))
  AND (CONVERT(DATE, CekSenetKart4.DUEDATE, 104) > CONVERT(DATE, @SonTarih, 104))) /*Çek Risk Tutarı*/
  ) / 2 AS [Ortalama Alacak],
                     
--Alacak Devir Hızı -- NetSatışlar / Ortalama Alacak                     
ROUND(
ISNULL(CariSonBakiyeAna.DEBIT,0)  /*Net Satışlar*/
    /
    /*Açılış Bakiyesi*/
  ISNULL(NULLIF((((ISNULL(CariHesapHareketAna.AMOUNT,0)
   +
   /*Devir Çekleri*/
    (SELECT     ISNULL(SUM(CekSenetKart5.AMOUNT), 0) AS Expr1
    FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket5
    INNER JOIN    LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart5 ON CekSenetHareket5.CSREF = CekSenetKart5.LOGICALREF
    WHERE      (CekSenetHareket5.CARDREF = (SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetHareket5.DEVIR = 1)))
   +
  /*Bu gün bakiyesi*/
  (ISNULL(CariSonBakiyeAna.DEBIT,0) - ISNULL(CariSonBakiyeAna.CREDIT,0))
   +
   /*Çek Risk Tutarı*/
  (SELECT     ISNULL(SUM(CekSenetKart6.AMOUNT), 0) AS Expr1
  FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket6
  INNER JOIN  LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart6 ON CekSenetHareket6.CSREF = CekSenetKart6.LOGICALREF
  WHERE      (CekSenetHareket6.CARDREF =(SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetKart6.CURRSTAT IN (8, 4, 1, 2))
  AND (CONVERT(DATE, CekSenetKart6.DUEDATE, 104) > CONVERT(DATE, @SonTarih, 104)))
  )/ 2),0),1) ,4)   AS [Alacak Devir Hızı],
 
                     
CONVERT(INT,CariHesapHareketAna.DATE_ - CONVERT(DATE, @SonTarih , 104)) * - 1 + 1 AS [Rapor Gün Sayısı],

   --ORTALAMA TAHSİL SÜRESİ

(CONVERT(INT, CariHesapHareketAna.DATE_ - CONVERT(DATE, @SonTarih, 104)) * - 1 + 1) --Rapor tarihinden bu güne kaç gün geçmiş /55
                      /
                     
                         --ALACAK DEVİR HIZI 
                       
ISNULL(NULLIF(
(
  ROUND(
ISNULL(CariSonBakiyeAna.DEBIT,0)  /*Net Satışlar*/
    /
    /*Açılış Bakiyesi*/
  ISNULL(NULLIF((((ISNULL(CariHesapHareketAna.AMOUNT,0)
   +
   /*Devir Çekleri*/
    (SELECT     ISNULL(SUM(CekSenetKart5.AMOUNT), 0) AS Expr1
    FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket5
    INNER JOIN    LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart5 ON CekSenetHareket5.CSREF = CekSenetKart5.LOGICALREF
    WHERE      (CekSenetHareket5.CARDREF = (SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetHareket5.DEVIR = 1)))
   +
  /*Bu gün bakiyesi*/
  (ISNULL(CariSonBakiyeAna.DEBIT,0) - ISNULL(CariSonBakiyeAna.CREDIT,0))
   +
   /*Çek Risk Tutarı*/
  (SELECT     ISNULL(SUM(CekSenetKart6.AMOUNT), 0) AS Expr1
  FROM          LKSDB.dbo.LG_214_01_CSTRANS AS CekSenetHareket6
  INNER JOIN  LKSDB.dbo.LG_214_01_CSCARD AS CekSenetKart6 ON CekSenetHareket6.CSREF = CekSenetKart6.LOGICALREF
  WHERE      (CekSenetHareket6.CARDREF =(SELECT LOGICALREF FROM LKSDB.dbo.LG_214_CLCARD
                              WHERE CODE = CariKartAna.CODE)) AND (CekSenetKart6.CURRSTAT IN (8, 4, 1, 2))
  AND (CONVERT(DATE, CekSenetKart6.DUEDATE, 104) > CONVERT(DATE, @SonTarih, 104)))
  )/ 2),0),1) ,4)

),0),1)
                   
                     AS [Ortalama Tahsil Süresi]   
 
                     
                     
                     

FROM         LKSDB.dbo.LG_214_CLCARD AS CariKartAna

 INNER JOIN LKSDB.dbo.LG_214_01_CLFLINE AS CariHesapHareketAna ON CariKartAna.LOGICALREF = CariHesapHareketAna.CLIENTREF
 INNER JOIN LKSDB.dbo.LG_214_01_GNTOTCL AS CariSonBakiyeAna ON CariKartAna.LOGICALREF = CariSonBakiyeAna.CARDREF
GROUP BY
CariKartAna.DEFINITION_,
CariKartAna.CODE,
CariKartAna.SPECODE4,
CariHesapHareketAna.AMOUNT,
CariHesapHareketAna.TRCODE,
CariSonBakiyeAna.DEBIT / 2,
CariSonBakiyeAna.DEBIT,
CariSonBakiyeAna.TOTTYP,
CariSonBakiyeAna.DEBIT - CariSonBakiyeAna.CREDIT,
CariSonBakiyeAna.CREDIT,
CariHesapHareketAna.DATE_
HAVING      (CariKartAna.SPECODE4 <> 'S') AND (CariHesapHareketAna.TRCODE = 14) AND (CariSonBakiyeAna.TOTTYP = 1)

Çevrimdışı hezarpare

  • LOGO Bayi
  • Logo Kullanıcısı Pro
  • *****
  • Karma: 0
Ynt: Musteri Risk Sorgusu
« Yanıtla #1 : 03.03.2014, 23:12 »
Hocam maasallah sirf sorgunun uzunluğubunu hak ediyor  :D emeğimize saglik Allah basarilarinizin devamini nasip etsin.

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Musteri Risk Sorgusu
« Yanıtla #2 : 04.03.2014, 00:36 »
Paytransa giden aynı kaydın CROSREF 'ini inceleyiniz .

Çevrimdışı xisouthros

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Musteri Risk Sorgusu
« Yanıtla #3 : 04.03.2014, 10:32 »
Hocam maasallah sirf sorgunun uzunluğubunu hak ediyor  :D emeğimize saglik Allah basarilarinizin devamini nasip etsin.

Teşekkürler :) Logo veri tabanını yeni öğreniyorum aslında :)

Çevrimdışı Joseph01

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: Musteri Risk Sorgusu
« Yanıtla #4 : 20.12.2019, 09:30 »
Merhaba ,
Sorguyu bitirebildiniz mi ? Son halini paylaşabilir misiniz rica etsem

Teşekkürler

Çevrimdışı ehliyet

  • Logo Kullanıcısı
  • **
  • Karma: 1
Ynt: Musteri Risk Sorgusu
« Yanıtla #5 : 13.02.2020, 09:03 »
Elinize sağlık faydalı bir rapor. Bitirebildiniz mi.?