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 datetimeDeclare @pocet as intDeclare @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='<font color="#FF0000"><B>Tato statistika slouzi pro reportovani AT AMCICO</B></font><br><br>' set @txtinfo2='Popis použití:<br>' set @txtinfo3='Tento report slouzi jako zdroj pro XLS soubor<br>' set @txtinfo4='K tomu aby neco vypocital je potreba zadat 6ti mistne cislo kampane <br>' set @txtinfo5='Pro kampan cislo 1 je potreba do polozky TEXT vlozit toto: 000001 <br>' set @txtinfo6='Pro kampan cislo 11 je potreba vlozit : 000011 <br>' set @txtinfo7='Tento prikaz vrati 3 sloupce a hromadu radku, otevrete si ho v novem okne jako excel (viz hypertextovy odkaz) pod zadavacimi poly<br>' set @txtinfo8='Zkopirujete 3 sloupce (a vsechny radky) a vlozite je do pripraveneho listu exeloveho reportu <br>' set @txtinfo9='<b> Rucne je potreba do tohoto reportu do listu "key indicators" dopsat stavene hodiny v ramci jednotlivych dni</b><br><br>' set @txtinfo10='Dostupné switche:<br>' set @txtinfo11='<b> kampane </b> zmeni data pro report kampani (2 sloupce a jiny excel)<br>' set @txtinfo12='<b> +move </b> 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 !!!<br>' set @txtinfo13='<b> +finalreport </b> nepresouva ale pocita s neuzavrenymi zaznamy jako by byly uzavrene a priradi je do prislusne casti reportu (Buduci Kontakt ->>> Nepredane ,.....)<br>' set @txtinfo14='<b> <br>' set @txtinfo15='<b> <br>' set @txtinfo16='<b> <br>' set @txtinfo17='<b> <br>' set @txtinfo18='<b> <br>' 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,mselect 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 kampaniselect 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 reportyCreate 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 prodejeCreate Table #FDXSUM (datum datetime,Pocet int)--******************************--##################################################################--## Spocitame hodnotu a ulozime ji : --## IN=0 --## TYP=1--## Nabidka Varianta 1insert 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 2insert 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 3insert 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 4insert 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 pokusyif 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 volatif 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 pokusyif 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 prodejeCreate Table #FDXSUM_PT (datum datetime,Pocet int)--******************************--##################################################################--## Spocitame hodnotu a ulozime ji : --## IN=1--## TYP=1--## Nabidka Varianta 1insert 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 2insert 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 3insert 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 4insert 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 volatif 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 PTif 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 contactsCreate 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 zarazeniUpdate #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 callcentrainsert 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 -- kontrolaif patindex('%test%',@text)>0 select * from #POS_AVG_PREP -- kontrola-- prihodime to do #EXPinsert 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 EXPinsert 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.POCETselect 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.POCETif 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 contactsif 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.POCETif 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 endif 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 endif 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,TYPGO