Microsoft Certified Partner

 

 

Belirtilen Tarih Aralığı Bazında Müşteri Sipariş Miktarları


Müşteri ve Adres Bazında Satış Analizi


Raporun çalışma şekli ve amacı;

* Rapor müşteri ve adres bazında satış analizleri yapabilmek için tasarlanmıştır.

* Raporda müşteri kart bilgileri(CKART) ve satış hareketlerin (POS) ‘den yararlanmaktadır.

* Rapor dizaynı müşteri, semt ve adres bilgileri alt-alta istenen analizin tarih aralığı yan-yana listelenmektedir.

Amaç müşterilerin veya belirli bir semtin farklı tarih aralıklarında satış adetlerini karşılaştırmaktır. Bu rapor ile haftalar ve aylar arasında satış farklarını, Bayramdaki satışlar ile İş günü ve hafta sonu satış farklarını görebilmeniz mümkündür.

@şirket varchar(2) Hangi şirket raporlanmak istendi ise şirket kodu
@kod_bas varchar(15) Hangi cari kodlu müşteri/cariler raporlanmak isteniyor ise başlangıç değeri
@kod_bit varchar(15) Hangi cari kodlu müşteri/cariler raporlanmak isteniyor ise bitiş değeri
@cadı_bas varchar(15) Hangi cari isimli müşteri/cariler raporlanmak isteniyor ise başlangıç değeri
@cadı_bit varchar(15) Hangi cari isimli müşteri/cariler raporlanmak isteniyor ise bitiş değeri
@mahalle_bas varchar(15) Hangi mahalle raporlanmak isteniyor ise başlangıç değeri
@mahalle_bit varchar(15) Hangi mahalle raporlanmak isteniyor ise bitiş değeri
@sokak_bas varchar(15) Hangi sokak raporlanmak isteniyor ise başlangıç değeri
@sokak_bit varchar(15) Hangi sokak raporlanmak isteniyor ise bitiş değeri
@tarih1_bas datetime Analizi yapılmak istenen ilk tarih aralığının başlangıcı
@tarih1_bit datetime Analizi yapılmak istenen ilk tarih aralığının bitişi  
@tarih2_bas datetime Analizi yapılmak istenen ikinci tarih aralığının başlangıcı
@tarih2_bit datetime Analizi yapılmak istenen ikinci tarih aralığının bitişi
@tarih3_bas datetime Analizi yapılmak istenen üçüncü tarih aralığının başlangıcı
@tarih3_bit datetime Analizi yapılmak istenen üçüncü tarih aralığının bitişi 
@tarih4_bas datetime Analizi yapılmak istenen dördüncü tarih aralığının başlangıcı
@tarih4_bit datetime Analizi yapılmak istenen dördüncü tarih aralığının bitişi

Raporda Yer Alan Sütunlar


Müşteri Kodu: Cari kart da yazılan Cari Kodu alanı

Müşteri Adı:  Cari kart da yazılan Cari unvanı alanı

Telefon No:  Cari kart da yazılan Telefon Numarası alanı

Mahalle:  Cari kart da yazılan Mahalle alanı

Cadde/Sokak:  Cari kart da yazılan Cadde Sokak alanı

Apartman:  Cari kart da yazılan Apartman alanı

Tarih Aralığı-1:  Analizde raporlanan ilk tarih aralığının satış adetleri

Tarih Aralığı-2:  Analizde raporlanan ikinci tarih aralığının satış adetleri

Tarih Aralığı-3 :  Analizde raporlanan üçüncü tarih aralığının satış adetleri

Tarih Aralığı-4:   Analizde raporlanan dördüncü tarih aralığının satış adetleri

SQL CÜMLESİ


