CREATE PROCEDURE AMCICO_REPORT_02
@text varchar(255)
AS
--set cursor_close_on_commit ON
-- *********************************************************************************************************************************************************************
-- TENTO REPORT JE PRIPRAVEN NA ZAKLADE KOMUNIKACE A POZADAVKU ZMENY ZE STRANY AMCICA -P. UMRIANOVE
-- A NA ZAKLADE KONZULTACE SE SLOVENSKOU POBOCKOU
-- OBENCE SLOVENSKA POBOCKA REPORTUJE POUZE UZAVRENE ZAZNAMY A NA KONCI KAMPANE NESMI BYT ZADNY ZAZNAM OTEVREN
-- jednani 3.8.2006
-- zmeny v reportech:
--1) buduci kontakt = nepredane (Status: Vyreseno v tomto skriptu)
--2) AVG CallTime nascitavat speaking u zakazniku (ktere jsou ve finale prodej) a potom teprve z nich udelat prumer vuci poctu prodanych
--3) reporty in/out se neresi podle posledniho stavu ale patri tam kde byl hovor zapocat, jestlize v Outboundu tak je jedno ze skoncil v inboundu
--4) v XLS upravit prumer average annuailzed premium
--5) v XLS pridat total hodnoty do key indicators
--6) vyresit exporty reportu do zipu
--7) ND change declaration, podivat se jestli se generuje zip i kdyz je po kampani
--8) nahravky na PT -> nahravat vsechny ? jsou v cene ?
--9) novy report total month do ktereho se budou nascitavat zaznamy po mesici i po ukonceni kampane
-- *********************************************************************************************************************************************************************
Declare @Datumy as datetime
Declare @pocet as int
Declare @CDPilot as varchar(255)
Declare @KONPilot as varchar(255)
Declare @KAMPAN varchar(6)
Set @Kampan=left(ltrim(@text),6)
declare @txtinfo1 nvarchar(255)
declare @txtinfo2 nvarchar(255)
declare @txtinfo3 nvarchar(255)
declare @txtinfo4 nvarchar(255)
declare @txtinfo5 nvarchar(255)
declare @txtinfo6 nvarchar(255)
declare @txtinfo7 nvarchar(255)
declare @txtinfo8 nvarchar(255)
declare @txtinfo9 nvarchar(255)
declare @txtinfo10 nvarchar(255)
declare @txtinfo11 nvarchar(255)
declare @txtinfo12 nvarchar(255)
declare @txtinfo13 nvarchar(255)
declare @txtinfo14 nvarchar(255)
declare @txtinfo15 nvarchar(255)
declare @txtinfo16 nvarchar(255)
declare @txtinfo17 nvarchar(255)
declare @txtinfo18 nvarchar(255)
/*filtr urrčující poyadavek na help*/
if patindex('%+help%',@text)>0
begin
set @txtinfo1='Tato statistika slouzi pro reportovani AT AMCICO
'
set @txtinfo2='Popis použití:
'
set @txtinfo3='Tento report slouzi jako zdroj pro XLS soubor
'
set @txtinfo4='K tomu aby neco vypocital je potreba zadat 6ti mistne cislo kampane
'
set @txtinfo5='Pro kampan cislo 1 je potreba do polozky TEXT vlozit toto: 000001
'
set @txtinfo6='Pro kampan cislo 11 je potreba vlozit : 000011
'
set @txtinfo7='Tento prikaz vrati 3 sloupce a hromadu radku, otevrete si ho v novem okne jako excel (viz hypertextovy odkaz) pod zadavacimi poly
'
set @txtinfo8='Zkopirujete 3 sloupce (a vsechny radky) a vlozite je do pripraveneho listu exeloveho reportu
'
set @txtinfo9=' Rucne je potreba do tohoto reportu do listu "key indicators" dopsat stavene hodiny v ramci jednotlivych dni
'
set @txtinfo10='Dostupné switche:
'
set @txtinfo11=' kampane zmeni data pro report kampani (2 sloupce a jiny excel)
'
set @txtinfo12=' +move zmeni vse co nema co delat v PT na AT, aby probehl spravny reporting. Toto se pouziva pouze na konci kazde kampane.Tato operace je nevratna !!!
'
set @txtinfo13=' +finalreport nepresouva ale pocita s neuzavrenymi zaznamy jako by byly uzavrene a priradi je do prislusne casti reportu (Buduci Kontakt ->>> Nepredane ,.....)
'
set @txtinfo14='
'
set @txtinfo15='
'
set @txtinfo16='
'
set @txtinfo17='
'
set @txtinfo18='
'
select @txtinfo1+@txtinfo2+@txtinfo3+@txtinfo4+@txtinfo5+@txtinfo6+@txtinfo7+@txtinfo8+@txtinfo9+@txtinfo10+@txtinfo11+@txtinfo12+@txtinfo13+@txtinfo14+@txtinfo15+@txtinfo16+@txtinfo17+@txtinfo18
return
end
/*
if patindex('%+move%',@text)>0
begin
-- ************************************************************************************************************************************
-- nejdriv updatujeme zaznamy ktere jsou provedeny v Pasivu a patri do AT
-- ************************************************************************************************************************************
update cd000000
set pilot='OSTRA_'+right(tmmcmpno,3)+'_Automat_'+PILOT
where vysledok in
(
'Budúci kontakt',
'Dlhodobo neprítomný',
'Fax',
'Halali',
'hlasova schranka',
'Nedvíha',
'Odstahovaný',
'Omyl',
'Ozve sa sám',
'V databáze je aj manžel/ka',
'Volanie na nové císlo',
'Vycerpaný pocet pokusov',
'Záznamník',
'Zomrel'
)
and pilot='pasiv_novy'
and tmmcmpno=@Kampan
update kontakt
set pilot='OSTRA_'+right((select top 1 tmmcmpno from cd000000 where cd000000.id=kontakt.id),3)+'_Automat_'+PILOT
where vysledok in
(
'Budúci kontakt',
'Dlhodobo neprítomný',
'Fax',
'Halali',
'hlasova schranka',
'Nedvíha',
'Odstahovaný',
'Omyl',
'Ozve sa sám',
'V databáze je aj manžel/ka',
'Volanie na nové císlo',
'Vycerpaný pocet pokusov',
'Záznamník',
'Zomrel'
)
and pilot='pasiv_novy'
and (select top 1 tmmcmpno from cd000000 where cd000000.id=kontakt.id)=@Kampan
-- ************************************************************************************************************************************
-- konec updatu
-- ************************************************************************************************************************************
end
*/
-- naplnime docasnou TBL pouze daty ktere odpovidaji vybrane kampani,m
select cast( (left(CD.Datum_kontaktu,4)+ '-' +substring(CD.Datum_kontaktu,5,2)+ '-' +substring(CD.Datum_kontaktu,7,2) ) as datetime) as CD_SQL_Datum , -- normalni SQL datum
CD.*
INTO #CD -- data
from CD000000 as CD (NOLOCK)
where TMMCMPNO=@KAMPAN
-- naplnime docasnou TBL pouze daty ktere odpovidaji vybrane kampani
select cast( (left(KON.Datum_kontaktu,4)+ '-' +substring(KON.Datum_kontaktu,5,2)+ '-' +substring(KON.Datum_kontaktu,7,2) ) as datetime) as SQL_Datum , -- normalni SQL datum
KON.*
INTO #KON -- kontakt
from kontakt as KON (NOLOCK)
inner join #CD as CD (NOLOCK) on CD.ID=KON.ID
--vytvorime docasnou TBL ktera bude slouzit jako zdroj pro reporty
Create Table #EXP
(
-- ID INT PRIMARY KEY,
Datum datetime,
IN_OUT int,
Typ int,
Pocet int,
TXT nvarchar(25)
)
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// AKTIV
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-- Pripravime si tabulku do ktere budeme scitat ty yrusenie kupy ktere jsou i presto vsechno prodej = datum yruseni je vetsi jak datum prodeje
Create Table #FDXSUM (datum datetime,Pocet int)
--******************************
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=0
--## TYP=1
--## Nabidka Varianta 1
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum,
0 as IN_OUT,
1 as Typ,
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV1 ='y'
and KON.pilot!='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
select SQL_DATUM as datum,
count(CD.ID) as pocet_prodej_navic,
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDXV1 -- nova tabulka
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)>left(kon.datum_kontaktu,8) )
and CD.LIONFDXV1 ='y'
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV1
where KONpilot!='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD=PT a KON<>PT nebo CD<>PT and KON<>PT protoze jedine tak to patri do AT
-- ale staci jen kde KON neni PT = prodej se uskutecnil na AT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=0 and Typ=1)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,1,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=1 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro CLOSED RECORD pripravime take pocty
if @CDpilot='pasiv_novy' and @KONPilot!='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz AT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM (datum,POCET) values (@datumy,0)
Update #FDXSUM set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=0
--## TYP=2
--## Nabidka Varianta 2
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum,
0 as IN_OUT,
2 as Typ,
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV2 ='y'
and KON.pilot!='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
select SQL_DATUM as datum,
count(CD.ID) as pocet_prodej_navic,
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDXV2 -- nova tabulka
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)>left(kon.datum_kontaktu,8) )
and CD.LIONFDXV2 ='y'
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV2
where KONpilot!='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD=PT a KON<>PT nebo CD<>PT and KON<>PT protoze jedine tak to patri do AT
-- ale staci jen kde KON neni PT = prodej se uskutecnil na AT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=0 and Typ=2)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,2,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=2 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro closed record pripravime take pocty
if @CDpilot='pasiv_novy' and @KONPilot!='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz AT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM (datum,POCET) values (@datumy,0)
Update #FDXSUM set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=0
--## TYP=3
--## Nabidka Varianta 3
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum,
0 as IN_OUT,
3 as Typ,
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV3 ='y'
and KON.pilot!='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
select SQL_DATUM as datum,
count(CD.ID) as pocet_prodej_navic,
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDXV3 -- nova tabulka
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)>left(kon.datum_kontaktu,8) )
and CD.LIONFDXV3 ='y'
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV3
where KONpilot!='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD=PT a KON<>PT nebo CD<>PT and KON<>PT protoze jedine tak to patri do AT
-- ale staci jen kde KON neni PT = prodej se uskutecnil na AT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=0 and Typ=3)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,3,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=3 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro closed record pripravime take pocty
if @CDpilot='pasiv_novy' and @KONPilot!='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz AT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM (datum,POCET) values (@datumy,0)
Update #FDXSUM set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=0
--## TYP=4
--## Nabidka Varianta 4
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum,
0 as IN_OUT,
4 as Typ,
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV4 ='y'
and KON.pilot!='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
select SQL_DATUM as datum,
count(CD.ID) as pocet_prodej_navic,
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDXV4 -- nova tabulka
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)>left(kon.datum_kontaktu,8) )
and CD.LIONFDXV4 ='y'
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV4
where KONpilot!='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD=PT a KON<>PT nebo CD<>PT and KON<>PT protoze jedine tak to patri do AT
-- ale staci jen kde KON neni PT = prodej se uskutecnil na AT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=0 and Typ=4)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,4,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=4 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro closed record pripravime take pocty
if @CDpilot='pasiv_novy' and @KONPilot!='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz AT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM (datum,POCET) values (@datumy,0)
Update #FDXSUM set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
-- TEST
--select * from #FDXSUM
-- TEST KONEC
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=5 DeadRingTone=Halali nebo Omyl
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 5 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where ( vysledok='Halali' or vysledok='Omyl' ) and pilot!='pasiv_novy' group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=6 PersonMoved=odstahovany
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 6 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Odstahovaný' and pilot!='pasiv_novy' group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=7 AnsweringMachine=zaznamnik
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 7 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Záznamník' and pilot!='pasiv_novy' group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=8 Fax
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 8 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Fax' and pilot!='pasiv_novy' group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=9 Zomrel
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 9 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Zomrel' and pilot!='pasiv_novy' group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=10 Exhausted - Vycerpany pocet pokusov
--## Zmeneno na per hlava a ne pokusy
if patindex('%+finalreport%',@text)=0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 10 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Vycerpaný pocet pokusov' and pilot!='pasiv_novy' group by CD_SQL_DATUM
if patindex('%+finalreport%',@text)>0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 10 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok in ('Vycerpaný pocet pokusov','Nedvíha','Volanie na nové císlo') and pilot!='pasiv_novy' group by CD_SQL_DATUM -- u finalreportu se pocita buduci kontakt jako vycerpany pocet pokusu
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=11 other
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 11 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok in ( 'Dlhodobo neprítomný',
'V databáze je aj manžel/ka'
)
and pilot!='pasiv_novy'
group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=12 Closed Records >> positiv + negativ + unreached
-- kvuli duplicitam va halali , omzl a podobne se to nemohlo brat z tabulky KON
-- pokud je halali closed record, nesmi se jiz volat
if patindex('%+finalreport%',@text)=0
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_Datum as datum, 0 as IN_OUT, 12 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok in (
'Predané',
'Zmena kúpy',
'Nepredané',
'Halali',
'Omyl',
'Odstahovaný',
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Zomrel',
'Zrušenie kúpy', -- at uze je to ve finale prodej nebo ne, nevadi to tady
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Vycerpaný pocet pokusov'
)
and pilot!='pasiv_novy'
group by CD_SQL_Datum
if patindex('%+finalreport%',@text)>0
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_Datum as datum, 0 as IN_OUT, 12 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok in (
'Predané',
'Zmena kúpy',
'Nepredané',
'Halali',
'Omyl',
'Odstahovaný',
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Zomrel',
'Zrušenie kúpy', -- at uze je to ve finale prodej nebo ne, nevadi to tady
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Vycerpaný pocet pokusov',
'Budúci kontakt',
'Nedvíha',
'Ozve sa sám',
'Volanie na nové císlo'
)
and pilot!='pasiv_novy'
group by CD_SQL_Datum
-- Pridani prodeju s finalnim stavem Zrusenie kupy - protoze i tyto zaznamy jsou prodej
-- jsou to pouze ti co jsou puvodem prodej z AT a zruseni je na PT
-- hodnoty pro #FDXSUM jsou pocitany prubezne v casti procedur PRODEJE FDX1 az 4 (nahore ve skriptu)
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET FROM #FDXSUM
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=0 and Typ=12)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,12,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=12 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
FETCH NEXT FROM Update_Data INTO @datumy,@pocet
END
CLOSE Update_Data
DEALLOCATE Update_Data
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- POZOR>>> zde by se mel provadet take odecet tech zrusenie kupy ktere jsou jako PRODEJ ale na PT (ikdyz konci na AT)
-- TATO CAST SKRIPTU JE Z USPORNYCH DUVODU PRESUNUTA DO CASTI PROGRAMU pro vypocet NEGATIVE na AT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=13 Pocet Pokusu Attemps
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 0 as IN_OUT, 13 as Typ, count(ID) as Pocet from #KON (NOLOCK)
where pilot!='pasiv_novy'
group by SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=0 TYP=14 nepredane total
--## Zmeneno na per hlava a ne pokusy
if patindex('%+finalreport%',@text)=0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 14 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='Nepredané' and pilot!='pasiv_novy' group by CD_SQL_DATUM
if patindex('%+finalreport%',@text)>0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 0 as IN_OUT, 14 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok in ('Nepredané','Ozve sa sám','Budúci kontakt') and pilot!='pasiv_novy' group by CD_SQL_DATUM -- je to jako nepredane i ozve sa sam
-- zde je potreba doresit zruseni kupy ve stejny den jako byl prodej, protoze tento stav spada take do NEPRODAL
-- pripravime si vsechny varianty NEGATIVE=neprodal tam kde je datum yruseni shodny s datumem prodeje
--print 'UPDATE NEPRODEJ'
select SQL_DATUM as datum,
count(CD.ID) as pocet,
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDX_NEGATIVE_ONLY -- nova tabulka NEGATIVE
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)=left(kon.datum_kontaktu,8) ) -- datum se rovna takze to neni prodej ale negative !!!!!!!!
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot
--test start
--select * from #FDX_NEGATIVE_ONLY --where CDpilot!='pasiv_novy'
--test konec
-- projede zaznamy s datumama a pricte negative kter jsou @CDpilot<>'pasiv_novy'
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET,CDPilot,KONPilot FROM #FDX_NEGATIVE_ONLY (NOLOCK) -- z tabulky NEGATIVE
where CDpilot!='pasiv_novy' -- toto vezme NEGATIVE vysledky ale jen ty ktere ve finale patri do AT
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=0 and Typ=14)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,14,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=0 and Typ=14 -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
-- prirpava pro odecteni prodeju ktere patri na PT nikoliv na AT ackoliv posledni stav yrusenie kupi maji na AT
-- priprava tabulky positive only , bude se hodit abychom nemuseli poscitavat positiv z jednotlivych FDX1 az 4
select SQL_DATUM as datum,
count(CD.ID) as pocet,
CD.ID as ID, -- priprava pro statistiku agentu, tento sloupec neni nutny pro tuto statistiku ale pro statistiku agentu ano
KON.Operator as Operator, -- priprava pro statistiku agentu, tento sloupec neni nutny pro tuto statistiku ale pro statistiku agentu ano -- yajima nas puvodce prodeje = y tabulky KONtakt
CD.pilot as CDpilot,
KON.pilot as KONpilot
into #FDX_POSITIVE_ONLY -- nova tabulka
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( CD.vysledok='Zrušenie kúpy' and left(CD.Datum_kontaktu,8)>left(kon.datum_kontaktu,8) )
and kon.Vysledok='predané' -- je treba zajistit aby v KONTAKTECH nebylo vice prodeju jak jeden !!!!!!
group by SQL_DATUM,CD.Pilot,KON.Pilot,CD.ID,KON.Operator
-- projede zaznamy s datumama a pricte negative kter jsou @CDpilot<>'pasiv_novy' and KONpilot='pasiv_novy'
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET,CDPilot,KONPilot FROM #FDX_POSITIVE_ONLY (NOLOCK) -- z tabulky POSITIVE
where CDpilot!='pasiv_novy' -- toto vezme POSITIVE prodeje ktere patri do PT a bude je odecitat
and KONpilot='pasiv_novy' -- toto vezme POSITIVE prodeje ktere patri do PT a bude je odecitat
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=0 and Typ=14)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,14,0)
Update #EXP set POCET=POCET-@POCET where datum=@datumy and IN_OUT=0 and Typ=14 -- ODECTENI PRODEJU ktere patri do PT z jiz pripravene tabulky podle datumu
-- Z USPORNYCH DUVODU JE ZDE I SKRIPT PRO ODECET TOTAL RECORD CLOSED
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=0 and Typ=12)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,0,12,0)
Update #EXP set POCET=POCET-@POCET where datum=@datumy and IN_OUT=0 and Typ=12 -- ODECTENI PRODEJU ktere patri do PT z jiz pripravene tabulky podle datumu
-- KONEC SKRIPTU PRO ODECT TOTAL RECORD CLOSED
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
/*
select * from #FDX_POSITIVE_ONLY
*/
--## KONEC vypoctu
--##################################################################
--print 'PASIV'
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// PASIV
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-- POZOR NEKDY SE STANE ZE JSOU 2 KONTAKTI PRODEJE NA 1 CD ZAZNAM, POTOM CISLA NESEDI A JE POTREBA SMAZAT DUPLICITNI ZAZNAM V KONTAKTECH
-- Pripravime si tabulku do ktere budeme scitat ty yrusenie kupy ktere jsou i presto vsechno prodej = datum yruseni je vetsi jak datum prodeje
Create Table #FDXSUM_PT (datum datetime,Pocet int)
--******************************
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=1
--## TYP=1
--## Nabidka Varianta 1
insert into #EXP (Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum, 1 as IN_OUT, 1 as Typ, count(KON.ID) as Pocet from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV1 ='y'
and KON.pilot='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV1
where KONpilot='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD<>PT a KON=PT nebo CD=PT and KON=PT protoze jedine tak to patri do PT
-- ale staci jen kde KON je PT = prodej se uskutecnil na PT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=1 and Typ=1)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,1,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=1 and Typ=1 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro CLOSED RECORD pripravime take pocty
if @CDpilot!='pasiv_novy' and @KONPilot='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz PT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM_PT where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM_PT (datum,POCET) values (@datumy,0)
Update #FDXSUM_PT set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=1
--## TYP=2
--## Nabidka Varianta 2
insert into #EXP (Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum, 1 as IN_OUT, 2 as Typ, count(KON.ID) as Pocet from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV2 ='y'
and KON.pilot='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV2
where KONpilot='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD<>PT a KON=PT nebo CD=PT and KON=PT protoze jedine tak to patri do PT
-- ale staci jen kde KON je PT = prodej se uskutecnil na PT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=1 and Typ=2)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,2,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=1 and Typ=2 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro CLOSED RECORD pripravime take pocty
if @CDpilot!='pasiv_novy' and @KONPilot='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz PT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM_PT where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM_PT (datum,POCET) values (@datumy,0)
Update #FDXSUM_PT set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=1
--## TYP=3
--## Nabidka Varianta 3
insert into #EXP (Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum, 1 as IN_OUT, 3 as Typ, count(KON.ID) as Pocet from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV3 ='y'
and KON.pilot='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV3
where KONpilot='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD<>PT a KON=PT nebo CD=PT and KON=PT protoze jedine tak to patri do PT
-- ale staci jen kde KON je PT = prodej se uskutecnil na PT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=1 and Typ=3)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,3,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=1 and Typ=3 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro CLOSED RECORD pripravime take pocty
if @CDpilot!='pasiv_novy' and @KONPilot='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz PT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM_PT where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM_PT (datum,POCET) values (@datumy,0)
Update #FDXSUM_PT set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=1
--## TYP=4
--## Nabidka Varianta 4
insert into #EXP (Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum, 1 as IN_OUT, 4 as Typ, count(KON.ID) as Pocet from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV4 ='y'
and KON.pilot='pasiv_novy'
group by SQL_DATUM
-- pricteni stavu pri "zrusenie kupy"
-- pravidlo>>> pokud je datum zrusenie kupy jine nez datum prodeje je to PRODEJ, aproto se pricte k prodeji
-- projede vypocitane zaznamy a updatuje tabulku
-- kaydz datum ma svuj pocet yrusenzch koupi, proto se FETCHEM projede a zupdatuje
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET_PRODEJ_NAVIC,CDPilot,KONPilot FROM #FDXV4
where KONpilot='pasiv_novy' -- tato podminka tu musi byt, jak by se uzavreny prodej na pasivu pocital jako aktiv a nesedely by pocty
-- pricete se pouze pokud je to prodej a CD<>PT a KON=PT nebo CD=PT and KON=PT protoze jedine tak to patri do PT
-- ale staci jen kde KON je PT = prodej se uskutecnil na PT je jedno kde to bylo pak zruseno, datum je osetren v selektu predtim
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP where datum=@datumy and IN_OUT=1 and Typ=4)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,4,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=1 and Typ=4 -- pricteni poctu yrusenie kupy z jiz pripravene tabulky
-- pro CLOSED RECORD pripravime take pocty
if @CDpilot!='pasiv_novy' and @KONPilot='pasiv_novy' -- tak tady je potreba vyresit pricitani jen zaznamu ktere jsou pasiv,(protoze v TOTAL RECORD CLOSED jiz PT zrusenie kupy mame)
begin -- toto je vlastne pricteni zaznamu ktere konci jako pasiv ale prodej byl predtim udelany jako aktiv
-- pokud je prodej v pasivu tak se musi pricist az v pasivu
if (select count (*) from #FDXSUM_PT where datum=@datumy)=0 -- zjistime jestli datum existuje, pokud ne pridame jej s pocetm 0
insert into #FDXSUM_PT (datum,POCET) values (@datumy,0)
Update #FDXSUM_PT set POCET=POCET+@POCET where datum=@datumy -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
end
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji :
--## IN=1
--## TYP=8
--## Nabidka Varianta zruseno ackoliv prodano outboundem
-- TADY JE POTREBA VYMYSLET ZMENU S NASLEDUJICIM PRAVIDLEM>
-- POKUD JE ZRUSENI JESTE TEN DEN TAK JE TO ZRUSENO
-- POKUD JE ZRUSENI NASLEDUJICI DEN TAK JE TO PRODEJ - PROTOZE JIZ ODESLY EXPORTY DENNICH DAT DO AMCICA
-- SLOVACI TOTO NEREPORTUJI
insert into #EXP (Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum, 1 as IN_OUT, 8 as Typ, count(KON.ID) as Pocet from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where CD.vysledok='Zrušenie kúpy' --zmena z KON. na CD.
and ( CD.LIONFDXV1 ='y'
or CD.LIONFDXV2 ='y'
or CD.LIONFDXV3 ='y'
or CD.LIONFDXV4 ='y'
)
and KON.pilot='pasiv_novy'
group by SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=1 TYP=6 Closed Records PT
-- v tomto pripade je to jen negativ + positiv
-- kvuli duplicitam v halali , omyl a podobne se to nemohlo brat z tabulky KON
-- pokud je halali closed record, nesmi se jiz volat
if patindex('%+finalreport%',@text)=0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_Datum as datum, 1 as IN_OUT, 6 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok in ( 'Nepredané',
'Predané',
'Zmena kúpy',
'Zrušenie kúpy'
)
and pilot='pasiv_novy'
group by CD_SQL_Datum
if patindex('%+finalreport%',@text)>0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_Datum as datum, 1 as IN_OUT, 6 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok in ( 'Nepredané',
'Predané',
'Zmena kúpy',
'Ozve sa sám', -- se na konci kampane pocita jako nepredane
'Zrušenie kúpy'
)
and pilot='pasiv_novy'
group by CD_SQL_Datum
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=1 TYP=5 Negativ PT
if patindex('%+finalreport%',@text)=0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 1 as IN_OUT, 5 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok='nepredané' and pilot='pasiv_novy' group by CD_SQL_DATUM
if patindex('%+finalreport%',@text)>0 insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 1 as IN_OUT, 5 as Typ, count(ID) as Pocet from #CD (NOLOCK) Where vysledok in ('nepredané','Ozve sa sám') and pilot='pasiv_novy' group by CD_SQL_DATUM -- u final reportu se pocita i ozve sa sam do nepredanych
-- zde je potreba doresit zruseni kupy ve stejny den jako byl prodej, protoze tento stav spada take do NEPRODAL
-- pripravime si vsechny varianty NEGATIVE=neprodal tam kde je datum yruseni shodny s datumem prodeje
-- POUZIJEME TABULKU NEGATIVE Z AT (protoze neni zatim rozliseno jestli je to z AT nebo PT,tato hodnota je ve sloupci KONpilot a CDpilot)
-- projede zaznamy s datumama a pricte negative kter jsou @CDpilot='pasiv_novy'
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET,CDPilot,KONPilot FROM #FDX_NEGATIVE_ONLY (NOLOCK) -- z tabulky NEGATIVE
where CDpilot='pasiv_novy' -- toto vezme NEGATIVE ktere patri do PT a bude je pricitat
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=1 and Typ=5)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,5,0)
Update #EXP set POCET=POCET+@POCET where datum=@datumy and IN_OUT=1 and Typ=5 -- pricteni poctu zrusenie kupy z jiz pripravene tabulky
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
-- prirpava pro odecteni prodeju ktere patri na AT nikoliv na PT ackoliv posledni stav Zrusenie kupi maji na PT
-- pouzijeme tabulku positive only , bude se hodit abychom nemuseli poscitavat positiv z jednotlivych FDX1 az 4
-- projede zaznamy s datumama a pricte negative kter jsou @CDpilot='pasiv_novy' and KONpilot!='pasiv_novy'
DECLARE Update_Data CURSOR FOR
SELECT DATUM,POCET,CDPilot,KONPilot FROM #FDX_POSITIVE_ONLY (NOLOCK) -- z tabulky POSITIVE
where CDpilot='pasiv_novy' -- toto vezme POSITIVE prodeje ktere patri do AT a bude je odecitat
and KONpilot!='pasiv_novy' -- toto vezme POSITIVE prodeje ktere patri do AT a bude je odecitat
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
WHILE @@FETCH_STATUS = 0
BEGIN
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=1 and Typ=5)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,5,0)
Update #EXP set POCET=POCET-@POCET where datum=@datumy and IN_OUT=1 and Typ=5 -- ODECTENI PRODEJU ktere patri do AT z jiz pripravene tabulky podle datumu
-- Z USPORNYCH DUVODU JE ZDE I SKRIPT PRO ODECET TOTAL RECORD CLOSED
if (select count (*) from #EXP (NOLOCK) where datum=@datumy and IN_OUT=1 and Typ=6)=0 -- osetreni stavu kdyz by neexistoval datum a hodnota alespon 0
insert into #EXP (datum,IN_OUT,Typ,POCET) values (@datumy,1,6,0)
Update #EXP set POCET=POCET-@POCET where datum=@datumy and IN_OUT=1 and Typ=6 -- ODECTENI PRODEJU ktere patri do AT z jiz pripravene tabulky podle datumu
-- KONEC SKRIPTU PRO ODECT TOTAL RECORD CLOSED
FETCH NEXT FROM Update_Data INTO @datumy,@pocet,@CDPilot,@KONPilot
END
CLOSE Update_Data
DEALLOCATE Update_Data
--select * from #FDX_NEGATIVE_ONLY
--select * from #FDX_POSITIVE_ONLY
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=1 TYP=7 Total incalls
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 1 as IN_OUT, 7 as Typ, count(ID) as Pocet from #KON (NOLOCK)
where pilot='pasiv_novy'
group by SQL_DATUM
--## KONEC vypoctu
--##################################################################
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=1 TYP=9 nedokoncene zaznamy PT
--## Zmeneno na per hlava a ne pokusy
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select CD_SQL_DATUM as datum, 1 as IN_OUT, 9 as Typ, count(ID) as Pocet from #CD (NOLOCK)
Where vysledok='Budúci kontakt'
and pilot='pasiv_novy'
group by CD_SQL_DATUM
--## KONEC vypoctu
--##################################################################
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// REJECT
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--##################################################################
--## Spocitame hodnotu a ulozime ji : IN=2 TYP=1 az 13
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 1 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Okamžité odmietnutie pre akoukoľvek prezentáciou ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 2 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Tohto času ma to nezaujíma' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 3 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Chcel by som niečo vidieť na papieri predtým, než sa rozhodnem' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 4 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Už mám poistné programy ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 5 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Už mám poistné programy v inej spoločnosti ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 6 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Nemôžem si to dovoliť ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 7 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Nechcem byť nahrávaný' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 8 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Som nespokojný so svojim brokerským partnerom/agentom ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 9 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Som nespokojný s AMSLICO ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 10 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Chcel by som krytie aj choroby' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 11 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Predskutujem to so svojim agentom/poradcom' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 12 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Mám svojho agenta/poradcu ' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 13 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Nepoistiteľný' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 14 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Nechcem udať dôvod' group by SQL_DATUM
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select SQL_DATUM as datum, 2 as IN_OUT, 15 as Typ, count(ID) as Pocet from #KON (NOLOCK) Where vysledok='Nepredané' and dovod='Túto zmluvu platí zamestnávateľ' group by SQL_DATUM
--## KONEC vypoctu
--##################################################################
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// CONTACTS vs ATTEMPS
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Select CD.ID,
(select count (*) from #KON where CD.ID=ID) as POCET,
--!!!!!!! mozna ze tam ma byt misto #KON - #CD aby se resilo skutecny pocet prodeju a ne pokusu o prodej
-- (select vysledok from #KON where kontakt_ID=(select max(kontakt_ID) from #KON where CD.ID=ID)) as LASTSTATUS
CD.vysledok as LASTSTATUS
INTO #CvsA01
from #CD as CD (NOLOCK)
--##################################################################
--## CLOSED CONTACTS
-- pouze closed contacts
Create table #CVSA02 (CONTACTS INT,POCET INT)
if patindex('%+finalreport%',@text)=0
insert into #CVSA02 (CONTACTS,POCET)
select POCET as CONTACTS,
count(ID) POCET
-- into #CvsA02
from #CvsA01
where LASTSTATUS in ( 'Halali',
'Nepredané',
'Odstahovaný',
'Omyl',
'Predané',
'Vycerpaný pocet pokusov',
'Zmena kúpy',
'Zomrel',
'Zrušenie kúpy', -- predal nebo nepredal tady je to jedno
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax',
'Zrušenie kúpy' -- prodal neprodal dle externi logikz , tadz je to jedno
)
group by POCET
/* original
select POCET as CONTACTS,
count(ID) POCET
into #CvsA02
from #CvsA01
where LASTSTATUS in ( 'Halali',
'Nepredané',
'Odstahovaný',
'Omyl',
'Predané',
'Vycerpaný pocet pokusov',
'Zmena kúpy',
'Zomrel',
'Zrušenie kúpy', -- predal nebo nepredal tady je to jedno
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax'
)
group by POCET
*/
if patindex('%+finalreport%',@text)>0
insert into #CVSA02 (CONTACTS,POCET)
select POCET as CONTACTS,
count(ID) POCET
-- into #CvsA02
from #CvsA01
where LASTSTATUS in ( 'Predané',
'Zmena kúpy',
'Nepredané',
'Halali',
'Omyl',
'Odstahovaný',
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Zomrel',
'Zrušenie kúpy', -- at uze je to ve finale prodej nebo ne, nevadi to tady
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Vycerpaný pocet pokusov',
'Budúci kontakt',
'Nedvíha',
'Ozve sa sám',
'Volanie na nové císlo'
)
group by POCET
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 1 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=1
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 2 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=2
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 3 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=3
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 4 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=4
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 5 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=5
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 6 as Typ, POCET as Pocet from #CvsA02 (NOLOCK) Where CONTACTS=6
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 3 as IN_OUT, 7 as Typ, isnull(sum(POCET),0) as Pocet from #CvsA02 (NOLOCK) Where CONTACTS>6
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## SALES CONTACTS
-- pouze predane a zmena kupy
select POCET as CONTACTS,
count(ID) POCET
into #CvsA03
from #CvsA01
where LASTSTATUS in ('Predané','Zmena kúpy')
group by POCET
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 0 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=0
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 1 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=1
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 2 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=2
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 3 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=3
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 4 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=4
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 5 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=5
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 6 as Typ, POCET as Pocet from #CvsA03 (NOLOCK) Where CONTACTS=6
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 4 as IN_OUT, 7 as Typ, isnull(sum(POCET),0) as Pocet from #CvsA03 (NOLOCK) Where CONTACTS>6
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- zatim to udelame jako predpoklad na druhz kontakt
-- prvni kontakt jako prodej druhz kontakt jako zruseni
-- spravne by vsak melo byt rozdeleni podle skutecneho poctu kontaktu - jde ciste o spravne zarazeni
Update #EXP set POCET=POCET+(select count (*) from #FDX_POSITIVE_ONLY) where datum='2990-01-01' and IN_OUT=4 and Typ=2
-- OLD >>>vyresit presuny prodeje a neprodeje ve stavu zrusenie kupy
-- OLD >>> mozna si pripravit neco na zaklade tabulek pro PT a AT s ID zaznamem a pak to resit jednoduseji
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## NOT CONTACTED YET
-- jeste nekontaktovane - toto je navic
select POCET as CONTACTS,
count(ID) POCET
into #CvsA04
from #CvsA01
group by POCET
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 5 as IN_OUT, 1 as Typ, POCET as Pocet from #CvsA04 (NOLOCK) Where CONTACTS=0
--## KONEC vypoctu
--#####################################################################
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// TOTAL
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--##################################################################
--## TOTAL RECORDS
insert into #EXP (Datum,IN_OUT,Typ,Pocet) select '2990-01-01' as DATUM, 8 as IN_OUT, 0 as Typ, count(ID) as Pocet from #CD (NOLOCK)
--## KONEC vypoctu
--#####################################################################
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// TIMES CALL
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--##################################################################
--## AVG CALL TIME
--## propojeni tabulky #CD a prolinkovaneho serveru s DB statistik z callcentra
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select SQL_DATUM as datum,
7 as IN_OUT,
0 as Typ,
AVG(SC.Total_Ringing_Time+SC.Total_Speaking_Time) as Pocet
from #KON as KON (NOLOCK)
inner join [lion-slov].[statistics].dbo.[statistic_call] as SC on SC.CALLID=cast(KON.CALL_ID as int)
group by SQL_DATUM
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## POSITIVES AVG CALL TIME whlere positives only
--## propojeni tabulky #CD a prolinkovaneho serveru s DB statistik z callcentra
-- nejdriv si pripravime standardni situace kde je vysledok prodej
select CD_SQL_DATUM as datum,
9 as IN_OUT,
0 as Typ,
SUM(SC.Total_Speaking_Time) as Pocet, -- zatim jen soucet , ale bude nasledovat AVG
-- toto je spatne COUNT(CD.ID) as Pocet2 -- pocet zaznamu abychom vedeli cim to mame delit
0 as pocet2 -- pocet zaznamu abychom vedeli cim to mame delit, tato informace bude doplnea nize pomoci updatu, prozatim je 0,je tozpusobeno tim ze jsme odstranili podminku KON.Vysledok = 'Predané'
into #POS_AVG_PREP
from #KON as KON (NOLOCK)
inner join #CD as CD (NOLOCK) on CD.ID=KON.ID
inner join [lion-slov].[statistics].dbo.[statistic_call] as SC on SC.CALLID=cast(KON.CALL_ID as int)
where CD.Vysledok = 'Predané'
--and KON.Vysledok = 'Predané' -- pokud vyhodime tuto podminku, mely by se scitat vsechny hovory ktere patri k danemu prodeji
group by CD_SQL_DATUM
-- nejdriv si spocitame pocet prodeju a ulozime to do #POS_AVG_POCET2A - kde A je prvni cast pricitani
select CD_SQL_DATUM as Datum,
COUNT(ID) as Pocet2
into #POS_AVG_POCET2A
from #CD (NOLOCK)
where Vysledok = 'Predané'
group by CD_SQL_DATUM
-- provedeme update hodnot
UPDATE #POS_AVG_PREP
SET #POS_AVG_PREP.pocet2 = #POS_AVG_POCET2A.Pocet2
FROM #POS_AVG_PREP
INNER JOIN #POS_AVG_POCET2A ON (#POS_AVG_PREP.DATUM = #POS_AVG_POCET2A.DATUM)
-- potom si musime jeste pricist a pocitat s prodeji s vysledkem zrusenie kupy, toto je v tabulce #FDX_POSITIVE_ONLY
select CD_SQL_DATUM as datum,
SUM(SC.Total_Speaking_Time) as Pocet, -- zatim jen soucet , ale bude nasledovat AVG
--COUNT(KON.ID) as Pocet2 -- pocet zaznamu abychom vedeli cim to mame delit
0 as pocet2 -- pocet zaznamu abychom vedeli cim to mame delit, tato informace bude doplnea nize pomoci updatu, prozatim je 0,je tozpusobeno tim ze jsme odstranili podminku KON.Vysledok = 'Predané'
into #POS_AVG_PREP_2
from #KON as KON (NOLOCK)
inner join #CD as CD (NOLOCK) on KON.ID=CD.ID
inner join #FDX_POSITIVE_ONLY as FXPO (NOLOCK) on FXPO.ID=KON.ID
inner join [lion-slov].[statistics].dbo.[statistic_call] as SC on SC.CALLID=cast(KON.CALL_ID as int)
-- where KON.Vysledok = 'Predané' -- osetrime abz to byly zaznamy jen prodane z KON, bacha aby jich nebylo vice na jedno ID, nepoznalo by se to
-- pokud vyhodime tuto podminku, mely by se scitat vsechny hovory ktere patri k danemu prodeji
group by CD_SQL_DATUM
-- nejdriv si spocitame pocet prodeju a ulozime to do #POS_AVG_POCET2B - kde B je druha cast ktera se tyka zrusenie kupy
select CD_SQL_DATUM as Datum,
COUNT(cd.ID) as Pocet2
into #POS_AVG_POCET2B
from #CD as CD (NOLOCK)
inner join #FDX_POSITIVE_ONLY as FXPO (NOLOCK) on FXPO.ID=CD.ID
group by CD_SQL_DATUM
-- provedeme update hodnot ale pro tabulku #POS_AVG_PREP_2
UPDATE #POS_AVG_PREP_2
SET #POS_AVG_PREP_2.pocet2 = #POS_AVG_POCET2B.Pocet2
FROM #POS_AVG_PREP_2
INNER JOIN #POS_AVG_POCET2B ON (#POS_AVG_PREP_2.DATUM = #POS_AVG_POCET2B.DATUM)
-- pricte hodnoty k sobe
-- novy zpusob bez FETCH - tento je rychlejsi
UPDATE #POS_AVG_PREP
SET #POS_AVG_PREP.pocet = #POS_AVG_PREP.pocet + #POS_AVG_PREP_2.pocet,
#POS_AVG_PREP.pocet2 = #POS_AVG_PREP.pocet2 + #POS_AVG_PREP_2.pocet2
FROM #POS_AVG_PREP
INNER JOIN #POS_AVG_PREP_2 ON (#POS_AVG_PREP.DATUM = #POS_AVG_PREP_2.DATUM)
-- select * from #POS_AVG_PREP_2 -- kontrola
if patindex('%test%',@text)>0 select * from #POS_AVG_PREP -- kontrola
-- prihodime to do #EXP
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select datum,
IN_OUT,
TYP,
(pocet/pocet2) as Pocet
from #POS_AVG_PREP
-- select * from #EXP where IN_OUT=9 -- kontrola
--## KONEC vypoctu
--#####################################################################
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--////////////////////////////////////// AGENTS
--///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
--##################################################################
--## AGENTS ID and NAMES
-- pripravime si seynam operatoru
Create Table #OPS(
DATUM datetime,
IN_OUT int,
TYP int IDENTITY(1,1) PRIMARY KEY, -- ZDE BUDE ID RADKU
POCET INT, -- zde bude ID_OPERATORA
TXT nvarchar(25)collate Slovak_CI_AS -- zde bude jmeno agenta
)
-- pridame do tabulky operatory kteri se na projektu/kampani podileli a pridame navic jejich ID (pro XLS report)
insert into
#OPS
(DATUM,IN_OUT,POCET,TXT)
Select '2990-01-01' as DATUM,
100 as IN_OUT, -- 100 je seynam operatoru
OP.Operator_ID as pocet, -- id operatora z tabulky #OPS spojeno pres jmeno, Pocet je to jen kvuli unifikaci tabulek, nayev je trochu zavadejici-omlouvam se
KON.Operator as TXT
from #KON as KON
inner join OPERATOR as OP on OP.operator=KON.operator
group by KON.operator,OP.Operator_ID
-- vlozime to do vysledku EXP
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet,TXT)
select * from #OPs
-- kvuli migraci zrusenie kupi si jeste pripravime spojeni tabulky FXD_POSITIVE_ONLY s tabulkou CD kde vysledek neboli VARIANT bude ulozena informace jaky produkt byl objednan
-- toto je pouze a jen pro zmigrovana data ostatni objednavky se pocitaji jinak
-- vysledkem bude nova tabulka ktera bude obsahovat informaci o migrovanych datech s operatorID a jmenem, a toto se pricte k jeho standardnim prodejum
-- vazba je pres 3 tabulky CD.[VARINATY proodeje]----CD.ID=FX.ID------FX.OPERATOR=OPS.TXT----------OPS.POCET
select VARIANT = case
when cd.LIONFDXV1='Y' then '101'
when cd.LIONFDXV2='Y' then '102'
when cd.LIONFDXV3='Y' then '103'
when cd.LIONFDXV4='Y' then '104'
end,
OPS.POCET as IDOPERATOR -- toto je operator ID nikoliv pocet
into #FDX_POSITIVE_ONLY_AGENTS -- nova tabuka ktera se v nasledujici casti bude prochazet FETCHEM
from #FDX_POSITIVE_ONLY as FX (NOLOCK)
inner join #CD as CD (NOLOCK) on CD.id=FX.id
inner join #OPS as OPS (NOLOCK) on OPS.TXT=FX.OPERATOR
/*
select * from #FDX_POSITIVE_ONLY_AGENTS
*/
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## AGENTS ID and VARIANTS
-- varianta 1
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
101 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV1 ='y'
--and KON.pilot!='pasiv_novy'
group by OPS.POCET
-- varianta 2
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
102 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV2 ='y'
--and KON.pilot!='pasiv_novy'
group by OPS.POCET
-- varianta 3
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
103 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV3 ='y'
--and KON.pilot!='pasiv_novy'
group by OPS.POCET
-- varianta 4
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
104 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV4 ='y'
--and KON.pilot!='pasiv_novy'
group by OPS.POCET
-- varianta error
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
105 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
Where ( ( CD.vysledok='predané' and KON.vysledok='predané' ) or ( CD.vysledok='Zmena kúpy' and KON.vysledok='Zmena kúpy' ) )
and CD.LIONFDXV1!='y'
and CD.LIONFDXV2!='y'
and CD.LIONFDXV3!='y'
and CD.LIONFDXV4!='y'
--and KON.pilot!='pasiv_novy'
group by OPS.POCET
-- zde je reseno pricteni zaznamu prodeju ktere jsou jako migrace ze stavu zrusenie kupy na prodej, je jedno jestli to je pasiv nebo aktiv resi se jen operator a typ
-- pocty techto zaznamu jsou jako jednotlive radky
-- projede zaznamy s operatorama a typem VARIANTu a pricte +1
Declare @VARIANT as CHAR(3)
DECLARE @IDOPERATOR as INTEGER
DECLARE Update_Data CURSOR FOR
SELECT VARIANT,IDOPERATOR FROM #FDX_POSITIVE_ONLY_AGENTS (NOLOCK) -- z tabulky POSITIVE_AGENTS
OPEN Update_Data
FETCH NEXT FROM Update_Data INTO @VARIANT,@IDOPERATOR
WHILE @@FETCH_STATUS = 0
BEGIN
Update #EXP set POCET=POCET+1 where TYP=@IDOPERATOR and IN_OUT=cast(@VARIANT as integer) -- PRICTENI PRODEJU
FETCH NEXT FROM Update_Data INTO @VARIANT,@IDOPERATOR
end
CLOSE Update_Data
DEALLOCATE Update_Data
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## CLOSED CONTACS per OPERATOR ID - zmena pridany fax,....
if patindex('%+finalreport%',@text)=0
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
106 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK) -- unikatni ID
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ( 'Halali',
'Nepredané',
'Odstahovaný',
'Omyl',
'Predané',
'Vycerpaný pocet pokusov',
'Zmena kúpy',
'Zomrel',
'Zrušenie kúpy',
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax' -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
)
group by OPS.POCET
if patindex('%+finalreport%',@text)>0
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
106 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK) -- unikatni ID
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ( 'Halali',
'Nepredané',
'Odstahovaný',
'Omyl',
'Predané',
'Vycerpaný pocet pokusov',
'Zmena kúpy',
'Zomrel',
'Zrušenie kúpy',
'Dlhodobo neprítomný', -- other
'V databáze je aj manžel/ka', -- other
'Záznamník', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Fax', -- presto ze je to neuzavrene, je to unreach a tak to sem patri (hrusky s jabkama)
'Nedvíha', -- nedokoncene stavy kter se pocitaji na konci projektu jako uzavrene - meni se na ruzne uzavrene stavy
'Budúci kontakt', -- nedokoncene stavy kter se pocitaji na konci projektu jako uzavrene - meni se na ruzne uzavrene stavy
'Ozve sa sám', -- nedokoncene stavy kter se pocitaji na konci projektu jako uzavrene - meni se na ruzne uzavrene stavy
'Volanie na nové císlo'
)
group by OPS.POCET
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## POSITIVE and Negatives contacts
if patindex('%+finalreport%',@text)=0
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
107 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ('Predané','Zmena kúpy', 'Nepredané','Zrušenie kúpy')
group by OPS.POCET
if patindex('%+finalreport%',@text)>0
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
107 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ('Predané','Zmena kúpy', 'Nepredané','Ozve sa sám','Zrušenie kúpy','Budúci kontakt')
group by OPS.POCET
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## Attemps contacts
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
108 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(KON.ID) as Pocet
from #KON as KON (NOLOCK)
inner join #OPS as OPS (NOLOCK) on KON.Operator=OPS.TXT
group by OPS.POCET
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## UNREACHABLE contacts per operator - zmena z KON na CD
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
109 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ( 'Halali',
'Omyl',
'Odstahovaný',
'Záznamník',
'Fax',
'Zomrel',
'Vycerpaný pocet pokusov',
'Dlhodobo neprítomný',
'V databáze je aj manžel/ka'
)
group by OPS.POCET
--## KONEC vypoctu
--#####################################################################
--##################################################################
--## DECEASED and WRONG NUMBER contacts
insert into
#EXP
(Datum,IN_OUT,Typ,Pocet)
select '2990-01-01' as datum,
110 as IN_OUT,
OPS.POCET as Typ, -- id operatora z tabulky #OPS
count(CD.ID) as Pocet
from #CD as CD (NOLOCK)
inner join #OPS as OPS (NOLOCK) on CD.Operator=OPS.TXT
Where CD.vysledok in ( 'Halali',
'Omyl',
'Odstahovaný',
'Záznamník',
'Fax',
'Zomrel'
)
group by OPS.POCET
--## KONEC vypoctu
--#####################################################################
if patindex('%original%',@text)>0
begin
select convert(varchar(10),Datum,120) as datum,
IN_OUT,
TYP,
POCET
from #EXP order by datum,IN_OUT,TYP
return
end
if patindex('%wrong%',@text)>0
begin
-- varianta error - vypis zaznamu
select *
from #CD as CD (NOLOCK)
inner join #KON as KON (NOLOCK) on CD.ID=KON.ID
Where KON.vysledok='predané'
and CD.LIONFDXV1!='y'
and CD.LIONFDXV2!='y'
and CD.LIONFDXV3!='y'
and CD.LIONFDXV4!='y'
--and KON.pilot!='pasiv_novy'
return
end
if patindex('%kampane%',@text)>0
begin
select --convert(varchar(10),Datum,120) as datum,
IN_OUT,
TYP,
TXT,
sum(POCET) as SUMAPOCET
INTO #EXPSUM
from #EXP
group by IN_OUT,TYP,TXT
-- ??????? pridat datum jako samostatnou poloyku ??????????
Declare @DATUM_OD datetime
Declare @DATUM_DO datetime
/*
Set @DATUM_OD=(select top 1 datum from #EXP where datum between '2006-01-01' and '2010-01-01' and pilot!='pasiv_novy' order by datum asc)
Set @DATUM_DO=(select top 1 datum from #EXP where datum between '2006-01-01' and '2010-01-01' and pilot!='pasiv_novy' order by datum desc)
*/
Set @DATUM_OD=(select top 1 CD_SQL_Datum from #CD where CD_SQL_Datum between '2006-01-01' and '2099-01-01' and pilot!='pasiv_novy' order by CD_SQL_Datum asc)
Set @DATUM_DO=(select top 1 CD_SQL_Datum from #CD where CD_SQL_Datum between '2006-01-01' and '2099-01-01' and pilot!='pasiv_novy' order by CD_SQL_Datum desc)
Insert into #EXPSUM (IN_OUT,TYP,SUMAPOCET) values (200,1,cast( datediff(dd,'1899-12-30',@DATUM_OD) as varchar(10)))
Insert into #EXPSUM (IN_OUT,TYP,SUMAPOCET) values (200,2,cast( datediff(dd,'1899-12-30',@DATUM_DO) as varchar(10)))
-- jedna z hodnot je AVG a ne SUM, proto se vydeli soucet poctem vyskytu datumu
if (select count(*) from #EXP where IN_OUT=7 and TYP=0)>0
begin
Update #EXPSUM set SUMAPOCET=SUMAPOCET/(select count(*) from #EXP where IN_OUT=7 and TYP=0) where IN_OUT=7 and TYP=0
end
-- druha z hodnot je AVG a ne SUM, proto se vydeli soucet poctem vyskytu datumu
if (select count(*) from #EXP where IN_OUT=9 and TYP=0)>0
begin
Update #EXPSUM set SUMAPOCET=SUMAPOCET/(select count(*) from #EXP where IN_OUT=9 and TYP=0) where IN_OUT=9 and TYP=0
end
select (cast(IN_OUT as varchar(10))+'_'+cast(TYP as varchar(10))) as spojeno,
SUMAPOCET--,TXT
from #EXPSUM
order by IN_OUT,TYP
return
end
/*
select ( convert(varchar(10),Datum,120) +'_'+cast(IN_OUT as varchar(10))+'_'+cast(TYP as varchar(10)) )as spojeno,
POCET
from #EXP order by datum,IN_OUT,TYP
*/
select ( cast( datediff(dd,'1899-12-30',Datum) as varchar(10)) +'_'+cast(IN_OUT as varchar(10))+'_'+cast(TYP as varchar(10)) )as spojeno,
POCET,TXT
from #EXP order by datum,IN_OUT,TYP
GO