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