Create procedure POS_106 (@sirket varchar(2),

--alter procedure POS_106 (@sirket varchar(2),

@ckod_bas varchar(15), @ckod_bit varchar(15),

@cadi_bas varchar(15), @cadi_bit varchar(15),

@mahalle_bas varchar(15), @mahalle_bit varchar(15),

@sokak_bas varchar(15), @sokak_bit varchar(15),

@tarih1_bas datetime, @tarih1_bit datetime,

@tarih2_bas datetime, @tarih2_bit datetime,

@tarih3_bas datetime, @tarih3_bit datetime,

@tarih4_bas datetime, @tarih4_bit datetime,

@hareketli tinyint

) as
if @hareketli = 0 begin

select

KOD [Müşteri Kodu],

ADI [Müşteri Adı],

'('+substring(TELEFON,1,4)+') '+substring(TELEFON,5,3)+' '+substring(TELEFON,8,5) [Telefon No],

MAHALLE [Mahalle],

CADDESOKAK [Cadde/Sokak],

APARTMAN [Apartman],

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih1_bas and P.TARIH<=@tarih1_bit and P.TIP<>9),0) 'Tarih Aralığı-1',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih2_bas and P.TARIH<=@tarih2_bit and P.TIP<>9),0) 'Tarih Aralığı-2',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART.KOD and P.TARIH>=@tarih3_bas and P.TARIH<=@tarih3_bit and P.TIP<>9),0) 'Tarih Aralığı-3',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih4_bas and P.TARIH<=@tarih4_bit and P.TIP<>9),0) 'Tarih Aralığı-4'

from CKART where SIRKET=@sirket and KOD>=@ckod_bas and KOD<=@ckod_bit and ADI>=@cadi_bas and ADI<=@cadi_bit and MAHALLE>=@mahalle_bas and MAHALLE<=@cmahalle_bit and CADDESOKAK>=@csokak_bas and CADDESOKAK<=@sokak_bit

order by

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih4_bas and P.TARIH<=@tarih4_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih3_bas and P.TARIH<=@tarih3_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih2_bas and P.TARIH<=@tarih2_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih1_bas and P.TARIH<=@tarih1_bit and P.TIP<>9),0) desc

end
else if @hareketli = 1 begin

select

KOD [Müşteri Kodu],

ADI [Müşteri Adı],

'('+substring(TELEFON,1,4)+') '+substring(TELEFON,5,3)+' '+substring(TELEFON,8,5) [Telefon No],

MAHALLE [Mahalle],

CADDESOKAK [Cadde/Sokak],

APARTMAN [Apartman],

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih1_bas and P.TARIH<=@tarih1_bit and P.TIP<>9),0) 'Tarih Aralığı-1',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih2_bas and P.TARIH<=@tarih2_bit and P.TIP<>9),0) 'Tarih Aralığı-2',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih3_bas and P.TARIH<=@tarih3_bit and P.TIP<>9),0) 'Tarih Aralığı-3',

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih4_bas and P.TARIH<=@tarih4_bit and P.TIP<>9),0) 'Tarih Aralığı-4'

from CKART where SIRKET=@sirket and KOD>=@ckod_bas and KOD<=@ckod_bit and ADI>=@cadi_bas and ADI<=@cadi_bit and MAHALLE>=@cmahalle_bas and MAHALLE<=@cmahalle_bit and CADDESOKAK>=@csokak_bas and CADDESOKAK<=@csokak_bit and

(

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART.KOD and P.TARIH>=@tarih1_bas and P.TARIH<=@tarih1_bit and P.TIP<>9),0)>0 or

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART.KOD and P.TARIH>=@tarih2_bas and P.TARIH<=@tarih2_bit and P.TIP<>9),0)>0 or

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART.KOD and P.TARIH>=@tarih3_bas and P.TARIH<=@tarih3_bit and P.TIP<>9),0)>0 or

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART.KOD and P.TARIH>=@tarih4_bas and P.TARIH<=@tarih4_bit and P.TIP<>9),0)>0

)

order by

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih4_bas and P.TARIH<=@tarih4_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih3_bas and P.TARIH<=@tarih3_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih2_bas and P.TARIH<=@tarih2_bit and P.TIP<>9),0) desc,

isnull((select count(*) from POS P where P.SIRKET=@sirket and P.CKOD=CKART. KOD and P.TARIH>=@tarih1_bas and P.TARIH<=@tarih1_bit and P.TIP<>9),0) desc

end