-- we don't know how to generate database plis (class Database) :(
create type TablePlem as table
(
	PL1 varchar(10),
	KR1 decimal(5,2),
	PL2 varchar(10),
	KR2 decimal(5,2),
	PL3 varchar(10),
	KR3 decimal(5,2),
	PL4 varchar(10),
	KR4 decimal(5,2),
	PL5 varchar(10)
)
go

create table CM_BykyTDM
(
	ROKSPRAC varchar(4),
	MESSPRAC varchar(2),
	SKUPINA varchar(1),
	BYK varchar(15),
	BLIN varchar(3),
	BREG varchar(3),
	MENBYK varchar(40),
	DATUMN date,
	ROK float,
	SIRE varchar(15),
	SLIN varchar(3),
	SREG varchar(3),
	DAM varchar(15),
	BREEDG varchar(3),
	PLEMENO varchar(38),
	NH float,
	ND float,
	NR float,
	N float,
	MLIEKO float,
	TUK float,
	TUKP float,
	BIELK float,
	BIELKP float,
	SPI float,
	M305 float,
	RPHM float,
	M100 float,
	MREL float,
	T305 float,
	RPHT float,
	T100 float,
	TP float,
	TREL float,
	B305 float,
	RPHB float,
	B100 float,
	BP float,
	BREL float,
	REL float
)
go

create table SP_SMasZam
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	POCPRIR int,
	DENPRIR decimal(6,2),
	POCPRIP int,
	PERCPLODOB decimal(4,1),
	POCOBAH int,
	NAZOV varchar(50),
	UKAZMAS decimal(6,2),
	Rok int
)
go

create table CP_CHovyRPPrepocet
(
	CHOV varchar(9),
	SKUPINA varchar(2),
	DATKONTR1 datetime,
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	DATPREPOCET1 date
)
go

create table NM_Konatel
(
	TITUL_PRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITUL_ZA varchar(5),
	FUNKCIA varchar(25),
	ID int identity
		primary key
)
go

create table Roc_MPHD_Tab_99_porody
(
	mesiac int,
	pocet int,
	plemeno varchar(3),
	pocet_rok int,
	rok int
)
go

create table temp_KRAVKUF
(
	CISKRAVY nvarchar(255),
	CHOVATEL nvarchar(255),
	OTECLIN nvarchar(255),
	OTECREG nvarchar(255),
	MATKA nvarchar(255),
	DATNAR nvarchar(255),
	PL1 nvarchar(255),
	KR1 float,
	PL2 nvarchar(255),
	KR2 float,
	PL3 nvarchar(255),
	KR3 float,
	PL4 nvarchar(255),
	KR4 float,
	PL5 nvarchar(255),
	DOVVYR nvarchar(255),
	DATVYR nvarchar(255),
	PRIZNAKKU nvarchar(255)
)
go

create unique index IX_temp_KRAVKUF
	on temp_KRAVKUF (CISKRAVY)
go

create table CM_BykyTDMSB
(
	ROKSPRAC varchar(4),
	MESSPRAC varchar(2),
	SKUPINA varchar(1),
	BYK varchar(15),
	BLIN varchar(3),
	BREG varchar(3),
	MENBYK varchar(40),
	DATUMN date,
	ROK smallint,
	SIRE varchar(15),
	SLIN varchar(3),
	SREG varchar(3),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(38),
	NH float,
	ND float,
	NR float,
	N smallint,
	MLIEKO float,
	TUK smallint,
	TUKP float,
	BIELK smallint,
	BIELKP float,
	SC305 float,
	RPHSC smallint,
	SCREL float
)
go

create table HIST_NC_KRAJ
(
	KRAJ varchar(1) not null,
	NAZOV varchar(20),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table [CP_BLUP_KPLEM***]
(
	m0h_pr_k float,
	t0h_pr_k float,
	tperh_pr_k float,
	b0h_pr_k float,
	bperh_pr_K float,
	m0h_pr_B float,
	t0h_pr_B float,
	tperh_pr_B float,
	b0h_pr_B float,
	bperh_pr_B float,
	ssmh_st int,
	ssth_st int,
	ssbh_st int,
	sstph_st float,
	ssbph_st float,
	sm0h_so float,
	st0h_so float,
	stperch_so float,
	sb0h_so float,
	sbperch_so float,
	sm0h_so_b float,
	st0h_so_b float,
	stperch_so_b float,
	sb0h_so_b float,
	sbperch_so_b float,
	plem char(1)
)
go

create table NM_ChovZoot
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ZOOTOC1 varchar(5) not null,
	ZOOTPER1 float,
	ZOOTOC2 varchar(5),
	ZOOTPER2 float,
	ZOOTOC3 varchar(5),
	ZOOTPER3 float,
	ZOOTOC4 varchar(5),
	ZOOTPER4 float,
	ZOOTOC5 varchar(5),
	ZOOTPER5 float,
	ZOOTOC6 varchar(5),
	ZOOTPER6 float,
	ZOOTOC7 varchar(5),
	ZOOTPER7 float,
	ZOOTOC8 varchar(5),
	ZOOTPER8 float,
	ZOOTOC9 varchar(5),
	ZOOTPER9 float,
	ZOOTOC10 varchar(5),
	ZOOTPER10 float,
	constraint PK_NM_ChovZoot
		primary key (KRAJ, OKRES, PODNIK, CHOV, TYPZV)
)
go

create table Roc_MLHD_Tab_1
(
	oblast varchar(100) not null,
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Den int,
	stpec_14Mesiac int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok int,
	Por varchar(3),
	DatumOd date,
	DatumDo date,
	datumGenerovania date,
	stpec_14 varchar(10)
)
go

create table CP_MV_posledneKO
(
	CISKRAVY varchar(14),
	DATKONTRPO date
)
go

create table Roc_MPHD_Tab_9_plemTYP
(
	plemeno varchar(9),
	prir_byk int,
	ins_byk int,
	nezn_byk int,
	prir_tela int,
	ins_tela int,
	nezn_tela int,
	prir_priem float,
	ins_priem float,
	nezn_priem float,
	rok int
)
go

create table GC_SubLin
(
	CISLIN varchar(4) not null,
	NAZLIN varchar(12) not null,
	PLEM varchar(10),
	REP varchar(1),
	PRCISLIN varchar(4),
	PRNAZLIN varchar(12)
)
go

create table CP_SomBunkyZostava
(
	chovatel varchar(9),
	nazov varchar(20),
	L100 int,
	pL100 float,
	L200 int,
	pL200 float,
	L305 int,
	pL305 float,
	Lnad305 int,
	pLnad305 float,
	LSpolu int,
	PlSpolu float
)
go

create table Roc_MPHD_Tab_9
(
	prir_byk int,
	ins_byk int,
	nezn_byk int,
	prir_tela int,
	ins_tela int,
	nezn_tela int,
	prir_priem float,
	ins_priem float,
	nezn_priem float,
	rok int
)
go

create table CC_Dojivost
(
	kod int not null,
	nazov varchar(20),
	od int,
	do int
)
go

create table GM_MaxMl
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ROKEV varchar(4),
	PORLAK varchar(1),
	TRVLUZ varchar(2),
	DOKOTEN date,
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	HVPORML varchar(3),
	HVPORTL varchar(3),
	HVPORBL varchar(3),
	HVPORLL varchar(3)
)
go

create table NaistalovaneVerzieEZApp
(
	login varchar(30),
	verzia varchar(30),
	datumInstalacie date
)
go

create table NC_Banka
(
	KOD varchar(4) not null
		constraint PK_NC_Banka_
			primary key,
	NAZOV varchar(40)
)
go

create table EC_RiadokFaktury
(
	IDR int identity
		constraint PK_EC_RiadokFaktury
			primary key,
	Chov varchar(9) not null,
	Typ varchar(10) not null,
	Faktura varchar(10) not null,
	Pocet int not null,
	Datum varchar(6) not null,
	Produkt varchar(5) not null,
	Suma decimal(10,2) constraint DF_EC_RiadokFaktury_Suma default 0 not null,
	oSuma decimal(10,2) constraint DF_EC_RiadokFaktury_oSuma default 0 not null,
	SumaCelkom decimal(10,2) constraint DF_EC_RiadokFaktury_SumaCelkom default 0 not null,
	Priplatok decimal(10,2) constraint DF_EC_RiadokFaktury_Priplatok default 0 not null,
	PriplatokPerc decimal(10,2) constraint DF_EC_RiadokFaktury_PriplatokPerc default 0 not null,
	Dotacia decimal(10,2) default 0 not null,
	ZlavCel decimal(10,2) default 0 not null,
	DotaciaPrepocitana bit constraint DF_EC_RiadokFaktury_DotaciaPrepocitana default 0 not null,
	Potvrdeny bit constraint DF_EC_RiadokFaktury_Potvrdeny default 0 not null,
	Potvrdil varchar(255),
	Zruseny bit constraint DF_Table_2_Potvrdeny1 default 0 not null,
	Zrusil varchar(255),
	Exportovany bit constraint DF_EC_RiadokFaktury_Exportovany default 0 not null
)
go

create table CP_TESR
(
	KrajOkres varchar(3),
	[Číslo strediska] varchar(3),
	[Názov strediska] varchar(30),
	[Inseminačná spoločnosť] varchar(2),
	[Číslo technika] varchar(2),
	[Meno technika] varchar(30),
	[Prislušnosť technika] varchar(1)
)
go

create table HIST_NM_Konatel
(
	ID_KONATEL int,
	TITUL_PRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITUL_ZA varchar(5),
	FUNKCIA varchar(25),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table Roc_MPHD_Tab_8
(
	kraj varchar(5),
	do_15 int,
	do_19 int,
	do_23 int,
	do_27 int,
	do_31 int,
	do_35 int,
	nad_36 int,
	spolu int,
	do_15_perc float,
	do_19_perc float,
	do_23_perc float,
	do_27_perc float,
	do_31_perc float,
	do_35_perc float,
	nad_36_perc float,
	rok int
)
go

create table CC_Medziobd
(
	kod int not null,
	nazov varchar(20),
	od int,
	do int
)
go

create table GM_NakTrhy
(
	DATNT date,
	NTKRAJ varchar(1),
	MIESTONT varchar(35),
	UZAVRETY varchar(1)
)
go

create table GM_MChPracK
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZPODN varchar(25),
	NAZPODD varchar(50),
	NAZOV varchar(30),
	STKU varchar(5),
	PLEM varchar(8),
	TITULPR1 varchar(10),
	MENO1 varchar(12),
	PRIEZV1 varchar(30),
	TITULZA1 varchar(8),
	FUNKCIA1 varchar(25),
	TITULPR2 varchar(10),
	MENO2 varchar(12),
	PRIEZV2 varchar(30),
	TITULZA2 varchar(8),
	FUNKCIA2 varchar(25)
)
go

create table EC_UctyDotacie
(
	ID int identity,
	Ucet varchar(10) not null,
	Suma decimal(12,2) not null,
	Rok int not null,
	PoslednaZmena date not null,
	OstMesiace int constraint DF_EC_UctyDotacie_OstMesiace default 0 not null,
	MaxPercDot decimal(5,2) constraint DF_EC_UctyDotacie_MaxPercDot default 0 not null,
	Zaciatok date
)
go

create table Ainbreeding_Prepocitana
(
	uscislo varchar(14),
	cas datetime,
	proces2 varchar(150)
)
go

create table CP_UzavChovKrava
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9) not null,
	SKUPINA varchar(2),
	chovsk varchar(11)
)
go

create table CR_KURHD_MesUzavCH_1_oprava
(
	chov varchar(9),
	rok int,
	mesiac int,
	dekada int,
	CISKRAVY varchar(14),
	PORPREBLAK int,
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI decimal(7),
	PERSPOL decimal(7,2),
	DATNAR date,
	PLEMKR varchar(70),
	DATOT date,
	PK int,
	ML1 decimal(5,2),
	ZN1 varchar(1),
	ML2 decimal(5,2),
	ZN2 varchar(1),
	ML3 decimal(5,2),
	ZN3 varchar(1),
	ML4 decimal(5,2),
	ZN4 varchar(1),
	ML5 decimal(5,2),
	ZN5 varchar(1),
	ML6 decimal(5,2),
	ZN6 varchar(1),
	ML7 decimal(5,2),
	ZN7 varchar(1),
	ML8 decimal(5,2),
	ZN8 varchar(1),
	ML9 decimal(5,2),
	ZN9 varchar(1),
	ML10 decimal(5,2),
	ZN10 varchar(1),
	ML11 decimal(5,2),
	ZN11 varchar(1),
	ML12 decimal(5,2),
	ZN12 varchar(1),
	PTUKU1 decimal(4,2),
	PBIELK1 decimal(4,2),
	PTB1 decimal(3,1),
	SB1 int,
	PTUKU2 decimal(3,2),
	PBIELK2 decimal(3,2),
	PTB2 decimal(3,2),
	SB2 int,
	LAKTDNI int,
	UDNI int,
	NAPML decimal(7,2),
	NAPTK decimal(7,2),
	UPERT decimal(3,2),
	NAPBL decimal(7,2),
	UPERB decimal(4,2),
	PORINS int,
	OLINREG varchar(10),
	DTOTOC date,
	DATINS date,
	OUC varchar(14),
	OTPLEM varchar(70),
	MATKA varchar(14),
	MAPLEM varchar(70),
	INTERVAL int,
	SERVPER int,
	MEDZIOB int,
	OVEKRM varchar(4),
	POHLTEL varchar(2),
	PRIEBPOR int,
	nap_dni int,
	nap_mliekokg int,
	nap_tukper decimal(7,2),
	nap_bielkper decimal(7,2),
	nap_tkg int,
	nap_bkg int,
	DOVVYR varchar(2),
	DATVYR date,
	generovane datetime,
	kontrola datetime,
	SKUPINA varchar(3),
	otec varchar(14)
)
go

create table Roc_MPHD_Tab_7_plemTYP
(
	plemtyp int,
	plemeno varchar(10),
	do350 int,
	do350_p decimal(6,2),
	do380 int,
	do380_p decimal(6,2),
	do410 int,
	do410_p decimal(6,2),
	do440 int,
	do440_p decimal(6,2),
	do470 int,
	do470_p decimal(6,2),
	nad471 int,
	nad471_p decimal(6,2),
	spolu int,
	rok int
)
go

create table GM_MlRoky
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	ROKEV varchar(4),
	PORLAK varchar(1),
	TRVLUZ varchar(2),
	DOKOTEN date,
	D float,
	D1 float,
	ML float,
	TL float,
	BL float,
	LL float,
	PTL float,
	PBL float,
	PLL float,
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	HVPORML varchar(3),
	HVPORTL varchar(3),
	HVPORBL varchar(3),
	HVPORLL varchar(3)
)
go

create table HIST_NC_Obec
(
	KRAJ varchar(2),
	OKRES varchar(2),
	CISKOD varchar(6),
	NAZOV varchar(40),
	PSC varchar(5),
	DPOSTA varchar(40),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NC_CharChov
(
	DRUHHZ varchar(1) not null,
	KOD varchar(1) not null,
	NAZOV varchar(30),
	SKRATKA varchar(4),
	constraint PK_NC_CharChov_
		primary key (DRUHHZ, KOD)
)
go

create table NM_EmailChovy
(
	id int identity
		primary key,
	email varchar(50) not null,
	HD bit default '1',
	OV bit default '1',
	KY bit default '1',
	podnik varchar(6),
	zostHDML bit,
	zostHDMP bit,
	zostHDTMHD bit
)
go

create table CP_UzavCHovKravaNaplak
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9) not null,
	SKUPINA varchar(2),
	PORLAK int,
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float
)
go

create table Roc_MPHD_Tab_7
(
	plemeno varchar(10),
	do350 int,
	do350_p decimal(6,2),
	do380 int,
	do380_p decimal(6,2),
	do410 int,
	do410_p decimal(6,2),
	do440 int,
	do440_p decimal(6,2),
	do470 int,
	do470_p decimal(6,2),
	nad471 int,
	nad471_p decimal(6,2),
	spolu int,
	rok int
)
go

create table GM_ParamPK
(
	POCBARN float,
	POCBAHN float,
	POCBARNR float,
	POCBAHNR float,
	DATFAKOD date,
	DATFAKDO date,
	DATVYB date
)
go

create table CC_Staty
(
	KodSt nvarchar(2),
	NazSt nvarchar(30),
	EU nvarchar(1)
)
go

create table NC_CharUst
(
	KOD varchar(1) not null
		constraint PK_NC_CharUst_
			primary key,
	NAZOV varchar(30)
)
go

create table CC_PlemTyp
(
	TYPS varchar(6),
	NAZTYP varchar(50),
	PODIEL1 varchar(65),
	PODIEL2 varchar(65),
	TYPC varchar(3),
	OD float,
	DO float,
	ODZOS float,
	DOZOS float,
	FARBA varchar(2),
	PLEMPRIS varchar(2),
	HLAVNE varchar(2),
	UZITKOVYTYP varchar(20)
)
go

create index CP_TypPlemena
	on CC_PlemTyp (TYPC)
go

create table Roc_MPHD_Tab_6_plemTYP
(
	plemtyp int,
	plemeno varchar(10),
	vek_1OT varchar(8),
	medz_2otel int,
	medz_3otel int,
	medz_4otel int,
	medz_5otel int,
	medz_celk_otel int,
	rok int
)
go

create table CM_Naplak
(
	CISKRAVY varchar(14) not null
		constraint PK_CM_Naplak
			primary key,
	CHOVATEL varchar(9),
	PORLAK int,
	DATOTEL date,
	CHOVOTEL varchar(9),
	CHOVLAKT varchar(9),
	PRIEBPOROD varchar(1),
	POHLAVIE varchar(2),
	ZMENA varchar(2),
	DATUKONL date,
	DATUKNORL date,
	MEDZIOBD float,
	HMOTKR float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKCEL float,
	MLIEKNOR float,
	TUKCEL float,
	TUKNOR float,
	BIELKCEL float,
	BIELKNOR float,
	LAKTOZAC float,
	LAKTOZAN float,
	INDPER float,
	INDLAK float,
	CHARUST varchar(1),
	MAXLAK varchar(1),
	ZNAK varchar(1),
	BEZT float,
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	LAKT100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float,
	LAKT200 float,
	DATZAPZVK date,
	DATVYBZVK date,
	KOD_DOJ int,
	KOD_MEDZ int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint
)
go

create index CP_KravaDoj
	on CM_Naplak (CHOVATEL, KOD_DOJ, CISKRAVY)
go

create index CP_KravaMedzi
	on CM_Naplak (CHOVATEL, KOD_MEDZ, CISKRAVY)
go

create index CP_kravaLakt
	on CM_Naplak (CHOVATEL, PORLAK, CISKRAVY)
go

create index CP_Ciskrava
	on CM_Naplak (CISKRAVY)
go

create index CP_Chov
	on CM_Naplak (CHOVATEL)
go

create index CP_9AMliekoKravy
	on CM_Naplak (CHOVATEL, PORLAK, KOD_DOJ, KOD_MEDZ)
go

create table [temp_piec***]
(
	[Číslo kravy] nvarchar(255),
	[Dátum otelenia] nvarchar(255),
	Pohlavie nvarchar(255),
	[Priebeh pôrodu] nvarchar(255),
	[Číslo teľaťa] nvarchar(255),
	[Dôvod vyradenia] float,
	[Dátum vyradenia] nvarchar(255),
	[Druh info] float
)
go

create table GM_PKCAPOV
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	CAPCIS varchar(8),
	PLEM varchar(10),
	ROH varchar(4),
	DATNAR date,
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRIED varchar(2),
	TRZOVN varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTROH varchar(4),
	OTPOVOD varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	OTTRUZ varchar(2),
	OTTRZOVN varchar(2),
	OTSURV varchar(1),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAROH varchar(4),
	MAPOVOD varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MATRUZ varchar(2),
	MATRZOVN varchar(2),
	MASURV varchar(1),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	HVPORML varchar(3),
	MAHVPORML varchar(3),
	CISTKRV bit not null,
	NAZLIN varchar(12)
)
go

create table SP_BlupVV
(
	JEDCIS int,
	PH float,
	plem char(2)
)
go

create table Roc_MPHD_Tab_6
(
	plemeno varchar(10),
	vek_1OT varchar(8),
	medz_2otel int,
	medz_3otel int,
	medz_4otel int,
	medz_5otel int,
	medz_celk_otel int,
	rok int
)
go

create table GP_Rocenka_VysKUStr
(
	id int,
	TypPlem varchar(256),
	StupenKU varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	PlemenoStada varchar(256),
	PocKoz_Prip int,
	PocKoz_PredVyrad int,
	PocKoz_Jal int,
	PocKoz_Obah int,
	PocNarKozl int,
	PercOplod decimal(5,1),
	PercPlod decimal(5,1),
	PercPlodNaKozu decimal(5,1),
	Osoba varchar(256),
	Osoba1 varchar(256),
	Osoba2 varchar(256),
	Osoba3 varchar(256),
	Osoba4 varchar(256),
	StupenKUNazov varchar(256),
	Rok varchar(4)
)
go

create table tttt2
(
	chovatel varchar(9),
	priznakGroupBy varchar(20),
	lakt2 int,
	plakt2 float,
	lakt3 int,
	plakt3 float,
	lakt4 int,
	plakt4 float,
	lakt5 int,
	plakt5 float,
	lakt6 int,
	plakt6 float,
	lakt7 int,
	plakt7 float,
	lakt8 int,
	plakt8 float,
	lakt9 int,
	plakt9 float,
	ksSpolu int,
	pSpolu float
)
go

create table S_POP_test
(
	krokr varchar(3),
	podnik varchar(3),
	stado varchar(3),
	LUC varchar(5),
	PUC varchar(10),
	jedcis varchar(8),
	datum varchar(10),
	pohl varchar(3),
	datumFakt varchar(10)
)
go

create table GM_VYHNT1RR
(
	ROK varchar(4),
	PLEM2 varchar(8),
	PRIHL float,
	PREDV float,
	POCER float,
	POCEA float,
	POCEB float,
	POCI float,
	POCII float,
	POCVYR float,
	ZARAD float
)
go

create table CP_SIM_PripJal
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table CP_MedziobdZostavaA_CopyTest_old
(
	chovatel varchar(9),
	groupNazov varchar(20),
	l1 int,
	pl1 float,
	l2 int,
	pl2 float,
	l3 int,
	pl3 float,
	l4 int,
	pl4 float,
	l5 int,
	pl5 float,
	l6 int,
	pl6 float,
	l7 int,
	pl7 float,
	l8 int,
	pl8 float,
	l9 int,
	pl9 float,
	Spolu int,
	pSpolu float,
	Pmedziobd int,
	SpoluChov int,
	znakLakt varchar(2)
)
go

create table SM_KonZapMen
(
	ID int identity
		primary key,
	chov varchar(9) not null,
	rokev varchar(6)
)
go

create table SR_VyslRepPlem
(
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	NAZSTKU varchar(7),
	PLEMENO varchar(20),
	POCSTAD int,
	POCPRIP int,
	PRCASVYR int,
	POCJAL int,
	POCOBAH int,
	POCJAH int,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	STKU varchar(1),
	PLEM varchar(8),
	Rok int
)
go

create table Roc_MPHD_Tab_5_plemTYP
(
	plemeno varchar(10),
	plemtyp int,
	nezist int,
	nezist_p decimal(5,2),
	lahky int,
	lahky_p decimal(5,2),
	stred int,
	stred_p decimal(5,2),
	tazky int,
	tazky_p decimal(5,2),
	operacia int,
	operacia_p decimal(5,2),
	rok int,
	spolu int
)
go

create table CM_Laktacie
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9),
	PORLAK int not null,
	DATOTEL date,
	CHOVOTEL varchar(9),
	CHOVLAKT varchar(9),
	PRIEBPOROD varchar(1),
	POHLAVIE varchar(2),
	ZMENA varchar(2),
	DATUKONL date,
	DATUKNORL date,
	MEDZIOBD float,
	HMOTKR float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKCEL float,
	MLIEKNOR float,
	TUKCEL float,
	TUKNOR float,
	BIELKCEL float,
	BIELKNOR float,
	LAKTOZAC float,
	LAKTOZAN float,
	INDPER float,
	INDLAK float,
	CHARUST varchar(1),
	SPOSOBKU varchar(1),
	MAXLAK varchar(1),
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	LAKT100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float,
	LAKT200 float,
	DATZAPZVK date,
	DATVYBZVK date,
	KOD_DOJ int,
	KOD_MEDZ int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint,
	idx_podnik as substring([CHOVATEL],1,6),
	constraint PK_CM_Laktacie
		primary key (CISKRAVY, PORLAK)
)
go

create index CP_KravaDoj
	on CM_Laktacie (KOD_DOJ, CISKRAVY)
go

create index CP_KravaMedzi
	on CM_Laktacie (KOD_MEDZ, CISKRAVY)
go

create index CP_KravaLaktDatum
	on CM_Laktacie (MAXLAK, PORLAK, KOD_DOJ, CISKRAVY)
go

create index index_chovdatotelmedzi
	on CM_Laktacie (CHOVATEL, DATOTEL, MEDZIOBD, CISKRAVY)
go

create index CP_Datukonl
	on CM_Laktacie (DATUKONL)
go

create index CP_DatuKNORL
	on CM_Laktacie (DATUKNORL)
go

create index [NonClusteredIndex-20160629-104106]
	on CM_Laktacie (CHOVATEL)
go

create index CP_CisKravy
	on CM_Laktacie (CISKRAVY)
go

create index idx_CM_Laktacie_chovatel
	on CM_Laktacie (CHOVATEL, CISKRAVY, PORLAK, DATOTEL, ZMENA, DATUKONL, DATUKNORL, MEDZIOBD, LAKTDNI, LAKDNIN, MLIEKNOR, TUKNOR, BIELKNOR, LAKTOZAN, INDPER)
go

create index idx_podnik_computed
	on CM_Laktacie (idx_podnik, CISKRAVY, CHOVATEL, PORLAK, DATOTEL, ZMENA, DATUKONL, DATUKNORL, MEDZIOBD, LAKTDNI, LAKDNIN, MLIEKNOR, TUKNOR, BIELKNOR, LAKTOZAN, INDPER)
go

create table GM_VYHNT2RR
(
	DATNT date,
	NTKRAJ varchar(1),
	CELKOM float,
	POCER float,
	POCEA float,
	POCEB float,
	POCI float,
	POCII float,
	POCVYR float,
	POCPREDV float,
	POCZAR float,
	MIESTONT varchar(35)
)
go

create table GM_PKKoz
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	PLEM varchar(10),
	ROH varchar(4),
	DATNAR date,
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRIED varchar(2),
	TRZOVN varchar(2),
	TRVLUZ varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTROH varchar(4),
	OTPOVOD varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	OTTRUZ varchar(2),
	OTTRZOVN varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAROH varchar(4),
	MAPOVOD varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MATRUZ varchar(2),
	MATRZOVN varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	HVPORML varchar(3),
	MAHVPORML varchar(3),
	CISTKRV bit,
	NAZLIN varchar(12)
)
go

create table HIST_NC_OKRES
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	NAZOV varchar(20),
	REGION varchar(2),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table Roc_MPHD_Tab_5
(
	plemeno varchar(10),
	nezist int,
	nezist_p decimal(5,2),
	lahky int,
	lahky_p decimal(5,2),
	stred int,
	stred_p decimal(5,2),
	tazky int,
	tazky_p decimal(5,2),
	operacia int,
	operacia_p decimal(5,2),
	rok int,
	spolu int
)
go

create table CP_FStada
(
	KROkr varchar(3),
	PODNIK varchar(3),
	stado varchar(3),
	TYPZV varchar(1),
	ZRUS varchar(1),
	Nazov varchar(30),
	obec varchar(40),
	CisFarmy varchar(5),
	IDPAMK varchar(5),
	IDPAMZ varchar(5),
	Konzul varchar(2),
	Obvzoo varchar(2),
	VykKU varchar(1),
	StKU varchar(1),
	DatZrus date,
	vlastne bit,
	FaktSkup int,
	PIGLOG int
)
go

create table SM_MaxMlDov
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	POHL varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MLIEKO float,
	JEDNML varchar(2),
	PTUK float,
	PDNI float,
	PORLAK varchar(1),
	MAMLIEKO float,
	MAJEDNML varchar(2),
	MAPTUK float,
	MAPDNI float,
	MAPORLAK varchar(1)
)
go

create table GM_PKPOTOM
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	PLEM varchar(10),
	ROH varchar(4),
	DATNAR date,
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRIED varchar(2),
	TRZOVN varchar(2),
	TRVLUZ varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTROH varchar(4),
	OTPOVOD varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	OTTRUZ varchar(2),
	OTTRZOVN varchar(2),
	OTSURV varchar(1),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAROH varchar(4),
	MAPOVOD varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MATRUZ varchar(2),
	MATRZOVN varchar(2),
	MASURV varchar(1),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	HVPORML varchar(3),
	MAHVPORML varchar(3),
	CISTKRV bit not null,
	NAZLIN varchar(12),
	POHL varchar(1)
)
go

create table DBF_JCHN
(
	KrOkr varchar(4) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PRIZNAK varchar(2),
	NAZPOD varchar(70),
	UlicaP varchar(30),
	PCislo varchar(10),
	MIESTO varchar(40),
	PSC varchar(5),
	ico varchar(10),
	DICO varchar(10),
	CDU varchar(3),
	BANKAPLAT int,
	PREDC int,
	KOMITENT int,
	CISPOB int,
	NUMKOD int,
	NAZKPP varchar(50),
	MIESTOPR varchar(50),
	PSCPR varchar(5),
	ICOPR varchar(8),
	DICOPR varchar(10),
	CDUPR varchar(3),
	BANKAPRIJ int,
	PREDCPR varchar(6),
	KOMITENTPR varchar(7),
	CISPOBPR varchar(3),
	NUMKODPR varchar(4),
	ODSTEP int,
	NAZPODskr varchar(25),
	NAZMAS varchar(30),
	COB2 int,
	KOOPMEDZK varchar(1),
	KOOPMEDZO varchar(1),
	KOOPVOK varchar(2),
	KOOPOB varchar(2),
	CHARCHOV varchar(1),
	SPZAIS varchar(1),
	VYROBL varchar(1),
	VYRSEK varchar(2),
	CHARUS varchar(1),
	KAPMAST varchar(1),
	SPVYKON varchar(1),
	REPROVET varchar(1),
	STAVKRAV varchar(5),
	STAVJAL varchar(5),
	TECHUSMD varchar(2),
	MASTALKD int,
	REZERVA varchar(1),
	ZRUS varchar(1),
	TYPZV varchar(1)
)
go

create table SP_SMlZam
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	SMNL decimal(5,2),
	POCETMNL int,
	POCPRIP int,
	POCOBAH int,
	PERCPLODOB decimal(4,1),
	NAZOV varchar(50),
	UKAZML decimal(6,2),
	Rok int
)
go

create table Roc_MPHD_Tab_4
(
	perc_do_10 float,
	perc_do_29 float,
	perc_do_49 float,
	perc_do_69 float,
	perc_do_89 float,
	perc_do_109 float,
	perc_do_129 float,
	perc_do_149 float,
	perc_nad_150 float,
	do_10 int,
	do_29 int,
	do_49 int,
	do_69 int,
	do_89 int,
	do_109 int,
	do_129 int,
	do_149 int,
	nad_150 int,
	spolu int,
	zvierat_do_10 int,
	zvierat_do_29 int,
	zvierat_do_49 int,
	zvierat_do_69 int,
	zvierat_do_89 int,
	zvierat_do_109 int,
	zvierat_do_129 int,
	zvierat_do_149 int,
	zvierat_nad_150 int,
	rok int
)
go

create table SM_ParamPK
(
	POCBARN float,
	POCBAHN float,
	POCBARNR float,
	POCBAHNR float,
	DATFAKOD date,
	DATFAKDO date,
	DATVYB date
)
go

create table GM_PremKoz
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORCIS varchar(4),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	HMOTKOZ float,
	PORCISPR varchar(2),
	STMENB varchar(1),
	BKROKR varchar(3),
	BPODNIK varchar(3),
	BSTADO varchar(3),
	BLUC varchar(5),
	BPUC varchar(5),
	CAPCIS varchar(8),
	BPORCIS varchar(4),
	DATPRIP date,
	PRIZPRIN bit,
	ZABREZLA bit,
	DATOKOT date,
	VSETKY float,
	VSETCAPK float,
	ZIVE float,
	ZIVECAPK float,
	DEFEKT float,
	DEFCAPK float,
	DOCHOV float,
	DOCHCAPK float,
	POHL1 varchar(1),
	VISAC1 varchar(4),
	LUC1 varchar(5),
	PUC1 varchar(5),
	JCCEHZ1 varchar(12),
	HMNAROD1 float,
	DAT70H1 date,
	HM70H1 float,
	PRIZVYB1 varchar(1),
	POHL2 varchar(1),
	VISAC2 varchar(4),
	LUC2 varchar(5),
	PUC2 varchar(5),
	JCCEHZ2 varchar(12),
	HMNAROD2 float,
	DAT70H2 date,
	HM70H2 float,
	PRIZVYB2 varchar(1),
	POHL3 varchar(1),
	VISAC3 varchar(4),
	LUC3 varchar(5),
	PUC3 varchar(5),
	JCCEHZ3 varchar(12),
	HMNAROD3 float,
	DAT70H3 date,
	HM70H3 float,
	PRIZVYB3 varchar(1),
	POHL4 varchar(1),
	VISAC4 varchar(4),
	LUC4 varchar(5),
	PUC4 varchar(5),
	JCCEHZ4 varchar(12),
	HMNAROD4 float,
	DAT70H4 date,
	HM70H4 float,
	PRIZVYB4 varchar(1),
	POHL5 varchar(1),
	VISAC5 varchar(4),
	LUC5 varchar(5),
	PUC5 varchar(5),
	JCCEHZ5 varchar(12),
	HMNAROD5 float,
	DAT70H5 date,
	HM70H5 float,
	PRIZVYB5 varchar(1)
)
go

create table EC_Typy
(
	IDR int identity,
	Typ varchar(4)
)
go

create table Roc_MPHD_Tab_3
(
	perc_do_10 float,
	perc_do_29 float,
	perc_do_49 float,
	perc_do_69 float,
	perc_do_89 float,
	perc_do_109 float,
	perc_do_129 float,
	perc_do_149 float,
	perc_nad_150 float,
	teliat_do_10 int,
	teliat_do_29 int,
	teliat_do_49 int,
	teliat_do_69 int,
	teliat_do_89 int,
	teliat_do_109 int,
	teliat_do_129 int,
	teliat_do_149 int,
	teliat_nad_150 int,
	rok int
)
go

create table CC_PaternVysled
(
	KPUV nvarchar(2),
	PATERNITA nvarchar(255),
	PATER nvarchar(255),
	O_suhlasi bit,
	M_suhlasi bit
)
go

create unique index IX_KPUV
	on CC_PaternVysled (KPUV)
go

create table SM_PKBahnic
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	PLEM varchar(10),
	DATNAR date,
	SURV varchar(1),
	DOVOD varchar(1),
	DATVYR date,
	HVPORPR varchar(3),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLNA varchar(2),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	TRIED varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTTRIED varchar(2),
	OTSURV varchar(1),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MAEXTER varchar(2),
	MATRIED varchar(2),
	MASURV varchar(1),
	MAHVPORML varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	CISTKRV bit,
	NAZLIN varchar(12)
)
go

create table GM_REGCHOV
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZPOD varchar(50),
	NAZST varchar(30),
	CAPA1 float,
	CAPA1ZIV float,
	CAPA2 float,
	CAPA2ZIV float,
	CAPA3 float,
	CAPA3ZIV float,
	CAPB1 float,
	CAPB1ZIV float,
	CAPB2 float,
	CAPB2ZIV float,
	CAPB3 float,
	CAPB3ZIV float,
	CAPZIV float,
	KOZA1 float,
	KOZA1ZIV float,
	KOZA2 float,
	KOZA2ZIV float,
	KOZA3 float,
	KOZA3ZIV float,
	KOZB1 float,
	KOZB1ZIV float,
	KOZB2 float,
	KOZB2ZIV float,
	KOZB3 float,
	KOZB3ZIV float,
	KOZZIV float,
	POTCAPA3 float,
	POTCAPAZIJ float,
	POTCAPB3 float,
	POTCAPBZIJ float,
	POTCAPZIJ float,
	POTKOZA3 float,
	POTKOZAZIJ float,
	POTKOZB3 float,
	POTKOZBZIJ float,
	POTKOZZIJ float,
	ROKZAR varchar(4),
	DATZAR date,
	PLEM varchar(2),
	REGCIS varchar(11)
)
go

create table Roc_MPHD_Tab_2_plemTYP
(
	plemeno varchar(50),
	plemtyp int,
	pocet_krav int,
	telata_celkom int,
	byci_ZN int,
	jalovice_ZN int,
	podiel float,
	mrtvo_nar int,
	uhyn_48 int,
	zmetanie int,
	narod_ET int,
	dvojicky int,
	podiel_dvojciat float,
	rok varchar(5)
)
go

create table CP_Meso_Krava
(
	chovatel varchar(9),
	ciskrava varchar(14),
	datnar datetime,
	porPreblakt int,
	vekMesac int,
	vekDni int,
	medzi int,
	datotel datetime,
	totec varchar(10),
	tuscis varchar(14),
	plemena varchar(80),
	typPlem varchar(10),
	farba varchar(20),
	otec varchar(10),
	ouscis varchar(14),
	ma varchar(14),
	t1pocl varchar(2),
	t1 varchar(14),
	t1hmotNar int,
	t2pocl varchar(2),
	t2 varchar(14),
	t2hmotNar int,
	t3pocl varchar(2),
	t3 varchar(14),
	t3hmotNar int,
	HmotOtel int,
	hmot120 float,
	hmot210 float,
	hmot365 float,
	hmot500 float,
	hmotNar int,
	dovvyr varchar(2),
	datvyr datetime
)
go

create table NC_MOCOVINA
(
	KOD varchar(1) not null,
	NAZOV varchar(128)
)
go

create table SM_PKBaran
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BARCIS varchar(8),
	PLEM varchar(10),
	DATNAR date,
	SURV varchar(1),
	DOVOD varchar(1),
	DATVYR date,
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLNA varchar(2),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	TRIED varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTTRIED varchar(2),
	OTSURV varchar(1),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MAEXTER varchar(2),
	MATRIED varchar(2),
	MASURV varchar(1),
	MAHVPORML varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	CISTKRV bit,
	NAZLIN varchar(12)
)
go

create table temp_telata_dupl
(
	cistelata varchar(14)
)
go

create table GP_ASumKZ
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOKOT float,
	POCKOZIC float,
	POCCAPK float,
	POCODCH float,
	VYKKU varchar(1)
)
go

create table HIST_NC_REGION
(
	REG varchar(2) not null,
	NAZOV varchar(20),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table Roc_MPHD_Tab_2
(
	plemeno varchar(50),
	pocet_krav int,
	telata_celkom int,
	byci_ZN int,
	jalovice_ZN int,
	podiel float,
	mrtvo_nar int,
	uhyn_48 int,
	zmetanie int,
	narod_ET int,
	dvojicky int,
	podiel_dvojciat float,
	rok varchar(5)
)
go

create table HIST_NC_MOCOVINA
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CP_POVODY_SIM_PH_NEMECKO_1
(
	ANIMAL varchar(14)
		constraint IX_CP_POVODY_SIM_PH_NEMECKO1_Animal
			unique,
	DATNAR date,
	PLEMENO int,
	POHLAVIE int,
	PODIELCK int,
	OTEC varchar(14),
	MATKA varchar(14),
	MENO varchar(12)
)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_1_Matka
	on CP_POVODY_SIM_PH_NEMECKO_1 (MATKA)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_1_Otec
	on CP_POVODY_SIM_PH_NEMECKO_1 (OTEC)
go

create table Roc_MLHD_Tab_15
(
	PorTab varchar(3),
	Poradie varchar(3),
	Okres varchar(30) not null,
	PorOkres varchar(10),
	PorKraj varchar(10),
	PorSR varchar(10),
	PorPlemTyp varchar(10),
	Ciskravy varchar(14),
	PlemTyp varchar(5),
	Podnik varchar(50),
	Chov varchar(50),
	OLinReg varchar(15),
	Plemeno varchar(30),
	Por_lakt int,
	mlieko int,
	tuk_P float,
	tuk_KG int,
	bielk_P float,
	bielk_KG int,
	rok varchar(4),
	chovatel varchar(9)
)
go

create table SM_PremBah
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	PORCIS varchar(4),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	DATPOST date,
	VLNAPOST float,
	HMOTBAH float,
	PORCISPR varchar(2),
	STMENB varchar(1),
	BKROKR varchar(3),
	BPODNIK varchar(3),
	BSTADO varchar(3),
	BLUC varchar(5),
	BPUC varchar(5),
	BARCIS varchar(8),
	BPORCIS varchar(4),
	BPLEM varchar(10),
	DATPRIP date,
	PRIZPRIN bit,
	ZABREZLA bit,
	DATOBAH date,
	VSETKY float,
	VSETBAR float,
	ZIVE float,
	ZIVEBAR float,
	DEFEKT float,
	DEFBAR float,
	DOCHOV float,
	DOCHBAR float,
	POHL1 varchar(1),
	VISAC1 varchar(4),
	LUC1 varchar(5),
	PUC1 varchar(5),
	JCCEHZ1 varchar(12),
	HMNAROD1 float,
	DAT30H1 date,
	HM30H1 float,
	DAT70H1 date,
	HM70H1 float,
	DAT100H1 date,
	HM100H1 float,
	PRIZVYB1 varchar(1),
	POHL2 varchar(1),
	VISAC2 varchar(4),
	LUC2 varchar(5),
	PUC2 varchar(5),
	JCCEHZ2 varchar(12),
	HMNAROD2 float,
	DAT30H2 date,
	HM30H2 float,
	DAT70H2 date,
	HM70H2 float,
	DAT100H2 date,
	HM100H2 float,
	PRIZVYB2 varchar(1),
	POHL3 varchar(1),
	VISAC3 varchar(4),
	LUC3 varchar(5),
	PUC3 varchar(5),
	JCCEHZ3 varchar(12),
	HMNAROD3 float,
	DAT30H3 date,
	HM30H3 float,
	DAT70H3 date,
	HM70H3 float,
	DAT100H3 date,
	HM100H3 float,
	PRIZVYB3 varchar(1),
	POHL4 varchar(1),
	VISAC4 varchar(4),
	LUC4 varchar(5),
	PUC4 varchar(5),
	JCCEHZ4 varchar(12),
	HMNAROD4 float,
	DAT30H4 date,
	HM30H4 float,
	DAT70H4 date,
	HM70H4 float,
	DAT100H4 date,
	HM100H4 float,
	PRIZVYB4 varchar(1),
	POHL5 varchar(1),
	VISAC5 varchar(4),
	LUC5 varchar(5),
	PUC5 varchar(5),
	JCCEHZ5 varchar(12),
	HMNAROD5 float,
	DAT30H5 date,
	HM30H5 float,
	DAT70H5 date,
	HM70H5 float,
	DAT100H5 date,
	HM100H5 float,
	PRIZVYB5 varchar(1)
)
go

create index IX_SM_PremBah_BahRok
	on SM_PremBah (BAHCIS, ROKEV1, ROKEV2)
go

create table GP_PrPlem
(
	PLEM varchar(2) not null,
	ROKNAR varchar(4) not null,
	DENPRIR float,
	POCDENPRIR float,
	KDPRIR float,
	POCKDPRIR float,
	SOKDPRIR float,
	DATUM date
)
go

create table Roc_MPHD_Tab_19
(
	KrOk varchar(3),
	Podnik varchar(3),
	Chov varchar(3),
	Priem_st_krav int,
	Kravy_Z int,
	Kravy_V int,
	od_prvostok_B int,
	od_krav_B int,
	od_prvostok_J int,
	od_krav_J int,
	m1_J int,
	m2_J int,
	m3_J int,
	m4_J int,
	m5_J int,
	m6_J int,
	m7_J int,
	m8_J int,
	m9_J int,
	m10_J int,
	m11_J int,
	m12_J int,
	m1_B int,
	m2_B int,
	m3_B int,
	m4_B int,
	m5_B int,
	m6_B int,
	m7_B int,
	m8_B int,
	m9_B int,
	m10_B int,
	m11_B int,
	m12_B int,
	m1_JB int,
	m2_JB int,
	m3_JB int,
	m4_JB int,
	m5_JB int,
	m6_JB int,
	m7_JB int,
	m8_JB int,
	m9_JB int,
	m10_JB int,
	m11_JB int,
	m12_JB int,
	rok varchar(5)
)
go

create table SM_PripPlan
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	ROKPRIP varchar(4),
	CISBAR1 varchar(3),
	BKROKR1 varchar(3),
	BPODNIK1 varchar(3),
	BSTADO1 varchar(3),
	BLUC1 varchar(5),
	BPUC1 varchar(5),
	BARCIS1 varchar(8),
	BZVSTAT1 varchar(2),
	BJCCEHZ1 varchar(12),
	CISBAR2 varchar(3),
	BKROKR2 varchar(3),
	BPODNIK2 varchar(3),
	BSTADO2 varchar(3),
	BLUC2 varchar(5),
	BPUC2 varchar(5),
	BARCIS2 varchar(8),
	BZVSTAT2 varchar(2),
	BJCCEHZ2 varchar(12)
)
go

create table SM_OVCE
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	CISVZOR varchar(3),
	DODBERU date,
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORAD int,
	DATOBAH date,
	DATODST date,
	MLRANO int,
	MLOBED int,
	MLVECER int,
	ROZBTUK float,
	ROZBBIEL float,
	ROZBLAKT float,
	SOMA varchar(5),
	PORLAK varchar(1),
	VERIF bit not null
)
go

create index SM_OVCE_STAT_CEHZ
	on SM_OVCE (ZVSTAT, JCCEHZ, DODBERU)
go

create table CP_BLUP_KPLEM
(
	m0h_pr_k float,
	t0h_pr_k float,
	tperh_pr_k float,
	b0h_pr_k float,
	bperh_pr_K float,
	m0h_pr_B float,
	t0h_pr_B float,
	tperh_pr_B float,
	b0h_pr_B float,
	bperh_pr_B float,
	ssmh_st int,
	ssth_st int,
	ssbh_st int,
	sstph_st float,
	ssbph_st float,
	sm0h_so float,
	st0h_so float,
	stperch_so float,
	sb0h_so float,
	sbperch_so float,
	sm0h_so_b float,
	st0h_so_b float,
	stperch_so_b float,
	sb0h_so_b float,
	sbperch_so_b float,
	m0s_pr_k float,
	t0s_pr_k float,
	tpers_pr_k float,
	b0s_pr_k float,
	bpers_pr_K float,
	m0s_pr_B float,
	t0s_pr_B float,
	tpers_pr_B float,
	b0s_pr_B float,
	bpers_pr_B float,
	ssms_st int,
	ssts_st int,
	ssbs_st int,
	sstps_st float,
	ssbps_st float,
	sm0s_so float,
	st0s_so float,
	stpercs_so float,
	sb0s_so float,
	sbpercs_so float,
	sm0s_so_b float,
	st0s_so_b float,
	stpercs_so_b float,
	sb0s_so_b float,
	sbpercs_so_b float,
	m0p_pr_k float,
	t0p_pr_k float,
	tperp_pr_k float,
	b0p_pr_k float,
	bperp_pr_K float,
	m0p_pr_B float,
	t0p_pr_B float,
	tperp_pr_B float,
	b0p_pr_B float,
	bperp_pr_B float,
	ssmp_st int,
	sstp_st int,
	ssbp_st int,
	sstpp_st float,
	ssbpp_st float,
	sm0p_so float,
	st0p_so float,
	stpercp_so float,
	sb0p_so float,
	sbpercp_so float,
	sm0p_so_b float,
	st0p_so_b float,
	stpercp_so_b float,
	sb0p_so_b float,
	sbpercp_so_b float
)
go

create table Roc_MPHD_Tab_17
(
	kraj varchar(1),
	okres varchar(2),
	podnik varchar(3),
	chov varchar(3),
	mastal varchar(1),
	K1_poc int,
	K1_poc_120 int,
	K1_perc_120 float,
	K1_poc_210 int,
	K1_perc_210 float,
	K1_poc_365 int,
	K1_perc_365 float,
	K1_poc_500 int,
	K1_perc_500 float,
	K1_Priem_Hm_120 real,
	K1_Priem_Hm_210 real,
	K1_Priem_Hm_365 real,
	K1_Priem_Hm_500 real,
	K1_priem_ziv_prir_120 real,
	K1_priem_ziv_prir_210 real,
	K1_priem_ziv_prir_365 real,
	K1_priem_ziv_prir_500 real,
	K1_medziobd int,
	K1_vek_1_otel varchar(7),
	K1_priem_lakt real,
	MD1_poc int,
	MD1_poc_vaz_120 int,
	MD1_perc_120 float,
	MD1_poc_vaz_210 int,
	MD1_perc_210 float,
	MD1_poc_vaz_365 int,
	MD1_perc_365 float,
	MD1_poc_vaz_500 int,
	MD1_perc_500 float,
	MD1_Priem_Hm_120 real,
	MD1_Priem_Hm_210 real,
	MD1_Priem_Hm_365 real,
	MD1_Priem_Hm_500 real,
	MD1_priem_ziv_prirastok_chov_120 real,
	MD1_priem_ziv_prirastok_chov_210 real,
	MD1_priem_ziv_prirastok_chov_365 real,
	MD1_priem_ziv_prirastok_chov_500 real,
	K2_poc int,
	K2_poc_120 int,
	K2_perc_120 float,
	K2_poc_210 int,
	K2_perc_210 float,
	K2_poc_365 int,
	K2_perc_365 float,
	K2_poc_500 int,
	K2_perc_500 float,
	K2_Priem_Hm_120 real,
	K2_Priem_Hm_210 real,
	K2_Priem_Hm_365 real,
	K2_Priem_Hm_500 real,
	K2_priem_ziv_prirastok_120 int,
	K2_priem_ziv_prirastok_210 int,
	K2_priem_ziv_prirastok_365 int,
	K2_priem_ziv_prirastok_500 int,
	K2_medziobd int,
	K2_vek_1_otel varchar(7),
	K2_priem_lakt real,
	K2_vyradene int,
	J_poc int,
	J_poc_vaz_120 int,
	J_perc_120 float,
	J_poc_vaz_210 int,
	J_perc_210 float,
	J_poc_vaz_365 int,
	J_perc_365 float,
	J_poc_vaz_500 int,
	J_perc_500 float,
	J_Priem_Hm_120 real,
	J_Priem_Hm_210 real,
	J_Priem_Hm_365 real,
	J_Priem_Hm_500 real,
	J_priem_ziv_prirastok_chov_120 real,
	J_priem_ziv_prirastok_chov_210 real,
	J_priem_ziv_prirastok_chov_365 real,
	J_priem_ziv_prirastok_chov_500 real,
	B_poc int,
	B_poc_vaz_120 int,
	B_perc_120 float,
	B_poc_vaz_210 int,
	B_perc_210 float,
	B_poc_vaz_365 int,
	B_perc_365 float,
	B_poc_vaz_500 int,
	B_perc_500 float,
	B_Priem_Hm_120 real,
	B_Priem_Hm_210 real,
	B_Priem_Hm_365 real,
	B_Priem_Hm_500 real,
	B_priem_ziv_prirastok_chov_120 real,
	B_priem_ziv_prirastok_chov_210 real,
	B_priem_ziv_prirastok_chov_365 real,
	B_priem_ziv_prirastok_chov_500 real,
	MD2_poc int,
	MD2_poc_vaz_120 int,
	MD2_perc_120 float,
	MD2_poc_vaz_210 int,
	MD2_perc_210 float,
	MD2_poc_vaz_365 int,
	MD2_perc_365 float,
	MD2_poc_vaz_500 int,
	MD2_perc_500 float,
	MD2_Priem_Hm_120 real,
	MD2_Priem_Hm_210 real,
	MD2_Priem_Hm_365 real,
	MD2_Priem_Hm_500 real,
	MD2_priem_ziv_prirastok_chov_120 real,
	MD2_priem_ziv_prirastok_chov_210 real,
	MD2_priem_ziv_prirastok_chov_365 real,
	MD2_priem_ziv_prirastok_chov_500 real,
	MD2_vyradene int,
	rok varchar(5),
	plem_podiel varchar(30),
	EKOCHOV varchar(4)
)
go

create table GP_Rocenka_PrirSt
(
	id int,
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	Pocet_cap int,
	Pocet_koz int,
	PriemHmot_cap decimal(5,1),
	PriemHmot_koz decimal(5,1),
	PriemPocetDni_cap int,
	PriemPocetDni_koz int,
	PriemHodn_cap int,
	PriemHodn_koz int,
	PlemenoNazov varchar(256),
	Rok varchar(4)
)
go

create table CP_POVODY_SIM_PH_NEMECKO_2
(
	ANIMAL varchar(14)
		constraint IX_CP_POVODY_SIM_PH_NEMECKO2_Animal
			unique,
	DATNAR date,
	PLEMENO int,
	POHLAVIE int,
	PODIELCK int,
	OTEC varchar(14),
	MATKA varchar(14),
	MENO varchar(12)
)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_2_Matka
	on CP_POVODY_SIM_PH_NEMECKO_2 (MATKA)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_2_Otec
	on CP_POVODY_SIM_PH_NEMECKO_2 (ANIMAL)
go

create table SM_OVCESP
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	CH0M int,
	CH0T int,
	CH0B int,
	CH0L int,
	DATOBAH date,
	DATODST date,
	PORLAK varchar(1),
	DODBERU1 date,
	MLRANO1 float,
	MLOBED1 float,
	MLVECER1 float,
	ROZBTUK1 float,
	ROZBBIEL1 float,
	ROZBLAKT1 float,
	DODBERU2 date,
	MLRANO2 float,
	MLOBED2 float,
	MLVECER2 float,
	ROZBTUK2 float,
	ROZBBIEL2 float,
	ROZBLAKT2 float,
	DODBERU3 date,
	MLRANO3 float,
	MLOBED3 float,
	MLVECER3 float,
	ROZBTUK3 float,
	ROZBBIEL3 float,
	ROZBLAKT3 float,
	DODBERU4 date,
	MLRANO4 float,
	MLOBED4 float,
	MLVECER4 float,
	ROZBTUK4 float,
	ROZBBIEL4 float,
	ROZBLAKT4 float,
	DODBERU5 date,
	MLRANO5 float,
	MLOBED5 float,
	MLVECER5 float,
	ROZBTUK5 float,
	ROZBBIEL5 float,
	ROZBLAKT5 float,
	DODBERU6 date,
	MLRANO6 float,
	MLOBED6 float,
	MLVECER6 float,
	ROZBTUK6 float,
	ROZBBIEL6 float,
	ROZBLAKT6 float,
	DODBERU7 date,
	MLRANO7 float,
	MLOBED7 float,
	MLVECER7 float,
	ROZBTUK7 float,
	ROZBBIEL7 float,
	ROZBLAKT7 float,
	DODBERU8 date,
	MLRANO8 float,
	MLOBED8 float,
	MLVECER8 float,
	ROZBTUK8 float,
	ROZBBIEL8 float,
	ROZBLAKT8 float,
	ML float,
	TL float,
	BL float,
	LL float,
	PTL float,
	PBL float,
	PLL float,
	D int,
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	KMNL3L float,
	KTNL3L float,
	KBNL3L float,
	KLNL3L float
)
go

create table CP_BLUP_PROOFS
(
	cislo varchar(15),
	nd decimal(6),
	nr decimal(6),
	m305 decimal(6,1),
	m100 decimal(5,1),
	m200 decimal(5,1),
	m300 decimal(5,1),
	mp decimal(5,1),
	t305 decimal(6,2),
	t100 decimal(5,2),
	t200 decimal(5,2),
	t300 decimal(5,2),
	tp decimal(5,2),
	b305 decimal(6,2),
	b100 decimal(5,2),
	b200 decimal(5,2),
	b300 decimal(5,2),
	bp decimal(5,2),
	tperc decimal(10,7),
	bperc decimal(10,7),
	plem char(1)
)
go

create table Roc_MPHD_Tab_16
(
	pocet_prveIns int,
	pocet_insem_krav int,
	vsetkyins int,
	priemer_prvychIns float,
	pocet_prvetelne int,
	pocet_vsetky_telne int,
	priemertelnych float,
	telnost_po_prvych_ins float,
	TVI_telne_zo_vest_insem float,
	rok int
)
go

create table SP_OVCEDEL
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	CISVZOR varchar(3),
	DODBERU date,
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORAD int,
	DATOBAH date,
	DATODST date,
	MLRANO float,
	MLOBED float,
	MLVECER float,
	ROZBTUK float,
	ROZBBIEL float,
	ROZBLAKT float,
	PORLAK varchar(1)
)
go

create table HIST_NC_Sektor
(
	ID varchar(2),
	NAZOV varchar(40),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	IDSektor int identity
		primary key
)
go

create table Roc_MPHD_Tab_15
(
	pser_40 int,
	pser_41_75 int,
	pser_76_90 int,
	pser_91_120 int,
	pser_120 int,
	pser_vsetky int,
	perc_40 float,
	perc_41_75 float,
	perc_76_90 float,
	perc_91_120 float,
	perc_120 float,
	rok int
)
go

create table CP_POVODY_SIM_PH_NEMECKO_3
(
	ANIMAL varchar(14)
		constraint IX_CP_POVODY_SIM_PH_NEMECKO3_Animal
			unique,
	DATNAR date,
	PLEMENO int,
	POHLAVIE int,
	PODIELCK int,
	OTEC varchar(14),
	MATKA varchar(14),
	MENO varchar(12)
)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_3_Matka
	on CP_POVODY_SIM_PH_NEMECKO_3 (MATKA)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_3_Otec
	on CP_POVODY_SIM_PH_NEMECKO_3 (ANIMAL)
go

create table [temp_migr_respondery_old***]
(
	CISKRAVY varchar(14) not null,
	RESPONDER varchar(4)
)
go

create table CR_KUMP_CHK_MES_sumar_opr
(
	chov varchar(9),
	krav_spolu int,
	Nad420odOtel int,
	vek_krav_rok varchar(10),
	vek_1_otel varchar(10),
	medziobdobie varchar(5),
	porLakt float,
	tel_nar varchar(10),
	tel_mrt_nar varchar(3),
	tel_zmetanie varchar(3),
	dni_zp120 varchar(6),
	dni_zp210 varchar(6),
	dni_zp365 varchar(6),
	dni_zp500 varchar(10),
	rok_tel_nar varchar(10),
	rok_tel_mrt_nar varchar(3),
	rok_tel_zmetanie varchar(3),
	CUK_medziobodie varchar(5),
	CUK_tel_nar varchar(10),
	CUK_tel_mrt_nar varchar(3),
	CUK_tel_zmetanie varchar(3),
	CUK_120dni varchar(10),
	CUK_210dni varchar(10),
	CUK_365dni varchar(10),
	CUK_500dni varchar(10),
	mesiac int,
	rok int,
	generovane date,
	standart_potomok_ZN int,
	krav_vyr int
)
go

create table Roc_MPHD_Tab_14
(
	insInterval float,
	servisPerioda float,
	medziobdobie float,
	rok int,
	rozdielinsInterval float,
	rozdielservisPerioda float,
	rozdielmedziobdobie float
)
go

create table Cp_Meso_TelataPoLaktacii
(
	Chovatel varchar(9),
	Ciskrava varchar(14),
	PorLakt int,
	Medziobd int,
	VekMesac int,
	VekDni int,
	Datotel datetime,
	HmotOtel int,
	t1 varchar(14),
	t1Pochl int,
	HmotOtT1 int,
	t1h120 float,
	t1p120 float,
	t1h210 float,
	t1p210 float,
	t1urcet varchar(1),
	t2 varchar(14),
	t2Pochl int,
	HmotOtT2 int,
	t2h120 float,
	t2p120 float,
	t2h210 float,
	t2p210 float,
	t2urcet varchar(1),
	t3 varchar(14),
	t3Pochl int,
	HmotOtT3 int,
	t3h120 float,
	t3p120 float,
	t3h210 float,
	t3p210 float,
	t3urcet varchar(1),
	otecLin varchar(10),
	otecUsnCis varchar(14)
)
go

create index IX_Cp_Meso_TelataPoLaktacii_Ciskrava
	on Cp_Meso_TelataPoLaktacii (Ciskrava)
go

create index IX_Cp_Meso_TelataPoLaktacii_datotel
	on Cp_Meso_TelataPoLaktacii (Datotel)
go

create table CP_SPOL_IMPOT
(
	CISKRAVY varchar(15),
	OTECLIN varchar(3),
	OTECREG int,
	OTUSCIS varchar(15),
	OMENO varchar(40),
	OMENO1 varchar(20),
	POCHADZA varchar(50),
	OPK varchar(5),
	OPLEMENO varchar(173),
	ORPHM float,
	ORPHT float,
	ORPHB float,
	OOLIN varchar(3),
	OOREG int,
	OOUC varchar(15),
	OOMENO varchar(40),
	OOMENO1 varchar(20),
	OOPK varchar(5),
	OOPLEMENO varchar(173),
	OORPHM float,
	OORPHT float,
	OORPHB float,
	MO varchar(15),
	MOMENO varchar(40),
	MOPK varchar(5),
	MOPLEMENO varchar(173),
	MOTRIEDA varchar(3),
	MOMAX float,
	MOMAXML float,
	MOMAXT float,
	MOMAXB float,
	MOPERCT decimal(8,2),
	MOPERCB decimal(8,2),
	MOPRML float,
	MOPRT float,
	MOPRB float,
	MOPRTB float,
	MOPRPERCT decimal(7,2),
	MOPRPERCB decimal(7,2),
	MOPRPERCTB decimal(7,2),
	OOOLIN varchar(3),
	OOOREG int,
	OOOUC varchar(15),
	OOOMENO varchar(40),
	OOOMENO1 varchar(20),
	OOORPHM float,
	OOORPHT float,
	OOORPHB float,
	MOO varchar(15),
	MOOMENO varchar(40),
	MOOTRIEDA varchar(3),
	OMOLIN varchar(3),
	OMOREG int,
	OMOUC varchar(15),
	OMOMENO varchar(40),
	OMOMENO1 varchar(20),
	OMORPHM float,
	OMORPHT float,
	OMORPHB float,
	MMO varchar(15),
	MMOMENO varchar(40),
	MMOPK varchar(5),
	MMOTRIEDA varchar(3)
)
go

create table CP_TLACMD
(
	MESSP varchar(2),
	ROKSP varchar(2),
	CISTELATA varchar(14),
	CHOVVAZ varchar(9),
	NAZCHOV varchar(20),
	NAZPOD varchar(50),
	TECHUSMD varchar(2),
	NAZTECH varchar(32),
	PLEMENO varchar(24),
	DATNAR date,
	POHL varchar(1),
	PK varchar(3),
	ET varchar(1),
	FARBA varchar(2),
	MATKA varchar(14),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	DATVAZ1 date,
	VEK1 float,
	HMOT1 float,
	RP1 varchar(1),
	DATVAZ2 date,
	VEK2 float,
	HMOT2 float,
	RP2 varchar(1),
	DATVAZ3 date,
	VEK3 float,
	HMOT3 float,
	RP3 varchar(1),
	DATVAZ4 date,
	VEK4 float,
	HMOT4 float,
	RP4 varchar(1),
	DATVAZ5 date,
	VEK5 float,
	HMOT5 float,
	RP5 varchar(1),
	DATVAZ6 date,
	VEK6 float,
	HMOT6 float,
	RP6 varchar(1),
	ZIVPRIRAS float,
	DENPRIRAS float,
	DATINS date,
	PLANMI varchar(2),
	DENI varchar(2),
	LININS varchar(3),
	REGINS varchar(3),
	MESTEL float,
	DNITEL float,
	RPLPRIP varchar(2),
	MPLPRIP varchar(2),
	DATOTEL date,
	POCVSLAK float,
	POCNORLAK float,
	PORLAKMAX varchar(2),
	MLIEKOPR float,
	TUKPRPER float,
	BIELPRPER float,
	MLIEKOMX float,
	TUKMXPER float,
	BIELMXPER float
)
go

create table Roc_MPHD_Tab_13
(
	rok int,
	kravy_ins int,
	jalovice_ins int,
	reinseminacie int,
	spolu__ins int,
	telnostKravy float,
	telnostJalovice float,
	telnostSpolu float,
	rozdielinsKravy int,
	rozdielinsJal int,
	rozdielinsSpolu int,
	rozdielreins int
)
go

create table HIST_NC_Funkcia
(
	ID varchar(3) not null,
	NAZOV varchar(40),
	ID_HIST int identity
		primary key,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10)
)
go

create table CC_LDIntervaly
(
	KodIntLD int,
	NazovIntLD varchar(20),
	OdLD float,
	DoLD float
)
go

create table CM_PHKRAVYMP
(
	DATE_EVAL varchar(7),
	CHOVATEL varchar(9),
	ANIMAL varchar(14),
	PHHMOT120 float,
	PHHMOT210 float,
	PHHMOT365 float,
	N_POTOMKOV float,
	N_STAD float,
	SPOLAHL float
)
go

create table POM_EXPORT_DBF
(
	REGION varchar(2),
	FAKTURA varchar(10) not null,
	DATUM varchar(6) not null,
	ZAKAZNIK varchar(50),
	ICO varchar(10),
	CHOV varchar(9) not null,
	MENZOO varchar(43),
	CISZOO varchar(5),
	CISKONZ varchar(5),
	NAZPROD varchar(65),
	KODPROD varchar(5) not null,
	MERJEDN varchar(12),
	POCJEDN int not null,
	JEDNCENA decimal(13,3),
	PRIPLSK decimal(10,2) not null,
	PRIPLPERC decimal(10,2) not null,
	ZLAVCEL decimal(10,2) not null,
	CENASPOL decimal(10,2) not null,
	DOTACIA decimal(10,2) not null,
	DIC varchar(10),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	PSC varchar(5),
	PREDCISLIE varchar(6) not null,
	CISUCTU varchar(10) not null,
	KBANKY varchar(4) not null,
	PDPH numeric(3,1) not null,
	PERCZ float,
	KOPYPOCJ int not null,
	KOPYCESP decimal(10,2) not null
)
go

create table PM_BLUP_CONFIG
(
	Nazov varchar(50) not null,
	Hodnota varchar(50)
)
go

create table Roc_MPHD_Tab_12
(
	rok int,
	kravy_prve_ins int,
	jalovice_prve_ins int,
	spolu_prve_ins int,
	telnostKravy1ins float,
	telnostJalovice1ins float,
	telnostSpolu1ins float,
	rozdielinsKravy int,
	rozdielinsJal int,
	rozdielinsSpolu int
)
go

create table PM_BLUP_VSKAN_VYSLEDKY
(
	Rok_narodenia varchar(4),
	Poradove_cislo varchar(6),
	Pohlavie varchar(1),
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null,
	Pest_Bfft float,
	Pest_Adgft float,
	Pest_Nba1 float,
	Pest_Nba2 float,
	Pest_Adgst float,
	Pest_Vc float,
	Pest_Bfst float
)
go

create index IDX_PM_BLUP_VSKAN_VYSLEDKY_PC
	on PM_BLUP_VSKAN_VYSLEDKY (Rok_narodenia, Poradove_cislo, Pohlavie)
go

create table CC_SBintervaly
(
	KodIntSB int,
	NazovIntSB varchar(20),
	OdSB float,
	DoSB float
)
go

create table HIST_NC_SposVyk
(
	KOD varchar(1),
	NAZOV varchar(45),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NC_KapUst
(
	KOD varchar(1),
	NAZOV varchar(30)
)
go

create table CustomDB_Data
(
	LOGIN nvarchar(256) not null,
	USCISLO varchar(15) not null,
	OTEC varchar(15),
	MATKA varchar(15),
	POHLAVIE varchar(1),
	MENO varchar(256),
	koefpribuz float,
	constraint PK_CustomDB_Data
		primary key (LOGIN, USCISLO)
)
go

create table SP_Bahnice_Rep
(
	bahcis varchar(9) not null
		constraint PK_SP_Bahnice_Rep
			primary key,
	NarodCel int,
	NarBar int,
	OdchCel int,
	OdchBar int,
	NaChovCel int,
	NaChovBar int,
	pocVrh int,
	indRepr float,
	skratZap varchar(9)
)
go

create table G_POP_test
(
	KROKR varchar(50),
	PODNIK varchar(50),
	STADO varchar(50),
	LUC varchar(50),
	PUC varchar(50),
	JEDCIS varchar(50),
	DATUM varchar(50),
	POHL varchar(50),
	DATFAKT varchar(50)
)
go

create table SP_SMaZam_Z
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	POCPRIR int,
	DENPRIR decimal(6,2),
	POCPRIP int,
	PERCPLODOB decimal(4,1),
	POCOBAH int,
	NAZOV varchar(50),
	UKAZMAS decimal(6,2),
	BAROHOD int,
	BARER int,
	BARPREDV int,
	ZBAHPK int,
	BARCEL1 int,
	PTEST1 int,
	PSUHL1 int,
	BARCEL2 int,
	PTEST2 int,
	PSUHL2 int,
	STKU varchar(3),
	Rok int
)
go

create table SC_PaternVysled
(
	vysledokID int not null,
	vysledoktestu nvarchar(100),
	o_suhlasi bit,
	m_suhlasi bit
)
go

create table Roc_MPHD_Tab_11
(
	prvePocet int,
	prvePerc float,
	vsetkyPocet int,
	podielVset float,
	rok int,
	rozdielprvePoce int,
	rozdielprvePerc float,
	rozdielvsetkyPocet int,
	rozdielpodielVset float
)
go

create table PM_BLUP_VSPRA_VYSLEDKY
(
	Rok_narodenia varchar(4),
	Poradove_cislo varchar(6),
	Pohlavie varchar(1),
	Chovatel_kraj varchar(2),
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Prasnica varchar(5) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null,
	Pest_Bfft float,
	Pest_Adgft float,
	Pest_Nba1 float,
	Pest_Nba2 float,
	Pest_Adgst float,
	Pest_Vc float,
	Pest_Bfst float
)
go

create index IDX_PM_BLUP_VSPRA_VYSLEDKY_PC
	on PM_BLUP_VSPRA_VYSLEDKY (Rok_narodenia, Poradove_cislo, Pohlavie)
go

create table NM_PracSPU_Funkcia
(
	ID int identity
		primary key,
	ID_FUNKCIA varchar(3) not null,
	IDPAM varchar(5) not null,
	PERCENT int not null
)
go

create table PC_Akcie
(
	Kod_akcie varchar(2) not null
		constraint PK_PC_Akcie
			primary key,
	Nazov varchar(30)
)
go

create table Roc_MPHD_Tab_10
(
	LIN varchar(3),
	REG varchar(3),
	MENO varchar(40),
	rokNar int,
	PL1 varchar(3),
	pocetPrvych int,
	pocetVsetkych int,
	rok int
)
go

create table PM_BLUP_CDATA_VYSLEDKY
(
	Poradove_cislo varchar(11) not null,
	Kraj varchar(2),
	Okres varchar(2) not null,
	Podnik varchar(3) not null,
	Chov varchar(2),
	Matka varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Skraj varchar(2),
	Sokres varchar(2),
	Spodnik varchar(3),
	Schov varchar(2),
	Linia varchar(4),
	RegK_Cislo varchar(5),
	Kod_kategorie varchar(1) not null,
	Plemeno varchar(8) not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Matka_kraj varchar(2),
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(2),
	Matka_matka varchar(5) not null,
	Stanica varchar(2) not null,
	Skupina varchar(3) not null,
	Porazka date,
	prirST float,
	cmcST float,
	slanST float,
	hm2ST float,
	Merane date,
	prirVU float,
	slanVU float,
	vahaVU float,
	Poradie_vrhu varchar(2),
	Breeds varchar(8) not null,
	YS varchar(5),
	HYS varchar(14),
	Technik varchar(2),
	Agef int,
	Fint float,
	Ziv1 float,
	Ziv2 float,
	VahaV1 float,
	VahaV2 float,
	Breedb varchar(8),
	Lin varchar(4),
	Reg varchar(5),
	Agef2 float,
	Fint2 float,
	Bfft int not null,
	Adgft int not null,
	Adgst int not null,
	Vc int not null,
	Bfst int not null,
	Pest_Bfft float,
	Pest_Adgft float,
	Pest_Nba1 float,
	Pest_Nba2 float,
	Pest_Adgst float,
	Pest_Vc float,
	Pest_Bfst float
)
go

create index IDX_PM_BLUP_CDATA_VYSLEDKY_PC
	on PM_BLUP_CDATA_VYSLEDKY (Poradove_cislo)
go

create table CM_SIMOT
(
	OTEC varchar(6),
	OTUSCIS varchar(15),
	PLEMENO varchar(24),
	PLEMS varchar(2),
	NP float,
	NH float,
	OP_PRIEMER float,
	RPH float,
	RPHMAT float,
	lakt int
)
go

create table PC_Genofond
(
	Kod_genofond varchar(1) not null
		constraint PK_PC_Genofond
			primary key,
	Nazov varchar(20)
)
go

create table CR_KUHD_MesUzavCH_Hran
(
	CHOVATEL varchar(9) not null,
	CISKRAVY varchar(14),
	HRAN12KO bit,
	HRANTB100 bit,
	HRANTB200 bit,
	dekada int,
	mesiac int not null,
	rok int not null
)
go

create table temp_KRAVYKU
(
	CISKRAVY nvarchar(14)
)
go

create table NC_Obce_old
(
	OBEC varchar(20),
	PSC varchar(5),
	DPOSTA varchar(40),
	KOD_OKR varchar(3)
)
go

create table CP_SPRAC_MAIL_LOG
(
	Email varchar(256) not null,
	IDR bigint not null,
	Prijemca varchar(256) not null,
	Datum datetime not null,
	Zdroj varchar(10)
)
go

create table CM_TDMSIM
(
	CISKRAVY varchar(14),
	OTEC varchar(15),
	MATKA varchar(15),
	PORLAK varchar(2),
	ZMENA varchar(2),
	DATUMN date,
	DATOTEL date,
	DATKONTR date,
	CISCHOVU varchar(9),
	MLIEKO float,
	TUK float,
	TUKP float,
	BIELK float,
	BIELKP float,
	SB float,
	SCS float,
	DNI float,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYP varchar(2)
)
go

create index IX_CM_TDMSIM_Ciskravy
	on CM_TDMSIM (CISKRAVY)
go

create index IX_CM_TDMSIM_CiskravyDatkontr
	on CM_TDMSIM (CISKRAVY, DATKONTR)
go

create index IDX_CM_TDMSIM_CISKRAVY_DATOTEL
	on CM_TDMSIM (CISKRAVY, DATOTEL)
go

create table Roc_MPHD_Tab_1
(
	plemeno varchar(9),
	byk_nar_ks int,
	byk_nar_kg float,
	jal_nar_ks int,
	jal_nar_kg float,
	byk_120ks int,
	jal_120ks int,
	byk_210ks int,
	jal_210ks int,
	byk_365ks int,
	jal_365ks int,
	byk_500ks int,
	jal_500ks int,
	byk_120kg float,
	jal_120kg float,
	byk_210kg float,
	jal_210kg float,
	byk_365kg float,
	jal_365kg float,
	byk_500kg float,
	jal_500kg float,
	byk_g_den_120 float,
	jal_g_den_120 float,
	byk_g_den_210 float,
	jal_g_den_210 float,
	byk_g_den_365 float,
	jal_g_den_365 float,
	byk_g_den_500 float,
	jal_g_den_500 float,
	rok int
)
go

create table C_mesac_vysledky_KU_a_reproduk_HD
(
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOV varchar(3),
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	SKUP varchar(2),
	MESSP varchar(2),
	DATPOSK date,
	CISKRAVY varchar(14),
	PLEMKR varchar(26),
	DATNAR date,
	DATOT date,
	PORPREBLAK varchar(2),
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI float,
	PERSPOL float,
	ML1 float,
	ZN1 varchar(1),
	ML2 float,
	ZN2 varchar(1),
	ML3 float,
	ZN3 varchar(1),
	ML4 float,
	ZN4 varchar(1),
	ML5 float,
	ZN5 varchar(1),
	ML6 float,
	ZN6 varchar(1),
	ML7 float,
	ZN7 varchar(1),
	ML8 float,
	ZN8 varchar(1),
	ML9 float,
	ZN9 varchar(1),
	ML10 float,
	ZN10 varchar(1),
	ML11 float,
	ZN11 varchar(1),
	ML12 float,
	ZN12 varchar(1),
	NAPDNI float,
	NAPPERT float,
	NAPPERB float,
	NAPML float,
	NAPTK float,
	NAPBL float,
	UDNI float,
	UPERT float,
	UPERB float,
	UML float,
	UTK float,
	UBL float,
	SB1 float,
	SB2 float,
	PTUKU1 float,
	PBIELK1 float,
	PTB1 float,
	PTUKU2 float,
	PBIELK2 float,
	PTB2 float,
	OVEKR float,
	OVEKM float,
	POHLTEL varchar(2),
	PRIEBPOR varchar(1),
	DATINS date,
	PORINS varchar(2),
	IATERVAL float,
	SERVPER float,
	MEDZIOB float,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	DATOTOC date,
	OLIN varchar(3),
	OREG varchar(3),
	OTPLEM varchar(26),
	MATKA varchar(14),
	MAPLEM varchar(26),
	ZNVYR varchar(2)
)
go

create table HIST_NM_PracSPU_Funkcia
(
	ID int not null,
	ID_FUNKCIA varchar(3) not null,
	IDPAM varchar(5) not null,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID_HIST int identity
		primary key,
	PERCENT int not null
)
go

create table [CM_Dlhovekost_zal***]
(
	USCISLO varchar(15),
	MENO varchar(40),
	LIN varchar(3),
	REG int,
	KRAJPOV varchar(40),
	POCVYR int,
	POCET int,
	SPOLAHRPH float,
	RPH float,
	PLEMS varchar(2)
)
go

create table CP_MedziObdMesove
(
	kravcislo varchar(14),
	chovatel varchar(9),
	medziobd int,
	porpreblak int
)
go

create table PC_HodnOs
(
	Kod_hodnotenie varchar(2) not null
		constraint PK_PC_HodnOs
			primary key,
	Nazov varchar(15)
)
go

create table CP_SIM_LAKTPREB
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	DATOTEL date,
	HMOTN float,
	LAKTDNI float,
	MLIEKO decimal(7),
	TUK decimal(7,2),
	BIELK decimal(7,2),
	LAKTOZA decimal(7,2),
	SPOSOBKU varchar(1),
	ZMENA varchar(2),
	INDPER float
)
go

create table PM_BLUP_VSDATA
(
	Rok_narodenia varchar(4),
	Poradove_cislo varchar(6),
	Pohlavie varchar(1),
	Chovatel_kraj varchar(2),
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Prasnica varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Skraj varchar(2),
	Sokres varchar(2),
	Spodnik varchar(3),
	Schov varchar(2),
	Linia varchar(4),
	RegK_Cislo varchar(5),
	Kod_kategorie varchar(1) not null,
	Plemeno_vrhu varchar(8) not null,
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Matka_kraj varchar(2),
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(2),
	Matka_matka varchar(5) not null,
	Stanica varchar(2) not null,
	Skupina varchar(3) not null,
	Porazka date,
	prirST float,
	cmcST float,
	slanST float,
	hm2ST float,
	Merane date,
	prirVU float,
	slanVU float,
	vahaVU float
)
go

create unique index IDX_PM_BLUP_VSDATA_PRASNICA
	on PM_BLUP_VSDATA (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia, Usne_cislo)
go

create index IDX_PM_BLUP_VSDATA_KATEGORIA
	on PM_BLUP_VSDATA (Kod_kategorie)
go

create index IDX_PM_BLUP_VSDATA_ROK
	on PM_BLUP_VSDATA (Rok_narodenia)
go

create index IDX_PM_BLUP_VSDATA_PC
	on PM_BLUP_VSDATA (Poradove_cislo)
go

create table CP_POVODY_SIM_PH_NEMECKO_0
(
	ANIMAL varchar(14)
		constraint IX_CP_POVODY_SIM_PH_NEMECKO_Animal
			unique,
	DATNAR date,
	PLEMENO int,
	POHLAVIE int,
	PODIELCK int,
	OTEC varchar(14),
	MATKA varchar(14),
	MENO varchar(12)
)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_0_Matka
	on CP_POVODY_SIM_PH_NEMECKO_0 (MATKA)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_0_Otec
	on CP_POVODY_SIM_PH_NEMECKO_0 (OTEC)
go

create table Zamestnanci_PSSR
(
	[Os# číslo] float,
	[Titul pred] nvarchar(255),
	Priezvisko nvarchar(255),
	Meno nvarchar(255),
	[Titul za] nvarchar(255),
	Názov nvarchar(255),
	Útvar nvarchar(255)
)
go

create table EC_DotaciaNaRiadok
(
	IDUctu int not null,
	IDRiadka int not null,
	Suma decimal(12,2) not null,
	Datum date not null
)
go

create table Roc_MLHD_Tab_20A
(
	Por varchar(3),
	KRAJ varchar(1),
	OKRES varchar(2),
	stlpec_6 varchar(30),
	stlpec_7 int,
	stlpec_8 int,
	stlpec_9 int,
	stlpec_10 float,
	stlpec_11 int,
	stlpec_12 float,
	stlpec_13 int,
	stlpec_14Mesiac int,
	stlpec_14Den int,
	stlpec_15 int,
	stlpec_16 int,
	stlpec_17 int,
	stlpec_18 float,
	stlpec_19 int,
	stlpec_20 float,
	stlpec_21 int,
	stlpec_22 int,
	stlpec_23 int,
	stlpec_24 int,
	stlpec_25 int,
	stlpec_26 float,
	stlpec_27 int,
	stlpec_28 float,
	stlpec_29 int,
	stlpec_30 int,
	stlpec_31 float,
	stlpec_32_1 int,
	stlpec_32_2 int,
	rok varchar(4)
)
go

create table PC_Charvrhu
(
	Kod_charVrh varchar(1) not null
		constraint PK_PC_Charvrhu
			primary key,
	Nazov varchar(20)
)
go

create table HIST_NC_TSB
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table PM_BLUP_VSKAN
(
	Rok_narodenia varchar(4),
	Poradove_cislo varchar(6),
	Pohlavie varchar(1),
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null
)
go

create unique index IDX_PM_BLUP_VSKAN_KANEC
	on PM_BLUP_VSKAN (Linia_kanca, Register_kanca)
go

create table NC_ZvozneMiesta
(
	REG varchar(2) not null,
	ZVOZMIESTOID int not null,
	ZVOZMIESTONAZOV varchar(30),
	TYP int constraint DF_NC_ZvozneMiesta_TYP default 0 not null
)
go

create table SP_MlPlRoc
(
	ROK varchar(4),
	NAZSTKU varchar(7),
	PLEMUP varchar(8),
	POCETVS int,
	POCETMNL int,
	POCETTNL int,
	POCETBNL int,
	POCETLNL int,
	SMNL float,
	STNL float,
	SPTNL float,
	SBNL float,
	SPBNL float,
	SLNL float,
	SPLNL float,
	STKU varchar(1),
	RokRoc int
)
go

create table PC_KategOs
(
	Kod_kategorie varchar(1) not null
		constraint PK_PC_KategOs
			primary key,
	Nazov varchar(20)
)
go

create table NC_PrizFak
(
	PODNIK varchar(2),
	OKRES varchar(2),
	ZAVOD varchar(3),
	KOD varchar(1)
)
go

create table PM_BLUP_VSPRA
(
	Rok_narodenia varchar(4),
	Poradove_cislo varchar(6),
	Pohlavie varchar(1),
	Chovatel_kraj varchar(2),
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Prasnica varchar(5) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null
)
go

create unique index IDX_PM_BLUP_VSPRA_PRASNICA
	on PM_BLUP_VSPRA (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica)
go

create table SP_BlupPHZijML
(
	PLEMSK varchar(5),
	PHMLBAH float,
	PHTUKBAH float,
	PHBIELBAH float,
	PBAH float,
	SMBAH float,
	PHMLBAR float,
	PHTUKBAR float,
	PHBIELBAR float,
	PBAR float,
	SMBAR float,
	Rok int,
	typ varchar(2),
	DatSprac date
)
go

create table CP_HOL_Plemenice
(
	Uscislo varchar(15) not null,
	ImportCis varchar(15),
	Meno varchar(40),
	Meno1 varchar(15),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	Kr2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	Kr4 varchar(6),
	PL5 varchar(2),
	Farba varchar(2),
	Olin varchar(3),
	Oreg int,
	OUSCIS varchar(15),
	MUSCIS varchar(15),
	Datnar date,
	Dovvyr varchar(2),
	DatVyr date,
	Pohlavie varchar(2),
	Majitel varchar(9)
)
go

create table Roc_MLHD_Zoznam_tab
(
	ID int not null
		primary key,
	nazov varchar(250),
	por_v_roc varchar(3),
	roc_tab varchar(3),
	report varchar(3),
	dovvyr varchar(1),
	rok int
)
go

create table PM_BLUP_VUKANCE
(
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Chovatel_kraj varchar(2),
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Matka_kraj varchar(2),
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(2),
	Matka_matka varchar(5) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null
)
go

create unique index IDX_PM_BLUP_VUKANCE_KANEC
	on PM_BLUP_VUKANCE (Linia_kanca, Register_kanca)
go

create table CP_Meso_TelataVahy
(
	cistelata varchar(14),
	vahaNar float,
	vaha120 float,
	priras120 float,
	zpriras120 float,
	vaha210 float,
	priras210 float,
	zproras210 float,
	vaha365 float,
	priras365 float,
	zpriras365 float,
	vaha500 float,
	priras500 float,
	zpriras500 float,
	chovatel varchar(10)
)
go

create clustered index CP_chovatelTelata
	on CP_Meso_TelataVahy (chovatel)
go

create index CP_vahaNar
	on CP_Meso_TelataVahy (chovatel, vahaNar)
go

create index CP_vaha120
	on CP_Meso_TelataVahy (chovatel, vaha120, priras120)
go

create index CP_vaha210
	on CP_Meso_TelataVahy (chovatel, vaha210, priras210, zproras210)
go

create index Cp_vaha365
	on CP_Meso_TelataVahy (chovatel, vaha365, priras365, zpriras365)
go

create index CP_Vaha500
	on CP_Meso_TelataVahy (chovatel, vaha500, priras500, zpriras500)
go

create index IX_CP_Meso_TelataVahy_CISLOTELATA
	on CP_Meso_TelataVahy (cistelata)
go

create table CM_Dlhovekost_2018_11_26
(
	USCISLO varchar(15),
	MENO varchar(40),
	LIN varchar(3),
	REG int,
	KRAJPOV varchar(40),
	POCVYR int,
	POCET int,
	SPOLAHRPH float,
	RPH float,
	PLEMS varchar(2)
)
go

create table CP_BLUP_K95
(
	MH float,
	TH float,
	BH float,
	TPH float,
	BPH float,
	MS float,
	TS float,
	BS float,
	TPS float,
	BPS float,
	MP float,
	TPI float,
	BPI float,
	TPP float,
	BPP float,
	MO float,
	TO float,
	BO float,
	TPO float,
	BPO float,
	M0H float,
	M1H float,
	M2H float,
	M3H float,
	M4H float,
	T0H float,
	T1H float,
	T2H float,
	T3H float,
	T4H float,
	TPERH float,
	B0H float,
	B1H float,
	B2H float,
	B3H float,
	B4H float,
	BPERH float,
	M0S float,
	M1S float,
	M2S float,
	M3S float,
	M4S float,
	T0S float,
	T1S float,
	T2S float,
	T3S float,
	T4S float,
	TPERS float,
	B0S float,
	B1S float,
	B2S float,
	B3S float,
	B4S float,
	BPERS float,
	M0P float,
	M1P float,
	M2P float,
	M3P float,
	M4P float,
	T0P float,
	T1P float,
	T2P float,
	T3P float,
	T4P float,
	TPERP float,
	B0P float,
	B1P float,
	B2P float,
	B3P float,
	B4P float,
	BPERP float,
	M0O float,
	M1O float,
	M2O float,
	M3O float,
	M4O float,
	T0O float,
	T1O float,
	T2O float,
	T3O float,
	T4O float,
	B0O float,
	B1O float,
	B2O float,
	B3O float,
	B4O float,
	EWMH float,
	EWTH float,
	EWBH float,
	EWMS float,
	EWTS float,
	EWBS float,
	EWMP float,
	EWTP float,
	EWBP float,
	EWMO float,
	EWTO float,
	EWBO float,
	SC0H float,
	SC1H float,
	SC2H float,
	SC3H float,
	SC4H float,
	SC0S float,
	SC1S float,
	SC2S float,
	SC3S float,
	SC4S float,
	SC0P float,
	SC1P float,
	SC2P float,
	SC3P float,
	SC4P float
)
go

create table SP_BlupPHZijVV
(
	PLEMSK varchar(5),
	PHVVBAH float,
	PBAH float,
	SMBAH float,
	PHVVBAR float,
	PBAR float,
	SMBAR float,
	Rok int,
	typ varchar(2),
	DatSprac date
)
go

create table PC_SposPrip
(
	Kod_pripustenia varchar(2) not null
		constraint PK_PC_SposPrip
			primary key,
	Nazov varchar(30)
)
go

create table NC_Sektor
(
	ID varchar(2),
	NAZOV varchar(40)
)
go

create table PM_BLUP_VUPRASN
(
	Chovatel_kraj varchar(2),
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Prasnica varchar(5) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Povod_matka varchar(5) not null,
	Datum_narodenia date not null,
	Povod_uscislo varchar(7) not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Matka_kraj varchar(2),
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(2),
	Matka_matka varchar(5) not null,
	Dovoz varchar(2) not null,
	Plemeno varchar(8) not null
)
go

create unique index IDX_PM_BLUP_VUPRASN_PRASNICA
	on PM_BLUP_VUPRASN (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica)
go

create table temp_respondery_z_xls
(
	CISKRAVY varchar(14),
	RESPONDER varchar(4)
)
go

create table NC_DruhHZ
(
	TYP varchar(1) not null
		constraint PK_NC_DruhHZ
			primary key,
	ZVIERA varchar(20),
	KOD varchar(20)
)
go

create table CM_Dlhovekost
(
	USCISLO varchar(15),
	MENO varchar(40),
	LIN varchar(3),
	REG int,
	KRAJPOV varchar(40),
	POCVYR int,
	POCET int,
	SPOLAHRPH float,
	RPH float,
	PLEMS varchar(2)
)
go

create table SP_BLPHMLRR
(
	JEDCIS varchar(8),
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	POHL varchar(1),
	ROK varchar(4),
	PHMLIEKO float,
	PHTUK float,
	PHBIEL float,
	PLEMSK varchar(5),
	DOPOC bit,
	HVPORML varchar(3)
)
go

create table SP_BlupPHZijHO
(
	PLEMSK varchar(5),
	PHHOBAH float,
	PBAH float,
	SMBAH float,
	PHHOBAR float,
	PBAR float,
	SMBAR float,
	Rok int,
	typ varchar(2),
	DatSprac date
)
go

create table HIST_NC_TypKU
(
	KOD varchar(1),
	NAZOV varchar(45),
	NAZOVSKR varchar(10),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table PM_BLUP_PRASPOH
(
	RowNum bigint not null,
	Chovatel_kraj varchar(2) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(2),
	Prasnica varchar(5) not null,
	Typ varchar(1) not null,
	Datum date not null,
	PorIns varchar(2),
	Technik varchar(2) not null,
	ZnakPras varchar(1) not null,
	ZnakBrez varchar(1),
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Pocet_reins float,
	Poradie_vrhu varchar(2),
	Plemeno_vrhu varchar(8) not null,
	Kod_charvrh varchar(1) not null,
	Kod_VyV varchar(1) not null,
	Vsetky_nar float,
	Zivo_nar float,
	defekt_nar float,
	Datum_odstavu date,
	Dochov float,
	Hmotnost_vrhu float,
	Medziobdobie float,
	Priemer_vsetky float,
	Priemer_zive float,
	Priemer_dochovane float,
	Priemer_21 float
)
go

create unique index IDX_PM_BLUP_PRASPOH_ROWNUM
	on PM_BLUP_PRASPOH (RowNum)
go

create index IDX_PM_BLUP_PRASPOH_PRASNICA
	on PM_BLUP_PRASPOH (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica)
go

create table GC_PaternVysled
(
	vysledokID int not null,
	vysledoktestu nvarchar(100),
	o_suhlasi bit,
	m_suhlasi bit
)
go

create table NC_Funkcia
(
	ID varchar(3) not null
		constraint PK_NC_Funkcia
			primary key,
	NAZOV varchar(40)
)
go

create table NC_CiselnikKrajin
(
	KRAJINA nvarchar(100),
	KODKRAJINYKRATKY nvarchar(2),
	KODKRAJINY nvarchar(3),
	CISLOKRAJINY nvarchar(3)
)
go

create table PC_StHybZak
(
	Plemeno_KU varchar(8) not null
		constraint PK_PC_StHybZak
			primary key,
	Plemeno_vrhu varchar(8) not null,
	Nazov_plemena varchar(21),
	Skratka_plemena varchar(21),
	Aktivny varchar(1)
)
go

create table PC_StHybMP
(
	Plem_matka varchar(8) not null
		constraint FK_PC_StHybMP_PC_StHybZakM
			references PC_StHybZak,
	Plem_otec varchar(8) not null
		constraint FK_PC_StHybMP_PC_StHybZakO
			references PC_StHybZak,
	Plemeno_Vrhu varchar(8) not null,
	Plemeno_KU varchar(8) not null,
	Nazov_plemena varchar(30),
	Skratka_plemena varchar(21),
	Odchov_kan varchar(1),
	Odchov_pras varchar(1),
	SVJH_test varchar(1),
	constraint PK_PC_StHybMP
		primary key (Plem_matka, Plem_otec)
)
go

create table NC_TSB
(
	KOD varchar(1),
	NAZOV varchar(30)
)
go

create table PM_BLUP_RESUB1
(
	Poradove_cislo varchar(11) not null,
	Povod_kraj varchar(2),
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(2),
	Matka varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Sucasny_kraj varchar(2) not null,
	Sucasny_okres varchar(2) not null,
	Sucasny_podnik varchar(3) not null,
	Sucasny_chov varchar(2),
	Sucasna_prasnica varchar(5) not null,
	Plemeno_pras varchar(8) not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Poradie_vrhu varchar(2),
	YS varchar(5),
	HYS varchar(14),
	Technik varchar(2),
	Agef int,
	Fint float,
	Ziv1 float,
	Ziv2 float,
	VahaV1 float,
	VahaV2 float,
	Agef2 float,
	Fint2 float,
	Linia_kanca varchar(4),
	Register_kanca varchar(5),
	Plemeno_kanca varchar(8)
)
go

create index IDX_PM_BLUP_RESUB1_PC
	on PM_BLUP_RESUB1 (Poradove_cislo)
go

create table CP_USEKY_LAKT_ROCNE
(
	CHOVATEL varchar(9) not null,
	ROK int,
	PORLAK int,
	DNI int,
	PRMLIEKO float
)
go

create table pompom
(
	podnik varchar(6)
)
go

create table PC_Tablin
(
	Linia_kanca varchar(4) not null
		constraint PK_PC_Tablin
			primary key,
	Skratka_nazvu varchar(3),
	Skr_plemena varchar(2),
	Nazov_linie varchar(10),
	Aktivny varchar(1)
)
go

create table NC_TypKU
(
	KOD varchar(1),
	NAZOV varchar(45),
	NAZOVSKR varchar(10)
)
go

create table PM_BLUP_CDATA
(
	Poradove_cislo varchar(11) not null,
	Kraj varchar(2),
	Okres varchar(2) not null,
	Podnik varchar(3) not null,
	Chov varchar(2),
	Matka varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Skraj varchar(2),
	Sokres varchar(2),
	Spodnik varchar(3),
	Schov varchar(2),
	Linia varchar(4),
	RegK_Cislo varchar(5),
	Kod_kategorie varchar(1) not null,
	Plemeno varchar(8) not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Matka_kraj varchar(2),
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(2),
	Matka_matka varchar(5) not null,
	Stanica varchar(2) not null,
	Skupina varchar(3) not null,
	Porazka date,
	prirST float,
	cmcST float,
	slanST float,
	hm2ST float,
	Merane date,
	prirVU float,
	slanVU float,
	vahaVU float,
	Poradie_vrhu varchar(2),
	Breeds varchar(8) not null,
	YS varchar(5),
	HYS varchar(14),
	Technik varchar(2),
	Agef int,
	Fint float,
	Ziv1 float,
	Ziv2 float,
	VahaV1 float,
	VahaV2 float,
	Breedb varchar(8),
	Lin varchar(4),
	Reg varchar(5),
	Agef2 float,
	Fint2 float,
	Bfft int not null,
	Adgft int not null,
	Adgst int not null,
	Vc int not null,
	Bfst int not null
)
go

create index IDX_PM_BLUP_CDATA_PC
	on PM_BLUP_CDATA (Poradove_cislo)
go

create index IDX_PM_BLUP_CDATA_MATKA
	on PM_BLUP_CDATA (Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka_matka)
go

create table NM_PRACKU
(
	IDPRACKU int identity
		constraint PK_NM_PRACKU
			primary key,
	CORG varchar(2),
	STREDISKO varchar(3),
	REGISTR_CISLO varchar(5),
	ID varchar(5),
	TITULPRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITULZA varchar(5),
	TELEFPRAC varchar(50),
	TELEFPRIV varchar(15),
	MOBIL varchar(15),
	FAX varchar(15),
	EMAIL varchar(50),
	IDPAMov varchar(5),
	FIRMA varchar(50),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	FFUNKCIA varchar(3),
	RODCIS varchar(12),
	IDPAM varchar(5),
	FUNKCIA varchar(100),
	NADRIAD varchar(5),
	KONZUL varchar(2),
	PZ varchar(2),
	InsKraj varchar(1),
	InsOkres varchar(2),
	InsCisloTech varchar(2),
	KONZULENT_HD varchar(1),
	ZOOTECHNIK_HD varchar(1),
	SLACHTITEL_HD varchar(1),
	INS_TECHNIK_HD varchar(1),
	KONZULENT_OS varchar(1),
	ZOOTECHNIK_OS varchar(1),
	SLACHTITEL_OS varchar(1),
	INS_TECHNIK_OS varchar(1),
	KONZULENT_OV varchar(1),
	ZOOTECHNIK_OV varchar(1),
	SLACHTITEL_OV varchar(1),
	KONZULENT_KO varchar(1),
	ZOOTECHNIK_KO varchar(1),
	SLACHTITEL_KO varchar(1),
	MANAGER_KU varchar(1),
	constraint IX_NM_PRACKU
		unique (IDPRACKU, STREDISKO, REGISTR_CISLO)
)
go

exec sp_addextendedproperty 'MS_Description', 'ID pracovníka v PLISe poskytuj', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'IDPRACKU'
go

exec sp_addextendedproperty 'MS_Description', 'číslo organizácie v PLISe, kto', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'CORG'
go

exec sp_addextendedproperty 'MS_Description', 'Podriadená zložka organizácie', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'STREDISKO'
go

exec sp_addextendedproperty 'MS_Description', 'Pridelené registračné číslo pl', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'REGISTR_CISLO'
go

exec sp_addextendedproperty 'MS_Description', '*** Toto je pomocné ID prevzat', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'ID'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné,  PAM číslo pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'IDPAMov'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocný názov pre upre', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'FIRMA'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné pre určenie fu', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'FFUNKCIA'
go

exec sp_addextendedproperty 'MS_Description', 'z kontakty ovce', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'RODCIS'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, prevzaté z Pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'IDPAM'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, prevzaté z Pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'FUNKCIA'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, prevzaté z Pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'NADRIAD'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, prevzaté z Pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'KONZUL'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, prevzaté z Pr', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'PZ'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, stará evidenc', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'InsKraj'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, stará evidenc', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'InsOkres'
go

exec sp_addextendedproperty 'MS_Description', '*** len pomocné, stará evidenc', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'InsCisloTech'
go

exec sp_addextendedproperty 'MS_Description', '1- pracovník má túto funkciu,', 'SCHEMA', 'dbo', 'TABLE', 'NM_PRACKU', 'COLUMN', 'KONZULENT_HD'
go

create table CR_KURHD_MesUzavCH_3
(
	chov varchar(9),
	rok int,
	mesiac int,
	dekada int,
	CISKRAVY varchar(14),
	PORPREBLAK int,
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI decimal(7),
	PERSPOL decimal(7,2),
	DATNAR date,
	PLEMKR varchar(70),
	DATOT date,
	PK int,
	ML1 decimal(5,2),
	ZN1 varchar(1),
	ML2 decimal(5,2),
	ZN2 varchar(1),
	ML3 decimal(5,2),
	ZN3 varchar(1),
	ML4 decimal(5,2),
	ZN4 varchar(1),
	ML5 decimal(5,2),
	ZN5 varchar(1),
	ML6 decimal(5,2),
	ZN6 varchar(1),
	ML7 decimal(5,2),
	ZN7 varchar(1),
	ML8 decimal(5,2),
	ZN8 varchar(1),
	ML9 decimal(5,2),
	ZN9 varchar(1),
	ML10 decimal(5,2),
	ZN10 varchar(1),
	ML11 decimal(5,2),
	ZN11 varchar(1),
	ML12 decimal(5,2),
	ZN12 varchar(1),
	PTUKU1 decimal(4,2),
	PBIELK1 decimal(4,2),
	PTB1 decimal(3,1),
	SB1 int,
	PTUKU2 decimal(3,2),
	PBIELK2 decimal(3,2),
	PTB2 decimal(3,2),
	SB2 int,
	LAKTDNI int,
	UDNI int,
	NAPML decimal(7,2),
	NAPTK decimal(7,2),
	UPERT decimal(3,2),
	NAPBL decimal(7,2),
	UPERB decimal(4,2),
	PORINS int,
	OLINREG varchar(10),
	DTOTOC date,
	DATINS date,
	OUC varchar(14),
	OTPLEM varchar(70),
	MATKA varchar(14),
	MAPLEM varchar(70),
	INTERVAL int,
	SERVPER int,
	MEDZIOB int,
	OVEKRM varchar(4),
	POHLTEL varchar(2),
	PRIEBPOR int,
	nap_dni int,
	nap_mliekokg int,
	nap_tukper decimal(7,2),
	nap_bielkper decimal(7,2),
	nap_tkg int,
	nap_bkg int,
	DOVVYR varchar(2),
	DATVYR date,
	generovane datetime,
	kontrola datetime,
	SKUPINA varchar(3),
	otec varchar(14)
)
go

create table GM_KozyPat
(
	DnaID int,
	Zviera1 int,
	Vysledok int,
	LUC varchar(15),
	CEHZ varchar(15),
	pohlavie tinyint,
	DatNar datetime2,
	OTLUC varchar(15),
	OTCEHZ varchar(15),
	MALUC varchar(15),
	MACEHZ varchar(15),
	plemeno varchar(50),
	DatumPrijmu datetime2,
	vysledokID int,
	vysledoktestu varchar(100),
	Maxdatanal datetime2
)
go

create table NM_adresa
(
	ID varchar(12) not null
		constraint PK_NM_adresa
			primary key,
	FIRMA varchar(100),
	ULICA varchar(60),
	OBEC varchar(80),
	PCISLO varchar(20),
	DPOSTA varchar(80),
	PSC varchar(10),
	GISX varchar(12),
	GISY varchar(12)
)
go

create table SM_APOTOMOK
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEMS varchar(10),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	REGION varchar(2),
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTDENPRIR float,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTBMLUZMA varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAPL varchar(4),
	MADENPRIR float,
	MASURV varchar(1),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MABMLUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMTRIED varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMTRIED varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOTRIED varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOTRIED varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMVYSTR varchar(2),
	DATNAR date,
	HMOTN float,
	POHL varchar(1),
	SURVRH varchar(1),
	PREDVYB varchar(1),
	DATH30 date,
	HMOT30 float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR1 float,
	KDPRIR float,
	HVPORPR varchar(3),
	PHVELVRH float,
	HVPORVV varchar(3),
	PHMLIEKO float,
	HVPORML varchar(3),
	PHHMODS float,
	HVPORHO varchar(3),
	DATNT date,
	NTKRAJ varchar(1),
	KATCIS float,
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BVLNA varchar(2),
	BDEFEKT float,
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	PZIVHMOTNT float,
	DATVAZNT date,
	HM1ROK float,
	HVHM1ROK varchar(3),
	VYBER varchar(2),
	CENABON float,
	DATPRED date,
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	GENPRES bit not null
)
go

create index IX_CEHZ
	on SM_APOTOMOK (ZVSTAT, JCCEHZ)
go

create table PC_VyradKU
(
	Kod_vyrKU varchar(2) not null
		constraint PK_PC_VyradKU
			primary key,
	Nazov varchar(40)
)
go

create table NC_TypTlace
(
	TYP varchar(1),
	POPIS varchar(15)
)
go

create table PM_BLUP_BLDAT
(
	Anim varchar(11),
	Station varchar(2) not null,
	Herd varchar(9),
	Breed varchar(8) not null,
	Litter varchar(17),
	adgST float,
	vcST float,
	bfST float,
	wST float,
	adgFT float,
	bfFT float,
	woFT float,
	YS1ST varchar(7),
	HYS1FT varchar(14),
	Sex varchar(1),
	Parity varchar(2),
	Breeds varchar(8) not null,
	HYS varchar(14),
	TType varchar(2),
	Agef int,
	Fint float,
	Nba1 float,
	Nba2 float,
	W211 float,
	W212 float,
	Breedb varchar(8),
	Fint2 float,
	Agef2 float
)
go

create table CP_Dlhovek_Kravy_HOL
(
	CISKRAVY varchar(14) not null,
	MAJITEL varchar(9) not null,
	OUSCIS varchar(14),
	OMUSCIS varchar(14),
	DATNAR date,
	VEK1OT float,
	DOVVYR varchar(2),
	DATVYR date,
	PORPREBLAK varchar(2),
	POCVSETLAK float,
	STADO1 varchar(8),
	PORLAK1 varchar(2),
	DATOTEL1 date,
	ROKOTEL1 varchar(4),
	MESOTEL1 varchar(2),
	SEZONA1 varchar(1),
	SRO1 varchar(13),
	LAKDNIN1 float,
	MLIEKNOR1 float,
	STADO2 varchar(8),
	PORLAK2 varchar(2),
	DATOTEL2 date,
	ROKOTEL2 varchar(4),
	MESOTEL2 varchar(2),
	SEZONA2 varchar(1),
	SRO2 varchar(13),
	LAKDNIN2 float,
	MLIEKNOR2 float,
	STADO3 varchar(8),
	PORLAK3 varchar(2),
	DATOTEL3 date,
	ROKOTEL3 varchar(4),
	MESOTEL3 varchar(2),
	SEZONA3 varchar(1),
	SRO3 varchar(13),
	LAKDNIN3 float,
	MLIEKNOR3 float,
	STADO4 varchar(8),
	PORLAK4 varchar(2),
	DATOTEL4 date,
	ROKOTEL4 varchar(4),
	MESOTEL4 varchar(2),
	SEZONA4 varchar(1),
	SRO4 varchar(13),
	LAKDNIN4 float,
	MLIEKNOR4 float,
	STADO5 varchar(8),
	PORLAK5 varchar(2),
	DATOTEL5 date,
	ROKOTEL5 varchar(4),
	MESOTEL5 varchar(2),
	SEZONA5 varchar(1),
	SRO5 varchar(13),
	LAKDNIN5 float,
	MLIEKNOR5 float,
	STADO6 varchar(8),
	PORLAK6 varchar(2),
	DATOTEL6 date,
	ROKOTEL6 varchar(4),
	MESOTEL6 varchar(2),
	SEZONA6 varchar(1),
	SRO6 varchar(13),
	LAKDNIN6 float,
	MLIEKNOR6 float,
	PREZIT1 float,
	PREZIT2 float,
	PREZIT3 float,
	PREZIT4 float,
	PREZIT5 float
)
go

create table PC_VyradVJH
(
	Kod_vyrVJH varchar(2) not null
		constraint PK_PC_VyradVJH
			primary key,
	Nazov varchar(40)
)
go

create table HIST_NC_TypTlace
(
	TYP varchar(1),
	POPIS varchar(15),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NC_TZvoz
(
	KOD varchar(1),
	NAZOV varchar(30)
)
go

create table PM_BLUP_BLPED
(
	Poradove_cislo varchar(11) not null
		primary key,
	Poradove_cislo_matky varchar(11) not null,
	Poradove_cislo_otca varchar(11) not null
)
go

create index IDX_PM_BLUP_BLPED_MATKA
	on PM_BLUP_BLPED (Poradove_cislo_matky)
go

create index IDX_PM_BLUP_BLPED_OTEC
	on PM_BLUP_BLPED (Poradove_cislo_otca)
go

create table CP_SIM_VAZENIA_TMHD
(
	CISTELATA varchar(14),
	DATVAZ date,
	HMOT float,
	ZIVOTNY_PRIRASTOK int,
	RP varchar(1)
)
go

create table CP_Dlhovek_Kravy_SIM
(
	CISKRAVY varchar(14) not null,
	MAJITEL varchar(9) not null,
	OUSCIS varchar(14),
	OMUSCIS varchar(14),
	DATNAR date,
	VEK1OT float,
	DOVVYR varchar(2),
	DATVYR date,
	PORPREBLAK varchar(2),
	POCVSETLAK float,
	STADO1 varchar(8),
	PORLAK1 varchar(2),
	DATOTEL1 date,
	ROKOTEL1 varchar(4),
	MESOTEL1 varchar(2),
	SEZONA1 varchar(1),
	SRO1 varchar(13),
	LAKDNIN1 float,
	MLIEKNOR1 float,
	STADO2 varchar(8),
	PORLAK2 varchar(2),
	DATOTEL2 date,
	ROKOTEL2 varchar(4),
	MESOTEL2 varchar(2),
	SEZONA2 varchar(1),
	SRO2 varchar(13),
	LAKDNIN2 float,
	MLIEKNOR2 float,
	STADO3 varchar(8),
	PORLAK3 varchar(2),
	DATOTEL3 date,
	ROKOTEL3 varchar(4),
	MESOTEL3 varchar(2),
	SEZONA3 varchar(1),
	SRO3 varchar(13),
	LAKDNIN3 float,
	MLIEKNOR3 float,
	STADO4 varchar(8),
	PORLAK4 varchar(2),
	DATOTEL4 date,
	ROKOTEL4 varchar(4),
	MESOTEL4 varchar(2),
	SEZONA4 varchar(1),
	SRO4 varchar(13),
	LAKDNIN4 float,
	MLIEKNOR4 float,
	STADO5 varchar(8),
	PORLAK5 varchar(2),
	DATOTEL5 date,
	ROKOTEL5 varchar(4),
	MESOTEL5 varchar(2),
	SEZONA5 varchar(1),
	SRO5 varchar(13),
	LAKDNIN5 float,
	MLIEKNOR5 float,
	STADO6 varchar(8),
	PORLAK6 varchar(2),
	DATOTEL6 date,
	ROKOTEL6 varchar(4),
	MESOTEL6 varchar(2),
	SEZONA6 varchar(1),
	SRO6 varchar(13),
	LAKDNIN6 float,
	MLIEKNOR6 float,
	PREZIT1 float,
	PREZIT2 float,
	PREZIT3 float,
	PREZIT4 float,
	PREZIT5 float
)
go

create table GM_REPRPLRR
(
	PLEM varchar(8),
	STKU varchar(1),
	VYKKU varchar(1),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOKOT float,
	POCKOZIC float,
	POCCAPK float,
	POCODCH float,
	PBAH1 float,
	POCKOZLIAT float,
	POCPRIP float,
	PRCASVYR float,
	POCJAL float,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOK float,
	PODCHKOZ float,
	Plem1 as substring([Plem],1,2)
)
go

create table SP_SumKZ
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOBAH float,
	POCJAH float,
	POCBAR float,
	POCODCH float,
	PBAH1 float
)
go

create table PC_VyradVU
(
	Kod_vyrVU varchar(2) not null
		constraint PK_PC_VyradVU
			primary key,
	Nazov varchar(40)
)
go

create table NC_Ulice
(
	DULICA varchar(30),
	PSC varchar(5),
	DPOSTA varchar(40),
	POSTA varchar(20),
	OBCE varchar(42)
)
go

create table CP_BLUP_KRAVYTDM_SC
(
	KRAVA varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	NARSIRE date,
	DAM varchar(15),
	NARDAM date,
	BREEDG varchar(2),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SC305 decimal(8,3),
	RPHSC int,
	SCREL decimal(5,4),
	plem char(1)
)
go

create table SM_BLPHHO
(
	JEDCIS varchar(8),
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	POHL varchar(1),
	ROK varchar(4),
	PHHMODS float,
	PLEMSK varchar(5),
	DOPOC bit,
	HVPORHO varchar(3)
)
go

create index JedCis
	on SM_BLPHHO (JEDCIS)
go

create table CP_SPOL_MEN
(
	KOKR varchar(3) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(2) not null,
	MASTAL varchar(1) not null,
	PRIZNAK varchar(2) not null,
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	ULICAP varchar(30),
	PCISLO varchar(10),
	MIESTOPOD varchar(40),
	PSCPOD varchar(5)
)
go

create table CP_CHOVY_DATA_Z_FANDU
(
	chov varchar(9) not null
)
go

create table CP_Dlhovek_Lakt_HOL
(
	CISKRAVY varchar(14) not null,
	STADO varchar(8),
	PORLAK varchar(2),
	DATOTEL date,
	ROKOTEL varchar(4),
	MESOTEL varchar(2),
	SEZONA varchar(1),
	SRO varchar(13),
	LAKDNIN float,
	MLIEKNOR float
)
go

create table GM_REPRSTRR
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOKOT float,
	POCKOZIC float,
	POCCAPK float,
	POCODCH float,
	PBAH1 float,
	STKU varchar(1),
	VYKKU varchar(1),
	PLEM varchar(8),
	NAZOV varchar(30),
	POCKOZLIAT float,
	POCPRIP float,
	PRCASVYR float,
	POCJAL float,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOK float,
	PODCHKOZ float,
	Plem1 as substring([Plem],1,2)
)
go

create table SM_MenZCHOK
(
	KROKR varchar(6),
	PODNIK varchar(6),
	STADO varchar(6),
	CISPRAC varchar(4)
)
go

create table NC_UzitZam
(
	UZITZST varchar(1),
	POPIS varchar(20)
)
go

create table CP_BLUP_BYKYTDM_SC
(
	BYK varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SC305 decimal(8,3),
	RPHSC int,
	SCREL decimal(5,4),
	plem char(1)
)
go

create index IX_CP_BLUP_BYKYTDM_SC_SIRE
	on CP_BLUP_BYKYTDM_SC (SIRE)
go

create table SM_BLPHML
(
	JEDCIS varchar(8),
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	POHL varchar(1),
	ROK varchar(4),
	PHMLIEKO float,
	PHTUK float,
	PHBIEL float,
	PLEMSK varchar(5),
	DOPOC bit,
	HVPORML varchar(3)
)
go

create index JedCis
	on SM_BLPHML (JEDCIS)
go

create table CP_Dlhovek_Lakt_SIM
(
	CISKRAVY varchar(14) not null,
	STADO varchar(8),
	PORLAK varchar(2),
	DATOTEL date,
	ROKOTEL varchar(4),
	MESOTEL varchar(2),
	SEZONA varchar(1),
	SRO varchar(13),
	LAKDNIN float,
	MLIEKNOR float
)
go

create table CP_DojvostPodlaMaxLaktacia
(
	nazovSkupina varchar(20),
	pocet1lakt int,
	perc1lakt float,
	poc2lakt int,
	perc2lakt float,
	pocNlakt int,
	percNlakt float,
	chovatel varchar(9),
	KodLakt varchar(2)
)
go

create table SM_MLLTRR
(
	JEDCIS varchar(8),
	PLEM varchar(6),
	PLEMSK varchar(5),
	MLD float,
	TUK float,
	UPRMLD float,
	UPRTUK float,
	INDEX float,
	HVMLLT varchar(3),
	ROK varchar(4)
)
go

create table CC_BB_COUNTRY
(
	COUNTRY_ID int not null,
	COUNTRYCODE varchar(3),
	COUNTRYNAME varchar(64),
	COUNTRYCODE3 varchar(3),
	COUNTRYNUM varchar(3)
)
go

create table CP_LAKT_VYSL_PDC_SIM_NEMECKO
(
	CISKRAVY varchar(14) not null,
	PORLAK int,
	DNI int,
	MLIEKO float,
	TUK float,
	BIELK float,
	PRMLIEKO float
)
go

create table NC_VyrObl
(
	KOD varchar(1),
	NAZOV varchar(30)
)
go

create table SM_BLPHVV
(
	JEDCIS varchar(8),
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	POHL varchar(1),
	ROK varchar(4),
	PHVELVRH float,
	PLEMSK varchar(5),
	DOPOC bit,
	HVPORVV varchar(3)
)
go

create index JedCis
	on SM_BLPHVV (JEDCIS)
go

create table CP_BLUP_KRAVYTDM
(
	KRAVA varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SPI int,
	M305 decimal(6,1),
	RPHM int,
	M100 decimal(7,1),
	MREL decimal(5,4),
	T305 decimal(7,2),
	RPHT int,
	T100 decimal(7,2),
	TP decimal(11,7),
	TPERC decimal(11,7),
	TREL decimal(5,4),
	B305 decimal(7,2),
	RPHB int,
	B100 decimal(7,2),
	BP decimal(11,7),
	BPERC decimal(11,7),
	BREL decimal(5,4),
	REL decimal(5,4),
	plem char(1)
)
go

create table CP_Dlhovek_Rodokmene_HOL
(
	O varchar(14) not null,
	OO varchar(15),
	MO varchar(15),
	OOO varchar(15),
	MOO varchar(15),
	OMO varchar(15),
	MMO varchar(15),
	OOOO varchar(15),
	MOOO varchar(15),
	OMOO varchar(15),
	MMOO varchar(15),
	OOMO varchar(15),
	MOMO varchar(15),
	OMMO varchar(15),
	MMMO varchar(15)
)
go

create table CP_DojvostPodlaPoslednaLaktacia
(
	nazovSkupina varchar(20),
	pocet1lakt int,
	perc1lakt float,
	poc2lakt int,
	perc2lakt float,
	pocNlakt int,
	percNlakt float,
	chovatel varchar(9),
	KodLakt varchar(2)
)
go

create table SM_VYSKOH
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8) not null,
	POHL varchar(1),
	DATUM date,
	VYSKOH float
)
go

create table CC_BB_METHOD
(
	METHOD_ID numeric(38) not null,
	NAME varchar(30),
	SHORTNAME varchar(5)
)
go

create table HIST_NC_TZvoz
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table SC_StupenKU
(
	StupenKu int,
	Popis varchar(30)
)
go

create table SM_Paternita
(
	DnaID varchar(7),
	LUC varchar(5),
	CEHZ varchar(14),
	pohlavie tinyint,
	DatNar datetime2,
	plemj varchar(10),
	chov varchar(9),
	nazLin varchar(20),
	OtLUC varchar(5),
	OtCEHZ varchar(14),
	MaLUC varchar(5),
	MaCEHZ varchar(14),
	DatPrijmu datetime2,
	vysledokID int,
	vysledoktestu varchar(100),
	DatAnal datetime2,
	OtLUCj varchar(5),
	OtCEHZj varchar(14),
	MaLUCj varchar(5),
	MaCEHZj varchar(14),
	pohlj tinyint,
	o_suhlasi tinyint,
	m_suhlasi tinyint,
	inyOt tinyint,
	inaMa tinyint
)
go

create index idx_CEHZ
	on SM_Paternita (CEHZ)
go

create index idx_dnaid
	on SM_Paternita (DnaID)
go

create table CP_Dlhovek_Rodokmene_SIM
(
	O varchar(14) not null,
	OO varchar(15),
	MO varchar(15),
	OOO varchar(15),
	MOO varchar(15),
	OMO varchar(15),
	MMO varchar(15),
	OOOO varchar(15),
	MOOO varchar(15),
	OMOO varchar(15),
	MMOO varchar(15),
	OOMO varchar(15),
	MOMO varchar(15),
	OMMO varchar(15),
	MMMO varchar(15)
)
go

create table CP_MedziobdZostavaA
(
	chovatel varchar(9),
	groupNazov varchar(20),
	l1 int,
	pl1 float,
	l2 int,
	pl2 float,
	l3 int,
	pl3 float,
	l4 int,
	pl4 float,
	l5 int,
	pl5 float,
	l6 int,
	pl6 float,
	l7 int,
	pl7 float,
	l8 int,
	pl8 float,
	l9 int,
	pl9 float,
	Spolu int,
	pSpolu float,
	Pmedziobd int,
	SpoluChov int,
	znakLakt varchar(2)
)
go

create table SP_BonitSt
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DATBON date,
	DATBOV date,
	DATBJAR date,
	BAHPREDB float,
	BARPREDB float,
	JARPREDB float,
	POCJAHN float,
	POCMBAR float,
	PBARER float,
	PBAREA float,
	PBAREB float,
	PBARI float,
	PBARII float,
	PVYRBAR float,
	PVYRBAR2 float,
	PNVYRBAR float,
	PBAHER float,
	PBAHEA float,
	PBAHEB float,
	PBAHI float,
	PBAHII float,
	PBAHBT float,
	PVYRBAH float,
	PVYRBAH2 float,
	PNVYRBAH float,
	PMIMBAH float,
	POHJAR float,
	PJARER float,
	PJAREA float,
	PJAREB float,
	PJARI float,
	PJARII float,
	PVYRJAR float,
	PVYRJAR2 float,
	PNOHJAR float,
	DSPRBONJ date,
	DSPRBONO date
)
go

create table SP_OvceRRTest
(
	KrOkr varchar(3),
	Podnik varchar(3),
	Stado varchar(3),
	KrOkrM varchar(3),
	PodnikM varchar(3),
	StadoM varchar(3),
	CisVzor varchar(3),
	DOdberu date,
	LUC varchar(5),
	PUC varchar(5),
	BahCis varchar(8),
	ZVStat varchar(2),
	JCCEHZ varchar(12),
	Porad int,
	DatObah date,
	MlRano int,
	MlObed int,
	MlVecer int,
	RozbTuk decimal(5,2),
	RozbBiel decimal(4,2),
	RozbLakt decimal(4,2),
	Soma varchar(5),
	PorLak int,
	Verif bit,
	DatSpr date,
	DatFakt date,
	RokEv int,
	DatOdst date
)
go

create table PM_PotomsPev
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Datum_narodenia date not null,
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Plemeno_vrhu varchar(8) not null,
	Poradie_vrhu float,
	Vsetky_nar float,
	Zivo_nar float,
	Dochov float,
	Hmotnost_vrhu float,
	Medzidobie float,
	Pocet_vrhov float,
	Priem_vsetky_nar float,
	Priem_zivo_nar float,
	Priem_dochov float,
	Priem_hmotnost_vrhu float,
	Priem_medzidobie float,
	Zdroj_dat varchar(1),
	constraint PK_PM_PotomsPev
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia)
)
go

create index IDX_PM_PotomsPev_LiniaRegister
	on PM_PotomsPev (Linia_kanca, Register_kanca)
go

create index IDX_PM_PotomsPev
	on PM_PotomsPev (Zdroj_dat)
go

create table CP_MedziobdZostavaB
(
	chovatel varchar(9),
	Mleko varchar(20),
	BezMedzi int,
	pBezMedzi float,
	[320] int,
	p320 float,
	[321-365] int,
	[p321-365] float,
	[366-385] int,
	[p366-385] float,
	[386-400] int,
	[p386-400] float,
	[400] int,
	p400 float,
	SpoluGroup int,
	pSpoluGroup float,
	ZnakLakt varchar(2),
	SpoluChov int
)
go

create table SP_PlHm1rok
(
	PLEM varchar(2),
	POCET float,
	HM1ROK float,
	SMODCH float,
	DATSPRAC date,
	C_H3HV float,
	C_H2HV float,
	C_H1HV float,
	C_H1MIN float,
	C_H2MIN float
)
go

create table PM_PotomsPoh
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Kod_ketegorie varchar(1) not null
		constraint FK_PM_PotomsPoh_PC_KategOs
			references PC_KategOs,
	Cecky varchar(2),
	Kod_vyrVU varchar(2) not null
		constraint FK_PM_PotomsPoh_PC_VyradVU
			references PC_VyradVU,
	Datum_meraniaVU date,
	Meracia_skupinaVU varchar(2),
	Datum_sprac_meraniaVU date,
	Hmotnost_VU float,
	Piglog_slanina1 float,
	Piglog_slanina2 float,
	Piglog_sval float,
	Piglog_HMC float,
	Prirastok float,
	Vyska_slaniny float,
	vek float,
	P_prirastok float,
	P_vyska_slaniny float,
	P_piglog_HMC float,
	Datum_trhu date,
	Datum_sprac_katalog date,
	Cislo_katalog varchar(3),
	Kod_hodnotenie varchar(2) not null
		constraint FK_PM_PotomsPoh_PC_HodnOs
			references PC_HodnOs,
	Kupujuci_kraj varchar(1) not null,
	Kupujuci_okres varchar(2) not null,
	Kupujuci_podnik varchar(3) not null,
	Kupujuci_chov varchar(3) not null,
	nIdent_linia varchar(4) not null,
	nIdent_reg_EvCis varchar(5) not null,
	bfft float,
	adgft float,
	nba1 float,
	nba2 float,
	adgst float,
	vc float,
	bfst float,
	CPH float,
	pCPH float,
	perc varchar(2),
	Zdroj_dat varchar(1),
	constraint PK_PM_PotomsPoh
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia, Usne_cislo),
	constraint FK_PM_PotomsPoh_PM_PotomsPev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia) references PM_PotomsPev
)
go

create index IDX_PM_PotomsPoh
	on PM_PotomsPoh (Zdroj_dat)
go

create table GC_Pohlavie
(
	kod varchar(1) not null,
	popis varchar(15) not null
)
go

create table SM_PKPOTOM
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	KROKR1Z varchar(3),
	PODNIK1Z varchar(3),
	STADO1Z varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	PLEM varchar(10),
	DATNAR date,
	SURVRH varchar(1),
	DOVOD varchar(1),
	DATVYR date,
	HVPORPR varchar(3),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLNA varchar(2),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	TRIED varchar(2),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTTRIED varchar(2),
	OTSURV varchar(1),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MAEXTER varchar(2),
	MATRIED varchar(2),
	MASURV varchar(1),
	MAHVPORML varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMVYSTR varchar(2),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOVYSTR varchar(2),
	CISTKRV bit not null,
	NAZLIN varchar(12),
	POHL varchar(1)
)
go

create table temp_oprav_pov_teliat
(
	IDTELATA int identity,
	idot varchar(20)
)
go

create table SP_Rocenka_MlSt
(
	Zameranie varchar(1),
	StupenKU varchar(2),
	id int,
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	Vsetky_Lakt int,
	NormLakt_Mlieko int,
	NormLakt_Tuk int,
	NormLakt_Biel int,
	NormLakt_Lakt int,
	Mlieko_lit decimal(5,2),
	Tuk_kg decimal(5,2),
	Tuk_perc decimal(5,2),
	Bielk_kg decimal(5,2),
	Bielk_perc decimal(5,2),
	Lakt_kg decimal(5,2),
	Lakt_perc decimal(5,2),
	SposVykKU varchar(25),
	PlemenoNazov varchar(256),
	StupenKUNazov varchar(256),
	Rok varchar(4)
)
go

create table SC_CISCHVD
(
	CHYBA varchar(2),
	POPIS varchar(70)
)
go

create table HIST_NC_Ulice
(
	DULICA varchar(30),
	PSC varchar(5),
	DPOSTA varchar(40),
	POSTA varchar(20),
	OBCE varchar(42),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CP_KravaPoslednaUzavLakt
(
	cislokrava varchar(14),
	chovatel varchar(9),
	poslLakt int,
	medziobd int,
	vekOtel float,
	lakdni int,
	lakdniN int,
	mlieko int,
	mliekoN int,
	tuk int,
	tukN int,
	bielk int,
	bielkN int,
	BaT int,
	BaTN int,
	zmena int,
	Kod_Doj int,
	Kod_Medz int
)
go

create index Cp_Chovatel_krava
	on CP_KravaPoslednaUzavLakt (chovatel, cislokrava)
go

create index CP_Krava_indexLakt_indMleko
	on CP_KravaPoslednaUzavLakt (cislokrava, Kod_Doj, Kod_Medz)
go

create index CP_KravaDoij
	on CP_KravaPoslednaUzavLakt (chovatel, Kod_Doj, cislokrava)
go

create index CP_Kraca_medzi
	on CP_KravaPoslednaUzavLakt (chovatel, Kod_Medz, cislokrava)
go

create index CP_Dojvost
	on CP_KravaPoslednaUzavLakt (cislokrava, chovatel, Kod_Doj, Kod_Medz)
go

create table CP_PlemenaPH
(
	idpl varchar(1) not null,
	nazpl varchar(50) not null
)
go

create table SC_ChybBon
(
	CISCHYB varchar(2),
	POPIS varchar(60)
)
go

create table NM_Zootechnik
(
	TITUL_PRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITUL_ZA varchar(5),
	FUNKCIA varchar(25),
	ID int identity
		primary key
)
go

create table GP_GMlZam_Z
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ID_CHOV int,
	PLEM varchar(8),
	SMNL decimal(6,2),
	POCETMNL int,
	POCPRIP int,
	PERCPLODOK decimal(5,1),
	POCOKOT int,
	NAZOV varchar(50),
	UKAZML decimal(7,2),
	CAPOHOD int,
	CAPER int,
	CAPPREDV int,
	ZKOZYPK int,
	POCKOZIC int,
	ZARKOZIC int,
	ZKOZICER int,
	POZNAMKA varchar(40),
	rok int
)
go

create table SC_ChybGP
(
	CISCHYB varchar(2),
	HESLOCH varchar(45)
)
go

create table Roc_MLHD_Tab_13
(
	Por varchar(3),
	Okres varchar(50),
	Podnik varchar(100),
	Mastal varchar(100),
	Mastal_cis varchar(5),
	CharUst varchar(50),
	Prev_plem varchar(30),
	Poc_n_lakt int,
	LaktDni int,
	mlieko int,
	tuk_P float,
	tuk_KG int,
	bielk_P float,
	bielk_KG int,
	medziobd int,
	vek1ot_Mes int,
	vek1ot_Den int,
	rok varchar(4),
	Plem_typ varchar(6),
	vek_otel varchar(8)
)
go

create table SP_Bon_BonBahn
(
	KrOkr varchar(3),
	Podnik varchar(3),
	Stado varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BahCis varchar(8),
	ZVStat varchar(2),
	JCCEHZ varchar(12),
	Plem varchar(10),
	PlemS varchar(10),
	Genotyp varchar(7),
	Riz_skup varchar(4),
	NazO varchar(12),
	Tried varchar(2),
	HvPorMl2 varchar(3),
	HvPorPr2 varchar(3),
	SurV varchar(1),
	KodPK varchar(2),
	KodPlod int,
	InRepr decimal(2,1),
	Bahnenie varchar(9),
	RokNar varchar(4),
	PHMliekoT varchar(7),
	PHVelVrhT varchar(7),
	PHHmOdsT varchar(7),
	Dovod varchar(1),
	DatVyr date,
	DatUloz date
)
go

create table myFileList
(
	FileNumber int identity,
	FileName varchar(256)
)
go

create table SC_ChybKZ
(
	CISLO varchar(2),
	POPIS varchar(70)
)
go

create table CM_Krava
(
	IDKRAVY int identity
		constraint PK_CM_Krava
			primary key,
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9) not null,
	SKUPINA varchar(2),
	PK varchar(5),
	OTECLIN varchar(3),
	OTECREG int,
	OUSCIS varchar(15),
	MA varchar(15),
	IDOT int,
	IDMA int,
	DATNAR date,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	FARBA varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit,
	POHLAVIE varchar(2),
	ZDRAVTR varchar(1),
	PLEMENNA varchar(1),
	PORPREBLAK int,
	DATPOSKONT date,
	DOVVYR varchar(2),
	DATVYR date,
	DATZAR date,
	TRUZIT varchar(3),
	PORLAKMAX int,
	MLIEKOMAX float,
	TUKMAX float,
	BIELMAX float,
	LAKTOZAMAX float,
	POCVSETLAK float,
	POCNORLAK float,
	MLIEKOPR float,
	TUKPRKG float,
	TUKPRPER float,
	BIELPRKG float,
	BIELPRPER float,
	LAKTPRKG float,
	LAKTPRPER float,
	TYPPLEM varchar(3),
	FARMACEHZ varchar(6),
	PRIZNAKKU varchar(1),
	KRJA varchar(1) not null,
	PINT float,
	PSER float,
	PMED float,
	BB_ANIMALCODE varchar(15),
	BB_NAME varchar(40),
	BB_IMPORTED varchar(1),
	BB_BREEDING_NAME varchar(100),
	BB_OWNER varchar(50),
	BB_KEEPER varchar(50),
	BB_USE varchar(30),
	BB_COUNTRYCODE varchar(3),
	BB_CATEGORY varchar(20),
	BB_HERDBOOK_NUMBER varchar(15),
	DATZAPPREP date,
	DATVYBPREP date,
	RESPONDER varchar(4),
	SPRACINSERT bigint,
	SPRACUPDATE bigint
)
go

create unique index IX_CM_Krava
	on CM_Krava (CISKRAVY)
go

create index Ind_Rodokmen
	on CM_Krava (CISKRAVY, CHOVATEL, OUSCIS, MA)
go

create index Ind_PriznaKKU
	on CM_Krava (PRIZNAKKU)
go

create index CP_DOVVYR
	on CM_Krava (DOVVYR)
go

create index Ind_otec
	on CM_Krava (CHOVATEL, OTECLIN, OTECREG, OUSCIS)
go

create index Cp_Chovatel
	on CM_Krava (CHOVATEL)
go

create index IX_CM_Krava_IDOT
	on CM_Krava (IDOT)
go

create index IX_CM_Krava_IDMA
	on CM_Krava (IDMA)
go

create index CP_Otec
	on CM_Krava (OTECLIN, OTECREG, OUSCIS)
go

create index CP_ALL
	on CM_Krava (DOVVYR, CISKRAVY, CHOVATEL, OTECLIN, OTECREG, OUSCIS, MA, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, PRIZNAKKU)
go

create table SP_Bon_BonBar
(
	KrOkr varchar(3),
	Podnik varchar(3),
	Stado varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BarCis varchar(8),
	ZVStat varchar(2),
	JCCEHZ varchar(12),
	PLEM varchar(10),
	PLEMS varchar(10),
	Genotyp varchar(7),
	Riz_skup varchar(4),
	Linia varchar(12),
	HvPorPr2 varchar(3),
	KodPlod int,
	MaHvPorMl2 varchar(3),
	SVJH varchar(2),
	Tried varchar(2),
	KodPK varchar(2),
	PHMliekoT varchar(7),
	PHVelVrhT varchar(7),
	PHHmOdsT varchar(7),
	Dovod varchar(1),
	DatVyr date,
	Poznamka varchar(34),
	Vyber bit,
	DatUloz date
)
go

create table SM_Konzul
(
	CISKON varchar(5) not null,
	MENOD varchar(25),
	OSCISLO varchar(5),
	REGSTR varchar(2),
	TELPRAC varchar(18),
	TELDOM varchar(18),
	MOBIL varchar(18),
	ADRESAD varchar(75),
	MAIL varchar(30),
	VYBER bit
)
go

create table HIST_NM_Zootechnik
(
	ID_ZOOTECHNIK int,
	TITUL_PRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITUL_ZA varchar(5),
	FUNKCIA varchar(25),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table SP_Bon_DatBonSt
(
	KrOkr varchar(3),
	Stado varchar(3),
	DatBon date,
	DatBOv date,
	DatBJar date,
	BahPredB int,
	BarPredB int,
	JarPredB int,
	PocJahn int,
	PocMBar int,
	pBarER int,
	pBarEA int,
	pBarEB int,
	pBarI int,
	pBarII int,
	pVyrBar int,
	pVyrBar2 int,
	pNVyrBar int,
	pBahER int,
	pBahEA int,
	pBahEB int,
	pBahI int,
	pBahII int,
	pBahBT int,
	pVyrBah int,
	pVyrBah2 int,
	pNVyrBah int,
	pMimBah int,
	pOhJar int,
	pJarER int,
	pJarEA int,
	pJarEB int,
	pJarI int,
	pJarII int,
	pVyrJar int,
	pVyrJar2 int,
	pNOhJar int,
	DSprBonJ date,
	DSprBonO date,
	Vyb_Jarky bit,
	Vyb_Ovce bit,
	DatUloz date
)
go

create table HIST_NC_UzitZam
(
	UZITZST varchar(1),
	POPIS varchar(20),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CP_PIN_PripJal
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table SM_MCHPRACO
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZPODN varchar(25),
	NAZPODD varchar(50),
	NAZOV varchar(30),
	STKU varchar(5),
	PLEM varchar(8),
	TITULPR1 varchar(10),
	MENO1 varchar(12),
	PRIEZV1 varchar(30),
	TITULZA1 varchar(8),
	FUNKCIA1 varchar(25),
	TITULPR2 varchar(10),
	MENO2 varchar(12),
	PRIEZV2 varchar(30),
	TITULZA2 varchar(8),
	FUNKCIA2 varchar(25),
	NOVAKUML bit not null,
	CISKON varchar(5),
	CISZOO varchar(5),
	VYKKU varchar(1),
	EXPCHOV varchar(1),
	UZITZST varchar(1)
)
go

create table CP_BLUP_BYKYTDM
(
	BYK varchar(15),
	BLIN varchar(3),
	BREG varchar(3),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	SLIN varchar(3),
	SREG varchar(3),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SPI int,
	M305 decimal(6,1),
	RPHM int,
	M100 decimal(7,1),
	MREL decimal(5,4),
	T305 decimal(7,2),
	RPHT int,
	T100 decimal(7,2),
	TP decimal(11,7),
	TPERC decimal(11,7),
	TREL decimal(5,4),
	B305 decimal(7,2),
	RPHB int,
	B100 decimal(7,2),
	BP decimal(11,7),
	BPERC decimal(11,7),
	BREL decimal(5,4),
	REL decimal(5,4),
	MENBYK varchar(50),
	plem char(1)
)
go

create table SP_Bon_Jarky
(
	KrOkr varchar(3),
	Podnik varchar(3),
	Stado varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JedCis varchar(8),
	ZVStat varchar(2),
	JCCEHZ varchar(12),
	PLEM varchar(10),
	PLEMZ varchar(10),
	PlemS varchar(10),
	Genotyp varchar(7),
	Riz_skup varchar(4),
	OtKrOkr varchar(3),
	OtPodnik varchar(3),
	OtStado varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OtCis varchar(8),
	OtZVStat varchar(2),
	OtJCCEHZ varchar(12),
	OtDenPrir int,
	OtPovod int,
	OtVU int,
	OtVlna int,
	OtOsval int,
	OtExter int,
	OtCelkom varchar(3),
	OtTried varchar(2),
	OtKodPK varchar(2),
	OtSVJH varchar(2),
	OtSurVrh varchar(1),
	OtKPlod varchar(1),
	MaKrOkr varchar(3),
	MaPodnik varchar(3),
	MaStado varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MaCis varchar(8),
	MaZVStat varchar(2),
	MaJCCEHZ varchar(12),
	MaDenPrir int,
	MaPovod int,
	MaVU int,
	MaVlna int,
	MaOsval int,
	MaExter int,
	MaCelkom varchar(3),
	MaTried varchar(2),
	MaMNL3L decimal(5,2),
	MaHvPorMl2 varchar(3),
	MaPorLak int,
	MaKodPK varchar(2),
	MaSurVrh varchar(1),
	MaKPlod varchar(1),
	OMKrOkr varchar(3),
	OMPodnik varchar(3),
	OMStado varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMTried varchar(2),
	OMKodPK varchar(2),
	OMSVJH varchar(2),
	MMKrOkr varchar(3),
	MMPodnik varchar(3),
	MMStado varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMTried varchar(2),
	MMKodPK varchar(2),
	MMMaxMl varchar(15),
	OOKrOkr varchar(3),
	OOPodnik varchar(3),
	OOStado varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOTried varchar(2),
	OOKodPK varchar(2),
	OOSVJH varchar(2),
	MOKrOkr varchar(3),
	MOPodnik varchar(3),
	MOStado varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOTried varchar(2),
	MOKodPK varchar(2),
	MOMaxMl varchar(15),
	DATNAR date,
	HMOTN decimal(2,1),
	POHL int,
	SURVRH int,
	DenPrir int,
	KDPrir int,
	HvPorPr varchar(3),
	DATNT date,
	KatCis int,
	PHVelVrhT varchar(7),
	HvPorVV varchar(3),
	PHMliekoT varchar(7),
	HvPorMl varchar(3),
	PHHmOdsT varchar(7),
	HvPorHO varchar(3),
	KodPlod int,
	BPovod int,
	BVU int,
	BVLS int,
	BVLCH int,
	BVlPP int,
	BVlna int,
	BDefekt int,
	BOsval int,
	BMlUzMa int,
	BExter int,
	BCelkom varchar(3),
	Tried varchar(2),
	Sortim varchar(5),
	DlVlPo decimal(3,1),
	DlVlPe decimal(3,1),
	PredKrOkr varchar(3),
	PredPodnik varchar(3),
	PredStado varchar(3),
	VYBER bit,
	DatUloz date
)
go

create table SM_BAHNICA
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8) not null
		constraint PK_SM_BAHNICA
			primary key,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORCIS varchar(4),
	PRIZNAK varchar(2),
	MIMOKU bit,
	PLEMS varchar(10),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	DATNAR date,
	HMOTN float,
	DATOD date,
	HMOTOD float,
	STMENNAR varchar(1),
	KROKRNAR varchar(3),
	PODNIKNAR varchar(3),
	STADONAR varchar(3),
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	PVRH float,
	NAPJAH float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	DATNT date,
	KPPNT varchar(2),
	KRAJNT varchar(1),
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BDEFEKT float,
	BVLNA varchar(2),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	ZIVHMOTNT float,
	CENABON float,
	KATALC float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTDENPR float,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTBMLUZMA varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MADENPR float,
	MASURV varchar(1),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MABMLUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMVYSTR varchar(2),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOVYSTR varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	ZPLEM1 as case when substring([Plem],1,2)='KM' OR substring([Plem],1,2)='SM' OR substring([Plem],1,2)='FM' OR substring([Plem],1,2)='AM' OR substring([Plem],1,2)='M ' then 'M ' when substring([plem],1,2)='ZU' OR substring([plem],1,2)='ZV' then 'ZV' else substring([Plem],1,2) end,
	RokNar as case when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])<7 then datepart(year,[DATNAR]) when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])>6 then datepart(year,[DATNAR])+1 when isnumeric(replace([LUC],' ',''))=0 then 0 when CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0)>datepart(year,getdate()) then CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0)-10 else CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0) end,
	CisLin as case when [otluc] IS NULL then '????' else substring([OTLUC],1,4) end
)
go

create index IX_SM_BAHNICA_chov
	on SM_BAHNICA (KROKR, PODNIK, STADO)
go

create index IX_SM_BAHNICA_vyr
	on SM_BAHNICA (DOVOD, DATVYR)
go

create index IX_SM_BAHNICA_CEHZ
	on SM_BAHNICA (ZVSTAT, JCCEHZ)
go

create index IX_SM_Bahnica_LUC
	on SM_BAHNICA (LUC)
go

create table CM_Byci_pred_zrovnanim_s_BB
(
	IDBYKA int not null,
	LIN varchar(3),
	REG int,
	USCISLO varchar(15) not null,
	MENO varchar(40),
	MENO1 varchar(20),
	PK varchar(5),
	CHOVNAR varchar(20),
	OTUSCIS varchar(15),
	MATKA varchar(15),
	IDOT int,
	IDMA int,
	DATNAR date,
	DATPOR date,
	DATREG date,
	KROK varchar(3),
	CHOVATEL varchar(9),
	MAJITEL varchar(50),
	KODMAJ varchar(2),
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYPPLEM varchar(3),
	FARBA varchar(2),
	ZNAKET varchar(2),
	POHLAVIE varchar(2),
	KRVROZ varchar(16),
	DATKRVROZ date,
	DATVYRAD date,
	ZDRAVTR varchar(2),
	ZACTEST date,
	KONTEST date,
	KDMROK date,
	KDMPOCSTAD float,
	KDMSW float,
	KDMPOC float,
	KDMMLIEKO float,
	BLUPMLIEKO float,
	RPHMLIEKA float,
	KDMTUKKG float,
	KDMTUKPER float,
	BLUPTUK float,
	PHTUK float,
	RPHTUKU float,
	KDMBIELKG float,
	KDMBIELPER float,
	BLUPBIELK float,
	PHBIELK float,
	RPHBIELK float,
	PEROPAKOV float,
	METODA varchar(4),
	KDE varchar(12),
	KDDROK date,
	KDDSW float,
	KDDPOC float,
	KDDMAXMINV float,
	KDDIPZ float,
	KDDRV3 float,
	RPHRV3 float,
	KDVROK date,
	KDVSW float,
	KDVPOC float,
	PRIRTEST float,
	PRIRCEL float,
	NETTOPRIR float,
	RPHNETTO float,
	KDVSTAT varchar(12),
	KDVNAZIND varchar(2),
	KDVIND float,
	KDVRL float,
	PRIZNAKBB varchar(1),
	BB_ANIMALCODE varchar(15),
	BB_IMPORTED varchar(1),
	BB_USE varchar(30),
	BB_BUYER varchar(50),
	BB_KEEPER varchar(50),
	BB_INSEM char(1),
	BB_COUNTRYCODE varchar(3),
	BB_CZECH_REGISTER varchar(3),
	BB_CATEGORY varchar(20),
	BB_INSEM_COMPANY varchar(50),
	BB_LIVE char(1),
	BB_CZECH_LINE varchar(3),
	BB_HERDBOOK_NUMBER varchar(15),
	BB_BASESELECTION_PERFORMED date,
	BB_BASESELECTION_LOOK varchar(15),
	BB_BASESELECTION_RESULT_CLASS varchar(4),
	BB_BASESELECTION_BREEDING varchar(100),
	BB_BLOODTEST_COUNTRYNAME varchar(100),
	GENOM_BYK int,
	BB_ANIMAL_ID numeric(38)
)
go

create table NC_Mliekomer
(
	KOD varchar(1) not null,
	NAZOV varchar(128)
)
go

create table CP_Mlieko_NajKrava
(
	krava varchar(14),
	chovatel varchar(9),
	pocetlakt int,
	pocetlaktN int,
	mliekoS int,
	tukS int,
	BielkS int,
	mliekoP float,
	tukP float,
	bielkP float
)
go

create table SM_PraZCHOK
(
	MENO varchar(15),
	PRIEZV varchar(30),
	CISPRAC varchar(2) not null,
	VYBER bit
)
go

create table GM_Potomok
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	REGION varchar(2),
	ROH varchar(4),
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTROH varchar(4),
	OTDENPRIR float,
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTBMUZMA varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAROH varchar(4),
	MAPL varchar(4),
	MADENPRIR float,
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MABMUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMROH varchar(4),
	OMTRIED varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMROH varchar(4),
	MMTRIED varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOROH varchar(4),
	OOTRIED varchar(2),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	STMENMO varchar(1),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOROH varchar(4),
	MOTRIED varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	DATNAR date,
	HMOTN float,
	POHL varchar(1),
	SURVRH varchar(1),
	PREDVYB varchar(1),
	DATH30 date,
	HMOT30 float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	MIESTONT varchar(12),
	DATNT date,
	NTKRAJ varchar(1),
	KATCIS float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BINTRASTU varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRZOVN varchar(2),
	TRIED varchar(2),
	PZIVHMOTNT float,
	VYBER varchar(2),
	CENABON float,
	DATPRED date,
	STMENPRED varchar(1),
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	GENPRES bit,
	RocNar as case when datepart(month,[DATNAR])<7 then (str(datepart(year,[DATNAR])-1,4,0)+'/')+substring(str(datepart(year,[DATNAR]),4,0),3,2) else (str(datepart(year,[DATNAR]),4,0)+'/')+substring(str(datepart(year,[DATNAR])+1,4,0),3,2) end,
	CisLin as case when [otluc] IS NULL then '????' else replace(substring([OTLUC],1,4),' ','0') end
)
go

create table SP_Ovecky
(
	jedcis varchar(8) not null,
	CEHZ varchar(14),
	chov varchar(9),
	LUC varchar(5),
	PUC varchar(5),
	datNar datetime,
	tab varchar(14),
	pohl varchar(1),
	plem varchar(10),
	plems varchar(10),
	otecCis varchar(8),
	otec varchar(14),
	otecLUC varchar(5),
	otecPUC varchar(5),
	matkaCis varchar(8),
	matka varchar(14),
	matkaLUC varchar(5),
	matkaPUC varchar(5),
	dovod varchar(1),
	datVyr datetime,
	plemFix varchar(10)
)
go

create clustered index idx_CEHZ
	on SP_Ovecky (CEHZ)
go

create index idx_cislo
	on SP_Ovecky (jedcis)
go

create index idx_chov
	on SP_Ovecky (chov)
go

create table Roc_MLHD_Tab_NAJCHOV
(
	KrajOkr varchar(3),
	Podnik varchar(3),
	Chov varchar(3),
	Podnik_nazov varchar(30),
	Chov_nazov varchar(30),
	Prev_pl varchar(7),
	PocLakt float,
	Mlieko float,
	Tuk_kg float,
	Tuk_p float,
	Bielk_kg float,
	Bielk_p float,
	Tuk_Bielk float,
	Priem_lakt float,
	Medziobd float,
	Indx float,
	Rok int
)
go

create table PP_ZoznamChovov
(
	Chov varchar(9) not null,
	Nazov varchar(25),
	StKU varchar(5),
	PlemSt varchar(4),
	UzitZSt varchar(30),
	PocetPrasnic int,
	PocetKancov int,
	PocetPotomkov int,
	Plemenar varchar(30),
	VykKU varchar(1)
)
go

create table HIST_NC_Mliekomer
(
	KOD varchar(1),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table GP_Kozicky
(
	jedCis varchar(8) not null,
	CEHZ varchar(14),
	chov varchar(9),
	LUC varchar(5),
	PUC varchar(5),
	datNar datetime,
	tab varchar(14),
	pohl varchar(1),
	plem varchar(10),
	otecCis varchar(8),
	otec varchar(14),
	otecLUC varchar(5),
	otecPUC varchar(5),
	matkaCis varchar(8),
	matka varchar(14),
	matkaLUC varchar(5),
	matkaPUC varchar(5),
	dovod varchar(1),
	datVyr datetime
)
go

create clustered index idx_CEHZ
	on GP_Kozicky (CEHZ)
go

create index idx_cislo
	on GP_Kozicky (jedCis)
go

create index idx_chov
	on GP_Kozicky (chov)
go

create table GM_APOTOMOK
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	REGION varchar(2),
	ROH varchar(4),
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTROH varchar(4),
	OTDENPRIR float,
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTBMUZMA varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAROH varchar(4),
	MAPL varchar(4),
	MADENPRIR float,
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MABMUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMROH varchar(4),
	OMTRIED varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMROH varchar(4),
	MMTRIED varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOROH varchar(4),
	OOTRIED varchar(2),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	STMENMO varchar(1),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOROH varchar(4),
	MOTRIED varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	DATNAR date,
	HMOTN float,
	POHL varchar(1),
	SURVRH varchar(1),
	PREDVYB varchar(1),
	DATH30 date,
	HMOT30 float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	MIESTONT varchar(12),
	DATNT date,
	NTKRAJ varchar(1),
	KATCIS float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BINTRASTU varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRZOVN varchar(2),
	TRIED varchar(2),
	PZIVHMOTNT float,
	VYBER varchar(2),
	CENABON float,
	DATPRED date,
	STMENPRED varchar(1),
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	GENPRES bit not null
)
go

create table SP_Rocenka_BahMlRoc
(
	id int,
	idchov int,
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	StupenKU varchar(256),
	NazovStada varchar(256),
	Bah_LUC varchar(10),
	Bah_PUC varchar(10),
	Bah_CEHZ varchar(20),
	PlemOviec varchar(256),
	Mlieko_lit decimal(5,1),
	Tuk_perc decimal(5,2),
	Bielk_perc decimal(5,2),
	Lakt_perc decimal(5,2),
	PorLak int,
	Rok varchar(4)
)
go

create table NM_Register
(
	KRAJ varchar(2),
	OKRES varchar(2),
	PODNIK varchar(3),
	CHOV varchar(3),
	ZVAZ varchar(1),
	SEKCIA varchar(2),
	PORCIS float,
	NAZZVAZ varchar(20)
)
go

create table CR_KUHD_MesUzavCH_1x
(
	chovatel varchar(9),
	mesiac int,
	rok int,
	dekada int,
	RKO1ML decimal(7,2),
	RKO1KS int,
	RKO12ML decimal(7,2),
	RKO1KSL1 int,
	RKO1MLL1 decimal(7,2),
	RKO12KSL1 int,
	RKO12MLL1 decimal(7,2),
	MKO1KS int,
	MKO1ML decimal(7,2),
	MKO12KS int,
	MKO12ML decimal(7,2),
	POCKRAVZAP int,
	POCKRAVKONT int,
	POCKRAVKONTL1 int,
	POCKRAVZAPL1 int,
	MLIEKOCELKOM decimal(10,2),
	MLIEKOCELKOML1 decimal(10,2),
	MLIEKOPRIEMERZ decimal(7,2),
	MLIEKOPRIEMERK decimal(7,2),
	TUKPER decimal(7,2),
	TUKPERL1 decimal(7,2),
	BIELKPER decimal(7,2),
	BIELKPERL1 decimal(7,2),
	SB decimal(7,2),
	SBL1 decimal(7,2),
	POMERTB11V decimal(7,2),
	POMERTB15V decimal(7,2),
	POMERTBOKV decimal(7,2),
	POMERTB11VL1 decimal(7,2),
	POMERTB15VL1 decimal(7,2),
	POMERTBOKVL1 decimal(7,2),
	POCKRAV100 int,
	MLIEKO100 decimal(7,2),
	TUK100 decimal(7,2),
	TUK100PER decimal(7,2),
	BIELK100 decimal(7,2),
	BIELK100PER decimal(7,2),
	TB100 decimal(7,2),
	TB100PER decimal(7,2),
	POCKRAV200 int,
	MLIEKO200 decimal(7,2),
	TUK200 decimal(7,2),
	TUK200PER decimal(7,2),
	BIELK200 decimal(7,2),
	BIELK200PER decimal(7,2),
	TB200 decimal(7,2),
	TB200PER decimal(7,2),
	POCKRAV300 int,
	MLIEKO300 decimal(7,2),
	TUK300 decimal(7,2),
	TUK300PER decimal(7,2),
	BIELK300 decimal(7,2),
	BIELK300PER decimal(7,2),
	TB300 decimal(7,2),
	TB300PER decimal(7,2),
	POCKRAV100L1 int,
	MLIEKO100L1 decimal(7,2),
	TUK100L1 decimal(7,2),
	TUK100PERL1 decimal(7,2),
	BIELK100L1 decimal(7,2),
	BIELK100PERL1 decimal(7,2),
	TB100L1 decimal(7,2),
	TB100L1PER decimal(7,2),
	POCKRAV200L1 int,
	MLIEKO200L1 decimal(7,2),
	TUK200L1 decimal(7,2),
	TUK200PERL1 decimal(7,2),
	BIELK200L1 decimal(7,2),
	BIELK200PERL1 decimal(7,2),
	TB200L1 decimal(7,2),
	TB200PERL1 decimal(7,2),
	POCKARV300L1 int,
	MLIEKO300L1 decimal(7,2),
	TUK300L1 decimal(7,2),
	TUK300PERL1 decimal(7,2),
	BIELK300L1 decimal(7,2),
	BIELK300PERL1 decimal(7,2),
	TB300L1 decimal(7,2),
	TB300PERL1 decimal(7,2),
	POCINS1 int,
	POCINS2 int,
	POCINS3 int,
	POCINS4VIAC int,
	POCTELNYCH int,
	POCINTR int,
	POCSERV int,
	POCMEDZ int,
	MKO1KSL1 int,
	MKO1MLL1 decimal(7,2),
	MKO12KSL1 int,
	MKO12MLL1 decimal(7,2),
	MLIEKOPRIEMERZL1 decimal(7,2),
	MLIEKOPRIEMERKL1 decimal(7,2),
	generovane datetime,
	RKO12KS int,
	datkon date,
	SKUP varchar(2),
	ID int identity
		constraint PK_KUHD_MesUzavCH_1x
			primary key,
	datum_kontroly date
)
go

create table SM_BARAN
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BARCIS varchar(8) not null
		constraint PK_SM_BARAN
			primary key,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORCIS varchar(4),
	MIMOKU bit,
	PREG varchar(5),
	PLEMS varchar(10),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	DATNAR date,
	HMOTN float,
	DATOD date,
	HMOTOD float,
	STMENNAR varchar(1),
	KROKRNAR varchar(3),
	PODNIKNAR varchar(3),
	STADONAR varchar(3),
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	PATERN varchar(7),
	SVJH varchar(2),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	DATTRHU date,
	KPPNT varchar(2),
	KRAJNT varchar(1),
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BDEFEKT float,
	BVLNA varchar(2),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	ZIVHMOTNT float,
	DATVAZNT date,
	HM1ROK float,
	HVHM1ROK varchar(3),
	CENABON float,
	KATALC float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTDENPR float,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTBMLUZMA varchar(2),
	OTEXTER varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MADENPR float,
	MASURV varchar(1),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MABMLUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMVYSTR varchar(2),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOVYSTR varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	RokNar as case when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])<7 then datepart(year,[DATNAR]) when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])>6 then datepart(year,[DATNAR])+1 when isnumeric(replace([LUC],' ',''))=0 then 0 when CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0)>datepart(year,getdate()) then CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0)-10 else CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0) end,
	CisLin as case when [luc] IS NULL then '????' else substring([LUC],1,4) end
)
go

create index IX_SM_BARAN_chov
	on SM_BARAN (KROKR, PODNIK, STADO)
go

create index IX_SM_BARAN_vyr
	on SM_BARAN (DOVOD)
go

create index IX_SM_BARAN_CEHZ
	on SM_BARAN (ZVSTAT, JCCEHZ)
go

create index IX_SM_Baran_LUC
	on SM_BARAN (LUC)
go

create table CR_TMHD_pripust_mes
(
	cistelata varchar(14),
	chov varchar(9),
	datnar date,
	datvaz1 date,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	hmot2 int,
	rp2 varchar(1),
	dp int,
	DatPrip1 date,
	DatPrip2 date,
	datPr date,
	datPlanPripust varchar(10),
	ZnakPripus varchar(15),
	MesiacPripusF int,
	rok int,
	mesiac int,
	generovane date,
	mesiacPripus int,
	rokPripus int
)
go

create table EC_KodyZmeny
(
	Kod smallint not null,
	TypZmeny varchar(50)
)
go

create table SC_Pocetnost
(
	id tinyint not null
		primary key,
	nazov varchar(20) not null
)
go

create table CM_Insvyk
(
	IKOKR varchar(3),
	IPOD varchar(3),
	ICHMA varchar(3),
	IPLCA varchar(14) not null,
	IDAIN date not null,
	IPOIN float,
	IPOREIN float not null,
	IKRJA varchar(1),
	IVYSE varchar(1),
	IBLIN varchar(3),
	IBREG int,
	ITECH varchar(6),
	ITCHL varchar(2),
	ICEUK float,
	ICEDA float,
	ICVYS float,
	IDAOT date,
	ISPOT varchar(1),
	ICIDO varchar(2),
	ISTR varchar(3)
)
go

create index IX_CM_Insvyk_IPLCA
	on CM_Insvyk (IPLCA)
go

create index IX_CM_Insvyk_IDAIN
	on CM_Insvyk (IDAIN)
go

create index IX_CM_Insvyk_IVYSE
	on CM_Insvyk (IVYSE)
go

create index IX_CM_Insvyk_IPLCA_IDAIN_IVYSE
	on CM_Insvyk (IPLCA, IDAIN, IVYSE)
go

create table HIST_NC_VyrObl
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NM_Ucet
(
	ICO varchar(10),
	PREDCISLIE varchar(6),
	CISUCTU varchar(10),
	KBANKY varchar(4)
)
go

create table CR_TMHD_pripust_mes_Opr
(
	cistelata varchar(14),
	chov varchar(9),
	datnar date,
	datvaz1 date,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	hmot2 int,
	rp2 varchar(1),
	dp int,
	DatPrip1 date,
	DatPrip2 date,
	datPr date,
	datPlanPripust varchar(10),
	ZnakPripus varchar(15),
	MesiacPripusF int,
	rok int,
	mesiac int,
	generovane date,
	mesiacPripus int,
	rokPripus int
)
go

create table CC_Plemena
(
	kodpl varchar(2) not null,
	nazpl varchar(45),
	hlavne varchar(2),
	zoslachtujuce varchar(2),
	kodRPMD varchar(1),
	kodmedzinar varchar(2)
)
go

create table CP_Byci_Insem
(
	Lin varchar(3),
	Reg int,
	Aktivny varchar(1),
	Link varchar(256)
)
go

create table temp_aktualne_rozbory_1
(
	ciskravy varchar(14),
	[06.04.2018] float,
	[2000-01-02] float,
	[2000-01-03] float,
	[2000-01-04] float,
	[2000-01-05] float,
	[2000-01-06] float,
	[2000-01-07] float,
	[2000-01-08] float,
	[2000-01-09] float,
	[2000-01-10] float,
	[2000-01-11] float,
	[2000-01-12] float
)
go

create table SM_NakTrhy2
(
	DATNT date not null,
	NTKRAJ varchar(1),
	MIESTONT varchar(30),
	UZAVRETY varchar(1)
)
go

create table PP_TopKn
(
	DATZAP date not null,
	DRUH varchar(2) not null,
	POR float not null,
	NAZLIN varchar(10),
	LINIA varchar(4),
	REGISTER varchar(5),
	KANCEK varchar(27),
	DATNAR date,
	DATVU date,
	DATZAR date,
	PREV varchar(1),
	DOVOZ varchar(1),
	PLEMENO varchar(2),
	MAJ_CHOV varchar(50),
	KOD_CHOV varchar(9),
	PRVU float,
	SLVU float,
	PRSVJH float,
	CMC float,
	SLSVJH float,
	PZI1 float,
	PZI2 float,
	CPH float,
	DATTRH date,
	PERC varchar(2),
	constraint PK_PP_TopKn
		primary key (DATZAP, DRUH, POR)
)
go

create table CR_TMHD_sumar_mesiac
(
	ID int,
	vek varchar(35),
	pocet int,
	hmotnost int,
	dennpriras int,
	zivpriras int,
	chovatel varchar(9),
	pocetA int,
	percentA int,
	hmotnostA int,
	pocetB int,
	percentB int,
	hmotnostB int,
	pocetC int,
	percentC int,
	hmotnostC int,
	rok int,
	mesiac int,
	generovane date
)
go

create table sysdiagrams
(
	name sysname not null,
	principal_id int not null,
	diagram_id int identity
		primary key,
	version int,
	definition varbinary(max),
	constraint UK_principal_name
		unique (principal_id, name)
)
go

create table CP_Meso_telata_1B
(
	chov varchar(9),
	OUC varchar(14),
	Omeno varchar(50),
	otec varchar(10),
	pocetB_n int,
	hmotB_n float,
	pocetJ_n int,
	hmotJ_n float,
	pocetB_120 int,
	hmotB_120 float,
	prirB_120 float,
	pocetJ_120 int,
	hmotJ_120 float,
	prirJ_120 float,
	pocB_210 int,
	hmotB_210 float,
	prirB_210 float,
	pocJ_210 int,
	hmotJ_210 float,
	prirJ_210 float,
	pocB_365 int,
	hmotB_365 float,
	prirB_365 float,
	pocJ_365 int,
	hmotJ_365 float,
	prirJ_365 float,
	pocB_700 int,
	hmotB_700 float,
	prirB_700 float,
	pocJ_700 int,
	hmotJ_700 float,
	prirJ_700 float
)
go

create table temp_test
(
	idx int not null,
	IDKRAVY int identity,
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9) not null,
	SKUPINA varchar(2),
	PK varchar(5),
	OTECLIN varchar(3),
	OTECREG int,
	OUSCIS varchar(15),
	MA varchar(15),
	IDOT int,
	IDMA int,
	DATNAR date,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	FARBA varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit,
	POHLAVIE varchar(2),
	ZDRAVTR varchar(1),
	PLEMENNA varchar(1),
	PORPREBLAK int,
	DATPOSKONT date,
	DOVVYR varchar(2),
	DATVYR date,
	DATZAR date,
	TRUZIT varchar(3),
	PORLAKMAX int,
	MLIEKOMAX float,
	TUKMAX float,
	BIELMAX float,
	LAKTOZAMAX float,
	POCVSETLAK float,
	POCNORLAK float,
	MLIEKOPR float,
	TUKPRKG float,
	TUKPRPER float,
	BIELPRKG float,
	BIELPRPER float,
	LAKTPRKG float,
	LAKTPRPER float,
	TYPPLEM varchar(3),
	FARMACEHZ varchar(6),
	PRIZNAKKU varchar(1),
	KRJA varchar(1) not null,
	PINT float,
	PSER float,
	PMED float,
	BB_ANIMALCODE varchar(15),
	BB_NAME varchar(40),
	BB_IMPORTED varchar(1),
	BB_BREEDING_NAME varchar(100),
	BB_OWNER varchar(50),
	BB_KEEPER varchar(50),
	BB_USE varchar(30),
	BB_COUNTRYCODE varchar(3),
	BB_CATEGORY varchar(20),
	BB_HERDBOOK_NUMBER varchar(15),
	DATZAPPREP date,
	DATVYBPREP date,
	RESPONDER varchar(4)
)
go

create table NC_KRAJ
(
	KRAJ varchar(1) not null
		constraint PK_NC_KRAJ
			primary key,
	NAZOV varchar(20)
)
go

create table CM_Telata
(
	IDTELATA int identity
		constraint PK_CM_Telata
			primary key,
	CISTELATA varchar(14),
	CHOVNAR varchar(9),
	OTECLIN varchar(3),
	OTECREG int,
	OUC varchar(15),
	MATKA varchar(15),
	HMOTOT float,
	DATNAR date,
	HMOTNAR float,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYPPLEM varchar(3),
	FARBA varchar(2),
	PORLAK int,
	POHLAVIE varchar(2),
	ZNAKET bit,
	PREUKAZ varchar(1),
	DOBANOS float,
	CHOVATEL varchar(9),
	PRIZNAKKU varchar(1),
	PRIEBPOR varchar(1),
	URCTEL varchar(1),
	PRICOBTPOR varchar(1),
	PRICUHYN varchar(1),
	DOVVYR varchar(2),
	DATVYR date,
	IDMA int,
	IDOT int,
	DONORKA varchar(14),
	IDDONOR int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint,
	RECIPIENTKA varchar(14),
	IDRECIPIENT int
)
go

create index Ind_PriznakKU
	on CM_Telata (CISTELATA, PRIZNAKKU)
go

create index Ind_TelataPodlaMatka
	on CM_Telata (MATKA, DATNAR, CISTELATA)
go

create index Ind_TelataPodlaChovy
	on CM_Telata (CISTELATA, CHOVATEL)
go

create index Ind_TelataPrepocKG
	on CM_Telata (CISTELATA, DATNAR, HMOTNAR)
go

create index Cistelata
	on CM_Telata (CISTELATA)
go

create index CP_Telata_vek_otec
	on CM_Telata (OTECLIN, OTECREG, DATNAR)
go

create index CP_Pohlavie_otec
	on CM_Telata (OTECLIN, OTECREG)
go

create index cp_otecOU
	on CM_Telata (OUC)
go

create index CP_PlemTyp
	on CM_Telata (TYPPLEM)
go

create index CP_MatkaTel
	on CM_Telata (MATKA)
go

create index CP_Chov
	on CM_Telata (CHOVATEL)
go

create index CP_Dovvyr
	on CM_Telata (DOVVYR)
go

create index CP_PoLak
	on CM_Telata (PORLAK)
go

create index chovnar_porlak_priznakku_pohlavie
	on CM_Telata (CHOVNAR, PORLAK, POHLAVIE, PRIZNAKKU, CISTELATA, DATNAR)
go

create index Ind_DovVyr
	on CM_Telata (CISTELATA, DOVVYR)
go

create index idx_chovatel
	on CM_Telata (CHOVATEL)
go

create index IX_CM_Telata_POHLAVIE
	on CM_Telata (POHLAVIE)
go

create index IDX_Telata_MATKA_DATNAR_POHLAVIE
	on CM_Telata (MATKA, DATNAR, POHLAVIE)
go

create index CP_ALL
	on CM_Telata (DOVVYR, CISTELATA, OTECLIN, OTECREG, OUC, MATKA, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, TYPPLEM, POHLAVIE, CHOVATEL, PRIZNAKKU)
go

create table HIST_NM_CPREHL1
(
	FIRMA varchar(56),
	KONATEL varchar(44),
	VELPOD varchar(1),
	REGION varchar(2),
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	FORMA varchar(2),
	ZMLUVA varchar(54),
	POZNAMKA varchar(26),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	TAZKOST bit,
	DOTACIA bit
)
go

create table CM_ZSI
(
	KROK varchar(3),
	PODN varchar(3),
	CHOM varchar(3),
	PLCA varchar(14) not null,
	CPOP varchar(4),
	ZNET varchar(1),
	KRJA varchar(1),
	TECH varchar(6),
	ZNMB varchar(1),
	PINT float,
	PSER float,
	PMED float,
	BLIN varchar(3),
	BREG varchar(3),
	DAPI date,
	PORI float,
	ZNBR varchar(1),
	DAOT date,
	DOVY varchar(2),
	DAVY date
)
go

create table CP_ZCHMD_Ciselnik
(
	CHOVATEL varchar(9),
	NAZPOD varchar(50),
	MIESTOPOD varchar(40),
	NAZMAS varchar(30)
)
go

create table NC_OKRES
(
	KRAJ varchar(1) not null
		constraint FK_NC_OKRES_NC_KRAJ
			references NC_KRAJ,
	OKRES varchar(2) not null,
	NAZOV varchar(20),
	REGION varchar(2),
	constraint PK_NC_OKRES
		primary key (KRAJ, OKRES)
)
go

create table CP_PORODY_PH
(
	CHOVATEL varchar(9) not null,
	CISKRAVY varchar(14),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	Kr2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	Kr4 varchar(6),
	PL5 varchar(2),
	DATOTEL date,
	PORLAK varchar(2),
	PRIEBPOROD varchar(1),
	PRPORTEXT varchar(45),
	CISTELATA varchar(14),
	OTEC_TEL_LIN varchar(3),
	OTEC_TEL_REG varchar(3),
	POHLAVIE varchar(2),
	POHLTEXT varchar(45)
)
go

create table pom_ketolatky
(
	["Index"] varchar(50),
	["BatchID"] varchar(50),
	["Barcode"] varchar(50),
	["Sequence"] varchar(50),
	["Date"] varchar(50),
	["Time"] varchar(50),
	["Fat"] varchar(50),
	["Protein"] varchar(50),
	["Lactose"] varchar(50),
	["MUN"] varchar(50),
	["SCC"] varchar(50),
	["OA %"] varchar(50),
	["F P"] varchar(50),
	["F S"] varchar(50),
	["F SNF"] varchar(50),
	["F L"] varchar(50),
	["Ac1 mg l"] varchar(50),
	["Ac2 mg l"] varchar(50),
	["Ac3 mg l"] varchar(50),
	["BHB A mg l"] varchar(50),
	["BHB B mg l"] varchar(50),
	["BHB GC mg l"] varchar(50),
	["Remark"] varchar(50)
)
go

create table CP_Meso_1AReportTelata
(
	chovatel varchar(10),
	NazovPlemeno varchar(50),
	PocetNaroddenyByci int,
	VahaNarodenyByci float,
	PocetNarJalovic int,
	VahaNarJalovic float,
	PocetByci120 int,
	VahaByci120 float,
	PepocetByci120 float,
	PocetJalovic120 int,
	VahaJalovic120 float,
	PrepocJalovic120 float,
	PocByci210 int,
	VahaByci210 float,
	PrepocByci210 float,
	PocJalovic210 int,
	VahaJalovic210 float,
	PrepocJalovic210 float,
	PocByci365 int,
	VahaByci365 float,
	PrepocByci365 float,
	PocJalovic365 int,
	VahaJalovic365 float,
	PrepocJalovic365 float,
	PocByci500 int,
	VahaByci500 float,
	PrepocByci500 float,
	PocJalovic500 int,
	VahaJalovic500 float,
	PrepocJalovic500 float
)
go

create table [CM_Laktacie_1***]
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9),
	PORLAK int not null,
	DATOTEL date,
	CHOVOTEL varchar(9),
	CHOVLAKT varchar(9),
	PRIEBPOROD varchar(1),
	POHLAVIE varchar(2),
	ZMENA varchar(2),
	DATUKONL date,
	DATUKNORL date,
	MEDZIOBD float,
	HMOTKR float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKCEL float,
	MLIEKNOR float,
	TUKCEL float,
	TUKNOR float,
	BIELKCEL float,
	BIELKNOR float,
	LAKTOZAC float,
	LAKTOZAN float,
	INDPER float,
	INDLAK float,
	CHARUST varchar(1),
	SPOSOBKU varchar(1),
	MAXLAK varchar(1),
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	LAKT100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float,
	LAKT200 float,
	DATZAPZVK date,
	DATVYBZVK date,
	KOD_DOJ int,
	KOD_MEDZ int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint
)
go

create table G_Temp_Kozy_Vyber
(
	Kozcis varchar(8),
	cehz varchar(12)
)
go

create table CM_Kontroly
(
	CISKRAVY varchar(14) not null,
	DATKONTR date not null,
	ZNKONTR varchar(1),
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	CISCHOVU varchar(9),
	SKUPINA varchar(2),
	PREPOCET bit,
	MLIEKO float,
	MLIEKPR float,
	PRT float,
	PERCTUKU float,
	PERCBIELK float,
	PERCLAKTOZ float,
	BUNECELEM float,
	LAKTDNI float,
	PORPREBLAK int,
	PLATNOST bit not null,
	KodIntSB int,
	KodIntLD int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint,
	FREKVENCIA varchar(1),
	constraint PK_CM_Kontroly
		primary key (CISKRAVY, DATKONTR)
)
go

exec sp_addextendedproperty 'MS_Description', 'hlásený znak pri kontrole', 'SCHEMA', 'dbo', 'TABLE', 'CM_Kontroly', 'COLUMN', 'ZNKONTR'
go

exec sp_addextendedproperty 'MS_Description', 'počet prepočítaných období kon', 'SCHEMA', 'dbo', 'TABLE', 'CM_Kontroly', 'COLUMN', 'PRT'
go

create index Ind_kontroly
	on CM_Kontroly (CISKRAVY, DATKONTR)
go

create index CP_KontrolySomBunky
	on CM_Kontroly (CISCHOVU, DATKONTR, KodIntSB, CISKRAVY)
go

create index CP_SomBunky2
	on CM_Kontroly (DATKONTR, KodIntSB, CISKRAVY)
go

create index CP_LaktDni
	on CM_Kontroly (DATKONTR, KodIntLD, CISKRAVY)
go

create index CP_LaktdniSomBunky
	on CM_Kontroly (DATKONTR, KodIntLD, KodIntSB, CISKRAVY)
go

create index ciskravy
	on CM_Kontroly (CISKRAVY)
go

create index IX_CM_Kontroly_DATKONTR
	on CM_Kontroly (DATKONTR)
go

create table CP_HOL_KRAVTDM
(
	KRAVA varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SPI int,
	M305 decimal(6,1),
	RPHM int,
	M100 decimal(7,1),
	MREL decimal(5,4),
	T305 decimal(7,2),
	RPHT int,
	T100 decimal(7,2),
	TP decimal(7,2),
	TPERC decimal(7,2),
	TREL decimal(5,4),
	B305 decimal(7,2),
	RPHB int,
	B100 decimal(7,2),
	BP decimal(5,2),
	BPERC decimal(5,2),
	BREL decimal(5,4),
	REL decimal(5,4)
)
go

create table CP_POVODY_SIM_PH_NEMECKO_CELE
(
	ANIMAL varchar(14)
		constraint IX_CP_POVODY_SIM_PH_NEMECKOCELE_Animal
			unique,
	DATNAR date,
	PLEMENO int,
	POHLAVIE int,
	PODIELCK int,
	OTEC varchar(14),
	MATKA varchar(14),
	MENO varchar(12)
)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_CELE_Otec
	on CP_POVODY_SIM_PH_NEMECKO_CELE (OTEC)
go

create index IX_CP_POVODY_SIM_PH_NEMECKO_CELE_Matka
	on CP_POVODY_SIM_PH_NEMECKO_CELE (MATKA)
go

create table PP_KatKn
(
	DATTRHU date not null,
	MIESTO varchar(23),
	REG varchar(1),
	NAPPL varchar(8),
	NAMESPL varchar(21),
	POD varchar(1),
	OK varchar(2),
	ZA varchar(3),
	CH varchar(3),
	NAMEPOD varchar(15),
	NAMEOK varchar(15),
	NAMEZ varchar(50),
	NAMECH varchar(30),
	NUMBERKAT float not null,
	NUMBERUS1 varchar(5),
	NUMBERUS2 varchar(2),
	KZNU varchar(1),
	NUMLIN varchar(4),
	NREG varchar(5),
	ALFALIN varchar(10),
	OPRIR float,
	OVSZKG float,
	OMLD float,
	OPROCMS float,
	OPROCKYTA float,
	OVSPEKU float,
	VJHIO float,
	VJHBO varchar(2),
	USPEK float,
	BODYPUV varchar(3),
	DATNAR date,
	DEDALIN varchar(4),
	DEDAREG varchar(5),
	DEDAALFALI varchar(10),
	MPRIR float,
	MVSZKG float,
	MMLD float,
	MPROCMS float,
	MPROCKYTA float,
	MVSPEKU float,
	VJHIM float,
	VJHBM varchar(2),
	UPRIR varchar(3),
	PRV varchar(1),
	DR varchar(1),
	MOTHER varchar(5),
	MLINIE varchar(2),
	MLS varchar(2),
	KZNM varchar(1),
	IPV float,
	TRIPV varchar(2),
	PRIPV varchar(1),
	IVUI float,
	MESSTARI float,
	VRHY float,
	VRHYCEL varchar(2),
	VSECHS float,
	ZIVES float,
	DOCHS float,
	VAHAS float,
	PINDEXC float,
	PTRIEDC varchar(2),
	IVUB varchar(2),
	JVRHY float,
	NUMV varchar(2),
	JVSECH float,
	JZIVE float,
	JDOCH float,
	JVAHA float,
	PINDEXV float,
	PTRIEDV varchar(2),
	PHA float,
	PIGSL1 float,
	PIGSL2 float,
	PIGAL float,
	HMC float,
	ELVOD float,
	SPIO float,
	TOPO varchar(5),
	SPIM float,
	TOPM varchar(5),
	SPIJ float,
	TOPJ varchar(5),
	ADGFT float,
	TOPADGFT varchar(5),
	BFFT float,
	TOPBFFT varchar(5),
	NBA1 float,
	TOPNBA1 varchar(5),
	NBA2 float,
	TOPNBA2 varchar(5),
	ADGST float,
	TOPADGST varchar(5),
	BFST float,
	TOPBFST varchar(5),
	VC float,
	TOPVC varchar(5),
	DNA varchar(2),
	PDNA varchar(1)
)
go

create table PC_VyrVrh
(
	Kod_VyV varchar(1) not null
		constraint PK_PC_VyrVrh
			primary key,
	PERC varchar(7),
	NAZOV varchar(25)
)
go

create table CP_TLACRP
(
	STRANA float,
	RIADOK float,
	CISKRAVY varchar(14),
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOVMAS varchar(3),
	SKUPINA varchar(2),
	DATPOSK date,
	MESSP varchar(2),
	DEKSP varchar(1),
	MESKONN varchar(2),
	DATPREPOC1 date,
	DATPREPOC2 date,
	ROKKON varchar(2),
	DENDCH varchar(1),
	INTERCH varchar(1),
	DATINTD date,
	DATINTH date,
	ZMENA varchar(2),
	ZNAK varchar(1),
	DOJIVOST float,
	LDNI float,
	ZNBREZ varchar(1),
	FARBA varchar(2),
	DATINSP date,
	DATOTOC date
)
go

create table CM_ArchKon_zal
(
	CISKRAVY varchar(14) not null,
	DATKONTR date not null,
	ZNKONTR varchar(1),
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	CISCHOVU varchar(9),
	SKUPINA varchar(2),
	PREPOCET bit,
	MLIEKO float,
	MLIEKPR float,
	PRT float,
	PERCTUKU float,
	PERCBIELK float,
	PERCLAKTOZ float,
	BUNECELEM float,
	LAKTDNI float,
	PORPREBLAK varchar(2),
	KodIntSB int,
	KodIntLD int,
	JeKontroly bit,
	SPRACINSERT bigint,
	SPRACUPDATE bigint,
	constraint PK_CM_ArchKon_zal
		primary key (CISKRAVY, DATKONTR)
)
go

create table CP_SIM_KRAVTDM
(
	KRAVA varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SPI int,
	M305 decimal(6,1),
	RPHM int,
	M100 decimal(7,1),
	MREL decimal(5,4),
	T305 decimal(7,2),
	RPHT int,
	T100 decimal(7,2),
	TP decimal(7,2),
	TPERC decimal(7,2),
	TREL decimal(5,4),
	B305 decimal(7,2),
	RPHB int,
	B100 decimal(7,2),
	BP decimal(5,2),
	BPERC decimal(5,2),
	BREL decimal(5,4),
	REL decimal(5,4)
)
go

create table Roc_MLHD_Tab_19A
(
	Por varchar(3),
	KRAJ varchar(1),
	OKRES varchar(2),
	PODNIK varchar(3),
	CHOV varchar(3),
	stpec_1 varchar(2),
	stpec_2 varchar(2),
	stpec_3 varchar(2),
	stpec_4 varchar(2),
	stpec_5 varchar(5),
	stpec_6 varchar(50),
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok varchar(4),
	Plem_typ varchar(6)
)
go

create table NM_HDDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PRIZNAK varchar(2),
	KONZUL varchar(2),
	IDKON varchar(5),
	OBVZOO varchar(2),
	IDZOO varchar(5),
	CHARCHOV varchar(1),
	SPZAIS varchar(1),
	VYROBL varchar(1),
	CHARUS varchar(1),
	KAPMAST varchar(1),
	SPVYKON varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	PLIS varchar(1),
	STAVKRAV varchar(5),
	STAVJAL varchar(5),
	TECHUSMD varchar(2),
	MLIEKOMER varchar(1),
	TYPZV as '1',
	PRIPLATOK varchar(5),
	UPRAVA varchar(5),
	MOCOVINA varchar(1),
	KOMUZOS varchar(1),
	constraint PK_NM_HDDETAIL
		primary key (KRAJ, OKRES, PODNIK, CHOV)
)
go

create index IX_NM_HDDETAIL
	on NM_HDDETAIL (OBVZOO)
go

create index ix_chov_idzoo_idkon
	on NM_HDDETAIL (IDZOO, KRAJ, OKRES, PODNIK, CHOV, IDKON)
go

create table HIST_NM_HDDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PRIZNAK varchar(2),
	KONZUL varchar(2),
	IDKON varchar(5),
	OBVZOO varchar(2),
	IDZOO varchar(5),
	CHARCHOV varchar(1),
	SPZAIS varchar(1),
	VYROBL varchar(1),
	CHARUS varchar(1),
	KAPMAST varchar(1),
	SPVYKON varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	PLIS varchar(1),
	STAVKRAV varchar(5),
	STAVJAL varchar(5),
	TECHUSMD varchar(2),
	MLIEKOMER varchar(1),
	TYPZV as '1',
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	PRIPLATOK varchar(5),
	UPRAVA varchar(5),
	MOCOVINA varchar(1),
	KOMUZOS varchar(1)
)
go

create table NM_INFOSPRAVY
(
	ID int identity,
	NAZOV varchar(100),
	POPIS varchar(300),
	DATVYT datetime not null,
	DATZMEN datetime,
	AUTOR varchar(20) not null,
	PLATNE bit not null
)
go

create table CP_ZCHMD_SJAL
(
	CISJAL varchar(14),
	CHOVNAR varchar(9),
	CHOVATEL varchar(9),
	DATNAR date,
	PORLAK varchar(2),
	POHLAVIE varchar(2),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OPL1 varchar(2),
	OKR1 varchar(6),
	OPL2 varchar(2),
	OKR2 varchar(6),
	OPL3 varchar(2),
	OKR3 varchar(6),
	OPL4 varchar(2),
	OKR4 varchar(6),
	OPL5 varchar(2),
	MATKA varchar(14),
	MPL1 varchar(2),
	MKR1 varchar(6),
	MPL2 varchar(2),
	MKR2 varchar(6),
	MPL3 varchar(2),
	MKR3 varchar(6),
	MPL4 varchar(2),
	MKR4 varchar(6),
	MPL5 varchar(2),
	FARBA varchar(2),
	ZNAKET bit,
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table CM_Rozbory
(
	MESSP nvarchar(2),
	DEKSP nvarchar(2),
	CISKRAVY nvarchar(14) not null,
	DATKONTR datetime not null,
	ZNKONTR nvarchar(2),
	DENDOBA nvarchar(2),
	INTERVAL nvarchar(2),
	CHOV nvarchar(9) not null,
	SKUPINA nvarchar(2),
	MLIEKO float,
	MLIEKOPR float,
	PRIZ nvarchar(2),
	PERCTUKU float,
	PERCBIELK float,
	PERCLAKTOZ float,
	BUNECELEM float,
	LaktDni float,
	PorPreblak nchar(2),
	LaktDniRep float,
	PorPreblakRep nchar(2),
	SEKCIA nchar(4),
	oa decimal(13,3),
	fp decimal(13,3),
	fs decimal(13,3),
	fsnf decimal(13,3),
	fl decimal(13,3),
	ac1 decimal(13,3),
	ac2 decimal(13,3),
	ac3 decimal(13,3),
	bhba decimal(13,3),
	bhbb decimal(13,3),
	bhbgc decimal(13,3),
	mocov float,
	oaPerc decimal(6,3),
	fpPerc decimal(6,3),
	fsPerc decimal(6,3),
	fsnfPerc decimal(6,3),
	flPerc decimal(6,3),
	ac1Perc decimal(6,3),
	ac2Perc decimal(6,3),
	ac3Perc decimal(6,3),
	bhbaPerc decimal(6,3),
	bhbbPerc decimal(6,3),
	bhbgcPerc decimal(6,3)
)
go

create index IX_rozbory_CISKRAVY_DATKONTR
	on CM_Rozbory (CISKRAVY, DATKONTR)
go

create index IX_rozbory_CHOV_CISKRAVY_DATKONTR
	on CM_Rozbory (CHOV, CISKRAVY, DATKONTR)
go

create table SP_TlacPOP
(
	krokr varchar(3),
	podnik varchar(3),
	stado varchar(3),
	LUC varchar(5),
	PUC varchar(6),
	JedCis varchar(8),
	Datum date,
	Pohl varchar(1),
	DatFakt date
)
go

create table SMLZAMoooooooo
(
	PORADIE float,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	SMNL float,
	POCETMNL float,
	POCPRIP float,
	POCOBAH float,
	PERCPLODOB float,
	NAZOV varchar(50),
	UKAZML float
)
go

create table temp_telata_403542901
(
	CISTELATA nvarchar(255),
	CHOVVAZ nvarchar(255)
)
go

create table CE_DOKVAZML
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_DOKVAZML_id
	on CE_DOKVAZML (ID)
go

create table CP_Dlhovek_Telata_MP
(
	CISTELATA varchar(14),
	MAJITEL varchar(9),
	OUSCIS varchar(15),
	MATKA varchar(14),
	DATNAR date,
	PORLAK int,
	POHLAVIE varchar(2),
	PRIEBPOR varchar(1),
	HMOTNAR float,
	HMOTODSTAV float,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	DOVVYR varchar(2)
)
go

create table SM_MLPLEMRR
(
	ROK varchar(4),
	PLEMUP varchar(8),
	POCETVS float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	SMNL float,
	STNL float,
	SPTNL float,
	SBNL float,
	SPBNL float,
	SLNL float,
	SPLNL float,
	STKU varchar(1),
	VYKKU varchar(1),
	DruhHZ as 3
)
go

create table CM_Sexseme
(
	IKOKR varchar(3),
	IPOD varchar(3),
	ICHMA varchar(3),
	IPLCA varchar(14),
	IDAIN date,
	IPOIN float,
	IBLIN varchar(3),
	IBREG varchar(3),
	IZNAK bit,
	ICIDO varchar(2),
	ISTR varchar(3)
)
go

create table GM_KOZY
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU date,
	CISVZOR varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORAD int,
	DOKOTEN date,
	MLRANO int,
	MLOBED int,
	MLVECER int,
	ROZBTUK float,
	ROZBBIEL float,
	ROZBLAKT float,
	PORLAK varchar(1),
	DOPPORLAK bit not null
)
go

create index GM_KOZY_STAT_CEHZ
	on GM_KOZY (ZVSTAT, JCCEHZ, DODBERU)
go

create table CE_HLASSKUP
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_HLASSKUP_id
	on CE_HLASSKUP (ID)
go

create table SM_PRPLEMRR
(
	ROK varchar(4),
	PLEM varchar(8),
	POCJAH float,
	POC300J float,
	HMOTODJ float,
	DNIODSJ float,
	DENPRIRJ float,
	KDPRIRJ float,
	POCBAR float,
	POC300B float,
	HMOTODB float,
	DNIODSB float,
	DENPRIRB float,
	KDPRIRB float
)
go

create table CM_Embtr
(
	IKOKR varchar(3),
	IPOD varchar(3),
	ICHMA varchar(3),
	IPLCA varchar(14),
	IDAIN date,
	IKRJA varchar(1),
	IMATK varchar(14),
	IBLIN varchar(3),
	IBREG varchar(3),
	IDAOT date,
	ITEPR varchar(1)
)
go

create table GM_KOZYSP
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	CH0M int,
	CH0T int,
	CH0B int,
	CH0L int,
	DOKOTEN date,
	PORLAK varchar(1),
	DODBERU1 date,
	MLRANO1 float,
	MLOBED1 float,
	MLVECER1 float,
	ROZBTUK1 float,
	ROZBBIEL1 float,
	ROZBLAKT1 float,
	DODBERU2 date,
	MLRANO2 float,
	MLOBED2 float,
	MLVECER2 float,
	ROZBTUK2 float,
	ROZBBIEL2 float,
	ROZBLAKT2 float,
	DODBERU3 date,
	MLRANO3 float,
	MLOBED3 float,
	MLVECER3 float,
	ROZBTUK3 float,
	ROZBBIEL3 float,
	ROZBLAKT3 float,
	DODBERU4 date,
	MLRANO4 float,
	MLOBED4 float,
	MLVECER4 float,
	ROZBTUK4 float,
	ROZBBIEL4 float,
	ROZBLAKT4 float,
	DODBERU5 date,
	MLRANO5 float,
	MLOBED5 float,
	MLVECER5 float,
	ROZBTUK5 float,
	ROZBBIEL5 float,
	ROZBLAKT5 float,
	DODBERU6 date,
	MLRANO6 float,
	MLOBED6 float,
	MLVECER6 float,
	ROZBTUK6 float,
	ROZBBIEL6 float,
	ROZBLAKT6 float,
	DODBERU7 date,
	MLRANO7 float,
	MLOBED7 float,
	MLVECER7 float,
	ROZBTUK7 float,
	ROZBBIEL7 float,
	ROZBLAKT7 float,
	DODBERU8 date,
	MLRANO8 float,
	MLOBED8 float,
	MLVECER8 float,
	ROZBTUK8 float,
	ROZBBIEL8 float,
	ROZBLAKT8 float,
	D int,
	ML float,
	TL float,
	BL float,
	LL float,
	PTL float,
	PBL float,
	PLL float,
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	OK bit not null,
	HVPORML varchar(3),
	HVPORTL varchar(3),
	HVPORBL varchar(3),
	HVPORLL varchar(3)
)
go

create table NM_KODETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	STKU varchar(1),
	PLEM varchar(4),
	KODPL varchar(2),
	CISKON varchar(5),
	CISZOO varchar(5),
	VYKKU varchar(1),
	RCHPLEMK bit not null,
	ROKZARPK varchar(4),
	KUMLIEKA bit not null,
	ZRUSENE bit not null,
	DATZRUS date,
	KOMUZOS varchar(1),
	TLACKU varchar(1),
	TLACKMU varchar(1),
	PLIS varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	MLIEKOMER varchar(1),
	UZITZST varchar(1),
	registerChovov varchar(20),
	constraint PK_NM_KoDetail
		primary key (KRAJ, OKRES, PODNIK, CHOV)
)
go

create table pocet
(
	pocet int
)
go

create table CE_OTELENIA
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null,
	CHOVPOV varchar(9)
)
go

create index IX_CE_OTELENIA_id
	on CE_OTELENIA (ID)
go

create table CP_PIN_JAL_MP
(
	CISJAL varchar(14),
	CHOVNAR varchar(9),
	CHOVATEL varchar(9),
	PK varchar(3),
	DATNAR date,
	PORLAK varchar(2),
	POHLAVIE varchar(2),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	DOVVYR varchar(2),
	DATVYR date,
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OPL1 varchar(2),
	OKR1 varchar(6),
	OPL2 varchar(2),
	OKR2 varchar(6),
	OPL3 varchar(2),
	OKR3 varchar(6),
	OPL4 varchar(2),
	OKR4 varchar(6),
	OPL5 varchar(2),
	MATKA varchar(14),
	MPL1 varchar(2),
	MKR1 varchar(6),
	MPL2 varchar(2),
	MKR2 varchar(6),
	MPL3 varchar(2),
	MKR3 varchar(6),
	MPL4 varchar(2),
	MKR4 varchar(6),
	MPL5 varchar(2),
	FARBA varchar(2),
	ZNAKET bit,
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table NM_CPREHL1
(
	FIRMA varchar(56),
	KONATEL varchar(44),
	VELPOD varchar(1),
	TAZKOST bit not null,
	DOTACIA bit not null,
	REGION varchar(2),
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	FORMA varchar(2),
	ZMLUVA varchar(54),
	POZNAMKA varchar(26)
)
go

create table SM_REPRRR
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOBAH float,
	POCJAH float,
	POCBAR float,
	POCODCH float,
	PBAH1 float,
	STKU varchar(1),
	VYKKU varchar(1),
	PLEM varchar(8),
	NAZOV varchar(30),
	POCJAHNIAT float,
	POCPRIP float,
	PRCASVYR float,
	POCJAL float,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	PODCHJAH float
)
go

create table SM_MLBARNT
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	CHOVSTNAZ varchar(30),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8),
	CEHZ varchar(14),
	PLEM varchar(10),
	PLEMZ varchar(10),
	PLEMR varchar(20),
	GENPOD varchar(24),
	LINIA varchar(12),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(6),
	OTIDENST varchar(11),
	OTSTNAZ varchar(30),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTTRIED varchar(2),
	OTKODPK varchar(2),
	OTSVJH varchar(2),
	OTSURVRH varchar(1),
	OTKPLOD varchar(1),
	MAIDENST varchar(11),
	MASTNAZ varchar(30),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MATRIED varchar(2),
	MAKODPK varchar(2),
	MASURVRH varchar(1),
	MAKPLOD varchar(1),
	MAMAXML varchar(28),
	MANAZLIN varchar(12),
	OOIDENST varchar(11),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOTRIED varchar(2),
	OOKODPK varchar(2),
	OOSVJH varchar(2),
	MOIDENST varchar(11),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOTRIED varchar(2),
	MOKODPK varchar(2),
	MOMAXML varchar(15),
	OMIDENST varchar(11),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMTRIED varchar(2),
	OMKODPK varchar(2),
	OMSVJH varchar(2),
	MMIDENST varchar(11),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMTRIED varchar(2),
	MMKODPK varchar(2),
	MMMAXML varchar(15),
	DATNAR date,
	SURVRH varchar(1),
	KDPRIRT varchar(5),
	HVPORPR2 varchar(3),
	PHVELVRHT varchar(7),
	HVPORVV varchar(3),
	MLD float,
	TUK float,
	INMLLTT varchar(7),
	HVMLLT varchar(3),
	TEXT10 varchar(9),
	TEXT11 varchar(9),
	TEXT12 varchar(3),
	TEXT13 varchar(2),
	TBOSVAL varchar(2),
	PHMLIEKOT varchar(7),
	HVPORML varchar(3),
	PHHMODST varchar(7),
	HVPORHO varchar(3),
	TEXTHO varchar(9),
	TEXTHVHO varchar(3),
	PATERN varchar(7),
	DATNT date,
	KATCIS float,
	SKUPINA varchar(2),
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BVLNA varchar(2),
	BDEFEKT varchar(3),
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	KODPK varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	PZIVHMOTNT float,
	DATVAZNT date,
	HM1ROK float,
	HVHM1ROK varchar(3),
	UZITZAM varchar(1),
	UZITZST varchar(1),
	TYPZAM varchar(1)
)
go

create table GM_KOZYST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	SML float,
	STL float,
	SBL float,
	SLL float,
	SMNL float,
	STNL float,
	SBNL float,
	SLNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	POCETVS float,
	PDDP float
)
go

create table NM_Spolocnost
(
	ID int identity
		primary key,
	ICO varchar(10),
	NAZOV varchar(50),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	PSC varchar(5),
	UUID varchar(36)
)
go

create table CE_PRESUNY
(
	ID_CP int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_PRESUNY_id
	on CE_PRESUNY (ID_CP)
go

create table SM_RMLUZST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZOV varchar(30),
	PLEM varchar(8),
	STKU varchar(1),
	VYKKU varchar(1),
	ROKEV varchar(4),
	SML float,
	STL float,
	SBL float,
	SLL float,
	SMNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	STNL float,
	SBNL float,
	SLNL float,
	SKMNL float,
	SKTNL float,
	SKBNL float,
	SKLNL float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	POCETVS float,
	SMODMNL float,
	SMODTNL float,
	SMODBNL float,
	SMODLNL float,
	PDDP float
)
go

create table GM_SPOLUST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU date,
	LITRANO float,
	LITOBED float,
	LITVECER float,
	KUSRANO int,
	KUSOBED int,
	KUSVECER int,
	VERIF bit not null
)
go

create table CP_ZCHMD_SKRAV
(
	CisKravy varchar(14),
	CHOVATEL varchar(9),
	DATNAR date,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	ZnMatByk varchar(1),
	ZnakET bit,
	ZdravTr varchar(1),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	MATKA varchar(14),
	DatVyr date,
	DovVyr varchar(2),
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table NM_OSDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PLEMENAR varchar(5),
	TYPFAKT varchar(1),
	PLIS varchar(1),
	REGPK varchar(1),
	PIGLOG varchar(1),
	VYKKU varchar(1),
	constraint PK_NM_OsDetail
		primary key (KRAJ, OKRES, PODNIK, CHOV)
)
go

create table HIST_NM_CHOVMAS
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ZRUS varchar(1),
	NAZOV varchar(30),
	KOBEC varchar(6),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	CISFARMY varchar(255),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	EkoChov bit not null,
	FaktSkup varchar(1),
	datumZapojenia datetime,
	datumZrusenia datetime,
	ID_ZOOTECHNIK int
)
go

create table GM_RMLUZST
(
	KROKR varchar(3) not null,
	PODNIK varchar(3) not null,
	STADO varchar(3) not null,
	ROKEV varchar(4) not null,
	SML float,
	STL float,
	SBL float,
	SLL float,
	SMNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	STNL float,
	SBNL float,
	SLNL float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	POCETVS float,
	PDDP float,
	NAZOV varchar(30),
	PLEM varchar(8),
	STKU varchar(1),
	VYKKU varchar(1),
	Plem1 as substring([plem],1,2)
)
go

create table CM_BB_CONTROL_MEAT
(
	CONTROL_MEAT_ID numeric(38) not null
		primary key,
	ANIMALCODE varchar(15),
	PERFORMED date,
	FROM_DATE date,
	IMPORTED char(1),
	GROWTH_DAILY_TEST numeric(38),
	GROWTH_DAILY_LIFE numeric(38),
	GROWTH_NETTO numeric(38),
	RELATIVE_BREED_VALUE numeric(38),
	RELIABILITY numeric(38),
	EFECT_DOUGHTERS_COUNT numeric(7,2),
	TO_DATE date,
	INDEX_NAME varchar(5),
	INDEX_VALUE float,
	INSERTED date,
	COUNTRY_ID numeric(38),
	LINE varchar(3),
	REGISTER numeric(38),
	TESTED_CHILDS numeric(38)
)
go

create table Roc_MLHD_Tab_3
(
	PLEMENO varchar(35),
	CISKRAVY varchar(14),
	OKRES varchar(35),
	PODNIK varchar(35),
	CHOV varchar(35),
	OTEC varchar(8),
	PLEM varchar(50),
	PORLAK int,
	MLIEKNOR int,
	TUKPERC float,
	TUKNOR float,
	BIELKPERC float,
	BIELKNOR float,
	CHOVATEL varchar(9),
	ROK varchar(4)
)
go

create table Ainbreeding_Ovce
(
	uscislo varchar(8),
	otec varchar(8),
	matka varchar(8),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	koefpribuz float
)
go

create index IX_Ainbreeding_uscislo
	on Ainbreeding_Ovce (uscislo)
go

create table SM_VYHNT1CR
(
	ROK varchar(4),
	PLEM1 varchar(2),
	NAZOV varchar(20),
	PRIHL float,
	PREDV float,
	POCER float,
	POCEA float,
	POCEB float,
	POCI float,
	POCII float,
	POCVYR float,
	ZARAD float
)
go

create table GP_KOZYDEL
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU date,
	CISVZOR varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORAD int,
	DOKOTEN date,
	MLRANO float,
	MLOBED float,
	MLVECER float,
	ROZBTUK float,
	ROZBBIEL float,
	ROZBLAKT float,
	PORLAK varchar(1)
)
go

create table HIST_NM_Spolocnost
(
	ID int identity
		primary key,
	ID_SPOLOCNOST int,
	ICO varchar(10),
	NAZOV varchar(50),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	PSC varchar(5),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	UUID varchar(36)
)
go

create table CE_ZARKRAV
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_ZARKRAV_id
	on CE_ZARKRAV (ID)
go

create table SM_VYHNT1KR
(
	ROK varchar(4),
	PLEM2 varchar(8),
	PRIHL float,
	PREDV float,
	POCER float,
	POCEA float,
	POCEB float,
	POCI float,
	POCII float,
	POCVYR float,
	ZARAD float
)
go

create table GP_POCKOZST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	POCETVS int,
	POCET1 int,
	POCET2 int,
	POCET3 int,
	POCET4 int,
	POCET5 int,
	POCET6 int
)
go

create table NM_OVDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	STKU varchar(1),
	PLEM varchar(8),
	KODPL varchar(2),
	CISKON varchar(5),
	CISZOO varchar(5),
	VYKKU varchar(1),
	RCHPLEMK bit not null,
	ROKZARPK varchar(4),
	KUMLIEKA bit not null,
	DATZRUS date,
	EXPCHOV varchar(1),
	UZITZST varchar(1),
	KOMUZOS varchar(1),
	TLACKU varchar(1),
	TLACKMU varchar(1),
	PLIS varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	MLIEKOMER varchar(1),
	registerChovov varchar(20),
	constraint PK_NM_OvDetail
		primary key (KRAJ, OKRES, PODNIK, CHOV)
)
go

create table CP_BLUP_PROOFC
(
	cislo varchar(15),
	nd decimal(6),
	nr decimal(6),
	m305 decimal(6,1),
	m100 decimal(5,1),
	m200 decimal(5,1),
	m300 decimal(5,1),
	mp decimal(5,1),
	t305 decimal(6,2),
	t100 decimal(5,2),
	t200 decimal(5,2),
	t300 decimal(5,2),
	tp decimal(5,2),
	b305 decimal(6,2),
	b100 decimal(5,2),
	b200 decimal(5,2),
	b300 decimal(5,2),
	bp decimal(5,2),
	tperc decimal(10,7),
	bperc decimal(10,7),
	plem char(1)
)
go

create table CM_BB_CONTROL_MILK
(
	CONTROL_MILK_ID numeric(38) not null
		primary key,
	ANIMALCODE varchar(15),
	EFECT_DOUGHTERS_COUNT numeric(7,2),
	PERFORMED date,
	FROM_DATE date,
	TO_DATE date,
	HERD_COUNT numeric(38),
	TESTED_DOUGHTERS numeric(38),
	MILK_KG float,
	FAT_KG float,
	PROTEIN_KG float,
	MILK_VALUE float,
	MILK_VALUE_RELATIVE float,
	FAT_RELATIVE float,
	PROTEIN_VALUE float,
	PROTEIN_VALUE_PERC float,
	FAT_VALUE float,
	FAT_VALUE_PERC float,
	PROTEIN_RELATIVE float,
	FAT_VALUE_RELATIVE float,
	RELIABILITY numeric(38),
	METHOD_ID numeric(38),
	INDEX_VALUE float,
	INDEX_NAME varchar(5),
	PROTEIN_VALUE_RELATIVE float,
	INSERTED date,
	IMPORTED char(1),
	COUNTRY_ID numeric(38),
	LINE varchar(3),
	REGISTER numeric(38)
)
go

create table CE_ZARTELIATMAS
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_ZARTELIATMAS_id
	on CE_ZARTELIATMAS (ID)
go

create table SM_VYHNT2RR
(
	DATNT date,
	NTKRAJ varchar(1),
	MIESTONT varchar(30),
	CELKOM float,
	POCER float,
	POCEA float,
	POCEB float,
	POCI float,
	POCII float,
	POCVYR float
)
go

create table dlhovek
(
	[Ušné číslo býka] nvarchar(255),
	[Meno býka] nvarchar(255),
	[Počet vyradených dcér] float,
	[Počet všetkých dcér] float,
	[Spoľahlivosť odhadu RPH] float,
	RPH float
)
go

create table GP_SPOLUSTO
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU1 date,
	LITRANO1 float,
	LITOBED1 float,
	LITVECER1 float,
	KUSRANO1 int,
	KUSOBED1 int,
	KUSVECER1 int,
	DODBERU2 date,
	LITRANO2 float,
	LITOBED2 float,
	LITVECER2 float,
	KUSRANO2 int,
	KUSOBED2 int,
	KUSVECER2 int,
	DODBERU3 date,
	LITRANO3 float,
	LITOBED3 float,
	LITVECER3 float,
	KUSRANO3 int,
	KUSOBED3 int,
	KUSVECER3 int,
	DODBERU4 date,
	LITRANO4 float,
	LITOBED4 float,
	LITVECER4 float,
	KUSRANO4 int,
	KUSOBED4 int,
	KUSVECER4 int,
	DODBERU5 date,
	LITRANO5 float,
	LITOBED5 float,
	LITVECER5 float,
	KUSRANO5 int,
	KUSOBED5 int,
	KUSVECER5 int,
	DODBERU6 date,
	LITRANO6 float,
	LITOBED6 float,
	LITVECER6 float,
	KUSRANO6 int,
	KUSOBED6 int,
	KUSVECER6 int,
	DODBERU7 date,
	LITRANO7 float,
	LITOBED7 float,
	LITVECER7 float,
	KUSRANO7 int,
	KUSOBED7 int,
	KUSVECER7 int,
	DODBERU8 date,
	LITRANO8 float,
	LITOBED8 float,
	LITVECER8 float,
	KUSRANO8 int,
	KUSOBED8 int,
	KUSVECER8 int
)
go

create table CP_Dlhovek_Rodokmene_MP
(
	O varchar(14) not null,
	OO varchar(15),
	MO varchar(15),
	OOO varchar(15),
	MOO varchar(15),
	OMO varchar(15),
	MMO varchar(15)
)
go

create table SM_MlRoky
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	DATOBAH date,
	DATODST date,
	PORLAK varchar(1),
	ROKEV varchar(4),
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	KMNL3L float,
	KTNL3L float,
	KBNL3L float,
	KLNL3L float,
	HVPORML varchar(3),
	HVPORTL varchar(3),
	HVPORBL varchar(3),
	HVPORLL varchar(3)
)
go

create table CP_MedziobdZostavaA_CopyTest
(
	chovatel varchar(9),
	groupNazov varchar(20),
	l1 int,
	pl1 float,
	l2 int,
	pl2 float,
	l3 int,
	pl3 float,
	l4 int,
	pl4 float,
	l5 int,
	pl5 float,
	l6 int,
	pl6 float,
	l7 int,
	pl7 float,
	l8 int,
	pl8 float,
	l9 int,
	pl9 float,
	Spolu int,
	pSpolu float,
	Pmedziobd int,
	SpoluChov int,
	znakLakt varchar(2)
)
go

create table CE_ZARTELIATML
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_ZARTELIATML_id
	on CE_ZARTELIATML (ID)
go

create table CE_ROZBORAK
(
	ID int,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_ROZBORAK_id
	on CE_ROZBORAK (ID)
go

create table Roc_MLHD_Tab_20
(
	Por bigint,
	stlpec_6 varchar(30),
	stlpec_7 int,
	stlpec_8 int,
	stlpec_9 int,
	stlpec_10 float,
	stlpec_11 int,
	stlpec_12 float,
	stlpec_13 int,
	stlpec_14Mesiac int,
	stlpec_14Den int,
	stlpec_15 int,
	stlpec_16 int,
	stlpec_17 int,
	stlpec_18 float,
	stlpec_19 int,
	stlpec_20 float,
	stlpec_21 int,
	stlpec_22 int,
	stlpec_23 int,
	stlpec_24 int,
	stlpec_25 int,
	stlpec_26 float,
	stlpec_27 int,
	stlpec_28 float,
	stlpec_29 int,
	stlpec_30 int,
	stlpec_31 float,
	stlpec_32_1 int,
	stlpec_32_2 int,
	rok varchar(4),
	stlpec_14 varchar(8),
	stlpec_32 varchar(8)
)
go

create table CP_SPOL_IMPMAT
(
	CISKRAVY varchar(15) not null,
	UC varchar(15),
	MENO varchar(40),
	MATKA varchar(15),
	MMENO varchar(40),
	MPK varchar(5),
	MPLEMENO varchar(173),
	MTRIEDA varchar(3),
	POCHADZA varchar(50),
	MMAX float,
	MMAXML float,
	MMAXT float,
	MMAXB float,
	MPERCT decimal(5,2),
	MPERCB decimal(5,2),
	MVSET float,
	MNORM float,
	MPRML float,
	MPRT float,
	MPRB float,
	MPRTB float,
	MPRPERCT decimal(5,2),
	MPRPERCB decimal(5,2),
	MPRPERCTB decimal(5,2),
	OMLIN varchar(3),
	OMREG int,
	OMUC varchar(15),
	OMMENO varchar(40),
	OMMENO1 varchar(20),
	OMPK varchar(5),
	OMPLEMENO varchar(173),
	OMRPHM float,
	OMRPHT float,
	OMRPHB float,
	MM varchar(15),
	MMMENO varchar(40),
	MMPK varchar(5),
	MMPLEMENO varchar(173),
	MMTRIEDA varchar(3),
	MMMAX float,
	MMMAXML float,
	MMMAXT float,
	MMMAXB float,
	MMPERCT decimal(5,2),
	MMPERCB decimal(5,2),
	MMPRML float,
	MMPRT float,
	MMPRB float,
	MMPRTB float,
	MMPRPERCT decimal(5,2),
	MMPRPERCB decimal(5,2),
	MMPRPERCTB decimal(5,2),
	OOMLIN varchar(3),
	OOMREG int,
	OOMUC varchar(15),
	OOMMENO varchar(40),
	OOMMENO1 varchar(20),
	OOMRPHM float,
	OOMRPHT float,
	OOMRPHB float,
	MOM varchar(15),
	MOMMENO varchar(40),
	MOMTRIEDA varchar(3),
	OMMLIN varchar(3),
	OMMREG int,
	OMMUC varchar(15),
	OMMMENO varchar(40),
	OMMMENO1 varchar(20),
	OMMRPHM float,
	OMMRPHT float,
	OMMRPHB float,
	MMM varchar(15),
	MMMMENO varchar(40),
	MMMTRIEDA varchar(3)
)
go

create table NM_PODNIK
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	NAZOV varchar(70),
	NAZOV2 varchar(30),
	NAZOVSKR varchar(25),
	ICO varchar(10),
	DIC varchar(10),
	DURAD varchar(3),
	IC_DPH varchar(12),
	ZRUS varchar(1),
	KOBEC varchar(6),
	FSEKTOR varchar(2),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	TELEFON varchar(15),
	FAX varchar(15),
	EMAIL varchar(30),
	QPLATBY varchar(1),
	KrOkr as [Kraj]+[okres],
	vTazkostiach bit,
	narokNaDotacie bit,
	ID_KONATEL int
		references NM_Konatel,
	REGION varchar(2),
	oficMeno varchar(255),
	oficUlica varchar(30),
	oficCislo varchar(20),
	oficMesto varchar(100),
	oficPsc varchar(10),
	constraint PK_NM_PODNIK
		primary key (KRAJ, OKRES, PODNIK),
	constraint FK_NM_PODNIK_NC_OKRES
		foreign key (KRAJ, OKRES) references NC_OKRES
)
go




-- Batch submitted through debugger: SQLQuery6.sql|7|0|C:\Users\RUDINEC.PSSRZA\AppData\Local\Temp\~vs98ED.sql
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE TRIGGER [dbo].[Trigger_NM_PODNIK_DEL]
   ON  [dbo].[NM_PODNIK]
   AFTER DELETE
AS 
BEGIN
	DECLARE @kraj VARCHAR(1) 
	DECLARE @okres VARCHAR(2) 
	DECLARE @podnik VARCHAR(3) 
	DECLARE @pocet_riad INT
	DECLARE @pocet_cykl INT	
		
	SET @kraj = (select kraj FROM Deleted)			
	SET @okres = (select okres FROM Deleted)
	SET @podnik = (select podnik FROM Deleted)	
	SET @pocet_riad = (select count(*) from PLIS.dbo.NM_CHOVMAS	where @kraj = kraj AND @okres = okres AND @podnik = podnik)
	SET @pocet_cykl = 0

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	
	WHILE (@pocet_cykl < @pocet_riad)
	BEGIN
		DELETE top (1) from PLIS.dbo.NM_CHOVMAS  
		where @kraj = kraj AND @okres = okres AND @podnik = podnik
		SET @pocet_cykl = (@pocet_cykl + 1)
	END
	
    -- Insert statements for trigger here

END


go

create table HIST_NM_ChPrZoot
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PRODUKT varchar(5) not null,
	ZOOTOC1 varchar(5) not null,
	ZOOTPER1 float,
	ZOOTOC2 varchar(5),
	ZOOTPER2 float,
	ZOOTOC3 varchar(5),
	ZOOTPER3 float,
	ZOOTOC4 varchar(5),
	ZOOTPER4 float,
	ZOOTOC5 varchar(5),
	ZOOTPER5 float,
	ZOOTOC6 varchar(5),
	ZOOTPER6 float,
	ZOOTOC7 varchar(5),
	ZOOTPER7 float,
	ZOOTOC8 varchar(5),
	ZOOTPER8 float,
	ZOOTOC9 varchar(5),
	ZOOTPER9 float,
	ZOOTOC10 varchar(5),
	ZOOTPER10 float,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	TYPZV varchar(1)
)
go

create table [CP_TLACVYV_pom***]
(
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOV varchar(3),
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	SKUP varchar(2),
	MESSP varchar(2),
	DATPOSK date,
	CISKRAVY varchar(14),
	PLEMKR varchar(26),
	DATNAR date,
	DATOT date,
	PORPREBLAK varchar(2),
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI float,
	PERSPOL float,
	ML1 float,
	ZN1 varchar(1),
	ML2 float,
	ZN2 varchar(1),
	ML3 float,
	ZN3 varchar(1),
	ML4 float,
	ZN4 varchar(1),
	ML5 float,
	ZN5 varchar(1),
	ML6 float,
	ZN6 varchar(1),
	ML7 float,
	ZN7 varchar(1),
	ML8 float,
	ZN8 varchar(1),
	ML9 float,
	ZN9 varchar(1),
	ML10 float,
	ZN10 varchar(1),
	ML11 float,
	ZN11 varchar(1),
	ML12 float,
	ZN12 varchar(1),
	NAPDNI float,
	NAPPERT float,
	NAPPERB float,
	NAPML float,
	NAPTK float,
	NAPBL float,
	UDNI float,
	UPERT float,
	UPERB float,
	UML float,
	UTK float,
	UBL float,
	SB1 float,
	SB2 float,
	PTUKU1 float,
	PBIELK1 float,
	PTB1 float,
	PTUKU2 float,
	PBIELK2 float,
	PTB2 float,
	OVEKR float,
	OVEKM float,
	POHLTEL varchar(2),
	PRIEBPOR varchar(1),
	DATINS date,
	PORINS varchar(2),
	IATERVAL float,
	SERVPER float,
	MEDZIOB float,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	DATOTOC date,
	OLIN varchar(3),
	OREG varchar(3),
	OTPLEM varchar(26),
	MATKA varchar(14),
	MAPLEM varchar(26),
	ZNVYR varchar(2)
)
go

create table EC_UctyDotacie_Hist
(
	ID int not null,
	Suma decimal(12,2) not null,
	OstMesiace int not null,
	DatumZmeny date not null,
	TypZmeny varchar(100) not null,
	Zmenil varchar(255) not null,
	MaxPercDot decimal(5,2) constraint DF_EC_UctyDotacie_Hist_MaxPercDot default 0 not null
)
go

create table CM_BB_CONTROL_MILK_YIELD
(
	CONTROL_MILK_YIELD_ID numeric(38) not null
		primary key,
	PERFORMED date,
	FROM_DATE date,
	MAX_PER_MIN float,
	DEVIATION numeric(5,2),
	EFECT_DOUGHTERS_COUNT numeric(7,2),
	AVERAGE numeric(5,2),
	TO_DATE date,
	TESTED_CHILDS numeric(38),
	COUNTRY_ID numeric(38),
	RELATIVE_PER_3MIN float,
	FRONT_REAR_INDEX numeric(4,1),
	INSERTED date,
	ANIMALCODE varchar(15),
	RELATIVE_BREED_VALUE numeric(4,1),
	ABS_AVG_PER_MIN float,
	IMPORTED char(1),
	LINE varchar(3),
	REGISTER numeric(38)
)
go

create table CP_TLACVYS
(
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOV varchar(3),
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	SKUPINA varchar(2),
	MESSP varchar(2),
	DATPOSK date,
	CISKRAVY varchar(14),
	PORPREBLAK varchar(2),
	NAPDNI float,
	NAPPERT float,
	NAPPERB float,
	NAPML float,
	NAPTK float,
	NAPBL float,
	UDNI float,
	UPERT float,
	UPERB float,
	SB2 float,
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI float,
	OVEKR float,
	OVEKM float,
	DATINS date,
	PORINS varchar(2),
	INTERVAL float,
	SERVPER float,
	PLEMTYP varchar(2),
	POMTB float,
	DATOT date,
	UML float,
	UTK float,
	UBL float,
	SB1 float,
	TRUZ varchar(3),
	SPOLAH float,
	POHLTEL varchar(2),
	PRIEBPOR varchar(1),
	DATOTOC date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	MEDZIOB float,
	ZNVYR varchar(2)
)
go

create table HIST_NM_SpolocnostChov
(
	ID int identity
		primary key,
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ID_SPOLOCNOST int not null,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10)
)
go

create table PM_BLUP_TBLDAT
(
	Riadok varchar(158) not null
)
go

create table CP_UpozorneniaNaChove2
(
	chovatel varchar(9),
	typ_ku varchar(4),
	zoot varchar(30),
	nezhod_rodic_pat_s_plis int,
	pocet_nezhod_preb_lakt int,
	chybne_MO int,
	vysoke_MO int
)
go

create table PM_BLUP_TBLPED
(
	Riadok varchar(33) not null
)
go

create table NM_CHOVMAS
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ZRUS varchar(1),
	NAZOV varchar(30),
	KOBEC varchar(6),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	CISFARMY varchar(255),
	EkoChov bit not null,
	FaktSkup varchar(1),
	datumZapojenia datetime,
	datumZrusenia datetime,
	ID_ZOOTECHNIK int
		references NM_Zootechnik,
	constraint PK_NM_CHOVMAS
		primary key (KRAJ, OKRES, PODNIK, CHOV, TYPZV),
	constraint FK_NM_Chovmas_NM_HDDetail
		foreign key (KRAJ, OKRES, PODNIK, CHOV) references NM_HDDETAIL,
	constraint FK_NM_Chovmas_NM_KoDetail
		foreign key (KRAJ, OKRES, PODNIK, CHOV) references NM_KODETAIL,
	constraint FK_NM_Chovmas_NM_OsDetail
		foreign key (KRAJ, OKRES, PODNIK, CHOV) references NM_OSDETAIL,
	constraint FK_NM_Chovmas_NM_OvDetail
		foreign key (KRAJ, OKRES, PODNIK, CHOV) references NM_OVDETAIL,
	constraint FK_NM_CHOVMAS_NM_PODNIK
		foreign key (KRAJ, OKRES, PODNIK) references NM_PODNIK
)
go

create table NM_SpolocnostChov
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ID_SPOLOCNOST int not null
		references NM_Spolocnost,
	constraint spol_chov_pk
		primary key (KRAJ, OKRES, PODNIK, CHOV, TYPZV, ID_SPOLOCNOST),
	foreign key (KRAJ, OKRES, PODNIK, CHOV, TYPZV) references NM_CHOVMAS
)
go

create index idx_kraj_okres
	on NM_CHOVMAS (KRAJ, OKRES)
go

create index idx_kraj_okres_podnik_chov_typzv_nazov_obec
	on NM_CHOVMAS (ZRUS, KRAJ, OKRES, PODNIK, CHOV, TYPZV, NAZOV, OBEC)
go

create index idx_typzv_kraj_okres_podnik_chov
	on NM_CHOVMAS (TYPZV, KRAJ, OKRES, PODNIK, CHOV)
go



-- Batch submitted through debugger: SQLQuery6.sql|7|0|C:\Users\RUDINEC.PSSRZA\AppData\Local\Temp\~vs98ED.sql
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE TRIGGER [dbo].[Trigger_NM_CHOVMAS_DEL]
   ON  [dbo].[NM_CHOVMAS]
   AFTER DELETE
AS 
BEGIN
	DECLARE @kraj VARCHAR(1) 
	DECLARE @okres VARCHAR(2) 
	DECLARE @podnik VARCHAR(3) 
	DECLARE @chov VARCHAR(3) 	
	DECLARE @typzv VARCHAR(1) 		
	SET @kraj = (select kraj FROM Deleted)			
	SET @okres = (select okres FROM Deleted)
	SET @podnik = (select podnik FROM Deleted)
	SET @chov = (select chov FROM Deleted)		
	SET @typzv = (select typzv FROM Deleted)		

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	
	SET NOCOUNT ON;
	IF @typzv = '1' 
	BEGIN
		DELETE from PLIS.dbo.NM_HDDETAIL  
		where @kraj = kraj AND @okres = okres AND @podnik = podnik AND @chov = chov
	END
	IF @typzv = '2' 
	BEGIN
		DELETE from PLIS.dbo.NM_OSDETAIL  
		where @kraj = kraj AND @okres = okres AND @podnik = podnik AND @chov = chov
	END
	IF @typzv = '3'
	BEGIN
		DELETE from PLIS.dbo.NM_OVDETAIL  
		where @kraj = kraj AND @okres = okres AND @podnik = podnik AND @chov = chov
	END
	IF @typzv = '4'
	BEGIN
		DELETE from PLIS.dbo.NM_KODETAIL  
		where @kraj = kraj AND @okres = okres AND @podnik = podnik AND @chov = chov								
	END

    -- Insert statements for trigger here

END

go




-- Batch submitted through debugger: SQLQuery6.sql|7|0|C:\Users\RUDINEC.PSSRZA\AppData\Local\Temp\~vs98ED.sql
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE TRIGGER [dbo].[Trigger_NM_CHOVMAS_INS]
   ON  [dbo].[NM_CHOVMAS]
   AFTER INSERT
AS 
BEGIN
	DECLARE @kraj VARCHAR(1) 
	DECLARE @okres VARCHAR(2) 
	DECLARE @podnik VARCHAR(3) 
	DECLARE @chov VARCHAR(3) 	
	DECLARE @typzv VARCHAR(1) 		
	SET @kraj = (select kraj FROM Inserted)			
	SET @okres = (select okres FROM Inserted)
	SET @podnik = (select podnik FROM Inserted)
	SET @chov = (select chov FROM Inserted)		
	SET @typzv = (select typzv FROM Inserted)		

	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	IF @typzv = '1' 
	BEGIN
		INSERT into PLIS.dbo.NM_HDDETAIL (kraj, okres, podnik, chov) 
		values (@kraj, @okres, @podnik, @chov) 	
	END
	IF @typzv = '2' 
	BEGIN
		INSERT into PLIS.dbo.NM_OSDETAIL (kraj, okres, podnik, chov) 
		values (@kraj, @okres, @podnik, @chov)
	END
	IF @typzv = '3'
	BEGIN
		INSERT into PLIS.dbo.NM_OVDETAIL (kraj, okres, podnik, chov, RCHPLEMK, KUMLIEKA) 
		values (@kraj, @okres, @podnik, @chov, 0, 0)	
	END
	IF @typzv = '4'
	BEGIN
		INSERT into PLIS.dbo.NM_KODETAIL (kraj, okres, podnik, chov, RCHPLEMK, KUMLIEKA, ZRUSENE) 
		values (@kraj, @okres, @podnik, @chov, 0, 0, 0)									
	END

    -- Insert statements for trigger here

END


go

create table HIST_NM_KODETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	STKU varchar(1),
	PLEM varchar(4),
	KODPL varchar(2),
	CISKON varchar(5),
	CISZOO varchar(5),
	VYKKU varchar(1),
	RCHPLEMK bit not null,
	ROKZARPK varchar(4),
	KUMLIEKA bit not null,
	ZRUSENE bit not null,
	DATZRUS date,
	KOMUZOS varchar(1),
	TLACKU varchar(1),
	TLACKMU varchar(1),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	PLIS varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	MLIEKOMER varchar(1),
	UZITZST varchar(1),
	registerChovov varchar(20)
)
go

create table KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table
(
	krava varchar(14),
	chovatel varchar(9),
	cistelata1 varchar(14),
	cistelata12 varchar(14)
)
go

create table PC_Krajiny
(
	Kod_povod varchar(2) not null
		constraint PK_PC_Krajiny_1
			primary key,
	Kod_txt varchar(2),
	Nazov varchar(20)
)
go

create table PM_Kance
(
	Linia_kanca varchar(4) not null
		constraint FK_PM_Kance_PC_Tablin
			references PC_Tablin,
	Register_kanca varchar(5) not null,
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Plemeno_KU varchar(8) not null
		constraint FK_PM_Kance_PC_StHybZak
			references PC_StHybZak,
	Datum_narodenia date not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Povod_kraj varchar(1) not null,
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(3) not null,
	Povod_matka varchar(5) not null,
	Povod_uscislo varchar(7) not null,
	Kod_povod varchar(2) not null
		constraint FK_PM_Kance_PC_Krajiny
			references PC_Krajiny,
	Cecky varchar(2),
	Datum_zaradeniaKU date,
	Datum_vyradeniaKU date,
	Kod_vyrKU varchar(2) not null
		constraint FK_PM_Kance_PC_VyradKU
			references PC_VyradKU,
	DNA_rok varchar(2),
	DNA_cRozboru varchar(4),
	DNA_kodRozboru varchar(2),
	DNA_zapis date,
	Zdroj_dat varchar(1),
	constraint PK_PM_Kance
		primary key (Linia_kanca, Register_kanca)
)
go

create index IDX_PM_Kance_LiniaRegister
	on PM_Kance (Linia_kanca, Register_kanca)
go

create index IDX_PM_Kance_Linia
	on PM_Kance (Linia_kanca)
go

create index IDX_PM_Kance_Register
	on PM_Kance (Register_kanca)
go

create index IDX_PM_Kance_Zdroj
	on PM_Kance (Zdroj_dat)
go

create table PM_KanceHist
(
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Kod_akcie varchar(2) not null
		constraint FK_PM_KanceHist_PC_Akcie
			references PC_Akcie,
	Datum_akcie date not null,
	bfft float,
	adgft float,
	nba1 float,
	nba2 float,
	adgst float,
	vc float,
	bfst float,
	CPH float,
	pCPH float,
	perc varchar(2),
	constraint PK_PM_KanceHist
		primary key (Linia_kanca, Register_kanca, Kod_akcie, Datum_akcie),
	constraint FK_PM_KanceHist_PM_Kance
		foreign key (Linia_kanca, Register_kanca) references PM_Kance
)
go

create table PM_KanceVJH
(
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Plemeno_KU varchar(8) not null,
	Dni_vykrmu float,
	Dni_doPorazky float,
	Spotreba_KZ float,
	Spotreba_VSZ float,
	MLD float,
	JDT float,
	Stehno float,
	Mrtva_vaha float,
	CMC float,
	Vyska_slaniny float,
	Pocet_potomkov float,
	P_prirastok float,
	P_VSZ float,
	P_ME float,
	P_MLD float,
	P_stehno float,
	P_CMC float,
	P_vyska_slaniny float,
	Datum_testacie date,
	Zdroj_dat varchar(1),
	constraint PK_PM_KanceVJH
		primary key (Linia_kanca, Register_kanca, Plemeno_KU),
	constraint FK_PM_KanceVJH_PM_Kance
		foreign key (Linia_kanca, Register_kanca) references PM_Kance
)
go

create index IDX_PM_KanceVJH_Zdroj
	on PM_KanceVJH (Zdroj_dat)
go

create table PP_PHsamce
(
	Datum_akcie date not null,
	Kod_akcie varchar(2) not null,
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Plemeno_vrhu varchar(8) not null,
	Povod_kraj varchar(1) not null,
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(3) not null,
	Povod_matka varchar(5) not null,
	Povod_uscislo varchar(7) not null,
	Datum_narodenia date not null,
	rnar varchar(4),
	pcislo varchar(6),
	pohl varchar(1),
	rnarm varchar(4),
	pcislom varchar(6),
	pohlm varchar(1),
	rnaro varchar(4),
	pcisloo varchar(6),
	pohlo varchar(1),
	bfft float,
	pbfft float,
	adgft float,
	padgft float,
	nba1 float,
	pnba1 float,
	nba2 float,
	pnba2 float,
	adgst float,
	padgst float,
	vc float,
	pvc float,
	bfst float,
	pbfst float,
	CPH float,
	pCPH float,
	perc varchar(2),
	constraint FK_PP_PHsamce_PM_KanceHist
		foreign key (Linia_kanca, Register_kanca, Datum_akcie, Kod_akcie) references PM_KanceHist (Linia_kanca, Register_kanca, Datum_akcie, Kod_akcie),
	constraint FK_PP_PHsamce_PM_PotomsPoh
		foreign key (Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, Povod_matka, Datum_narodenia, Povod_uscislo) references PM_PotomsPoh
)
go

create index IX_PP_PHsamceKAN
	on PP_PHsamce (Linia_kanca, Register_kanca)
go

create index IX_PP_PHsamceKNC
	on PP_PHsamce (Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, Povod_matka, Datum_narodenia, Povod_uscislo)
go

create table CP_PIN_PLEMENICE
(
	CISKRAVY varchar(14),
	CHOVATEL varchar(9),
	PK varchar(3),
	DATNAR date,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit not null,
	ZDRAVTR varchar(1),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	MATKA varchar(14),
	DATVYR date,
	DOVVYR varchar(2),
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table CR_TMHD_pripustenie_Stvrtr_z_mes
(
	cistelata varchar(14),
	chov varchar(9),
	datnar date,
	datvaz1 date,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	hmot2 int,
	rp2 varchar(1),
	dp int,
	DatPrip1 date,
	DatPrip2 date,
	datPr date,
	datPlanPripust varchar(10),
	ZnakPripus varchar(15),
	MesiacPripusF int,
	rok int,
	mesiac int,
	generovane date,
	mesiacPripus int,
	rokPripus int
)
go

create table CM_Vyrkrav
(
	CISKRAVY varchar(14),
	CHOVATEL varchar(9),
	JENVCHOV bit,
	SKUPINA varchar(2),
	PK varchar(3),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	MATKA varchar(14),
	DATNAR date,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	REZERVA varchar(2),
	FARBA varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit,
	POHLAVIE varchar(2),
	ZDRAVTR varchar(1),
	PLEMENNA varchar(1),
	PORPREBLAK varchar(2),
	DATPOSKONT date,
	DOVVYR varchar(2),
	DATVYR date,
	DATZAR date,
	TRUZIT varchar(3),
	PORLAKMAX varchar(2),
	MLIEKOMAX float,
	TUKMAX float,
	BIELMAX float,
	LAKTOZAMAX float,
	POCVSETLAK float,
	POCNORLAK float,
	MLIEKOPR float,
	TUKPRKG float,
	TUKPRPER float,
	BIELPRKG float,
	BIELPRPER float,
	LAKTPRKG float,
	LAKTPRPER float,
	TYPPLEM varchar(2),
	DATPRIP date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	VEKPRIP float,
	PORPRIP varchar(2),
	ZNBREZ varchar(1),
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	VEKINS1 float,
	PORINS1 varchar(2),
	ZNBREZ1 varchar(1),
	DATSD date,
	PORLAKSD varchar(2),
	POCDOJ varchar(1),
	MAXMINVYD float,
	CELVYDOJ float,
	RELVYDOJ float,
	INDEX21 float,
	SPI float,
	PERCSPOLAH float,
	M305 float,
	RPHM float,
	T305 float,
	RPHT float,
	B305 float,
	RPHB float,
	DATVAZ date,
	VEKMD float,
	HMOT float,
	ZIVPR float,
	RASTPAS varchar(1),
	UC varchar(15),
	MENO varchar(20),
	MENO1 varchar(15),
	POCHADZA varchar(20),
	MA varchar(15),
	MAUC varchar(15),
	MAPOCHADZA varchar(20),
	MMENO varchar(20),
	MMENO1 varchar(15),
	MPK varchar(3),
	MTRUZ varchar(3),
	MROKN varchar(2),
	MMAXPORL varchar(2),
	MMAXML float,
	MMAXT float,
	MMAXB float,
	MPRML float,
	MPRTKG float,
	MPRTPER float,
	MPRBKG float,
	MPRBPER float,
	PLEMMA varchar(30),
	TYPPLMA varchar(2),
	MPL1 varchar(2),
	MKR1 float,
	MPL2 varchar(2),
	MKR2 float,
	OUSCIS varchar(15),
	OMENO varchar(20),
	OMENO1 varchar(15),
	OPK varchar(3),
	ORPH float,
	ORPHM float,
	ORPHT float,
	ORPHB float,
	OPEROPAK float,
	PLEMOT varchar(30),
	OPL1 varchar(2),
	OKR1 float,
	OPL2 varchar(2),
	OKR2 float,
	TYPPLOT varchar(2),
	ONAZL varchar(10),
	OROKN varchar(2),
	ODATN date,
	OCHOVN varchar(20),
	ZNTEST varchar(1),
	MM varchar(15),
	MMMENO varchar(20),
	MMMENO1 varchar(15),
	MMPK varchar(3),
	MMTRUZ varchar(3),
	MMMAXPORL varchar(2),
	MMMAXML float,
	MMMAXT float,
	MMMAXB float,
	MMPRML float,
	MMPRTKG float,
	MMPRTPER float,
	MMPRBKG float,
	MMPRBPER float,
	PLEMMM varchar(30),
	MMTYPPL varchar(2),
	OMLIN varchar(3),
	OMREG varchar(3),
	OMUSCIS varchar(15),
	OMMENO varchar(20),
	OMMENO1 varchar(15),
	OMPK varchar(3),
	OMNAZL varchar(20),
	OMROKN varchar(10),
	OMRPH float,
	OMRPHM float,
	OMRPHT float,
	OMRPHB float,
	PLEMOM varchar(30),
	OMTYPPL varchar(2),
	MO varchar(15),
	MOMENO varchar(20),
	MOMENO1 varchar(15),
	MOPK varchar(3),
	MOTRUZ varchar(3),
	MOMAXPORL varchar(2),
	MOMAXML float,
	MOMAXT float,
	MOMAXB float,
	MOPRML float,
	MOPRTKG float,
	MOPRTPER float,
	MOPRBKG float,
	MOPRBPER float,
	PLEMMO varchar(30),
	MOTYPPL varchar(2),
	OOLIN varchar(3),
	OOREG varchar(3),
	OOUSCIS varchar(15),
	OOMENO varchar(20),
	OOMENO1 varchar(15),
	OOPK varchar(3),
	OONAZL varchar(20),
	OOROKN varchar(2),
	OORPH float,
	OORPHM float,
	OORPHT float,
	OORPHB float,
	PLEMOO varchar(30),
	OOTYPPL varchar(2),
	MMM varchar(15),
	MMMTRUZ varchar(3),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	OMMUC varchar(15),
	OMMNAZL varchar(20),
	OMMRPH float,
	OMMRPHM float,
	OMMRPHT float,
	OMMRPHB float,
	MOM varchar(15),
	MOMTRUZ varchar(3),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	OOMUC varchar(15),
	OOMNAZL varchar(20),
	OOMRPH float,
	OOMRPHM float,
	OOMRPHT float,
	OOMRPHB float,
	MMO varchar(15),
	MMOTRUZ varchar(3),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	OMOUC varchar(15),
	OMONAZL varchar(20),
	OMORPH float,
	OMORPHM float,
	OMORPHT float,
	OMORPHB float,
	MOO varchar(15),
	MOOTRUZ varchar(3),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	OOOUC varchar(15),
	OOONAZL varchar(20),
	OOORPH float,
	OOORPHM float,
	OOORPHT float,
	OOORPHB float
)
go

create unique index IX_CM_Vyrkrav_CISKRAVY
	on CM_Vyrkrav (CISKRAVY)
go

create table NC_REGION
(
	REG varchar(2) not null,
	NAZOV varchar(20),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6)
)
go

create table CP_UpozorneniaNaChove
(
	chovatel varchar(9),
	typ_ku varchar(4),
	zoot varchar(30),
	nezhod_rodic_pat_s_plis int,
	pocet_nezhod_preb_lakt int,
	chybne_MO int,
	vysoke_MO int,
	nesp_plem_sk_kravy int,
	nesp_plem_sk_telata int,
	telata_nad_36 int
)
go

create table CP_PIN_JAL
(
	CISJAL varchar(14),
	CHOVNAR varchar(9),
	CHOVATEL varchar(9),
	PK varchar(3),
	DATNAR date,
	PORLAK varchar(2),
	POHLAVIE varchar(2),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	DOVVYR varchar(2),
	DATVYR date,
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OPL1 varchar(2),
	OKR1 varchar(6),
	OPL2 varchar(2),
	OKR2 varchar(6),
	OPL3 varchar(2),
	OKR3 varchar(6),
	OPL4 varchar(2),
	OKR4 varchar(6),
	OPL5 varchar(2),
	MATKA varchar(14),
	MPL1 varchar(2),
	MKR1 varchar(6),
	MPL2 varchar(2),
	MKR2 varchar(6),
	MPL3 varchar(2),
	MKR3 varchar(6),
	MPL4 varchar(2),
	MKR4 varchar(6),
	MPL5 varchar(2),
	FARBA varchar(2),
	ZNAKET bit,
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table CE_ROZBORAK_OPR
(
	ID int,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_ROZBORAK_OPR_id
	on CE_ROZBORAK_OPR (ID)
go

create table CM_Paternita_Byky
(
	UC varchar(15),
	STREG varchar(3),
	REG varchar(3),
	DATNAR date,
	PLEMENO varchar(12),
	K varchar(1),
	OK varchar(2),
	POD varchar(3),
	OSTREG varchar(3),
	OREG varchar(3),
	OUC varchar(15),
	M varchar(15),
	KT bit not null,
	DNA bit not null,
	CROZB varchar(4),
	CRAD varchar(2),
	KPUV varchar(2),
	KRVDAT date,
	PATDAT date,
	PATERNITA varchar(65)
)
go

create table NM_InsemSpol
(
	id int identity
		primary key,
	kod varchar(2),
	nazov varchar(100),
	ico varchar(10),
	ulica varchar(50),
	obec varchar(50),
	popisneCislo varchar(10),
	psc varchar(10),
	priznak varchar(10),
	skratenyNazov varchar(20),
	konatel varchar(20),
	dic varchar(10),
	icdph varchar(10)
)
go

create table CP_meso_telata_3B_1
(
	chovatel varchar(9),
	rok varchar(4),
	od varchar(15),
	m1 int,
	m2 int,
	m3 int,
	m4 int,
	m5 int,
	m6 int,
	m7 int,
	m8 int,
	m9 int,
	m10 int,
	m11 int,
	m12 int
)
go

create table GP_Rocenka_MlKoStr
(
	Zameranie varchar(1),
	StupenKU varchar(2),
	id int,
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	Lakt_vset int,
	Lakt_norm int,
	Mlieko_lit decimal(6,1),
	Tuk_kg decimal(5,1),
	Tuk_perc decimal(5,2),
	Bielk_kg decimal(5,1),
	Bielk_perc decimal(5,2),
	Lakt_kg decimal(5,1),
	Lakt_perc decimal(5,2),
	StupenKUNazov varchar(256),
	PlemenoNazov varchar(256),
	Rok varchar(4)
)
go

create table GP_ZoznamChovov
(
	Chov varchar(9) not null,
	Nazov varchar(25),
	StKU varchar(5),
	PlemSt varchar(4),
	UzitZSt varchar(30),
	PocetKozy int,
	PocetCapov int,
	PocetPotomkov int,
	Konzulent varchar(30),
	Zootechnik varchar(30),
	VykKU varchar(1)
)
go

create table HIST_NM_KONTAKT
(
	ID varchar(5) not null,
	TITULPRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITULZA varchar(5),
	TELEFPRAC varchar(15),
	TELEFPRIV varchar(15),
	MOBIL varchar(15),
	FAX varchar(15),
	EMAIL varchar(30),
	IDPAM varchar(5),
	FIRMA varchar(50),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	FFUNKCIA varchar(3),
	RODCIS varchar(12),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	IDKontakt int identity
		primary key
)
go

create table CP_ZCHMD_PripJal
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table CM_Byci
(
	IDBYKA int identity
		constraint PK_CM_Byci1
			primary key,
	LIN varchar(3),
	REG int,
	USCISLO varchar(15) not null,
	MENO varchar(40),
	MENO1 varchar(20),
	PK varchar(5),
	CHOVNAR varchar(20),
	OTUSCIS varchar(15),
	MATKA varchar(15),
	IDOT int,
	IDMA int,
	DATNAR date,
	DATPOR date,
	DATREG date,
	KROK varchar(3),
	CHOVATEL varchar(9),
	MAJITEL varchar(50),
	KODMAJ varchar(2),
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYPPLEM varchar(3),
	FARBA varchar(2),
	ZNAKET varchar(2),
	POHLAVIE varchar(2),
	KRVROZ varchar(16),
	DATKRVROZ date,
	DATVYRAD date,
	ZDRAVTR varchar(2),
	ZACTEST date,
	KONTEST date,
	KDMROK date,
	KDMPOCSTAD float,
	KDMSW float,
	KDMPOC float,
	KDMMLIEKO float,
	BLUPMLIEKO float,
	RPHMLIEKA float,
	KDMTUKKG float,
	KDMTUKPER float,
	BLUPTUK float,
	PHTUK float,
	RPHTUKU float,
	KDMBIELKG float,
	KDMBIELPER float,
	BLUPBIELK float,
	PHBIELK float,
	RPHBIELK float,
	PEROPAKOV float,
	METODA varchar(4),
	KDE varchar(12),
	KDDROK date,
	KDDSW float,
	KDDPOC float,
	KDDMAXMINV float,
	KDDIPZ float,
	KDDRV3 float,
	RPHRV3 float,
	KDVROK date,
	KDVSW float,
	KDVPOC float,
	PRIRTEST float,
	PRIRCEL float,
	NETTOPRIR float,
	RPHNETTO float,
	KDVSTAT varchar(12),
	KDVNAZIND varchar(2),
	KDVIND float,
	KDVRL float,
	PRIZNAKBB varchar(1),
	BB_ANIMALCODE varchar(15),
	BB_IMPORTED varchar(1),
	BB_USE varchar(30),
	BB_BUYER varchar(50),
	BB_KEEPER varchar(50),
	BB_INSEM char(1),
	BB_COUNTRYCODE varchar(3),
	BB_CZECH_REGISTER varchar(3),
	BB_CATEGORY varchar(20),
	BB_INSEM_COMPANY varchar(50),
	BB_LIVE char(1),
	BB_CZECH_LINE varchar(3),
	BB_HERDBOOK_NUMBER varchar(15),
	BB_BASESELECTION_PERFORMED date,
	BB_BASESELECTION_LOOK varchar(15),
	BB_BASESELECTION_RESULT_CLASS varchar(4),
	BB_BASESELECTION_BREEDING varchar(100),
	BB_BLOODTEST_COUNTRYNAME varchar(100),
	GENOM_BYK int,
	BB_ANIMAL_ID numeric(38)
)
go

create index CP_BykUsC
	on CM_Byci (USCISLO)
go

create index IX_CM_Byci_LIN_REG
	on CM_Byci (LIN, REG)
go

create unique index IX_CM_Byci_BB_ANIMAL_ID
	on CM_Byci (BB_ANIMAL_ID)
go

create table PC_Ustaj
(
	Kod_ustaj varchar(5) not null
		constraint PK_PC_Ustaj
			primary key,
	Nazov varchar(30)
)
go

create table NE_STATISTIKY
(
	CHOV varchar(10) not null,
	DATUM date not null,
	HD_KRAVA int,
	HD_TELA int,
	TMHD int,
	OV_BAHNICA int,
	OV_BARAN int,
	OV_POTOMOK int,
	KY_KOZA int,
	KY_CAP int,
	KY_POTOMOK int,
	OS_PRASNICA int,
	OS_KANEC int,
	OS_POTOMOK int
)
go

create table NM_InsemStredisko
(
	id int identity
		primary key,
	kraj varchar(1),
	okres varchar(2),
	cisloStrediska varchar(3),
	nazovStrediska varchar(50),
	konatelStrediska varchar(50),
	mail varchar(100),
	obec varchar(50),
	psc varchar(10),
	ulica varchar(50),
	popisneCislo varchar(10),
	id_insemSpolocnost int
		references NM_InsemSpol
)
go

create table Ainbreeding_Sprac
(
	uscislo varchar(14),
	otec varchar(14),
	matka varchar(14),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	[koef_pribuznosti] bigint,
	IB_uscislo varchar(19),
	IB_otec varchar(19),
	IB_matka varchar(19),
	IB_datnar varchar(9),
	IB_meno varchar(40),
	IB_verifikacia varchar(2),
	IB_organiz varchar(35),
	koefpribuz float
)
go

create index IX_Ainbreeding_uscislo
	on Ainbreeding_Sprac (uscislo)
go

create table CP_BLUP_ACCB_SC
(
	byk varchar(15),
	ndv varchar(6),
	nrv varchar(6),
	relscv varchar(7),
	plem char(1)
)
go

create index IX_CP_BLUP_ACCB_SC_byk
	on CP_BLUP_ACCB_SC (byk)
go

create table NM_KONTAKT
(
	ID varchar(5) not null
		constraint NM_KONTAKT_pk
			primary key,
	TITULPRED varchar(10),
	MENO varchar(12),
	PRIEZVISKO varchar(30),
	TITULZA varchar(5),
	TELEFPRAC varchar(15),
	TELEFPRIV varchar(15),
	MOBIL varchar(15),
	FAX varchar(15),
	EMAIL varchar(30),
	IDPAM varchar(5),
	FIRMA varchar(50),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	FFUNKCIA varchar(3),
	RODCIS varchar(12)
)
go

create table NM_HYDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	CISKON varchar(5),
	CISZOO varchar(5),
	constraint PK_NM_HYDETAIL
		primary key (KRAJ, OKRES, PODNIK, CHOV)
)
go

create table [CM_Byci_old*****]
(
	IDBYKA int identity
		constraint PK_CM_Byci
			primary key,
	LIN varchar(3),
	REG int,
	USCISLO varchar(15) not null,
	MENO varchar(40),
	MENO1 varchar(20),
	PK varchar(5),
	CHOVNAR varchar(20),
	OTUSCIS varchar(15),
	MATKA varchar(15),
	IDOT int,
	IDMA int,
	DATNAR date,
	DATPOR date,
	DATREG date,
	KROK varchar(3),
	CHOVATEL varchar(9),
	MAJITEL varchar(50),
	KODMAJ varchar(2),
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYPPLEM varchar(3),
	FARBA varchar(2),
	ZNAKET varchar(2),
	POHLAVIE varchar(2),
	KRVROZ varchar(16),
	DATKRVROZ date,
	DATVYRAD date,
	ZDRAVTR varchar(2),
	ZACTEST date,
	KONTEST date,
	KDMROK date,
	KDMPOCSTAD float,
	KDMSW float,
	KDMPOC float,
	KDMMLIEKO float,
	BLUPMLIEKO float,
	RPHMLIEKA float,
	KDMTUKKG float,
	KDMTUKPER float,
	BLUPTUK float,
	PHTUK float,
	RPHTUKU float,
	KDMBIELKG float,
	KDMBIELPER float,
	BLUPBIELK float,
	PHBIELK float,
	RPHBIELK float,
	PEROPAKOV float,
	METODA varchar(4),
	KDE varchar(12),
	KDDROK date,
	KDDSW float,
	KDDPOC float,
	KDDMAXMINV float,
	KDDIPZ float,
	KDDRV3 float,
	RPHRV3 float,
	KDVROK date,
	KDVSW float,
	KDVPOC float,
	PRIRTEST float,
	PRIRCEL float,
	NETTOPRIR float,
	RPHNETTO float,
	KDVSTAT varchar(12),
	KDVNAZIND varchar(2),
	KDVIND float,
	KDVRL float,
	PRIZNAKBB varchar(1),
	BB_ANIMALCODE varchar(15),
	BB_IMPORTED varchar(1),
	BB_USE varchar(30),
	BB_BUYER varchar(50),
	BB_KEEPER varchar(50),
	BB_INSEM char(1),
	BB_COUNTRYCODE varchar(3),
	BB_CZECH_REGISTER varchar(3),
	BB_CATEGORY varchar(20),
	BB_INSEM_COMPANY varchar(50),
	BB_LIVE char(1),
	BB_CZECH_LINE varchar(3),
	BB_HERDBOOK_NUMBER varchar(15)
)
go

create index CP_UC
	on [CM_Byci_old*****] (USCISLO)
go

create index CP_TypPlem
	on [CM_Byci_old*****] (TYPPLEM)
go

create table CR_Zoznam_nar_teliat_KUMP_1
(
	chov varchar(9),
	Cislo_Telata varchar(14),
	Dat_Nar date,
	Pohlavie varchar(2),
	Plemeno varchar(40),
	Preukaz varchar(15),
	Farba varchar(2),
	URtel varchar(1),
	HmotNar decimal(18),
	PriebPor varchar(2),
	Matka varchar(14),
	O_Meno varchar(50),
	Lin_Reg varchar(8),
	Otec varchar(14),
	mesiac int,
	rok int,
	SPRACINSERT bigint,
	DOVVYR varchar(2),
	generovane datetime
)
go

create index idx_chov
	on CR_Zoznam_nar_teliat_KUMP_1 (chov)
go

create index idx_mesiac_rok
	on CR_Zoznam_nar_teliat_KUMP_1 (mesiac, rok, chov)
go

create table CP_PIN_PLEMENICE_MP
(
	CISKRAVY varchar(14),
	CHOVATEL varchar(9),
	PK varchar(3),
	DATNAR date,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit not null,
	ZDRAVTR varchar(1),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	MATKA varchar(14),
	DATVYR date,
	DOVVYR varchar(2),
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table CP_BLUP_ACCC_SC
(
	krava varchar(15),
	ndv varchar(6),
	nrv varchar(6),
	relscv varchar(7),
	plem char(1)
)
go

create index IX_CP_BLUP_ACCC_SC_krava
	on CP_BLUP_ACCC_SC (krava)
go

create table CM_Fotografie
(
	ciskravy varchar(14) not null,
	obrazok int not null,
	login nvarchar(256) not null,
	aktivna bit not null,
	typ nchar(2) constraint DF_CM_Fotografie_typ default N'HD' not null,
	datumNahratia datetime
)
go

create table SP_NTVybPot
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8) not null,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEMS varchar(10),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	REGION varchar(2),
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTDENPRIR float,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTBMLUZMA varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAPL varchar(4),
	MADENPRIR float,
	MASURV varchar(1),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MABMLUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMTRIED varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMTRIED varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOTRIED varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOTRIED varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMVYSTR varchar(2),
	DATNAR date,
	HMOTN float,
	POHL varchar(1),
	SURVRH varchar(1),
	PREDVYB varchar(1),
	DATH30 date,
	HMOT30 float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR1 float,
	KDPRIR float,
	HVPORPR varchar(3),
	PHVELVRH float,
	HVPORVV varchar(3),
	PHMLIEKO float,
	HVPORML varchar(3),
	PHHMODS float,
	HVPORHO varchar(3),
	DATNT date,
	NTKRAJ varchar(1),
	KATCIS float,
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BVLNA varchar(2),
	BDEFEKT float,
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	PZIVHMOTNT float,
	DATVAZNT date,
	HM1ROK float,
	HVHM1ROK varchar(3),
	VYBER varchar(2),
	CENABON float,
	DATPRED date,
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	GENPRES bit not null,
	OtKodPK varchar(2),
	OtKPlod varchar(1),
	MaKodPK varchar(2),
	MaKPlod varchar(1),
	UzitZam varchar(1),
	PrirNT float
)
go

create table CP_SIM_JAL
(
	CISJAL varchar(14),
	CHOVNAR varchar(9),
	CHOVATEL varchar(9),
	DATNAR date,
	PORLAK varchar(2),
	POHLAVIE varchar(2),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	DOVVYR varchar(2),
	DATVYR date,
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OPL1 varchar(2),
	OKR1 varchar(6),
	OPL2 varchar(2),
	OKR2 varchar(6),
	OPL3 varchar(2),
	OKR3 varchar(6),
	OPL4 varchar(2),
	OKR4 varchar(6),
	OPL5 varchar(2),
	MATKA varchar(14),
	MPL1 varchar(2),
	MKR1 varchar(6),
	MPL2 varchar(2),
	MKR2 varchar(6),
	MPL3 varchar(2),
	MKR3 varchar(6),
	MPL4 varchar(2),
	MKR4 varchar(6),
	MPL5 varchar(2),
	FARBA varchar(2),
	ZNAKET bit,
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table NM_InsemTechnik
(
	id int identity
		primary key,
	id_insemStredisko int
		references NM_InsemStredisko,
	id_kontaktnaOsoba varchar(5)
		references NM_KONTAKT
)
go

create table HIST_NM_OSDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PLEMENAR varchar(5),
	TYPFAKT varchar(1),
	PLIS varchar(1),
	REGPK varchar(1),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	PIGLOG varchar(1),
	VYKKU varchar(1)
)
go

create table Roc_MLHD_Tab_4
(
	Kon_rok varchar(9),
	Kraj varchar(50) not null,
	poc_chovov int,
	poc_zapoj_krav int,
	velkost_chovu int,
	uzit_ml int,
	uzit_tuk int,
	uzit_bielk int,
	por_prebLakt float,
	por_ukonLakt float,
	vek_1otel_Den int,
	vek_1otel_Mes int,
	statie_naSucho int,
	medziobdobie int,
	interval float,
	Serv_perioda float,
	rok int
)
go

create table NC_SposVyk
(
	KOD varchar(1),
	NAZOV varchar(65)
)
go

create table CR_LaktacneZostavy
(
	Oznacenie varchar(10),
	DatumOd date,
	DatumDo date,
	Region varchar(2),
	PlemTyp varchar(10),
	PocZapojL1 int,
	PocLakV1 float,
	PocLakN1 float,
	MedziobdL1 varchar(10),
	LakdniL1 float,
	LakdniNL1 float,
	MliekNorL1 float,
	TukNorL1 float,
	BielkNorL1 float,
	LaktozaNL1 float,
	IPZL1 real,
	VyrZootechL1 varchar(4),
	VyrZdravDovL1 varchar(4),
	PocZapojL2 int,
	PocLakV2 float,
	PocLakN2 float,
	MedziobdL2 float,
	LaktDniL2 float,
	LakDniNL2 float,
	MliekNorL2 float,
	TukNorL2 float,
	BielkNorL2 float,
	LaktozaNL2 float,
	IPZL2 real,
	VyrZootechL2 varchar(4),
	VyrZdravDovL2 varchar(4),
	PocZapojCelk int,
	PocLakVcelk float,
	PocLakNcelk float,
	MedziobdCelk float,
	LaktDniCelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	LaktozaNCelk float,
	IPZCelk real,
	VyrZootechCelk varchar(4),
	VyrZdravDovCelk varchar(4),
	Do3500L1 real,
	Do4000L1 real,
	Do4500L1 real,
	Do5000L1 real,
	Do5500L1 real,
	Do6000L1 real,
	Do6500L1 real,
	Do7000L1 real,
	Do7500L1 real,
	Do8000L1 real,
	Do8500L1 real,
	Do9000L1 real,
	Do9500L1 real,
	Do10000L1 real,
	Do10500L1 real,
	Do11000L1 real,
	Do11500L1 real,
	Do12000L1 real,
	Do12500L1 real,
	Do13000L1 real,
	Do13500L1 real,
	Do14000L1 real,
	Od14000L1 real,
	Do3500L2 real,
	Do4000L2 real,
	Do4500L2 real,
	Do5000L2 real,
	Do5500L2 real,
	Do6000L2 real,
	Do6500L2 real,
	Do7000L2 real,
	Do7500L2 real,
	Do8000L2 real,
	Do8500L2 real,
	Do9000L2 real,
	Do9500L2 real,
	Do10000L2 real,
	Do10500L2 real,
	Do11000L2 real,
	Do11500L2 real,
	Do12000L2 real,
	Do12500L2 real,
	Do13000L2 real,
	Do13500L2 real,
	Do14000L2 real,
	Od14000L2 real,
	Do3500Celk real,
	Do4000Celk real,
	Do4500Celk real,
	Do5000Celk real,
	Do5500Celk real,
	Do6000Celk real,
	Do6500Celk real,
	Do7000Celk real,
	Do7500Celk real,
	Do8000Celk real,
	Do8500Celk real,
	Do9000Celk real,
	Do9500Celk real,
	Do10000Celk real,
	Do10500Celk real,
	Do11000Celk real,
	Do11500Celk real,
	Do12000Celk real,
	Do12500Celk real,
	Do13000Celk real,
	Do13500Celk real,
	Do14000Celk real,
	Od14000Celk real,
	Zmena10L1 real,
	Zmena30L1 real,
	Zmena31L1 real,
	Zmena40L1 real,
	Zmena41L1 real,
	Zmena42L1 real,
	Zmena43L1 real,
	ZmenaCelk1L1 real,
	Zmena51L1 real,
	Zmena52L1 real,
	Zmena53L1 real,
	Zmena54L1 real,
	Zmena55L1 real,
	Zmena56L1 real,
	Zmena57L1 real,
	Zmena58L1 real,
	Zmena59L1 real,
	Zmena60L1 real,
	Zmena61L1 real,
	Zmena62L1 real,
	ZmenaCelk2L1 real,
	Zmena10L2 real,
	Zmena30L2 real,
	Zmena31L2 real,
	Zmena40L2 real,
	Zmena41L2 real,
	Zmena42L2 real,
	Zmena43L2 real,
	ZmenaCelk1L2 real,
	Zmena51L2 real,
	Zmena52L2 real,
	Zmena53L2 real,
	Zmena54L2 real,
	Zmena55L2 real,
	Zmena56L2 real,
	Zmena57L2 real,
	Zmena58L2 real,
	Zmena59L2 real,
	Zmena60L2 real,
	Zmena61L2 real,
	Zmena62L2 real,
	ZmenaCelk2L2 real,
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real,
	Filter varchar(50),
	datumGenerovania date,
	EkoChov varchar(1)
)
go

create index CR_LaktacneZostavy_IDX_DatumOd_DatumDo
	on CR_LaktacneZostavy (DatumOd, DatumDo, Oznacenie)
go

create table CP_BLUP_PROOFS_SC
(
	byk varchar(15),
	ndv varchar(6),
	nrv varchar(6),
	sc305v varchar(8),
	sc100v varchar(8),
	sc200v varchar(8),
	sc300v varchar(8),
	scpv varchar(8),
	plem char(1)
)
go

create index IX_CP_BLUP_PROOFS_SC_byk
	on CP_BLUP_PROOFS_SC (byk)
go

create table Ainbreeding_Kozy
(
	uscislo varchar(8),
	otec varchar(8),
	matka varchar(8),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	koefpribuz float
)
go

create index IX_Ainbreeding_uscislo
	on Ainbreeding_Kozy (uscislo)
go

create table SP_RepPlRoc
(
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	NAZSTKU varchar(7),
	POCSTAD int,
	POCPRIP int,
	PRCASVYR int,
	POCJAL int,
	POCOBAH int,
	POCJAH int,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	STKU varchar(1),
	PLEM varchar(8),
	Rok int,
	Plemeno varchar(30)
)
go

create table SM_REPRPLRR
(
	PLEM varchar(8),
	STKU varchar(1),
	VYKKU varchar(1),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOBAH float,
	POCJAH float,
	POCBAR float,
	POCODCH float,
	PBAH1 float,
	POCJAHNIAT float,
	POCPRIP float,
	PRCASVYR float,
	POCJAL float,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	PODCHJAH float
)
go

create table CP_Meso_StadaPodlaVeku
(
	vek varchar(20),
	l1 int,
	l2 int,
	l3 int,
	l4 int,
	l5 int,
	l6 int,
	l7 int,
	l8 int,
	l9 int,
	l10 int,
	spoluZaRok int,
	chovatel varchar(9)
)
go

create table CP_PIN_LAKTPREB
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	DATOTEL date,
	HMOTN float,
	LAKTDNI float,
	MLIEKO decimal(7),
	TUK decimal(7,2),
	BIELK decimal(7,2),
	LAKTOZA decimal(7,2),
	SPOSOBKU varchar(1),
	ZMENA varchar(2),
	INDPER float
)
go

create table PM_PrasnicePev
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Prasnica_farma varchar(5),
	Prasnica_import varchar(14),
	Farma_CEHZ varchar(6),
	Prasnica_vKU bit,
	Kod_ustaj varchar(5) not null
		constraint FK_PM_PrasnicePev_PC_Ustaj
			references PC_Ustaj,
	Kod_kategorie varchar(1) not null
		constraint FK_PM_PrasnicePev_PC_KategOs
			references PC_KategOs,
	Plemeno_KU varchar(8) not null
		constraint FK_PM_PrasnicePev_PC_StHybZak
			references PC_StHybZak,
	Datum_narodenia date not null,
	Linia_otca varchar(4),
	Register_otca varchar(5),
	Povod_kraj varchar(1) not null,
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(3) not null,
	Povod_matka varchar(5) not null,
	Povod_UsCislo varchar(7) not null,
	Kod_povod varchar(2) not null
		constraint FK_PM_PrasnicePev_PC_Krajiny
			references PC_Krajiny,
	Kod_genofond varchar(1) not null
		constraint FK_PM_PrasnicePev_PC_Genofond
			references PC_Genofond,
	Datum_zaradeniaKU date,
	Kod_vyrKU varchar(2) not null
		constraint FK_PM_PrasnicePev_PC_VyradKU
			references PC_VyradKU,
	Datum_vyradeniaKU date,
	Cecky varchar(2),
	Krmne_dni float,
	Pocet_vrhov float,
	Priem_vsetky_nar float,
	Priem_zivo_nar float,
	Priem_dochov float,
	Priem_hmotnost_vrhu float,
	Priem_medzidobie float,
	DNA_rok varchar(2),
	DNA_crozboru varchar(4),
	DNA_KodRozboru varchar(2),
	DNA_zapis date,
	Zdroj_dat varchar(1),
	constraint PK_PM_PrasnicePev
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica)
)
go

create table PM_PrasniceHist
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Kod_akcie varchar(2) not null
		constraint FK_PM_PrasniceHist_PC_Akcie
			references PC_Akcie,
	Datum_akcie date not null,
	Pred_kraj varchar(1) not null,
	Pred_okres varchar(2) not null,
	Pred_podnik varchar(3) not null,
	Pred_chov varchar(3) not null,
	bfft float,
	adgft float,
	nba1 float,
	nba2 float,
	adgst float,
	vc float,
	bfst float,
	CPH float,
	pCPH float,
	perc varchar(2),
	constraint PK_PM_PrasniceHist
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Kod_akcie, Datum_akcie),
	constraint FK_PM_PrasniceHist_PM_PrasnicePev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) references PM_PrasnicePev
)
go

create table PM_PrasniceVJH
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Plemeno_KU varchar(8) not null,
	Dni_vykrmu float,
	Dni_doPorazky float,
	Spotreba_KZ float,
	Spotreba_VSZ float,
	MLD float,
	Stehno float,
	Mrtva_vaha float,
	CMC float,
	Vyska_slaniny float,
	Pocet_potomkov float,
	P_prirastok float,
	P_VSZ float,
	P_ME float,
	P_MLD float,
	P_stehno float,
	P_CMC float,
	P_vyska_slaniny float,
	Datum_testacie date,
	Zdroj_dat varchar(1),
	constraint PK_PM_PrasniceVJH
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Plemeno_KU),
	constraint FK_PM_PrasniceVJH_PM_PrasnicePev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) references PM_PrasnicePev
)
go

create index IDX_PM_PrasniceVJH
	on PM_PrasniceVJH (Zdroj_dat)
go

create table PP_PHsamice
(
	Datum_akcie date not null,
	Kod_akcie varchar(2) not null,
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Plemeno_vrhu varchar(8) not null,
	Povod_kraj varchar(1) not null,
	Povod_okres varchar(2) not null,
	Povod_podnik varchar(3) not null,
	Povod_chov varchar(3) not null,
	Povod_matka varchar(5) not null,
	Povod_usCislo varchar(7) not null,
	Datum_narodenia date not null,
	rnar varchar(4),
	pcislo varchar(6),
	pohl varchar(1),
	rnarm varchar(4),
	pcislom varchar(6),
	pohlm varchar(1),
	rnaro varchar(4),
	pcisloo varchar(6),
	pohlo varchar(1),
	bfft float,
	pbfft float,
	adgft float,
	padgft float,
	nba1 float,
	pnba1 float,
	nba2 float,
	pnba2 float,
	adgst float,
	padgst float,
	vc float,
	pvc float,
	bfst float,
	pbfst float,
	CPH float,
	pCPH float,
	perc varchar(2),
	constraint FK_PP_PHsamice_PM_PrasniceHist
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_akcie, Kod_akcie) references PM_PrasniceHist (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_akcie, Kod_akcie),
	constraint FK_PP_PHsamice_PM_PotomsPoh
		foreign key (Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, Povod_matka, Datum_narodenia, Povod_usCislo) references PM_PotomsPoh
)
go

create index IX_PP_PHsamicePRA
	on PP_PHsamice (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica)
go

create index IX_PP_PHsamicePRV
	on PP_PHsamice (Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, Povod_matka, Datum_narodenia, Povod_usCislo)
go

create table PM_PrasniceIns
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Prasnica_farma varchar(5),
	Datum_pripustenia date not null,
	Poradie_pripustenia float,
	Kod_pripustenia varchar(2) not null
		constraint FK_PM_PrasniceIns_PC_SposPrip
			references PC_SposPrip,
	Kod_kategorie varchar(1) not null
		constraint FK_PM_PrasniceIns_PC_KategOs
			references PC_KategOs,
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Pocet_reins float,
	Kod_brez varchar(1),
	Zdroj_dat varchar(1),
	constraint PK_PM_PrasniceIns
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_pripustenia),
	constraint FK_PM_PrasniceIns_PM_PrasnicePev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) references PM_PrasnicePev,
	constraint FK_PM_PrasniceIns_PM_Kance
		foreign key (Linia_kanca, Register_kanca) references PM_Kance
)
go

create index IDX_PM_PrasniceIns
	on PM_PrasniceIns (Zdroj_dat)
go

create index IDX_PM_PrasnicePev_LiniaRegister
	on PM_PrasnicePev (Linia_otca, Register_otca)
go

create index IDX_PM_PrasnicePev_Plemeno
	on PM_PrasnicePev (Plemeno_KU)
go

create index IDX_PM_PrasnicePev_KodKategorie
	on PM_PrasnicePev (Kod_kategorie)
go

create index IDX_PM_PrasnicePev_Datum_narodenia
	on PM_PrasnicePev (Datum_narodenia)
go

create index IDX_PM_PrasnicePev_Povod
	on PM_PrasnicePev (Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, Povod_matka, Povod_UsCislo)
go

create index IDX_PM_PrasnicePev
	on PM_PrasnicePev (Zdroj_dat)
go

create table CP_BLUP_PROOFC_SC
(
	cislo varchar(15),
	ndv varchar(6),
	nrv varchar(6),
	sc305v varchar(8),
	sc100v varchar(8),
	sc200v varchar(8),
	sc300v varchar(8),
	scpv varchar(8),
	plem char(1)
)
go

create index IX_CP_BLUP_PROOFC_SC_cislo
	on CP_BLUP_PROOFC_SC (cislo)
go

create table SM_KonZapBaran
(
	ID bigint identity
		primary key,
	KROKR varchar(3) not null,
	PODNIK varchar(3) not null,
	STADO varchar(3) not null,
	ROKEV1 varchar(4) not null,
	ROKEV2 varchar(2) not null,
	BARCIS varchar(8) not null,
	BPORCIS varchar(4),
	BKROKR varchar(3),
	BPODNIK varchar(3),
	BSTADO varchar(3),
	BLUC varchar(5),
	BPUC varchar(5),
	BCEHZ varchar(14),
	BPLEM varchar(10),
	IDM int
		references SM_KonZapMen,
	IDS int
		references SM_KonZapMen
)
go

create index idx_IDM
	on SM_KonZapBaran (IDM)
go

create index idx_IDS
	on SM_KonZapBaran (IDS)
go

create table NM_PRACCHOV
(
	IDPRACKU int not null,
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null
)
go

create index idx_kraj_okres_podnik_chov
	on NM_PRACCHOV (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV)
go

create table SM_REPRSTRR
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	PPRIPKZ float,
	PRCASVYR1 float,
	PRCASVYR2 float,
	POCJAL1 float,
	POCJAL2 float,
	POCOBAH float,
	POCJAH float,
	POCBAR float,
	POCODCH float,
	PBAH1 float,
	STKU varchar(1),
	VYKKU varchar(1),
	PLEM varchar(8),
	NAZOV varchar(30),
	POCJAHNIAT float,
	POCPRIP float,
	PRCASVYR float,
	POCJAL float,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	PODCHJAH float
)
go

create table CP_Mlieko_Kravy_21
(
	Chovatel varchar(9),
	OUC varchar(14),
	otec varchar(7),
	MENO varchar(50),
	nazlin varchar(30),
	plemena varchar(80),
	Poc12 int,
	PocNad12 int,
	po4et12Perc float,
	po4etNad12Perc float,
	po4et int,
	preOtec int,
	percOtec float
)
go

create table CR_EKRMD
(
	cistelata varchar(14),
	chov varchar(9),
	plemeno varchar(3),
	datnar date,
	pohlavie varchar(2),
	PK varchar(3),
	ET bit,
	farba varchar(2),
	matka varchar(14),
	otecLIN varchar(3),
	otecREG int,
	datvaz1 date,
	mesiac1 int,
	den1 int,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	mesiac2 int,
	den2 int,
	hmot2 int,
	rp2 varchar(1),
	datvaz3 date,
	mesiac3 int,
	den3 int,
	hmot3 int,
	rp3 varchar(1),
	datvaz4 date,
	mesiac4 int,
	den4 int,
	hmot4 int,
	rp4 varchar(1),
	datvaz5 date,
	mesiac5 int,
	den5 int,
	hmot5 int,
	rp5 varchar(1),
	datvaz6 date,
	mesiac6 int,
	den6 int,
	hmot6 int,
	rp6 varchar(1),
	zprir int,
	dp int,
	byk varchar(7),
	datinsem date,
	ocotel date,
	ocprip date,
	porlakmax int,
	pocvsetlak int,
	pocnorlak int,
	mliekopr int,
	tukper decimal(7,2),
	bielkper decimal(7,2),
	mliekomax int,
	tukmax decimal(7,2),
	bielmax decimal(7,2),
	rok int,
	mesiac int,
	generovane datetime,
	plemskladba varchar(70),
	planprip date,
	DatPlanPripust varchar(10),
	vekPripus varchar(6),
	otecUscislo varchar(14),
	otecMeno varchar(30)
)
go

create table CP_Kravicky
(
	ID bigint,
	uscislo varchar(14),
	chov varchar(9),
	LinReg varchar(7),
	datNar date,
	tab varchar(14),
	pohl varchar(2),
	ppohl int,
	priznakKU varchar(2),
	plemSkl varchar(35),
	otec varchar(14),
	idOtec bigint,
	matka varchar(14),
	idMatka bigint,
	dovod varchar(2),
	datVyr date,
	meno varchar(50)
)
go

create index idx_uscislo
	on CP_Kravicky (uscislo)
go

create index idx_chov
	on CP_Kravicky (chov)
go

create index idx_otec
	on CP_Kravicky (otec)
go

create index idx_matka
	on CP_Kravicky (matka)
go

create index idx_idOtec
	on CP_Kravicky (idOtec)
go

create index idx_idMatka
	on CP_Kravicky (idMatka)
go

create index idx_ID
	on CP_Kravicky (ID)
go

create table CP_SPOL_BYCI
(
	LIN varchar(3) not null,
	REG int,
	MENO varchar(40),
	MENO1 varchar(20),
	USCISLO varchar(15),
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	FARBA varchar(2),
	CHOVATEL varchar(9),
	MAJITEL varchar(50),
	DATNAR date,
	DATPOR date,
	OTECLIN varchar(3),
	OTECREG int,
	OTUSCIS varchar(15),
	MATKA varchar(15),
	OOLIN varchar(3),
	OOREG int,
	MO varchar(15),
	OMLIN varchar(3),
	OMREG int,
	MM varchar(15)
)
go

create table SP_Rocenka_VBon
(
	id int,
	TypPlem varchar(256),
	TypChovu varchar(256),
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	PocZvDobeBonit int,
	PocMatJarSpolu int,
	ZarDoTried_ER int,
	ZarDoTried_EA int,
	ZarDoTried_EB int,
	ZarDoTried_I int,
	ZarDoTried_II int,
	ZarDoTried_X int,
	StavOviecVKU int,
	ZarJarDoMatiek decimal(5,1),
	PocVyrBar int,
	BarPonVKU int,
	PocOviecNaBar decimal(5,1),
	JahPonKChovu_Jahn int,
	JahPonKChovu_Bar int,
	PlemenoNazov varchar(256),
	TypChovuNazov varchar(256),
	Rok varchar(4)
)
go

create table SM_KonZap
(
	ID bigint identity
		primary key,
	ID_KonZapBaran bigint,
	KROKR varchar(3) not null,
	PODNIK varchar(3) not null,
	STADO varchar(3) not null,
	CEHZ varchar(14),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	PORCIS varchar(4),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	BPLEM varchar(10),
	HMOTBAH float,
	STMENB varchar(1),
	DATPRIP date,
	DATOBAH date,
	RokNar varchar(4),
	Dovod varchar(1),
	DatVyr varchar(10),
	PredChov varchar(9),
	DATZAPIS datetime not null,
	LOGIN varchar(30) not null,
	DATSPRAC datetime,
	PRIZSPRAC varchar(1) not null,
	VERZIA varchar(30),
	ZDROJ varchar(3),
	IDM int
		references SM_KonZapMen,
	IDS int
		references SM_KonZapMen
)
go

create index chov
	on SM_KonZap (KROKR, PODNIK, STADO)
go

create index idx_cehz
	on SM_KonZap (CEHZ)
go

create index idx_LUC
	on SM_KonZap (LUC)
go

create index rokev
	on SM_KonZap (ROKEV1, ROKEV2)
go

create index idx_BahCis
	on SM_KonZap (BAHCIS)
go

create index idx_IDM
	on SM_KonZap (IDM)
go

create index idx_IDS
	on SM_KonZap (IDS)
go

create table CP_ZSNADOJE
(
	CISKRAVY varchar(15) not null,
	OTEC varchar(15),
	MATKA varchar(15),
	PORLAK varchar(2) not null,
	DATKONTR date not null,
	CISCHOVU varchar(9),
	HTD int,
	FIXREG int,
	MLIEKO decimal(6,1),
	TUK decimal(6,2),
	TUKP decimal(6,2),
	BIELK decimal(6,2),
	BIELKP decimal(6,2),
	SB int,
	SCS decimal(6,2),
	DNI int,
	POZN varchar(2),
	PLEM varchar(1) not null
)
go

create table HIST_NM_InsemSpol
(
	id int identity
		primary key,
	id_insemSpolocnost int,
	kod varchar(2),
	nazov varchar(100),
	ico varchar(10),
	ulica varchar(50),
	obec varchar(50),
	popisneCislo varchar(10),
	psc varchar(10),
	priznak varchar(10),
	skratenyNazov varchar(20),
	konatel varchar(20),
	dic varchar(10),
	icdph varchar(10),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10)
)
go

create table SP_MLKRAJ
(
	KRAJ smallint,
	NAZOVKR varchar(20),
	JESD varchar(2),
	PLEM varchar(8),
	STKU varchar(3),
	POCSTAD int,
	SMNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	POCETMNL int,
	POCETTNL int,
	POCETBNL int,
	POCETLNL int,
	POCETVS int,
	Rok int
)
go

create table HIST_NM_OVDETAIL
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	STKU varchar(1),
	PLEM varchar(8),
	KODPL varchar(2),
	CISKON varchar(5),
	CISZOO varchar(5),
	VYKKU varchar(1),
	RCHPLEMK bit not null,
	ROKZARPK varchar(4),
	KUMLIEKA bit not null,
	DATZRUS date,
	EXPCHOV varchar(1),
	UZITZST varchar(1),
	KOMUZOS varchar(1),
	TLACKU varchar(1),
	TLACKMU varchar(1),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	PLIS varchar(1),
	ZVOZ varchar(1),
	SB varchar(1),
	MLIEKOMER varchar(1),
	registerChovov varchar(20)
)
go

create table changelog
(
	id int identity
		primary key,
	type tinyint,
	version varchar(50),
	description varchar(200) not null,
	name varchar(300) not null,
	checksum varchar(32),
	installed_by varchar(100) not null,
	installed_on datetime default getdate() not null,
	success bit not null
)
go

create table CM_Mocovina_bckp
(
	CIS_KRAVY nvarchar(14),
	CHOV varchar(10),
	DATROZB date,
	LAKTACE float,
	KG_MLEKA float,
	TUK float,
	MOCOV float,
	BIL float,
	SOM_BUN float,
	LAKTACERep float
)
go

create table CP_Hmot210
(
	chovatel varchar(9),
	ucislo varchar(14),
	hmot210 float
)
go

create table CP_HOL_PripPlem
(
	UsCislo varchar(15) not null,
	Blin varchar(3),
	Breg int,
	BUsCis varchar(15),
	BMeno varchar(40),
	PorPrip int,
	DatPrip date,
	ZnBrez varchar(1)
)
go

create table tttt
(
	Chovatel varchar(9),
	Ciskrava varchar(14),
	PorLakt int,
	Medziobd int,
	VekMesac int,
	VekDni int,
	Datotel datetime,
	HmotOtel int,
	t1 varchar(14),
	t1Pochl int,
	HmotOtT1 int,
	t1h120 float,
	t1p120 float,
	t1h210 float,
	t1p210 float,
	t1urcet varchar(1),
	t2 varchar(14),
	t2Pochl int,
	HmotOtT2 int,
	t2h120 float,
	t2p120 float,
	t2h210 float,
	t2p210 float,
	t2urcet varchar(1),
	t3 varchar(14),
	t3Pochl int,
	HmotOtT3 int,
	t3h120 float,
	t3p120 float,
	t3h210 float,
	t3p210 float,
	t3urcet varchar(1),
	otecLin varchar(10),
	otecUsnCis varchar(14)
)
go

create table SM_KonZapPotomok
(
	ID bigint identity
		primary key,
	ID_KonZap bigint
		constraint FK__SM_KonZap__ID_Ko__5103C52D
			references SM_KonZap,
	POHL varchar(1) not null,
	VISAC varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	CEHZ varchar(14),
	HMNAROD float,
	DATVAZ date,
	HMVAZ float,
	PRIZVYB varchar(1),
	DATZAPIS datetime not null,
	LOGIN varchar(30) not null,
	DATSPRAC datetime,
	PRIZSPRAC varchar(1) not null,
	VERZIA varchar(30),
	PredChov varchar(9),
	ZDROJ varchar(3),
	GUID_ZBERAC varchar(100)
)
go

create index idx_CEHZ
	on SM_KonZapPotomok (CEHZ)
go

create index idx_LUC
	on SM_KonZapPotomok (LUC)
go

create index Index_ID_KonZap
	on SM_KonZapPotomok (ID_KonZap)
go

create index idx_Pohl
	on SM_KonZapPotomok (POHL)
go

create table CP_ChovatelMesoPlemena
(
	kraj varchar(20),
	okres varchar(20),
	podnik varchar(3),
	chov varchar(3),
	chovatel varchar(9),
	nazovPodnik varchar(50),
	nazov varchar(30),
	pl1 varchar(2),
	pl2 varchar(2),
	pl3 varchar(2),
	MEDZI int,
	POCET_VAZENI int,
	HMOTNOST float,
	HODN_INDEX float,
	stav_kravy int,
	stav_MD int
)
go

create table HIST_NM_InsemStredisko
(
	id int identity
		primary key,
	id_insemStredisko int,
	kraj varchar(1),
	okres varchar(2),
	cisloStrediska varchar(3),
	nazovStrediska varchar(50),
	konatelStrediska varchar(50),
	mail varchar(100),
	obec varchar(50),
	psc varchar(10),
	ulica varchar(50),
	popisneCislo varchar(10),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	id_insemSpolocnost int
)
go

create table CP_VypocNespravnaPlemennaSkladba_Vsetky
(
	uscislo varchar(14) not null,
	kategoria int,
	chybnePS varchar(40),
	spravnePS varchar(40)
)
go

create table Ainbreeding_Ovce_Sprac
(
	uscislo varchar(8),
	otec varchar(8),
	matka varchar(8),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	koefpribuz float
)
go

create table SP_Rocenka_RuKraje
(
	id int,
	TypPlem varchar(256),
	Kraj varchar(256),
	Plemeno varchar(256),
	StupenKU varchar(256),
	StupenKUNazov varchar(256),
	PocStad int,
	PocBah_Prip int,
	PocBah_PredVyrad int,
	PocBah_Jal int,
	PocBah_Obah int,
	PocNarJahn int,
	PercOplod decimal(5,1),
	PercPlod decimal(5,1),
	PercPlodNaBahn decimal(5,1),
	Rok varchar(4)
)
go

create table Roc_MLHD_Tab_14
(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno varchar(30),
	Por_lakt int,
	mlieko int,
	tuk_P float,
	tuk_KG int,
	bielk_P float,
	bielk_KG int,
	rok varchar(4),
	Plem_typ varchar(6),
	Ml_B varchar(1)
)
go

create table CR_TMHD_pripustenie_stvrtR
(
	cistelata varchar(14),
	chov varchar(9),
	datnar date,
	datvaz1 date,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	hmot2 int,
	rp2 varchar(1),
	dp int,
	DatPrip1 date,
	DatPrip2 date,
	datPr date,
	datPlanPripust varchar(10),
	ZnakPripus varchar(15),
	MesiacPripusF int,
	rok int,
	mesiac int,
	generovane date,
	mesiacPripus int,
	rokPripus int
)
go

create table CM_InterbullHol
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	Krajina nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	Číslo nvarchar(14),
	Meno nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH mlieko] float,
	[PH tuk] float,
	[PH bielkovina] float
)
go

create table CR_KUMP_CHMlD_MES_1
(
	CISTELATA varchar(14),
	CHOVATEL varchar(14),
	tela_datnar date,
	tela_pohl varchar(2),
	tel_plemSklad varchar(45),
	Matka varchar(14),
	por_lakt varchar(14),
	Otec varchar(14),
	O_LinReg varchar(9),
	O_meno varchar(50),
	Hmot_nar decimal(18),
	Prieb_porodu varchar(14),
	Por_ins int,
	Datum_ins date,
	Znak_Tel varchar(2),
	Prip_byk varchar(14),
	Dat_OcOtel date,
	tel_vaha120 int,
	tel_zp120 int,
	tel_rp120 varchar(10),
	tel_vaha210 int,
	tel_zp210 int,
	tel_rp210 varchar(10),
	tel_vaha365 int,
	tel_zp365 int,
	tel_rp365 varchar(10),
	tel_vaha500 int,
	tel_zp500 int,
	tel_rp500 varchar(10),
	PH210 float,
	vazenie_OD date,
	vazenie_DO date,
	idr bigint,
	mesiac int,
	rok int,
	generovane datetime,
	PORPREBLAK int
)
go

create index idx_mesiac_rok_kump
	on CR_KUMP_CHMlD_MES_1 (mesiac, rok, CHOVATEL, generovane)
go

create index idx_chovatel
	on CR_KUMP_CHMlD_MES_1 (CHOVATEL)
go

create table PM_PrasniceOpr
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Prasnica_farma varchar(5),
	Datum_oprasenia date not null,
	Poradie_vrhu float,
	Kod_charvrh varchar(1) not null
		constraint FK_PM_PrasniceOpr_PC_Charvrhu
			references PC_Charvrhu,
	Kod_VyV varchar(1) not null
		constraint FK_PM_PrasniceOpr_PC_VyrVrh
			references PC_VyrVrh,
	Plemeno_vrhu varchar(8) not null,
	Vsetky_nar float,
	Zivo_nar float,
	Defekt_nar float,
	Datum_odstavu date,
	Dochov float,
	Hmotnost_vrhu float,
	Medzidobie float,
	Priemer_vsetky float,
	Priemer_zive float,
	Priemer_dochovane float,
	Priemer_21 float,
	Zdroj_dat varchar(1),
	constraint PK_PM_PrasniceOpr
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_oprasenia),
	constraint FK_PM_PrasniceOpr_PM_PotomsPev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_oprasenia) references PM_PotomsPev,
	constraint FK_PM_PrasniceOpr_PM_PrasnicePev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) references PM_PrasnicePev
)
go

create table PM_VJHpev
(
	Rok_testacie varchar(4) not null,
	Stanica_VJH varchar(2) not null,
	Cislo_skupiny varchar(3) not null,
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Datum_narodenia date not null,
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Plemeno_KU varchar(8) not null
		constraint FK_PM_VJHpev_PC_StHybZak
			references PC_StHybZak,
	Datum_prijmu date,
	Pocet_potomkov float,
	Prirastok float,
	VSZ float,
	ME float,
	MLD float,
	Stehno float,
	CMC float,
	Vyska_slaniny float,
	JDT float,
	Datum_testacie date,
	Napocitana_kancovi bit,
	Zdroj_dat varchar(1),
	constraint PK_PM_VJHpev
		primary key (Rok_testacie, Stanica_VJH, Cislo_skupiny),
	constraint FK_PM_VJHpev_PM_PrasniceOpr
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia) references PM_PrasniceOpr,
	constraint FK_PM_VJHpev_PM_PrasniceVJH
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Plemeno_KU) references PM_PrasniceVJH,
	constraint FK_PM_VJHpev_PM_KanceVJH
		foreign key (Linia_kanca, Register_kanca, Plemeno_KU) references PM_KanceVJH
)
go

create index IDX_PM_VJHPev
	on PM_VJHpev (Zdroj_dat)
go

create table PM_VJHpoh
(
	Rok_testacie varchar(4) not null,
	Stanica_VJH varchar(2) not null,
	Cislo_skupiny varchar(3) not null,
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Datum_narodenia date not null,
	Usne_cislo varchar(7) not null,
	Kod_kategorie varchar(1) not null
		constraint FK_PM_VJHpoh_PC_KategOs
			references PC_KategOs,
	Kod_vyrVJH varchar(2) not null
		constraint FK_PM_VJHpoh_PC_VyradVJH
			references PC_VyradVJH,
	Hmotnost_prijmu float,
	Datum_porazky date,
	hZ float,
	hMT float,
	hMS float,
	hKrk float,
	hKotl float,
	hPlece float,
	hStehno float,
	MLD float,
	JDT float,
	Vyska_slaniny1 float,
	Vyska_slaniny2 float,
	Vyska_slaniny3 float,
	Farba float,
	PH float,
	NalezPSJ varchar(3),
	FOM float,
	trFOM varchar(1),
	Zdroj_dat varchar(1),
	constraint PK_PM_VJHpoh
		primary key (Rok_testacie, Stanica_VJH, Cislo_skupiny, Kod_kategorie),
	constraint FK_PM_VJHpoh_PM_VJHpev
		foreign key (Rok_testacie, Stanica_VJH, Cislo_skupiny) references PM_VJHpev
)
go

create index IDX_PM_VJHPoh
	on PM_VJHpoh (Zdroj_dat)
go

create index IDX_PM_PrasniceOpr
	on PM_PrasniceOpr (Zdroj_dat)
go

create table ER_HeliosRiadokFaktury
(
	IDR int identity
		constraint PK_ER_HeliosRiadokFaktury
			primary key,
	Chov varchar(9) not null,
	Faktura varchar(10) not null,
	Pocet int not null,
	Datum varchar(6) not null,
	Produkt varchar(5) not null,
	ProduktNazov varchar(255) not null,
	JcBezDane decimal(10,4) constraint DF_ER_HeliosRiadokFaktury default 0 not null,
	Konzulent varchar(6) not null,
	CisloZamestnanca varchar(6) not null,
	Region varchar(2) not null,
	PodnikNazov varchar(255) not null,
	Ico varchar(8),
	OrgHelios int
)
go

create index ER_HeliosRiadokFaktury_CHOV_PRODUKT_FAKTURA
	on ER_HeliosRiadokFaktury (Chov, Produkt, Faktura)
go

create table CR_KUMP_CHK_MES_1
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9) not null,
	krav_datnar date,
	krav_otec varchar(7),
	krav_TYPPLEM varchar(3),
	krav_plem varchar(138),
	tel_plem varchar(138),
	krav_MM varchar(15),
	tel_otec varchar(7),
	cistela varchar(14),
	tel_datnar date,
	tel_hmot float,
	krav_hmot float,
	krav_PL int,
	tel_pohl varchar(2),
	tel_PRIEBPOR varchar(1),
	ins_IDAIN date,
	ins_IVYSE varchar(1),
	ins_BYK varchar(7),
	krav_por_ins int,
	krav_dniodot int,
	krav_vek_rok int,
	krav_vek_dni int,
	tel_vaha120 int,
	tel_zp120 int,
	tel_rp120 varchar(1),
	tel_vaha210 int,
	tel_zp210 int,
	tel_rp210 varchar(1),
	tel_vaha365 int,
	tel_zp365 int,
	tel_rp365 varchar(1),
	tel_vaha500 int,
	tel_zp500 int,
	tel_rp500 varchar(1),
	DOVVYR varchar(2),
	DATVYR date,
	mesiac int,
	rok int,
	krav_datocotel date,
	krav_porlakt int,
	krav_otec_usc varchar(14),
	tel_otec_usc varchar(14),
	krav_PH210 float,
	generovane datetime,
	vek_krav_vdnoch int,
	znak_vyr varchar(1)
)
go

create index Idx_chov
	on CR_KUMP_CHK_MES_1 (CHOVATEL)
go

create index idx_Ciskravy
	on CR_KUMP_CHK_MES_1 (CISKRAVY)
go

create index idx_mesiac_rok_kump
	on CR_KUMP_CHK_MES_1 (mesiac, rok, CHOVATEL, generovane)
go

create table HIST_NM_InsemTechnik
(
	id int identity
		primary key,
	id_insemTechnik int,
	id_kontaktnaOsoba varchar(5),
	id_insemStredisko int,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10)
)
go

create table HIST_NM_PODNIK
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	NAZOV varchar(70),
	NAZOV2 varchar(30),
	NAZOVSKR varchar(25),
	ICO varchar(10),
	DIC varchar(10),
	DURAD varchar(3),
	IC_DPH varchar(12),
	ZRUS varchar(1),
	KOBEC varchar(6),
	FSEKTOR varchar(2),
	ULICA varchar(30),
	OBEC varchar(40),
	PCISLO varchar(10),
	DPOSTA varchar(40),
	PSC varchar(5),
	GISX varchar(6),
	GISY varchar(6),
	TELEFON varchar(15),
	FAX varchar(15),
	EMAIL varchar(30),
	QPLATBY varchar(1),
	KrOkr as [Kraj]+[okres],
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	vTazkostiach bit not null,
	narokNaDotacie bit not null,
	ID_KONATEL int,
	REGION varchar(2),
	oficMeno varchar(255),
	oficUlica varchar(30),
	oficCislo varchar(20),
	oficMesto varchar(100),
	oficPsc varchar(10)
)
go

create table CM_InterbullHolSB
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	[Krajina registrácie býka] nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	Číslo nvarchar(14),
	Meno nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH Somatické bunky] float,
	[PH Mastitída] float
)
go

create table temp_CM_Mocovina
(
	CIS_KRAVY nvarchar(14),
	CHOV varchar(10),
	DATROZB date,
	LAKTACE float,
	KG_MLEKA float,
	TUK float,
	MOCOV float,
	BIL float,
	SOM_BUN float,
	LAKTACERep float,
	id bigint
)
go

create table Roc_MLHD_Tab_23A_Opr
(
	KRAJ varchar(1),
	OKRES varchar(2),
	PODNIK varchar(3),
	Okres_nazov varchar(30),
	Por_podniku varchar(5),
	Sidlo varchar(30),
	predstavitel_1 varchar(100),
	funkcia_1 varchar(50),
	predstavitel_2 varchar(100),
	funkcia_2 varchar(50),
	stav_krav_1 varchar(5),
	stav_krav_2 varchar(5),
	vyr_kravy varchar(5),
	zar_prvostok varchar(5),
	nar_teliat varchar(5),
	pr_vek_rok int,
	pr_vek_mesiac int,
	priem_lakt float,
	rok varchar(4)
)
go

create table CM_Dlhovekost_old
(
	USCISLO varchar(15),
	MENO varchar(40),
	LIN varchar(3),
	REG int,
	KRAJPOV varchar(40),
	POCVYR int,
	POCET int,
	SPOLAHRPH float,
	RPH float,
	PLEMS varchar(2)
)
go

create table CP_HTD
(
	CISCHOVU varchar(9) not null,
	DATKONTR date not null,
	PORLAK varchar(2) not null,
	POCET int not null,
	PORADIE int not null,
	PLEM varchar(1) not null,
	constraint PK_CP_HTD
		primary key (CISCHOVU, DATKONTR, PORLAK, PLEM)
)
go

create index IX_CP_HTD_PLEM
	on CP_HTD (PLEM)
go

create table CM_InterbullSim
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	[Krajina registrácie býka] nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	Číslo nvarchar(14),
	Meno nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH mlieko] float,
	[PH tuk] float,
	[PH bielkovina] float
)
go

create table SM_SpojChov
(
	chov varchar(9) not null,
	spchov varchar(9) not null
)
go

create index idx_chov
	on SM_SpojChov (chov)
go

create table PM_PovKN
(
	Linia_kanca varchar(4) not null,
	Register_kanca varchar(5) not null,
	Povod_kraj varchar(1),
	Povod_okres varchar(2),
	Povod_podnik varchar(3),
	Povod_chov varchar(3),
	Povod_matka varchar(5),
	Povod_usCislo varchar(7),
	Datum_narodenia date,
	Otec_linia varchar(4) not null,
	Otec_register varchar(5) not null,
	Matka_kraj varchar(1) not null,
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(3) not null,
	Matka_matka varchar(5) not null,
	constraint PK_PM_PovKN
		primary key (Linia_kanca, Register_kanca),
	constraint FK_PM_PovKN_PM_Kance
		foreign key (Linia_kanca, Register_kanca) references PM_Kance
)
go

create table CC_DovodyVyradenia
(
	DOVVYR varchar(2) not null,
	TEXTVYR varchar(45)
)
go

create table CP_StadaPodlaVeku
(
	vek int,
	l1 int,
	l2 int,
	l3 int,
	l4 int,
	l5 int,
	l6 int,
	l7 int,
	l8 int,
	l9 int,
	l10 int,
	spoluZaRok int,
	chovatel varchar(9)
)
go

create table temp_april
(
	CHOV nvarchar(255),
	DATZAPIS nvarchar(255),
	CISKRAVY nvarchar(255),
	MLIEKO nvarchar(255),
	TUK nvarchar(255),
	BIELKOVINA nvarchar(255),
	LAKTOZA nvarchar(255),
	SOMATBUNKY nvarchar(255),
	DATKONTR nvarchar(255),
	DENDOBA nvarchar(255),
	INTRVL nvarchar(255)
)
go

create table CM_InterbullSimSB
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	[Krajina registrácie býka] nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	[Číslo býka] nvarchar(14),
	[Meno býka] nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH Somatické bunky] float,
	[PH Mastitída] float
)
go

create table Roc_MLHD_Tab_11
(
	Expr1 varchar(30),
	rozmedzie_od varchar(30),
	rozmedzie_do varchar(30),
	pocet int,
	pocet100 int,
	mlieko100 int,
	pBielko100 float,
	pTuk100 float,
	pocet200 int,
	mlieko200 int,
	pBielk200 float,
	pTuk200 float,
	pocet305 int,
	mlieko305 int,
	pTuk305 float,
	pBielk305 float,
	rok int,
	Por int
)
go

create table PM_PovPR
(
	Chovatel_kraj varchar(1) not null,
	Chovatel_okres varchar(2) not null,
	Chovatel_podnik varchar(3) not null,
	Chovatel_chov varchar(3) not null,
	Prasnica varchar(5) not null,
	Povod_kraj varchar(1),
	Povod_okres varchar(2),
	Povod_podnik varchar(3),
	Povod_chov varchar(3),
	Povod_matka varchar(5),
	Povod_usCislo varchar(7),
	Datum_narodenia date,
	Otec_linia varchar(4) not null,
	Otec_register varchar(5) not null,
	Matka_kraj varchar(1) not null,
	Matka_okres varchar(2) not null,
	Matka_podnik varchar(3) not null,
	Matka_chov varchar(3) not null,
	Matka_matka varchar(5) not null,
	constraint PK_PM_PovPR
		primary key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica),
	constraint FK_PM_PovPR_PM_PrasnicePev
		foreign key (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) references PM_PrasnicePev
)
go

create table ER_HeliosRiadokFakturyZoot
(
	IDR int identity
		constraint PK_ER_HeliosRiadokFakturyZoot
			primary key,
	Zootechnik varchar(6) not null,
	perc float not null,
	ID_Faktura int not null
		constraint FK_ER_HeliosRiadokFakturyZoot
			references ER_HeliosRiadokFaktury
				on delete cascade
)
go

create index ER_HeliosRiadokFakturyZoot_ID_FAKTURA
	on ER_HeliosRiadokFakturyZoot (ID_Faktura)
go

create table CC_Farby
(
	KODF varchar(2) not null,
	NAZF varchar(20)
)
go

create table NC_PIGLOG
(
	KOD varchar(1) not null,
	NAZOV varchar(128)
)
go

create table SP_Rocenka_MlKraje
(
	Zameranie varchar(1),
	id int,
	Kraj varchar(256),
	Plemeno varchar(256),
	StupenKU varchar(256),
	Vsetky_Lakt int,
	NormLakt_Mlieko int,
	NormLakt_Tuk int,
	NormLakt_Biel int,
	NormLakt_Lakt int,
	Mlieko_lit decimal(5,2),
	Tuk_kg decimal(5,2),
	Tuk_perc decimal(5,2),
	Bielk_kg decimal(5,2),
	Bielk_perc decimal(5,2),
	Lakt_kg decimal(5,2),
	Lakt_perc decimal(5,2),
	StupenKUNazov varchar(256),
	KrajNazov varchar(256),
	Rok varchar(4)
)
go

create table test
(
	col1 int identity
)
go

create table CM_ZSTDM
(
	CISKRAVY varchar(14),
	OTEC varchar(15),
	MATKA varchar(15),
	PORLAK varchar(2),
	ZMENA varchar(2),
	DATUMN date,
	DATOTEL date,
	DATKONTR date,
	CISCHOVU varchar(9),
	MLIEKO float,
	TUK float,
	TUKP float,
	BIELK float,
	BIELKP float,
	SB float,
	SCS float,
	DNI float,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYP varchar(2)
)
go

create index IDX_CM_ZSTDM_TYP
	on CM_ZSTDM (TYP)
go

create index IDX_CM_ZSTDM_ciskravy_porlak_datkontr
	on CM_ZSTDM (CISKRAVY, PORLAK, DATKONTR)
go

create index IDX_CM_ZSTDM_CISKRAVY
	on CM_ZSTDM (CISKRAVY)
go

create index IDX_CM_ZSTDM_otec_cischovu
	on CM_ZSTDM (OTEC, CISCHOVU)
go

create index IDX_CM_ZSTDM_ciskravy_datkontr
	on CM_ZSTDM (CISKRAVY, DATKONTR)
go

create index IDX_CM_ZSTDM_DATKONTR
	on CM_ZSTDM (DATKONTR)
go

create table HIST_NC_PIGLOG
(
	KOD varchar(1),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table HIST_NM_PracSPU
(
	STRED varchar(2),
	IDPAM varchar(5) not null,
	OSOBA varchar(30),
	FUNKCIA varchar(32),
	NADRIAD varchar(5),
	KONZUL varchar(2),
	PZ varchar(2),
	PIGLOG varchar(7),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	USERNAME varchar(30),
	VEDUCI bit,
	KONZULENT_HD bit,
	KONZULENT_OS bit,
	KONZULENT_OV bit,
	KONZULENT_KO bit,
	KONZULENT_HY bit,
	KONZULENT_PS bit,
	ZOOTECHNIK_HD bit,
	ZOOTECHNIK_OS bit,
	ZOOTECHNIK_OV bit,
	ZOOTECHNIK_KO bit,
	ZOOTECHNIK_HY bit,
	ZOOTECHNIK_PS bit
)
go

create table SC_PodKrvi
(
	PERCPLEM1 float,
	PERCPLEM2 float,
	PERCPLEM3 float,
	PERCPLEM4 float,
	CISKOD varchar(2) not null
		constraint PK_SC_PodKrvi
			primary key
)
go

create table CR_KUMP_CHK_MES_sumar
(
	chov varchar(9),
	krav_spolu int,
	Nad420odOtel int,
	vek_krav_rok varchar(10),
	vek_1_otel varchar(10),
	medziobdobie varchar(5),
	porLakt float,
	tel_nar varchar(10),
	tel_mrt_nar varchar(3),
	tel_zmetanie varchar(3),
	dni_zp120 varchar(6),
	dni_zp210 varchar(6),
	dni_zp365 varchar(6),
	dni_zp500 varchar(10),
	rok_tel_nar varchar(10),
	rok_tel_mrt_nar varchar(3),
	rok_tel_zmetanie varchar(3),
	CUK_medziobodie varchar(5),
	CUK_tel_nar varchar(10),
	CUK_tel_mrt_nar varchar(3),
	CUK_tel_zmetanie varchar(3),
	CUK_120dni float,
	CUK_210dni float,
	CUK_365dni float,
	CUK_500dni float,
	mesiac int,
	rok int,
	generovane datetime,
	standart_potomok_ZN int,
	krav_vyr int
)
go

create table Roc_MLHD_Tab_12
(
	chov varchar(9),
	pocet_prvostok_na_chove int,
	okres varchar(100),
	podnik varchar(100),
	mastal varchar(100),
	char_ust varchar(30),
	plem varchar(10),
	pocet_N_lakt float,
	lakt_dni float,
	mlieko float,
	tuk_P float,
	tuk float,
	bielk_P float,
	bielk float,
	vek_otel varchar(10),
	plemeno varchar(5),
	rok int,
	B_M varchar(2)
)
go

create table Ainbreeding
(
	uscislo varchar(14),
	otec varchar(14),
	matka varchar(14),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	[koef_pribuznosti] bigint,
	IB_uscislo varchar(19),
	IB_otec varchar(19),
	IB_matka varchar(19),
	IB_datnar varchar(9),
	IB_meno varchar(40),
	IB_verifikacia varchar(2),
	IB_organiz varchar(35),
	koefpribuz float
)
go

create index IX_Ainbreeding_uscislo
	on Ainbreeding (uscislo)
go

create table Roc_MLHD2016_ZoznamTabuliek
(
	ID int not null
		primary key,
	NAZOV varchar(200),
	POR int,
	VYR varchar(1),
	TAB varchar(2)
)
go

create table SC_PrPGenot
(
	GENOTYP varchar(7) not null
		constraint PK_SC_PrPGenot
			primary key,
	RIZ_SKUP varchar(4)
)
go

create table Ainbreeding_Zhoda
(
	uscislo varchar(14),
	spolocny_predok varchar(14),
	generacia int,
	koefpribuz float,
	ukoho varchar(1)
)
go

create index IX_Ainbreeding_Zhoda_spolocny_predok
	on Ainbreeding_Zhoda (spolocny_predok)
go

create index IX_Ainbreeding_Zhoda
	on Ainbreeding_Zhoda (uscislo)
go

create table CC_Linie
(
	lin varchar(3) not null
		constraint PK_CC_Linie
			primary key,
	nazlin varchar(20)
)
go

create table CR_KURHD_MesUzavCH_1
(
	chov varchar(9),
	rok int,
	mesiac int,
	dekada int,
	CISKRAVY varchar(14),
	PORPREBLAK int,
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI decimal(7),
	PERSPOL decimal(7,2),
	DATNAR date,
	PLEMKR varchar(70),
	DATOT date,
	PK int,
	ML1 decimal(5,2),
	ZN1 varchar(1),
	ML2 decimal(5,2),
	ZN2 varchar(1),
	ML3 decimal(5,2),
	ZN3 varchar(1),
	ML4 decimal(5,2),
	ZN4 varchar(1),
	ML5 decimal(5,2),
	ZN5 varchar(1),
	ML6 decimal(5,2),
	ZN6 varchar(1),
	ML7 decimal(5,2),
	ZN7 varchar(1),
	ML8 decimal(5,2),
	ZN8 varchar(1),
	ML9 decimal(5,2),
	ZN9 varchar(1),
	ML10 decimal(5,2),
	ZN10 varchar(1),
	ML11 decimal(5,2),
	ZN11 varchar(1),
	ML12 decimal(5,2),
	ZN12 varchar(1),
	PTUKU1 decimal(4,2),
	PBIELK1 decimal(4,2),
	PTB1 decimal(3,1),
	SB1 int,
	PTUKU2 decimal(3,2),
	PBIELK2 decimal(3,2),
	PTB2 decimal(3,2),
	SB2 int,
	LAKTDNI int,
	UDNI int,
	NAPML decimal(7,2),
	NAPTK decimal(7,2),
	UPERT decimal(3,2),
	NAPBL decimal(7,2),
	UPERB decimal(4,2),
	PORINS int,
	OLINREG varchar(10),
	DTOTOC date,
	DATINS date,
	OUC varchar(14),
	OTPLEM varchar(70),
	MATKA varchar(14),
	MAPLEM varchar(70),
	INTERVAL int,
	SERVPER int,
	MEDZIOB int,
	OVEKRM varchar(4),
	POHLTEL varchar(2),
	PRIEBPOR int,
	nap_dni int,
	nap_mliekokg int,
	nap_tukper decimal(7,2),
	nap_bielkper decimal(7,2),
	nap_tkg int,
	nap_bkg int,
	DOVVYR varchar(2),
	DATVYR date,
	generovane datetime,
	kontrola datetime,
	SKUPINA varchar(3),
	otec varchar(14)
)
go

create table NC_ZasielanieDat
(
	KOD varchar(1) not null,
	NAZOV varchar(128)
)
go

create table SC_SubLin
(
	CISLIN varchar(4) not null
		constraint PK_SC_SubLin
			primary key,
	NAZLIN varchar(12),
	PLEM varchar(10),
	REP varchar(1),
	PRCISLIN varchar(4),
	PRNAZLIN varchar(12),
	ROKZAL varchar(4)
)
go

create table ER_HeliosDotacie
(
	IDR int identity
		constraint PK_ER_HeliosDotacie
			primary key,
	Chov varchar(9) not null,
	Faktura varchar(10) not null,
	Produkt varchar(5) not null,
	Dotacia decimal(10,2) constraint DF_ER_HeliosDotacie default 0 not null,
	KodUctovania varchar(3) not null,
	Region varchar(2) not null,
	PodnikNazov varchar(255) not null,
	ID_Faktura int
		constraint FK_ER_HeliosRiadokFaktury
			references ER_HeliosRiadokFaktury
				on delete cascade
)
go

create index ER_HeliosDotacie_CHOV_PRODUKT_FAKTURA
	on ER_HeliosDotacie (Chov, Produkt, Faktura)
go

create index ER_HeliosDotacie_ID_FAKTURA
	on ER_HeliosDotacie (ID_Faktura)
go

create table CC_NormyMD
(
	KODPL varchar(1) not null,
	RPOHL varchar(2) not null,
	RVEK float not null,
	HMOTA float,
	HMOTB float,
	constraint PK_CC_NormyMD
		primary key (KODPL, RPOHL, RVEK)
)
go

create table [SP_Rocenka_MlStER-Delete]
(
	Zameranie varchar(1),
	id int,
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	Vsetky_Lakt int,
	NormLakt_Mlieko int,
	NormLakt_Tuk int,
	NormLakt_Biel int,
	NormLakt_Lakt int,
	Mlieko_lit decimal(5,2),
	Tuk_kg decimal(5,2),
	Tuk_perc decimal(5,2),
	Bielk_kg decimal(5,2),
	Bielk_perc decimal(5,2),
	Lakt_kg decimal(5,2),
	Lakt_perc decimal(5,2),
	SposVykKU varchar(25)
)
go

create table GM_MLCAPNT
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZSTCHOV varchar(30),
	NAZPODCHOV varchar(30),
	DCHMENO varchar(30),
	DCHADR varchar(30),
	LUC varchar(5),
	PUC varchar(6),
	JEDCIS varchar(8) not null,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEM varchar(10),
	KODPLE varchar(2),
	PLEMENO varchar(25),
	GENPOD varchar(24),
	UZITZAM varchar(1),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	NAZB varchar(12),
	ROH varchar(4),
	DATNAR date,
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	PREDSTNAZ varchar(30),
	PRDCHMENO varchar(30),
	PRDCHADR varchar(30),
	DATNT date,
	KATCIS float,
	PZIVHMOTNT float,
	SURVRH varchar(1),
	KDPrir float,
	HVPORPR varchar(3),
	PATERN varchar(7),
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BINTRASTU varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	CENABON float,
	KODPK varchar(2),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTROH varchar(4),
	OTNAZLIN varchar(12),
	OTSURV varchar(1),
	OTPK varchar(2),
	OTDATNAR date,
	OTKROKRNAR varchar(3),
	OTPODNIKNA varchar(3),
	OTSTADONAR varchar(3),
	OTNAZPODNA varchar(30),
	OTNAZSTNAR varchar(30),
	OTTRIED varchar(2),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MAROH varchar(4),
	MANAZLIN varchar(12),
	MASURV varchar(1),
	MAPK varchar(2),
	MADATNAR date,
	MAMUROK varchar(4),
	MAMAXUL varchar(1),
	MAHVPORML varchar(3),
	MAMLIE float,
	MATUK float,
	MATPER float,
	MABIEL float,
	MABPER float,
	MALAK float,
	MALPER float,
	MATRIED varchar(2),
	MAINREPR float,
	MMROH varchar(4),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMNAZLIN varchar(12),
	MMPK varchar(2),
	MMMUR varchar(4),
	MMMUL varchar(1),
	MMMLIE float,
	MMTUK float,
	MMTPER float,
	MMBIEL float,
	MMBPER float,
	MMLAK float,
	MMLPER float,
	MMTRIED varchar(2),
	OMROH varchar(4),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMNAZLIN varchar(12),
	OMPK varchar(2),
	OMKROKRNAR varchar(3),
	OMPODNIKNA varchar(3),
	OMSTADONAR varchar(3),
	OMNAZSTNAR varchar(30),
	OMTRIED varchar(2),
	MOROH varchar(4),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MONAZLIN varchar(12),
	MOPK varchar(2),
	MOMUR varchar(4),
	MOMUL varchar(1),
	MOMLIE float,
	MOTUK float,
	MOTPER float,
	MOBIEL float,
	MOBPER float,
	MOLAK float,
	MOLPER float,
	MOTRIED varchar(2),
	OOROH varchar(4),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OONAZLIN varchar(12),
	OOPK varchar(2),
	OOKROKRNAR varchar(3),
	OOPODNIKNA varchar(3),
	OOSTADONAR varchar(3),
	OONAZSTNAR varchar(30),
	OOTRIED varchar(2),
	OOKODPK varchar(2),
	POZNAMKA varchar(50),
	VYBER bit not null
)
go

create table HIST_NC_ZasielanieDat
(
	KOD varchar(1),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CP_ZCHMD_Telata
(
	CISTELATA varchar(14),
	CHOVATEL varchar(9),
	DATNAR date,
	POHLAVIE varchar(2),
	PLEMENO varchar(36),
	MATKA varchar(14),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OUC varchar(15),
	HMOTNAR float,
	OBTIAZPOR varchar(1),
	ZLAKTACIE varchar(2),
	HMOT120 float,
	DATUM120 date,
	HMOT210 float,
	DATUM210 date,
	HMOT365 float,
	DATUM365 date,
	HMOT500 float,
	DATUM500 date,
	ZAVER varchar(2)
)
go

create table CR_TMHD_pripust_stvrtR
(
	cistelata varchar(14),
	chov varchar(9),
	datnar date,
	datvaz1 date,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	hmot2 int,
	rp2 varchar(1),
	dp int,
	DatPrip1 date,
	DatPrip2 date,
	ZnakPripus varchar(15),
	rok int,
	mesiac int,
	generovane date,
	mesiacPripus int
)
go

create table SP_Rocenka_Bonit
(
	id int,
	RegStred varchar(256),
	PocChov int,
	PocZvDobeBonit int,
	PocMatJarSpolu int,
	ZarDoTried_ER int,
	ZarDoTried_EA int,
	ZarDoTried_EB int,
	ZarDoTried_I int,
	ZarDoTried_II int,
	ZarDoTried_X int,
	StavOviecVKU int,
	ZarJarDoMatiek decimal(5,1),
	PocVyrBar int,
	BarPonVKU int,
	PocOviecNaBar decimal(5,1),
	JahPonKChovu_Jahn int,
	JahPonKChovu_Bar int,
	Rok varchar(4)
)
go

create table SC_UzitZam
(
	UZITZST varchar(1) not null
		constraint PK_SC_UzitZam
			primary key,
	POPIS varchar(20)
)
go

create table SP_PLEMSK
(
	PlemSk varchar(5),
	HvPor varchar(3),
	PocJar int,
	HranJar decimal(10,4),
	PocBar int,
	HranBar decimal(10,4),
	Rok int,
	SK varchar(2)
)
go

create table CC_Obtiaznostporodu
(
	KOD varchar(1) not null,
	TEXT varchar(45)
)
go

create table SC_ZemDovoz
(
	KOD varchar(3) not null
		constraint PK_SC_ZemDovoz
			primary key,
	NAZOV varchar(30)
)
go

create table temp_ml1
(
	KOD_MEDZ int
)
go

create table nesprac_Laktacie
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9),
	PORLAK int not null,
	DATOTEL date,
	CHOVOTEL varchar(9),
	CHOVLAKT varchar(9),
	PRIEBPOROD varchar(1),
	POHLAVIE varchar(2),
	ZMENA varchar(2),
	DATUKONL date,
	DATUKNORL date,
	MEDZIOBD float,
	HMOTKR float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKCEL float,
	MLIEKNOR float,
	TUKCEL float,
	TUKNOR float,
	BIELKCEL float,
	BIELKNOR float,
	LAKTOZAC float,
	LAKTOZAN float,
	INDPER float,
	INDLAK float,
	CHARUST varchar(1),
	SPOSOBKU varchar(1),
	MAXLAK varchar(1),
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	LAKT100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float,
	LAKT200 float,
	DATZAPZVK date,
	DATVYBZVK date,
	KOD_DOJ int,
	KOD_MEDZ int,
	rowid bigint
)
go

create table CR_KUMP_CHMlD_MES_22
(
	CISTELATA varchar(14),
	CHOVATEL varchar(14),
	tela_datnar date,
	tela_pohl varchar(2),
	tel_plemSklad varchar(45),
	Matka varchar(14),
	por_lakt varchar(14),
	Otec varchar(14),
	O_LinReg varchar(9),
	O_meno varchar(30),
	Hmot_nar decimal(18),
	Prieb_porodu varchar(14),
	Por_ins int,
	Datum_ins date,
	Znak_Tel varchar(2),
	Prip_byk varchar(14),
	Dat_OcOtel date,
	tel_vaha120 int,
	tel_zp120 int,
	tel_rp120 varchar(10),
	tel_vaha210 int,
	tel_zp210 int,
	tel_rp210 varchar(10),
	tel_vaha365 int,
	tel_zp365 int,
	tel_rp365 varchar(10),
	tel_vaha500 int,
	tel_zp500 int,
	tel_rp500 varchar(10),
	PH210 float,
	vazenie_OD date,
	vazenie_DO date,
	idr bigint,
	mesiac int,
	rok int,
	generovane datetime
)
go

create table NC_TechnologiaUstajnenia
(
	KOD varchar(2) not null,
	NAZOV varchar(128)
)
go

create table temp_ml2
(
	MEDZIOBD float
)
go

create table CR_Zoznam_teliat_SPRAC
(
	ID int identity
		constraint ID
			primary key,
	chov varchar(9) not null,
	rok int not null,
	mesiac int not null,
	dekada int,
	datum_start datetime not null,
	datum_end datetime not null,
	info varchar(200)
)
go

create table nesprac_Naplak
(
	CISKRAVY varchar(14) not null,
	CHOVATEL varchar(9),
	PORLAK int,
	DATOTEL date,
	CHOVOTEL varchar(9),
	CHOVLAKT varchar(9),
	PRIEBPOROD varchar(1),
	POHLAVIE varchar(2),
	ZMENA varchar(2),
	DATUKONL date,
	DATUKNORL date,
	MEDZIOBD float,
	HMOTKR float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKCEL float,
	MLIEKNOR float,
	TUKCEL float,
	TUKNOR float,
	BIELKCEL float,
	BIELKNOR float,
	LAKTOZAC float,
	LAKTOZAN float,
	INDPER float,
	INDLAK float,
	CHARUST varchar(1),
	MAXLAK varchar(1),
	ZNAK varchar(1),
	BEZT float,
	MLIEKO100 float,
	TUK100 float,
	BIELK100 float,
	LAKT100 float,
	MLIEKO200 float,
	TUK200 float,
	BIELK200 float,
	LAKT200 float,
	DATZAPZVK date,
	DATVYBZVK date,
	KOD_DOJ int,
	KOD_MEDZ int,
	rowid bigint
)
go

create table HIST_NC_TechnologiaUstajnenia
(
	KOD varchar(2),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table SP_Rocenka_VKUSt
(
	id int,
	TypPlem varchar(256),
	StupenKU varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	PlemenoStada varchar(256),
	PocBah_Prip int,
	PocBah_PredVyrad int,
	PocBah_Jal int,
	PocBah_Obah int,
	PocNarJahn int,
	PercOplod decimal(5,1),
	PercPlod decimal(5,1),
	PercPlodNaBahn decimal(5,1),
	Osoba varchar(256),
	Osoba1 varchar(256),
	Osoba2 varchar(256),
	Osoba3 varchar(256),
	Osoba4 varchar(256),
	StupenKUNazov varchar(256),
	Rok varchar(4)
)
go

create table CM_DACS_EBVbullallSim
(
	ID int identity
		primary key,
	Created date,
	isoIdBull nvarchar(15),
	nameBull nvarchar(12),
	birthYear numeric(4),
	ZWMilkkg1L numeric(6),
	ZWMilkkg2L numeric(6),
	ZWMilkkg3L numeric(6),
	ZWMilkkg1az3L numeric(6),
	reliabilityZWMilkkg numeric(2),
	ZWFatkg1L numeric(7,1),
	ZWFatkg2L numeric(7,1),
	ZWFatkg3L numeric(7,1),
	ZWFatkg1az3L numeric(7,1),
	reliabilityZWFatkg numeric(2),
	ZWFatPercent numeric(8,2),
	ZWProteinkg1L numeric(7,1),
	ZWProteinkg2L numeric(7,1),
	ZWProteinkg3L numeric(7,1),
	ZWProteinkg1az3L numeric(7,1),
	reliabilityZWProteinKg numeric(2),
	ZWProteinPercent numeric(8,2),
	Milchwert numeric(7,1),
	reliabilityMilchwert numeric(2),
	avTestDayRecords1stLact numeric(2),
	avTestDayRecords2stLact numeric(2),
	avTestDayRecords3stLact numeric(2),
	daughters1stLact numeric(5),
	daughters2stLact numeric(5),
	daughters3stLact numeric(5),
	maxLactationWithDaughterTdr numeric(2),
	herdsWith1stLactDauNational numeric(5),
	dauInternationalITB_ZWsaRovnaI numeric(5),
	ITB_ZW char(1),
	ZW_persistency numeric(7,1),
	reliablityZW_Persistenz numeric(2)
)
go

create table CC_Pohlavie
(
	KOD varchar(2) not null,
	POPIS varchar(45),
	SKRATKA varchar(3)
)
go

create table NM_InsemSpolUziv
(
	IdUziv int not null,
	IdInsemSpol int not null,
	constraint pk_NM_InsemSpol_Uziv
		primary key (IdUziv, IdInsemSpol)
)
go

create index idx_NM_InsemSpolUziv_IdUziv
	on NM_InsemSpolUziv (IdUziv)
go

create index idx_NM_InsemSpolUziv_IdInsemSpol
	on NM_InsemSpolUziv (IdInsemSpol)
go

create table EC_CISPROD_AGENDA
(
	IDR int identity
		constraint PK_EC_CISPROD_AGENDA
			primary key,
	kod varchar(2) not null,
	Nazov varchar(255) not null
)
go

create table CP_HOL_Laktacie
(
	UsCislo varchar(15) not null,
	PorLakt int,
	DatOtel date,
	PohlTel varchar(2),
	Zmena varchar(2),
	Ukoncena varchar(1),
	Dni float,
	Mlieko decimal(7),
	Tuk decimal(7,2),
	TukPerc decimal(7,2),
	Bielk decimal(7,2),
	BielkPerc decimal(7,2),
	NormDni float,
	NormMlieko float,
	NormTuk decimal(7,2),
	NormTukPer decimal(7,2),
	NormBielk decimal(7,2),
	NormBielPer decimal(7,2)
)
go

create table CC_Porody
(
	KOD varchar(1) not null,
	TEXT varchar(45)
)
go

create table CR_KUHD_MesUzavCH_1x_backup
(
	chovatel varchar(9),
	mesiac int,
	rok int,
	dekada int,
	RKO1ML decimal(7,2),
	RKO1KS int,
	RKO12ML decimal(7,2),
	RKO1KSL1 int,
	RKO1MLL1 decimal(7,2),
	RKO12KSL1 int,
	RKO12MLL1 decimal(7,2),
	MKO1KS int,
	MKO1ML decimal(7,2),
	MKO12KS int,
	MKO12ML decimal(7,2),
	POCKRAVZAP int,
	POCKRAVKONT int,
	POCKRAVKONTL1 int,
	POCKRAVZAPL1 int,
	MLIEKOCELKOM int,
	MLIEKOCELKOML1 decimal(7,2),
	MLIEKOPRIEMERZ decimal(7,2),
	MLIEKOPRIEMERK decimal(7,2),
	TUKPER decimal(7,2),
	TUKPERL1 decimal(7,2),
	BIELKPER decimal(7,2),
	BIELKPERL1 decimal(7,2),
	SB decimal(7,2),
	SBL1 decimal(7,2),
	POMERTB11V decimal(7,2),
	POMERTB15V decimal(7,2),
	POMERTBOKV decimal(7,2),
	POMERTB11VL1 decimal(7,2),
	POMERTB15VL1 decimal(7,2),
	POMERTBOKVL1 decimal(7,2),
	POCKRAV100 int,
	MLIEKO100 decimal(7,2),
	TUK100 decimal(7,2),
	TUK100PER decimal(7,2),
	BIELK100 decimal(7,2),
	BIELK100PER decimal(7,2),
	TB100 decimal(7,2),
	TB100PER decimal(7,2),
	POCKRAV200 int,
	MLIEKO200 decimal(7,2),
	TUK200 decimal(7,2),
	TUK200PER decimal(7,2),
	BIELK200 decimal(7,2),
	BIELK200PER decimal(7,2),
	TB200 decimal(7,2),
	TB200PER decimal(7,2),
	POCKRAV300 int,
	MLIEKO300 decimal(7,2),
	TUK300 decimal(7,2),
	TUK300PER decimal(7,2),
	BIELK300 decimal(7,2),
	BIELK300PER decimal(7,2),
	TB300 decimal(7,2),
	TB300PER decimal(7,2),
	POCKRAV100L1 int,
	MLIEKO100L1 decimal(7,2),
	TUK100L1 decimal(7,2),
	TUK100PERL1 decimal(7,2),
	BIELK100L1 decimal(7,2),
	BIELK100PERL1 decimal(7,2),
	TB100L1 decimal(7,2),
	TB100L1PER decimal(7,2),
	POCKRAV200L1 int,
	MLIEKO200L1 decimal(7,2),
	TUK200L1 decimal(7,2),
	TUK200PERL1 decimal(7,2),
	BIELK200L1 decimal(7,2),
	BIELK200PERL1 decimal(7,2),
	TB200L1 decimal(7,2),
	TB200PERL1 decimal(7,2),
	POCKARV300L1 int,
	MLIEKO300L1 decimal(7,2),
	TUK300L1 decimal(7,2),
	TUK300PERL1 decimal(7,2),
	BIELK300L1 decimal(7,2),
	BIELK300PERL1 decimal(7,2),
	TB300L1 decimal(7,2),
	TB300PERL1 decimal(7,2),
	POCINS1 int,
	POCINS2 int,
	POCINS3 int,
	POCINS4VIAC int,
	POCTELNYCH int,
	POCINTR int,
	POCSERV int,
	POCMEDZ int,
	MKO1KSL1 int,
	MKO1MLL1 decimal(7,2),
	MKO12KSL1 int,
	MKO12MLL1 decimal(7,2),
	MLIEKOPRIEMERZL1 decimal(7,2),
	MLIEKOPRIEMERKL1 decimal(7,2),
	generovane datetime,
	RKO12KS int
)
go

create table NC_PristupPLIS
(
	KOD varchar(1) not null,
	NAZOV varchar(128)
)
go

create table CR_Rozdiel_Tuku_V_PrebPorLak
(
	ciskravy varchar(14),
	chov varchar(9),
	porpreblak varchar(2),
	laktdni float,
	perctuku float,
	sdatkontr date,
	krav_plem varchar(25),
	rozdiely float,
	datum_generovania date
)
go

create table CM_DACS_EBVcowallSVKSim
(
	ID int identity
		primary key,
	Created date,
	isoIdCow nvarchar(15),
	herdCode numeric(12),
	lastHerdCode nvarchar(9),
	birthYear numeric(4),
	ZWMilkkg1L numeric(6),
	ZWMilkkg2L numeric(6),
	ZWMilkkg3L numeric(6),
	ZWMilkkg1az3L numeric(6),
	reliabilityZWMilkkg numeric(2),
	ZWFatkg1L numeric(7,1),
	ZWFatkg2L numeric(7,1),
	ZWFatkg3L numeric(7,1),
	ZWFatkg1az3L numeric(7,1),
	reliabilityZWFatkg numeric(2),
	ZWFatPercent numeric(8,2),
	ZWProteinkg1L numeric(7,1),
	ZWProteinkg2L numeric(7,1),
	ZWProteinkg3L numeric(7,1),
	ZWProteinkg1az3L numeric(7,1),
	reliabilityZWProteinKg numeric(2),
	ZWProteinPercent numeric(8,2),
	Milchwert numeric(7,1),
	reliabilityMilchwert numeric(2),
	numTestDayRecords1stLact numeric(2),
	numTestDayRecords2stLact numeric(2),
	numTestDayRecords3stLact numeric(2),
	ZW_persistency numeric(7,1),
	reliablityZW_Persistenz numeric(2)
)
go

create table CC_TechnologiaIns
(
	CTCHL varchar(2) not null,
	NATCH varchar(20)
)
go

create table SP_MLPLEM
(
	Plem varchar(8),
	STKU varchar(3),
	JESD varchar(2),
	POCSTAD int,
	SMNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	POCETMNL int,
	POCETTNL int,
	POCETBNL int,
	POCETLNL int,
	POCETVS int,
	Rok int
)
go

create table CP_PIN_KRAVTDM
(
	KRAVA varchar(15),
	POZN varchar(2),
	DATUMN date,
	ROK int,
	SIRE varchar(15),
	DAM varchar(15),
	BREEDG varchar(2),
	PLEMENO varchar(30),
	NH int,
	ND int,
	NR int,
	N int,
	MLIEKO int,
	TUK int,
	TUKP decimal(3,2),
	BIELK int,
	BIELKP decimal(3,2),
	SPI int,
	M305 decimal(6,1),
	RPHM int,
	M100 decimal(7,1),
	MREL decimal(5,4),
	T305 decimal(7,2),
	RPHT int,
	T100 decimal(7,2),
	TP decimal(7,2),
	TPERC decimal(7,2),
	TREL decimal(5,4),
	B305 decimal(7,2),
	RPHB int,
	B100 decimal(7,2),
	BP decimal(5,2),
	BPERC decimal(5,2),
	BREL decimal(5,4),
	REL decimal(5,4)
)
go

create table HIST_NC_PristupPLIS
(
	KOD varchar(1),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NC_CisProdK
(
	KOD1 varchar(1) not null,
	KOD2 varchar(2) not null,
	KOD3 varchar(2) not null,
	SKUPINA varchar(65),
	PODSKUP2 varchar(35),
	PODSKUP3 varchar(31),
	SKUP_SKR varchar(40),
	MERJED varchar(12),
	JEDCENA float,
	CENASDOT float,
	DOTACIA bit,
	PERDOT float,
	POZNAMKA varchar(30),
	UCET varchar(7),
	FAKKDE varchar(1),
	PRODUKT as ([KOD1]+[KOD2])+[KOD3]
		constraint PK_NC_CisProdK_1
			primary key
		constraint FK_NC_CisProdK_NC_CisProdK
			references NC_CisProdK
)
go

create table CR_KUMP_CHMlD_MES_sumar
(
	CHOVATEL varchar(14),
	jalovicky int,
	jal_pocet120 int,
	jal_vaha120 int,
	jal_zp120 int,
	jal_pocet210 int,
	jal_vaha210 int,
	jal_zp210 int,
	jal_pocet365 int,
	jal_vaha365 int,
	jal_zp365 int,
	jal_pocet500 int,
	jal_vaha500 int,
	jal_zp500 int,
	bycky int,
	byc_pocet120 int,
	byc_vaha120 int,
	byc_zp120 int,
	byc_pocet210 int,
	byc_vaha210 int,
	byc_zp210 int,
	byc_pocet365 int,
	byc_vaha365 int,
	byc_zp365 int,
	byc_pocet500 int,
	byc_vaha500 int,
	byc_zp500 int,
	spolu int,
	spolu_pocet120 int,
	spolu_vaha120 int,
	spolu_zp120 int,
	spolu_pocet210 int,
	spolu_vaha210 int,
	spolu_zp210 int,
	spolu_pocet365 int,
	spolu_vaha365 int,
	spolu_zp365 int,
	spolu_pocet500 int,
	spolu_vaha500 int,
	spolu_zp500 int,
	pocet_nar int,
	pocet_odchov int,
	mesiac int,
	rok int,
	generovane datetime
)
go

create table temp_506502014
(
	F1 nvarchar(255)
)
go

create table CR_Rozdiel_Tuku_V_PrebPorLak_prehlad_chov
(
	chov varchar(9),
	Pocet_krav_s_opakovanim int,
	kravyNaChove_11Zmena int,
	percentoZchovu float,
	datum_generovania date
)
go

create table EC_CISPROD_PODAGENDA
(
	IDR int identity
		constraint PK_EC_CISPROD_PODAGENDA
			primary key,
	kod varchar(7) not null,
	Nazov varchar(255) not null,
	ID_Agenda int not null
		constraint FK_EC_CISPROD_PODAGENDA
			references EC_CISPROD_AGENDA
)
go

create table EC_CISPROD
(
	KOD1 varchar(1),
	KOD2 varchar(2),
	KOD3 varchar(2),
	SKUPINA varchar(65),
	PODSKUP2 varchar(35),
	PODSKUP3 varchar(31),
	SKUP_SKR varchar(40),
	MERJED varchar(12),
	JEDCENA float,
	CENASDOT float,
	CENASDOT2 float,
	DOTACIA bit not null,
	PERDOT float,
	POZNAMKA varchar(30),
	UCET varchar(7),
	FAKKDE varchar(1),
	KOEFDOT float,
	CENASDOTP float,
	POCETDO float,
	PODAGENDA_ID int
		constraint FK_EC_CISPROD_EC_CISPROD_PODAGENDA
			references EC_CISPROD_PODAGENDA,
	DATUM_OD varchar(6),
	DATUM_DO varchar(6)
)
go

create unique index idx_kodproduktu
	on EC_CISPROD (KOD1, KOD2, KOD3)
go

create index EC_CISPROD_PODAGENDA_ID_AGENDA
	on EC_CISPROD_PODAGENDA (ID_Agenda)
go

create table CC_NormyMP_zaloha
(
	KODPL varchar(2),
	NAZPL varchar(45),
	POHL varchar(2),
	DNIVAZ float,
	HMOTA float,
	HMOTB float,
	HMOTC float
)
go

create table CC_TechUstMD
(
	KOD varchar(2) not null,
	POPIS varchar(32)
)
go

create table CR_KURHD_MesUzavCH_1_backup
(
	chov varchar(9),
	rok int,
	mesiac int,
	dekada int,
	CISKRAVY varchar(14),
	PORPREBLAK int,
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI decimal(7),
	PERSPOL decimal(7,2),
	DATNAR date,
	PLEMKR varchar(70),
	DATOT date,
	PK int,
	ML1 decimal(5,2),
	ZN1 varchar(1),
	ML2 decimal(5,2),
	ZN2 varchar(1),
	ML3 decimal(5,2),
	ZN3 varchar(1),
	ML4 decimal(5,2),
	ZN4 varchar(1),
	ML5 decimal(5,2),
	ZN5 varchar(1),
	ML6 decimal(5,2),
	ZN6 varchar(1),
	ML7 decimal(5,2),
	ZN7 varchar(1),
	ML8 decimal(5,2),
	ZN8 varchar(1),
	ML9 decimal(5,2),
	ZN9 varchar(1),
	ML10 decimal(5,2),
	ZN10 varchar(1),
	ML11 decimal(5,2),
	ZN11 varchar(1),
	ML12 decimal(5,2),
	ZN12 varchar(1),
	PTUKU1 decimal(4,2),
	PBIELK1 decimal(4,2),
	PTB1 decimal(3,1),
	SB1 int,
	PTUKU2 decimal(3,2),
	PBIELK2 decimal(3,2),
	PTB2 decimal(3,2),
	SB2 int,
	LAKTDNI int,
	UDNI int,
	NAPML decimal(7,2),
	NAPTK decimal(7,2),
	UPERT decimal(3,2),
	NAPBL decimal(7,2),
	UPERB decimal(3,2),
	PORINS int,
	OLINREG varchar(10),
	DTOTOC date,
	DATINS date,
	OUC varchar(14),
	OTPLEM varchar(70),
	MATKA varchar(14),
	MAPLEM varchar(70),
	INTERVAL int,
	SERVPER int,
	MEDZIOB int,
	OVEKRM varchar(4),
	POHLTEL varchar(2),
	PRIEBPOR int,
	nap_dni int,
	nap_mliekokg int,
	nap_tukper decimal(7,2),
	nap_bielkper decimal(7,2),
	nap_tkg int,
	nap_bkg int,
	DOVVYR varchar(2)
)
go

create table temp_KRAVKUN
(
	CISKRAVY nvarchar(255),
	CHOVATEL nvarchar(255),
	OTECLIN nvarchar(255),
	OTECREG nvarchar(255),
	MATKA nvarchar(255),
	DATNAR nvarchar(255),
	PL1 nvarchar(255),
	KR1 float,
	PL2 nvarchar(255),
	KR2 float,
	PL3 nvarchar(255),
	KR3 float,
	PL4 float,
	KR4 float,
	PL5 float,
	DOVVYR nvarchar(255),
	DATVYR float,
	PRIZNAKKU nvarchar(255)
)
go

create unique index IX_temp_KRAVKUN
	on temp_KRAVKUN (CISKRAVY)
go

create table CM_DACS_fv_sireconnectSim
(
	ID int identity
		primary key,
	Created date,
	isoIdBull nvarchar(15),
	birthYear numeric(4),
	internalCoding numeric(2),
	numberOfDaughtersoverAll numeric(7),
	numberOfDaughtersBY numeric(7),
	numberOfDaughtersBW numeric(7),
	numberOfDaughtersAUT numeric(7),
	numberOfDaughtersDEneBY_BW numeric(7),
	numberOfDaughtersCZE numeric(7),
	numberOfDaughtersSVK numeric(7)
)
go

create table CP_ZCHMD_PripPLem
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table CustomDB_Data_Zhoda
(
	porcislo int identity
		primary key,
	uscislo varchar(14),
	spolocny_predok varchar(14),
	generacia int,
	koefpribuz float,
	ukoho varchar(1)
)
go

create table CP_TLACVYV
(
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOV varchar(3),
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	SKUP varchar(2),
	MESSP varchar(2),
	DATPOSK date,
	CISKRAVY varchar(14),
	PLEMKR varchar(26),
	DATNAR date,
	DATOT date,
	PORPREBLAK varchar(2),
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI float,
	PERSPOL float,
	ML1 float,
	ZN1 varchar(1),
	ML2 float,
	ZN2 varchar(1),
	ML3 float,
	ZN3 varchar(1),
	ML4 float,
	ZN4 varchar(1),
	ML5 float,
	ZN5 varchar(1),
	ML6 float,
	ZN6 varchar(1),
	ML7 float,
	ZN7 varchar(1),
	ML8 float,
	ZN8 varchar(1),
	ML9 float,
	ZN9 varchar(1),
	ML10 float,
	ZN10 varchar(1),
	ML11 float,
	ZN11 varchar(1),
	ML12 float,
	ZN12 varchar(1),
	NAPDNI float,
	NAPPERT float,
	NAPPERB float,
	NAPML float,
	NAPTK float,
	NAPBL float,
	UDNI float,
	UPERT float,
	UPERB float,
	UML float,
	UTK float,
	UBL float,
	SB1 float,
	SB2 float,
	PTUKU1 float,
	PBIELK1 float,
	PTB1 float,
	PTUKU2 float,
	PBIELK2 float,
	PTB2 float,
	OVEKR float,
	OVEKM float,
	POHLTEL varchar(2),
	PRIEBPOR varchar(1),
	DATINS date,
	PORINS varchar(2),
	IATERVAL float,
	SERVPER float,
	MEDZIOB float,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	DATOTOC date,
	OLIN varchar(3),
	OREG varchar(3),
	OTPLEM varchar(26),
	MATKA varchar(14),
	MAPLEM varchar(26),
	ZNVYR varchar(2)
)
go

create table NC_Priznak
(
	KOD varchar(2) not null,
	NAZOV varchar(128)
)
go

create table HIST_NM_ChovZoot
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	TYPZV varchar(1) not null,
	ZOOTOC1 varchar(5) not null,
	ZOOTPER1 float,
	ZOOTOC2 varchar(5),
	ZOOTPER2 float,
	ZOOTOC3 varchar(5),
	ZOOTPER3 float,
	ZOOTOC4 varchar(5),
	ZOOTPER4 float,
	ZOOTOC5 varchar(5),
	ZOOTPER5 float,
	ZOOTOC6 varchar(5),
	ZOOTPER6 float,
	ZOOTOC7 varchar(5),
	ZOOTPER7 float,
	ZOOTOC8 varchar(5),
	ZOOTPER8 float,
	ZOOTOC9 varchar(5),
	ZOOTPER9 float,
	ZOOTOC10 varchar(5),
	ZOOTPER10 float,
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table temp_marian
(
	CHOVATEL varchar(9) not null,
	CISKRAVY varchar(14) not null,
	PRIZNAKKU varchar(1),
	PORPREBLAK int,
	DATNAR date,
	porLak bigint
)
go

create table CP_ROCVYS
(
	CHOVATEL varchar(9),
	ROK varchar(4),
	PNLT1 float,
	SMLKT1 float,
	STUK1 float,
	PNLB1 float,
	SMLKB1 float,
	SBLK1 float,
	PNLV1 float,
	SMLKV1 float,
	SLD1 float,
	PVEK1 float,
	SVEK1 float,
	PNLT2 float,
	SMLKT2 float,
	STUK2 float,
	PNLB2 float,
	SMLKB2 float,
	SBLK2 float,
	PNLV2 float,
	SMLKV2 float,
	SLD2 float,
	PMEDZ2 float,
	SMEDZ2 float
)
go

create table HIST_NC_Priznak
(
	KOD varchar(2),
	NAZOV varchar(128),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table NM_PracSPU
(
	STRED varchar(2),
	IDPAM varchar(5) not null
		constraint PK_NM_PracSPU
			primary key,
	OSOBA varchar(30),
	FUNKCIA varchar(32),
	NADRIAD varchar(5),
	KONZUL varchar(2),
	PZ varchar(2),
	PIGLOG varchar(7),
	USERNAME varchar(30),
	VEDUCI bit,
	KONZULENT_HD bit,
	KONZULENT_OS bit,
	KONZULENT_OV bit,
	KONZULENT_KO bit,
	KONZULENT_HY bit,
	KONZULENT_PS bit,
	ZOOTECHNIK_HD bit,
	ZOOTECHNIK_OS bit,
	ZOOTECHNIK_OV bit,
	ZOOTECHNIK_KO bit,
	ZOOTECHNIK_HY bit,
	ZOOTECHNIK_PS bit
)
go

create table CR_LaktacneZostavy_rocenka
(
	Oznacenie varchar(10),
	DatumOd date,
	DatumDo date,
	Region varchar(2),
	PlemTyp varchar(10),
	PocZapojL1 int,
	PocLakV1 float,
	PocLakN1 float,
	MedziobdL1 varchar(10),
	LakdniL1 float,
	LakdniNL1 float,
	MliekNorL1 float,
	TukNorL1 float,
	BielkNorL1 float,
	LaktozaNL1 float,
	IPZL1 real,
	VyrZootechL1 varchar(4),
	VyrZdravDovL1 varchar(4),
	PocZapojL2 int,
	PocLakV2 float,
	PocLakN2 float,
	MedziobdL2 float,
	LaktDniL2 float,
	LakDniNL2 float,
	MliekNorL2 float,
	TukNorL2 float,
	BielkNorL2 float,
	LaktozaNL2 float,
	IPZL2 real,
	VyrZootechL2 varchar(4),
	VyrZdravDovL2 varchar(4),
	PocZapojCelk int,
	PocLakVcelk float,
	PocLakNcelk float,
	MedziobdCelk float,
	LaktDniCelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	LaktozaNCelk float,
	IPZCelk real,
	VyrZootechCelk varchar(4),
	VyrZdravDovCelk varchar(4),
	Do3500L1 real,
	Do4000L1 real,
	Do4500L1 real,
	Do5000L1 real,
	Do5500L1 real,
	Do6000L1 real,
	Do6500L1 real,
	Do7000L1 real,
	Do7500L1 real,
	Do8000L1 real,
	Do8500L1 real,
	Do9000L1 real,
	Do9500L1 real,
	Do10000L1 real,
	Do10500L1 real,
	Do11000L1 real,
	Do11500L1 real,
	Do12000L1 real,
	Do12500L1 real,
	Do13000L1 real,
	Do13500L1 real,
	Do14000L1 real,
	Od14000L1 real,
	Do3500L2 real,
	Do4000L2 real,
	Do4500L2 real,
	Do5000L2 real,
	Do5500L2 real,
	Do6000L2 real,
	Do6500L2 real,
	Do7000L2 real,
	Do7500L2 real,
	Do8000L2 real,
	Do8500L2 real,
	Do9000L2 real,
	Do9500L2 real,
	Do10000L2 real,
	Do10500L2 real,
	Do11000L2 real,
	Do11500L2 real,
	Do12000L2 real,
	Do12500L2 real,
	Do13000L2 real,
	Do13500L2 real,
	Do14000L2 real,
	Od14000L2 real,
	Do3500Celk real,
	Do4000Celk real,
	Do4500Celk real,
	Do5000Celk real,
	Do5500Celk real,
	Do6000Celk real,
	Do6500Celk real,
	Do7000Celk real,
	Do7500Celk real,
	Do8000Celk real,
	Do8500Celk real,
	Do9000Celk real,
	Do9500Celk real,
	Do10000Celk real,
	Do10500Celk real,
	Do11000Celk real,
	Do11500Celk real,
	Do12000Celk real,
	Do12500Celk real,
	Do13000Celk real,
	Do13500Celk real,
	Do14000Celk real,
	Od14000Celk real,
	Zmena10L1 real,
	Zmena30L1 real,
	Zmena31L1 real,
	Zmena40L1 real,
	Zmena41L1 real,
	Zmena42L1 real,
	Zmena43L1 real,
	ZmenaCelk1L1 real,
	Zmena51L1 real,
	Zmena52L1 real,
	Zmena53L1 real,
	Zmena54L1 real,
	Zmena55L1 real,
	Zmena56L1 real,
	Zmena57L1 real,
	Zmena58L1 real,
	Zmena59L1 real,
	Zmena60L1 real,
	Zmena61L1 real,
	Zmena62L1 real,
	ZmenaCelk2L1 real,
	Zmena10L2 real,
	Zmena30L2 real,
	Zmena31L2 real,
	Zmena40L2 real,
	Zmena41L2 real,
	Zmena42L2 real,
	Zmena43L2 real,
	ZmenaCelk1L2 real,
	Zmena51L2 real,
	Zmena52L2 real,
	Zmena53L2 real,
	Zmena54L2 real,
	Zmena55L2 real,
	Zmena56L2 real,
	Zmena57L2 real,
	Zmena58L2 real,
	Zmena59L2 real,
	Zmena60L2 real,
	Zmena61L2 real,
	Zmena62L2 real,
	ZmenaCelk2L2 real,
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real,
	Filter varchar(50),
	datumGenerovania date,
	EkoChov varchar(1)
)
go

create table SC_Pohlavie
(
	kod varchar(1) not null,
	popis varchar(15) not null
)
go

create table CM_MocPlem
(
	CIS_KRAVY nvarchar(14),
	MOCOV float,
	typs varchar(6)
)
go

create table CP_BLUP_KPLEMSC
(
	sc305h_pr_k float,
	sc305h_pr_b float,
	sc305h_so_k float,
	sc305h_so_b float,
	sc305s_pr_k float,
	sc305s_pr_b float,
	sc305s_so_k float,
	sc305s_so_b float,
	sc305p_pr_k float,
	sc305p_pr_b float,
	sc305p_so_k float,
	sc305p_so_b float
)
go

create table CC_VAZINTERVAL
(
	KOD int,
	DH int,
	PREPHOD int,
	HH int
)
go

create table EC_NazvyUctov
(
	CisloUctu varchar(7) not null
		constraint PK_EC_NazvyUctov
			primary key,
	Nazov varchar(100),
	NazovSkrateny varchar(50)
)
go

create table NM_ChPrZoot
(
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	PRODUKT varchar(5) not null
		constraint FK_NM_ChPrZoot_NC_CisProdK
			references NC_CisProdK,
	ZOOTOC1 varchar(5) not null,
	ZOOTPER1 float,
	ZOOTOC2 varchar(5),
	ZOOTPER2 float,
	ZOOTOC3 varchar(5),
	ZOOTPER3 float,
	ZOOTOC4 varchar(5),
	ZOOTPER4 float,
	ZOOTOC5 varchar(5),
	ZOOTPER5 float,
	ZOOTOC6 varchar(5),
	ZOOTPER6 float,
	ZOOTOC7 varchar(5),
	ZOOTPER7 float,
	ZOOTOC8 varchar(5),
	ZOOTPER8 float,
	ZOOTOC9 varchar(5),
	ZOOTPER9 float,
	ZOOTOC10 varchar(5),
	ZOOTPER10 float,
	TYPZV varchar(1),
	constraint PK_NM_ChPrZoot
		primary key (KRAJ, OKRES, PODNIK, CHOV, PRODUKT)
)
go

create table Laktacie_m
(
	PORLAK int,
	CHOVATEL varchar(9),
	Region varchar(2),
	ZMENA varchar(2),
	MEDZIOBD float,
	LAKTDNI float,
	LAKDNIN float,
	MLIEKNOR float,
	TUKNOR float,
	BIELKNOR float,
	LAKTOZAN float,
	INDPER float,
	PLEM varchar(10),
	DOVVYR varchar(2),
	DATVYR date,
	EkoChov varchar(1)
)
go

create table NE_STATISTIKY_FAKT
(
	CHOV varchar(10) not null,
	DATUM date not null,
	HD_KRAVA int,
	HD_TELA int,
	TMHD int,
	OV_BAHNICA int,
	OV_BARAN int,
	OV_POTOMOK int,
	KY_KOZA int,
	KY_CAP int,
	KY_POTOMOK int,
	OS_PRASNICA int,
	OS_KANEC int,
	OS_POTOMOK int
)
go

create table SM_BonNTPoznamky
(
	CEHZ varchar(14) not null
		primary key,
	Poznamka varchar(50)
)
go

create table CC_Telnost
(
	CBREZ varchar(2) not null,
	NBREZ varchar(25)
)
go

create table CM_Vazenia
(
	CISTELATA varchar(14) not null,
	DATVAZ date not null,
	HMOT float,
	RASTPAS varchar(1),
	CHOVVAZ varchar(9),
	TURNUS varchar(2),
	PRIZNAKKU varchar(1),
	DNIVAZ int,
	DNIPREPOC int,
	HMOTPREPOC float,
	PRIRPREPOC float,
	PRIR float,
	ZIVPRIR float,
	ZIVPRIRPREPOC float,
	SPRACINSERT bigint,
	SPRACUPDATE bigint
)
go

create index Ind_PrepocVazenia
	on CM_Vazenia (CISTELATA, DATVAZ)
go

create index Cistelata
	on CM_Vazenia (CISTELATA)
go

create index ChovVaz
	on CM_Vazenia (CHOVVAZ, CISTELATA, DATVAZ, HMOT, RASTPAS, TURNUS, DNIVAZ, DNIPREPOC, HMOTPREPOC, PRIRPREPOC)
go

create table kravy_m
(
	CHOV varchar(9),
	Region varchar(2),
	ciskravy varchar(14),
	PORPREBLAK int
)
go

create table CR_LaktacneZostavy_vybery
(
	Oznacenie varchar(10),
	DatumOd date,
	DatumDo date,
	Region varchar(2),
	PlemTyp varchar(10),
	PocZapojL1 int,
	PocLakV1 float,
	PocLakN1 float,
	MedziobdL1 varchar(10),
	LakdniL1 float,
	LakdniNL1 float,
	MliekNorL1 float,
	TukNorL1 float,
	BielkNorL1 float,
	LaktozaNL1 float,
	IPZL1 real,
	VyrZootechL1 varchar(4),
	VyrZdravDovL1 varchar(4),
	PocZapojL2 int,
	PocLakV2 float,
	PocLakN2 float,
	MedziobdL2 float,
	LaktDniL2 float,
	LakDniNL2 float,
	MliekNorL2 float,
	TukNorL2 float,
	BielkNorL2 float,
	LaktozaNL2 float,
	IPZL2 real,
	VyrZootechL2 varchar(4),
	VyrZdravDovL2 varchar(4),
	PocZapojCelk int,
	PocLakVcelk float,
	PocLakNcelk float,
	MedziobdCelk float,
	LaktDniCelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	LaktozaNCelk float,
	IPZCelk real,
	VyrZootechCelk varchar(4),
	VyrZdravDovCelk varchar(4),
	Do3500L1 real,
	Do4000L1 real,
	Do4500L1 real,
	Do5000L1 real,
	Do5500L1 real,
	Do6000L1 real,
	Do6500L1 real,
	Do7000L1 real,
	Do7500L1 real,
	Do8000L1 real,
	Do8500L1 real,
	Do9000L1 real,
	Do9500L1 real,
	Do10000L1 real,
	Do10500L1 real,
	Do11000L1 real,
	Do11500L1 real,
	Do12000L1 real,
	Do12500L1 real,
	Do13000L1 real,
	Do13500L1 real,
	Do14000L1 real,
	Od14000L1 real,
	Do3500L2 real,
	Do4000L2 real,
	Do4500L2 real,
	Do5000L2 real,
	Do5500L2 real,
	Do6000L2 real,
	Do6500L2 real,
	Do7000L2 real,
	Do7500L2 real,
	Do8000L2 real,
	Do8500L2 real,
	Do9000L2 real,
	Do9500L2 real,
	Do10000L2 real,
	Do10500L2 real,
	Do11000L2 real,
	Do11500L2 real,
	Do12000L2 real,
	Do12500L2 real,
	Do13000L2 real,
	Do13500L2 real,
	Do14000L2 real,
	Od14000L2 real,
	Do3500Celk real,
	Do4000Celk real,
	Do4500Celk real,
	Do5000Celk real,
	Do5500Celk real,
	Do6000Celk real,
	Do6500Celk real,
	Do7000Celk real,
	Do7500Celk real,
	Do8000Celk real,
	Do8500Celk real,
	Do9000Celk real,
	Do9500Celk real,
	Do10000Celk real,
	Do10500Celk real,
	Do11000Celk real,
	Do11500Celk real,
	Do12000Celk real,
	Do12500Celk real,
	Do13000Celk real,
	Do13500Celk real,
	Do14000Celk real,
	Od14000Celk real,
	Zmena10L1 real,
	Zmena30L1 real,
	Zmena31L1 real,
	Zmena40L1 real,
	Zmena41L1 real,
	Zmena42L1 real,
	Zmena43L1 real,
	ZmenaCelk1L1 real,
	Zmena51L1 real,
	Zmena52L1 real,
	Zmena53L1 real,
	Zmena54L1 real,
	Zmena55L1 real,
	Zmena56L1 real,
	Zmena57L1 real,
	Zmena58L1 real,
	Zmena59L1 real,
	Zmena60L1 real,
	Zmena61L1 real,
	Zmena62L1 real,
	ZmenaCelk2L1 real,
	Zmena10L2 real,
	Zmena30L2 real,
	Zmena31L2 real,
	Zmena40L2 real,
	Zmena41L2 real,
	Zmena42L2 real,
	Zmena43L2 real,
	ZmenaCelk1L2 real,
	Zmena51L2 real,
	Zmena52L2 real,
	Zmena53L2 real,
	Zmena54L2 real,
	Zmena55L2 real,
	Zmena56L2 real,
	Zmena57L2 real,
	Zmena58L2 real,
	Zmena59L2 real,
	Zmena60L2 real,
	Zmena61L2 real,
	Zmena62L2 real,
	ZmenaCelk2L2 real,
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real,
	Filter varchar(50),
	datumGenerovania date,
	EkoChov varchar(1)
)
go

create table CP_HOL_Potomstvo
(
	CisJal varchar(14) not null,
	ChovNar varchar(9) not null,
	PK varchar(3),
	OtecLin varchar(3),
	OtecReg int,
	Matka varchar(15),
	DatNar date,
	HmotNar float,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	Kr2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	Kr4 varchar(6),
	PL5 varchar(2),
	TypPLem varchar(3),
	Farba varchar(2),
	PorLak int,
	Pohlavie varchar(2),
	ZnakET bit,
	Preukaz varchar(1),
	Dobanos float,
	DatPrip date,
	DatVys date,
	ZnakBrez varchar(1),
	BykLin varchar(3),
	BykReg int,
	CisByk varchar(15),
	DovVyr varchar(2),
	DatVyr date
)
go

create table temp_oprava_teliat
(
	cistelata varchar(14),
	chov varchar(9),
	povchov varchar(9)
)
go

create table CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena
(
	ROKSPRAC varchar(4),
	MESSPRAC varchar(2),
	BYK varchar(15),
	DATNAR varchar(3),
	BLIN varchar(3),
	SREG varchar(3),
	MENBYK varchar(40),
	stada float,
	cery float,
	PLEMENO varchar(38),
	SPI float,
	REL float,
	M305 float,
	T305 float,
	tukpercenta float,
	B305 float,
	bielkperc float,
	SKUPINA varchar(1),
	Preskupinovane varchar(1),
	CHEKMEOUT varchar(3),
	RPHM int,
	RPHT int,
	RPHB int
)
go

create index IX_CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena_BYK
	on CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena (BYK)
go

create table temp_telata_vymaz
(
	cistelata varchar(14)
)
go

create table CR_EKRMD_stvrtR
(
	cistelata varchar(14),
	chov varchar(9),
	plemeno varchar(3),
	datnar date,
	pohlavie varchar(2),
	PK varchar(3),
	ET bit,
	farba varchar(2),
	matka varchar(14),
	otecLIN varchar(3),
	otecREG int,
	datvaz1 date,
	mesiac1 int,
	den1 int,
	hmot1 int,
	rp1 varchar(1),
	datvaz2 date,
	mesiac2 int,
	den2 int,
	hmot2 int,
	rp2 varchar(1),
	datvaz3 date,
	mesiac3 int,
	den3 int,
	hmot3 int,
	rp3 varchar(1),
	datvaz4 date,
	mesiac4 int,
	den4 int,
	hmot4 int,
	rp4 varchar(1),
	datvaz5 date,
	mesiac5 int,
	den5 int,
	hmot5 int,
	rp5 varchar(1),
	datvaz6 date,
	mesiac6 int,
	den6 int,
	hmot6 int,
	rp6 varchar(1),
	zprir int,
	dp int,
	byk varchar(7),
	datinsem date,
	ocotel date,
	ocprip date,
	porlakmax int,
	pocvsetlak int,
	pocnorlak int,
	mliekopr int,
	tukper decimal(7,2),
	bielkper decimal(7,2),
	mliekomax int,
	tukmax decimal(7,2),
	bielmax decimal(7,2),
	rok int,
	mesiacSprac int,
	mesiacOD int,
	mesiacDO int,
	generovane date,
	plemskladba varchar(70),
	otecUscislo varchar(14),
	otecMeno varchar(30),
	planprip date,
	DatPlanPripust varchar(10),
	vekPripus varchar(6)
)
go

create table SC_UzitZamPlem
(
	Kod varchar(1) not null
		constraint PK_SC_UzitZamPlem
			primary key,
	Popis varchar(15)
)
go

create table SC_Plemena_N
(
	KodPl varchar(2) not null
		constraint PK_SC_Plemena_N
			primary key,
	UzitZam varchar(1)
		constraint FK_SC_Plemena_SC_UzitZamPlem_N
			references SC_UzitZamPlem,
	Nazov varchar(40),
	Pocetnost tinyint,
	Import bit
)
go

create table SC_Plemena
(
	KODPL2 varchar(2) not null
		constraint PK_SC_Plemena
			primary key,
	UZITZAM varchar(1)
		constraint FK_SC_Plemena_SC_UzitZamPlem
			references SC_UzitZamPlem,
	NAZOVD varchar(20),
	C_NAZUZAM varchar(11)
)
go

create table temp_migr_respondery
(
	CISKRAVY varchar(14) not null,
	RESPONDER varchar(4)
)
go

create table SM_POTOMOK
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	VIS varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	JEDCIS varchar(8) not null,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PLEMS varchar(10),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	REGION varchar(2),
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTDENPRIR float,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTVU varchar(2),
	OTVLNA varchar(2),
	OTOSVAL varchar(2),
	OTEXTER varchar(2),
	OTBMLUZMA varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAPL varchar(4),
	MADENPRIR float,
	MASURV varchar(1),
	MAPOVOD varchar(2),
	MAVU varchar(2),
	MAVLNA varchar(2),
	MAOSVAL varchar(2),
	MABMLUZMA varchar(2),
	MAEXTER varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMTRIED varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMTRIED varchar(2),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOTRIED varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOTRIED varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOVYSTR varchar(2),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOVYSTR varchar(2),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMVYSTR varchar(2),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMVYSTR varchar(2),
	DATNAR date,
	HMOTN float,
	POHL varchar(1),
	SURVRH varchar(1),
	PREDVYB varchar(1),
	DATH30 date,
	HMOT30 float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR1 float,
	KDPRIR float,
	HVPORPR varchar(3),
	PHVELVRH float,
	HVPORVV varchar(3),
	PHMLIEKO float,
	HVPORML varchar(3),
	PHHMODS float,
	HVPORHO varchar(3),
	DATNT date,
	NTKRAJ varchar(1),
	KATCIS float,
	KODPLOD varchar(1),
	BPOVOD varchar(2),
	BVU varchar(2),
	BVLS varchar(2),
	BVLD varchar(1),
	BVLM varchar(1),
	BVLV varchar(1),
	BVLCH varchar(2),
	BVLPP varchar(2),
	BVLNA varchar(2),
	BDEFEKT float,
	BOSVAL varchar(2),
	BMLUZMA varchar(2),
	BEXTER varchar(2),
	BCELKOM varchar(3),
	TRIED varchar(2),
	SORTIM varchar(5),
	DLVLPO float,
	DLVLPE float,
	PZIVHMOTNT float,
	DATVAZNT date,
	HM1ROK float,
	HVHM1ROK varchar(3),
	VYBER varchar(2),
	CENABON float,
	DATPRED date,
	PREDKROKR varchar(3),
	PREDPODNIK varchar(3),
	PREDSTADO varchar(3),
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	GENPRES bit not null,
	RocNar as case when datepart(month,[DATNAR])<7 then (str(datepart(year,[DATNAR])-1,4,0)+'/')+substring(str(datepart(year,[DATNAR]),4,0),3,2) else (str(datepart(year,[DATNAR]),4,0)+'/')+substring(str(datepart(year,[DATNAR])+1,4,0),3,2) end,
	CisLin as case when [otluc] IS NULL then '????' else substring([OTLUC],1,4) end
)
go

create index IX_SM_Potomok_LUC
	on SM_POTOMOK (LUC)
go

create index IX_SM_Potomok_CEHZ
	on SM_POTOMOK (JCCEHZ, ZVSTAT)
go

create table Roc_MLHD_Tab_18
(
	ChovZvaz varchar(50),
	Oddiel varchar(6),
	Lakt varchar(6),
	Uzav_lakt int,
	Lakt_dni int,
	mlieko int,
	tuk_KG int,
	tuk_P float,
	bielk_KG int,
	bielk_P float,
	medziobd int,
	rok varchar(4)
)
go

create table SM_KonZap_zaloha
(
	ID bigint not null,
	ID_KonZapBaran bigint,
	KROKR varchar(3) not null,
	PODNIK varchar(3) not null,
	STADO varchar(3) not null,
	CEHZ varchar(14),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	PORCIS varchar(4),
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	BPLEM varchar(10),
	HMOTBAH float,
	STMENB varchar(1),
	DATPRIP date,
	DATOBAH date,
	RokNar varchar(4),
	Dovod varchar(1),
	DatVyr varchar(10),
	PredChov varchar(9),
	DATZAPIS datetime not null,
	LOGIN varchar(30) not null,
	DATSPRAC datetime,
	PRIZSPRAC varchar(1) not null,
	VERZIA varchar(30),
	ZDROJ varchar(3)
)
go

create table CP_SIM_LAKT
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	DATOTEL date,
	DATUKONL date,
	LAKTDNI float,
	MLIEKO decimal(7),
	TUK decimal(7,2),
	BIELK decimal(7,2),
	LAKTOZA decimal(7,2),
	SOMBUN float,
	SPOSOBKU varchar(1),
	ZMENA varchar(2),
	INDPER float,
	INDLAK decimal(7,1)
)
go

create table Roc_MLHD_TAB_2
(
	plemeno varchar(70),
	podiel varchar(30),
	DatumOd date,
	DatumDo date,
	Filter varchar(25),
	datumGenerovania date,
	PlemTyp varchar(10),
	PocLakV1 float,
	PocLakN1 float,
	LakdniNL1 float,
	MliekNorL1 float,
	TukNorL1 float,
	BielkNorL1 float,
	MedziobdL1 varchar(10),
	PocLakV2 float,
	PocLakN2 float,
	LakDniNL2 float,
	MliekNorL2 float,
	TukNorL2 float,
	BielkNorL2 float,
	MedziobdL2 varchar(10),
	PocLakVcelk float,
	PocLakNcelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	priem_lakt float,
	rok int
)
go

create table Roc_MPHD_Tab_Najchov
(
	KrajOkr varchar(3),
	Podnik varchar(3),
	Podnik_nazov varchar(35),
	Prev_plem varchar(10),
	Priem_stav_krav int,
	Priem_stav_MD int,
	poc_vaz_210 int,
	Hm210 int,
	Medziobd float,
	Inde_x float,
	rok int
)
go

create table SM_KonZapBaran_zaloha
(
	ID bigint not null,
	KROKR varchar(3) not null,
	PODNIK varchar(3) not null,
	STADO varchar(3) not null,
	ROKEV1 varchar(4) not null,
	ROKEV2 varchar(2) not null,
	BARCIS varchar(8) not null,
	BPORCIS varchar(4),
	BKROKR varchar(3),
	BPODNIK varchar(3),
	BSTADO varchar(3),
	BLUC varchar(5),
	BPUC varchar(5),
	BCEHZ varchar(14),
	BPLEM varchar(10)
)
go

create table cp_Meso_MediobdobieReport
(
	chovatel varchar(9),
	priznakGroupBy varchar(20),
	lakt2 int,
	plakt2 float,
	lakt3 int,
	plakt3 float,
	lakt4 int,
	plakt4 float,
	lakt5 int,
	plakt5 float,
	lakt6 int,
	plakt6 float,
	lakt7 int,
	plakt7 float,
	lakt8 int,
	plakt8 float,
	lakt9 int,
	plakt9 float,
	ksSpolu int,
	pSpolu float
)
go

create table CP_SIM_PLEMENICE
(
	CISKRAVY varchar(14),
	CHOVATEL varchar(9),
	DATNAR date,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	ZNMATBYK varchar(1),
	ZNAKET bit not null,
	ZDRAVTR varchar(1),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	MATKA varchar(14),
	DATVYR date,
	DOVVYR varchar(2),
	OOLIN varchar(3),
	OOREG varchar(3),
	MO varchar(15),
	OMLIN varchar(3),
	OMREG varchar(3),
	MM varchar(15),
	OOOLIN varchar(3),
	OOOREG varchar(3),
	MOO varchar(15),
	OMOLIN varchar(3),
	OMOREG varchar(3),
	MMO varchar(15),
	OOMLIN varchar(3),
	OOMREG varchar(3),
	MOM varchar(15),
	OMMLIN varchar(3),
	OMMREG varchar(3),
	MMM varchar(15)
)
go

create table proofc
(
	[1] varchar(15),
	[2] real,
	[3] real,
	[4] real,
	[5] real,
	[  -114,5] real,
	[   113,2] real,
	[   515,6] real,
	[   -12,35] real,
	[  -11,84] real,
	[   -4,65] real,
	[    4,14] real,
	[   20,30] real,
	[    -5,42] real,
	[   -7,70] real,
	[   -2,43] real,
	[    4,71] real,
	[   15,46] real,
	[Column 18] varchar(1)
)
go

create table CM_ArchKon
(
	CISKRAVY varchar(14) not null,
	DATKONTR date not null,
	ZNKONTR varchar(1),
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	CISCHOVU varchar(9),
	SKUPINA varchar(2),
	PREPOCET bit,
	MLIEKO float,
	MLIEKPR float,
	PRT float,
	PERCTUKU float,
	PERCBIELK float,
	PERCLAKTOZ float,
	BUNECELEM float,
	LAKTDNI float,
	PORPREBLAK varchar(2),
	KodIntSB int,
	KodIntLD int,
	JeKontroly bit,
	SPRACINSERT bigint,
	SPRACUPDATE bigint,
	FREKVENCIA varchar(1),
	constraint PK_CM_ArchKon
		primary key (CISKRAVY, DATKONTR)
)
go

create index IX_CM_ArchKon_CISCHOVU
	on CM_ArchKon (CISCHOVU)
go

create index IX_CM_ArchKon_DATKONTR
	on CM_ArchKon (DATKONTR)
go

create table CR_Zoznam_teliat_za_mesiac_sumar
(
	chov varchar(9),
	preukazany int,
	duplicitny int,
	nepreukazany int,
	dodatocne_urceny int,
	neznamy int,
	spolu_teliat int,
	mesiac int,
	rok int,
	dekada int
)
go

create table NP_DOTAZNIK_ROZBORMLIEKA
(
	login varchar(256) not null,
	nechceDotaznik bit constraint DF_NP_DOTAZNIK_ROZBORMLIEKA_nechceDotaznik default 0 not null,
	datumOdlozenia date,
	formaSubjektu varchar(50),
	funkciaPracovnika varchar(50),
	otazka2_1 tinyint,
	otazka2_2 tinyint,
	otazka2_3 tinyint,
	otazka2_4 tinyint,
	otazka2_5 tinyint,
	otazka2_6 tinyint,
	otazka2_7 tinyint,
	otazka2_8 tinyint,
	otazka2_9 tinyint,
	laktoferin varchar(50),
	ketolatky varchar(50),
	podnety varchar(2000),
	idDotaznika varchar(1)
)
go

create table CP_BLUP_K95B
(
	MH float,
	TH float,
	BH float,
	TPH float,
	BPH float,
	MS float,
	TS float,
	BS float,
	TPS float,
	BPS float,
	MP float,
	TPI float,
	BPI float,
	TPP float,
	BPP float,
	MO float,
	TO float,
	BO float,
	TPO float,
	BPO float,
	M0H float,
	M1H float,
	M2H float,
	M3H float,
	M4H float,
	T0H float,
	T1H float,
	T2H float,
	T3H float,
	T4H float,
	TPERH float,
	B0H float,
	B1H float,
	B2H float,
	B3H float,
	B4H float,
	BPERH float,
	M0S float,
	M1S float,
	M2S float,
	M3S float,
	M4S float,
	T0S float,
	T1S float,
	T2S float,
	T3S float,
	T4S float,
	TPERS float,
	B0S float,
	B1S float,
	B2S float,
	B3S float,
	B4S float,
	BPERS float,
	M0P float,
	M1P float,
	M2P float,
	M3P float,
	M4P float,
	T0P float,
	T1P float,
	T2P float,
	T3P float,
	T4P float,
	TPERP float,
	B0P float,
	B1P float,
	B2P float,
	B3P float,
	B4P float,
	BPERP float,
	M0O float,
	M1O float,
	M2O float,
	M3O float,
	M4O float,
	T0O float,
	T1O float,
	T2O float,
	T3O float,
	T4O float,
	B0O float,
	B1O float,
	B2O float,
	B3O float,
	B4O float,
	EWMH float,
	EWTH float,
	EWBH float,
	EWMS float,
	EWTS float,
	EWBS float,
	EWMP float,
	EWTP float,
	EWBP float,
	EWMO float,
	EWTO float,
	EWBO float,
	SC0H float,
	SC1H float,
	SC2H float,
	SC3H float,
	SC4H float,
	SC0S float,
	SC1S float,
	SC2S float,
	SC3S float,
	SC4S float,
	SC0P float,
	SC1P float,
	SC2P float,
	SC3P float,
	SC4P float
)
go

create table Roc_MLHD_Tab_19
(
	Por varchar(3),
	stpec_1 varchar(2),
	stpec_2 varchar(2),
	stpec_3 varchar(2),
	stpec_4 varchar(2),
	stpec_5 varchar(5),
	stpec_6 varchar(50),
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok varchar(4),
	Plem_typ varchar(6)
)
go

create table Roc_MLHD_Tab_7
(
	KRAJ varchar(35),
	CISKRAVY varchar(14),
	OKRES varchar(35),
	PODNIK varchar(35),
	CHOV varchar(35),
	OTEC varchar(8),
	PLEM varchar(50),
	PORLAK int,
	MLIEKNOR int,
	TUKPERC float,
	TUKNOR float,
	BIELKPERC float,
	BIELKNOR float,
	CHOVATEL varchar(9),
	ROK varchar(4)
)
go

create table PocZapojL1_m
(
	CHOV varchar(9),
	Region varchar(2),
	PlemTyp varchar(10),
	PocZapojL1 int
)
go

create table SM_KonZapPotomok_zaloha
(
	ID bigint not null,
	ID_KonZap bigint,
	POHL varchar(1) not null,
	VISAC varchar(4),
	LUC varchar(5),
	PUC varchar(5),
	CEHZ varchar(14),
	HMNAROD float,
	DATVAZ date,
	HMVAZ float,
	PRIZVYB varchar(1),
	DATZAPIS datetime not null,
	LOGIN varchar(30) not null,
	DATSPRAC datetime,
	PRIZSPRAC varchar(1) not null,
	VERZIA varchar(30),
	PredChov varchar(9),
	ZDROJ varchar(3)
)
go

create table PocZapojL2_m
(
	CHOV varchar(9),
	Region varchar(2),
	PocZapojL2 int
)
go

create table SP_Zvierata
(
	cislo varchar(8) not null,
	CEHZ varchar(14),
	chov varchar(9),
	LUC varchar(5),
	PUC varchar(5),
	datNar datetime,
	tab varchar(14),
	pohl char(1),
	plem varchar(10),
	otecCis varchar(8) not null,
	otec varchar(14),
	matkaCis varchar(8) not null,
	matka varchar(14)
)
go

create table PP_KatPr
(
	PODNIK varchar(1) not null,
	OKRES varchar(2) not null,
	ZAVOD varchar(3) not null,
	CHOV varchar(3) not null,
	MATKA varchar(5) not null,
	LINOTCA varchar(4) not null,
	REGOTCA varchar(5) not null,
	LINREG varchar(9),
	LINOTCAM varchar(4),
	REGOTCAM varchar(5),
	STHYBR varchar(8) not null,
	NARODENE date not null,
	USCISLO varchar(7) not null,
	POHLAVIE varchar(1),
	STRUKY varchar(2),
	VAHA float,
	SLAN float,
	PHA float,
	HMC float,
	PORVRH float,
	VSET float,
	ZIVE float,
	DOCH float,
	VAHA1 float,
	PVSET float,
	PZIVE float,
	PDOCH float,
	PVAHA float,
	ZNAK varchar(1) not null,
	DNA varchar(2),
	MPRIR float,
	MCMC float,
	MSLAN float,
	DATZAP date not null,
	NPOD varchar(1),
	NOKR varchar(2),
	NZAV varchar(3),
	NCHOV varchar(3),
	NLINIA varchar(4),
	NREGMAT varchar(5),
	NAZKRA varchar(30),
	NAZOKR varchar(30),
	NAZZAV varchar(50),
	NAZOV varchar(30),
	NAZLINOT varchar(10),
	NAZLINOTM varchar(10),
	NAZPLSKR varchar(21),
	PSLAN float,
	TBFFT float,
	TBFST float,
	PPRIR float,
	TADGFT float,
	TADGST float,
	PHMC float,
	TVC float,
	STARMES float,
	TNBA1 float,
	TNBA2 float,
	TSPIJ float,
	TSPIM float,
	TSPIO float,
	K_PRIR float,
	K_VSZ float,
	K_PMLD float,
	K_PCMC float,
	K_PSTEHNO float,
	K_SLAN float,
	NUMBERKAT float not null,
	constraint PK_PP_KatPr
		primary key (PODNIK, OKRES, ZAVOD, CHOV, MATKA, LINOTCA, REGOTCA, STHYBR, NARODENE, USCISLO, ZNAK, DATZAP)
)
go

create table [CM_Telata_zal***]
(
	IDTELATA int not null,
	CISTELATA varchar(14),
	CHOVNAR varchar(9),
	OTECLIN varchar(3),
	OTECREG int,
	OUC varchar(15),
	MATKA varchar(15),
	HMOTOT float,
	DATNAR date,
	HMOTNAR float,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYPPLEM varchar(3),
	FARBA varchar(2),
	PORLAK int,
	POHLAVIE varchar(2),
	ZNAKET bit,
	PREUKAZ varchar(1),
	DOBANOS float,
	CHOVATEL varchar(9),
	PRIZNAKKU varchar(1),
	PRIEBPOR varchar(1),
	URCTEL varchar(1),
	PRICOBTPOR varchar(1),
	PRICUHYN varchar(1),
	DOVVYR varchar(2),
	DATVYR date,
	IDMA int,
	IDOT int,
	DONORKA varchar(14),
	IDDONOR int
)
go

create table CP_UzitkovostKravpoOtcoch
(
	otec varchar(10),
	Oucislo varchar(14),
	lak1 int,
	primMlekoL1 float,
	priTukL1 float,
	priBelkL1 float,
	priBelaTukL1 float,
	vekL1mesec int,
	vekL1dni int,
	lak2 int,
	primMlekoL2 float,
	priTukL2 float,
	priBelkL2 float,
	priBelaTukL2 float,
	lakN int,
	priMlekoN float,
	priTukN float,
	priBelkN float,
	priBelkaTukN float,
	priMlekVsetki float,
	priTukVsetki float,
	priBelkVsetki float,
	priBelaTukVsetki float,
	PovetKravyChovu int,
	CHOVATEL varchar(9),
	pocetOstLakt int
)
go

create table PocZapojLCelk_m
(
	CHOV varchar(9),
	Region varchar(2),
	PocZapojLCelk int
)
go

create table Roc_MLHD_Tab_23A
(
	KRAJ varchar(1),
	OKRES varchar(2),
	PODNIK varchar(3),
	Okres_nazov varchar(30),
	Por_podniku varchar(5),
	Sidlo varchar(30),
	predstavitel_1 varchar(100),
	funkcia_1 varchar(50),
	predstavitel_2 varchar(100),
	funkcia_2 varchar(50),
	stav_krav_1 varchar(5),
	stav_krav_2 varchar(5),
	vyr_kravy varchar(5),
	zar_prvostok varchar(5),
	nar_teliat varchar(5),
	pr_vek_rok int,
	pr_vek_mesiac int,
	priem_lakt float,
	rok varchar(4)
)
go

create table CM_Paternita
(
	KRAVA varchar(15),
	DATNAR date,
	PLEMENO varchar(12),
	K varchar(1),
	OK varchar(2),
	POD varchar(3),
	OSTREG varchar(3),
	OREG varchar(3),
	OUC varchar(15),
	M varchar(15),
	KT bit not null,
	DNA bit not null,
	CROZB varchar(4),
	CRAD varchar(2),
	KPUV varchar(2),
	KRVDAT date,
	PATDAT date,
	PATERNITA varchar(65)
)
go

create unique index IX_Krava
	on CM_Paternita (KRAVA)
go

create table pocLAKV1_m
(
	CHOV varchar(9),
	Region varchar(2),
	PocLakV1 real
)
go

create table Roc_MLHD_Tab_22A
(
	KRAJ varchar(1),
	OKRES varchar(2),
	PODNIK varchar(3),
	Okres_nazov varchar(30),
	Por_podniku varchar(5),
	Por_riadka varchar(1),
	stpec_1 varchar(2),
	stpec_2 varchar(2),
	stpec_3 varchar(2),
	stpec_4 varchar(2),
	stpec_5 varchar(10),
	stpec_6 varchar(100),
	stlpec_6c varchar(3),
	stpec_7 int,
	stpec_8 float,
	stpec_9 float,
	stpec_10 float,
	stpec_11 float,
	stpec_12 float,
	stpec_13 float,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 float,
	stpec_16 float,
	stpec_17 float,
	stpec_18 float,
	stpec_19 float,
	stpec_20 float,
	stpec_21 float,
	stpec_22 float,
	stpec_23 float,
	stpec_24 float,
	stpec_25 float,
	stpec_26 float,
	stpec_27 float,
	stpec_28 float,
	stpec_29 float,
	rok varchar(4)
)
go

create table CP_RegByci
(
	USCISLO varchar(15) not null,
	LIN varchar(3) not null,
	REG varchar(3) not null,
	IDBYKA int,
	constraint PK_CP_RegByci
		primary key (LIN, REG)
)
go

create table pocLAKV2_m
(
	CHOV varchar(9),
	Region varchar(2),
	PocLakV2 real
)
go

create table CP_AVG_ML_B_T
(
	MLIEKOPRH float not null,
	BIELKOVINAPRH float not null,
	TUKPRH float not null,
	MLIEKOML float not null,
	BIELKOVINAML float not null,
	TUKML float not null
)
go

create table Roc_MLHD_Tab_21A
(
	KRAJ varchar(1),
	OKRES varchar(2),
	Por_okresu varchar(2),
	Okres_nazov varchar(30),
	Por_v_okrese varchar(3),
	Nazov varchar(100),
	stpec_7 int,
	stpec_8 float,
	stpec_9 float,
	stpec_10 float,
	stpec_11 float,
	stpec_12 float,
	stpec_13 float,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 float,
	stpec_16 float,
	stpec_17 float,
	stpec_18 float,
	stpec_19 float,
	stpec_20 float,
	stpec_21 float,
	stpec_22 float,
	stpec_23 float,
	stpec_24 float,
	stpec_25 float,
	stpec_26 float,
	stpec_27 float,
	stpec_28 float,
	stpec_29 float,
	rok varchar(4)
)
go

create table Roc_MLHD_Tab_22A_opr
(
	KRAJ varchar(1),
	OKRES varchar(2),
	PODNIK varchar(3),
	Okres_nazov varchar(30),
	Por_podniku varchar(5),
	Por_riadka varchar(1),
	stpec_1 varchar(2),
	stpec_2 varchar(2),
	stpec_3 varchar(2),
	stpec_4 varchar(2),
	stpec_5 varchar(10),
	stpec_6 varchar(100),
	stlpec_6c varchar(3),
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok varchar(4)
)
go

create table CC_NormyMP
(
	KODPL varchar(2),
	NAZPL varchar(45),
	POHL varchar(2),
	DNIVAZ float,
	HMOTA float,
	HMOTB float,
	HMOTC float
)
go

create table CP_MedziobdZostavaA_CopyTest_er
(
	chovatel varchar(9),
	groupNazov varchar(20),
	l1 int,
	pl1 float,
	l2 int,
	pl2 float,
	l3 int,
	pl3 float,
	l4 int,
	pl4 float,
	l5 int,
	pl5 float,
	l6 int,
	pl6 float,
	l7 int,
	pl7 float,
	l8 int,
	pl8 float,
	l9 int,
	pl9 float,
	Spolu int,
	pSpolu float,
	Pmedziobd int,
	SpoluChov int,
	znakLakt varchar(2)
)
go

create table HIST_NC_CisProdK
(
	KOD1 varchar(1) not null,
	KOD2 varchar(2) not null,
	KOD3 varchar(2) not null,
	SKUPINA varchar(65),
	PODSKUP2 varchar(35),
	PODSKUP3 varchar(31),
	SKUP_SKR varchar(40),
	MERJED varchar(12),
	JEDCENA float,
	CENASDOT float,
	DOTACIA bit,
	PERDOT float,
	POZNAMKA varchar(30),
	UCET varchar(7),
	FAKKDE varchar(1),
	PRODUKT as ([KOD1]+[KOD2])+[KOD3],
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CR_KUHD_MesUzavCH_1
(
	chovatel varchar(9) not null,
	mesiac int,
	rok int,
	MESROKSPRAC date,
	MKO1KS int,
	MKO1ML decimal(7,2),
	MKO12KS int,
	MKO12ML decimal(7,2),
	RKO1KS int,
	RKO1ML decimal(7,2),
	RKO12KS int,
	RKO12ML decimal(7,2),
	MKO1KSL1 int,
	MKO1MLL1 decimal(7,2),
	MKO12KSL1 int,
	MKO12MLL1 decimal(7,2),
	RKO1KSL1 int,
	RKO1MLL1 decimal(7,2),
	RKO12KSL1 int,
	RKO12MLL1 decimal(7,2),
	POCKRAVZAP int,
	POCKRAVKONT int,
	MLIEKOCELKOM decimal(7,2),
	MLIEKOPRIEMERZ decimal(7,2),
	MLIEKOPRIEMERK decimal(7,2),
	TUKPER decimal(7,2),
	POCETKRAVBIELK int,
	BIELKPER decimal(7,2),
	SB decimal(7,2),
	POCKRAVZAPL1 int,
	POCKRAVKONTL1 int,
	MLIEKOCELKOML1 decimal(7,2),
	MLIEKOPRIEMERZL1 decimal(7,2),
	MLIEKOPRIEMERKL1 decimal(7,2),
	TUKPERL1 decimal(7,2),
	POCETKRAVBIELKL1 int,
	BIELKPERL1 decimal(7,2),
	SBL1 decimal(7,2),
	POCKRAV100 int,
	MLIEKO100 decimal(7,2),
	TUK100 decimal(7,2),
	BIELK100 decimal(7,2),
	POCKRAV100L1 int,
	MLIEKO100L1 decimal(7,2),
	TUK100L1 decimal(7,2),
	BIELK100L1 decimal(7,2),
	POCKRAV200 int,
	MLIEKO200 decimal(7,2),
	TUK200 decimal(7,2),
	BIELK200 decimal(7,2),
	POCKRAV200L1 int,
	MLIEKO200L1 decimal(7,2),
	TUK200L1 decimal(7,2),
	BIELK200L1 decimal(7,2),
	POCKRAV300 int,
	MLIEKO300 decimal(7,2),
	TUK300 decimal(7,2),
	BIELK300 decimal(7,2),
	POCKRAV300L1 int,
	MLIEKO300L1 decimal(7,2),
	TUK300L1 decimal(7,2),
	BIELK300L1 decimal(7,2),
	POCINS1 int,
	POCINS2 int,
	POCINS3 int,
	POCINS4VIAC int,
	POCTELNYCH int,
	POCINTR int,
	SUMINTR int,
	POCSERV int,
	SUMSERV int,
	POCMEDZ int,
	SUMMEDZ int,
	POCVETOT int,
	SUMVETOT int,
	POMERTB11V decimal(7,2),
	POMERTB15V decimal(7,2),
	POMERTBOKV decimal(7,2),
	POMERTB11L1 decimal(7,2),
	POMERTB15L1 decimal(7,2),
	POMERTBOKL1 decimal(7,2),
	datatlac date,
	dekada int
)
go

create index chovmesiac
	on CR_KUHD_MesUzavCH_1 (chovatel, MESROKSPRAC)
go

create table CP_Dlhovek_Kravy_MP
(
	CISKRAVY varchar(14) not null,
	MAJITEL varchar(9) not null,
	OUSCIS varchar(14),
	MATKA varchar(14),
	DATNAR date,
	HMOTNAR float,
	HMOTODSTAV float,
	HMOT365 float,
	PL1 varchar(2),
	KR1 varchar(6),
	PL2 varchar(2),
	KR2 varchar(6),
	PL3 varchar(2),
	KR3 varchar(6),
	PL4 varchar(2),
	KR4 varchar(6),
	PL5 varchar(2),
	DOVVYR varchar(2),
	DATVYR date
)
go

create table pocLAKVCelk_m
(
	CHOV varchar(9),
	Region varchar(2),
	PocLakVCelk real
)
go

create table SM_NakTrhy
(
	DATNT date not null,
	NTKRAJ varchar(1),
	MIESTONT varchar(30),
	UZAVRETY varchar(1)
)
go

create table CP_PlemenoTyp
(
	PL varchar(2),
	typ int
)
go

create table CP_VypocNespravnaPlemennaSkladba
(
	uscislo varchar(14) not null,
	kategoria int,
	chybnePS varchar(40),
	spravnePS varchar(40),
	chov varchar(9)
)
go

create index idx_uscislo
	on CP_VypocNespravnaPlemennaSkladba (uscislo)
go

create unique index idx_uscislo_kat
	on CP_VypocNespravnaPlemennaSkladba (uscislo, kategoria)
go

create table SM_OVCEST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	SML float,
	STL float,
	SBL float,
	SLL float,
	SMNL float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	STNL float,
	SBNL float,
	SLNL float,
	SKMNL float,
	SKTNL float,
	SKBNL float,
	SKLNL float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	POCETVS float,
	SMODMNL float,
	SMODTNL float,
	SMODBNL float,
	SMODLNL float,
	SKM float,
	SKT float,
	SKB float,
	SKL float,
	PDDP float
)
go

create table temp_emaily
(
	[Display Name] nvarchar(255),
	[Primary SMTP Address] nvarchar(255)
)
go

create table temp_polozky_calv2
(
	veta nvarchar(4000)
)
go

create table lakt1_m
(
	CHOV varchar(9),
	Region varchar(2),
	PlemTyp varchar(10),
	PocLakN1 real,
	MedziobdL1 real,
	LakdniL1 real,
	LakdniNL1 real,
	MliekNorL1 real,
	TukNorL1 real,
	BielkNorL1 real,
	LaktozaNL1 real,
	IPZL1 real,
	VyrZootechL1 varchar(4),
	VyrZdravDovL1 varchar(4)
)
go

create table ST_Temp_Scrapy
(
	FARMA varchar(6),
	CEHZ varchar(15),
	GENOTYP varchar(8),
	RIZSKUP varchar(5),
	PLEMENO varchar(100),
	POHL varchar(2),
	POCET varchar(3),
	plem char(2)
)
go

create table SP_PrPlem
(
	PLEMST varchar(8),
	ROKNAR varchar(4),
	DENPRIR float,
	POCDENPRIR float,
	KDPRIR float,
	POCKDPRIR float,
	DATUM date
)
go

create table EC_FakturyHelios
(
	ID int identity
		constraint PK_EC_FakturyHelios
			primary key,
	REGCIS nchar(6),
	NAZPRO nchar(100),
	MNOZSTVO int,
	JCBEZDANE float,
	CHOV nchar(10),
	KONZULENT nchar(10),
	CISZAM nchar(10),
	NAKSTRED nchar(10),
	NAZPOD nchar(100),
	ICO nchar(10),
	CISORG int,
	DATUMPRIP date,
	PORCISFAKT int not null
)
go

create table HIST_NM_HYDETAIL
(
	ID int identity
		primary key,
	KRAJ varchar(1) not null,
	OKRES varchar(2) not null,
	PODNIK varchar(3) not null,
	CHOV varchar(3) not null,
	CISKON varchar(5),
	CISZOO varchar(5),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	HIST_USER varchar(40)
)
go

create table CP_TelataPoLaktacii
(
	krava varchar(14),
	datotel date,
	t1 varchar(14),
	t1pochl int,
	t2 varchar(14),
	t2pochl int,
	t3 varchar(14),
	t3pochl int,
	otec varchar(10),
	ouc varchar(14),
	laktacia int
)
go

create table SM_SPOLUST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU date,
	LITRANO float,
	LITOBED float,
	LITVECER float,
	KUSRANO int,
	KUSOBED int,
	KUSVECER int,
	VERIF bit not null
)
go

create table lakt2_m
(
	CHOV varchar(9),
	Region varchar(2),
	PlemTyp varchar(10),
	PocLakN2 real,
	MedziobdL2 real,
	LaktDniL2 real,
	LakDniNL2 real,
	MliekNorL2 real,
	TukNorL2 real,
	BielkNorL2 real,
	LaktozaNL2 real,
	IPZL2 real,
	VyrZootechL2 varchar(4),
	VyrZdravDovL2 varchar(4)
)
go

create table SP_PrStad
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEMST varchar(8),
	DENPRIR float,
	POCDENPRIR float,
	KDPRIR float,
	POCKDPRIR float,
	SOKDPRIR float,
	ROKNAR varchar(4),
	DATUM date
)
go

create table NC_Dodavatel
(
	KOD varchar(2) not null
		constraint PK_NC_DODAVATEL
			primary key,
	NAZOV_DODAVATELA varchar(40)
)
go

create table GC_UzitZam
(
	UZITZST varchar(1) not null
		constraint PK_GC_UzitZam
			primary key,
	POPIS varchar(20)
)
go

create table laktCelkom_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	PocLakNcelk float,
	MedziobdCelk float,
	LaktDniCelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	LaktozaNCelk float,
	IPZCelk real,
	VyrZootechCelk varchar(4),
	VyrZdravDovCelk varchar(4)
)
go

create table HIST_NC_DruhHZ
(
	TYP varchar(1) not null,
	ZVIERA varchar(20),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key,
	KOD varchar(20)
)
go

create table Roc_MLHD_Tab_16
(
	Por bigint,
	Nazov varchar(100),
	Sidlo varchar(100),
	Uzitk_mlieka int,
	Prevaz_plem varchar(10),
	Uzav_lakt int,
	tuk_P float,
	bielk_P float,
	Priem_lakt float,
	Kraj varchar(30),
	rok varchar(4),
	Plem_typ varchar(6)
)
go

create table Ainbreeding2
(
	uscislo varchar(14),
	otec varchar(14),
	matka varchar(14),
	datnar date,
	pohlavie varchar(2),
	meno varchar(40),
	plemeno varchar(6),
	povoddat varchar(14),
	[koef_pribuznosti] bigint,
	IB_uscislo varchar(19),
	IB_otec varchar(19),
	IB_matka varchar(19),
	IB_datnar varchar(9),
	IB_meno varchar(40),
	IB_verifikacia varchar(2),
	IB_organiz varchar(35),
	koefpribuz float
)
go

create index IX_Ainbreeding_IB_uscislo
	on Ainbreeding2 (IB_uscislo)
go

create table SP_POCOVST
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	POCETVS int,
	POCET1 int,
	POCET2 int,
	POCET3 int,
	POCET4 int,
	POCET5 int,
	POCET6 int
)
go

create table CP_KravaPoslednaUzavLaktZaradeny
(
	cislokrava varchar(14),
	chovatel varchar(9),
	poslLakt int,
	medziobd int,
	vekOtel float,
	lakdni int,
	lakdniN int,
	mlieko int,
	mliekoN int,
	tuk int,
	tukN int,
	bielk int,
	bielkN int,
	BaT int,
	BaTN int,
	zmena int
)
go

create table NormLak1_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Do3500L1 real,
	Do4000L1 real,
	Do4500L1 real,
	Do5000L1 real,
	Do5500L1 real,
	Do6000L1 real,
	Do6500L1 real,
	Do7000L1 real,
	Do7500L1 real,
	Do8000L1 real,
	Do8500L1 real,
	Do9000L1 real,
	Do9500L1 real,
	Do10000L1 real,
	Do10500L1 real,
	Do11000L1 real,
	Do11500L1 real,
	Do12000L1 real,
	Do12500L1 real,
	Do13000L1 real,
	Do13500L1 real,
	Do14000L1 real,
	Od14000L1 real
)
go

create table Roc_MLHD_Tab_17
(
	Por varchar(3),
	Ciskravy varchar(14),
	PlTyp varchar(5),
	Plemeno varchar(30),
	Okres varchar(30),
	Podnik varchar(50),
	OLinReg varchar(15),
	Poc_lakt int,
	mlieko int,
	tuk_KG int,
	tuk_P float,
	bielk_KG int,
	bielk_P float,
	Lakt_dni int,
	MLK_PocL int,
	rok varchar(4),
	Plem_typ varchar(6)
)
go

create table CM_Vazenia_ds
(
	CISTELATA varchar(14) not null,
	DATVAZ date not null,
	HMOT float,
	RASTPAS varchar(1),
	CHOVVAZ varchar(9),
	TURNUS varchar(2),
	PRIZNAKKU varchar(1),
	DNIVAZ int,
	DNIPREPOC int,
	HMOTPREPOC float,
	PRIRPREPOC float,
	PRIR float,
	ZIVPRIR float,
	ZIVPRIRPREPOC float
)
go

create table SP_SPOLUSTO
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU1 date,
	LITRANO1 float,
	LITOBED1 float,
	LITVECER1 float,
	KUSRANO1 int,
	KUSOBED1 int,
	KUSVECER1 int,
	DODBERU2 date,
	LITRANO2 float,
	LITOBED2 float,
	LITVECER2 float,
	KUSRANO2 int,
	KUSOBED2 int,
	KUSVECER2 int,
	DODBERU3 date,
	LITRANO3 float,
	LITOBED3 float,
	LITVECER3 float,
	KUSRANO3 int,
	KUSOBED3 int,
	KUSVECER3 int,
	DODBERU4 date,
	LITRANO4 float,
	LITOBED4 float,
	LITVECER4 float,
	KUSRANO4 int,
	KUSOBED4 int,
	KUSVECER4 int,
	DODBERU5 date,
	LITRANO5 float,
	LITOBED5 float,
	LITVECER5 float,
	KUSRANO5 int,
	KUSOBED5 int,
	KUSVECER5 int,
	DODBERU6 date,
	LITRANO6 float,
	LITOBED6 float,
	LITVECER6 float,
	KUSRANO6 int,
	KUSOBED6 int,
	KUSVECER6 int,
	DODBERU7 date,
	LITRANO7 float,
	LITOBED7 float,
	LITVECER7 float,
	KUSRANO7 int,
	KUSOBED7 int,
	KUSVECER7 int,
	DODBERU8 date,
	LITRANO8 float,
	LITOBED8 float,
	LITVECER8 float,
	KUSRANO8 int,
	KUSOBED8 int,
	KUSVECER8 int
)
go

create table CP_PoslednaUzavretaLakt
(
	laktacia varchar(3),
	po4 int,
	po4N int,
	dni int,
	dniN int,
	mlieko int,
	mliekoN int,
	tuk int,
	tukN int,
	bielk int,
	bielkN int,
	TaB int,
	TaBN int,
	vek int,
	vekdni int,
	medzi int,
	medziN int,
	hovatel varchar(9),
	KOD_DOJ int,
	KOD_MEDZ int
)
go

create table GP_GMlZam
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	SMNL decimal(6,2),
	POCETMNL int,
	POCPRIP int,
	PERCPLODOK decimal(5,1),
	POCOKOT int,
	NAZOV varchar(50),
	UKAZML decimal(7,2),
	VYKKU varchar(1),
	Rok int
)
go

create table CR_TMHD_sumar_stvrtR
(
	ID int,
	vek varchar(35),
	pocet int,
	hmotnost int,
	dennpriras int,
	zivpriras int,
	chovatel varchar(9),
	pocetA int,
	percentA int,
	hmotnostA int,
	pocetB int,
	percentB int,
	hmotnostB int,
	pocetC int,
	percentC int,
	hmotnostC int,
	rok int,
	mesiacDO int,
	generovane date
)
go

create table NormLak2_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Do3500L2 real,
	Do4000L2 real,
	Do4500L2 real,
	Do5000L2 real,
	Do5500L2 real,
	Do6000L2 real,
	Do6500L2 real,
	Do7000L2 real,
	Do7500L2 real,
	Do8000L2 real,
	Do8500L2 real,
	Do9000L2 real,
	Do9500L2 real,
	Do10000L2 real,
	Do10500L2 real,
	Do11000L2 real,
	Do11500L2 real,
	Do12000L2 real,
	Do12500L2 real,
	Do13000L2 real,
	Do13500L2 real,
	Do14000L2 real,
	Od14000L2 real
)
go

create table CM_Paternita_All
(
	POHL varchar(6) not null,
	USCISLO varchar(15),
	STREG varchar(3),
	REG varchar(3),
	DATNAR date,
	PLEMENO varchar(134),
	CHOVATEL varchar(9),
	OSTREG varchar(3),
	OREG varchar(3),
	O_PA varchar(15),
	O_PLIS varchar(15),
	OLIN_PLIS varchar(3),
	OREG_PLIS int,
	O_suhlasi bit,
	M_PA varchar(15),
	M_PLIS varchar(15),
	M_suhlasi bit,
	KT bit not null,
	DNA bit not null,
	CISROZB varchar(7),
	KRVDAT date,
	PATDAT date,
	PATERNITA varchar(65),
	ZOOT varchar(30)
)
go

create table Roc_MLHD_Tab_1_Rocenka
(
	oblast varchar(100) not null,
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Den int,
	stpec_14Mesiac int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok int,
	Por varchar(3),
	DatumOd date,
	DatumDo date,
	datumGenerovania date,
	stpec_14 varchar(10)
)
go

create table CP_HTD_SB
(
	CISCHOVU varchar(9) not null,
	DATKONTR date not null,
	PORLAK varchar(2) not null,
	POCET int not null,
	PORADIE int not null,
	PLEM varchar(1) not null,
	constraint PK_CP_HTD_SB
		primary key (CISCHOVU, DATKONTR, PORLAK, PLEM)
)
go

create table SP_Rocenka_TypChovu
(
	Id int,
	Skrat varchar(3),
	Nazov varchar(32)
)
go

create table CC_DennaDobaKontroly
(
	kluc int not null,
	popis nchar(20)
)
go

create table CP_EXPORT_ZVAZY_CONF
(
	ZVAZ varchar(20),
	SP varchar(20),
	TABULKA varchar(50),
	MENO_SUBORU varchar(20),
	constraint uq_CP_EXPORT_ZVAZY_CONF
		unique (ZVAZ, TABULKA)
)
go

create table GM_CAP
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	CAPCIS varchar(8) not null,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORCIS varchar(4),
	PREG varchar(2),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	ROH varchar(4),
	DATNAR date,
	HMOTN float,
	DATOD date,
	HMOTOD float,
	STMENNAR varchar(1),
	KROKRNAR varchar(3),
	PODNIKNAR varchar(3),
	STADONAR varchar(3),
	NAZSTNAR varchar(30),
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	MIESTONT varchar(12),
	DATNT date,
	NTKRAJ varchar(1),
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BINTRASTU varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRIED varchar(2),
	TRZOVN varchar(2),
	UZDC float,
	PZIVHMOTNT float,
	CENABON float,
	KATCIS float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTNAZSTN varchar(30),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTROH varchar(4),
	OTDENPR float,
	OTDATN date,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTEXTER varchar(2),
	OTBMUZMA varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	OTTRUZ varchar(2),
	OTTRZOVN varchar(2),
	OTUZDC float,
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAROH varchar(4),
	MADENPR float,
	MADATN date,
	MASURV varchar(1),
	MAPK varchar(5),
	MAMUROK varchar(4),
	MAMAXUL varchar(1),
	MAMLIE float,
	MATUK float,
	MATPER float,
	MABIEL float,
	MABPER float,
	MALAK float,
	MALPER float,
	MAINPL float,
	MAODCH float,
	MAPOVOD varchar(2),
	MAEXTER varchar(2),
	MABMUZMA varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MATRUZ varchar(2),
	MATRZOVN varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMROH varchar(4),
	MMPK varchar(5),
	MMMUR varchar(4),
	MMMUL varchar(1),
	MMMLIE float,
	MMTUK float,
	MMTPER float,
	MMBIEL float,
	MMBPER float,
	MMLAK float,
	MMLPER float,
	MMINPL float,
	MMODCH float,
	MMTRUZ varchar(2),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMROH varchar(4),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMNAZSTN varchar(18),
	OMUZDC float,
	OMVYSTR varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOROH varchar(4),
	MOPK varchar(5),
	MOMUR varchar(4),
	MOMUL varchar(1),
	MOMLIE float,
	MOTUK float,
	MOTPER float,
	MOBIEL float,
	MOBPER float,
	MOLAK float,
	MOLPER float,
	MOINPL float,
	MOODCH float,
	MOTRUZ varchar(2),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOROH varchar(4),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OONAZSTN varchar(18),
	OOUZDC float,
	OOVYSTR varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	MOOLIN varchar(12),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	MMOLIN varchar(12),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	MOMLIN varchar(12),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	MMMLIN varchar(12),
	RokNar as case when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])<7 then datepart(year,[DATNAR]) when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])>6 then datepart(year,[DATNAR])+1 when isnumeric(replace([LUC],' ',''))=0 then 0 when CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0)>datepart(year,getdate()) then CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0)-10 else CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),5,1),0) end,
	CisLin as case when [luc] IS NULL then '????' else replace(substring([LUC],1,4),' ','0') end
)
go

create table NormLakCelk_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Do3500Celk real,
	Do4000Celk real,
	Do4500Celk real,
	Do5000Celk real,
	Do5500Celk real,
	Do6000Celk real,
	Do6500Celk real,
	Do7000Celk real,
	Do7500Celk real,
	Do8000Celk real,
	Do8500Celk real,
	Do9000Celk real,
	Do9500Celk real,
	Do10000Celk real,
	Do10500Celk real,
	Do11000Celk real,
	Do11500Celk real,
	Do12000Celk real,
	Do12500Celk real,
	Do13000Celk real,
	Do13500Celk real,
	Do14000Celk real,
	Od14000Celk real
)
go

create table CP_SIM_PripPLem
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table HIST_NC_CharChov
(
	DRUHHZ varchar(1),
	KOD varchar(1),
	NAZOV varchar(30),
	SKRATKA varchar(4),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table Roc_MLHD_Tab_21
(
	Por_okresu varchar(2),
	Okres varchar(30),
	Por_v_okrese varchar(1),
	Nazov varchar(50),
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok varchar(4)
)
go

create table CM_ZSTDM_new
(
	CISKRAVY varchar(14) not null,
	OTEC varchar(15),
	MATKA varchar(15),
	PORLAK varchar(2),
	ZMENA varchar(2),
	DATUMN date,
	DATOTEL date,
	DATKONTR date not null,
	CISCHOVU varchar(9),
	MLIEKO float,
	TUK float,
	TUKP float,
	BIELK float,
	BIELKP float,
	SB float,
	SCS float,
	DNI float,
	PL1 varchar(2),
	KR1 float,
	PL2 varchar(2),
	KR2 float,
	PL3 varchar(2),
	KR3 float,
	PL4 varchar(2),
	KR4 float,
	PL5 varchar(2),
	TYP varchar(2),
	constraint PK_CM_ZSTDM_new
		primary key (CISKRAVY, DATKONTR)
)
go

create table Roc_MLHD_Tab_22
(
	Okres varchar(30),
	Por_podniku varchar(5),
	Por_riadka varchar(1),
	stpec_1 varchar(2),
	stpec_2 varchar(2),
	stpec_3 varchar(2),
	stpec_4 varchar(2),
	stpec_5 varchar(10),
	stpec_6 varchar(100),
	stlpec_6c varchar(3),
	stpec_7 int,
	stpec_8 int,
	stpec_9 int,
	stpec_10 float,
	stpec_11 int,
	stpec_12 float,
	stpec_13 int,
	stpec_14Mesiac int,
	stpec_14Den int,
	stpec_15 int,
	stpec_16 int,
	stpec_17 int,
	stpec_18 float,
	stpec_19 int,
	stpec_20 float,
	stpec_21 int,
	stpec_22 int,
	stpec_23 int,
	stpec_24 int,
	stpec_25 int,
	stpec_26 float,
	stpec_27 int,
	stpec_28 float,
	stpec_29 int,
	rok varchar(4)
)
go

create table CC_DovodUhynu
(
	KOD varchar(1) not null,
	TEXT varchar(45)
)
go

create table SP_ZoznamChovov
(
	chov varchar(9) not null,
	Nazov varchar(25),
	StKU varchar(5),
	plemSt varchar(4),
	uzitZSt varchar(30),
	pocetBahnic int,
	pocetBaranov int,
	pocetPotomkov int,
	konzulent varchar(30),
	zootechnik varchar(30)
)
go

create table temp_kon
(
	CISKRAVY varchar(14) not null,
	DATKONTR date not null,
	ZNKONTR varchar(1),
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	CISCHOVU varchar(9),
	SKUPINA varchar(2),
	PREPOCET bit,
	MLIEKO float,
	MLIEKPR float,
	PRT float,
	PERCTUKU float,
	PERCBIELK float,
	PERCLAKTOZ float,
	BUNECELEM float,
	LAKTDNI float,
	PORPREBLAK int,
	PLATNOST bit not null,
	KodIntSB int,
	KodIntLD int,
	SPRACINSERT bigint,
	SPRACUPDATE bigint
)
go

create table PM_SKUPVJH
(
	STANICA_VJH varchar(2),
	CISLO_SKUPINY varchar(3),
	HYBR varchar(8),
	CHOVATEL_KRAJ varchar(1),
	CHOVATEL_OKRES varchar(2),
	CHOVATEL_PODNIK varchar(3),
	CHOVATEL_CHOV varchar(3),
	LIN varchar(4),
	REG varchar(5),
	MCIS varchar(5),
	KZ float,
	KZ1 float,
	OBSAHVSZ float,
	OBSAHVSZ1 float,
	USCIS varchar(7),
	KATEG varchar(1),
	DATNAR date,
	DEN30 date,
	DEN100 date,
	SKZ float,
	PORAZ date,
	DNYODN float,
	PRIR float,
	DNYV float,
	HMS float,
	HKRK float,
	HKOTL float,
	HSUN float,
	HPLEC float,
	MLD float,
	JDT float,
	VAHAMS float,
	CMC float,
	SLAN1 float,
	SLAN2 float,
	SLAN3 float,
	PRIEMSLAN float
)
go

create table CP_PIN_VAZENIA_TMHD
(
	CISTELATA varchar(14),
	DATVAZ date,
	HMOT float,
	ZIVOTNY_PRIRASTOK int,
	RP varchar(1)
)
go

create table GM_KOZA
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	KOZCIS varchar(8) not null,
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORCIS varchar(4),
	REGION varchar(2),
	PLEM varchar(10),
	GENOTYP varchar(7),
	RIZ_SKUP varchar(4),
	ROH varchar(4),
	DATNAR date,
	HMOTN float,
	DATOD date,
	HMOTOD float,
	NAZSTNAR varchar(30),
	STMENNAR varchar(1),
	KROKRNAR varchar(3),
	PODNIKNAR varchar(3),
	STADONAR varchar(3),
	SURV varchar(1),
	DATZAR date,
	DOVOD varchar(1),
	DATVYR date,
	PVRH float,
	NAPKOZL float,
	PATERN varchar(7),
	DATH70 date,
	HMOT70 float,
	DATH100 date,
	HMOT100 float,
	DENPRIR float,
	KDPRIR float,
	HVPORPR varchar(3),
	MIESTONT varchar(12),
	DATNT date,
	NTKRAJ varchar(1),
	MUROK varchar(4),
	MAXUL varchar(1),
	MLIE float,
	TUK float,
	TPER float,
	BIEL float,
	BPER float,
	LAK float,
	LPER float,
	HVPORML varchar(3),
	BMLUZ varchar(2),
	INPL float,
	ODCH float,
	BPOVOD varchar(2),
	BEXTER varchar(2),
	BMLUZMA varchar(2),
	BINTRASTU varchar(2),
	BCELKOM varchar(3),
	TRUZIT varchar(2),
	TRIED varchar(2),
	TRZOVN varchar(2),
	TRVLUZ varchar(2),
	PZIVHMOTNT float,
	CENABON float,
	KATCIS float,
	KODPK varchar(2),
	ZPK3 date,
	ZPK2 date,
	ZPK1 date,
	VYRPK date,
	STMENOT varchar(1),
	OTKROKR varchar(3),
	OTPODNIK varchar(3),
	OTSTADO varchar(3),
	OTNAZSTN varchar(30),
	OTLUC varchar(5),
	OTPUC varchar(5),
	OTCIS varchar(8),
	OTZVSTAT varchar(2),
	OTJCCEHZ varchar(12),
	OTROH varchar(4),
	OTDENPR float,
	OTDATN date,
	OTSURV varchar(1),
	OTPOVOD varchar(2),
	OTEXTER varchar(2),
	OTBMUZMA varchar(2),
	OTCELKOM varchar(3),
	OTTRIED varchar(2),
	OTTRUZ varchar(2),
	OTTRZOVN varchar(2),
	OTUZDC float,
	STMENMA varchar(1),
	MAKROKR varchar(3),
	MAPODNIK varchar(3),
	MASTADO varchar(3),
	MALUC varchar(5),
	MAPUC varchar(5),
	MACIS varchar(8),
	MAZVSTAT varchar(2),
	MAJCCEHZ varchar(12),
	MAROH varchar(4),
	MADENPR float,
	MADATN date,
	MASURV varchar(1),
	MAPK varchar(5),
	MAMUROK varchar(4),
	MAMAXUL varchar(1),
	MAMLIE float,
	MATUK float,
	MATPER float,
	MABIEL float,
	MABPER float,
	MALAK float,
	MALPER float,
	MAINPL float,
	MAODCH float,
	MAPOVOD varchar(2),
	MAEXTER varchar(2),
	MABMUZMA varchar(2),
	MACELKOM varchar(3),
	MATRIED varchar(2),
	MATRUZ varchar(2),
	MATRZOVN varchar(2),
	STMENMM varchar(1),
	MMKROKR varchar(3),
	MMPODNIK varchar(3),
	MMSTADO varchar(3),
	MMLUC varchar(5),
	MMPUC varchar(5),
	MMCIS varchar(8),
	MMZVSTAT varchar(2),
	MMJCCEHZ varchar(12),
	MMROH varchar(4),
	MMPK varchar(5),
	MMMUR varchar(4),
	MMMUL varchar(1),
	MMMLIE float,
	MMTUK float,
	MMTPER float,
	MMBIEL float,
	MMBPER float,
	MMLAK float,
	MMLPER float,
	MMINPL float,
	MMODCH float,
	MMTRUZ varchar(2),
	MMVYSTR varchar(2),
	OMLUC varchar(5),
	OMPUC varchar(5),
	OMCIS varchar(8),
	OMZVSTAT varchar(2),
	OMJCCEHZ varchar(12),
	OMROH varchar(4),
	STMENOM varchar(1),
	OMKROKR varchar(3),
	OMPODNIK varchar(3),
	OMSTADO varchar(3),
	OMNAZSTN varchar(17),
	OMUZDC float,
	OMVYSTR varchar(2),
	STMENMO varchar(1),
	MOKROKR varchar(3),
	MOPODNIK varchar(3),
	MOSTADO varchar(3),
	MOLUC varchar(5),
	MOPUC varchar(5),
	MOCIS varchar(8),
	MOZVSTAT varchar(2),
	MOJCCEHZ varchar(12),
	MOROH varchar(4),
	MOPK varchar(5),
	MOMUR varchar(4),
	MOMUL varchar(1),
	MOMLIE float,
	MOTUK float,
	MOTPER float,
	MOBIEL float,
	MOBPER float,
	MOLAK float,
	MOLPER float,
	MOINPL float,
	MOODCH float,
	MOTRUZ varchar(2),
	MOVYSTR varchar(2),
	OOLUC varchar(5),
	OOPUC varchar(5),
	OOCIS varchar(8),
	OOZVSTAT varchar(2),
	OOJCCEHZ varchar(12),
	OOROH varchar(4),
	STMENOO varchar(1),
	OOKROKR varchar(3),
	OOPODNIK varchar(3),
	OOSTADO varchar(3),
	OONAZSTN varchar(17),
	OOUZDC float,
	OOVYSTR varchar(2),
	OOOLUC varchar(5),
	OOOPUC varchar(5),
	OOOCIS varchar(8),
	OOOVYSTR varchar(2),
	MOOLUC varchar(5),
	MOOPUC varchar(5),
	MOOCIS varchar(8),
	MOOVYSTR varchar(2),
	MOOLIN varchar(12),
	OMOLUC varchar(5),
	OMOPUC varchar(5),
	OMOCIS varchar(8),
	OMOVYSTR varchar(2),
	MMOLUC varchar(5),
	MMOPUC varchar(5),
	MMOCIS varchar(8),
	MMOVYSTR varchar(2),
	MMOLIN varchar(12),
	OOMLUC varchar(5),
	OOMPUC varchar(5),
	OOMCIS varchar(8),
	OOMVYSTR varchar(2),
	MOMLUC varchar(5),
	MOMPUC varchar(5),
	MOMCIS varchar(8),
	MOMVYSTR varchar(2),
	MOMLIN varchar(12),
	OMMLUC varchar(5),
	OMMPUC varchar(5),
	OMMCIS varchar(8),
	OMMVYSTR varchar(2),
	MMMLUC varchar(5),
	MMMPUC varchar(5),
	MMMCIS varchar(8),
	MMMVYSTR varchar(2),
	MMMLIN varchar(12),
	RokNar as case when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])<7 then datepart(year,[DATNAR]) when [DATNAR] IS NOT NULL AND datepart(month,[DATNAR])>6 then datepart(year,[DATNAR])+1 when isnumeric(replace([LUC],' ',''))=0 then 0 when CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0)>datepart(year,getdate()) then CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0)-10 else CONVERT([int],substring(str(datepart(year,getdate()),4),1,3)+substring(replace([LUC],' ',''),1,1),0) end,
	CisLin as case when [otluc] IS NULL then '????' else replace(substring([OTLUC],1,4),' ','0') end
)
go

create table ZmenaL1_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Zmena10L1 real,
	Zmena30L1 real,
	Zmena31L1 real,
	Zmena40L1 real,
	Zmena41L1 real,
	Zmena42L1 real,
	Zmena43L1 real,
	ZmenaCelk1L1 real,
	Zmena51L1 real,
	Zmena52L1 real,
	Zmena53L1 real,
	Zmena54L1 real,
	Zmena55L1 real,
	Zmena56L1 real,
	Zmena57L1 real,
	Zmena58L1 real,
	Zmena59L1 real,
	Zmena60L1 real,
	Zmena61L1 real,
	Zmena62L1 real,
	ZmenaCelk2L1 real
)
go

create table temp_dupjal
(
	REGION nvarchar(255),
	CHOVUS nvarchar(255),
	CHOVNAR nvarchar(255),
	CISLOZV nvarchar(255),
	MATKA nvarchar(255),
	OTECLIN nvarchar(255),
	OTECREG nvarchar(255),
	PL1 nvarchar(255),
	PLKR1 float,
	PL2 nvarchar(255),
	PLKR2 float,
	PL3 nvarchar(255),
	PLKR3 float,
	PL4 nvarchar(255),
	PLKR4 float,
	PL5 nvarchar(255),
	DATNAR datetime,
	ML_CHOVATE nvarchar(255),
	ML_MATKA nvarchar(255),
	ML_OTECLIN nvarchar(255),
	ML_OTECREG nvarchar(255),
	ML_DATNAR datetime
)
go

create table Roc_MLHD_Tab_23
(
	Okres varchar(30),
	Por_podniku varchar(5),
	Sidlo varchar(30),
	predstavitel_1 varchar(100),
	funkcia_1 varchar(50),
	predstavitel_2 varchar(100),
	funkcia_2 varchar(50),
	stav_krav_1 varchar(5),
	stav_krav_2 varchar(5),
	vyr_kravy varchar(5),
	zar_prvostok varchar(5),
	nar_teliat varchar(5),
	pr_vek_rok int,
	pr_vek_mesiac int,
	priem_lakt float,
	rok varchar(4)
)
go

create table temp
(
	chovatel varchar(9),
	po4N int,
	po4 int,
	laktacia1 int,
	laktacia varchar(30),
	medzi int,
	vek varchar(63),
	vekOtel1 float,
	dni int,
	dniN int,
	mlieko int,
	mliekoN int,
	tuk int,
	tukN int,
	Bielk int,
	BielkN int,
	TaB int,
	TaBN int
)
go

create table CC_MB
(
	KOD varchar(1),
	TEXT varchar(45)
)
go

create table CR_KUHD_MesVysKUR
(
	VYR bit,
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOV varchar(3),
	NAZPOD varchar(50),
	NAZCHOV varchar(20),
	SKUP varchar(2),
	MESSP varchar(2),
	DATPOSK date,
	CISKRAVY varchar(14),
	PLEMKR varchar(26),
	DATNAR date,
	DATOT date,
	PORPREBLAK varchar(2),
	ZMENA varchar(2),
	ZNAK varchar(1),
	SPI float,
	PERSPOL float,
	ML1 float,
	ZN1 varchar(1),
	ML2 float,
	ZN2 varchar(1),
	ML3 float,
	ZN3 varchar(1),
	ML4 float,
	ZN4 varchar(1),
	ML5 float,
	ZN5 varchar(1),
	ML6 float,
	ZN6 varchar(1),
	ML7 float,
	ZN7 varchar(1),
	ML8 float,
	ZN8 varchar(1),
	ML9 float,
	ZN9 varchar(1),
	ML10 float,
	ZN10 varchar(1),
	ML11 float,
	ZN11 varchar(1),
	ML12 float,
	ZN12 varchar(1),
	NAPDNI float,
	NAPPERT float,
	NAPPERB float,
	NAPML float,
	NAPTK float,
	NAPBL float,
	UDNI float,
	UPERT float,
	UPERB float,
	UML float,
	UTK float,
	UBL float,
	SB1 float,
	SB2 float,
	PTUKU1 float,
	PBIELK1 float,
	PTB1 float,
	PTUKU2 float,
	PBIELK2 float,
	PTB2 float,
	OVEKR float,
	OVEKM float,
	POHLTEL varchar(2),
	PRIEBPOR varchar(1),
	DATINS date,
	PORINS varchar(2),
	IATERVAL float,
	SERVPER float,
	MEDZIOB float,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	DATOTOC date,
	OLIN varchar(3),
	OREG varchar(3),
	OTPLEM varchar(26),
	MATKA varchar(14),
	MAPLEM varchar(26),
	ZNVYR varchar(2),
	chovatel varchar(9),
	rok int,
	mesiac int,
	dekada int
)
go

create table SM_OVCERR
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	CISVZOR varchar(3),
	DODBERU date,
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8),
	ZVSTAT varchar(2),
	JCCEHZ varchar(12),
	PORAD int,
	DATOBAH date,
	DATODST date,
	MLRANO int,
	MLOBED int,
	MLVECER int,
	ROZBTUK float,
	ROZBBIEL float,
	ROZBLAKT float,
	SOMA varchar(5),
	PORLAK varchar(1),
	MLDEN int,
	ROKEV varchar(4),
	VYKKU varchar(1),
	MIMOSEZ bit not null
)
go

create table ZmenaL2_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Zmena10L2 real,
	Zmena30L2 real,
	Zmena31L2 real,
	Zmena40L2 real,
	Zmena41L2 real,
	Zmena42L2 real,
	Zmena43L2 real,
	ZmenaCelk1L2 real,
	Zmena51L2 real,
	Zmena52L2 real,
	Zmena53L2 real,
	Zmena54L2 real,
	Zmena55L2 real,
	Zmena56L2 real,
	Zmena57L2 real,
	Zmena58L2 real,
	Zmena59L2 real,
	Zmena60L2 real,
	Zmena61L2 real,
	Zmena62L2 real,
	ZmenaCelk2L2 real
)
go

create table temp_dupkra
(
	REGION nvarchar(255),
	CHOVUS nvarchar(255),
	CHOVNAR nvarchar(255),
	CISLOZV nvarchar(255),
	MATKA nvarchar(255),
	OTECLIN nvarchar(255),
	OTECREG nvarchar(255),
	PL1 nvarchar(255),
	PLKR1 float,
	PL2 nvarchar(255),
	PLKR2 float,
	PL3 nvarchar(255),
	PLKR3 float,
	PL4 nvarchar(255),
	PLKR4 float,
	PL5 nvarchar(255),
	DATNAR datetime,
	ML_CHOVATE nvarchar(255),
	ML_MATKA nvarchar(255),
	ML_OTECLIN nvarchar(255),
	ML_OTECREG nvarchar(255),
	ML_DATNAR datetime,
	ML_ZAVER nvarchar(255)
)
go

create table CC_PrepocetMlieka
(
	DENNADOBA int not null,
	INTERVAL int not null,
	PORADIELAKTACIE int not null,
	PREPKOEF float not null,
	POPISINT nchar(20)
)
go

create table SM_SPSTRR
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	DODBERU date,
	LITRANO float,
	LITOBED float,
	LITVECER float,
	KUSRANO int,
	KUSOBED int,
	KUSVECER int
)
go

create table ZmenaCelk
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real
)
go

create table CP_TLACRP_ES
(
	STRANA float,
	RIADOK float,
	CISKRAVY varchar(14),
	KROKR varchar(3),
	PODNIK varchar(3),
	CHOVMAS varchar(3),
	SKUPINA varchar(2),
	DATPOSK date,
	MESSP varchar(2),
	DEKSP varchar(1),
	MESKONN varchar(2),
	DATPREPOC1 date,
	DATPREPOC2 date,
	ROKKON varchar(2),
	DENDCH varchar(1),
	INTERCH varchar(1),
	DATINTD date,
	DATINTH date,
	ZMENA varchar(2),
	ZNAK varchar(1),
	DOJIVOST float,
	LDNI float,
	ZNBREZ varchar(1),
	FARBA varchar(2),
	DATINSP date,
	DATOTOC date
)
go

create index IX_CP_TLACRP_ES_CISKRAVY
	on CP_TLACRP_ES (CISKRAVY)
go

create table CE_DOKVAZMAS
(
	ID int not null,
	CISCHYBY int not null,
	PRIZNAKCHYBY varchar(1) not null
)
go

create index IX_CE_DOKVAZMAS_id
	on CE_DOKVAZMAS (ID)
go

create table CP_ZCHMD_Kravy
(
	CISKRAVY varchar(14),
	CHOVATEL varchar(9),
	DATNAR date,
	DATPOSOTEL date,
	PLEMENO varchar(36),
	MATKA varchar(15),
	OTECLIN varchar(3),
	OTECREG int,
	OUC varchar(15),
	HMOTNAR float,
	HMOT120 float,
	DATUM120 date,
	HMOT210 float,
	DATUM210 date,
	HMOT365 float,
	DATUM365 date,
	HMOT500 float,
	DATUM500 date,
	ZAVER varchar(2)
)
go

create table CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB
(
	ROKSPRAC varchar(4),
	MESSPRAC varchar(2),
	BYK varchar(15),
	DATNAR varchar(3),
	BLIN varchar(3),
	SREG varchar(3),
	MENBYK varchar(40),
	stada float,
	cery float,
	PLEMENO varchar(38),
	SC305 float,
	RPHSC float,
	RELSB float,
	SKUPINA varchar(1),
	Preskupinovane varchar(1),
	CHEKMEOUT varchar(3)
)
go

create index IX_CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB_BYK
	on CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB (BYK)
go

create table GC_Plemena
(
	KODPL2 varchar(2),
	UZITZAM varchar(1),
	NAZOV varchar(25)
)
go

create table temp_telata_dovvyr
(
	IDTELATA int identity,
	DOVVYR varchar(2),
	DATVYR date
)
go

create table ZmenaCelk_m
(
	CHOV varchar(10),
	Region varchar(2),
	PlemTyp varchar(10),
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real
)
go

create table HIST_NC_CharUst
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CC_ChybyKU
(
	CISCHYBY int not null,
	TEXTCHYBY varchar(200),
	ZNCH_CP_UPD varchar(1),
	ZNCH_CZ_INS varchar(1),
	ZNCH_CZ_UPD varchar(1),
	ZNCH_CO_INS varchar(1),
	ZNCH_CO_UPD varchar(1),
	ZNCH_CS_UPD varchar(1),
	ZNCH_CR_INS varchar(1),
	ZNCH_CR_UPD varchar(1),
	ZNCH_CK_INS varchar(1),
	ZNCH_CK_UPD varchar(1),
	ZNCH_CT_INS varchar(1),
	ZNCH_CT_UPD varchar(1),
	ZNCH_CL_INS varchar(1),
	ZNCH_CV_INS varchar(1),
	ZNCH_CW_INS varchar(1),
	ZNCH_CM_INS varchar(1),
	ZNCH_CM_UPD varchar(1),
	OD float,
	DO float
)
go

create table CP_CHOVPL
(
	CHOVATEL varchar(9),
	PL varchar(2),
	KRV float
)
go

create table EC_RiadokFaktury_Hist
(
	IDR int not null,
	Pocet int not null,
	Produkt varchar(5) not null,
	Suma decimal(10,2) constraint DF_EC_RiadokFaktury_Hist_Suma default 0 not null,
	SumaCelkom decimal(10,2) constraint DF_EC_RiadokFaktury_Hist_SumaCelkom default 0 not null,
	Priplatok decimal(10,2) constraint DF_EC_RiadokFaktury_Hist_Priplatok default 0 not null,
	PriplatokPerc decimal(10,2) constraint DF_EC_RiadokFaktury_Hist_PriplatokPerc default 0 not null,
	TypZmeny varchar(50),
	DatumZmeny datetime,
	Zmenil varchar(255),
	KomentarKZmene varchar(255),
	DatumPotvrdenia datetime,
	Potvrdil varchar(255),
	DatumZrusenia datetime,
	KomentarKZruseniu varchar(255),
	KodZmeny smallint constraint DF_EC_RiadokFaktury_Hist_KodZmeny default 0
)
go

create table CustomDB_Register
(
	LOGIN nvarchar(256) not null,
	USCISLO varchar(15) not null,
	constraint PK_CustomDB_Register
		primary key (LOGIN, USCISLO)
)
go

create table GM_MLPLEMRR
(
	ROK varchar(4) not null,
	PLEM varchar(8) not null,
	POCETVS float,
	POCETMNL float,
	POCETTNL float,
	POCETBNL float,
	POCETLNL float,
	SMNL float,
	STNL float,
	SPTNL float,
	SBNL float,
	SPBNL float,
	SLNL float,
	SPLNL float,
	STKU varchar(1),
	VYKKU varchar(1),
	Plem1 as substring([Plem],1,2)
)
go

create table CM_InterbullHolSB_BAK_ROUND
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	[Krajina registrácie býka] nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	Číslo nvarchar(14),
	Meno nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH Somatické bunky] float,
	[PH Mastitída] float
)
go

create table SM_OvcePat
(
	DnaID int,
	Zviera1 int,
	Vysledok int,
	LUC varchar(15),
	CEHZ varchar(15),
	pohlavie tinyint,
	DatNar datetime2,
	OTLUC varchar(15),
	OTCEHZ varchar(15),
	MALUC varchar(15),
	MACEHZ varchar(15),
	plemeno varchar(50),
	DatumPrijmu datetime2,
	vysledokID int,
	vysledoktestu varchar(100),
	Maxdatanal datetime2
)
go

create table SM_REGCHOV
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	NAZST varchar(30),
	NAZPOD varchar(50),
	BARA1 float,
	BARA2 float,
	BARA3 float,
	BARB1 float,
	BARB2 float,
	BARB3 float,
	BARZIV float,
	BAHA1 float,
	BAHA2 float,
	BAHA3 float,
	BAHB1 float,
	BAHB2 float,
	BAHB3 float,
	BAHZIV float,
	POTBARA3 float,
	POTJAHA3 float,
	POTBARB3 float,
	POTJAHB3 float,
	POTBARZIJ float,
	POTJAHZIJ float,
	ROKZAR varchar(4),
	DATZAR date,
	PLEM varchar(2),
	REGCIS varchar(11)
)
go

create table CC_UrcenieTelata
(
	KOD varchar(1) not null,
	TEXT varchar(45)
)
go

create table CC_Povod
(
	POPIS varchar(50),
	PRETLAC varchar(12),
	KOD int
)
go

create table SP_REPRKRAJ
(
	KRAJ smallint,
	NAZOV varchar(20),
	JESD varchar(2),
	PLEMENO varchar(8),
	NAZSTKU varchar(7),
	POCSTAD int,
	POCPRIP int,
	PRCASVYR int,
	POCJAL int,
	POCOBAH int,
	POCJAH int,
	PERCOPL float,
	PERCPLOD float,
	PERCPLODOB float,
	ROKEV1 varchar(4),
	ROKEV2 varchar(2),
	STKU varchar(1),
	Rok int
)
go

create table CP_ZoznamChovov
(
	chov varchar(9) not null,
	Nazov varchar(25),
	typKU varchar(4),
	pocetKrav int,
	pocetTeliat int,
	zootechnik varchar(30),
	konzulent varchar(30)
)
go

create index idx_chov
	on CP_ZoznamChovov (chov)
go

create table CM_InterbullSimSB_BAK_ROUND
(
	Obdobie nvarchar(9),
	[Plemeno býka] nvarchar(3),
	[Krajina registrácie býka] nvarchar(3),
	Linia nvarchar(3),
	Register nvarchar(3),
	[Číslo býka] nvarchar(14),
	[Meno býka] nvarchar(50),
	[Počet stád] float,
	[Počet dcér] float,
	[Efektívne dcéry] float,
	Spoľahlivosť float,
	[PH Somatické bunky] float,
	[PH Mastitída] float
)
go

create table CR_Zoznam_nar_teliat_KUMP_2
(
	chov varchar(9),
	Cislo_Telata varchar(14),
	Dat_Nar date,
	Pohlavie varchar(2),
	Plemeno varchar(40),
	Preukaz varchar(15),
	Farba varchar(2),
	URtel varchar(1),
	HmotNar decimal(18),
	PriebPor varchar(2),
	Matka varchar(14),
	O_Meno varchar(50),
	Lin_Reg varchar(8),
	Otec varchar(14),
	mesiac int,
	rok int,
	SPRACINSERT bigint,
	DOVVYR varchar(2),
	generovane date
)
go

create table CC_VazeniaZaver
(
	Kod varchar(2),
	Nazov varchar(50),
	Kod_vyradenia varchar(2)
)
go

create table CM_KravyTDM
(
	ROKSPRAC varchar(4),
	MESSPRAC varchar(2),
	CISLO varchar(14),
	SPI float,
	REL float,
	M305 float,
	RPHM float,
	T305 float,
	RPHT float,
	B305 float,
	RPHB float
)
go

create index IX_CM_KravyTDM_CISLO
	on CM_KravyTDM (CISLO)
go

create table NM_InfoEmail
(
	CHOVATEL varchar(9),
	EMAIL varchar(255),
	TYPZV varchar(10),
	MENO varchar(100),
	PRIEZVISKO varchar(255),
	FIRMA varchar(255),
	OBEC varchar(255),
	UserName varchar(255),
	poznamka varchar(255)
)
go

create table SM_MaxMl
(
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	LUC varchar(5),
	PUC varchar(5),
	BAHCIS varchar(8) not null,
	DATOBAH date,
	DATODST date,
	PORLAK varchar(1),
	ROKEV varchar(4),
	MNL float,
	TNL float,
	BNL float,
	LNL float,
	PTNL float,
	PBNL float,
	PLNL float,
	MNL3L float,
	TNL3L float,
	BNL3L float,
	LNL3L float,
	HVPORML varchar(3),
	HVPORTL varchar(3),
	HVPORBL varchar(3),
	HVPORLL varchar(3),
	SMNL3L float,
	STNL3L float,
	SBNL3L float,
	SLNL3L float,
	SPTNL float,
	SPBNL float,
	SPLNL float,
	PMNL3L float,
	PTNL3L float,
	PBNL3L float,
	PLNL3L float,
	PPTNL float,
	PPBNL float,
	PPLNL float,
	PHVPORML varchar(3),
	PHVPORTL varchar(3),
	PHVPORBL varchar(3),
	PHVPORLL varchar(3),
	PUZLAK smallint,
	PROKEV varchar(4),
	PPORLAK varchar(1)
)
go

create index [NonClusteredIndex-20160226-083811]
	on SM_MaxMl (BAHCIS)
go

create table CP_PIN_PripPlem
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	POCINS float,
	DATINS1 date,
	BYKLIN1 varchar(3),
	BYKREG1 varchar(3),
	DATINS date,
	BYKLIN varchar(3),
	BYKREG varchar(3),
	ZNAKTEL varchar(1)
)
go

create table CP_SPRAC_MAIL
(
	UserName nvarchar(256) not null,
	IDR bigint not null,
	UUID varchar(36) not null
)
go

create table CM_AlterByci
(
	IDBYKA int,
	ALTERUC varchar(15),
	ALTERMENO varchar(40),
	IDALTERKRAJINY int
)
go

create table CP_PIN_LAKT
(
	CISKRAVY varchar(14),
	PORLAK varchar(2),
	DATOTEL date,
	DATUKONL date,
	LAKTDNI float,
	MLIEKO decimal(7),
	TUK decimal(7,2),
	BIELK decimal(7,2),
	LAKTOZA decimal(7,2),
	SOMBUN float,
	SPOSOBKU varchar(1),
	ZMENA varchar(2),
	INDPER float,
	INDLAK decimal(7,1)
)
go

create table Roc_MPHD_TAB99_porody_graf
(
	plemeno varchar(3),
	januar_pocet int,
	januar_perc float,
	februar_pocet int,
	februar__perc float,
	marec_pocet int,
	marec__perc float,
	april_pocet int,
	april__perc float,
	maj_pocet int,
	maj__perc float,
	jun_pocet int,
	jun__perc float,
	jul_pocet int,
	jul__perc float,
	august_pocet int,
	august__perc float,
	september_pocet int,
	september__perc float,
	oktober_pocet int,
	oktober__perc float,
	november_pocet int,
	november__perc float,
	december_pocet int,
	december__perc float,
	pocet_rok int,
	rok int
)
go

create table CP_BLUP_ACCC
(
	cislo varchar(15),
	nd decimal(6),
	nr decimal(6),
	relm decimal(7,4),
	relt decimal(7,4),
	relb decimal(7,4),
	plem char(1)
)
go

create table HIST_NC_KapUst
(
	KOD varchar(1),
	NAZOV varchar(30),
	HIST_USER varchar(40),
	HIST_DATE datetime,
	HIST_TYPE varchar(10),
	ID int identity
		primary key
)
go

create table CM_Mocovina
(
	CIS_KRAVY nvarchar(14),
	CHOV varchar(10),
	DATROZB date,
	LAKTACE float,
	KG_MLEKA float,
	TUK float,
	MOCOV float,
	BIL float,
	SOM_BUN float,
	LAKTACERep float
)
go

create index IX_CM_Mocovina_CISKRAVY_DATROZB
	on CM_Mocovina (CIS_KRAVY, DATROZB)
go

create index IX_CM_Mocovina_DATROZB_INC_CHOV
	on CM_Mocovina (DATROZB, CHOV)
go

create table SP_BaranyZijuceZCEHZ
(
	CEHZ varchar(14),
	DatNar date,
	FarmaNar varchar(6),
	Plemeno varchar(40),
	Farma varchar(6)
)
go

create table CP_PIN_VAZENIA_KUMP
(
	CISTELATA varchar(14),
	DATVAZ date,
	HMOT float,
	ZIVOTNY_PRIRASTOK int,
	RP varchar(1)
)
go

create table CP_CHovKravaMesVysledky
(
	CHOV varchar(9),
	SKUPINA varchar(2),
	CISKRAVY varchar(14),
	DATNAR date,
	TypPlem varchar(3),
	DATKONTR1 datetime,
	NazovPodniku varchar(50),
	NazovChovu varchar(30),
	PORLAK int,
	NapDni float,
	NapPerT float,
	NapPerB float,
	NapML float,
	NapTK float,
	NapBL float,
	NUDni float,
	NUML float,
	NUTk float,
	NUBl float,
	NUPert float,
	NUPerB float,
	ZMENA varchar(2),
	ZNAK varchar(1),
	DATOTEL date,
	rokot int,
	mesot int,
	PomTB float,
	PohlTel varchar(2),
	PRIEBPOROD varchar(1),
	MEDZIOBD float,
	DOVVYR varchar(2),
	TRUZIT varchar(3),
	INTERVAL float,
	SERVISPER float,
	SPI float,
	SPOLAH float,
	SB1 int,
	SB2 int,
	ivyse varchar(1),
	IPOIN int,
	IBLIN varchar(3),
	IBREG int,
	IDAINMAX date,
	DatumTlace datetime not null,
	ID bigint
)
go

create table SP_Rocenka_PrirStr
(
	id int,
	TypPlem varchar(256),
	Zameranie varchar(256),
	TypChovu varchar(256),
	Plemeno varchar(256),
	KrOkr varchar(256),
	Podnik varchar(256),
	Stado varchar(256),
	NazovStada varchar(256),
	PlemenoStada varchar(256),
	Pocet_bar int,
	Pocet_jah int,
	PriemHmot_bar decimal(5,1),
	PriemHmot_jar decimal(5,1),
	PriemPocetDni_bar int,
	PriemPocetDni_jar int,
	PriemHodn_bar int,
	PriemHodn_jah int,
	PlemenoNazov varchar(256),
	TypChovuNazov varchar(256),
	Rok varchar(4)
)
go

create table Roc_MPHD_Tab_zaklad
(
	Kraj varchar(1),
	Okres varchar(2),
	Podnik varchar(3),
	Chov varchar(2),
	Mastal varchar(1),
	CisloZv varchar(14),
	OtecLIN varchar(3),
	OtecReg int,
	Typ varchar(3),
	Pohl varchar(2),
	KrJal varchar(2),
	Porlak int,
	Hmotnar float,
	Priebpor varchar(1),
	Vykon int,
	Dovvyr int,
	Datvyr date,
	Datnar date,
	Datotel date,
	Hm120 int,
	Vek120 int,
	Hm210 int,
	Vek201 int,
	Hm365 int,
	Vek365 int,
	Hm500 int,
	Vek500 int,
	Vek_otel_dni int,
	Medziobd int,
	Pocet_dni_na_chove int,
	rok varchar(5),
	PL1 varchar(2),
	KR1 float
)
go

create table SP_SMlZam_Z
(
	PORADIE int,
	KROKR varchar(3),
	PODNIK varchar(3),
	STADO varchar(3),
	PLEM varchar(8),
	SMNL decimal(6,2),
	POCETMNL int,
	POCPRIP int,
	POCOBAH int,
	PERCPLODOB decimal(5,1),
	NAZOV varchar(50),
	UKAZML decimal(7,2),
	BAROHOD int,
	BARER int,
	BARPREDV int,
	ZBAHPK int,
	BARCEL1 int,
	PTEST1 int,
	PSUHL1 int,
	BARCEL2 int,
	PTEST2 int,
	PSUHL2 int,
	STKU varchar(3),
	Rok int
)
go

create table CM_PHBYCIMP
(
	BLIN varchar(3),
	BREG varchar(3),
	ANIMAL varchar(14),
	MENO varchar(36),
	PL varchar(2),
	DATNAR date,
	PHHMOT120 float,
	PHHMOT210 float,
	PHHMOT365 float,
	N_POTOMKOV float,
	N_STAD float,
	SPOLAHL float,
	MAJITEL varchar(40),
	DATE_EVAL nchar(9)
)
go

create index IX_CM_PHBYCIMP_ANIMAL
	on CM_PHBYCIMP (ANIMAL)
go

create table CP_BLUP_ACCB
(
	cislo varchar(15),
	nd decimal(6),
	nr decimal(6),
	relm decimal(7,4),
	relt decimal(7,4),
	relb decimal(7,4),
	plem char(1)
)
go

create table CP_SPOL_RodkByk
(
	LIN varchar(3),
	REG varchar(3),
	USCISLO varchar(15),
	MENO varchar(40),
	MENO1 varchar(20),
	OTECLIN varchar(3),
	OTECREG varchar(3),
	OUC varchar(15),
	OMENO varchar(40),
	OMENO1 varchar(20),
	OPK varchar(5),
	OPLEMENO varchar(30),
	ORPHM varchar(4),
	ORPHT varchar(4),
	ORPHB varchar(4),
	MATKA varchar(15),
	MMENO varchar(40),
	MMENO1 varchar(20),
	MPK varchar(5),
	MPLEMENO varchar(30),
	MTRIEDA varchar(3),
	MMAX varchar(2),
	MMAXML varchar(5),
	MMAXT varchar(3),
	MMAXB varchar(3),
	MPERCT varchar(10),
	MPERCB varchar(10),
	MVSET varchar(2),
	MNORM varchar(2),
	MPRML varchar(5),
	MPRT varchar(3),
	MPRB varchar(3),
	MPRTB varchar(4),
	MPRPERCT varchar(6),
	MPRPERCB varchar(6),
	MPRPERCTB varchar(7),
	OOLIN varchar(3),
	OOREG varchar(3),
	OOUC varchar(15),
	OOMENO varchar(60),
	OOPK varchar(3),
	OOPLEMENO varchar(173),
	OORPHM varchar(4),
	OORPHT varchar(4),
	OORPHB varchar(4),
	MO varchar(15),
	MOMENO varchar(40),
	MOPK varchar(5),
	MOPLEMENO varchar(173),
	MOTRIEDA varchar(3),
	MOMAX varchar(2),
	MOMAXML varchar(5),
	MOMAXT varchar(3),
	MOMAXB varchar(3),
	MOPERCT varchar(10),
	MOPERCB varchar(9),
	MOPRML varchar(5),
	MOPRT varchar(3),
	MOPRB varchar(3),
	MOPRTB varchar(4),
	MOPRPERCT varchar(6),
	MOPRPERCB varchar(6),
	MOPRPERCTB varchar(7),
	OMLIN varchar(3),
	OMREG varchar(3),
	OMUC varchar(15),
	OMMENO varchar(60),
	OMPK varchar(5),
	OMPLEMENO varchar(173),
	OMRPHM varchar(4),
	OMRPHT varchar(4),
	OMRPHB varchar(4),
	MM varchar(15),
	MMMENO varchar(40),
	MMPK varchar(5),
	MMPLEMENO varchar(173),
	MMTRIEDA varchar(3),
	MMMAX varchar(2),
	MMMAXML varchar(5),
	MMMAXT varchar(3),
	MMMAXB varchar(3),
	MMPERCT varchar(10),
	MMPERCB varchar(9),
	MMPRML varchar(5),
	MMPRT varchar(3),
	MMPRB varchar(3),
	MMPRTB varchar(4),
	MMPRPERCT varchar(6),
	MMPRPERCB varchar(6),
	MMPRPERCTB varchar(7)
)
go

create table PP_U5011
(
	PODNIK varchar(1) not null,
	OKRES varchar(2) not null,
	ZAVOD varchar(3) not null,
	CHOV varchar(3) not null,
	MATKA varchar(5) not null,
	LINOTCA varchar(4),
	REGOTCA varchar(5),
	LINREG varchar(9),
	STHYBR varchar(8),
	NARODENE date not null,
	USCISLO varchar(7) not null,
	POHLAVIE varchar(1),
	STRUKY varchar(2),
	DOVVYR varchar(2),
	DATZAP date,
	DATOPR date,
	PARZAP varchar(5),
	PAROPR varchar(5),
	PORCIS varchar(3),
	DATMER date,
	MERSKUP varchar(2),
	VAHA float,
	SLAN float,
	PHA float,
	PIGSL1 float,
	PIGSL2 float,
	PIGSVAL float,
	HMC float,
	ELVOD float,
	DATPOP date,
	CISKAT varchar(3),
	DATTRHU date,
	PORVRH float,
	VSET float,
	ZIVE float,
	DOCH float,
	VAHA1 float,
	PVSET float,
	PZIVE float,
	PDOCH float,
	PVAHA float,
	ZNAK varchar(1),
	DNA varchar(2),
	SPRACDEK varchar(1),
	NAZMES varchar(9),
	SPRACROK varchar(4),
	NAZOKR varchar(30),
	NAZZAV varchar(50),
	NAZOV varchar(30),
	VEK float,
	PRIR float,
	PPRIR float,
	PSLAN float,
	PHMC float,
	SPIJ float,
	constraint PK_PP_U5011
		primary key (PODNIK, OKRES, ZAVOD, CHOV, MATKA, NARODENE, USCISLO)
)
go

create table CR_LaktacneZostavy_Opr
(
	Oznacenie varchar(10),
	DatumOd date,
	DatumDo date,
	Region varchar(2),
	PlemTyp varchar(10),
	PocZapojL1 int,
	PocLakV1 float,
	PocLakN1 float,
	MedziobdL1 varchar(10),
	LakdniL1 float,
	LakdniNL1 float,
	MliekNorL1 float,
	TukNorL1 float,
	BielkNorL1 float,
	LaktozaNL1 float,
	IPZL1 real,
	VyrZootechL1 varchar(4),
	VyrZdravDovL1 varchar(4),
	PocZapojL2 int,
	PocLakV2 float,
	PocLakN2 float,
	MedziobdL2 float,
	LaktDniL2 float,
	LakDniNL2 float,
	MliekNorL2 float,
	TukNorL2 float,
	BielkNorL2 float,
	LaktozaNL2 float,
	IPZL2 real,
	VyrZootechL2 varchar(4),
	VyrZdravDovL2 varchar(4),
	PocZapojCelk int,
	PocLakVcelk float,
	PocLakNcelk float,
	MedziobdCelk float,
	LaktDniCelk float,
	LakDniNCelk float,
	MliekNorCelk float,
	TukNorCelk float,
	BielkNorCelk float,
	LaktozaNCelk float,
	IPZCelk real,
	VyrZootechCelk varchar(4),
	VyrZdravDovCelk varchar(4),
	Do3500L1 real,
	Do4000L1 real,
	Do4500L1 real,
	Do5000L1 real,
	Do5500L1 real,
	Do6000L1 real,
	Do6500L1 real,
	Do7000L1 real,
	Do7500L1 real,
	Do8000L1 real,
	Do8500L1 real,
	Do9000L1 real,
	Do9500L1 real,
	Do10000L1 real,
	Do10500L1 real,
	Do11000L1 real,
	Do11500L1 real,
	Do12000L1 real,
	Do12500L1 real,
	Do13000L1 real,
	Do13500L1 real,
	Do14000L1 real,
	Od14000L1 real,
	Do3500L2 real,
	Do4000L2 real,
	Do4500L2 real,
	Do5000L2 real,
	Do5500L2 real,
	Do6000L2 real,
	Do6500L2 real,
	Do7000L2 real,
	Do7500L2 real,
	Do8000L2 real,
	Do8500L2 real,
	Do9000L2 real,
	Do9500L2 real,
	Do10000L2 real,
	Do10500L2 real,
	Do11000L2 real,
	Do11500L2 real,
	Do12000L2 real,
	Do12500L2 real,
	Do13000L2 real,
	Do13500L2 real,
	Do14000L2 real,
	Od14000L2 real,
	Do3500Celk real,
	Do4000Celk real,
	Do4500Celk real,
	Do5000Celk real,
	Do5500Celk real,
	Do6000Celk real,
	Do6500Celk real,
	Do7000Celk real,
	Do7500Celk real,
	Do8000Celk real,
	Do8500Celk real,
	Do9000Celk real,
	Do9500Celk real,
	Do10000Celk real,
	Do10500Celk real,
	Do11000Celk real,
	Do11500Celk real,
	Do12000Celk real,
	Do12500Celk real,
	Do13000Celk real,
	Do13500Celk real,
	Do14000Celk real,
	Od14000Celk real,
	Zmena10L1 real,
	Zmena30L1 real,
	Zmena31L1 real,
	Zmena40L1 real,
	Zmena41L1 real,
	Zmena42L1 real,
	Zmena43L1 real,
	ZmenaCelk1L1 real,
	Zmena51L1 real,
	Zmena52L1 real,
	Zmena53L1 real,
	Zmena54L1 real,
	Zmena55L1 real,
	Zmena56L1 real,
	Zmena57L1 real,
	Zmena58L1 real,
	Zmena59L1 real,
	Zmena60L1 real,
	Zmena61L1 real,
	Zmena62L1 real,
	ZmenaCelk2L1 real,
	Zmena10L2 real,
	Zmena30L2 real,
	Zmena31L2 real,
	Zmena40L2 real,
	Zmena41L2 real,
	Zmena42L2 real,
	Zmena43L2 real,
	ZmenaCelk1L2 real,
	Zmena51L2 real,
	Zmena52L2 real,
	Zmena53L2 real,
	Zmena54L2 real,
	Zmena55L2 real,
	Zmena56L2 real,
	Zmena57L2 real,
	Zmena58L2 real,
	Zmena59L2 real,
	Zmena60L2 real,
	Zmena61L2 real,
	Zmena62L2 real,
	ZmenaCelk2L2 real,
	Zmena10Celk real,
	Zmena30Celk real,
	Zmena31Celk real,
	Zmena40Celk real,
	Zmena41Celk real,
	Zmena42Celk real,
	Zmena43Celk real,
	ZmenaCelk1Celk real,
	Zmena51Celk real,
	Zmena52Celk real,
	Zmena53Celk real,
	Zmena54Celk real,
	Zmena55Celk real,
	Zmena56Celk real,
	Zmena57Celk real,
	Zmena58Celk real,
	Zmena59Celk real,
	Zmena60Celk real,
	Zmena61Celk real,
	Zmena62Celk real,
	ZmenaCelk2Celk real,
	Filter varchar(50),
	datumGenerovania date,
	EkoChov varchar(1)
)
go

create table CP_CHovKravaRP
(
	CHOV varchar(9),
	SKUPINA varchar(2),
	CISKRAVY varchar(14),
	DATKONTR1 datetime,
	DATID datetime,
	DATIH datetime,
	DENDOBA varchar(1),
	INTERVAL varchar(1),
	DATPREPOCET1 date,
	FARBA varchar(2),
	MLIEKPR float,
	LAKTDNI float,
	ZMENA varchar(2),
	ZNAK varchar(1),
	IVYSE varchar(1),
	IDAIN date,
	DOVVYR varchar(2),
	DATVYR date,
	ID bigint,
	RIADOK int,
	STRANA int,
	DatumTlace datetime,
	STRANACHOV int
)
go

create table Roc_MPHD_TAB_natalita
(
	Plemeno varchar(50),
	PLEMPRIS varchar(3),
	priemerny_stav_krav int,
	pocet_nar_teliat_od_krav int,
	pocet_nar_teliat_od_KaJ int,
	pocet_uhyn_teliat_od_KaJ int,
	zivo_nar_tel_na_100_krav float,
	HN float,
	CN float,
	rok int
)
go

create table NC_Obec
(
	KRAJ varchar(2),
	OKRES varchar(2),
	CISKOD varchar(6),
	NAZOV varchar(40),
	PSC varchar(5),
	DPOSTA varchar(40)
)
go

create table CP_CHovyRP
(
	CHOV varchar(9),
	SKUPINA varchar(2),
	DATKONTR1 datetime,
	DENDOBA varchar(1),
	INTERVAL varchar(1)
)
go

create table Roc_MPHD_Tab_GRAF_HmTeliat_120_210
(
	B_120_1 float,
	J_120_1 float,
	B_210_1 float,
	J_210_1 float,
	B_120_2 float,
	J_120_2 float,
	B_210_2 float,
	J_210_2 float,
	B_120_3 float,
	J_120_3 float,
	B_210_3 float,
	J_210_3 float,
	B_120_4 float,
	J_120_4 float,
	B_210_4 float,
	J_210_4 float,
	rok int
)
go

create table CR_Zoznam_teliat_za_mesiac
(
	chov varchar(9),
	Cislo_Telata varchar(14),
	Dat_Nar date,
	Pohlavie varchar(3),
	ET int,
	PK varchar(3),
	Plemeno varchar(50),
	Preukaz varchar(11),
	Farba int,
	Matka varchar(14),
	Por_Lakt int,
	teln int,
	M_PK varchar(3),
	MM varchar(14),
	OM varchar(14),
	MO varchar(14),
	OO varchar(14),
	O_Meno varchar(50),
	Lin_Reg varchar(7),
	Otec varchar(14),
	OM_Lin_Reg varchar(7),
	OO_Lin_Reg varchar(7),
	mesiac int,
	rok int,
	dekada int,
	typ_vlozenia int,
	IDR bigint,
	O_PK varchar(3),
	id int identity
)
go

create table CP_Meso_OcakavaneOrtel
(
	ciskrava varchar(14),
	datinsem date,
	bik varchar(10),
	datOcOtel date
)
go

CREATE VIEW dbo.View_CP_ChovPL1
AS
SELECT        TOP (100) PERCENT CHOVATEL, PL1 AS PL, SUM(KR1) AS KRV
FROM            dbo.CM_Krava
WHERE        (PRIZNAKKU = '1' OR
                         PRIZNAKKU = '2') AND (PL1 IS NOT NULL) AND (DATVYR IS NULL)
GROUP BY CHOVATEL, PL1
ORDER BY CHOVATEL, PL
go

CREATE VIEW dbo.View_GP_RMlUzSt
AS
SELECT     r.KROKR, r.PODNIK, r.STADO, r.NAZOV, r.PLEM, r.STKU, r.VYKKU, r.ROKEV, r.SML, r.STL, r.SBL, r.SLL, r.SPTNL, r.SPBNL, r.SPLNL, r.STNL, r.SBNL, r.SLNL, r.SMNL, r.POCETMNL, r.POCETTNL, 
                      r.POCETBNL, r.POCETLNL, r.POCETVS, r.PDDP, c.SKRATKA
FROM         dbo.GM_RMLUZST AS r LEFT OUTER JOIN
                      dbo.NC_CharChov AS c ON c.KOD = r.STKU AND c.DRUHHZ = 4
go



CREATE VIEW [dbo].[View_CP_VazeniaAjNove]
AS
select  cistelata, datvaz, hmot from Cm_vazenia 
union
select cistelata, CONVERT(date, datvaz, 104) as datvaz, convert(float, hmot) as hmot from VstupyPLIS.dbo.CP_HD15_DOKVAZ where PRIZSPRAC = 0 and isnumeric(hmot) = 1 AND hmot != '999'
go

CREATE VIEW dbo.View_CP_ChovPL2
AS
SELECT        TOP (100) PERCENT CHOVATEL, PL2 AS PL, SUM(KR2) AS KRV
FROM            dbo.CM_Krava
WHERE        (PRIZNAKKU = '1' OR
                         PRIZNAKKU = '2') AND (PL2 IS NOT NULL) AND (DATVYR IS NULL)
GROUP BY CHOVATEL, PL2
ORDER BY CHOVATEL, PL
go

/****** Script for Select pl1 za chov  ******/
CREATE VIEW dbo.View_CP_ChovPL3
AS
SELECT        TOP (100) PERCENT CHOVATEL, PL3 AS PL, SUM(KR3) AS KRV
FROM            dbo.CM_Krava
WHERE        (PRIZNAKKU = '1' OR
                         PRIZNAKKU = '2') AND (PL3 IS NOT NULL) AND (DATVYR IS NULL)
GROUP BY CHOVATEL, PL3
ORDER BY CHOVATEL, PL
go

CREATE VIEW dbo.View_CP_ChovPL4
AS
SELECT        TOP (100) PERCENT CHOVATEL, PL4 AS PL, SUM(KR4) AS KRV
FROM            dbo.CM_Krava
WHERE        (PRIZNAKKU = '1' OR
                         PRIZNAKKU = '2') AND (PL4 IS NOT NULL) AND (DATVYR IS NULL)
GROUP BY CHOVATEL, PL4
ORDER BY CHOVATEL, PL
go

CREATE VIEW dbo.View_CP_ChovPL5
AS
SELECT        TOP (100) PERCENT CHOVATEL, PL5 AS PL, SUM('100' - KR1 - KR2 - KR3 - KR4) AS KRV
FROM            dbo.CM_Krava
WHERE        (PRIZNAKKU = '1' OR
                         PRIZNAKKU = '2') AND (PL5 IS NOT NULL) AND (DATVYR IS NULL)
GROUP BY CHOVATEL, PL5
ORDER BY CHOVATEL, PL
go

/****** Script for SelectTopNRows command from SSMS  ******/
CREATE VIEW dbo.View_cp_kraj_okres_chov
AS
SELECT        CISKRAVY, SUBSTRING(CHOVATEL, 1, 1) AS Kraj, SUBSTRING(CHOVATEL, 1, 3) AS Okres, SUBSTRING(CHOVATEL, 1, 6) AS Podnik, CHOVATEL, SKUPINA, PK, 
                         OTECLIN, OTECREG, OUSCIS, MA, IDOT, IDMA, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, FARBA, ZNMATBYK, ZNAKET, POHLAVIE, ZDRAVTR, 
                         PLEMENNA, PORPREBLAK, DATPOSKONT, DOVVYR, DATVYR, DATZAR, TRUZIT, PORLAKMAX, MLIEKOMAX, TUKMAX, BIELMAX, LAKTOZAMAX, POCVSETLAK, 
                         POCNORLAK, MLIEKOPR, TUKPRKG, TUKPRPER, BIELPRKG, BIELPRPER, LAKTPRKG, LAKTPRPER, TYPPLEM, FARMACEHZ, PRIZNAKKU, KRJA, PINT, PSER, 
                         PMED, BB_ANIMALCODE, BB_NAME, BB_IMPORTED, BB_BREEDING_NAME, BB_OWNER, BB_KEEPER, BB_USE, BB_COUNTRYCODE, BB_CATEGORY, 
                         BB_HERDBOOK_NUMBER, DATZAPPREP, DATVYBPREP
FROM            dbo.CM_Krava
WHERE        (DOVVYR IS NULL)
go



CREATE VIEW [dbo].[View_CP_ChovSumPL]
AS
--SELECT     TOP (100) PERCENT CHOVATEL, PL, SUM(KRV) AS KRV
--FROM         dbo.CP_CHOVPL
--WHERE     (PL IS NOT NULL)
--GROUP BY CHOVATEL, PL
--ORDER BY CHOVATEL, KRV DESC

SELECT CHOVATEL,  PL, SUM(KRV) AS KRV FROM (SELECT        TOP (100) PERCENT CHOVATEL, CASE WHEN PL in ('H', 'R', 'M', 'N', 'F') THEN 'H' WHEN PL in ('S', 'MB') THEN 'S' ELSE PL END as PL, KRV
FROM            dbo.CP_CHOVPL
WHERE        (PL IS NOT NULL) 
) as s
GROUP BY CHOVATEL, PL
--ORDER BY CHOVATEL, KRV DESC

go

CREATE VIEW dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat
AS
SELECT        IDTELATA, CISTELATA, CHOVNAR, OTECLIN, OTECREG, OUC, MATKA, HMOTOT, DATNAR, HMOTNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, TYPPLEM, 
                         CASE WHEN t .farba = '01' THEN 'červená' WHEN t .farba = '00' THEN 'čierna' WHEN t .farba = '02' THEN 'žltostrakatá' WHEN t .farba = '03' THEN 'hnedá' WHEN t .farba
                          IS NULL THEN 'bez' ELSE 'iná' END AS nfarba, PORLAK, POHLAVIE, ZNAKET, PREUKAZ, DOBANOS, CHOVATEL, PRIZNAKKU, PRIEBPOR, URCTEL, PRICOBTPOR, 
                         PRICUHYN, DOVVYR, DATVYR, IDMA, IDOT, DONORKA, IDDONOR
FROM            dbo.CM_Telata AS t
WHERE        (PRIZNAKKU = '1') AND (POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (PORLAK IS NOT NULL)
go

CREATE VIEW dbo.View_PoslVaz
AS
SELECT     CISTELATA AS CT, MAX(DATVAZ) AS MDV
FROM         dbo.CM_Vazenia
GROUP BY CISTELATA
go

CREATE VIEW dbo.View_AD_Prehlad_pracovnikov_KU_v_PLISe
AS
SELECT     aspnetdb.dbo.aspnet_Users.UserName, dbo.NM_PRACKU.IDPRACKU, dbo.NM_PRACCHOV.KRAJ, dbo.NM_PRACCHOV.OKRES, dbo.NM_PRACCHOV.PODNIK, 
                      dbo.NM_PRACCHOV.CHOV, dbo.NM_PRACCHOV.TYPZV, dbo.NM_PRACKU.CORG, dbo.NM_PRACKU.STREDISKO, dbo.NM_PRACKU.REGISTR_CISLO, 
                      dbo.NM_PRACKU.TITULPRED, dbo.NM_PRACKU.MENO, dbo.NM_PRACKU.PRIEZVISKO, dbo.NM_PRACKU.TITULZA, dbo.NM_PRACKU.TELEFPRAC, 
                      dbo.NM_PRACKU.MOBIL, dbo.NM_PRACKU.FAX, dbo.NM_PRACKU.EMAIL, dbo.NM_PRACKU.FIRMA, dbo.NM_PRACKU.ULICA, dbo.NM_PRACKU.OBEC, 
                      dbo.NM_PRACKU.PCISLO, dbo.NM_PRACKU.DPOSTA, dbo.NM_PRACKU.PSC, dbo.NM_PRACKU.IDPAM, dbo.NM_PRACKU.FUNKCIA, dbo.NM_PRACKU.NADRIAD, 
                      dbo.NM_PRACKU.KONZUL, dbo.NM_PRACKU.PZ, dbo.NM_PRACKU.RODCIS, aspnetdb.dbo.aspnet_Users.UserId, aspnetdb.dbo.aspnet_Users.LastActivityDate, 
                      aspnetdb.dbo.aspnet_Membership.IsLockedOut, aspnetdb.dbo.aspnet_Membership.CreateDate, aspnetdb.dbo.aspnet_Membership.LastLoginDate, 
                      aspnetdb.dbo.aspnet_Membership.LastPasswordChangedDate, aspnetdb.dbo.aspnet_Membership.LastLockoutDate, 
                      aspnetdb.dbo.aspnet_Membership.FailedPasswordAttemptCount, aspnetdb.dbo.aspnet_Membership.FailedPasswordAttemptWindowStart, 
                      aspnetdb.dbo.aspnet_Membership.FailedPasswordAnswerAttemptCount, aspnetdb.dbo.aspnet_Membership.FailedPasswordAnswerAttemptWindowStart, 
                      aspnetdb.dbo.aspnet_Membership.IsApproved, aspnetdb.dbo.aspnet_Membership.Password, aspnetdb.dbo.aspnet_Membership.PasswordFormat, 
                      aspnetdb.dbo.aspnet_Membership.PasswordSalt
FROM         dbo.NM_PRACCHOV RIGHT OUTER JOIN
                      dbo.NM_PRACKU ON dbo.NM_PRACCHOV.IDPRACKU = dbo.NM_PRACKU.IDPRACKU LEFT OUTER JOIN
                      aspnetdb.dbo.aspnet_Membership INNER JOIN
                      aspnetdb.dbo.aspnet_Users INNER JOIN
                      aspnetdb.dbo.User_PRACKU ON aspnetdb.dbo.aspnet_Users.UserId = aspnetdb.dbo.User_PRACKU.UserId ON 
                      aspnetdb.dbo.aspnet_Membership.UserId = aspnetdb.dbo.aspnet_Users.UserId ON dbo.NM_PRACKU.IDPRACKU = aspnetdb.dbo.User_PRACKU.IDPRACKU
go

CREATE VIEW dbo.View_CP_ChovMaxPL
AS
SELECT     TOP (100) PERCENT s.CHOVATEL, s.maxkrv, LTRIM(c.PL) AS PL
FROM         (SELECT     CHOVATEL, MAX(KRV) AS maxkrv
                       FROM          dbo.View_CP_ChovSumPL
                       GROUP BY CHOVATEL) AS s INNER JOIN
                      dbo.View_CP_ChovSumPL AS c ON s.CHOVATEL = c.CHOVATEL AND s.maxkrv = c.KRV
ORDER BY PL
go

CREATE VIEW dbo.View_CP_305_OtcoCerNaplak
AS
SELECT        k.CHOVATEL, COUNT(*) AS pocCer, P.UZITKOVYTYP, k.OUSCIS, AVG(l.MLIEKNOR) AS mlieko305, AVG(l.TUKNOR) AS tuk305, AVG(l.TUKNOR) 
                         * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pTuk305, AVG(l.BIELKNOR) AS bielk305, AVG(l.BIELKNOR) * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pBielk305, 
                         AVG(l.BIELKNOR + l.TUKNOR) AS t_B305, AVG(l.BIELKNOR + l.TUKNOR) * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pT_B305
FROM            dbo.CM_Krava AS k INNER JOIN
                         dbo.CM_Byci AS a ON k.OUSCIS = a.USCISLO INNER JOIN
                         dbo.CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY INNER JOIN
                         dbo.CC_PlemTyp AS P ON a.TYPPLEM = P.TYPC
WHERE        (l.PORLAK = 1) AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (l.ZMENA = 30) AND (l.LAKDNIN >= 240) AND (k.PRIZNAKKU = 1)
GROUP BY k.OUSCIS, k.OTECLIN, k.OTECREG, P.UZITKOVYTYP, k.CHOVATEL
go

CREATE VIEW dbo.View_CP_305_OtcoCerLaktacie
AS
SELECT        k.CHOVATEL, COUNT(*) AS pocCer, P.UZITKOVYTYP, k.OUSCIS, AVG(l.MLIEKNOR) AS mlieko305, AVG(l.TUKNOR) AS tuk305, AVG(l.TUKNOR) 
                         * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pTuk305, AVG(l.BIELKNOR) AS bielk305, AVG(l.BIELKNOR) * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pBielk305, 
                         AVG(l.BIELKNOR + l.TUKNOR) AS t_B305, AVG(l.BIELKNOR + l.TUKNOR) * 100 / NULLIF (AVG(l.MLIEKNOR), 0) AS pT_B305
FROM            dbo.CP_KravaPoslednaUzavLakt AS d INNER JOIN
                         dbo.CM_Krava AS k ON k.CISKRAVY = d.cislokrava INNER JOIN
                         dbo.CM_Laktacie AS l ON d.cislokrava = l.CISKRAVY AND d.poslLakt = l.PORLAK INNER JOIN
                         dbo.CC_PlemTyp AS P ON k.TYPPLEM = P.TYPC
WHERE        (k.DOVVYR IS NULL) AND (d.poslLakt = '1') AND (k.PRIZNAKKU = 1) AND (k.PORPREBLAK = 2) AND (l.ZMENA IN (30, 40)) AND (l.LAKDNIN >= 240)
GROUP BY k.OUSCIS, k.OTECLIN, k.OTECREG, P.UZITKOVYTYP, k.CHOVATEL
go

CREATE VIEW dbo.cp_kravy_305Udaje
AS
SELECT        k.CHOVATEL, k.CISKRAVY, n.PORLAK, DATEDIFF(day, k.DATNAR, n.DATOTEL) / 30.42 AS montsOldOtel, k.DATNAR, n.DATOTEL, n.LAKDNIN, n.LAKTDNI, n.ZMENA, 
                         n.MLIEKNOR, n.TUKNOR, n.BIELKNOR, k.OTECLIN, k.OTECREG, k.OUSCIS, k.MA
FROM            dbo.CM_Krava AS k INNER JOIN
                         dbo.CM_Naplak AS n ON k.CISKRAVY = n.CISKRAVY
WHERE        (n.LAKDNIN = 305) AND (k.DOVVYR IS NULL) AND (k.PRIZNAKKU = '1')
go

CREATE VIEW dbo.View_cp_Rodokmen_telia_mlieko
AS
SELECT     t.IDTELATA, t.IDMA, t.IDOT, t.CISTELATA, ISNULL(t.PL1 + '-' + CONVERT(varchar, t.KR1), '') + '  ' + ISNULL(ISNULL(t.PL2, '') + '-' + CONVERT(varchar, t.KR2), '') 
                      + '  ' + ISNULL(t.PL3 + '-' + CONVERT(varchar, t.KR3), '') + '  ' + ISNULL(t.PL4 + '-' + CONVERT(varchar, t.KR4), '') + '  ' + ISNULL(t.PL5 + '-' + CONVERT(varchar, 100 - (t.KR1 + t.KR2 + t.KR3 + t.KR4)), '') 
                      AS T_plemena, t.TYPPLEM, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) AS otec, t.OUC AS O_OUC, ho.MENO AS O_meno, ho.SPI AS O_SPI, ho.REL AS O_REL, ho.PK AS O_PK, 
                      ho.MLIEKO AS O_mlieko, ho.DATNAR AS O_Datnar, ho.plemena AS O_plemena, ho.TUK AS O_Tuk, ho.TUKP AS O_tukp, ho.BIELK AS O_bielk, ho.BIELKP AS O_bielkp, ho.SPI, t.MATKA, 
                      m.BB_NAME AS M_name, m.PORLAKMAX AS M_MaxLakt, m.POCVSETLAK AS M_pocVsLakt, m.DATNAR AS M_datnar, m.TRUZIT, m.CHOVATEL AS M_chovatel, 
                      ISNULL(m.PL1 + '-' + CONVERT(varchar, m.KR1), '') + '  ' + ISNULL(ISNULL(m.PL2, '') + '-' + CONVERT(varchar, m.KR2), '') + '  ' + ISNULL(m.PL3 + '-' + CONVERT(varchar, m.KR3), '') 
                      + '  ' + ISNULL(m.PL4 + '-' + CONVERT(varchar, m.KR4), '') + '  ' + ISNULL(m.PL5 + '-' + CONVERT(varchar, 100 - (m.KR1 + m.KR2 + m.KR3 + m.KR4)), '') AS M_plemena, 
                      m.MLIEKOMAX AS M_mliekoMax, m.MLIEKOPR AS M_mliekoPr, m.TUKMAX AS M_tukMax, m.TUKPRKG AS M_tukPr, NULLIF (m.TUKMAX, 0) * 100 / m.MLIEKOMAX AS M_TukMaxP, 
                      m.TUKPRPER AS M_tukPrP, m.BIELMAX AS M_bielkMax, m.BIELPRKG AS M_BielkPr, NULLIF (m.BIELMAX, 0) * 100 / m.MLIEKOMAX AS M_bielkP, m.BIELPRPER AS M_bielkPrP, 
                      m.LAKTOZAMAX AS M_laktMax, NULLIF (m.LAKTOZAMAX, 0) * 100 / m.MLIEKOMAX AS M_LaktMaxP, t.HMOTOT, t.DATNAR AS T_datNar, t.HMOTNAR, t.FARBA AS T_farba, t.PORLAK AS T_porlakt, 
                      t.POHLAVIE AS T_pohlavie, t.ZNAKET AS T_Znaket, t.PREUKAZ AS T_preukaz, t.DOBANOS, t.CHOVATEL AS T_Chovatel, t.PRIZNAKKU AS T_PriznakKU, t.PRIEBPOR, t.URCTEL, 
                      t.DOVVYR AS T_dovvyr, t.DATVYR AS T_datvyr, t.DONORKA, t.IDDONOR, m.FARBA AS M_farba, m.ZNMATBYK AS M_znmatbyk, m.ZNAKET AS M_ZnakET, m.PLEMENNA AS M_plemenna, 
                      m.POCNORLAK AS M_pocNormLakt
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CM_Krava AS m ON t.IDMA = m.IDKRAVY LEFT OUTER JOIN
                      dbo.View_CP_poslednoHodnotenieBycy AS ho ON t.IDOT = ho.IDBYKA
go

CREATE VIEW dbo.View_CP_MesoTela_do12mes
AS
SELECT     p.NAZTYP AS OtecPlemTtp, p.TYPS AS plemennoOtca, b.MENO, COUNT(*) AS pocet12, t.OUC, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) AS otec, t.CHOVATEL
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS p ON b.TYPPLEM = p.TYPC
WHERE     (t.DOVVYR IS NULL) AND (t.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Krava
                            WHERE      (PRIZNAKKU = '1') OR
                                                   (PRIZNAKKU = '2'))) AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) <= 12)
GROUP BY t.OUC, t.OTECLIN, t.OTECREG, p.NAZTYP, b.MENO, p.TYPS, t.CHOVATEL
go


create view [dbo].[User_PRACKU]
as
select * from aspnetdb..User_PRACKU
go

CREATE VIEW dbo.View_cp_telataDo12mes
AS
SELECT     COUNT(*) AS pocet, CHOVATEL
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 12)
GROUP BY CHOVATEL

union

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,6) as chovatel
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 12)
GROUP BY substring(CHOVATEL,1,6)

union

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,3)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 12)
GROUP BY substring(CHOVATEL,1,3)

union 

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,1)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 12)
GROUP BY substring(CHOVATEL,1,1)
go

CREATE VIEW dbo.View_GP_PocPot
AS
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RocNar, CONVERT(int, SUBSTRING(RocNar, 1, 4)) + 1 AS roknar, SUM(1) AS pocet, SUM(CASE WHEN tried IS NULL THEN 0 ELSE 1 END) AS pocbon, 
                      SUM(CASE WHEN pohl = '3' THEN 1 ELSE 0 END) AS pocmkoz, SUM(CASE WHEN pohl = '3' AND tried IS NOT NULL THEN 1 ELSE 0 END) AS pbonmkoz, 
                      SUM(CASE WHEN pohl = '4' THEN 1 ELSE 0 END) AS pocmcap, SUM(CASE WHEN pohl = '4' AND tried IS NOT NULL THEN 1 ELSE 0 END) AS pbonmcap
FROM         dbo.GM_Potomok
GROUP BY KROKR, PODNIK, STADO, RocNar
ORDER BY KROKR, PODNIK, STADO, RocNar
go

CREATE VIEW dbo.View_CP_byciDetail
AS
SELECT     b.IDBYKA, b.USCISLO, b.MENO, b.MENO1, b.PK, b.CHOVNAR, b.OTUSCIS, b.MATKA, b.IDOT, b.IDMA, b.DATNAR, b.DATPOR, b.DATREG, b.KROK, b.CHOVATEL, b.MAJITEL, b.KODMAJ, b.PL1, b.KR1, 
                      b.PL2, b.KR2, b.PL3, b.KR3, b.PL4, b.KR4, b.PL5, b.TYPPLEM, b.FARBA, b.ZNAKET, b.POHLAVIE, b.KRVROZ, b.DATKRVROZ, b.DATVYRAD, b.ZDRAVTR, b.ZACTEST, b.KONTEST, b.KDMROK, 
                      b.KDMPOCSTAD, b.KDMSW, b.KDMPOC, b.KDMMLIEKO, b.BLUPMLIEKO, b.RPHMLIEKA, b.KDMTUKKG, b.KDMTUKPER, b.BLUPTUK, b.PHTUK, b.RPHTUKU, b.KDMBIELKG, b.KDMBIELPER, 
                      b.BLUPBIELK, b.PHBIELK, b.RPHBIELK, b.PEROPAKOV, b.METODA, b.KDE, b.KDDROK, b.KDDSW, b.KDDPOC, b.KDDMAXMINV, b.KDDIPZ, b.KDDRV3, b.RPHRV3, b.KDVROK, b.KDVSW, b.KDVPOC, 
                      b.PRIRTEST, b.PRIRCEL, b.NETTOPRIR, b.RPHNETTO, b.KDVSTAT, b.KDVNAZIND, b.KDVIND, b.KDVRL, b.PRIZNAKBB, b.BB_ANIMALCODE, b.BB_IMPORTED, b.BB_USE, b.BB_BUYER, 
                      b.BB_KEEPER, b.BB_INSEM, b.BB_COUNTRYCODE, b.BB_CZECH_REGISTER, b.BB_CATEGORY, b.BB_INSEM_COMPANY, b.BB_LIVE, b.BB_CZECH_LINE, b.BB_HERDBOOK_NUMBER, 
                      b.BB_BASESELECTION_PERFORMED, b.BB_BASESELECTION_LOOK, b.BB_BASESELECTION_RESULT_CLASS, b.BB_BASESELECTION_BREEDING, b.BB_BLOODTEST_COUNTRYNAME, 
                      d.KRAJPOV, d.POCET, d.POCVYR, d.RPH, d.SPOLAHRPH, d.PLEMS, obt.PLEMS AS obtPoroduPlems, obt.NP, obt.NH, obt.OP_PRIEMER, obt.RPH AS obtPoroduRPH, obt.RPHMAT, obt.lakt, v.cistelata, 
                      v.vahaNar, v.vaha120, v.priras120, v.zpriras120, v.vaha210, v.priras210, v.zproras210, v.vaha365, v.priras365, v.zpriras365, v.vaha500, v.priras500, v.zpriras500, h.plemTyp, h.NazSt, 
                      h.ROKSPRAC, h.MESSPRAC, h.BYK, h.UZITKOVYTYP, h.lin, h.NAZF, h.plemena, h.MENBYK, h.stada, h.cery, h.PLEMENO AS hodnotPlemeno, h.SPI, h.REL, h.MLIEKO, h.TUK, h.TUKP, h.BIELK, 
                      h.BIELKP, h.SKUPINA, h.Preskupinovane, h.CHEKMEOUT, h.PHHMOT120, h.PHHMOT210, h.PHHMOT365, h.SPOLAHL, h.SC305, h.RPHSC, h.RELSB, l.nazlin
FROM         dbo.CM_Byci AS b LEFT OUTER JOIN
                      dbo.CM_Dlhovekost AS d ON b.USCISLO = d.USCISLO LEFT OUTER JOIN
                      dbo.CM_SIMOT AS obt ON b.USCISLO = obt.OTUSCIS LEFT OUTER JOIN
                      dbo.CP_Meso_TelataVahy AS v ON b.USCISLO = v.cistelata LEFT OUTER JOIN
                      dbo.View_CP_poslednoHodnotenieBycy AS h ON b.USCISLO = h.BYK LEFT OUTER JOIN
                      dbo.CC_Linie AS l ON b.LIN = l.lin
WHERE     (b.LIN IS NOT NULL) AND (b.REG IS NOT NULL)
go

CREATE VIEW dbo.View_CP_mesoveTela_nad12mes
AS
SELECT     p.NAZTYP AS OtecPlemTtp, p.TYPS AS plemennoOtca, b.MENO, COUNT(*) AS pocet12, t.OUC, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) AS otec, t.CHOVATEL
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS p ON b.TYPPLEM = p.TYPC
WHERE     (t.DOVVYR IS NULL) AND (t.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Krava
                            WHERE      (PRIZNAKKU = '1') OR
                                                   (PRIZNAKKU = '2'))) AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) > 12)
GROUP BY t.OUC, t.OTECLIN, t.OTECREG, p.NAZTYP, b.MENO, p.TYPS, t.CHOVATEL
go

CREATE VIEW dbo.View_CP_PoslVaz2
AS
SELECT     TOP (100) PERCENT dbo.View_CP_PoslVaz.CT, dbo.View_CP_PoslVaz.MDV, dbo.CM_Vazenia.HMOT, dbo.CM_Vazenia.DNIVAZ, dbo.CM_Vazenia.RASTPAS
FROM         dbo.View_CP_PoslVaz LEFT OUTER JOIN
                      dbo.CM_Vazenia ON dbo.View_CP_PoslVaz.CT = dbo.CM_Vazenia.CISTELATA AND dbo.View_CP_PoslVaz.MDV = dbo.CM_Vazenia.DATVAZ
ORDER BY dbo.View_CP_PoslVaz.CT
go

CREATE VIEW dbo.View_CP_TelataNad12mes
AS
SELECT     COUNT(*) AS pocet, CHOVATEL
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 12.00001 AND 38)
GROUP BY CHOVATEL
UNION
SELECT     COUNT(*) AS pocet, substring(CHOVATEL, 1, 6)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN  12.00001  AND 38)
GROUP BY substring(CHOVATEL, 1, 6)
UNION
SELECT     COUNT(*) AS pocet, substring(CHOVATEL, 1, 3)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 12.00001  AND 38)
GROUP BY substring(CHOVATEL, 1, 3)
UNION
SELECT     COUNT(*) AS pocet, substring(CHOVATEL, 1, 1)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 12.00001  AND 38)
GROUP BY substring(CHOVATEL, 1, 1)
go

CREATE VIEW dbo.View_CP_TelataPocetDO38Mes
AS
SELECT     COUNT(*) AS pocet, CHOVATEL
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 38)
GROUP BY CHOVATEL

union

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,6)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 38)
GROUP BY substring(CHOVATEL,1,6)

union

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,3)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 38)
GROUP BY substring(CHOVATEL,1,3)

union

SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,1)
FROM         dbo.CM_Telata AS t
WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 38)
GROUP BY substring(CHOVATEL,1,1)
go

CREATE VIEW dbo.View_UzProdDenK
AS
SELECT        TOP (100) PERCENT k.CISKRAVY, k.CHOVATEL, DATEDIFF(day, k.DATNAR, k.DATVYR) AS vekvyr, DATEDIFF(day, l.DATOTEL, k.DATVYR) AS vekprod, 
                         CONVERT(varchar(4), k.DATVYR, 120) AS rokvyr, k.PORPREBLAK
FROM            dbo.CM_Krava AS k INNER JOIN
                         dbo.CM_Laktacie AS l ON k.CISKRAVY = l.CISKRAVY AND l.PORLAK = '01' AND k.DATNAR <> l.DATOTEL
WHERE        (k.PRIZNAKKU = '1') AND (k.DATNAR IS NOT NULL) AND (k.DATVYR IS NOT NULL)
ORDER BY k.CHOVATEL
go

CREATE VIEW dbo.View_CP_MLIEKO_BYK_RODOKMEN_POLOVICA
AS
SELECT        B.IDBYKA, B.BYK, B.PK, B.lin, B.SKUPINA, B.DATNAR, B.FARBA, B.NAZF, B.plemena, B.plemTyp, B.MENO, B.Spracovano, B.MLIEKO, B.SPI, B.REL, B.TUK, B.TUKP, 
                         B.BIELK, B.BIELKP, B.stada, B.cery, B.MATKA, B.M_name, B.M_PK, B.M_MaxLakt, B.M_pocNlakt, B.M_pocVsLakt, B.M_datnar, B.TRUZIT, B.M_chovatel, 
                         B.M_plemena, B.M_farbaKOD, B.M_plrmTyp, B.M_UzitkovyTyp, B.M_farbaText, B.M_mliekoMax, B.M_mliekoPr, B.M_tukMax, B.M_tukPr, B.M_TukMaxP, 
                         B.M_tukPrP, B.M_bielkMax, B.M_BielkPr, B.M_bielkP, B.M_bielkPrP, B.M_laktMax, B.M_LaktMaxP, B.M_SPI, B.M_REl, B.M_M305, B.M_RPHM, B.M_T305, 
                         B.M_RPHT, B.M_B305, B.M_RPHB, M.K_ZNMATBYK, M.K_LAKTPRKG AS M_LAKTPRKG, M.K_LAKTPRPERC AS M_LAKTPRPERC, 
                         M.K_COUNTRYCODE AS M_COUNTRICODE, M.K_UZTYP AS M_UZTYP, M.K_ROKSPRAC AS M_ROKSPRAC, M.K_MESSPRAC AS M_MESSPRAC, 
                         M.vahaNar AS M_HMOTNAR, M.vaha120 AS M_HMOT120, M.priras120 AS M_priras120, M.zpriras120 AS M_zpriras120, M.vaha210 AS M_vaha210, 
                         M.priras210 AS M_priras210, M.zproras210 AS M_zproras210, M.vaha365 AS M_vaha365, M.priras365 AS M_priras365, M.zpriras365 AS M_zpriras365, 
                         M.vaha500 AS M_vaha500, M.priras500 AS M_priras500, M.zpriras500 AS M_zpriras500, M.M AS MM, M.M_name AS MM_name, M.M_PK AS MM_PK, 
                         M.M_plemTyp AS MM_plemTyp, M.M_farbaKod AS MM_farbaKod, M.M_farbaText AS MM_farbaText, M.M_MaxLakt AS MM_MaxLakt, M.M_PocNlak AS MM_PocNlak, 
                         M.M_pocVsLakt AS MM_pocVsLakt, M.M_datnar AS MM_datnar, M.M_TRUZ AS MM_TRUZ, M.M_chovatel AS MM_chovatel, M.M_plemena AS MM_plemena, 
                         M.M_mliekoMax AS MM_mliekoMax, M.M_mliekoPr AS MM_mliekoPr, M.M_tukMax AS MM_tukMax, M.M_tukPr AS MM_tukPr, M.M_TukMaxP AS MM_TukMaxP, 
                         M.M_tukPrP AS MM_tukPrP, M.M_bielkMax AS MM_bielkMax, M.M_BielkPr AS MM_BielkPr, M.M_bielkP AS MM_bielkP, M.M_bielkPrP AS MM_bielkPrP, 
                         M.M_laktMax AS MM_laktMax, M.M_LaktMaxP AS MM_LaktMaxP, M.SPI AS MM_SPI, M.M_REl AS MM_REl, M.M_RPHM AS MM_RPHM, M.M_T305 AS MM_T305, 
                         M.M_RPHT AS MM_RPHT, M.M_B305 AS MM_B305, M.M_RPHB AS MM_RPHB, M.M_ROKSPRAC AS MM_ROKSPRAC, M.M_MESSPRAC AS MM_MESSPRAC, 
                         M.M_ZNAMATBYK AS MM_ZNAMATBYK, M.M_LAKTPRKG AS MM_LAKTPRKG, M.M_LAKTPRPERC AS MM_LAKTPRPERC, 
                         M.M_COUNTRYCODE AS MM_COUNTRYCODE, M.M_UZTYP AS MM_UZTYP, M.M_HMOTNR AS MM_HMOTNR, M.M_HMOT120 AS MM_HMOT120, 
                         M.M_PRIR120 AS MM_PRIR120, M.M_ZPRIR120 AS MM_ZPRIR120, M.M_HMOT210 AS MM_HMOT210, M.M_PRIR210 AS MM_PRIR210, 
                         M.M_ZPRIR210 AS MM_ZPRIR210, M.M_HMOT365 AS MM_HMOT365, M.M_PRIR365 AS MM_PRIR365, M.M_ZPRIR365 AS MM_ZPRIR365, 
                         M.M_HMOT500 AS MM_HMOT500, M.M_PRIR500 AS MM_PRIR500, M.M_ZPRIR500 AS MM_ZPRIR500, M.Otec AS OM, M.O_PK AS OM_PK, M.O_cery AS OM_cery, 
                         M.O_Stada AS OM_Stada, M.O_plemTyp AS OM_plemTyp, M.O_lin AS OM_lin, M.O_skupina AS OM_skupina, M.O_meno AS OM_meno, M.O_SPI AS OM_SPI, 
                         M.O_REL AS OM_REL, M.O_mlieko AS OM_mlieko, M.O_tuk AS OM_tuk, M.O_tukp AS OM_tukp, M.O_bielk AS OM_bielk, M.O_Bielkp AS OM_Bielkp, 
                         M.O_datnar AS OM_datnar, M.O_farbaKod AS OM_farbaKod, M.O_farbaText AS OM_farbaText, M.O_plemena AS OM_plemena, M.O_KRVROZ AS OM_KRVROZ, 
                         M.O_DATKRVROZ AS OM_DATKRVROZ, M.O_COUNTRYCODE AS OM_COUNTRYCODE, M.O_ROKSPRAC AS OM_ROKSPRAC, M.O_MESSPRAC AS OM_MESSPRAC, 
                         M.O_UZTYP AS OM_UZTYP, M.O_PHHMOT120 AS OM_PHHMOT120, M.O_PHHMOT210, M.O_PHHMOT365, M.O_SPOLAHL, M.O_SC305 AS OM_SC305, 
                         M.O_RPHSC AS OM_RPHSC, M.O_RELSB AS OM_RELSB, B.otec, B.O_Skupina, B.O_plemenTyp, B.O_PK, B.O_datnar, B.O_farbaKod, B.O_farbaText, B.O_plemena, 
                         B.O_lin, B.O_meno, B.O_SPI, B.O_REL, B.O_mlieko, B.O_tuk, B.O_Tukp, B.O_bielk, B.O_bielkp, B.O_Spracovano, B.O_stada, B.O_cery, B.KRVROZ, B.DATKRVROZ, 
                         B.BB_COUNTRYCODE, B.UZITKOVYTYP, B.MENBYK, B.PLEMENO, B.PHHMOT120, B.PHHMOT210, B.PHHMOT365, B.SPOLAHL, B.SC305, B.RPHSC, B.RELSB, 
                         B.ROKSPRAC, B.MESSPRAC, O.MATKA AS MO, O.M_name AS MO_name, O.M_PK AS MO_PK, O.M_MaxLakt AS MO_MaxLakt, O.M_pocNlakt AS MO_pocNlakt, 
                         O.M_pocVsLakt AS MO_pocVsLakt, O.M_datnar AS MO_datnar, O.TRUZIT AS MO_TRUZIT, O.M_chovatel AS MO_chovatel, O.M_plemena AS MO_plemena, 
                         O.M_farbaKOD AS MO_farbaKOD, O.M_plrmTyp AS MO_plrmTyp, O.M_UzitkovyTyp AS MO_UzitkovyTyp, O.M_farbaText AS MO_farbaText, 
                         O.M_mliekoMax AS MO_mliekoMax, O.M_mliekoPr AS MO_mliekoPr, O.M_tukMax AS MO_tukMax, O.M_tukPr AS MO_tukPr, O.M_TukMaxP AS MO_TukMaxP, 
                         O.M_tukPrP AS MO_tukPrP, O.M_bielkMax AS MO_bielkMax, O.M_BielkPr AS MO_BielkPr, O.M_bielkP AS MO_bielkP, O.M_bielkPrP AS MO_bielkPrP, 
                         O.M_laktMax AS MO_laktMax, O.M_LaktMaxP AS MO_LaktMaxP, O.M_SPI AS MO_SPI, O.M_REl AS MO_REl, O.M_M305 AS MO_M305, O.M_RPHM AS MO_RPHM, 
                         O.M_T305 AS MO_T305, O.M_RPHT AS MO_RPHT, O.M_B305 AS MO_B305, O.M_RPHB AS MO_RPHB, O.M_ZNMATBYK AS MO_ZNMATBYK, 
                         O.M_LAKTPKG AS MO_LAKTPKG, O.M_LAKTPPERC AS MO_LAKTPPERC, O.M_TYPPLRM AS MO_TYPPLRM, O.M_COUNTRYCODE AS MO_COUNTRYCODE, 
                         O.M_ROKSPRAC AS MO_ROKSPRAC, O.M_MESSPRAC AS MO_MESSPRAC, O.M_VAHANAR AS MO_VAHANAR, O.M_PRIRAS120 AS MO_PRIRAS120, 
                         O.M_VAHA120 AS MO_VAHA120, O.M_ZPRIRAS120 AS MO_ZPRIRAS120, O.M_VAHA210 AS MO_VAHA210, O.M_PRIRAS210 AS MO_PRIRAS210, 
                         O.M_ZPRIRAS210 AS MO_ZPRIRAS210, O.M_VAHA365 AS MO_VAHA365, O.M_ZPRIRAS365 AS MO_ZPRIRAS365, O.M_PRIRAS365 AS MO_PRIRAS365, 
                         O.M_VAHA500 AS MO_VAHA500, O.M_PRIRAS500 AS MO_PRIRAS500, O.M_ZPRIRAS500 AS MO_ZPRIRAS500, O.otec AS OO, O.O_Skupina AS OO_Skupina, 
                         O.O_plemenTyp AS OO_plemenTyp, O.O_PK AS OO_PK, O.O_datnar AS OO_datnar, O.O_farbaKod AS OO_farbaKod, O.O_farbaText AS OO_farbaText, 
                         O.O_plemena AS OO_plemena, O.O_lin AS OO_lin, O.O_meno AS OO_meno, O.O_SPI AS OO_SPI, O.O_REL AS OO_REL, O.O_mlieko AS OO_mlieko, 
                         O.O_tuk AS OO_tuk, O.O_Tukp AS OO_Tukp, O.O_bielk AS OO_bielk, O.O_bielkp AS OO_bielkp, O.O_Spracovano AS OO_Spracovano, O.O_cery AS OO_cery, 
                         O.O_stada AS OO_stada, O.O_UZTYP AS OO_UZTYP, O.O_COUNTRYCODE AS OO_COUNTRYCODE, O.O_ROKSPRAC AS OO_ROKSPRAC, 
                         O.O_MESSPRAC AS OO_MESSPRAC, O.O_PLEMENO AS OO_PLEMENO, O.O_PHHMOT120 AS OO_PHHMOT120, O.O_PHHMOT210 AS OO_PHHMOT210, 
                         O.O_PHHMOT365 AS OO_PHHMOT365, O.O_SPOLAHL AS OO_SPOLAHL, O.O_SC305 AS OO_SC305, O.O_RPHSC AS OO_RPHSC, O.O_RELSB AS OO_RELSB, 
                         B.O_COUNTRYCODE, B.O_ROKSPRAC, B.O_MESSPRAC, B.O_UZTYP, B.O_PLEMENO, B.O_PHHMOT120, B.O_PHHMOT210 AS Expr1, B.O_PHHMOT365 AS Expr2, 
                         B.O_SPOLAHL AS Expr3, B.O_SC305, B.O_RPHSC, B.O_RELSB, M.M_M305 AS MM_M305
FROM            dbo.View_CP_Rodokmen_byk_mlieko AS B LEFT OUTER JOIN
                         dbo.View_CP_Rodokmen_Krava_mlieko AS M ON B.IDMA = M.IDKRAVY LEFT OUTER JOIN
                         dbo.View_CP_Rodokmen_byk_mlieko AS O ON B.IDOT = O.IDBYKA
go

CREATE VIEW dbo.View_SP_PoslUzLak1
AS
SELECT        BAHCIS, MAX(ROKEV) AS RokEv
FROM            dbo.SM_MlRoky
WHERE        (MNL3L > 0) AND (BAHCIS <> '00000000')
GROUP BY BAHCIS
go

CREATE VIEW [dbo].[View_UzProdDenChovK]
AS
SELECT        TOP (100) PERCENT k.CHOVATEL, k.CISKRAVY, k.rokvyr, SUM(l.MLIEKCEL) AS sml, SUM(l.TUKCEL) AS stuk, SUM(l.BIELKCEL) AS sbielk
FROM            dbo.View_UzProdDenK AS k INNER JOIN
                         dbo.CM_Laktacie AS l ON k.CISKRAVY = l.CISKRAVY
GROUP BY k.CHOVATEL, k.CISKRAVY, k.rokvyr
go

CREATE VIEW dbo.View_cp_test_hodnotbycy
AS
SELECT        b.ROKSPRAC, b.MESSPRAC, b.BYK, b.DATUMN AS DATNAR, b.BLIN, b.BREG, b.MENBYK, b.NH AS stada, b.ND AS cery, b.PLEMENO, b.SPI, b.REL * 100 AS REL, 
                         b.M305, b.T305, b.TP AS tukpercenta, b.B305, b.BP AS bielkperc, b.SKUPINA, CASE WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'R') 
                         THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 2) = CONVERT(varchar, 'MB') THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'M') AND 
                         SUBSTRING(plemeno, 2, 1) = CONVERT(varchar, '') THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND SUBSTRING(plemeno, 2, 1) 
                         = '1' THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND SUBSTRING(plemeno, 2, 1) = ' ' THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND 
                         ISNUMERIC(SUBSTRING(plemeno, 2, 1)) = 1 THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'A' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) 
                         = 'D' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'F' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'J' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) 
                         = 'N' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'R' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'B') 
                         THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'G') THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'H') 
                         THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'T') THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 2) = CONVERT(varchar(2), 'SC') 
                         THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'P') THEN 'P' ELSE 'X' END AS Preskupinovane, b.RPHM, b.RPHT, b.RPHB
FROM            dbo.CM_BykyTDM AS b INNER JOIN
                             (SELECT        BYK, MAX(ROKSPRAC + '-' + MESSPRAC) AS rokamesec
                               FROM            dbo.CM_BykyTDM AS o
                               GROUP BY BYK) AS PoslHodnot ON b.BYK = PoslHodnot.BYK AND b.ROKSPRAC + '-' + b.MESSPRAC = PoslHodnot.rokamesec
go

CREATE VIEW dbo.View_SP_PoslUzLak2
AS
SELECT        p.BAHCIS AS bahcis1, m.KROKR, m.PODNIK, m.STADO, m.LUC, m.PUC, m.BAHCIS, m.ZVSTAT, m.JCCEHZ, m.DATOBAH, m.DATODST, m.PORLAK, m.ROKEV, m.MNL, 
                         m.TNL, m.BNL, m.LNL, m.PTNL, m.PBNL, m.PLNL, m.MNL3L, m.TNL3L, m.BNL3L, m.LNL3L, m.KMNL3L, m.KTNL3L, m.KBNL3L, m.KLNL3L, m.HVPORML, 
                         m.HVPORTL, m.HVPORBL, m.HVPORLL
FROM            dbo.View_SP_PoslUzLak1 AS p LEFT OUTER JOIN
                         dbo.SM_MlRoky AS m ON m.BAHCIS = p.BAHCIS AND m.ROKEV = p.RokEv
go

CREATE VIEW dbo.View_SP_SomaBahRok
AS
SELECT        TOP (100) PERCENT BAHCIS, ROKEV, AVG(NULLIF (CAST(SOMA AS INT), 0)) AS PrSoma
FROM            dbo.SM_OVCERR
WHERE        (BAHCIS <> '00000000') AND (SOMA <> '00000')
GROUP BY BAHCIS, ROKEV
go


CREATE VIEW [dbo].[View_SP_OvcePat2]
AS

--SELECT     SUBSTRING(p.DNAID2, 1, 5) + '/' + SUBSTRING(p.DNAID2, 6, 2) AS DNAID3, p.LUC, p.LU, p.CEHZ, p.ZvStat, p.JCCEHZ, p.pohlavie, p.DatNar, p.OTLUC, p.OtLU, 
--                      p.OTCEHZ, p.otZvStat, p.otJCCEHZ, p.MALUC, p.MaLU, p.MACEHZ, p.maZvStat, p.MaJCCEHZ, p.DatumPrijmu, p.vysledokID, p.vysledoktestu, p.DatAnal, 
--					  substring(o.chov, 1, 3) as krokr,
--					  substring(o.chov, 4, 3) as Podnik,
--					  substring(o.chov, 7, 3) as Stado,
--					  o.LUC as LUCj,                    
--					  substring(o.cehz, 3, 12) as JCCEHZj, substring(o.cehz, 1, 2) as ZvStatj,		
--					  o.otecLUC as OtLUCj, 
--					  substring(o.otec, 3, 12) as OtJCCEHZj, substring(o.cehz, 1, 2) as OtZvStatj,
--					  o.matkaLUC as MaLUCj, 
--					  substring(o.matka, 3, 12) as MaJCCEHZj, substring(o.matka, 1, 2) as MaZvStatj,	
--					  CASE WHEN o.pohl  > 2 then o.pohl - 2 else o.pohl end as pohlj, 
--					  o.plem as plemj
--FROM         dbo.View_SP_OvcePat1 AS p LEFT OUTER JOIN
--		dbo.SP_Ovecky as o on o.cehz = p.zvstat+p.jccehz --and (o.LUC is null or REPLACE(o.LUC, ' ', '') = REPLACE(p.LUC, ' ', '') )
--where o.cehz is not null
			
SELECT     SUBSTRING(p.DNAID2, 1, 5) + '/' + SUBSTRING(p.DNAID2, 6, 2) AS DNAID3, p.LUC, p.LU, p.CEHZ, p.ZvStat, p.JCCEHZ, p.pohlavie, p.DatNar, p.OTLUC, p.OtLU, 
                      p.OTCEHZ, p.otZvStat, p.otJCCEHZ, p.MALUC, p.MaLU, p.MACEHZ, p.maZvStat, p.MaJCCEHZ, p.DatumPrijmu, p.vysledokID, p.vysledoktestu, p.DatAnal, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.KROKR WHEN h.krokr IS NOT NULL THEN h.KROKR WHEN t .krokr IS NOT NULL THEN t .KROKR ELSE NULL END AS KrOkr, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.Podnik WHEN h.krokr IS NOT NULL THEN h.Podnik WHEN t .krokr IS NOT NULL THEN t .Podnik ELSE NULL END AS Podnik, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.Stado WHEN h.krokr IS NOT NULL THEN h.Stado WHEN t .krokr IS NOT NULL THEN t .stado ELSE NULL END AS Stado, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.LUC WHEN h.krokr IS NOT NULL THEN h.LUC WHEN t .krokr IS NOT NULL THEN t .LUC ELSE NULL END AS LUCj, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.JCCEHZ WHEN h.krokr IS NOT NULL THEN h.JCCEHZ WHEN t .krokr IS NOT NULL THEN t .JCCEHZ ELSE NULL 
                      END AS JCCEHZj, CASE WHEN b.krokr IS NOT NULL THEN b.ZvStat WHEN h.krokr IS NOT NULL THEN h.ZvStat WHEN t .krokr IS NOT NULL THEN t .ZvStat ELSE NULL
                       END AS ZvStatj, CASE WHEN b.krokr IS NOT NULL THEN b.OtLUC WHEN h.krokr IS NOT NULL THEN h.OtLUC WHEN t .krokr IS NOT NULL THEN t .OtLUC ELSE NULL 
                      END AS OtLUCj, CASE WHEN b.krokr IS NOT NULL THEN b.OtJCCEHZ WHEN h.krokr IS NOT NULL THEN h.OtJCCEHZ WHEN t .krokr IS NOT NULL 
                      THEN t .OtJCCEHZ ELSE NULL END AS OtJCCEHZj, CASE WHEN b.krokr IS NOT NULL THEN b.OtZvStat WHEN h.krokr IS NOT NULL 
                      THEN h.OtZvStat WHEN t .krokr IS NOT NULL THEN t .OtZvStat ELSE NULL END AS OtZvStatj, CASE WHEN b.krokr IS NOT NULL 
                      THEN b.MaLUC WHEN h.krokr IS NOT NULL THEN h.MaLUC WHEN t .krokr IS NOT NULL THEN t .MaLUC ELSE NULL END AS MaLUCj, 
                      CASE WHEN b.krokr IS NOT NULL THEN b.MaJCCEHZ WHEN h.krokr IS NOT NULL THEN h.MaJCCEHZ WHEN t .krokr IS NOT NULL THEN t .MaJCCEHZ ELSE NULL 
                      END AS MaJCCEHZj, CASE WHEN b.krokr IS NOT NULL THEN b.MaZvStat WHEN h.krokr IS NOT NULL THEN h.MaZvStat WHEN t .krokr IS NOT NULL 
                      THEN t .MaZvStat ELSE NULL END AS MaZvStatj, CASE WHEN b.krokr IS NOT NULL THEN '2' WHEN h.krokr IS NOT NULL THEN '1' WHEN t .krokr IS NOT NULL 
                      THEN t .pohl ELSE NULL END AS pohlj, CASE WHEN b.krokr IS NOT NULL THEN b.plem WHEN h.krokr IS NOT NULL THEN h.plem WHEN t .krokr IS NOT NULL 
                      THEN t .plem ELSE NULL END AS plemj
FROM         dbo.View_SP_OvcePat1 AS p LEFT OUTER JOIN
                      dbo.SM_BARAN AS b ON p.pohlavie = 1 AND (p.LUC = b.LUC OR
                      p.LUC IS NULL) AND p.JCCEHZ = b.JCCEHZ LEFT OUTER JOIN
                      dbo.SM_BAHNICA AS h ON p.pohlavie = 2 AND (REPLACE(p.LUC, ' ', '') = REPLACE(h.LUC, ' ', '') OR
                      p.LUC IS NULL) AND p.JCCEHZ = h.JCCEHZ LEFT OUTER JOIN
                      dbo.SM_POTOMOK AS t ON (p.pohlavie = 1 AND t.POHL = '4' OR
                      p.pohlavie = 2 AND t.POHL = '3') AND (REPLACE(p.LUC, ' ', '') = REPLACE(t.LUC, ' ', '') OR
                      p.LUC IS NULL) AND p.JCCEHZ = t.JCCEHZ

go

CREATE VIEW dbo.View_SP_RokNar
AS
SELECT     KROKR, PODNIK, STADO, DATNT, CASE WHEN MONTH(DATNAR) < 11 THEN YEAR(DATNAR) ELSE YEAR(DATNAR) + 1 END AS RokNar, SUM(1) AS Pocet
FROM         dbo.SM_MLBARNT
GROUP BY KROKR, PODNIK, STADO, DATNT, CASE WHEN MONTH(DATNAR) < 11 THEN YEAR(DATNAR) ELSE YEAR(DATNAR) + 1 END
go

CREATE VIEW dbo.View_SP_MlBarNT1
AS
SELECT     dbo.SM_MLBARNT.KROKR, dbo.SM_MLBARNT.PODNIK, dbo.SM_MLBARNT.STADO, dbo.SM_MLBARNT.CHOVSTNAZ, dbo.SM_MLBARNT.LUC, 
                      dbo.SM_MLBARNT.PUC, dbo.SM_MLBARNT.CEHZ, dbo.SM_MLBARNT.PLEM, dbo.SM_MLBARNT.PLEMZ, dbo.SM_MLBARNT.PLEMR, dbo.SM_MLBARNT.GENPOD, 
                      dbo.SM_MLBARNT.LINIA, dbo.SM_MLBARNT.GENOTYP, dbo.SM_MLBARNT.RIZ_SKUP, dbo.SM_MLBARNT.OTIDENST, dbo.SM_MLBARNT.OTSTNAZ, 
                      dbo.SM_MLBARNT.OTLUC, dbo.SM_MLBARNT.OTPUC, dbo.SM_MLBARNT.OTZVSTAT, dbo.SM_MLBARNT.OTJCCEHZ, dbo.SM_MLBARNT.OTTRIED, 
                      dbo.SM_MLBARNT.OTKODPK, dbo.SM_MLBARNT.OTSVJH, dbo.SM_MLBARNT.OTSURVRH, dbo.SM_MLBARNT.OTKPLOD, dbo.SM_MLBARNT.MAIDENST, 
                      dbo.SM_MLBARNT.MASTNAZ, dbo.SM_MLBARNT.MALUC, dbo.SM_MLBARNT.MAPUC, dbo.SM_MLBARNT.MAZVSTAT, dbo.SM_MLBARNT.MAJCCEHZ, 
                      dbo.SM_MLBARNT.MATRIED, dbo.SM_MLBARNT.MAKODPK, dbo.SM_MLBARNT.MASURVRH, dbo.SM_MLBARNT.MAKPLOD, dbo.SM_MLBARNT.MAMAXML, 
                      dbo.SM_MLBARNT.MANAZLIN, dbo.SM_MLBARNT.OMLUC, 
                      CASE WHEN dbo.SM_MLBARNT.OMJCCEHZ = '000000000000' THEN dbo.SM_MLBARNT.OMPUC ELSE dbo.SM_MLBARNT.OMZVSTAT + REPLACE(STR(CONVERT(float,
                       dbo.SM_MLBARNT.OMJCCEHZ), 12), ' ', '.') END AS OMPUC, dbo.SM_MLBARNT.DATNAR, dbo.SM_MLBARNT.SURVRH, dbo.SM_MLBARNT.KDPRIRT, 
                      dbo.SM_MLBARNT.HVPORPR2, dbo.SM_MLBARNT.PHVELVRHT, dbo.SM_MLBARNT.HVPORVV, dbo.SM_MLBARNT.TEXT10, dbo.SM_MLBARNT.TEXT11, 
                      dbo.SM_MLBARNT.TEXT12, dbo.SM_MLBARNT.TEXT13, dbo.SM_MLBARNT.TBOSVAL, dbo.SM_MLBARNT.PHMLIEKOT, dbo.SM_MLBARNT.HVPORML, 
                      dbo.SM_MLBARNT.PHHMODST, dbo.SM_MLBARNT.HVPORHO, dbo.SM_MLBARNT.TEXTHO, dbo.SM_MLBARNT.TEXTHVHO, dbo.SM_MLBARNT.PATERN, 
                      dbo.SM_MLBARNT.DATNT, dbo.SM_MLBARNT.KATCIS, dbo.SM_MLBARNT.SKUPINA, dbo.SM_MLBARNT.KODPLOD, dbo.SM_MLBARNT.BPOVOD, 
                      dbo.SM_MLBARNT.BVU, dbo.SM_MLBARNT.BVLS, dbo.SM_MLBARNT.BVLCH, dbo.SM_MLBARNT.BVLNA, dbo.SM_MLBARNT.BDEFEKT, dbo.SM_MLBARNT.BOSVAL, 
                      dbo.SM_MLBARNT.BMLUZMA, dbo.SM_MLBARNT.BEXTER, CASE WHEN substring(dbo.SM_MlBarNT.BCelkom, 1, 1) 
                      = '0' THEN ' ' + substring(dbo.SM_MlBarNT.BCelkom, 2, 2) ELSE BCelkom END AS Celkom2, dbo.SM_MLBARNT.BCELKOM, dbo.SM_MLBARNT.TRIED, 
                      dbo.SM_MLBARNT.KODPK, dbo.SM_MLBARNT.SORTIM, dbo.SM_MLBARNT.PZIVHMOTNT, dbo.SM_MLBARNT.DATVAZNT, dbo.SM_MLBARNT.HM1ROK, 
                      dbo.SM_MLBARNT.HVHM1ROK, dbo.SM_MLBARNT.UZITZAM, dbo.SM_MLBARNT.TYPZAM, dbo.View_SP_RokNar.RokNar, dbo.View_SP_RokNar.Pocet, 
                      dbo.View_NM_MenStadOv.NAZOV, dbo.View_NM_MenStadOv.CISFARMY, dbo.View_NM_MenStadOv.PLEM AS PlemSt, dbo.View_NM_MenStadOv.EXPCHOV, 
                      dbo.View_NM_MenStadOv.Plem1, dbo.View_NM_MenStadOv.Plem2, dbo.View_NM_MenStadOv.Plem3, dbo.View_NM_MenStadOv.Plem4, dbo.SM_MLBARNT.BVLPP, 
                      dbo.SM_MLBARNT.DLVLPO, dbo.SM_MLBARNT.DLVLPE, dbo.SM_MLBARNT.MLD, dbo.SM_MLBARNT.TUK, dbo.SM_MLBARNT.INMLLTT, dbo.SM_MLBARNT.HVMLLT, 
                      dbo.SM_MLBARNT.UZITZST, dbo.SM_MLBARNT.OMZVSTAT, dbo.SM_MLBARNT.OMJCCEHZ
FROM         dbo.SM_MLBARNT LEFT OUTER JOIN
                      dbo.View_NM_MenStadOv ON dbo.View_NM_MenStadOv.KrOkr = dbo.SM_MLBARNT.KROKR AND 
                      dbo.View_NM_MenStadOv.PODNIK = dbo.SM_MLBARNT.PODNIK AND dbo.View_NM_MenStadOv.CHOV = dbo.SM_MLBARNT.STADO LEFT OUTER JOIN
                      dbo.View_SP_RokNar ON dbo.View_SP_RokNar.KROKR = dbo.SM_MLBARNT.KROKR AND dbo.View_SP_RokNar.PODNIK = dbo.SM_MLBARNT.PODNIK AND 
                      dbo.View_SP_RokNar.STADO = dbo.SM_MLBARNT.STADO AND dbo.View_SP_RokNar.DATNT = dbo.SM_MLBARNT.DATNT
WHERE     (dbo.View_SP_RokNar.Pocet =
                          (SELECT     MAX(Pocet) AS Expr1
                            FROM          dbo.View_SP_RokNar AS rn
                            WHERE      (KROKR = dbo.SM_MLBARNT.KROKR) AND (PODNIK = dbo.SM_MLBARNT.PODNIK) AND (STADO = dbo.SM_MLBARNT.STADO) AND 
                                                   (DATNT = dbo.SM_MLBARNT.DATNT)))
go

CREATE VIEW dbo.View_CP_Meso_3B_3cast
AS
SELECT        COUNT(*) AS pocet, DATEPART(MONTH, t.DATNAR) AS mesac, DATEPART(year, t.DATNAR) AS rok, t.CHOVATEL
FROM            dbo.CM_Telata AS t INNER JOIN
                         dbo.CM_Krava AS k ON k.CISKRAVY = t.MATKA
WHERE        (t.POHLAVIE NOT IN (16, 26, 61, 62, 71)) AND (t.PORLAK IS NOT NULL)
GROUP BY DATEPART(MONTH, t.DATNAR), t.CHOVATEL, DATEPART(year, t.DATNAR)
go

CREATE VIEW dbo.View_CP_SIM_JAL
AS
SELECT        k.CISTELATA AS CISJAL, k.CHOVNAR, k.CHOVATEL, k.DATNAR, k.PORLAK, k.POHLAVIE, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.DOVVYR, 
                         k.DATVYR, k.OTECLIN, k.OTECREG, b.PL1 AS OPL1, b.KR1 AS PKR1, b.PL2 AS OPL2, b.KR2 AS PKR2, b.PL3 AS OPL3, b.KR3 AS OKR3, b.PL4 AS OPL4, 
                         b.KR4 AS PKR4, b.PL5 AS OPL5, k.MATKA, m.PL1 AS MPL1, m.KR1 AS MKR1, m.PL2 AS MPL2, m.KR2 AS MKR2, m.PL3 AS MPL3, m.KR3 AS MKR3, m.PL4 AS MPL4, 
                         m.KR4 AS MKR4, m.PL5 AS MPL5, k.FARBA, k.ZNAKET,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOREG, b.MATKA AS MO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS MM,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b1
                               WHERE        (b.IDOT = IDBYKA)) AS MOO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS MMO,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) AS MOM,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS MMM
FROM            dbo.CM_Telata AS k LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON k.IDOT = b.IDBYKA LEFT OUTER JOIN
                         dbo.CM_Krava AS m ON k.IDMA = m.IDKRAVY
WHERE        (k.PRIZNAKKU = '1') AND (k.CISTELATA IS NOT NULL) AND (CASE WHEN k.pl1 IN ('S', 'MB') AND k.kr1 > 0 THEN k.kr1 ELSE 0 END + CASE WHEN k.pl2 IN ('S', 'MB') 
                         THEN k.kr2 ELSE 0 END + CASE WHEN k.pl3 IN ('S', 'MB') THEN k.kr3 ELSE 0 END + CASE WHEN k.pl4 IN ('S', 'MB') 
                         THEN k.kr4 ELSE 0 END + CASE WHEN k.pl5 IN ('S', 'MB') THEN 12.5 ELSE 0 END >= 50)
go

CREATE VIEW dbo.View_CP_Meso_3B_2cast
AS
SELECT        COUNT(*) AS pocet, DATEPART(MONTH, t.DATNAR) AS mesac, DATEPART(year, t.DATNAR) AS rok, t.CHOVATEL
FROM            dbo.CM_Telata AS t INNER JOIN
                         dbo.CM_Krava AS k ON k.CISKRAVY = t.MATKA
WHERE        (t.POHLAVIE NOT IN (16, 26, 61, 62, 71)) AND (t.PORLAK = 1)
GROUP BY DATEPART(MONTH, t.DATNAR), t.CHOVATEL, DATEPART(year, t.DATNAR)
go

CREATE VIEW dbo.View_CP_Meso_3B_1cast
AS
SELECT        COUNT(*) AS pocet, DATEPART(MONTH, t.DATNAR) AS mesac, DATEPART(year, t.DATNAR) AS rok, t.CHOVATEL
FROM            dbo.CM_Telata AS t INNER JOIN
                         dbo.CM_Krava AS k ON k.CISKRAVY = t.MATKA
WHERE        (t.POHLAVIE NOT IN (16, 26, 61, 62, 71)) AND (t.PORLAK >= 2)
GROUP BY DATEPART(MONTH, t.DATNAR), t.CHOVATEL, DATEPART(year, t.DATNAR)
go

CREATE VIEW [dbo].[View_Menovka_PracKULockedOut]
AS
SELECT     prac.IDPRACKU, membership.IsLockedOut
FROM         dbo.NM_PRACKU AS prac LEFT OUTER JOIN
                      aspnetdb.dbo.User_PRACKU AS user_prac ON prac.IDPRACKU = user_prac.IDPRACKU LEFT OUTER JOIN
                      aspnetdb.dbo.aspnet_Membership AS membership ON user_prac.UserId = membership.UserId
go

CREATE VIEW View_ER_HeliosDotacieOpravneneMesiac

  AS

    select
      YEAR(faktura.Datum)                                                        as rok,
      MONTH(faktura.Datum)                                                       as mesiac,
      ucet.CisloUctu                                                             as ucet,
      podnik.KRAJ + podnik.OKRES + podnik.PODNIK                                 as podnikKod,
      podnik.NAZOV                                                               as podnikNazov,
      count(faktura.Faktura)                                                     as pocetRiadkovFaktur,
      SUM(faktura.Pocet)                                                         as pocet,
      SUM(faktura.JcBezDane * faktura.Pocet)                                     as suma,
      SUM(ISNULL(dotacia.Dotacia, 0))                                            as dotaciaSuma,
      (SUM(faktura.JcBezDane * faktura.Pocet) + SUM(ISNULL(dotacia.Dotacia, 0))) as sumaSpolu

    from View_ER_HeliosRiadokFakturyDotacie as faktura
      left outer join ER_HeliosDotacie dotacia on faktura.IDR = dotacia.ID_Faktura
      left outer join EC_CISPROD produkt on faktura.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
      inner join EC_NazvyUctov ucet on produkt.UCET = ucet.CisloUctu
      left outer join NM_PODNIK podnik on podnik.KRAJ + podnik.OKRES + podnik.PODNIK = substring(faktura.Chov, 1, 6)
    group by YEAR(faktura.Datum), ucet.CisloUctu, MONTH(faktura.Datum), podnik.KRAJ + podnik.OKRES + podnik.PODNIK, podnik.NAZOV
go

CREATE VIEW dbo.View_CP_Meso_telata_plemena_vachy_dni
AS
SELECT        t.CISTELATA, t.POHLAVIE, p.NAZTYP, p.UZITKOVYTYP, DATEDIFF(day, t.DATNAR, GETDATE()) AS vekDni, v.vahaNar, v.vaha120, v.priras120, v.vaha210, v.priras210, 
                         v.vaha365, v.priras365, v.vaha500, v.priras500, t.OTECLIN, t.OTECREG, t.OUC, t.DOVVYR, t.MATKA, p.TYPS, t.CHOVATEL
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                         dbo.CP_Meso_TelataVahy AS v ON t.CISTELATA = v.cistelata AND t.CHOVATEL = v.chovatel AND t.PRIZNAKKU = 2 AND t.POHLAVIE NOT IN (16, 26, 61, 62, 63, 71) 
                         AND t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava)
go

CREATE VIEW dbo.View_CP_Mocovina
AS
SELECT     CIS_KRAVY, CHOV, DATROZB, LAKTACE, KG_MLEKA, TUK, MOCOV, BIL, SOM_BUN, SUBSTRING(CHOV, 2, 6) AS cpodnikr, 
                      SUBSTRING(STR(DAY(DATROZB)), 9, 2) + '.' + SUBSTRING(STR(MONTH(DATROZB)), 9, 2) + '.' + SUBSTRING(STR(YEAR(DATROZB)), 7, 4) 
                      AS SDATKONTR
FROM         dbo.CM_Mocovina
go

CREATE VIEW dbo.View_NP_Region_HDDetail
AS
SELECT     TOP (100) PERCENT dbo.NM_HDDETAIL.KRAJ, dbo.NM_HDDETAIL.OKRES, dbo.NM_HDDETAIL.PODNIK, dbo.NM_HDDETAIL.CHOV, 
                      dbo.NM_HDDETAIL.KONZUL, dbo.NM_HDDETAIL.OBVZOO, dbo.NM_HDDETAIL.PRIZNAK, dbo.NM_HDDETAIL.SPVYKON, 
                      dbo.NM_HDDETAIL.TECHUSMD, dbo.NM_HDDETAIL.TYPZV, dbo.NC_OKRES.REGION
FROM         dbo.NM_HDDETAIL LEFT OUTER JOIN
                      dbo.NC_OKRES ON dbo.NM_HDDETAIL.KRAJ = dbo.NC_OKRES.KRAJ AND dbo.NM_HDDETAIL.OKRES = dbo.NC_OKRES.OKRES
WHERE     (dbo.NM_HDDETAIL.PRIZNAK = '01') AND (dbo.NM_HDDETAIL.SPVYKON <> '0') AND (dbo.NM_HDDETAIL.TYPZV = '1') OR
                      (dbo.NM_HDDETAIL.PRIZNAK = '01') AND (dbo.NM_HDDETAIL.SPVYKON = '0') AND (dbo.NM_HDDETAIL.TYPZV = '1') AND 
                      (dbo.NM_HDDETAIL.TECHUSMD <> '00')
ORDER BY dbo.NM_HDDETAIL.KRAJ, dbo.NM_HDDETAIL.OKRES, dbo.NM_HDDETAIL.PODNIK, dbo.NM_HDDETAIL.CHOV
go

CREATE VIEW dbo.View_CM_menovka_export
AS
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, NULL AS IDPAMK, NULL AS IDPAMZ, b.KONZUL, 
                         b.OBVZOO, b.SPZAIS AS VykKU, b.CHARCHOV AS StKU, NULL AS DatZrus, 0 AS vlastne, a.FAKTSKUP AS FaktSkup, NULL AS piglog
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         NM_HDDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV
WHERE        a.TYPZV = 1
/* krava*/ UNION
SELECT DISTINCT 
                         + a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, b.PLEMENAR AS idPAMK, NULL AS IDPAMZ, NULL 
                         AS konzul, NULL AS OBvzoo, NULL AS VykKU, NULL AS StKU, NULL AS DatZrus, 0 AS vlastne, a.FaktSkup, x.PIGLOG
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         NM_OSDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT JOIN
                         dbo.NM_OSDETAIL AS x ON (a.KRAJ = x.KRAJ AND a.OKRES = x.OKRES AND a.PODNIK = x.PODNIK AND a.CHOV = x.CHOV)
WHERE        a.TYPZV = 2
/*prasa*/ UNION
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, IDPAMK.IDPAM AS IDPAMK, 
                         IDPAMZ.IDPAM AS IDPAMZ, b.CISKON AS Konzul, b.CISZOO AS ObvZoo, b.VYKKU, b.STKU, b.DATZRUS, 0 AS vlastne,  a.FaktSkup AS FaktSkup, NULL AS piglog
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         dbo.NM_OVDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID
WHERE        a.TYPZV = 3
/* 6 = pstrosi */ UNION
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, IDPAMK.IDPAM AS IDPAMK, 
                         IDPAMZ.IDPAM AS IDPAMZ, b.CISKON AS Konzul, b.CISZOO AS ObvZoo, b.VYKKU, b.STKU, b.DATZRUS, 0 AS vlastne, a.FaktSkup AS FaktSkup, NULL AS piglog
FROM            NM_CHOVMAS AS a LEFT JOIN
                         dbo.NM_KODETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID
WHERE        a.TYPZV = 4
go

CREATE VIEW dbo.View_CP_MasoTelataTabulka9
AS
SELECT     dbo.CM_Telata.CISTELATA, dbo.CM_Telata.OTECLIN, dbo.CM_Telata.OTECREG, dbo.CM_Telata.MATKA, dbo.CM_Telata.DATNAR, dbo.CM_Telata.HMOTNAR, dbo.CM_Telata.PL1, 
                      dbo.CM_Telata.KR1, dbo.CM_Telata.PL2, dbo.CM_Telata.KR2, dbo.CM_Telata.PL3, dbo.CM_Telata.KR3, dbo.CM_Telata.PL4, dbo.CM_Telata.KR4, dbo.CM_Telata.PL5, dbo.CM_Telata.CHOVATEL, 
                      dbo.CM_Telata.PRIZNAKKU, dbo.CM_Telata.DOVVYR, dbo.CM_Telata.DATVYR, dbo.CM_Krava.PL1 AS MPL1, dbo.CM_Krava.KR1 AS MKR1, dbo.CM_Krava.PL2 AS MPL2, 
                      dbo.CM_Krava.KR2 AS MKR2, dbo.CM_Krava.PL3 AS MPL3, dbo.CM_Krava.KR3 AS MKR3, dbo.CM_Krava.PL4 AS MPL4, dbo.CM_Krava.KR4 AS MKR4, dbo.CM_Krava.PL5 AS MPL5, 
                      dbo.View_CP_PoslVaz2.MDV AS DatumPoslVazenia, dbo.View_CP_PoslVaz2.HMOT, dbo.View_CP_PoslVaz2.DNIVAZ, (dbo.View_CP_PoslVaz2.HMOT - dbo.CM_Telata.HMOTNAR) / DATEDIFF(DAY, 
                      dbo.CM_Telata.DATNAR, dbo.View_CP_PoslVaz2.MDV) * 1000 AS ZP, dbo.CM_Byci.USCISLO, dbo.CM_Byci.MENO, dbo.View_CP_PoslVaz2.RASTPAS
FROM         dbo.CM_Telata LEFT OUTER JOIN
                      dbo.CM_Byci ON dbo.CM_Telata.IDOT = dbo.CM_Byci.IDBYKA LEFT OUTER JOIN
                      dbo.CM_Krava ON dbo.CM_Telata.MATKA = dbo.CM_Krava.CISKRAVY LEFT OUTER JOIN
                      dbo.View_CP_PoslVaz2 ON dbo.CM_Telata.CISTELATA = dbo.View_CP_PoslVaz2.CT
WHERE     (dbo.CM_Telata.PRIZNAKKU = '2') AND (dbo.CM_Telata.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Krava AS CM_Krava_1
                            WHERE      (PRIZNAKKU = '1') OR
                                                   (PRIZNAKKU = '2')))
go

CREATE VIEW dbo.View_CP_Meso_Zoznam_Jalovycky
AS
SELECT     t.CHOVATEL, DATEDIFF(MONTH, t.DATNAR, GETDATE()) AS VekMesac, DATEDIFF(day, t.DATNAR, GETDATE()) AS VekDni, t.CISTELATA, t.POHLAVIE, t.DOVVYR, t.TYPPLEM, p.TYPS, p.UZITKOVYTYP, 
                      p.PODIEL1, p.PODIEL2, t.OUC, b.MENO, t.OTECLIN, t.OTECREG, bp.UZITKOVYTYP AS OtecUzitkovyTyp, bp.NAZTYP AS PlemenoOtca, p.NAZTYP, t.HMOTNAR, v.vaha120, v.priras120, v.zpriras120, 
                      v.vaha210, v.priras210, v.zproras210, v.vaha365, v.priras365, v.zpriras365, v.vaha500, v.priras500, v.zpriras500, t.DATNAR
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                      dbo.CP_Meso_TelataVahy AS v ON t.CISTELATA = v.cistelata LEFT OUTER JOIN
                      dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS bp ON b.TYPPLEM = bp.TYPC
WHERE     (t.PRIZNAKKU = '2') AND (t.POHLAVIE IN ('02', '22', '32', '42', '52', '82', '92')) AND (t.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Krava
                            WHERE      (PRIZNAKKU = '1') OR
                                                   (PRIZNAKKU = '2')))
go

CREATE   VIEW [dbo].[View_PM_BLUP_VSDATA1] AS
select
dbo.PM_DajKraj(potpoh.Chovatel_kraj) AS Chovatel_kraj, potpoh.Chovatel_okres, potpoh.Chovatel_podnik, 
RIGHT(potpoh.Chovatel_chov,2) AS Chovatel_chov, potpoh.Prasnica, potpoh.Datum_narodenia, potpoh.Usne_cislo,
CASE 
	WHEN potpoh.Kod_ketegorie = '3' AND praspev.Chovatel_kraj iS NOT NULL THEN dbo.PM_DajKraj(praspev.Chovatel_kraj)
	ELSE '00'
END AS Skraj,
CASE 
	WHEN potpoh.Kod_ketegorie = '3' AND praspev.Chovatel_okres iS NOT NULL THEN praspev.Chovatel_okres
	ELSE '00'
END AS Sokres,
CASE 
	WHEN potpoh.Kod_ketegorie = '3' AND praspev.Chovatel_podnik iS NOT NULL THEN praspev.Chovatel_podnik
	ELSE '000'
END AS Spodnik,
CASE 
	WHEN potpoh.Kod_ketegorie = '3' AND praspev.Chovatel_chov iS NOT NULL THEN RIGHT(praspev.Chovatel_chov,2)
	ELSE '00'
END AS Schov,
CASE 
	WHEN potpoh.Kod_ketegorie = '6' AND kance.Linia_kanca iS NOT NULL THEN kance.Linia_kanca
	ELSE '0000'
END AS Linia,
CASE 
	WHEN potpoh.Kod_ketegorie = '3' AND praspev.Prasnica iS NOT NULL THEN praspev.Prasnica
	WHEN potpoh.Kod_ketegorie = '6' AND kance.Register_kanca iS NOT NULL THEN kance.Register_kanca
	ELSE '00000'
END AS RegK_Cislo,
potpoh.Kod_ketegorie, 
CASE 
	WHEN potpev.Plemeno_vrhu IN ('30250000','30320000','30500000','30560000') THEN '30000000'
	WHEN potpev.Plemeno_vrhu = '30810000' THEN '40000000'
	ELSE potpev.Plemeno_vrhu
END AS Plemeno_vrhu,
potpev.Linia_kanca, potpev.Register_kanca,
dbo.PM_DajKraj(potpoh.Chovatel_kraj) as Matka_kraj, potpoh.Chovatel_okres as Matka_okres,
potpoh.Chovatel_podnik as Matka_podnik, RIGHT(potpoh.Chovatel_chov,2) as Matka_chov,
potpoh.Prasnica as Matka_matka,
'00' as Stanica,
'000' as Skupina,
CAST(NULL as Date) as Porazka, 0 as prirST, 0 as cmcST, 0 as slanST, 0 as hm2ST,
potpoh.Datum_meraniaVU as Merane,
potpoh.Prirastok as prirVU,
potpoh.Vyska_slaniny as slanVU,
potpoh.Hmotnost_VU as vahaVU
from dbo.PM_PotomsPoh potpoh
inner join dbo.PM_PotomsPev potpev on
potpoh.Chovatel_kraj = potpev.Chovatel_kraj and
potpoh.Chovatel_okres = potpev.Chovatel_okres and
potpoh.Chovatel_podnik = potpev.Chovatel_podnik and
potpoh.Chovatel_chov = potpev.Chovatel_chov and
potpoh.Prasnica = potpev.Prasnica and
potpoh.Datum_narodenia = potpev.Datum_narodenia
outer apply (
	SELECT TOP(1) Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica  FROM dbo.PM_PrasnicePev
	where
potpoh.Chovatel_kraj = Povod_kraj and
potpoh.Chovatel_okres = Povod_okres and
potpoh.Chovatel_podnik = Povod_podnik and
potpoh.Chovatel_chov = Povod_chov and
potpoh.Prasnica = Povod_matka and
potpoh.Datum_narodenia = Datum_narodenia and
potpoh.Usne_cislo = Povod_UsCislo
) as praspev 
outer apply (
	SELECT TOP(1) Linia_kanca, Register_kanca FROM dbo.PM_Kance
	where
potpoh.Chovatel_kraj = Povod_kraj and
potpoh.Chovatel_okres = Povod_okres and
potpoh.Chovatel_podnik = Povod_podnik and
potpoh.Chovatel_chov = Povod_chov and
potpoh.Prasnica = Povod_matka and
potpoh.Datum_narodenia = Datum_narodenia and
potpoh.Usne_cislo = Povod_UsCislo
) as kance
where
potpev.Plemeno_vrhu is not null and 
potpev.Plemeno_vrhu in ('10000000','13000000','20000000','40000000','60000000','62000000','63000000','80000000') and
potpoh.Datum_meraniaVU is not null and
(potpoh.Vyska_slaniny > 0 or potpoh.Hmotnost_VU > 0) and
potpoh.Datum_narodenia is not null and
YEAR(potpoh.Datum_narodenia) >= (YEAR(GETDATE()) - 16) and
potpoh.Hmotnost_VU < 200
go

CREATE VIEW dbo.View_CP_Meso_Zoznam_Bycky
AS
SELECT        t.CHOVATEL, DATEDIFF(MONTH, t.DATNAR, GETDATE()) AS VekMesac, DATEDIFF(day, t.DATNAR, GETDATE()) AS VekDni, t.CISTELATA, t.POHLAVIE, t.DOVVYR, 
                         t.TYPPLEM, p.TYPS, p.UZITKOVYTYP, p.PODIEL1, p.PODIEL2, t.OUC, b.MENO, t.OTECLIN, t.OTECREG, bp.UZITKOVYTYP AS OtecUzitkovyTyp, 
                         bp.NAZTYP AS PlemenoOtca, p.NAZTYP, t.HMOTNAR, v.vaha120, v.priras120, v.zpriras120, v.vaha210, v.priras210, v.zproras210, v.vaha365, v.priras365, 
                         v.zpriras365, v.vaha500, v.priras500, v.zpriras500, t.DATNAR
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                         dbo.CP_Meso_TelataVahy AS v ON t.CISTELATA = v.cistelata LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS bp ON b.TYPPLEM = bp.TYPC
WHERE        (t.PRIZNAKKU = '2') AND (t.POHLAVIE IN ('01', '21', '31', '41', '51', '81', '91'))
go

CREATE   VIEW [dbo].[View_PM_BLUP_VSDATA2] AS
select 
dbo.PM_DajKraj(vjhpev.Chovatel_kraj) AS Chovatel_kraj, vjhpev.Chovatel_okres, vjhpev.Chovatel_podnik, 
RIGHT(vjhpev.Chovatel_chov,2) AS Chovatel_chov, vjhpev.Prasnica as Prasnica, vjhpev.Datum_narodenia as Datum_narodenia, 
vjhpoh.Usne_cislo as Usne_cislo,
'00' AS Skraj,
'00' AS Sokres,
'000' AS Spodnik,
'00' AS Schov,
'0000' AS Linia,
'00000' RegK_Cislo,
vjhpoh.Kod_kategorie as Kod_kategorie, 
CASE 
	WHEN vjhpev.Plemeno_KU IN ('30250000','30320000','30500000','30560000') THEN '30000000'
	WHEN vjhpev.Plemeno_KU = '30810000' THEN '40000000'
	ELSE vjhpev.Plemeno_KU
END AS Plemeno_vrhu,
vjhpev.Linia_kanca as Linia_kanca, vjhpev.Register_kanca as Register_kanca,
dbo.PM_DajKraj(vjhpev.Chovatel_kraj) as Matka_kraj, vjhpev.Chovatel_okres as Matka_okres,
vjhpev.Chovatel_podnik as Matka_podnik, RIGHT(vjhpev.Chovatel_chov,2) as Matka_chov,
vjhpev.Prasnica as Matka_matka,
vjhpev.Stanica_VJH as Stanica,
vjhpev.Cislo_skupiny as Skupina,
vjhpoh.Datum_porazky as Porazka, 
vjhpev.Prirastok AS prirST,
ROUND((vjhpoh.hPlece+vjhpoh.hKrk+vjhpoh.hKotl+vjhpoh.hStehno)*100/vjhpoh.hMS, 2) as cmcST, 
ROUND((vjhpoh.Vyska_slaniny1+vjhpoh.Vyska_slaniny2+vjhpoh.Vyska_slaniny3)/3, 2) as slanST, 
vjhpoh.hMS as hm2ST,
CAST(NULL as Date) as Merane,
0 as prirVU,
0 as slanVU,
0 as vahaVU
from dbo.PM_VJHpev vjhpev
inner join dbo.PM_VJHpoh vjhpoh on
vjhpoh.Rok_testacie = vjhpev.Rok_testacie and
vjhpoh.Stanica_VJH = vjhpev.Stanica_VJH and
vjhpoh.Cislo_skupiny = vjhpev.Cislo_skupiny
where
vjhpev.Plemeno_KU is not null and 
vjhpev.Plemeno_KU in ('10000000','13000000','20000000','40000000','60000000','62000000','63000000','80000000') and
vjhpoh.hMS > 0 and
vjhpev.Datum_narodenia is not null and
YEAR(vjhpev.Datum_narodenia) >= (YEAR(GETDATE()) - 16) and
not exists (select 1 from View_PM_BLUP_VSDATA1 where Chovatel_kraj=dbo.PM_DajKraj(vjhpev.Chovatel_kraj) and Chovatel_okres=vjhpev.Chovatel_okres and
Chovatel_podnik=vjhpev.Chovatel_podnik and Chovatel_chov=RIGHT(vjhpev.Chovatel_chov,2) and Prasnica=vjhpev.Prasnica and 
Datum_narodenia=vjhpev.Datum_narodenia and Usne_cislo=vjhpoh.Usne_cislo)
go

CREATE VIEW dbo.View_CP_Meso_1A_Naroden_J
AS
SELECT        COUNT(CISTELATA) AS pocet_j, AVG(HMOTNAR) AS hmotNar_j, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Jalovycky AS j
WHERE        (DOVVYR IS NULL) AND (HMOTNAR IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW dbo.View_CP_Pristupy
AS
SELECT     TOP (100) PERCENT aspnetdb.dbo.aspnet_Users.UserName, dbo.NM_PRACKU.IDPRACKU, dbo.NM_PRACKU.MENO, dbo.NM_PRACKU.PRIEZVISKO, 
                      dbo.NM_PRACKU.CORG, dbo.NM_PRACKU.FIRMA, aspnetdb.dbo.aspnet_Membership.IsLockedOut
FROM         dbo.NM_PRACKU INNER JOIN
                      aspnetdb.dbo.User_PRACKU ON dbo.NM_PRACKU.IDPRACKU = aspnetdb.dbo.User_PRACKU.IDPRACKU INNER JOIN
                      aspnetdb.dbo.aspnet_Membership ON aspnetdb.dbo.User_PRACKU.UserId = aspnetdb.dbo.aspnet_Membership.UserId RIGHT OUTER JOIN
                      aspnetdb.dbo.aspnet_Users ON aspnetdb.dbo.User_PRACKU.UserId = aspnetdb.dbo.aspnet_Users.UserId
ORDER BY aspnetdb.dbo.aspnet_Users.UserName
go

CREATE   VIEW [dbo].[View_PM_BLUP_VSDATA] AS
select 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov,
Prasnica, Datum_narodenia, Usne_cislo,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Skraj
END AS Skraj,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Sokres
END AS Sokres,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '000'
	ELSE Spodnik
END AS Spodnik,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Schov
END AS Schov,
CASE 
	WHEN Linia_kanca=Linia AND Register_kanca=RegK_Cislo THEN '0000'
	ELSE Linia
END AS Linia,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00000'
	WHEN Linia_kanca=Linia AND Register_kanca=RegK_Cislo THEN '00000'
	ELSE RegK_Cislo
END AS RegK_Cislo,
Kod_ketegorie as Kod_kategorie, Plemeno_vrhu, Linia_kanca, Register_kanca,
Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka_matka,
Stanica, Skupina, Porazka,
prirST, cmcST, slanST, hm2ST, Merane, prirVU, slanVU, vahaVU
from View_PM_BLUP_VSDATA1
UNION
select 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov,
Prasnica, Datum_narodenia, Usne_cislo,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Skraj
END AS Skraj,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Sokres
END AS Sokres,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '000'
	ELSE Spodnik
END AS Spodnik,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00'
	ELSE Schov
END AS Schov,
CASE 
	WHEN Linia_kanca=Linia AND Register_kanca=RegK_Cislo THEN '0000'
	ELSE Linia
END AS Linia,
CASE 
	WHEN Chovatel_kraj=Skraj AND Chovatel_okres=Sokres AND Chovatel_podnik=Spodnik AND Chovatel_chov=Schov AND Prasnica=RegK_Cislo THEN '00000'
	WHEN Linia_kanca=Linia AND Register_kanca=RegK_Cislo THEN '00000'
	ELSE RegK_Cislo
END AS RegK_Cislo,
Kod_kategorie, Plemeno_vrhu, Linia_kanca, Register_kanca,
Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka_matka,
Stanica, Skupina, Porazka,
prirST, cmcST, slanST, hm2ST, Merane, prirVU, slanVU, vahaVU
from View_PM_BLUP_VSDATA2
go

/****** Script for SelectTopNRows command from SSMS  ******/
CREATE VIEW dbo.View_CP_poslednoHodnotenieBycy
AS
SELECT        o.IDBYKA, o.IDMA, o.IDOT, o.KRVROZ, o.DATKRVROZ, o.BB_COUNTRYCODE, o.PK, pl.NAZTYP AS plemTyp, s.NazSt, b.ROKSPRAC, b.MESSPRAC, 
                         o.USCISLO AS BYK, pl.UZITKOVYTYP, o.DATNAR, o.LIN + '-' + RIGHT('000' + CONVERT(varchar, o.REG), 3) AS lin, o.FARBA, f.NAZF, 
                         ISNULL(o.PL1 + '-' + CONVERT(varchar, o.KR1), '') + '  ' + ISNULL(ISNULL(o.PL2, '') + '-' + CONVERT(varchar, o.KR2), '') 
                         + '  ' + ISNULL(o.PL3 + '-' + CONVERT(varchar, o.KR3), '') + '  ' + ISNULL(o.PL4 + '-' + CONVERT(varchar, o.KR4), '') 
                         + '  ' + ISNULL(o.PL5 + '-' + CONVERT(varchar, 100 - (o.KR1 + o.KR2 + o.KR3 + o.KR4)), '') AS plemena, o.MENO, o.OTUSCIS, o.MATKA, b.MENBYK, b.stada, 
                         b.cery, b.PLEMENO, b.SPI, b.REL, b.M305 AS MLIEKO, b.T305 AS TUK, b.tukpercenta AS TUKP, b.B305 AS BIELK, b.bielkperc AS BIELKP, b.SKUPINA, 
                         b.Preskupinovane, b.CHEKMEOUT, ho.PHHMOT120, ho.PHHMOT210, ho.PHHMOT365, ho.SPOLAHL * 100 AS SPOLAHL, bsb.SC305, bsb.RPHSC, bsb.RELSB, 
                         ho.N_POTOMKOV, ho.N_STAD, bsb.ROKSPRAC AS SBroksprac, bsb.MESSPRAC AS SBMessprac, bsb.stada AS SBstada, bsb.cery AS SBcery, 
                         bsb.SKUPINA AS SBskupina, b.RPHM, b.RPHT, b.RPHB, ho.DATE_EVAL
FROM            dbo.CM_Byci AS o LEFT OUTER JOIN
                         dbo.CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena AS b ON o.USCISLO = b.BYK LEFT OUTER JOIN
                         dbo.CC_Farby AS f ON o.FARBA = f.KODF LEFT OUTER JOIN
                         dbo.CM_PHBYCIMP AS ho ON o.USCISLO = ho.ANIMAL AND ho.DATE_EVAL =
                             (SELECT        MAX(DATE_EVAL) AS Expr1
                               FROM            dbo.CM_PHBYCIMP
                               WHERE        (ANIMAL = o.USCISLO)) LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS pl ON o.TYPPLEM = pl.TYPC LEFT OUTER JOIN
                         dbo.CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB AS bsb ON b.BYK = bsb.BYK LEFT OUTER JOIN
                         dbo.CC_Staty AS s ON o.BB_COUNTRYCODE = s.KodSt
go

CREATE VIEW dbo.View_CP_Meso_1A_Naroden_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(HMOTNAR) AS hmotNar_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (HMOTNAR IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW dbo.View_cp_testhodnotbycy2SB
AS
SELECT        ROKSPRAC, MESSPRAC, BYK, DATNAR, BLIN, SREG, MENBYK, stada, cery, PLEMENO, SC305, RPHSC, RELSB, SKUPINA, Preskupinovane, 
                         CASE WHEN skupina = preskupinovane THEN 'ANO' ELSE 'NIE' END AS chekmeout
FROM            dbo.View_cp_test_hodnotbyci
go

CREATE view [dbo].[View_Pracovnik_Chov_100]
as
select hd.KRAJ, hd.OKRES, hd.PODNIK, hd.CHOV, chov.NAZOV, chov.TYPZV, hd.IDZOO, 100 as PERC from dbo.NM_HDDETAIL as hd
inner join dbo.NM_CHOVMAS as chov on hd.KRAJ = chov.KRAJ and hd.OKRES = chov.OKRES and hd.PODNIK = chov.PODNIK and hd.CHOV = chov.CHOV and chov.TYPZV = 1
where chov.ZRUS is null and hd.PRIZNAK='01' and hd.IDZOO <> '00000'
union all
select os.KRAJ, os.OKRES, os.PODNIK, os.CHOV, chov.NAZOV, chov.TYPZV, os.PLEMENAR , 100 as PERC from dbo.NM_OSDETAIL as os
inner join dbo.NM_CHOVMAS as chov on os.KRAJ = chov.KRAJ and os.OKRES = chov.OKRES and os.PODNIK = chov.PODNIK and os.CHOV = chov.CHOV and chov.TYPZV = 2
where chov.ZRUS is null and os.PLEMENAR <> '00000'
union all
select ov.KRAJ, ov.OKRES, ov.PODNIK, ov.CHOV, chov.NAZOV, chov.TYPZV, k.IDPAM , 100 as PERC from dbo.NM_OVDETAIL as ov
inner join dbo.NM_CHOVMAS as chov on ov.KRAJ = chov.KRAJ and ov.OKRES = chov.OKRES and ov.PODNIK = chov.PODNIK and ov.CHOV = chov.CHOV and chov.TYPZV = 3
left join dbo.NM_KONTAKT k on ov.CISZOO = k.ID
where chov.ZRUS is null and ov.CISZOO <> '00000'
union all
select ko.KRAJ, ko.OKRES, ko.PODNIK, ko.CHOV, chov.NAZOV, chov.TYPZV, k.IDPAM , 100 as PERC from dbo.NM_KODETAIL as ko
inner join dbo.NM_CHOVMAS as chov on ko.KRAJ = chov.KRAJ and ko.OKRES = chov.OKRES and ko.PODNIK = chov.PODNIK and ko.CHOV = chov.CHOV and chov.TYPZV = 4
left join dbo.NM_KONTAKT k on ko.CISZOO = k.ID
where chov.ZRUS is null and ko.CISZOO <> '00000';

go

CREATE   VIEW [dbo].[View_PM_BLUP_VUPRASN1] AS
select Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica,
Povod_kraj, Povod_okres, Povod_podnik,Povod_chov, Povod_matka, Datum_narodenia, Povod_UsCislo,
Linia_otca, Register_otca, Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka_matka,
Dovoz, Plemeno from (
select 
dbo.PM_DajKraj(ppev.Chovatel_kraj) AS Chovatel_kraj, ppev.Chovatel_okres, ppev.Chovatel_podnik, 
RIGHT(ppev.Chovatel_chov,2) AS Chovatel_chov,
ppev.Prasnica,
dbo.PM_DajKraj(ppev.Povod_kraj) AS Povod_kraj, ppev.Povod_okres, ppev.Povod_podnik, 
RIGHT(ppev.Povod_chov,2) AS Povod_chov,
ppev.Povod_matka, ppev.Datum_narodenia, ppev.Povod_uscislo,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '0000'
	ELSE ppev.Linia_otca
END AS Linia_otca,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '00000'
	ELSE ppev.Register_otca
END AS Register_otca,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '00'
	ELSE dbo.PM_DajKraj(ppev.Povod_kraj)
END AS Matka_kraj,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '00'
	ELSE ppev.Povod_okres
END AS Matka_okres,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '000'
	ELSE ppev.Povod_podnik
END AS Matka_podnik,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '00'
	ELSE RIGHT(ppev.Povod_chov,2)
END AS Matka_chov,
CASE 
	WHEN ppev.Kod_povod <> '00' THEN '00000'
	ELSE ppev.Povod_matka
END AS Matka_matka,
ppev.Kod_povod as Dovoz, ppev.Plemeno_KU as Plemeno
from dbo.PM_PrasnicePev ppev) xx
where Chovatel_chov < '20' and Plemeno > '00000000' and Datum_narodenia is not null
go

CREATE VIEW dbo.View_CP_Meso_1A_120_J
AS
SELECT        COUNT(CISTELATA) AS pocet_j, AVG(vaha120) AS hmot120_j, AVG(priras120) AS prir120_j, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Jalovycky AS j
WHERE        (DOVVYR IS NULL) AND (vaha120 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE view [dbo].[View_Pracovnik_Chov_ChovZoot]
as
select chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC1 as ZOOTOC, chovZ.ZOOTPER1 as ZOOTPER from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC1 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC2, chovZ.ZOOTPER2 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC2 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC3, chovZ.ZOOTPER3 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC3 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC4, chovZ.ZOOTPER4 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC4 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC5, chovZ.ZOOTPER5 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC5 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC6, chovZ.ZOOTPER6 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC6 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC7, chovZ.ZOOTPER7 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC7 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC8, chovZ.ZOOTPER8 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC8 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC9, chovZ.ZOOTPER9 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC9 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'))
union all
select  chovZ.KRAJ, chovZ.OKRES, chovZ.PODNIK, chovZ.CHOV, chov.NAZOV, chovZ.TYPZV, chovZ.ZOOTOC10, chovZ.ZOOTPER10 from NM_ChovZoot chovZ
inner join dbo.NM_CHOVMAS as chov on chovZ.KRAJ = chov.KRAJ and chovZ.OKRES = chov.OKRES and chovZ.PODNIK = chov.PODNIK and chovZ.CHOV = chov.CHOV and chov.TYPZV = chovZ.TYPZV
left join dbo.NM_HDDETAIL hd on chov.KRAJ = hd.KRAJ and chov.OKRES = hd.OKRES and chov.PODNIK = hd.PODNIK and chov.CHOV = hd.CHOV 
where chov.ZRUS is null and chovZ.ZOOTOC10 <> '00000' and (chovZ.TYPZV != '1' or (chovZ.TYPZV = '1' and hd.PRIZNAK = '01'));
go

CREATE   VIEW [dbo].[View_PM_BLUP_VUPRASN2] AS
select 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Povod_kraj
END AS Povod_kraj,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Povod_okres
END AS Povod_okres,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '000'
	ELSE Povod_podnik
END AS Povod_podnik,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Povod_chov
END AS Povod_chov,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00000'
	ELSE Povod_matka
END AS Povod_matka,
Datum_narodenia, 
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '0000000'
	ELSE Povod_uscislo
END AS Povod_uscislo,
Linia_otca, Register_otca,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Matka_kraj
END AS Matka_kraj,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Matka_okres
END AS Matka_okres,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '000'
	ELSE Matka_podnik
END AS Matka_podnik,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00'
	ELSE Matka_chov
END AS Matka_chov,
CASE 
	WHEN Povod_kraj = Matka_kraj AND Povod_okres = Matka_okres AND Povod_podnik = Matka_podnik AND
		 Povod_chov = Matka_chov AND Prasnica = Matka_matka THEN '00000'
	ELSE Matka_matka
END AS Matka_matka,
Dovoz, Plemeno
from View_PM_BLUP_VUPRASN1
go

CREATE VIEW dbo.View_CP_Meso_1A_120_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(vaha120) AS hmot120_b, AVG(priras120) AS prir120_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (vaha120 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW [dbo].[View_Pracovnik_Chov]
AS
select case when chZ.KRAJ IS not null 
			then concat(chZ.KRAJ, chZ.OKRES, chZ.PODNIK, chZ.CHOV)
			else concat(ch.KRAJ, ch.OKRES, ch.PODNIK, ch.CHOV)
		end as CHOV,
		case when chZ.KRAJ IS not null 
			then chZ.NAZOV
			else ch.NAZOV
		end as NAZOV,
		case when chZ.KRAJ IS not null 
			then chZ.TYPZV
			else ch.TYPZV
		end as TYPZV,
		case when chZ.KRAJ IS not null 
			then chZ.ZOOTOC
			else ch.IDZOO
		end as IDZOO,
		case when chZ.KRAJ IS not null 
			then chZ.ZOOTPER
			else ch.PERC
		end as PERC
 from View_Pracovnik_Chov_ChovZoot chZ
	full join View_Pracovnik_Chov_100 ch 
		on chZ.KRAJ = ch.KRAJ and 
			chZ.OKRES = ch.OKRES and 
			chZ.PODNIK = ch.PODNIK and 
			chZ.CHOV = ch.CHOV and 
			chZ.TYPZV = ch.TYPZV and 
			chZ.ZOOTOC = ch.IDZOO;

go

CREATE VIEW dbo.View_SP_BarRokNar
AS
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, SUM(1) 
                      AS pocet
FROM         dbo.SM_BARAN
WHERE     (DOVOD = '0') AND (DATVYR IS NULL)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar
go

CREATE   VIEW [dbo].[View_PM_BLUP_VUKANCE1] AS
select 
kance.Linia_kanca, kance.Register_kanca, 
dbo.PM_DajKraj(kance.Chovatel_kraj) AS Chovatel_kraj, kance.Chovatel_okres, kance.Chovatel_podnik, 
RIGHT(kance.Chovatel_chov,2) AS Chovatel_chov,
dbo.PM_DajKraj(kance.Povod_kraj) AS Povod_kraj, kance.Povod_okres, kance.Povod_podnik, 
RIGHT(kance.Povod_chov,2) AS Povod_chov,
kance.Povod_matka, kance.Datum_narodenia, kance.Povod_uscislo,
CASE 
	WHEN kance.Linia_kanca = kance.Linia_otca AND kance.Register_kanca = kance.Register_otca THEN '0000'
	WHEN kance.Kod_povod <> '00' THEN '0000'
	ELSE kance.Linia_otca
END AS Linia_otca,
CASE 
	WHEN kance.Linia_kanca = kance.Linia_otca AND kance.Register_kanca = kance.Register_otca THEN '00000'
	WHEN kance.Kod_povod <> '00' THEN '00000'
	ELSE kance.Register_otca
END AS Register_otca,
CASE 
	WHEN kance.Kod_povod <> '00' THEN '00'
	ELSE dbo.PM_DajKraj(kance.Povod_kraj)
END AS Matka_kraj,
CASE 
	WHEN kance.Kod_povod <> '00' THEN '00'
	ELSE kance.Povod_okres
END AS Matka_okres,
CASE 
	WHEN kance.Kod_povod <> '00' THEN '000'
	ELSE kance.Povod_podnik
END AS Matka_podnik,
CASE 
	WHEN kance.Kod_povod <> '00' THEN '00'
	ELSE RIGHT(kance.Povod_chov,2)
END AS Matka_chov,
CASE 
	WHEN kance.Kod_povod <> '00' THEN '00000'
	ELSE kance.Povod_matka
END AS Matka_matka,
kance.Kod_povod as Dovoz, kance.Plemeno_KU as Plemeno
from dbo.PM_Kance kance
go

CREATE VIEW dbo.View_CP_Meso_1A_210_J
AS
SELECT        COUNT(CISTELATA) AS pocet_j, AVG(vaha210) AS hmot210_j, AVG(priras210) AS prir210_j, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Jalovycky AS j
WHERE        (DOVVYR IS NULL) AND (vaha210 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW dbo.View_SP_BahRokNar
AS
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, SUM(1) 
                      AS pocet
FROM         dbo.SM_BAHNICA
WHERE     (DOVOD = '0') AND (DATVYR IS NULL)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar
go

CREATE   VIEW [dbo].[View_PM_BLUP_VSKAN] AS
select
v.Linia_kanca, v.Register_kanca, 
v.Povod_kraj, v.Povod_okres, v.Povod_podnik, v.Povod_chov, 
v.Povod_matka, v.Datum_narodenia, v.Povod_uscislo,
v.Dovoz, v.Plemeno
from View_PM_BLUP_VUKANCE1 v
left join PM_BLUP_VSDATA vsdata on vsdata.Chovatel_kraj = v.Povod_kraj and vsdata.Chovatel_okres = v.Povod_okres and
vsdata.Chovatel_podnik = v.Povod_podnik and vsdata.Chovatel_chov = v.Povod_chov and vsdata.Prasnica = v.Povod_matka and
vsdata.Datum_narodenia = v.Datum_narodenia and vsdata.Usne_cislo = v.Povod_uscislo and vsdata.Kod_kategorie=6
where v.linia_kanca <> '0000' and
v.register_kanca <> '00000' and
v.plemeno <> '00000000'
and v.datum_narodenia is not null
go

CREATE VIEW dbo.View_UzProdDenKravaSpoluK
AS
SELECT        k.CISKRAVY, k.CHOVATEL, k.rokvyr, k.vekvyr, k.vekprod, l.sml, l.stuk, l.sbielk, k.PORPREBLAK
FROM            dbo.View_UzProdDenK AS k INNER JOIN
                         dbo.View_UzProdDenChovK AS l ON k.CISKRAVY = l.CISKRAVY
go

CREATE VIEW dbo.View_CP_Meso_1A_365_J
AS
SELECT        COUNT(CISTELATA) AS pocet_j, AVG(vaha365) AS hmot365_j, AVG(priras365) AS prir365_j, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Jalovycky AS j
WHERE        (DOVVYR IS NULL) AND (vaha365 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE   VIEW [dbo].[View_PM_BLUP_VSPRA] AS
select 
v.Chovatel_kraj, v.Chovatel_okres, v.Chovatel_podnik, v.Chovatel_chov, v.Prasnica,
v.Povod_kraj, v.Povod_okres, v.Povod_podnik, v.Povod_chov, 
v.Povod_matka, v.Datum_narodenia, v.Povod_uscislo,
v.Dovoz, v.Plemeno
from View_PM_BLUP_VUPRASN2 v
left join PM_BLUP_VSDATA vsdata on vsdata.Chovatel_kraj = v.Povod_kraj and vsdata.Chovatel_okres = v.Povod_okres and
vsdata.Chovatel_podnik = v.Povod_podnik and vsdata.Chovatel_chov = v.Povod_chov and vsdata.Prasnica = v.Povod_matka and
vsdata.Datum_narodenia = v.Datum_narodenia and vsdata.Usne_cislo = v.Povod_uscislo and vsdata.Kod_kategorie=3
where v.Chovatel_kraj <> '00' AND v.Chovatel_okres <> '00' AND v.Chovatel_podnik <> '000' AND 
v.Chovatel_chov <> '00' and v.Prasnica <> '00000' and
v.plemeno <> '00000000'
and v.datum_narodenia is not null
go

CREATE VIEW dbo.View_CP_Meso_1A_700_J
AS
SELECT        COUNT(CISTELATA) AS pocet_j, AVG(vaha500) AS hmot700_j, AVG(priras500) AS prir700_j, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Jalovycky AS j
WHERE        (DOVVYR IS NULL) AND (vaha500 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go





CREATE VIEW [dbo].[BB_BULLS]

   as
select
	--B.IDBYKA,
	ISNULL(CONVERT(varchar(3),B.LIN),'') AS LIN,
	ISNULL(RIGHT('000' + CONVERT(varchar,B.REG),3),'') as REG,
	ISNULL(B.USCISLO,'') AS USCISLO,
	ISNULL(B.MENO,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS AS MENO,
	ISNULL(B.MENO1,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS AS MENO1,
	ISNULL(CONVERT(varchar(3),B.PK),'') AS PK,
	ISNULL(CONVERT(varchar(20),B.CHOVNAR),'') as CHOVNAR,
	ISNULL(CONVERT(varchar(3),OB.LIN),'') AS OTECLIN,
	ISNULL(CONVERT(varchar(3),OB.REG),'') AS OTECREG,
	ISNULL(B.OTUSCIS,'') AS OTUSCIS,
	ISNULL(B.MATKA,'') AS MATKA,
	B.DATNAR AS DATNAR ,
	B.DATPOR AS DATPOR,
	B.DATREG AS DATREG,
	ISNULL(B.KROK,'') AS KROK,
	ISNULL(B.CHOVNAR,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS AS CHOVATEL,
	ISNULL(B.MAJITEL,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS AS MAJITEL,
	ISNULL(B.KODMAJ,'') AS KODMAJ,
	ISNULL(B.PL1,'')AS PL1,
	ISNULL(CONVERT(VARCHAR(5), ISNULL(B.KR1, 0)),'') AS KR1,
	ISNULL(B.PL2,'')AS PL2,
	ISNULL(CONVERT(VARCHAR(5), ISNULL(B.KR2, 0)),'') AS KR2,
	ISNULL(B.PL3,'')AS PL3,
	ISNULL(CONVERT(VARCHAR(5), ISNULL(B.KR3, 0)),'') AS KR3,
	ISNULL(B.PL4,'')AS PL4,
	ISNULL(CONVERT(VARCHAR(5), ISNULL(B.KR4, 0)),'') AS KR4,
	ISNULL(B.PL5,'') AS PL5,
		  ISNULL(B.FARBA,'') AS FARBA,
		  ISNULL(B.ZNAKET,'') AS ZNAKET,
		  ISNULL(B.KRVROZ,'') AS KRVROZ,
		  B.DATKRVROZ AS DATKRVROZ,
		  B.ZDRAVTR AS ZDRAVTR,
		  B.ZACTEST AS ZACTEST,
		  B.KONTEST AS KONTEST, 
		  ----CID.Control_ID
		  CDM.FROM_DATE  AS KDMROK
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(5,0),CDM.HERD_COUNT)),'') AS KDMPOCSTAD
			  ,ISNULL(CONVERT(varchar(7),convert(decimal(5,1),CDM. EFECT_DOUGHTERS_COUNT)),'') as KDMSW
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(5,0),CDM.TESTED_DOUGHTERS)),'') AS KDMPOC
			  ,ISNULL(CONVERT(varchar(5),CDM.MILK_KG),'') AS KDMMLIEKO
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(4,0),CDM.MILK_VALUE)),'') AS BLUPMLIEKO
			  ,ISNULL(CONVERT(varchar(6),convert(decimal(5,0),CDM.MILK_VALUE_RELATIVE)),'') AS RPHMLIEKA
			  ,ISNULL(CONVERT(varchar(3),convert(decimal(3,0),CDM.FAT_KG)),'') AS KDMTUKKG
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(3,2),CDM.FAT_RELATIVE)),'') AS KDMTUKPER
			  ,ISNULL(CONVERT(varchar(3),convert(decimal(3,0),CDM.FAT_VALUE)),'') AS BLUPTUK
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(3,2),CDM.FAT_VALUE_PERC)),'') AS PHTUK
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(5,0),CDM.FAT_VALUE_RELATIVE)),'') AS RPHTUKU
			  ,ISNULL(CONVERT(varchar(3),convert(decimal(3,0),CDM.PROTEIN_KG)),'') AS KDMBIELKG
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(3,2),CDM.PROTEIN_RELATIVE)),'') AS KDMBIELPER
			  ,ISNULL(CONVERT(varchar(3),convert(decimal(3,0),CDM.PROTEIN_VALUE)),'') AS BLUPBIELK
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(3,2),CDM.PROTEIN_VALUE_PERC)),'') AS PHBIELK
			  ,ISNULL(CONVERT(varchar(6),convert(decimal(6,0),CDM.PROTEIN_VALUE_RELATIVE)),'') AS RPHBIELK
			  ,ISNULL(CONVERT(varchar(3),CDM.RELIABILITY),'') AS PEROPAKOV
			  ,ISNULL(CONVERT(varchar(4),m.SHORTNAME),'') AS METODA
			  ,ISNULL(CONVERT(varchar(12),k.COUNTRYCODE),'') AS KDE
			  ,CDD.FROM_DATE AS KDDROK
			  ,ISNULL(CONVERT(varchar(7),convert(decimal(5,2),CDD.EFECT_DOUGHTERS_COUNT)),'') AS KDDSW
			  ,ISNULL(CONVERT(varchar(3),convert(decimal(3,0),CDD.TESTED_CHILDS)),'') AS KDDPOC
			  ,ISNULL(CONVERT(varchar(4),convert(decimal(3,1),CDD.MAX_PER_MIN)),'') AS KDDMAXMINV
			  ,ISNULL(CONVERT(varchar(4),convert(decimal(3,1),CDD.FRONT_REAR_INDEX)),'') AS KDDIPZ
			  ,ISNULL(CONVERT(varchar(5),convert(decimal(4,1),CDD.RELATIVE_PER_3MIN)),'') AS KDDRV3
			  ,ISNULL(CONVERT(varchar(6),convert(decimal(5,1),CDD.RELATIVE_BREED_VALUE)),'') AS RPHRV3
			  ,CDV.FROM_DATE AS KDVROK
			  ,ISNULL(CONVERT(varchar(6),convert(decimal(4,2),CDV.EFECT_DOUGHTERS_COUNT)),'') AS KDVSW
			  ,ISNULL(CONVERT(varchar(2),convert(decimal(2,0),CDV.TESTED_CHILDS)),'') AS KDVPOC
			  ,ISNULL(CONVERT(varchar(4),convert(decimal(4,0),CDV.GROWTH_DAILY_TEST)),'') AS PRIRTEST
			  ,ISNULL(CONVERT(varchar(4),convert(decimal(4,0),CDV.GROWTH_DAILY_LIFE)),'') AS PRIRCEL
			  ,ISNULL(CONVERT(varchar(4),convert(decimal(4,0),CDV.GROWTH_NETTO)),'') AS NETTOPRIR
			  ,ISNULL(CONVERT(varchar(6),convert(decimal(6,0),CDV.RELATIVE_BREED_VALUE)),'') AS RPHNETTO
			  ,ISNULL(CONVERT(varchar(12),k1.COUNTRYNAME),'') AS KDVSTAT
			  ,ISNULL(CONVERT(varchar(2),CDV.INDEX_NAME),'') AS KDVNAZIND
			  ,ISNULL(CONVERT(varchar(3),CDV.INDEX_VALUE),'') AS KDVIND
			  ,ISNULL(CONVERT(varchar(2),CDV.RELIABILITY),'') AS KDVRL
           
  from CM_BYCI as B
	 LEFT OUTER JOIN CM_BYCI as OB on B.OTUSCIS = OB.USCISLO
	 LEFT OUTER JOIN (select MAX(CONTROL_MILK_ID) AS Control_ID, LINE, REGISTER from CM_BB_CONTROL_MILK as K 
		group by LINE, REGISTER  ) as CID on CID.LINE = B.LIN 
												and CID.REGISTER = B.REG
	LEFT OUTER JOIN CM_BB_CONTROL_MILK AS CDM ON CID.LINE = CDM.LINE  
													and CID.REGISTER = CDM.REGISTER 
													and CID.Control_ID=  CDM.CONTROL_MILK_ID
	LEFT OUTER JOIN (select MAX(CONTROL_MILK_YIELD_ID) AS Control_ID, LINE, REGISTER from CM_BB_CONTROL_MILK_YIELD as Y 
		group by LINE, REGISTER  ) as CYD on CYD.LINE = B.LIN and CYD.REGISTER = B.REG
	LEFT OUTER JOIN CM_BB_CONTROL_MILK_YIELD AS CDD ON B.LIN = CDD.LINE  
														and B.REG = CDD.REGISTER  
														and CYD.Control_ID = CDD.CONTROL_MILK_YIELD_ID
	LEFT OUTER JOIN CM_BB_CONTROL_MEAT AS CDV ON B.LIN = CDV.LINE  
													and B.REG = CDV.REGISTER 
	LEFT OUTER JOIN CC_BB_METHOD AS m ON m.METHOD_ID = CDM.METHOD_ID
	LEFT OUTER JOIN CC_BB_COUNTRY as k on k.COUNTRY_ID = CDM.COUNTRY_ID
		LEFT OUTER JOIN CC_BB_COUNTRY as k1 on k1.COUNTRY_ID = CDV.COUNTRY_ID 		 
		  
				where B.BB_ANIMAL_ID is not null
				
;


go

CREATE   VIEW [dbo].[View_PM_BLUP_VUKANCE] AS
select 
Linia_kanca, Register_kanca, 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov,
Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, 
Povod_matka, Datum_narodenia, Povod_uscislo,
CASE 
	WHEN YEAR(Datum_narodenia_otca) > YEAR(Datum_narodenia) THEN '0000'
	ELSE Linia_otca
END AS Linia_otca,
CASE 
	WHEN YEAR(Datum_narodenia_otca) > YEAR(Datum_narodenia) THEN '00000'
	ELSE Register_otca
END AS Register_otca,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) THEN '00'
	ELSE Matka_kraj
END AS Matka_kraj,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) THEN '00'
	ELSE Matka_okres
END AS Matka_okres,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) THEN '000'
	ELSE Matka_podnik
END AS Matka_podnik,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) THEN '00'
	ELSE Matka_chov
END AS Matka_chov,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) THEN '00000'
	ELSE Matka_matka
END AS Matka_matka,
Dovoz, Plemeno
from (
select v.*, vskan.Datum_narodenia as Datum_narodenia_otca, vspra.Datum_narodenia as Datum_narodenia_matky
from View_PM_BLUP_VUKANCE1 v
left join PM_BLUP_VSKAN vskan on vskan.Linia_kanca = v.Linia_otca and vskan.Register_kanca = v.Register_otca
left join PM_BLUP_VSPRA vspra on vspra.Chovatel_kraj = v.Matka_kraj and vspra.Chovatel_okres = v.Matka_okres and
vspra.Chovatel_podnik = v.Matka_podnik and vspra.Chovatel_chov = v.Matka_chov and vspra.Prasnica = v.Matka_matka
) xx
go

CREATE VIEW dbo.View_CP_Meso_1A_210_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(vaha210) AS hmot210_b, AVG(priras210) AS prir210_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (vaha210 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW dbo.View_CP_PoslednaInseminacia
AS
SELECT        w.IPLCA, w.IDAIN, w.IPOIN, w.IBLIN, w.IBREG, w.IVYSE, b.USCISLO, b.MENO
FROM            dbo.View_CP_poslednaINseminaciq AS w LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON w.IBLIN = b.LIN AND w.IBREG = b.REG
go

CREATE   VIEW [dbo].[View_PM_BLUP_VUPRASN] AS
select 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica,
Povod_kraj, Povod_okres, Povod_podnik, Povod_chov, 
Povod_matka, Datum_narodenia, Povod_uscislo,
CASE 
	WHEN YEAR(Datum_narodenia_otca) > YEAR(Datum_narodenia) THEN '0000'
	ELSE Linia_otca
END AS Linia_otca,
CASE 
	WHEN YEAR(Datum_narodenia_otca) > YEAR(Datum_narodenia) THEN '00000'
	ELSE Register_otca
END AS Register_otca,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) OR (YEAR(Datum_narodenia)- ISNULL(YEAR(Datum_narodenia_matky),0)) >= 6 THEN '00'
	ELSE Matka_kraj
END AS Matka_kraj,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) OR (YEAR(Datum_narodenia)- ISNULL(YEAR(Datum_narodenia_matky),0)) >= 6 THEN '00'
	ELSE Matka_okres
END AS Matka_okres,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) OR (YEAR(Datum_narodenia)- ISNULL(YEAR(Datum_narodenia_matky),0)) >= 6 THEN '000'
	ELSE Matka_podnik
END AS Matka_podnik,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) OR (YEAR(Datum_narodenia)- ISNULL(YEAR(Datum_narodenia_matky),0)) >= 6 THEN '00'
	ELSE Matka_chov
END AS Matka_chov,
CASE 
	WHEN YEAR(Datum_narodenia_matky) > YEAR(Datum_narodenia) OR (YEAR(Datum_narodenia)- ISNULL(YEAR(Datum_narodenia_matky),0)) >= 6 THEN '00000'
	ELSE Matka_matka
END AS Matka_matka,
Dovoz, Plemeno
from (
select distinct v.*, vskan.Datum_narodenia as Datum_narodenia_otca, vspra.Datum_narodenia as Datum_narodenia_matky
from View_PM_BLUP_VUPRASN2 v
left join PM_BLUP_VSKAN vskan on vskan.Linia_kanca = v.Linia_otca and vskan.Register_kanca = v.Register_otca
left join PM_BLUP_VSPRA vspra on vspra.Chovatel_kraj = v.Matka_kraj and vspra.Chovatel_okres = v.Matka_okres and
vspra.Chovatel_podnik = v.Matka_podnik and vspra.Chovatel_chov = v.Matka_chov and vspra.Prasnica = v.Matka_matka
) xx
go

CREATE VIEW dbo.View_CP_Meso_1A_365_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(vaha365) AS hmot365_b, AVG(priras365) AS prir365_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (vaha365 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW dbo.View_Bujko_vahy
AS
SELECT        TOP (100) PERCENT v.CISTELATA AS cislo_zvierata, t.CHOVATEL, v.DATVAZ, DATEDIFF(day, t.DATNAR, v.DATVAZ) AS Dni, v.HMOT
FROM            dbo.CM_Vazenia AS v LEFT OUTER JOIN
                         dbo.CM_Telata AS t ON v.CISTELATA = t.CISTELATA
WHERE        (t.PRIZNAKKU = '1') AND (v.DATVAZ > '2011-12-31') AND (t.TYPPLEM IN (11, 13, 14)) AND (DATEDIFF(day, t.DATNAR, v.DATVAZ) < 1200) AND (v.HMOT > 0) AND 
                         (DATEDIFF(day, t.DATNAR, v.DATVAZ) > 10)
ORDER BY cislo_zvierata, v.DATVAZ
go

CREATE   VIEW [dbo].[View_PM_BLUP_PRASPOH] AS
select 
dbo.PM_DajKraj(prains.Chovatel_kraj) AS Chovatel_kraj, prains.Chovatel_okres, prains.Chovatel_podnik, 
RIGHT(prains.Chovatel_chov,2) AS Chovatel_chov,
prains.Prasnica as Prasnica,
'1' as Typ,
prains.Datum_pripustenia as Datum,
RIGHT('00'+CAST(prains.Poradie_pripustenia as varchar(2)),2) as PorIns,
prains.Kod_pripustenia as Technik,
prains.Kod_kategorie as ZnakPras,
prains.Kod_brez as ZnakBrez,
prains.Linia_kanca as Linia_kanca,
prains.Register_kanca as Register_kanca,
prains.Pocet_reins as Pocet_reins,
'00' as Poradie_vrhu,
'00000000' as Plemeno_vrhu,
'0' as Kod_charvrh,
'0' as Kod_VyV,
0 as Vsetky_nar,
0 as Zivo_nar,
0 as defekt_nar,
CAST(NULL as Date) as Datum_odstavu,
0 as Dochov,
0 as Hmotnost_vrhu,
0 as Medziobdobie,
0 as Priemer_vsetky,
0 as Priemer_zive,
0 as Priemer_dochovane,
0 as Priemer_21
from PM_PrasniceIns prains
inner join PM_PrasnicePev prapev on
prains.Chovatel_kraj = prapev.Chovatel_kraj and
prains.Chovatel_okres = prapev.Chovatel_okres and
prains.Chovatel_podnik = prapev.Chovatel_podnik and
prains.Chovatel_chov = prapev.Chovatel_chov and
prains.Prasnica = prapev.Prasnica
where
CAST(prapev.Chovatel_chov as int) < 20 and
prapev.Plemeno_KU is not null and
prapev.Plemeno_KU in ('10000000','13000000','20000000','40000000','60000000','62000000','63000000','80000000') and 
YEAR(prapev.Datum_narodenia) >= (YEAR(GETDATE()) - 16) 
union
select
dbo.PM_DajKraj(praopr.Chovatel_kraj) AS Chovatel_kraj, praopr.Chovatel_okres, praopr.Chovatel_podnik, 
RIGHT(praopr.Chovatel_chov,2) AS Chovatel_chov,
praopr.Prasnica as Prasnica,
'2' as Typ,
praopr.Datum_oprasenia as Datum,
'00' as PorIns,
'00' as Technik,
'0' as ZnakPras,
'0' as ZnakBrez,
'0000' as Linia_kanca,
'00000' as Register_kanca,
0 as Pocet_reins,
RIGHT('00'+CAST(praopr.Poradie_vrhu as varchar(2)),2) as Poradie_vrhu,
praopr.Plemeno_vrhu as Plemeno_vrhu,
praopr.Kod_charvrh as Kod_charvrh,
praopr.Kod_VyV as Kod_VyV,
praopr.Vsetky_nar as Vsetky_nar,
praopr.Zivo_nar as Zivo_nar,
praopr.Defekt_nar as defekt_nar,
praopr.Datum_odstavu as Datum_odstavu,
praopr.Dochov as Dochov,
praopr.Hmotnost_vrhu as Hmotnost_vrhu,
praopr.Medzidobie as Medziobdobie,
praopr.Priemer_vsetky as Priemer_vsetky,
praopr.Priemer_zive as Priemer_zive,
praopr.Priemer_dochovane as Priemer_dochovane,
praopr.Priemer_21 as Priemer_21
from PM_PrasniceOpr praopr
inner join PM_PrasnicePev prapev on
praopr.Chovatel_kraj = prapev.Chovatel_kraj and
praopr.Chovatel_okres = prapev.Chovatel_okres and
praopr.Chovatel_podnik = prapev.Chovatel_podnik and
praopr.Chovatel_chov = prapev.Chovatel_chov and
praopr.Prasnica = prapev.Prasnica
where
CAST(prapev.Chovatel_chov as int) < 20 and
prapev.Plemeno_KU is not null and
prapev.Plemeno_KU in ('10000000','13000000','20000000','40000000','60000000','62000000','63000000','80000000') and 
YEAR(prapev.Datum_narodenia) >= (YEAR(GETDATE()) - 16)
go

CREATE VIEW dbo.View_Meso_CP_1A_700_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(vaha500) AS hmot500_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (vaha500 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE   VIEW [dbo].[View_PM_BLUP_PRASPOH_RN] AS
select  ROW_NUMBER() OVER(ORDER BY Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum) AS RowNum, *
from View_PM_BLUP_PRASPOH
go

CREATE VIEW dbo.View_CP_Meso_Chovatel_NazovPlemen
AS
SELECT        t.CHOVATEL, p.NAZTYP, COUNT(*) AS pocetZverata
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC
WHERE        (t.PRIZNAKKU = '2') AND (t.dovvyr IS NULL) AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71'))
GROUP BY t.CHOVATEL, p.NAZTYP
go

CREATE VIEW dbo.View_CP_MLEKO_TELIAT_RODOKMEN_FULL
AS
SELECT     t.CISTELATA, t.TYPPLEM, t.otec, t.O_OUC, t.O_meno, t.O_mlieko, t.O_Tuk, t.O_tukp, t.O_bielk, t.O_bielkp, t.O_spi, o.MATKA AS MO, o.M_name AS MO_NAME, 
                      o.M_MaxLakt AS MO_MAXLAKT, o.M_pocVsLakt AS MO_POCLAKT, o.M_datnar AS MO_DATNAR, o.TRUZIT AS MO_RTIEDUZ, o.M_chovatel AS MO_CHOVATEL, 
                      o.M_plemena AS MO_PLEMENA, o.M_mliekoMax AS MO_MLIEKOMAX, o.M_mliekoPr AS MO_MLIEKOPR, o.M_tukMax AS MO_TUKMAX, o.M_tukPr AS MO_TUKPR, 
                      o.M_TukMaxP AS MO_TUKMAXPERC, o.M_tukPrP AS MO_TUKPRPERC, o.M_bielkMax AS MO_BIELKMAX, o.M_BielkPr AS MO_BIELKPR, 
                      o.M_bielkP AS MO_BIELKPERC, o.M_bielkPrP AS MO_BIELKPRPERC, o.M_laktMax AS MO_LAKTMAX, o.M_LaktMaxP AS MO_LAKTMAXPERC, o.otec AS OO, 
                      o.O_Skupina AS OO_SKUPINA, o.O_lin AS OO_LIN, o.O_meno AS OO_MENO, o.O_mlieko AS OO_MLIEKO, o.O_tuk AS OO_TUK, o.O_Tukp AS OO_TUKPERC, 
                      o.O_bielk AS OO_BIELK, o.O_bielkp AS OO_BIELKPERC, oo.MATKA AS MOO, oo.M_name AS MOO_NAME, oo.M_MaxLakt AS MOO_MAXLAKT, 
                      oo.M_pocVsLakt AS MOO_POCLAKT, oo.M_datnar AS MOO_DATNAR, oo.TRUZIT AS MOO_RTIEDUZ, oo.M_chovatel AS MOO_CHOVATEL, 
                      oo.M_plemena AS MOO_PLEMENA, oo.M_mliekoMax AS MOO_MLIEKOMAX, oo.M_mliekoPr AS MOO_MLIEKOPR, oo.M_tukMax AS MOO_TUKMAX, 
                      oo.M_tukPr AS MOO_TUKPR, oo.M_TukMaxP AS MOO_TUKMAXPERC, oo.M_tukPrP AS MOO_TUKPRPERC, oo.M_bielkMax AS MOO_BIELKMAX, 
                      oo.M_BielkPr AS MOO_BIELKPR, oo.M_bielkP AS MOO_BIELKPERC, oo.M_bielkPrP AS MOO_BIELKPRPERC, oo.M_laktMax AS MOO_LAKTMAX, 
                      oo.M_LaktMaxP AS MOO_LAKTMAXPERC, oo.otec AS OOO, oo.O_Skupina AS OOO_SKUPINA, oo.O_lin AS OOO_LIN, oo.O_meno AS OOO_MENO, 
                      oo.O_mlieko AS OOO_MLIEKO, oo.O_tuk AS OOO_TUK, oo.O_Tukp AS OOO_TUKPERC, oo.O_bielk AS OOO_BIELK, oo.O_bielkp AS OOO_BIELKPERC, MO.M AS OMO, 
                      MO.M_name AS OMO_NAMW, MO.M_MaxLakt AS OMO_MAXLAKT, MO.M_pocVsLakt AS OMO_POSVSLAKT, MO.M_datnar AS OMO_DATNAR, MO.TRUZIT, 
                      MO.M_chovatel AS OMO_CHOVATEL, MO.M_plemena AS OMO_PLEMENA, MO.M_mliekoMax AS OMO_MLIEKOMAX, MO.M_mliekoPr AS OMO_mLIEKOPR, 
                      MO.M_tukMax AS OMO_TUKMAX, MO.M_tukPr AS OMO_TUKPR, MO.M_TukMaxP AS OMO_RUKMAXPERC, MO.M_tukPrP AS OMO_TUKPRPERC, 
                      MO.M_bielkMax AS OMO_BIELK, MO.M_BielkPr AS OMO_BIELKPR, MO.M_bielkP, MO.M_bielkPrP AS OMO_BIELKPRPERC, MO.M_laktMax AS OMO_LAKTmAX, 
                      MO.M_LaktMaxP AS OMO_LAKTMAXPERC, MO.Otec AS MMO, MO.O_lin AS MMO_LIN, MO.O_skupina AS MMO_SKUPINA, MO.O_meno AS MMO_MENO, 
                      MO.O_mlieko AS MMO_MLIEKO, MO.O_tuk AS MMO_TUK, MO.O_tukp AS MMO_TUKPERC, MO.O_bielk AS MMO_BIELK, MO.O_Bielkp AS MMO_BIELKPERC, t.MATKA, 
                      t.M_name, t.M_MaxLakt, t.M_pocVsLakt, t.M_datnar, t.TRUZIT AS Expr1, t.M_chovatel, t.M_plemena, t.M_mliekoMax, t.M_mliekoPr, t.M_tukMax, t.M_tukPr, 
                      t.M_TukMaxP, t.M_tukPrP, t.M_bielkMax, t.M_BielkPr, t.M_bielkP AS Expr2, t.M_bielkPrP, t.M_laktMax, t.M_LaktMaxP, MM.M AS MM, MM.M_name AS MM_NAMW, 
                      MM.M_MaxLakt AS MM_MAXLAKT, MM.M_pocVsLakt AS MM_POSVSLAKT, MM.M_datnar AS MM_DATNAR, MM.TRUZIT AS MM_TRUZ, 
                      MM.M_chovatel AS MM_CHOVATEL, MM.M_plemena AS MM_PLEMENA, MM.M_mliekoMax AS MM_MLIEKOMAX, MM.M_mliekoPr AS MM_mLIEKOPR, 
                      MM.M_tukMax AS MM_TUKMAX, MM.M_tukPr AS MM_TUKPR, MM.M_TukMaxP AS MM_RUKMAXPERC, MM.M_tukPrP AS MM_TUKPRPERC, 
                      MM.M_bielkMax AS MM_BIELK, MM.M_BielkPr AS MM_BIELKPR, MM.M_bielkP AS Expr3, MM.M_bielkPrP AS MM_BIELKPRPERC, MM.M_laktMax AS MM_LAKTmAX, 
                      MM.M_LaktMaxP AS MM_LAKTMAXPERC, MM.Otec AS OM, MM.O_lin AS OM_LIN, MM.O_skupina AS OM_SKUPINA, MM.O_meno AS OM_MENO, 
                      MM.O_mlieko AS OM_MLIEKO, MM.O_tuk AS OM_TUK, MM.O_tukp AS OM_TUKPERC, MM.O_bielk AS OM_BIELK, MM.O_Bielkp AS OM_BIELKPERC, 
                      oM.MATKA AS MOM, oM.M_name AS MOM_NAMW, oM.M_MaxLakt AS MOM_MAXLAKT, oM.M_pocVsLakt AS MOM_POSVSLAKT, oM.M_datnar AS MOM_DATNAR, 
                      oM.TRUZIT AS Expr4, oM.M_chovatel AS MOM_CHOVATEL, oM.M_plemena AS MOM_PLEMENA, oM.M_mliekoMax AS MOM_MLIEKOMAX, 
                      oM.M_mliekoPr AS MOM_mLIEKOPR, oM.M_tukMax AS MOM_TUKMAX, oM.M_tukPr AS MOM_TUKPR, oM.M_TukMaxP AS MOM_RUKMAXPERC, 
                      oM.M_tukPrP AS MOM_TUKPRPERC, oM.M_bielkMax AS MOM_BIELK, oM.M_BielkPr AS MOM_BIELKPR, oM.M_bielkP AS Expr5, 
                      oM.M_bielkPrP AS MOM_BIELKPRPERC, oM.M_laktMax AS MOM_LAKTmAX, oM.M_LaktMaxP AS MOM_LAKTMAXPERC, oM.otec AS OOM, oM.O_lin AS OOM_LIN, 
                      oM.O_Skupina AS OOM_SKUPINA, oM.O_meno AS OOM_MENO, oM.O_mlieko AS OOM_MLIEKO, oM.O_tuk AS OOM_TUK, oM.O_Tukp AS OOM_TUKPERC, 
                      oM.O_bielk AS OOM_BIELK, oM.O_bielkp AS OOM_BIELKPERC, MMM.M AS MMM, MMM.M_name AS MMM_NAMW, MMM.M_MaxLakt AS MMM_MAXLAKT, 
                      MMM.M_pocVsLakt AS MMM_POSVSLAKT, MMM.M_datnar AS MMM_DATNAR, MMM.TRUZIT AS MMM_TRUZ, MMM.M_chovatel AS MMM_CHOVATEL, 
                      MMM.M_plemena AS MMM_PLEMENA, MMM.M_mliekoMax AS MMM_MLIEKOMAX, MMM.M_mliekoPr AS MMM_mLIEKOPR, MMM.M_tukMax AS MMM_TUKMAX, 
                      MMM.M_tukPr AS MMM_TUKPR, MMM.M_TukMaxP AS MMM_RUKMAXPERC, MMM.M_tukPrP AS MMM_TUKPRPERC, MMM.M_bielkMax AS MMM_BIELK, 
                      MMM.M_BielkPr AS MMM_BIELKPR, MMM.M_bielkP AS Expr6, MMM.M_bielkPrP AS MMM_BIELKPRPERC, MMM.M_laktMax AS MMM_LAKTmAX, 
                      MMM.M_LaktMaxP AS MMM_LAKTMAXPERC, MMM.Otec AS OMM, MMM.O_lin AS OMM_LIN, MMM.O_skupina AS OMM_SKUPINA, MMM.O_meno AS OMM_MENO, 
                      MMM.O_mlieko AS OMM_MLIEKO, MMM.O_tuk AS OMM_TUK, MMM.O_tukp AS OMM_TUKPERC, MMM.O_bielk AS OMM_BIELK, 
                      MMM.O_Bielkp AS OMM_BIELKPERC
FROM         dbo.View_cp_Rodokmen_telia_mlieko AS t LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_byk_mlieko AS o ON t.IDOT = o.IDBYKA LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_byk_mlieko AS oo ON o.IDOT = oo.IDBYKA LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_Krava_mlieko AS MO ON o.IDMA = MO.IDKRAVY LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_Krava_mlieko AS MM ON t.IDMA = MM.IDKRAVY LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_byk_mlieko AS oM ON MM.IDOT = oM.IDBYKA LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_Krava_mlieko AS MMM ON MM.IDMA = MMM.IDKRAVY
go

CREATE VIEW dbo.View_CP_VybHolPotomstvo
AS
SELECT        t.CISTELATA AS CisJal, t.CHOVATEL AS ChovNAR, '   ' AS PK, t.OTECLIN, t.OTECREG, CASE WHEN t .MATKA IS NULL 
                         THEN 'XX0000000000000' ELSE t .MATKA END AS MATKA, t.DATNAR, t.HMOTNAR, t.PL1, t.KR1, t.PL2, t.KR2, t.PL3, t.KR3, t.PL4, t.KR4, t.PL5, t.TYPPLEM, t.FARBA, 
                         t.PORLAK, t.POHLAVIE, t.ZNAKET, t.PREUKAZ, t.DOBANOS, i.IDAIN AS Datprip, i.IVYSE AS ZnakBrez, i.IBLIN AS BykLin, i.IBREG AS BykReg, i.USCISLO AS Cisbyk, 
                         t.DOVVYR, t.DATVYR
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.View_CP_PoslednaInseminacia AS i ON t.CISTELATA = i.IPLCA
WHERE        (t.CISTELATA IS NOT NULL) AND (t.PRIZNAKKU = '1') AND (t.TYPPLEM IN ('62', '66', '72', '73', '76', '77', '82', '83', '84', '86', '87', '88', '92', '93', '94', '95', '96', '97', 
                         '98', '99')) AND (t.CHOVATEL <> '000000000') OR
                         (t.CISTELATA IS NOT NULL) AND (t.PRIZNAKKU = '1') AND (t.CHOVATEL <> '000000000') AND (t.PL1 = 'J') OR
                         (t.CISTELATA IS NOT NULL) AND (t.PRIZNAKKU = '1') AND (t.CHOVATEL <> '000000000') AND (t.PL1 IN ('H', 'R'))
go

CREATE VIEW View_ER_HeliosRiadokFakturyDotacie

  AS

    select
      faktura.IDR,
      faktura.Chov,
      faktura.Faktura,
      faktura.Pocet,
      faktura.Datum,
      faktura.Produkt,
      faktura.ProduktNazov,
      faktura.JcBezDane,
      faktura.JcBezDane * faktura.Pocet                                as suma,
      ISNULL(dotacia.Dotacia, 0)                                       as dotaciaSuma,
      (faktura.JcBezDane * faktura.Pocet) + ISNULL(dotacia.Dotacia, 0) as sumaSpolu,
      CASE WHEN CONVERT(datetime, faktura.Datum) > dotacie.Zaciatok
        THEN (faktura.JcBezDane * faktura.Pocet) + ISNULL(dotacia.Dotacia, 0)
      ELSE 0 END                                                       as sumaOpravene,
      faktura.Konzulent,
      faktura.Region,
      faktura.PodnikNazov,
      faktura.Ico,
      faktura.OrgHelios,
      dotacie.Ucet,
      ISNULL(EC_RiadokFaktury.PriplatokPerc,0) as PriplatokPerc,
      faktura.JcBezDane / ((100+ISNULL(EC_RiadokFaktury.PriplatokPerc,0))/100) as JcBezDaneBezZlavy,
      CASE WHEN CONVERT(datetime, faktura.Datum) > dotacie.Zaciatok
        THEN (faktura.JcBezDane / ((100+ISNULL(EC_RiadokFaktury.PriplatokPerc,0))/100) * faktura.Pocet) + ISNULL(dotacia.Dotacia, 0)
      ELSE 0 END                                                       as sumaOpraveneBezZlavy

    from ER_HeliosRiadokFaktury faktura
      left outer join ER_HeliosDotacie dotacia on faktura.IDR = dotacia.ID_Faktura
      left outer join EC_CISPROD produkt on faktura.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
      left outer join EC_UctyDotacie dotacie on produkt.UCET = dotacie.Ucet and dotacie.Rok = year(faktura.Datum)
      left outer join EC_RiadokFaktury on faktura.faktura = EC_RiadokFaktury.Faktura and faktura.Chov = EC_RiadokFaktury.Chov and faktura.Produkt = EC_RiadokFaktury.Produkt and EC_RiadokFaktury.Zruseny = 0 and EC_RiadokFaktury.Potvrdeny = 1
go

CREATE VIEW dbo.View_CP_VybHolKravy_Lakt
AS
SELECT        CISKRAVY + '' AS UsCislo, '              ' AS importCis, CASE WHEN BB_NAME IS NULL THEN '' ELSE BB_NAME END AS Meno, '               ' AS Meno1, PL1, KR1, PL2, 
                         KR2, PL3, KR3, PL4, KR4, PL5, FARBA, OTECLIN AS Olin, OTECREG AS Oreg, CASE WHEN OUSCIS IS NULL THEN 'XX000000000000 ' ELSE OUSCIS END AS OUSCIS,
                          CASE WHEN MA IS NULL THEN 'XX000000000000 ' ELSE MA END AS MUSCIS, DATNAR, DOVVYR, DATVYR, POHLAVIE, CHOVATEL AS Majitel
FROM            dbo.CM_Krava
WHERE        (TYPPLEM IN ('62', '66', '72', '73', '76', '77', '82', '83', '84', '86', '87', '88', '92', '93', '94', '95', '96', '97', '98', '99')) AND (PRIZNAKKU = 1)
go

CREATE   VIEW [dbo].[View_PM_BLUP_RESUB1X] AS
select
(vspra.Rok_narodenia+vspra.Poradove_cislo+vspra.Pohlavie) as Poradove_cislo,
dbo.PM_DajKraj(praspev.Povod_kraj) AS Povod_kraj, praspev.Povod_okres, praspev.Povod_podnik, 
RIGHT(praspev.Povod_chov,2) AS Povod_chov,
praspev.Povod_matka AS Matka, praspev.Datum_narodenia AS Datum_narodenia, praspev.Povod_UsCislo AS Usne_cislo,
ppoh.Chovatel_kraj AS Sucasny_kraj, ppoh.Chovatel_okres AS Sucasny_okres, ppoh.Chovatel_podnik AS Sucasny_podnik, 
ppoh.Chovatel_chov AS Sucasny_chov, ppoh.Prasnica as Sucasna_prasnica,
CASE 
	WHEN praspev.Plemeno_KU IN ('30250000','30320000','30500000','30560000') THEN '30000000'
	WHEN praspev.Plemeno_KU = '30810000' THEN '40000000'
	ELSE praspev.Plemeno_KU
END AS Plemeno_pras,
praspev.Linia_otca as Linia_otca, praspev.Register_otca as Register_otca,
ppoh.Poradie_vrhu AS Poradie_vrhu,
CAST(YEAR(ppoh.Datum) AS VARCHAR(4)) + dbo.PM_DajKvartal(MONTH(ppoh.Datum)) as YS,
ppoh.Chovatel_kraj + ppoh.Chovatel_Okres + ppoh.Chovatel_podnik + ppoh.Chovatel_chov + CAST(YEAR(ppoh.Datum) AS VARCHAR(4)) + dbo.PM_DajKvartal(MONTH(ppoh.Datum)) AS HYS,
ppoh2.Technik as Technik,
CASE 
	WHEN ppoh.Datum IS NOT NULL THEN DATEDIFF(day, praspev.Datum_narodenia, ppoh.Datum)
	ELSE 0
END AS Agef,
ppoh.Medziobdobie as Fint,
CASE 
	WHEN ppoh.Poradie_vrhu='01' THEN ppoh.Zivo_nar
	ELSE 0
END AS Ziv1,
CASE 
	WHEN ppoh.Poradie_vrhu<>'01' THEN ppoh.Zivo_nar
	ELSE 0
END AS Ziv2,
CASE 
	WHEN ppoh.Poradie_vrhu='01' AND NULLIF(ppoh.Datum_odstavu, '') IS NOT NULL THEN ROUND((ppoh.Hmotnost_vrhu*21)/DATEDIFF(day, ppoh.Datum, ppoh.Datum_odstavu),1)
	ELSE 0
END AS VahaV1,
CASE 
	WHEN ppoh.Poradie_vrhu<>'01' AND NULLIF(ppoh.Datum_odstavu, '') IS NOT NULL THEN ROUND((ppoh.Hmotnost_vrhu*21)/DATEDIFF(day, ppoh.Datum, ppoh.Datum_odstavu),1)
	ELSE 0
END AS VahaV2,
CASE 
	WHEN ppoh.Datum IS NOT NULL THEN SQUARE(DATEDIFF(day, praspev.Datum_narodenia, ppoh.Datum))
	ELSE 0
END AS Agef2,
SQUARE(ppoh.Medziobdobie) AS Fint2,
ppoh2.Linia_kanca as Linia_kanca, ppoh2.Register_kanca as Register_kanca, kance.Plemeno_KU as Plemeno_kanca
from PM_BLUP_PRASPOH ppoh
inner join PM_PrasnicePev praspev on
RIGHT(ppoh.Chovatel_kraj,1) = praspev.Chovatel_kraj and
ppoh.Chovatel_okres = praspev.Chovatel_okres and
ppoh.Chovatel_podnik = praspev.Chovatel_podnik and
ppoh.Chovatel_chov = RIGHT(praspev.Chovatel_chov,2) and
ppoh.Prasnica = praspev.Prasnica
left join PM_BLUP_VSPRA vspra on
ppoh.Chovatel_kraj = vspra.Chovatel_kraj and
ppoh.Chovatel_okres = vspra.Chovatel_okres and
ppoh.Chovatel_podnik = vspra.Chovatel_podnik and
ppoh.Chovatel_chov = vspra.Chovatel_chov and
ppoh.Prasnica = vspra.Prasnica
left join PM_BLUP_PRASPOH ppoh2 on
ppoh.RowNum = (ppoh2.RowNum + 1)
left join PM_Kance kance on 
kance.Linia_kanca = ppoh2.Linia_kanca and kance.Register_kanca = ppoh2.Register_kanca
where ppoh.Typ='2' and ppoh.Kod_charvrh in ('1','2')
go

CREATE VIEW dbo.View_CP_Meso_1A_700_B
AS
SELECT        COUNT(CISTELATA) AS pocet_b, AVG(vaha500) AS hmot700_b, AVG(priras500) AS prir700_b, NAZTYP, CHOVATEL
FROM            dbo.View_CP_Meso_Zoznam_Bycky AS b
WHERE        (DOVVYR IS NULL) AND (vaha500 IS NOT NULL)
GROUP BY NAZTYP, CHOVATEL
go

CREATE VIEW View_ER_HeliosDotacieOpravnene

  AS

    select
      YEAR(faktura.Datum)                                                        as rok,
      ucet.CisloUctu                                                             as ucet,
      podnik.KRAJ + podnik.OKRES + podnik.PODNIK                                 as podnikKod,
      podnik.NAZOV                                                               as podnikNazov,
      count(faktura.Faktura)                                                     as pocetRiadkovFaktur,
      SUM(faktura.Pocet)                                                         as pocet,
      SUM(faktura.JcBezDane * faktura.Pocet)                                     as suma,
      SUM(dotaciaSuma)                                                           as dotaciaSuma,
      (SUM(faktura.JcBezDane * faktura.Pocet) + SUM(dotaciaSuma))                as sumaSpolu,
      SUM(faktura.sumaOpravene)                                                  as sumaOpravene,
      SUM(faktura.sumaOpraveneBezZlavy)                                          as sumaOpraveneBezZlavy,
      CASE WHEN SUM(faktura.sumaOpravene) > 0
        THEN SUM(faktura.dotaciaSuma) / (SUM(faktura.sumaOpravene) * 0.01)
      ELSE 0 END                                                                 as percentoDotacie,
      CASE WHEN SUM(faktura.sumaOpraveneBezZlavy) > 0
        THEN SUM(faktura.dotaciaSuma) / (SUM(faktura.sumaOpraveneBezZlavy) * 0.01)
      ELSE 0 END                                                                 as percentoDotacieBezZlavy


    from View_ER_HeliosRiadokFakturyDotacie as faktura
      left outer join EC_CISPROD produkt on faktura.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
      inner join EC_NazvyUctov ucet on produkt.UCET = ucet.CisloUctu
      left outer join NM_PODNIK podnik on podnik.KRAJ + podnik.OKRES + podnik.PODNIK = substring(faktura.Chov, 1, 6)
    group by YEAR(faktura.Datum), ucet.CisloUctu, podnik.KRAJ + podnik.OKRES + podnik.PODNIK, podnik.NAZOV
go

CREATE   VIEW [dbo].[View_PM_BLUP_RESUB1] AS
select * from View_PM_BLUP_RESUB1X resub1
where agef>0 and ziv1<20 and ziv2<20
and (select Plemeno_KU from PM_Kance where Linia_kanca=resub1.Linia_kanca and Register_kanca=resub1.Register_kanca) 
in ('10000000','13000000','20000000','40000000','60000000','62000000','63000000','80000000')
go

CREATE VIEW dbo.View_CP_Meso_ZoznamOtciPodlaChov
AS
SELECT     t.CHOVATEL, l.nazlin, b.USCISLO, b.MENO, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) AS Otec, p.NAZTYP, COUNT(*) AS pocetZverata, p.UZITKOVYTYP
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS p ON b.TYPPLEM = p.TYPC LEFT OUTER JOIN
                      dbo.CC_Linie AS l ON t.OTECLIN = l.lin
WHERE     (t.PRIZNAKKU = '2') AND (t.DOVVYR IS NULL) AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (t.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Krava
                            WHERE      (PRIZNAKKU = '1') OR
                                                   (PRIZNAKKU = '2')))
GROUP BY t.CHOVATEL, b.MENO, t.OTECLIN, t.OTECREG, b.USCISLO, p.NAZTYP, p.UZITKOVYTYP, l.nazlin
go



CREATE VIEW [dbo].[View_CP_Rodokmene]
AS
	select distinct v.USCISLO as USCISLO, --v.otec, v.matka, 

	o.meno as O_Meno, o.UsCislo as O_USCISLO, o.datnar as O_DATNAR,
	o.LinReg as O_LinReg,o.PlemSkl as O_PlemSK, o.pk as O_PK,
	m.meno as M_Meno, m.USCISLO as M_USCISLO, m.datNar as M_DATNAR,
	m.LinReg as M_LinReg, m.PlemSkl as M_PlemSK, m.pk as M_PK

	, oo.meno as OO_MENO ,oo.USCISLO as OO_USCISLO, oo.datNar as OO_DATNAR
	, oo.LinReg as OO_LinReg, oo.PlemSkl as OO_PlemSK, oo.pk as OO_PK
	, mo.meno as MO_MENO, mo.USCISLO as MO_USCISLO, mo.datNar as MO_DATNAR
	, mo.LinReg as MO_LinReg, mo.PlemSkl as MO_PlemSK, mo.pk as MO_PK

	, om.meno as OM_MENO, om.USCISLO as OM_USCISLO, om.datNar as OM_DATNAR
	, om.LinReg as OM_LinReg, om.PlemSkl as OM_PlemSK, om.pk as OM_PK
	, mm.meno as MM_MENO, mm.USCISLO as MM_USCISLO, mm.datNar as MM_DATNAR
	, mm.LinReg as MM_LinReg, mm.PlemSkl as MM_PlemSK, mm.pk as MM_PK

	--, ooo.USCISLO as OOO_USCISLO, ooo.datNar as OOO_DATNAR
	--, moo.USCISLO as MOO_USCISLO, moo.datNar as MOO_DATNAR
	--, omo.USCISLO as OMO_USCISLO, omo.datNar as OMO_DATNAR
	--, mmo.USCISLO as MMO_USCISLO, mmo.datNar as MMO_DATNAR
	--, oom.USCISLO as OOM_USCISLO, oom.datNar as OOM_DATNAR
	--, mom.USCISLO as MOM_USCISLO, mom.datNar as MOM_DATNAR
	--, omm.USCISLO as OMM_USCISLO, omm.datNar as OMM_DATNAR
	--, mmm.USCISLO as MMM_USCISLO, mmm.datNar as MMM_DATNAR

	--, oooo.USCISLO as OOOO_USCISLO,  oooo.datNar as OOOO_DATNAR
	--, mooo.USCISLO as MOOO_USCISLO,  mooo.datNar as MOOO_DATNAR
	--, omoo.USCISLO as OMOO_USCISLO, omoo.datNar as OMOO_DATNAR
	--, mmoo.USCISLO as MMOO_USCISLO, mmoo.datNar as MMOO_DATNAR
	--, oomo.USCISLO as OOMO_USCISLO,  oomo.datNar as OOMO_DATNAR
	--, momo.USCISLO as MOMO_USCISLO, momo.datNar as MOMO_DATNAR
	--, ommo.USCISLO as OMMO_USCISLO,  ommo.datNar as OMMO_DATNAR
	--, mmmo.USCISLO as MMMO_USCISLO,  mmmo.datNar as MMMO_DATNAR
	--, ooom.USCISLO as OOOM_USCISLO,  ooom.datNar as OOOM_DATNAR
	--, moom.USCISLO as MOOM_USCISLO, moom.datNar as MOOM_DATNAR
	--, omom.USCISLO as OMOM_USCISLO, omom.datNar as OMOM_DATNAR
	--, mmom.USCISLO as MMOM_USCISLO,  mmom.datNar as MMOM_DATNAR
	--, oomm.USCISLO as OOMM_USCISLO, oomm.datNar as OOMM_DATNAR
	--, momm.USCISLO as MOMM_USCISLO, momm.datNar as MOMM_DATNAR
	--, ommm.USCISLO as OMMM_USCISLO,  ommm.datNar as OMMM_DATNAR
	--, mmmm.USCISLO as MMMM_USCISLO,  mmmm.datNar as MMMM_DATNAR


	from CP_Kravicky v

	Outer apply CP_Rodokmen_Otec (v.otec) o
	Outer apply CP_Rodokmen_Matka (v.matka) m

	Outer apply CP_Rodokmen_Otec (o.otec) oo
	Outer apply CP_Rodokmen_Matka (o.matka) mo
	Outer apply CP_Rodokmen_Otec (m.otec) om
	Outer apply CP_Rodokmen_Matka (m.matka) mm

	--Outer apply CP_Rodokmen_Otec (oo.otec) ooo
	--Outer apply CP_Rodokmen_Matka (oo.matka) moo
	--Outer apply CP_Rodokmen_Otec (mo.otec) omo
	--Outer apply CP_Rodokmen_Matka (mo.matka) mmo
	--Outer apply CP_Rodokmen_Otec (om.otec) oom
	--Outer apply CP_Rodokmen_Matka (om.matka) mom
	--Outer apply CP_Rodokmen_Otec (mm.otec) omm
	--Outer apply CP_Rodokmen_Matka (mm.matka) mmm


	--Outer apply CP_Rodokmen_Otec (ooo.otec) oooo
	--Outer apply CP_Rodokmen_Matka (ooo.matka) mooo
	--Outer apply CP_Rodokmen_Otec (moo.otec) omoo
	--Outer apply CP_Rodokmen_Matka (moo.matka) mmoo
	--Outer apply CP_Rodokmen_Otec (omo.otec) oomo
	--Outer apply CP_Rodokmen_Matka (omo.matka) momo
	--Outer apply CP_Rodokmen_Otec (mmo.otec) ommo
	--Outer apply CP_Rodokmen_Matka (mmo.matka) mmmo
	--Outer apply CP_Rodokmen_Otec (oom.otec) ooom
	--Outer apply CP_Rodokmen_Matka (oom.matka) moom
	--Outer apply CP_Rodokmen_Otec (mom.otec) omom
	--Outer apply CP_Rodokmen_Matka (mom.matka) mmom
	--Outer apply CP_Rodokmen_Otec (omm.otec) oomm
	--Outer apply CP_Rodokmen_Matka (omm.matka) momm
	--Outer apply CP_Rodokmen_Otec (mmm.otec) ommm
	--Outer apply CP_Rodokmen_Matka (mmm.matka) mmmm


go

CREATE   VIEW [dbo].[View_PM_BLUP_BLDAT] AS
select 
c.Poradove_cislo as Anim, c.Stanica as Station, (c.Kraj+c.Okres+c.Podnik+c.Chov) as Herd, c.Plemeno as Breed, 
CAST(ISNULL(vspra.Rok_narodenia, '0000')+ISNULL(vspra.Poradove_cislo, '000000')+ISNULL(vspra.Pohlavie, '0')+FORMAT(c.Datum_narodenia, 'yyMM', 'sk-SK') as VARCHAR(15)) as Litter,
c.prirST as adgST, c.cmcST as vcST, c.slanST as bfST, c.hm2ST as wST, 
c.prirVU as adgFT, c.slanVU as bfFT, c.vahaVU as woFT,
c.Stanica + RIGHT('0000' + CAST(ISNULL(YEAR(c.Porazka), 0) as varchar(4)), 4) + CAST((ISNULL(MONTH(c.Porazka), 0)+1)/2 as varchar(1)) as YS1ST,
CASE 
	WHEN c.Stanica='00' AND ISNULL(MONTH(c.Merane), 0)/2 > 0 THEN 
		c.Kraj+c.Okres+c.Podnik+c.Chov+RIGHT('0000' + CAST(ISNULL(YEAR(c.Merane), 0) as varchar(4)), 4) + CAST((ISNULL(MONTH(c.Merane), 0)+1)/2 as varchar(1))
	ELSE '00000000000000'
END AS HYS1FT,
CASE 
	WHEN c.Stanica<>'00' AND RIGHT(c.Poradove_cislo,1)='0' THEN '0'
	WHEN c.Stanica<>'00' AND RIGHT(c.Poradove_cislo,1)<>'0' THEN '2'
	ELSE RIGHT(c.Poradove_cislo,1)
END AS Sex,
c.Poradie_vrhu as Parity, c.Breeds, c.HYS, c.Technik as TType, c.Agef, c.Fint,
c.Ziv1 as Nba1, c.Ziv2 as Nba2, c.VahaV1 as W211, c.VahaV2 as W212, c.Breedb, c.Fint2, c.Agef2
from PM_BLUP_CDATA c
left join PM_BLUP_VSPRA vspra on vspra.Chovatel_kraj = c.Matka_kraj and vspra.Chovatel_okres = c.Matka_okres and
vspra.Chovatel_podnik = c.Matka_podnik and vspra.Chovatel_chov = c.Matka_chov and vspra.Prasnica = c.Matka_matka
go

CREATE VIEW dbo.View_cp_test_hodnotbyci
AS
SELECT        b.ROKSPRAC, b.MESSPRAC, b.BYK, b.DATUMN AS DATNAR, b.BLIN, b.SREG, b.MENBYK, b.NH AS stada, b.ND AS cery, b.PLEMENO, b.SC305, 
                         b.SCREL * 100 AS RELSB, b.SKUPINA, CASE WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'R') THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 2) 
                         = CONVERT(varchar, 'MB') THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'M') AND SUBSTRING(plemeno, 2, 1) = CONVERT(varchar, '') 
                         THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND SUBSTRING(plemeno, 2, 1) = '1' THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND 
                         SUBSTRING(plemeno, 2, 1) = ' ' THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'S' AND ISNUMERIC(SUBSTRING(plemeno, 2, 1)) 
                         = 1 THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = 'A' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'D' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) 
                         = 'F' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'J' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = 'N' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) 
                         = 'R' THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'B') THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'G') 
                         THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'H') THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'T') 
                         THEN 'S' WHEN SUBSTRING(PLEMENO, 1, 2) = CONVERT(varchar(2), 'SC') THEN 'H' WHEN SUBSTRING(PLEMENO, 1, 1) = CONVERT(varchar, 'P') 
                         THEN 'P' ELSE 'X' END AS Preskupinovane, b.RPHSC
FROM            dbo.CM_BykyTDMSB AS b INNER JOIN
                             (SELECT        BYK, MAX(ROKSPRAC + '-' + MESSPRAC) AS rokamesec
                               FROM            dbo.CM_BykyTDMSB AS o
                               GROUP BY BYK) AS PoslHodnot ON b.BYK = PoslHodnot.BYK AND b.ROKSPRAC + '-' + b.MESSPRAC = PoslHodnot.rokamesec
go




CREATE VIEW [dbo].[View_CP_Mlieko_zoznamJalovic]
AS
SELECT   t.CISTELATA, t.DATNAR, t.CHOVATEL, t.POHLAVIE, p.NAZTYP AS PlemenoJalovic, t.PL1, t.KR1, t.PL2, t.KR2, t.PL3, t.KR3, t.PL4, t.PL5, t.OUC, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) 
                      AS otec, ISNULL(t.PL1 + '-' + CONVERT(varchar, t.KR1), '') + '  ' + ISNULL(ISNULL(t.PL2, '') + '-' + CONVERT(varchar, t.KR2), '') 
                      + '  ' + ISNULL(t.PL3 + '-' + CONVERT(varchar, t.KR3), '') + '  ' + ISNULL(t.PL4 + '-' + CONVERT(varchar, t.KR4), '') + '  ' + ISNULL(t.PL5 + '-' + CONVERT(varchar, 
                      100 - (t.KR1 + t.KR2 + t.KR3 + t.KR4)), '') AS plemenaTelata, DATEDIFF(day, t.DATNAR, GETDATE()) / 30.42 AS vek, ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
                      + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') 
                      + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemenaOtec, 
                      k.MENO, o.nazlin, l.NAZTYP AS OtecPlemeno, t.MATKA, t.PRIZNAKKU, t.OTECLIN, t.OTECREG, t.HMOTNAR, 
                      CASE WHEN t .farba = '01' THEN 'červená' WHEN t .farba = '00' THEN 'čierna' WHEN t .farba = '02' THEN 'žltostrakatá' WHEN t .farba = '03' THEN 'hnedá' WHEN t .farba
                       IS NULL THEN 'bez' ELSE 'iná' END AS nfarba, t.ZNAKET, t.CHOVNAR
					  
FROM         dbo.CM_Telata AS t LEFT OUTER JOIN
                      dbo.CM_Byci AS k ON t.OUC = k.USCISLO LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS l ON k.TYPPLEM = l.TYPC LEFT OUTER JOIN
                      dbo.CC_Linie AS o ON k.LIN = o.lin
WHERE     (t.DOVVYR IS NULL) AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> 62) AND (t.CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38)

go

CREATE VIEW dbo.View_GP_PremKoz
AS
SELECT     dbo.GM_PremKoz.KROKR, dbo.GM_PremKoz.PODNIK, dbo.GM_PremKoz.STADO, dbo.GM_PremKoz.LUC, dbo.GM_PremKoz.PUC, dbo.GM_PremKoz.KOZCIS, dbo.GM_PremKoz.ROKEV1, 
                      dbo.GM_PremKoz.ROKEV2, dbo.GM_PremKoz.BKROKR, dbo.GM_PremKoz.BPODNIK, dbo.GM_PremKoz.BSTADO, dbo.GM_PremKoz.BLUC, dbo.GM_PremKoz.BPUC, dbo.GM_PremKoz.CAPCIS, 
                      dbo.GM_PremKoz.DATPRIP, dbo.GM_PremKoz.DATOKOT, CASE WHEN dbo.GM_PremKoz.POHL1 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 IN ('3', '4') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL4 IN ('3', '4') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 IN ('3', '4') THEN 1 ELSE 0 END AS Narod, 
                      CASE WHEN dbo.GM_PremKoz.POHL1 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 = '4' THEN 1 ELSE 0 END
                       + CASE WHEN dbo.GM_PremKoz.POHL4 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 = '4' THEN 1 ELSE 0 END AS NarCap, CASE WHEN dbo.GM_PremKoz.POHL1 IN ('3', '4') 
                      AND dbo.GM_PremKoz.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 IN ('3', '4') AND dbo.GM_PremKoz.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 IN ('3', '4') AND dbo.GM_PremKoz.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL4 IN ('3', '4') AND dbo.GM_PremKoz.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 IN ('3', '4') AND dbo.GM_PremKoz.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS Odchov, 
                      CASE WHEN dbo.GM_PremKoz.POHL1 = '4' AND dbo.GM_PremKoz.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 = '4' AND 
                      dbo.GM_PremKoz.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 = '4' AND dbo.GM_PremKoz.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL4 = '4' AND dbo.GM_PremKoz.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 = '4' AND dbo.GM_PremKoz.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS OdchCap, 
                      CASE WHEN dbo.GM_PremKoz.POHL1 IN ('3', '4') AND (dbo.GM_PremKoz.LUC1 <> '     ' AND dbo.GM_PremKoz.LUC1 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC1 <> '     ' AND dbo.GM_PremKoz.PUC1 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ1 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ1 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 IN ('3', '4') AND (dbo.GM_PremKoz.LUC2 <> '     ' AND dbo.GM_PremKoz.LUC2 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC2 <> '     ' AND dbo.GM_PremKoz.PUC2 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ2 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ2 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 IN ('3', '4') AND (dbo.GM_PremKoz.LUC3 <> '     ' AND dbo.GM_PremKoz.LUC3 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC3 <> '     ' AND dbo.GM_PremKoz.PUC3 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ3 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ3 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL4 IN ('3', '4') AND (dbo.GM_PremKoz.LUC4 <> '     ' AND dbo.GM_PremKoz.LUC4 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC4 <> '     ' AND dbo.GM_PremKoz.PUC4 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ4 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ4 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 IN ('3', '4') AND (dbo.GM_PremKoz.LUC5 <> '     ' AND dbo.GM_PremKoz.LUC5 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC5 <> '     ' AND dbo.GM_PremKoz.PUC5 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ5 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ5 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb5 IN ('4', '5', '6', '7', '9')) THEN 1 ELSE 0 END AS NaChov, 
                      CASE WHEN dbo.GM_PremKoz.POHL1 = '4' AND (dbo.GM_PremKoz.LUC1 <> '     ' AND dbo.GM_PremKoz.LUC1 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC1 <> '     ' AND dbo.GM_PremKoz.PUC1 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ1 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ1 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL2 = '4' AND (dbo.GM_PremKoz.LUC2 <> '     ' AND dbo.GM_PremKoz.LUC2 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC2 <> '     ' AND dbo.GM_PremKoz.PUC2 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ2 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ2 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL3 = '4' AND (dbo.GM_PremKoz.LUC3 <> '     ' AND dbo.GM_PremKoz.LUC3 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC3 <> '     ' AND dbo.GM_PremKoz.PUC3 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ3 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ3 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL4 = '4' AND (dbo.GM_PremKoz.LUC4 <> '     ' AND dbo.GM_PremKoz.LUC4 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC4 <> '     ' AND dbo.GM_PremKoz.PUC4 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ4 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ4 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.GM_PremKoz.POHL5 = '4' AND (dbo.GM_PremKoz.LUC5 <> '     ' AND dbo.GM_PremKoz.LUC5 IS NOT NULL OR
                      dbo.GM_PremKoz.PUC5 <> '     ' AND dbo.GM_PremKoz.PUC5 IS NOT NULL OR
                      dbo.GM_PremKoz.JCCEHZ5 <> '000000000000' AND dbo.GM_PremKoz.JCCEHZ5 IS NOT NULL) AND NOT (dbo.GM_PremKoz.PrizVyb5 IN ('4', '5', '6', '7', '9')) THEN 1 ELSE 0 END AS NaChovCap, 
                      dbo.GM_CAP.LUC AS OtLUC, dbo.GM_CAP.PUC AS OTPUC, dbo.GM_CAP.CAPCIS AS CapCis2, dbo.GM_CAP.ZVSTAT AS OTZVSTAT, dbo.GM_CAP.JCCEHZ AS OTJCCEHZ
FROM         dbo.GM_PremKoz LEFT OUTER JOIN
                      dbo.GM_CAP ON dbo.GM_PremKoz.CAPCIS = dbo.GM_CAP.CAPCIS
go

CREATE   VIEW [dbo].[View_PM_BLUP_CDATA] AS
select
(v.Rok_narodenia+v.Poradove_cislo+v.Pohlavie) as Poradove_cislo,
Chovatel_kraj as Kraj, Chovatel_okres as Okres, Chovatel_podnik as Podnik, Chovatel_chov as Chov, 
Prasnica as Matka, Datum_narodenia, Usne_cislo,
Skraj, Sokres, Spodnik, Schov, 
Linia, RegK_Cislo, Kod_kategorie, Plemeno_vrhu as Plemeno,
Linia_kanca as Linia_otca, Register_kanca as Register_otca,
Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka_matka,
Stanica, Skupina, Porazka,
prirST, cmcST, slanST, hm2ST, 
Merane, prirVU, slanVU, vahaVU,
'00' as Poradie_vrhu, '00000000' as Breeds, '00000' as YS, '00000000000000' as HYS, '00' as Technik, 
0 as Agef, 0 as Fint, 0 as Ziv1, 0 as Ziv2, 0 as VahaV1, 0 as VahaV2,
'00000000' as Breedb, '0000' as Lin, '00000' as Reg, 
0 as Agef2, 0 as Fint2, 0 as Bfft, 0 as Adgft, 0 as Adgst, 0 as Vc, 0 as Bfst
from PM_BLUP_VSDATA v
where NOT EXISTS (select 1 from PM_BLUP_RESUB1 where Poradove_cislo=(v.Rok_narodenia+v.Poradove_cislo+v.Pohlavie))
union
select
Poradove_cislo, 
Povod_kraj as Kraj, Povod_okres as Okres, Povod_podnik as Podnik, Povod_chov as Chov, 
Matka, Datum_narodenia, Usne_cislo,
Sucasny_kraj as Skraj, Sucasny_okres as Sokres, Sucasny_podnik as Spodnik, Sucasny_chov as Schov, 
'0000' as Linia, Sucasna_prasnica as RegK_Cislo, '3' as Kod_kategorie, Plemeno_pras as Plemeno,
Linia_otca, Register_otca,
Povod_kraj as Matka_kraj, Povod_okres as Matka_okres, Povod_podnik as Matka_podnik, Povod_chov as Matka_chov, Matka as Matka_matka,
'00' as Stanica, '000' as Skupina, CAST(NULL as DATE) as Porazka,
0 as prirST, 0 as cmcST, 0 as slanST, 0 as hm2ST, CAST(NULL as DATE) as Merane, 0 as prirVU, 0 as slanVU, 0 as vahaVU,
Poradie_vrhu, Plemeno_pras as Breeds, YS, HYS, Technik, Agef, Fint, Ziv1, Ziv2, VahaV1, VahaV2,
Plemeno_kanca as Breedb, Linia_kanca as Lin, Register_kanca as Reg, 
Agef2, Fint2, 0 as Bfft, 0 as Adgft, 0 as Adgst, 0 as Vc, 0 as Bfst
from PM_BLUP_RESUB1 v
where NOT EXISTS (select 1 from PM_BLUP_VSDATA where (Rok_narodenia+Poradove_cislo+Pohlavie)=v.Poradove_cislo)
union
select
(v.Rok_narodenia+v.Poradove_cislo+v.Pohlavie) as Poradove_cislo, 
v.Chovatel_kraj as Kraj, v.Chovatel_okres as Okres, v.Chovatel_podnik as Podnik, v.Chovatel_chov as Chov, 
v.Prasnica as Matka, v.Datum_narodenia, v.Usne_cislo,
v.Skraj, v.Sokres, v.Spodnik, v.Schov, 
v.Linia, v.RegK_Cislo, v.Kod_kategorie, v.Plemeno_vrhu as Plemeno,
v.Linia_kanca as Linia_otca, v.Register_kanca as Register_otca,
v.Matka_kraj, v.Matka_okres, v.Matka_podnik, v.Matka_chov, v.Matka_matka,
v.Stanica, v.Skupina, v.Porazka,
v.prirST, v.cmcST, v.slanST, v.hm2ST, 
CASE 
	WHEN r.Poradie_vrhu='01' THEN v.Merane
	ELSE CAST(NULL as DATE)
END AS Merane,
CASE 
	WHEN r.Poradie_vrhu='01' THEN v.prirVU
	ELSE 0
END AS prirVU,
CASE 
	WHEN r.Poradie_vrhu='01' THEN v.slanVU
	ELSE 0
END AS slanVU,
CASE 
	WHEN r.Poradie_vrhu='01' THEN v.vahaVU
	ELSE 0
END AS vahaVU,
r.Poradie_vrhu, r.Plemeno_pras as Breeds, r.YS, r.HYS, r.Technik, r.Agef, r.Fint, r.Ziv1, r.Ziv2, r.VahaV1, r.VahaV2,
r.Plemeno_kanca as Breedb, r.Linia_kanca as Lin, r.Register_kanca as Reg, 
r.Agef2, r.Fint2, 0 as Bfft, 0 as Adgft, 0 as Adgst, 0 as Vc, 0 as Bfst
from PM_BLUP_VSDATA v, PM_BLUP_RESUB1 r 
where r.Poradove_cislo = (v.Rok_narodenia+v.Poradove_cislo+v.Pohlavie)
go

CREATE   VIEW [dbo].[View_PM_BLUP_POPKAN2] AS
select
v.Linia_kanca, v.Register_kanca, v.Linia_otca, v.Register_otca,
v.Matka_kraj, v.Matka_okres, v.Matka_podnik, v.Matka_chov, v.Matka_matka as Matka,
oo.Linia_otca as Oo_linia, oo.Register_otca as Oo_register,
ooo.Linia_otca as Ooo_linia, ooo.Register_otca as Ooo_register,
moo.Matka_kraj as Moo_kraj, moo.Matka_okres as Moo_okres, moo.Matka_podnik as Moo_podnik, 
moo.Matka_chov as Moo_chov, moo.Matka_matka as Moo_matka,
mmo.Matka_kraj as Mmo_kraj, mmo.Matka_okres as Mmo_okres, mmo.Matka_podnik as Mmo_podnik, 
mmo.Matka_chov as Mmo_chov, mmo.Matka_matka as Mmo_matka,
mmo.Linia_otca as Omo_linia, mmo.Register_otca as Omo_register
from PM_BLUP_VUKANCE v
left join PM_BLUP_VUKANCE oo on
oo.Linia_kanca = v.Linia_otca and oo.Register_kanca = v.Register_otca
left join PM_BLUP_VUKANCE ooo on
ooo.Linia_kanca = oo.Linia_otca and ooo.Register_kanca = oo.Register_otca
left join PM_BLUP_VUPRASN moo on
moo.Chovatel_kraj = oo.Matka_kraj and moo.Chovatel_okres = oo.Matka_okres and
moo.Chovatel_podnik = oo.Matka_podnik and moo.Chovatel_chov = oo.Matka_chov and moo.Prasnica = oo.Matka_matka
left join PM_BLUP_VUPRASN mmo on
mmo.Chovatel_kraj = v.Matka_kraj and mmo.Chovatel_okres = v.Matka_okres and
mmo.Chovatel_podnik = v.Matka_podnik and mmo.Chovatel_chov = v.Matka_chov and mmo.Prasnica = v.Matka_matka
go

CREATE VIEW dbo.View_CP_SumarMladyDobytokJal
AS
SELECT     CISTELATA, vekMes, vekDni, CHOVATEL, raspas, HMOT, PRIRPREPOC, zivpriras, ZnakPrip, ZnakTelnost, IDAIN, POHLAVIE, DATNAR
FROM         dbo.View_CP_poslednoVazeneTeliatZoznam AS a
WHERE     (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2' AND POHLAVIE <> '62' OR
                      POHLAVIE IS NULL) AND (DOVVYR IS NULL)
go

CREATE   VIEW [dbo].[View_PM_BLUP_RODKAN1] AS
select
v.Linia_kanca, v.Register_kanca, 
v.Matka_kraj, v.Matka_okres, v.Matka_podnik, v.Matka_chov, v.Matka,
v.Linia_otca, v.Register_otca
from View_PM_BLUP_POPKAN2 v
union 
select distinct
v.Linia_otca as Linia_kanca, v.Register_otca as Register_kanca, 
v.Moo_kraj as Matka_kraj, v.Moo_okres as Matka_okres, v.Moo_podnik as Matka_podnik, 
v.Moo_chov as Matka_chov, v.Moo_matka as Matka,
v.Oo_linia as Linia_otca, v.Oo_register as Register_otca
from View_PM_BLUP_POPKAN2 v
where 
not exists (select * from PM_BLUP_VUKANCE where Linia_kanca=v.Linia_otca and Register_kanca=v.Register_otca)
go

CREATE VIEW dbo.View_CP_SumarMladyDobytokJal_next1
AS
/*[CISTELATA],[vekMes],[vekDni] ,[CHOVATEL],[raspas],[HMOT],[PRIRPREPOC],[zivpriras],[ZnakPrip],[ZnakTelnost],idain*/ SELECT 1 AS ID, 'do 1 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, 
                      AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 1 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 2 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 3 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 4 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 5 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 6 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 0 AND 6 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 7 AND 12 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     CONVERT(varchar(2), vekmes) + '.' + CONVERT(varchar(2), vekdni) BETWEEN '11.15' AND '12.15' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 24 AND [ZnakTelnost] IS NOT NULL AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     17 AS ID, 'celkom jalovice za mastal' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     POHLAVIE IS NOT NULL OR
                      datnar IS not NULL
GROUP BY a.chovatel
UNION
SELECT     18 AS ID, 'bez povodu' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     pohlavie IS NULL OR
                      datnar IS NULL
GROUP BY a.chovatel
UNION
SELECT     19 AS ID, 'priemerny prirastok za mastal' AS vek, AVG(prirprepoc) AS po4et/*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ , NULL AS hmotnost, NULL AS pripprepoc, NULL 
                      AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
GROUP BY a.chovatel
go

CREATE VIEW dbo.View_SP_AkMlStada
AS
SELECT DISTINCT TOP (100) PERCENT KROKR, PODNIK, STADO
FROM         dbo.SM_OVCE
ORDER BY KROKR, PODNIK, STADO
go

CREATE   VIEW [dbo].[View_PM_BLUP_POPMAT2] AS
select 
v.Chovatel_kraj, v.Chovatel_okres, v.Chovatel_podnik, v.Chovatel_chov, v.Prasnica,
v.Matka_kraj, v.Matka_okres, v.Matka_podnik, v.Matka_chov, v.Matka_matka as Matka,
v.Linia_otca, v.Register_otca,
mom.Linia_otca as Oom_linia, mom.Register_otca as Oom_register,
mom.Matka_kraj as Mom_kraj, mom.Matka_okres as Mom_okres, mom.Matka_podnik as Mom_podnik, 
mom.Matka_chov as Mom_chov, mom.Matka_matka as Mom_matka,
mmm.Linia_otca as Omm_linia, v.Register_otca as Omm_register,
mmm.Matka_kraj as Mmm_kraj, mmm.Matka_okres as Mmm_okres, mmm.Matka_podnik as Mmm_podnik, 
mmm.Matka_chov as Mmm_chov, mmm.Matka_matka as Mmm_matka
from PM_BLUP_VUPRASN v
left join PM_BLUP_VUKANCE mom on
mom.Linia_kanca = v.Linia_otca and mom.Register_kanca = v.Register_otca
left join PM_BLUP_VUPRASN mmm on
mmm.Chovatel_kraj = v.Matka_kraj and mmm.Chovatel_okres = v.Matka_okres and
mmm.Chovatel_podnik = v.Matka_podnik and mmm.Chovatel_chov = v.Matka_chov and mmm.Prasnica = v.Matka_matka
go

CREATE VIEW [dbo].[View_CM_Mocovina]
AS
SELECT     CIS_KRAVY, CHOV, DATROZB, LAKTACE, KG_MLEKA, TUK, MOCOV, BIL, SOM_BUN, SUBSTRING(CHOV, 2, 6) AS cpodnikr, 
                      SUBSTRING(STR(DAY(DATROZB)), 9, 2) + '.' + SUBSTRING(STR(MONTH(DATROZB)), 9, 2) + '.' + SUBSTRING(STR(YEAR(DATROZB)), 7, 4) 
                      AS SDATKONTR
FROM         dbo.CM_Mocovina

go

CREATE   VIEW [dbo].[View_PM_BLUP_RODPRA1] AS
select 
Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica,
Matka_kraj, Matka_okres, Matka_podnik, Matka_chov, Matka,
Linia_otca, Register_otca
from View_PM_BLUP_POPMAT2
union 
select distinct
v.Matka_kraj as Chovatel_kraj, v.Matka_okres as Chovatel_okres, v.Matka_podnik as Chovatel_podnik, 
v.Matka_chov as Chovatel_chov, v.Matka as Prasnica,
v.Mmo_kraj as Matka_kraj, v.Mmo_okres as Matka_okres, v.Mmo_podnik as Matka_podnik, 
v.Mmo_chov as Matka_chov, v.Mmo_matka as Matka,
v.Omo_linia  as Linia_otca, v.Omo_Register as Register_otca
from View_PM_BLUP_POPKAN2 v
where  
not exists (select * from View_PM_BLUP_POPMAT2  where Chovatel_kraj=v.Matka_kraj and Chovatel_okres=v.Matka_okres and
Chovatel_podnik=v.Matka_podnik and Chovatel_chov=v.Matka_chov and Prasnica=v.Matka)
go

CREATE VIEW dbo.View_CP_Insem
AS
SELECT     dbo.CM_Insvyk.IPLCA, dbo.CM_Insvyk.IDAIN, dbo.CM_Insvyk.IPOIN, dbo.CM_Insvyk.IPOREIN, dbo.CM_Insvyk.IKRJA, dbo.CM_Insvyk.IVYSE, dbo.CM_Insvyk.IBLIN, 
                      dbo.CM_Insvyk.IBREG, dbo.CM_Insvyk.ITECH, dbo.CM_Insvyk.ITCHL, dbo.CM_Insvyk.ICEUK, dbo.CM_Insvyk.ICEDA, dbo.CM_Insvyk.ICVYS, dbo.CM_Insvyk.IDAOT, 
                      dbo.CM_Insvyk.ICIDO, dbo.CM_Insvyk.ISPOT, dbo.CM_Insvyk.ISTR, dbo.CM_Insvyk.IKOKR, dbo.CM_Insvyk.IPOD, dbo.CM_Insvyk.ICHMA, 
                      SUBSTRING(CONVERT(varchar, dbo.CM_Insvyk.IDAIN), 1, 7) AS mesiacIn, dbo.CM_Byci.TYPPLEM
FROM         dbo.CM_Byci INNER JOIN
                      dbo.CM_Insvyk ON dbo.CM_Byci.LIN = dbo.CM_Insvyk.IBLIN AND dbo.CM_Byci.REG = dbo.CM_Insvyk.IBREG
go

CREATE   VIEW [dbo].[View_PM_BLUP_RODKAN2] AS
select * from View_PM_BLUP_RODKAN1
union 
select distinct
v.Linia_otca as Linia_kanca, v.Register_otca as Register_kanca, 
v.Mom_kraj as Matka_kraj, v.Mom_okres as Matka_okres, v.Mom_podnik as Matka_podnik, 
v.Mom_chov as Matka_chov, v.Mom_matka as Matka,
v.Oom_linia as Linia_otca, v.Oom_register as Register_otca
from View_PM_BLUP_POPMAT2 v
where 
not exists (select * from View_PM_BLUP_RODKAN1 where Linia_kanca=v.Linia_otca and Register_kanca=v.Register_otca)
go

/****** Script for SelectTopNRows command from SSMS  ******/
CREATE VIEW dbo.View_CP_Help_hladaneChovoPodlaNazov
AS
SELECT     TOP (100) PERCENT a.KRAJ + a.OKRES + a.PODNIK AS spolu, COUNT(*) AS POCHET, (ISNULL(b.NAZOVSKR, '') + ' - ' + ISNULL(a.NAZOV, '') + '  ... ') 
                      + (a.KRAJ + a.OKRES + a.PODNIK) AS FARMA, a.NAZOV, b.ICO, b.NAZOVSKR
FROM         dbo.NM_CHOVMAS AS a INNER JOIN
                      dbo.NM_PODNIK AS b ON a.KRAJ + a.OKRES + a.PODNIK = b.KRAJ + b.OKRES + b.PODNIK
WHERE     (SUBSTRING(a.CHOV, 3, 1) <> 0) AND (a.ZRUS IS NULL) OR
                      (a.ZRUS IS NULL) AND (a.TYPZV <> '1')
GROUP BY ISNULL(b.NAZOVSKR, '') + ' - ' + ISNULL(a.NAZOV, ''), a.KRAJ + a.OKRES + a.PODNIK, a.NAZOV, b.ICO, b.NAZOVSKR
ORDER BY POCHET DESC
go

CREATE   VIEW [dbo].[View_PM_BLUP_RODKAN] AS
select * from View_PM_BLUP_RODKAN2
where (Linia_kanca+Register_kanca)<>(Linia_otca+Register_otca)
go

CREATE VIEW dbo.View_CP_MLIEKO_KRAVA_RODOKMEN_POLOVICA
AS
SELECT     k.IDKRAVY, k.K, k.K_farba, k.BB_NAME, k.PORLAKMAX, k.POCVSETLAK, k.DATNAR, k.TRUZIT, k.CHOVATEL, k.K_plemena, k.MLIEKOMAX, k.MLIEKOPR, k.TUKMAX, k.TUKPRKG, k.K_TukMaxP, 
                      k.TUKPRPER, k.BIELMAX, k.BIELPRKG, k.K_bielkP, k.BIELPRPER, k.LAKTOZAMAX, k.K_LaktMaxP, k.K_farba AS Expr1, k.K_farbaText, k.K_SPI AS K_SPI, k.K_REl, k.K_M305, k.K_RPHM, k.K_T305, 
                      k.K_RPHT, k.K_B305, k.K_RPHB, k.M, k.M_name, k.M_MaxLakt, k.M_pocVsLakt, k.M_datnar, k.M_TRUZ, k.M_chovatel, k.M_plemena, k.M_mliekoMax, k.M_mliekoPr, k.M_tukMax, k.M_tukPr, 
                      k.M_TukMaxP, k.M_tukPrP, k.M_bielkMax, k.M_BielkPr, k.M_bielkP, k.M_bielkPrP, k.M_laktMax, k.M_LaktMaxP, k.M_farbaKod, k.M_farbaText, k.SPI AS M_SPI, k.M_REl, k.M_M305, k.M_RPHM, 
                      k.M_T305, k.M_RPHT, k.M_B305, k.M_RPHB, m.Otec AS OM, m.O_lin AS OM_LIN, m.O_skupina AS OM_SKUPINA, m.O_meno AS OM_MENO, m.O_SPI AS OM_SPI, m.O_REL AS OM_REL, 
                      m.O_mlieko AS OM_MLIEKO, m.O_tuk AS OM_TUK, m.O_tukp AS OM_TUKPERC, m.O_bielk AS OM_BIELK, m.O_Bielkp AS OM_BIELKPERC, m.O_datnar AS OM_datnar, m.O_farbaKod AS OM_Farba, 
                      m.O_farbaText AS OM_farbaText, m.O_plemena AS OM_Plemena, m.M AS MM, m.M_name AS MM_NAME, m.M_MaxLakt AS MM_MAXLAKT, m.M_pocVsLakt AS MM_POCVSLAKT, 
                      m.M_datnar AS MM_DATNAR, m.M_TRUZ AS MM_TRUZ, m.M_chovatel AS MM_CHOVATEL, m.M_plemena AS MM_PLEMENA, m.M_mliekoMax AS MM_MLIEKOMAX, 
                      m.M_mliekoPr AS MM_MLIEKOPR, m.M_tukMax AS MM_TUKMAX, m.M_tukPr AS MM_TUKPR, m.M_TukMaxP AS MM_TUKMAXPERC, m.M_tukPrP AS MM_TUKPRPERC, 
                      m.M_bielkMax AS MM_BIELKMAX, m.M_BielkPr AS MM_BIELKPR, m.M_bielkP AS MM_BIELKPERC, m.M_bielkPrP AS MM_BIELKPRPERC, m.M_laktMax AS MM_LAKTMAX, 
                      m.M_LaktMaxP AS MM_LAKTMAXPERC, m.M_farbaKod AS MM_FARBAKOD, m.M_farbaText AS MM_FARBATEX, m.SPI AS MM_SPI, m.M_REl AS MM_REL, m.M_M305 AS MM_M305, 
                      m.M_RPHM AS MM_RPHM, m.M_T305 AS MM_T305, m.M_RPHT AS MM_RPHT, m.M_B305 AS MM_B305, m.M_RPHB AS MM_RPHB, k.Otec, k.O_lin, k.O_skupina, k.O_SPI, k.O_REL, k.O_meno, 
                      k.O_mlieko, k.O_tuk, k.O_tukp, k.O_bielk, k.O_Bielkp, k.O_farbaKod, k.O_farbaText, k.O_plemena, k.O_datnar, b.MATKA AS MO, b.M_name AS MO_NAME, b.M_MaxLakt AS MO_MAXLAKT, 
                      b.M_pocVsLakt AS MO_POCVSLAKT, b.M_datnar AS MO_DATNAR, b.TRUZIT AS MO_TRUZ, b.M_chovatel AS MO_CHOVATEL, b.M_plemena AS MO_PLEMENA, b.M_mliekoMax AS MO_MLIEKOMAX, 
                      b.M_mliekoPr AS MO_MLIEKOPR, b.M_tukMax AS MO_TUKMAX, b.M_tukPr AS MO_TUKPERC, b.M_TukMaxP AS MO_TUKMAXPERC, b.M_tukPrP AS MO_TUKPRPERC, 
                      b.M_bielkMax AS MO_BIELKMAX, b.M_BielkPr AS MO_BIELKPR, b.M_bielkP AS MO_BIELKPERC, b.M_bielkPrP AS MO_BIELKPRPERC, b.M_laktMax AS MO_LAKTMAX, 
                      b.M_LaktMaxP AS MO_LAKTMAXPERC, b.M_farbaKOD AS MO_FARBA, b.M_farbaText AS MO_FARBATEX, b.M_SPI AS MO_SPI, b.M_REl AS MO_REL, b.M_M305 AS MO_M305, 
                      b.M_RPHM AS MO_RPHM, b.M_T305 AS MO_T305, b.M_RPHT AS MO_RPHT, b.M_B305 AS MO_B305, b.M_RPHB AS MO_RPHB, b.otec AS OO, b.O_Skupina AS OO_SKUPINA, b.O_SPI AS OO_SPI, 
                      b.O_REL AS OO_REL, b.O_lin AS OO_LIN, b.O_meno AS OO_MENO, b.O_mlieko AS OO_MLIEKO, b.O_tuk AS OO_TUK, b.O_Tukp AS OO_TUKPERC, b.O_bielk AS OO_BIELK, 
                      b.O_bielkp AS OO_BIELKPERC, b.O_datnar AS OO_DATNAR, b.O_farbaKod AS OO_FARBAKOD, b.O_farbaText AS OO_FARBATEX, b.O_plemena AS OO_PLEMENA, k.plemenentip, k.PK, 
                      k.POCNORLAK, k.M_PK, k.M_plemTyp, k.M_PocNlak, k.O_PK, k.O_cery, k.O_Stada, k.O_plemTyp, k.K_ZNMATBYK, k.K_LAKTPRKG, k.K_LAKTPRPERC, k.K_COUNTRYCODE, k.K_UZTYP, 
                      k.K_ROKSPRAC, k.K_MESSPRAC, k.O_KRVROZ, k.O_DATKRVROZ, k.O_COUNTRYCODE, k.O_ROKSPRAC, k.O_MESSPRAC, k.O_UZTYP, k.O_PHHMOT120, k.O_PHHMOT210, k.O_PHHMOT365, 
                      k.O_SPOLAHL, k.O_SC305, k.O_RPHSC, k.O_RELSB, k.M_ROKSPRAC, k.M_MESSPRAC, k.M_ZNAMATBYK, k.M_LAKTPRKG, k.M_LAKTPRPERC, k.M_COUNTRYCODE, k.M_UZTYP, k.M_HMOTNR, 
                      k.M_HMOT120, k.M_PRIR120, k.M_ZPRIR120, k.M_HMOT210, k.M_PRIR210, k.M_ZPRIR210, k.M_HMOT365, k.M_PRIR365, k.M_ZPRIR365, k.M_HMOT500, k.M_PRIR500, k.M_ZPRIR500, 
                      k.vahaNar, k.vaha120, k.priras120, k.zpriras120, k.vaha210, k.priras210, k.zproras210, k.vaha365, k.priras365, k.zpriras365, k.vaha500, k.priras500, k.zpriras500, m.M_PK AS Mm_PK, 
                      m.M_plemTyp AS MM_plemTyp, m.M_PocNlak AS MM_PocNlak, m.O_PK AS OM_PK, m.O_cery AS OM_cery, m.O_Stada AS OM_Stada, m.O_plemTyp AS OM_plemTyp, 
                      m.O_KRVROZ AS OM_KRVROZ, m.O_DATKRVROZ AS OM_DATKRVROZ, m.O_COUNTRYCODE AS OM_COUNTRYCODE, m.O_ROKSPRAC AS OM_ROKSPRAC, m.O_MESSPRAC AS OM_MESSPRAC, 
                      m.O_UZTYP AS OM_UZTYP, m.O_PHHMOT120 AS OM_PHHMOT120, m.O_PHHMOT210 AS OM_PHHMOT210, m.O_PHHMOT365 AS OM_PHHMOT365, m.O_SPOLAHL AS OM_SPOLAHL, 
                      m.O_SC305 AS OM_SC305, m.O_RPHSC AS OM_RPHSC, m.O_RELSB AS OM_RELSB, m.M_ROKSPRAC AS MM_ROKSPRAC, m.M_MESSPRAC AS MM_MESSPRAC, 
                      m.M_ZNAMATBYK AS MM_ZNAMATBYK, m.M_LAKTPRKG AS MM_LAKTPRKG, m.M_LAKTPRPERC AS MM_LAKTPRPERC, m.M_COUNTRYCODE AS MM_COUNTRYCODE, 
                      m.M_UZTYP AS MM_UZTYP, m.M_HMOTNR AS MM_HMOTNR, m.M_HMOT120 AS MM_HMOT120, m.M_PRIR120 AS MM_PRIR120, m.M_ZPRIR120 AS MM_ZPRIR120, 
                      m.M_HMOT210 AS MM_HMOT210, m.M_PRIR210 AS MM_PRIR210, m.M_ZPRIR210 AS MM_ZPRIR210, m.M_HMOT365 AS MM_HMOT365, m.M_PRIR365 AS MM_PRIR365, 
                      m.M_ZPRIR365 AS MM_ZPRIR365, m.M_HMOT500 AS MM_HMOT500, m.M_PRIR500 AS MM_PRIR500, m.M_ZPRIR500 AS MM_ZPRIR500, b.O_Spracovano AS OO_Spracovano, 
                      b.O_stada AS OO_stada, b.O_cery AS OO_cery, b.M_ZNMATBYK AS MO_ZNMATBYK, b.M_LAKTPKG AS MO_LAKTPKG, b.M_LAKTPPERC AS MO_LAKTPPERC, b.M_TYPPLRM AS MO_TYPPLRM, 
                      b.M_COUNTRYCODE AS MO_COUNTRYCODE, b.O_COUNTRYCODE AS OO_COUNTRYCODE, b.O_ROKSPRAC AS OO_ROKSPRAC, b.O_MESSPRAC AS OO_MESSPRAC, b.O_UZTYP AS OO_UZTYP, 
                      b.O_PLEMENO AS OO_PLEMENO, b.O_PHHMOT120 AS OO_PHHMOT120, b.O_PHHMOT210 AS OO_PHHMOT210, b.O_PHHMOT365 AS OO_PHHMOT365, b.O_SPOLAHL AS OO_SPOLAHL, 
                      b.O_SC305 AS OO_SC305, b.O_RPHSC AS OO_RPHSC, b.O_RELSB AS OO_RELSB, b.M_ROKSPRAC AS MO_ROKSPRAC, b.M_MESSPRAC AS MO_MESSPRAC, b.M_VAHANAR AS MO_VAHANAR, 
                      b.M_PRIRAS120 AS MO_PRIRAS120, b.M_VAHA120 AS MO_VAHA120, b.M_ZPRIRAS120 AS MO_ZPRIRAS120, b.M_VAHA210 AS MO_VAHA210, b.M_PRIRAS210 AS MO_PRIRAS210, 
                      b.M_ZPRIRAS210 AS MO_ZPRIRAS210, b.M_VAHA365 AS MO_VAHA365, b.M_PRIRAS365 AS MO_PRIRAS365, b.M_ZPRIRAS365 AS MO_ZPRIRAS365, b.M_VAHA500 AS MO_VAHA500, 
                      b.M_PRIRAS500 AS MO_PRIRAS500, b.M_ZPRIRAS500 AS MO_ZPRIRAS500
FROM         dbo.View_CP_Rodokmen_Krava_mlieko AS k LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_Krava_mlieko AS m ON k.IDMA = m.IDKRAVY LEFT OUTER JOIN
                      dbo.View_CP_Rodokmen_byk_mlieko AS b ON k.IDOT = b.IDBYKA
go

CREATE   VIEW [dbo].[View_PM_BLUP_RODPRA2] AS
select * from View_PM_BLUP_RODPRA1
union 
select distinct
v.Matka_kraj as Chovatel_kraj, v.Matka_okres as Chovatel_okres, v.Matka_podnik as Chovatel_podnik, 
v.Matka_chov as Chovatel_chov, v.Matka as Prasnica,
v.Mmm_kraj as Matka_kraj, v.Mmm_okres as Matka_okres, v.Mmm_podnik as Matka_podnik, 
v.Mmm_chov as Matka_chov, v.Mmm_matka as Matka,
v.Omm_linia  as Linia_otca, v.Omm_Register as Register_otca
from View_PM_BLUP_POPMAT2 v
where
not exists (select * from View_PM_BLUP_RODPRA1  where Chovatel_kraj=v.Matka_kraj and Chovatel_okres=v.Matka_okres and
Chovatel_podnik=v.Matka_podnik and Chovatel_chov=v.Matka_chov and Prasnica=v.Matka)
go

CREATE VIEW dbo.View_PP_KatPrKT
AS
SELECT     TOP (100) PERCENT dbo.PP_KatPr.PODNIK, dbo.PP_KatPr.OKRES, dbo.PP_KatPr.ZAVOD, dbo.PP_KatPr.CHOV, dbo.PP_KatPr.NAZZAV, 
                      dbo.PP_KatPr.NAZOV, dbo.PP_KatPr.NAZPLSKR, dbo.PP_KatPr.STHYBR, dbo.PP_KatPr.NUMBERKAT, dbo.PP_KatPr.USCISLO, dbo.PP_KatPr.LINOTCA, 
                      dbo.PP_KatPr.REGOTCA, dbo.PP_KatPr.NAZLINOT, dbo.PP_KatPr.PSLAN, dbo.PP_KatPr.TBFFT, dbo.PP_KatPr.TBFST, dbo.PP_KatPr.NARODENE, 
                      dbo.PP_KatPr.LINOTCAM, dbo.PP_KatPr.REGOTCAM, dbo.PP_KatPr.NAZLINOTM, dbo.PP_KatPr.PPRIR, dbo.PP_KatPr.TADGFT, dbo.PP_KatPr.TADGST, 
                      dbo.PP_KatPr.VAHA, dbo.PP_KatPr.STRUKY, dbo.PP_KatPr.MATKA, dbo.PP_KatPr.MPRIR, dbo.PP_KatPr.MCMC, dbo.PP_KatPr.MSLAN, 
                      dbo.PP_KatPr.PHMC, dbo.PP_KatPr.TVC, dbo.PP_KatPr.STARMES, dbo.PP_KatPr.PORVRH, dbo.PP_KatPr.VSET, dbo.PP_KatPr.ZIVE, 
                      dbo.PP_KatPr.DOCH, dbo.PP_KatPr.TNBA1, dbo.PP_KatPr.TSPIM, dbo.PP_KatPr.TSPIO, dbo.PP_KatPr.PVSET, dbo.PP_KatPr.PZIVE, 
                      dbo.PP_KatPr.PDOCH, dbo.PP_KatPr.TNBA2, dbo.PP_KatPr.TSPIJ, dbo.PP_KatPr.ZNAK, dbo.PP_KatPr.DATZAP, SUBSTRING(dbo.PP_KatPr.USCISLO, 1, 
                      5) AS USC1, SUBSTRING(dbo.PP_KatPr.USCISLO, 6, 2) AS USC2, SUBSTRING(dbo.PP_KatPr.STRUKY, 1, 1) AS STR1, 
                      SUBSTRING(dbo.PP_KatPr.STRUKY, 2, 1) AS STR2, dbo.PM_KanceVJH.P_prirastok, dbo.PM_KanceVJH.P_VSZ, dbo.PM_KanceVJH.P_ME, 
                      dbo.PM_KanceVJH.P_MLD, dbo.PM_KanceVJH.P_CMC, dbo.PM_KanceVJH.P_stehno, dbo.PM_KanceVJH.P_vyska_slaniny
FROM         dbo.PP_KatPr LEFT OUTER JOIN
                      dbo.PM_KanceVJH ON dbo.PP_KatPr.LINOTCA = dbo.PM_KanceVJH.Linia_kanca AND 
                      dbo.PP_KatPr.REGOTCA = dbo.PM_KanceVJH.Register_kanca AND dbo.PP_KatPr.STHYBR = dbo.PM_KanceVJH.Plemeno_KU AND 
                      dbo.PP_KatPr.ZNAK = '1'
go

CREATE   VIEW [dbo].[View_PM_BLUP_RODPRA] AS
select * from View_PM_BLUP_RODPRA2
where
(Chovatel_kraj+Chovatel_okres+Chovatel_podnik+Chovatel_chov+Prasnica)<>(Matka_kraj+Matka_okres+Matka_podnik+Matka_chov+Matka)
go

CREATE VIEW dbo.View_CP_meso_zoznamTelata
AS
SELECT        t.CHOVATEL, DATEDIFF(MONTH, t.DATNAR, GETDATE()) AS VekMesac, DATEDIFF(day, t.DATNAR, GETDATE()) AS VekDni, t.CISTELATA, t.POHLAVIE, t.DOVVYR, t.TYPPLEM, p.TYPS, p.UZITKOVYTYP, p.PODIEL1, 
                         p.PODIEL2, t.OUC, b.MENO, t.OTECLIN, t.OTECREG, bp.UZITKOVYTYP AS OtecUzitkovyTyp, bp.NAZTYP AS PlemenoOtca, p.NAZTYP, t.HMOTNAR, v.vaha120, v.priras120, v.zpriras120, v.vaha210, v.priras210, 
                         v.zproras210, v.vaha365, v.priras365, v.zpriras365, v.vaha500, v.priras500, v.zpriras500, t.DATNAR, t.MATKA
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                         dbo.CP_Meso_TelataVahy AS v ON t.CISTELATA = v.cistelata LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS bp ON b.TYPPLEM = bp.TYPC
WHERE        (t.PRIZNAKKU = '2') AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava
                               WHERE        (DOVVYR IS NULL)))
go

CREATE   VIEW [dbo].[View_PM_BLUP_BRODKAN] AS
select distinct v.*,
(vskan1.Rok_narodenia+vskan1.Poradove_cislo+vskan1.Pohlavie) as Poradove_cislo,
(vskan2.Rok_narodenia+vskan2.Poradove_cislo+vskan2.Pohlavie) as Poradove_cislo_otca,
(vspra.Rok_narodenia+vspra.Poradove_cislo+vspra.Pohlavie) as Poradove_cislo_matky
from View_PM_BLUP_RODKAN v
left join PM_BLUP_VSKAN vskan1 on vskan1.Linia_kanca = v.Linia_kanca and vskan1.Register_kanca = v.Register_kanca
left join PM_BLUP_VSKAN vskan2 on vskan2.Linia_kanca = v.Linia_otca and vskan2.Register_kanca = v.Register_otca
left join PM_BLUP_VSPRA vspra on vspra.Chovatel_kraj = v.Matka_kraj and vspra.Chovatel_okres = v.Matka_okres and
vspra.Chovatel_podnik = v.Matka_podnik and vspra.Chovatel_chov = v.Matka_chov and vspra.Prasnica = v.Matka
go



CREATE VIEW [dbo].[View_CP_Mlieko_JalovisPripustane_telnost]
AS
SELECT     t.CISTELATA, CONVERT(int, DATEDIFF(day, t.DATNAR, GETDATE()) / 30.42) AS mes, t.CHOVATEL, CASE WHEN NULLIF (i.IVYSE, 0) IS NOT NULL 
                      THEN 'telna' ELSE '' END AS ivyse, CASE WHEN i.IPLCA IS NOT NULL THEN 'pripustená' ELSE 'nepripustená' END AS prip, i.IDAIN, t.CHOVNAR, t.DATNAR
FROM         dbo.View_CP_Mlieko_zoznamJalovic AS t LEFT OUTER JOIN
                      dbo.View_CP_Insem AS i ON t.CISTELATA = i.IPLCA


go

CREATE   VIEW [dbo].[View_PM_BLUP_BRODPRA] AS
select distinct v.*,
(vspra1.Rok_narodenia+vspra1.Poradove_cislo+vspra1.Pohlavie) as Poradove_cislo,
(vskan.Rok_narodenia+vskan.Poradove_cislo+vskan.Pohlavie) as Poradove_cislo_otca,
(vspra2.Rok_narodenia+vspra2.Poradove_cislo+vspra2.Pohlavie) as Poradove_cislo_matky
from View_PM_BLUP_RODPRA v
left join PM_BLUP_VSPRA vspra1 on vspra1.Chovatel_kraj = v.Chovatel_kraj and vspra1.Chovatel_okres = v.Chovatel_okres and
vspra1.Chovatel_podnik = v.Chovatel_podnik and vspra1.Chovatel_chov = v.Chovatel_chov and vspra1.Prasnica = v.Prasnica
left join PM_BLUP_VSPRA vspra2 on vspra2.Chovatel_kraj = v.Matka_kraj and vspra2.Chovatel_okres = v.Matka_okres and
vspra2.Chovatel_podnik = v.Matka_podnik and vspra2.Chovatel_chov = v.Matka_chov and vspra2.Prasnica = v.Matka
left join PM_BLUP_VSKAN vskan on vskan.Linia_kanca = v.Linia_otca and vskan.Register_kanca = v.Register_otca
go

CREATE   VIEW [dbo].[View_PM_BLUP_BLPED1] AS
select
Poradove_cislo, 
CASE 
	WHEN Poradove_cislo_matky IS NULL THEN '00000000000'
	ELSE Poradove_cislo_matky
END AS Poradove_cislo_matky, 
CASE 
	WHEN Poradove_cislo_otca IS NULL THEN '00000000000'
	ELSE Poradove_cislo_otca
END AS Poradove_cislo_otca
from View_PM_BLUP_BRODKAN 
union
select
Poradove_cislo,
CASE 
	WHEN Poradove_cislo_matky IS NULL THEN '00000000000'
	ELSE Poradove_cislo_matky
END AS Poradove_cislo_matky, 
CASE 
	WHEN Poradove_cislo_otca IS NULL THEN '00000000000'
	ELSE Poradove_cislo_otca
END AS Poradove_cislo_otca
from View_PM_BLUP_BRODPRA
go

CREATE   VIEW [dbo].[View_PM_BLUP_BLPED2] AS
select * from View_PM_BLUP_BLPED1
union
select 
v.Poradove_cislo,
CASE 
	WHEN vspra.Poradove_cislo IS NULL THEN '00000000000'
	ELSE (vspra.Rok_narodenia+vspra.Poradove_cislo+vspra.Pohlavie)
END AS Poradove_cislo_matky, 
CASE 
	WHEN vskan.Poradove_cislo IS NULL THEN '00000000000'
	ELSE (vskan.Rok_narodenia+vskan.Poradove_cislo+vskan.Pohlavie)
END AS Poradove_cislo_otca
from PM_BLUP_CDATA v
left join PM_BLUP_VSPRA vspra on vspra.Chovatel_kraj = v.Matka_kraj and vspra.Chovatel_okres = v.Matka_okres and
vspra.Chovatel_podnik = v.Matka_podnik and vspra.Chovatel_chov = v.Matka_chov and vspra.Prasnica = v.Matka_matka
left join PM_BLUP_VSKAN vskan on vskan.Linia_kanca = v.Linia_otca and vskan.Register_kanca = v.Register_otca
where
NOT EXISTS (select 1 from View_PM_BLUP_BLPED1 where Poradove_cislo=v.Poradove_cislo)
go

CREATE   VIEW [dbo].[View_PM_BLUP_BLPED] AS
select * from View_PM_BLUP_BLPED2 blped
where
blped.Poradove_cislo_otca=(select max(Poradove_cislo_otca) from View_PM_BLUP_BLPED2 xx where xx.Poradove_cislo=blped.Poradove_cislo and xx.Poradove_cislo_matky=blped.Poradove_cislo_matky)
go

CREATE VIEW dbo.View_CP_PIN_JAL
AS
SELECT        k.CISTELATA AS CISJAL, k.CHOVNAR, k.CHOVATEL, k.DATNAR, k.PORLAK, k.POHLAVIE, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.DOVVYR, 
                         k.DATVYR, k.OTECLIN, k.OTECREG, b.PL1 AS OPL1, b.KR1 AS PKR1, b.PL2 AS OPL2, b.KR2 AS PKR2, b.PL3 AS OPL3, b.KR3 AS OKR3, b.PL4 AS OPL4, 
                         b.KR4 AS PKR4, b.PL5 AS OPL5, k.MATKA, m.PL1 AS MPL1, m.KR1 AS MKR1, m.PL2 AS MPL2, m.KR2 AS MKR2, m.PL3 AS MPL3, m.KR3 AS MKR3, m.PL4 AS MPL4, 
                         m.KR4 AS MKR4, m.PL5 AS MPL5, k.FARBA, k.ZNAKET,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOREG, b.MATKA AS MO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS MM,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b1
                               WHERE        (b.IDOT = IDBYKA)) AS MOO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS MMO,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) AS MOM,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS MMM, k.PRIZNAKKU, k.DOVVYR AS Expr1, k.DATVYR AS Expr2
FROM            dbo.CM_Telata AS k LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON k.IDOT = b.IDBYKA LEFT OUTER JOIN
                         dbo.CM_Krava AS m ON k.IDMA = m.IDKRAVY
WHERE        (k.CISTELATA IS NOT NULL) AND (CASE WHEN k.pl1 IN ('P') AND k.kr1 > 0 THEN k.kr1 ELSE 0 END + CASE WHEN k.pl2 IN ('P') 
                         THEN k.kr2 ELSE 0 END + CASE WHEN k.pl3 IN ('P') THEN k.kr3 ELSE 0 END + CASE WHEN k.pl4 IN ('P') THEN k.kr4 ELSE 0 END + CASE WHEN k.pl5 IN ('P') 
                         THEN 12.5 ELSE 0 END >= 50)
go

CREATE VIEW dbo.View_UzProdDenSpoluK
AS
SELECT        TOP (100) PERCENT CHOVATEL, rokvyr, COUNT(*) AS pocetkrav, SUM(vekvyr) / COUNT(*) AS vekvyr, SUM(vekprod) / COUNT(*) AS vekprod, SUM(sml) / COUNT(*) 
                         AS MliekCKrav, SUM(stuk) / COUNT(*) AS TukCKrac, SUM(sbielk) / COUNT(*) AS BielkCKrav, (SUM(sml) / COUNT(*)) / (SUM(vekprod) / COUNT(*)) AS mlprodd, 
                         (SUM(stuk) / COUNT(*)) / (SUM(vekprod) / COUNT(*)) AS tukprodd, (SUM(sbielk) / COUNT(*)) / (SUM(vekprod) / COUNT(*)) AS bielkprodd, (SUM(sml) / COUNT(*)) 
                         / (SUM(vekvyr) / COUNT(*)) AS mlzivd, (SUM(stuk) / COUNT(*)) / (SUM(vekvyr) / COUNT(*)) AS tukzivd, (SUM(sbielk) / COUNT(*)) / (SUM(vekvyr) / COUNT(*)) 
                         AS bielkzivd, AVG(PORPREBLAK * 1.00) AS prporlak
FROM            dbo.View_UzProdDenKravaSpoluK AS k
GROUP BY CHOVATEL, rokvyr
ORDER BY CHOVATEL, rokvyr
go

CREATE   VIEW [dbo].[View_PM_BLUP_TBLDAT] AS
select
CAST((
Anim+Station+Herd+Breed+Litter+
FORMAT(adgST, '0000')+FORMAT(vcST*100, '0000')+FORMAT(bfST*100, '000')+FORMAT(wST*10, '0000')+
FORMAT(ABS(adgFT), '000')+FORMAT(bfFT*100, '000')+FORMAT(woFT, '000')+ 
YS1ST+HYS1FT+Sex+Parity+Breeds+HYS+TType+
FORMAT(Agef, '0000')+FORMAT(Fint, '000')+FORMAT(Nba1, '00')+FORMAT(Nba2, '00')+
FORMAT(W211*10, '0000')+FORMAT(W212*10, '0000')+Breedb+FORMAT(Fint2, '000000')+FORMAT(Agef2, '00000000')
) as VARCHAR(158)) as Riadok
from PM_BLUP_BLDAT
go

CREATE VIEW dbo.View_CP_MasoveSumar420
AS
SELECT        TOP (100) PERCENT k.CISKRAVY, k.CHOVATEL, CAST(k.PORPREBLAK AS float) AS PorLak, DATEDIFF(day, k.DATNAR, GETDATE()) AS vekdni, 
                         tt.mdatotel AS DatPosOtel, DATEDIFF(day, tt.mdatotel, GETDATE()) AS DnipoOtel, ttt.MedziobdS, ttt.PocMedziobd
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.Cp_Meso_TelataPoLaktacii AS t ON k.CISKRAVY = t.Ciskrava AND t.PorLakt = '01' AND t.Medziobd IS NULL LEFT OUTER JOIN
                             (SELECT        Ciskrava, MAX(Datotel) AS mdatotel
                               FROM            dbo.Cp_Meso_TelataPoLaktacii
                               GROUP BY Ciskrava) AS tt ON k.CISKRAVY = tt.Ciskrava LEFT OUTER JOIN
                             (SELECT        Ciskrava, SUM(Medziobd) AS MedziobdS, SUM(CASE WHEN Medziobd > 0 THEN 1 ELSE NULL END) AS PocMedziobd
                               FROM            dbo.Cp_Meso_TelataPoLaktacii AS Cp_Meso_TelataPoLaktacii_1
                               GROUP BY Ciskrava) AS ttt ON k.CISKRAVY = ttt.Ciskrava
WHERE        (k.PRIZNAKKU = 2) AND (k.DOVVYR IS NULL) AND (DATEDIFF(day, tt.mdatotel, GETDATE()) > 420)
go

CREATE   VIEW [dbo].[View_PM_BLUP_TBLPED] AS
select
CAST((Poradove_cislo+Poradove_cislo_matky+Poradove_cislo_otca) as VARCHAR(33)) as Riadok
from PM_BLUP_BLPED
go

CREATE VIEW dbo.View_SP_OvcePat0
AS
SELECT        DnaID, Vysledok, CASE WHEN len(replace(LUC, '/', '')) > 5 AND len(replace(CEHZ, '/', '')) < 6 THEN CEHZ ELSE LUC END AS LUC, CASE WHEN len(replace(LUC, '/', '')) 
                         > 5 AND len(replace(CEHZ, '/', '')) < 6 THEN LUC ELSE CEHZ END AS CEHZ, pohlavie, DatNar, OTLUC, OTCEHZ, MALUC, MACEHZ, plemeno, DatumPrijmu, 
                         vysledokID, vysledoktestu, Maxdatanal
FROM            dbo.SM_OvcePat
go

CREATE VIEW dbo.View_CP_MasoveSumarChovK
AS
SELECT        TOP (100) PERCENT k.CISKRAVY, k.CHOVATEL, CAST(k.PORPREBLAK AS float) AS PorLak, DATEDIFF(day, k.DATNAR, GETDATE()) AS vekdni, DATEDIFF(day, 
                         k.DATNAR, t.Datotel) AS vek1OT, t.Datotel AS Dat1OT, tt.mdatotel AS DatPosOtel, DATEDIFF(day, tt.mdatotel, GETDATE()) AS DnipoOtel, CASE WHEN DATEDIFF(day, 
                         tt.mdatotel, GETDATE()) > 420 THEN 1 ELSE NULL END AS nad420, ttt.MedziobdS, ttt.PocMedziobd, tz.poczn, tm.pocmn, tzm.poczmet, telvaz.MATKA, telvaz.pocnar, 
                         telvaz.vahanar, telvaz.poc120, telvaz.vaha120, telvaz.zp120, telvaz.poc210, telvaz.vaha210, telvaz.zp210, telvaz.poc365, telvaz.vaha365, telvaz.zp365, 
                         telvaz.poc500, telvaz.vaha500, telvaz.zp500
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.Cp_Meso_TelataPoLaktacii AS t ON k.CISKRAVY = t.Ciskrava AND t.PorLakt = '01' AND t.Medziobd IS NULL LEFT OUTER JOIN
                             (SELECT        Ciskrava, MAX(Datotel) AS mdatotel
                               FROM            dbo.Cp_Meso_TelataPoLaktacii
                               GROUP BY Ciskrava) AS tt ON k.CISKRAVY = tt.Ciskrava LEFT OUTER JOIN
                             (SELECT        Ciskrava, SUM(Medziobd) AS MedziobdS, SUM(CASE WHEN Medziobd > 0 THEN 1 ELSE NULL END) AS PocMedziobd
                               FROM            dbo.Cp_Meso_TelataPoLaktacii AS Cp_Meso_TelataPoLaktacii_1
                               GROUP BY Ciskrava) AS ttt ON k.CISKRAVY = ttt.Ciskrava LEFT OUTER JOIN
                             (SELECT        Ciskrava, SUM(1) AS poczn
                               FROM            dbo.Cp_Meso_TelataPoLaktacii AS Cp_Meso_TelataPoLaktacii_4
                               WHERE        (t1Pochl NOT IN (16, 61, 62, 63, 71))
                               GROUP BY Ciskrava) AS tz ON k.CISKRAVY = tz.Ciskrava LEFT OUTER JOIN
                             (SELECT        Ciskrava, SUM(1) AS pocmn
                               FROM            dbo.Cp_Meso_TelataPoLaktacii AS Cp_Meso_TelataPoLaktacii_3
                               WHERE        (t1Pochl IN (16, 61, 62, 63))
                               GROUP BY Ciskrava) AS tm ON k.CISKRAVY = tm.Ciskrava LEFT OUTER JOIN
                             (SELECT        Ciskrava, SUM(1) AS poczmet
                               FROM            dbo.Cp_Meso_TelataPoLaktacii AS Cp_Meso_TelataPoLaktacii_2
                               WHERE        (t1Pochl IN (71))
                               GROUP BY Ciskrava) AS tzm ON k.CISKRAVY = tzm.Ciskrava LEFT OUTER JOIN
                             (SELECT        t.MATKA, SUM(CASE WHEN vahanar > 0 THEN 1 ELSE 0 END) AS pocnar, SUM(tv.vahaNar) AS vahanar, 
                                                         SUM(CASE WHEN vaha120 > 0 THEN 1 ELSE NULL END) AS poc120, SUM(tv.vaha120) AS vaha120, SUM(tv.zpriras120) AS zp120, 
                                                         SUM(CASE WHEN vaha210 > 0 THEN 1 ELSE NULL END) AS poc210, SUM(tv.vaha210) AS vaha210, SUM(tv.zproras210) AS zp210, 
                                                         SUM(CASE WHEN vaha365 > 0 THEN 1 ELSE NULL END) AS poc365, SUM(tv.vaha365) AS vaha365, SUM(tv.zpriras365) AS zp365, 
                                                         SUM(CASE WHEN vaha500 > 0 THEN 1 ELSE NULL END) AS poc500, SUM(tv.vaha500) AS vaha500, SUM(tv.zpriras500) AS zp500
                               FROM            dbo.CP_Meso_TelataVahy AS tv LEFT OUTER JOIN
                                                         dbo.CM_Telata AS t ON tv.cistelata = t.CISTELATA
                               WHERE        (t.MATKA IS NOT NULL)
                               GROUP BY t.MATKA) AS telvaz ON k.CISKRAVY = telvaz.MATKA
WHERE        (k.PRIZNAKKU = 2) AND (k.DOVVYR IS NULL)
go


CREATE VIEW [dbo].[View_CP_TLACRPCHOVY]
AS
SELECT        dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV AS CHOV,
                             (SELECT        TOP (1) DATKONTR
                               FROM            dbo.CM_Kontroly
                               WHERE        (CISCHOVU = dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV)
                               ORDER BY DATKONTR DESC) AS MAXDATKONTR,
                             (SELECT        TOP (1) DENDOBA
                               FROM            dbo.CM_Kontroly AS CM_Kontroly_2
                               WHERE        (CISCHOVU = dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV)
                               ORDER BY DATKONTR DESC) AS DENDCH,
                             (SELECT        TOP (1) INTERVAL
                               FROM            dbo.CM_Kontroly AS CM_Kontroly_1
                               WHERE        (CISCHOVU = dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV)
                               ORDER BY DATKONTR DESC) AS INTERCH, s.MESIAC, s.ROK, s.DEKADA
FROM            dbo.NM_CHOVMAS INNER JOIN
                         dbo.NM_HDDETAIL ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_HDDETAIL.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_HDDETAIL.OKRES AND 
                         dbo.NM_CHOVMAS.PODNIK = dbo.NM_HDDETAIL.PODNIK AND dbo.NM_CHOVMAS.CHOV = dbo.NM_HDDETAIL.CHOV LEFT OUTER JOIN
                         VstupyPLIS.dbo.CP_SPRAC_CHOVY AS s ON 
                         dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV = s.CHOV AND s.IDR =
                             (SELECT        MAX(IDR) AS Expr1
                               FROM            VstupyPLIS.dbo.CP_SPRAC_CHOVY
                               WHERE        (CHOV = dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV))
WHERE        (dbo.NM_CHOVMAS.ZRUS IS NULL) AND (dbo.NM_CHOVMAS.TYPZV = '1') AND (NOT (dbo.NM_HDDETAIL.SPVYKON = '0' OR
                         dbo.NM_HDDETAIL.SPVYKON = '4' OR
                         dbo.NM_HDDETAIL.SPVYKON = '5')) AND (dbo.NM_HDDETAIL.PRIZNAK = '01') AND (dbo.NM_HDDETAIL.TECHUSMD = '00')

go

CREATE VIEW dbo.View_CP_MasoveSumarChov
AS
SELECT        CHOVATEL, COUNT(*) AS POCETKRAV, AVG(vekdni) AS VekDni, AVG(vekdni) / 365.0 AS VekRoky, AVG(vek1OT) AS vek1OT, AVG(vek1OT) / 30.42 AS Mes1OT, 
                         AVG(vek1OT / 30.42) % 30.42 AS Dni1OT, SUM(MedziobdS) / SUM(PocMedziobd) AS Medziobd, COUNT(nad420) AS Nad420, AVG(PorLak) AS PorLak, SUM(poczn) 
                         AS PocetZN, SUM(pocmn) AS PocetMN, SUM(poczmet) AS PocetZM, SUM(vahanar) / SUM(pocnar) AS Svahanar, SUM(zp120) 
                         / SUM(CASE WHEN poc120 > 0 THEN poc120 ELSE 0 END) AS zp120, SUM(zp210) / SUM(CASE WHEN poc210 > 0 THEN poc210 ELSE 0 END) AS zp210, SUM(zp365) 
                         / SUM(CASE WHEN poc365 > 0 THEN poc365 ELSE 0 END) AS zp365, SUM(zp500) / SUM(CASE WHEN poc500 > 0 THEN poc500 ELSE 0 END) AS zp500
FROM            dbo.View_CP_MasoveSumarChovK
GROUP BY CHOVATEL
go

CREATE VIEW dbo.View_CP_TLACRP_ES
AS
SELECT        k.CISKRAVY, LEFT(k.CHOVATEL, 3) AS KROKR, SUBSTRING(k.CHOVATEL, 4, 3) AS PODNIK, RIGHT(k.CHOVATEL, 3) AS CHOVMAS, k.SKUPINA, mk.MAXDATKONTR AS DATPOSK, CASE WHEN CONVERT(varchar(4), 
                         DATEPART(YEAR, mk.maxdatkontr)) + '-' + RIGHT('00' + CONVERT(varchar(2), DATEPART(month, mk.maxdatkontr)), 2) + '-15' > mk.maxdatkontr THEN RIGHT('00' + CONVERT(varchar(2), DATEPART(month, 
                         mk.maxdatkontr)), 2) ELSE RIGHT('00' + CONVERT(varchar(2), DATEPART(month, dateadd(month, 1, mk.maxdatkontr))), 2) END AS MESSP, CASE WHEN DATEPART(day, mk.maxdatkontr) BETWEEN 0 AND 
                         14 THEN '1' ELSE '9' END AS DEKSP, RIGHT('00' + CONVERT(varchar(2), DATEPART(month, DATEADD(day, 26, mk.MAXDATKONTR))), 2) AS MESKONN,
                             (SELECT        TOP (1) DATKONTR
                               FROM            (SELECT        TOP (2) DATKONTR
                                                         FROM            (SELECT        DATKONTR
                                                                                   FROM            dbo.CM_Kontroly
                                                                                   WHERE        (CISKRAVY = k.ciskravy) AND (PREPOCET = 1)
                                                                                   UNION ALL
                                                                                   SELECT        NULL AS Expr1
                                                                                   UNION ALL
                                                                                   SELECT        NULL AS Expr1) AS s
                                                         ORDER BY DATKONTR DESC) AS x
                               ORDER BY DATKONTR) AS DATPREPOC1,
                             (SELECT        TOP (1) DATKONTR
                               FROM            dbo.CM_Kontroly AS CM_Kontroly_1
                               WHERE        (CISKRAVY = k.CISKRAVY) AND (PREPOCET = 1)
                               ORDER BY DATKONTR DESC) AS DATPREPOC2, RIGHT(CONVERT(varchar(4), DATEPART(year, DATEADD(day, 26, mk.MAXDATKONTR))), 2) AS ROKKON, mk.DENDCH, mk.INTERCH, DATEADD(day, 26, 
                         mk.MAXDATKONTR) AS DATINTD, DATEADD(day, 34, mk.MAXDATKONTR) AS DATINTH, n.ZMENA, CASE WHEN n.ZNAK = '4' THEN '$' ELSE UPPER(n.ZNAK) END AS ZNAK, ko.MLIEKPR AS DOJIVOST, 
                         n.LAKTDNI AS LDNI, (CASE WHEN
                             (SELECT        TOP 1 IVYSE
                               FROM            CM_Insvyk
                               WHERE        IPLCA = k.CISKRAVY AND IDAIN >
                                                             (SELECT        DATOTEL
                                                               FROM            CM_Naplak
                                                               WHERE        CISKRAVY = IPLCA)
                               ORDER BY IDAIN DESC) IN ('7', '8', '9') THEN '+' END) AS ZNBREZ, k.FARBA,
                             (SELECT        TOP (1) IDAIN
                               FROM            dbo.CM_Insvyk
                               WHERE        (IPLCA = k.CISKRAVY) AND (IDAIN >
                                                             (SELECT        DATOTEL
                                                               FROM            dbo.CM_Naplak
                                                               WHERE        (CISKRAVY = dbo.CM_Insvyk.IPLCA)))
                               ORDER BY IDAIN DESC) AS DATINSP, (CASE WHEN
                             (SELECT        TOP 1 IVYSE
                               FROM            CM_Insvyk
                               WHERE        IPLCA = k.CISKRAVY AND IDAIN >
                                                             (SELECT        DATOTEL
                                                               FROM            CM_Naplak
                                                               WHERE        CISKRAVY = IPLCA)
                               ORDER BY IDAIN DESC) IN ('7', '8', '9') THEN dateadd(day, 285,
                             (SELECT        TOP 1 IDAIN
                               FROM            CM_Insvyk
                               WHERE        IPLCA = k.CISKRAVY
                               ORDER BY IDAIN DESC)) END) AS DATOTOC, mk.MESIAC, mk.ROK, mk.DEKADA, k.RESPONDER
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CM_Naplak AS n ON k.CISKRAVY = n.CISKRAVY LEFT OUTER JOIN
                         dbo.CM_Kontroly AS ko ON k.CISKRAVY = ko.CISKRAVY AND ko.DATKONTR =
                             (SELECT        MAX(DATKONTR) AS Expr1
                               FROM            dbo.CM_Kontroly AS ko2
                               WHERE        (CISCHOVU = k.CHOVATEL)) LEFT OUTER JOIN
                         dbo.View_CP_TLACRPCHOVY AS mk ON k.CHOVATEL = mk.CHOV
WHERE        (k.PRIZNAKKU = 1) AND (CONVERT(varchar(4), DATEPART(year, DATEADD(month, - 2, GETDATE()))) + '-' + RIGHT('00' + CONVERT(varchar(2), DATEPART(MONTH, DATEADD(month, - 2, GETDATE()))), 2) 
                         + '-01' <= k.DATVYR) OR
                         (k.PRIZNAKKU = 1) AND (k.DOVVYR IS NULL)
go


CREATE VIEW [dbo].[View_SP_OvcePat1]
AS
SELECT     DnaID, REPLICATE(' ', 7 - LEN(RTRIM(CAST(DnaID AS varchar(7))))) + RTRIM(CAST(DnaID AS varchar(7))) AS DNAID2, LUC, CASE WHEN LUC IS NOT NULL 
                      THEN replicate(' ', 5 - len(rtrim(replace(LUC, '/', '')))) + rtrim(replace(LUC, '/', '')) END AS LU, CEHZ, CASE WHEN cehz IS NULL THEN NULL WHEN substring(cehz, 1, 1) 
                      < '0' OR
                      substring(cehz, 1, 1) > '9' THEN substring(cehz, 1, 2) ELSE 'SK' END AS ZvStat, CASE WHEN cehz IS NULL THEN NULL WHEN substring(cehz, 1, 1) < '0' OR
                      substring(cehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(cehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                      substring(replace(cehz, '/', ''), 1, 12)), 12), ' ', '0') END AS JCCEHZ, pohlavie, DatNar, OTLUC, CASE WHEN OtLUC IS NOT NULL THEN replicate(' ', 
                      5 - len(rtrim(replace(OtLUC, '/', '')))) + rtrim(replace(OtLUC, '/', '')) END AS OtLU, OTCEHZ, CASE WHEN otcehz IS NULL THEN NULL WHEN substring(otcehz, 1, 1) 
                      < '0' OR
                      substring(otcehz, 1, 1) > '9' THEN substring(otcehz, 1, 2) ELSE 'SK' END AS otZvStat, CASE WHEN otcehz IS NULL THEN NULL WHEN substring(otcehz, 1, 1) < '0' OR
                      substring(otcehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(otcehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                      substring(replace(otcehz, '/', ''), 1, 12)), 12), ' ', '0') END AS otJCCEHZ, MALUC, CASE WHEN MaLUC IS NOT NULL THEN replicate(' ', 5 - len(rtrim(replace(MaLUC, '/', 
                      '')))) + rtrim(replace(MaLUC, '/', '')) END AS MaLU, MACEHZ, CASE WHEN macehz IS NULL THEN NULL WHEN substring(macehz, 1, 1) < '0' OR
                      substring(macehz, 1, 1) > '9' THEN substring(macehz, 1, 2) ELSE 'SK' END AS maZvStat, CASE WHEN macehz IS NULL THEN NULL WHEN substring(macehz, 1, 1) 
                      < '0' OR
                      substring(macehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(macehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                      substring(replace(macehz, '/', ''), 1, 12)), 12), ' ', '0') END AS MaJCCEHZ, DatumPrijmu, vysledokID, vysledoktestu, Maxdatanal AS DatAnal
FROM         dbo.SM_OvcePat
WHERE     (LUC IS NOT NULL) AND (vysledokID IS NOT NULL) OR
                      (vysledokID IS NOT NULL) AND (CEHZ IS NOT NULL)

go

CREATE VIEW dbo.View_CP_PriemerHovyPodlaUzitkovostOtcoch
AS
SELECT        AVG(primMlekoL1) AS mlieko1, AVG(priTukL1) AS tuk1, AVG(priTukL1) * 100 / AVG(primMlekoL1) AS pTuk1, AVG(priBelkL1) AS bielk1, AVG(priBelkL1) 
                         * 100 / AVG(primMlekoL1) AS pBielko1, AVG(priBelaTukL1) AS bat1, AVG(priBelaTukL1) * 100 / AVG(primMlekoL1) AS pBaT1, AVG(primMlekoL2) AS mlieko2, 
                         AVG(priTukL2) AS tuk2, AVG(priTukL2) * 100 / AVG(primMlekoL2) AS pTuk2, AVG(priBelkL2) AS bielk2, AVG(priBelkL2) * 100 / AVG(primMlekoL2) AS pBielko2, 
                         AVG(priBelaTukL2) AS baT2, AVG(priBelaTukL2) * 100 / AVG(primMlekoL2) AS pBaT2, AVG(priMlekoN) AS mliekoN, AVG(priTukN) AS tukN, AVG(priTukN) 
                         * 100 / AVG(priMlekoN) AS pTukN, AVG(priBelkN) AS bielkN, AVG(priBelkN) * 100 / AVG(priMlekoN) AS pBielkoN, AVG(priBelkaTukN) AS batN, AVG(priBelkaTukN) 
                         * 100 / AVG(priMlekoN) AS pBaN, CHOVATEL
FROM            dbo.CP_UzitkovostKravpoOtcoch
GROUP BY CHOVATEL
go



CREATE VIEW [dbo].[View_CP_LaktaciePreZostavy]
AS
SELECT        l.CISKRAVY, l.PORLAK, l.DATOTEL, l.CHOVATEL, l.ZMENA, l.DATUKONL, l.DATUKNORL, CASE WHEN l.PORLAK = 1 THEN DATEDIFF(day, k.DATNAR, l.DATOTEL) 
                         ELSE l.MEDZIOBD END AS MEDZIOBD, l.LAKTDNI, l.LAKDNIN,l.MLIEKCEL ,l.MLIEKNOR, l.TUKNOR, l.BIELKNOR, l.LAKTOZAN, l.INDPER, 
                         CASE WHEN k.POCVSETLAK = l.PORLAK THEN k.DOVVYR END AS DOVVYR, CASE WHEN k.POCVSETLAK = l.PORLAK THEN k.DATVYR END AS DATVYR,
                             (SELECT        TYPS
                               FROM            dbo.CC_PlemTyp
                               WHERE        (TYPC = k.TYPPLEM)) AS PLEM,
							   substring(l.CHOVATEL, 1,1) as kraj, 
							   substring(l.CHOVATEL, 1,3) as okres, 
							   substring(l.CHOVATEL, 1,6) as podnik
FROM            dbo.CM_Laktacie AS l LEFT OUTER JOIN
                         dbo.CM_Krava AS k ON l.CISKRAVY = k.CISKRAVY


go

CREATE VIEW dbo.View_SP_PocPot
AS
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RocNar, CONVERT(int, SUBSTRING(RocNar, 1, 4)) + 1 AS roknar, SUM(1) AS pocet, SUM(CASE WHEN tried IS NULL 
                      THEN 0 ELSE 1 END) AS pocbon, SUM(CASE WHEN pohl = '3' THEN 1 ELSE 0 END) AS pocjar, SUM(CASE WHEN pohl = '3' AND tried IS NOT NULL 
                      THEN 1 ELSE 0 END) AS pbonjar, SUM(CASE WHEN pohl = '4' THEN 1 ELSE 0 END) AS pocmbar, SUM(CASE WHEN pohl = '4' AND tried IS NOT NULL 
                      THEN 1 ELSE 0 END) AS pbonmbar
FROM         dbo.SM_POTOMOK
GROUP BY KROKR, PODNIK, STADO, RocNar
ORDER BY KROKR, PODNIK, STADO, RocNar
go

CREATE VIEW dbo.View_CP_Rodokmen_byk_mlieko
AS
SELECT        b.IDBYKA, b.IDOT, b.IDMA, b.BYK, b.PK, b.lin, b.SKUPINA, b.DATNAR, b.FARBA, b.NAZF, b.plemena, b.plemTyp, b.MENO, 
                         b.MESSPRAC + '/' + b.ROKSPRAC AS Spracovano, b.MLIEKO, b.SPI, b.REL, b.TUK, b.TUKP, b.BIELK, b.BIELKP, b.stada, b.cery, b.MATKA, m.BB_NAME AS M_name, 
                         m.PK AS M_PK, m.PORLAKMAX AS M_MaxLakt, m.POCNORLAK AS M_pocNlakt, m.POCVSETLAK AS M_pocVsLakt, m.DATNAR AS M_datnar, m.TRUZIT, 
                         m.CHOVATEL AS M_chovatel, ISNULL(m.PL1 + '-' + CONVERT(varchar, m.KR1), '') + '  ' + ISNULL(ISNULL(m.PL2, '') + '-' + CONVERT(varchar, m.KR2), '') 
                         + '  ' + ISNULL(m.PL3 + '-' + CONVERT(varchar, m.KR3), '') + '  ' + ISNULL(m.PL4 + '-' + CONVERT(varchar, m.KR4), '') + '  ' + ISNULL(m.PL5 + '-' + CONVERT(varchar, 
                         100 - (m.KR1 + m.KR2 + m.KR3 + m.KR4)), '') AS M_plemena, m.FARBA AS M_farbaKOD, pl.NAZTYP AS M_plrmTyp, pl.UZITKOVYTYP AS M_UzitkovyTyp, 
                         f.NAZF AS M_farbaText, m.MLIEKOMAX AS M_mliekoMax, m.MLIEKOPR AS M_mliekoPr, m.TUKMAX AS M_tukMax, m.TUKPRKG AS M_tukPr, NULLIF (m.TUKMAX, 0) 
                         * 100 / m.MLIEKOMAX AS M_TukMaxP, m.TUKPRPER AS M_tukPrP, m.BIELMAX AS M_bielkMax, m.BIELPRKG AS M_BielkPr, NULLIF (m.BIELMAX, 0) 
                         * 100 / m.MLIEKOMAX AS M_bielkP, m.BIELPRPER AS M_bielkPrP, m.LAKTOZAMAX AS M_laktMax, NULLIF (m.LAKTOZAMAX, 0) 
                         * 100 / m.MLIEKOMAX AS M_LaktMaxP, mho.SPI AS M_SPI, mho.REL * 100 AS M_REl, mho.M305 AS M_M305, mho.RPHM AS M_RPHM, mho.T305 AS M_T305, 
                         mho.RPHT AS M_RPHT, mho.B305 AS M_B305, mho.RPHB AS M_RPHB, b.OTUSCIS AS otec, o.SKUPINA AS O_Skupina, o.plemTyp AS O_plemenTyp, o.PK AS O_PK, 
                         o.DATNAR AS O_datnar, o.FARBA AS O_farbaKod, o.NAZF AS O_farbaText, o.plemena AS O_plemena, o.lin AS O_lin, o.MENO AS O_meno, o.SPI AS O_SPI, 
                         o.REL AS O_REL, o.MLIEKO AS O_mlieko, o.TUK AS O_tuk, o.TUKP AS O_Tukp, o.BIELK AS O_bielk, o.BIELKP AS O_bielkp, 
                         o.MESSPRAC + '/' + o.ROKSPRAC AS O_Spracovano, o.stada AS O_stada, o.cery AS O_cery, b.KRVROZ, b.DATKRVROZ, b.BB_COUNTRYCODE, b.UZITKOVYTYP, 
                         b.MENBYK, b.PLEMENO, b.PHHMOT120, b.PHHMOT210, b.PHHMOT365, b.SPOLAHL, b.SC305, b.RPHSC, b.RELSB, b.ROKSPRAC, b.MESSPRAC, 
                         m.ZNMATBYK AS M_ZNMATBYK, m.LAKTPRKG AS M_LAKTPKG, m.LAKTPRPER AS M_LAKTPPERC, m.TYPPLEM AS M_TYPPLRM, 
                         m.BB_COUNTRYCODE AS M_COUNTRYCODE, o.BB_COUNTRYCODE AS O_COUNTRYCODE, o.ROKSPRAC AS O_ROKSPRAC, o.MESSPRAC AS O_MESSPRAC, 
                         o.UZITKOVYTYP AS O_UZTYP, o.PLEMENO AS O_PLEMENO, o.PHHMOT120 AS O_PHHMOT120, o.PHHMOT210 AS O_PHHMOT210, 
                         o.PHHMOT365 AS O_PHHMOT365, o.SPOLAHL AS O_SPOLAHL, o.SC305 AS O_SC305, o.RPHSC AS O_RPHSC, o.RELSB AS O_RELSB, 
                         mho.ROKSPRAC AS M_ROKSPRAC, mho.MESSPRAC AS M_MESSPRAC, MV.vahaNar AS M_VAHANAR, MV.vaha120 AS M_VAHA120, MV.priras120 AS M_PRIRAS120, 
                         MV.zpriras120 AS M_ZPRIRAS120, MV.vaha210 AS M_VAHA210, MV.priras210 AS M_PRIRAS210, MV.zproras210 AS M_ZPRIRAS210, MV.vaha365 AS M_VAHA365, 
                         MV.priras365 AS M_PRIRAS365, MV.zpriras365 AS M_ZPRIRAS365, MV.vaha500 AS M_VAHA500, MV.priras500 AS M_PRIRAS500, 
                         MV.zpriras500 AS M_ZPRIRAS500
FROM            dbo.View_CP_poslednoHodnotenieBycy AS b LEFT OUTER JOIN
                         dbo.CM_Krava AS m ON b.IDMA = m.IDKRAVY LEFT OUTER JOIN
                         dbo.CM_KravyTDM AS mho ON mho.CISLO = m.CISKRAVY LEFT OUTER JOIN
                         dbo.CC_Farby AS f ON m.FARBA = f.KODF LEFT OUTER JOIN
                         dbo.View_CP_poslednoHodnotenieBycy AS o ON b.IDOT = o.IDBYKA LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS pl ON m.TYPPLEM = pl.TYPC LEFT OUTER JOIN
                         dbo.CP_Meso_TelataVahy AS MV ON MV.cistelata = m.CISKRAVY
go

CREATE VIEW dbo.View_SP_PoslUzLak
AS
SELECT        TOP (100) PERCENT KROKR, PODNIK, STADO, LUC, PUC, BAHCIS, ZVSTAT, JCCEHZ, DATOBAH, DATODST, PORLAK, ROKEV, MNL, TNL, BNL, LNL, PTNL, PBNL, 
                         PLNL, MNL3L, TNL3L, BNL3L, LNL3L, KMNL3L, KTNL3L, KBNL3L, KLNL3L, HVPORML, HVPORTL, HVPORBL, HVPORLL
FROM            dbo.SM_MlRoky AS m1
WHERE        (ROKEV =
                             (SELECT        MAX(ROKEV) AS Expr1
                               FROM            dbo.SM_MlRoky AS m2
                               WHERE        (BAHCIS = m1.BAHCIS) AND (MNL3L > 0) AND (BAHCIS <> '00000000')))
go


CREATE VIEW [dbo].[View_SC_Plemena]
AS
SELECT     dbo.SC_Plemena.KODPL2, dbo.SC_Plemena.NAZOVD, dbo.SC_Plemena.UZITZAM, dbo.SC_UzitZamPlem.Popis
FROM         dbo.SC_Plemena INNER JOIN
                      dbo.SC_UzitZamPlem ON dbo.SC_Plemena.UZITZAM = dbo.SC_UzitZamPlem.Kod

go

CREATE VIEW dbo.View_GP_KozyPat0
AS
SELECT        DnaID, Vysledok, CASE WHEN len(replace(LUC, '/', '')) > 5 AND len(replace(CEHZ, '/', '')) < 6 THEN CEHZ ELSE LUC END AS LUC, CASE WHEN len(replace(LUC, '/', '')) 
                         > 5 AND len(replace(CEHZ, '/', '')) < 6 THEN LUC ELSE CEHZ END AS CEHZ, pohlavie, DatNar, OTLUC, OTCEHZ, MALUC, MACEHZ, plemeno, DatumPrijmu, 
                         vysledokID, vysledoktestu, Maxdatanal
FROM            dbo.GM_KozyPat
go

CREATE VIEW dbo.View_NM_ML_chovy
AS
SELECT        dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV AS chov
FROM            dbo.NM_CHOVMAS INNER JOIN
                         dbo.NM_HDDETAIL ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_HDDETAIL.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_HDDETAIL.OKRES AND dbo.NM_CHOVMAS.PODNIK = dbo.NM_HDDETAIL.PODNIK AND 
                         dbo.NM_CHOVMAS.CHOV = dbo.NM_HDDETAIL.CHOV
WHERE        (dbo.NM_CHOVMAS.ZRUS IS NULL) AND (dbo.NM_CHOVMAS.TYPZV = '1') AND (NOT (dbo.NM_HDDETAIL.SPVYKON = '0' OR
                         dbo.NM_HDDETAIL.SPVYKON = '4' OR
                         dbo.NM_HDDETAIL.SPVYKON = '5')) AND (dbo.NM_HDDETAIL.PRIZNAK = '01') AND (dbo.NM_HDDETAIL.TECHUSMD = '00')
go

CREATE VIEW dbo.PW_FREEkanceKU
AS
SELECT     dbo.PM_Kance.Linia_kanca, dbo.PC_Tablin.Nazov_linie, dbo.PM_Kance.Register_kanca, dbo.PM_Kance.Datum_zaradeniaKU, 
                      dbo.PM_Kance.Plemeno_KU, dbo.PM_Kance.Datum_vyradeniaKU, dbo.PM_Kance.Chovatel_kraj, dbo.PM_Kance.Chovatel_okres, 
                      dbo.PM_Kance.Chovatel_podnik, dbo.PM_Kance.Chovatel_chov, dbo.NM_PODNIK.NAZOVSKR
FROM         dbo.PM_Kance LEFT OUTER JOIN
                      dbo.NM_PODNIK ON dbo.PM_Kance.Chovatel_kraj = dbo.NM_PODNIK.KRAJ AND dbo.PM_Kance.Chovatel_okres = dbo.NM_PODNIK.OKRES AND 
                      dbo.PM_Kance.Chovatel_podnik = dbo.NM_PODNIK.PODNIK LEFT OUTER JOIN
                      dbo.PC_Tablin ON dbo.PM_Kance.Linia_kanca = dbo.PC_Tablin.Linia_kanca
WHERE     (dbo.PM_Kance.Datum_vyradeniaKU IS NULL)
go


CREATE VIEW [dbo].[View_SP_PremBah2]
AS
SELECT     dbo.SM_PremBah.KROKR, dbo.SM_PremBah.PODNIK, dbo.SM_PremBah.STADO, dbo.SM_PremBah.LUC, dbo.SM_PremBah.PUC, dbo.SM_PremBah.BAHCIS, 
                      dbo.SM_PremBah.ROKEV1, dbo.SM_PremBah.ROKEV2, dbo.SM_PremBah.BKROKR, dbo.SM_PremBah.BPODNIK, dbo.SM_PremBah.BSTADO, 
                      dbo.SM_PremBah.BLUC, dbo.SM_PremBah.BPUC, dbo.SM_PremBah.BARCIS, dbo.SM_PremBah.DATPRIP, dbo.SM_PremBah.DATOBAH, 
                      CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') THEN 1 ELSE 0 END AS Narod, 
                      CASE WHEN dbo.SM_PremBah.POHL1 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3
                       = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' THEN 1 ELSE 0 END AS NarBar,
                       CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS Odchov,
                       CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS OdchBar, 
                      CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                      dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                      dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                      dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                      dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                      dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END AS NaChov, CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                      dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                      dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                      dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                      dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                      dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                      dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                      THEN 1 ELSE 0 END AS NaChovBar, dbo.SM_BARAN.LUC AS OtLUC, dbo.SM_BARAN.PUC AS OTPUC, dbo.SM_BARAN.BARCIS AS BarCis2, 
                      dbo.SM_BARAN.ZVSTAT AS OTZVSTAT, dbo.SM_BARAN.JCCEHZ AS OTJCCEHZ
FROM         dbo.SM_PremBah LEFT OUTER JOIN
                      dbo.SM_BARAN ON dbo.SM_PremBah.BARCIS = dbo.SM_BARAN.BARCIS

go

CREATE VIEW dbo.View_GP_KozyPat1
AS
SELECT        DnaID, REPLICATE(' ', 7 - LEN(RTRIM(CAST(DnaID AS varchar(7))))) + RTRIM(CAST(DnaID AS varchar(7))) AS DNAID2, LUC, CASE WHEN LUC IS NOT NULL 
                         THEN replicate(' ', 5 - len(rtrim(replace(LUC, '/', '')))) + rtrim(replace(LUC, '/', '')) END AS LU, CEHZ, CASE WHEN cehz IS NULL THEN NULL WHEN substring(cehz, 1, 1) 
                         < '0' OR
                         substring(cehz, 1, 1) > '9' THEN substring(cehz, 1, 2) ELSE 'SK' END AS ZvStat, CASE WHEN cehz IS NULL THEN NULL WHEN substring(cehz, 1, 1) < '0' OR
                         substring(cehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(cehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                         substring(replace(cehz, '/', ''), 1, 12)), 12), ' ', '0') END AS JCCEHZ, pohlavie, DatNar, OTLUC, CASE WHEN OtLUC IS NOT NULL THEN replicate(' ', 
                         5 - len(rtrim(replace(OtLUC, '/', '')))) + rtrim(replace(OtLUC, '/', '')) END AS OtLU, OTCEHZ, CASE WHEN otcehz IS NULL THEN NULL WHEN substring(otcehz, 1, 1) 
                         < '0' OR
                         substring(otcehz, 1, 1) > '9' THEN substring(otcehz, 1, 2) ELSE 'SK' END AS otZvStat, CASE WHEN otcehz IS NULL THEN NULL WHEN substring(otcehz, 1, 1) < '0' OR
                         substring(otcehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(otcehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                         substring(replace(otcehz, '/', ''), 1, 12)), 12), ' ', '0') END AS otJCCEHZ, MALUC, CASE WHEN MaLUC IS NOT NULL THEN replicate(' ', 5 - len(rtrim(replace(MaLUC, '/', 
                         '')))) + rtrim(replace(MaLUC, '/', '')) END AS MaLU, MACEHZ, CASE WHEN macehz IS NULL THEN NULL WHEN substring(macehz, 1, 1) < '0' OR
                         substring(macehz, 1, 1) > '9' THEN substring(macehz, 1, 2) ELSE 'SK' END AS maZvStat, CASE WHEN macehz IS NULL THEN NULL WHEN substring(macehz, 1, 1) 
                         < '0' OR
                         substring(macehz, 1, 1) > '9' THEN REPLACE(STR(CONVERT(float, substring(replace(macehz, '/', ''), 3, 12)), 12), ' ', '0') ELSE REPLACE(STR(CONVERT(float, 
                         substring(replace(macehz, '/', ''), 1, 12)), 12), ' ', '0') END AS MaJCCEHZ, DatumPrijmu, vysledokID, vysledoktestu, Maxdatanal AS DatAnal
FROM            dbo.GM_KozyPat
WHERE        (LUC IS NOT NULL) AND (vysledokID IS NOT NULL) OR
                         (vysledokID IS NOT NULL) AND (CEHZ IS NOT NULL)
go

CREATE VIEW dbo.View_NM_MP_chovy
AS
SELECT        dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV AS chov
FROM            dbo.NM_CHOVMAS INNER JOIN
                         dbo.NM_HDDETAIL ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_HDDETAIL.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_HDDETAIL.OKRES AND dbo.NM_CHOVMAS.PODNIK = dbo.NM_HDDETAIL.PODNIK AND 
                         dbo.NM_CHOVMAS.CHOV = dbo.NM_HDDETAIL.CHOV
WHERE        (dbo.NM_CHOVMAS.ZRUS IS NULL) AND (dbo.NM_CHOVMAS.TYPZV = '1') AND (dbo.NM_HDDETAIL.SPVYKON = '4' OR
                         dbo.NM_HDDETAIL.SPVYKON = '5') AND (dbo.NM_HDDETAIL.PRIZNAK = '01')
go

CREATE VIEW dbo.View_CP_Telata_Vazenia
AS
SELECT     j.CISTELATA, j.DATNAR, j.CHOVATEL, j.POHLAVIE, j.vek, j.PlemenoJalovic, j.PL1, j.OUC, j.otec, j.plemenaTelata, j.plemenaOtec, j.MENO, j.nazlin, j.OtecPlemeno, 
                      j.MATKA, j.PRIZNAKKU, j.OTECLIN, j.OTECREG, dbo.View_CP_PoslVaz2.MDV, dbo.View_CP_PoslVaz2.HMOT, dbo.View_CP_PoslVaz2.DNIVAZ, 
                      dbo.View_CP_PoslVaz2.RASTPAS, dbo.View_CP_PoslVaz2.CT
FROM         dbo.View_CP_Mlieko_zoznamJalovic AS j LEFT OUTER JOIN
                      dbo.View_CP_PoslVaz2 ON j.CISTELATA = dbo.View_CP_PoslVaz2.CT
go

CREATE VIEW dbo.View_CP_Pohlavie_delene
AS
SELECT     KOD, POPIS, SKRATKA, CASE WHEN kod IN ('01', '11', '31', '41', '51', '81', '91') THEN 'Býček' WHEN kod IN ('02', '22', '32', '42', '52', '82', '92') 
                      THEN 'Jalovička' WHEN kod IN ('16', '26') THEN 'Uhynulo do 48 hodín' WHEN kod IN ('61', '62', '63') THEN 'Mŕtvonarodené' WHEN kod IN ('71') 
                      THEN 'Zmetanie po 7 mesiacoch teľnosti' ELSE 'Iné označenie' END AS CoJe, CASE WHEN kod IN ('01', '11', '31', '41', '51', '81', '91') THEN 0 WHEN kod IN ('02', '22', 
                      '32', '42', '52', '82', '92') THEN 1 WHEN kod IN ('16', '26') THEN 10 WHEN kod IN ('61', '62', '63') THEN 11 WHEN kod IN ('71') THEN 12 ELSE 5 END AS KodCoJe, 
                      CASE WHEN kod IN ('11', '31', '22', '32', '41', '42') THEN 'Dvojčatá' WHEN kod IN ('51', '52') THEN 'Trojčatá' WHEN kod IN ('81', '82') THEN 'ET' WHEN kod IN ('16', 
                      '26') THEN 'živonar. úhyn do 48 hod.' WHEN kod IN ('61', '62', '63') THEN 'Mŕtvonarodené' WHEN kod IN ('71') THEN 'Zmetanie' WHEN kod IN ('01') THEN NULL 
                      WHEN kod IN ('02') THEN NULL ELSE 'Iné označenie' END AS PodrobneCoJe, CASE WHEN kod IN ('11', '31', '22', '32', '41', '42') THEN 52 WHEN kod IN ('51', '52') 
                      THEN 53 WHEN kod IN ('81', '82') THEN 54 WHEN kod IN ('16', '26') THEN 55 WHEN kod IN ('61', '62', '63') THEN 56 WHEN kod IN ('71') THEN 10 WHEN kod IN ('01') 
                      THEN 50 WHEN kod IN ('02') THEN 51 ELSE 12 END AS kodPodrobneCoJe
FROM         dbo.CC_Pohlavie
go

CREATE VIEW dbo.View_GP_KozyPat2
AS
SELECT        SUBSTRING(p.DNAID2, 1, 5) + '/' + SUBSTRING(p.DNAID2, 6, 2) AS DNAID3, p.LUC, p.LU, p.CEHZ, p.ZvStat, p.JCCEHZ, p.pohlavie, p.DatNar, p.OTLUC, p.OtLU, 
                         p.OTCEHZ, p.otZvStat, p.otJCCEHZ, p.MALUC, p.MaLU, p.MACEHZ, p.maZvStat, p.MaJCCEHZ, p.DatumPrijmu, p.vysledokID, p.vysledoktestu, p.DatAnal, 
                         CASE WHEN b.krokr IS NOT NULL THEN b.KROKR WHEN h.krokr IS NOT NULL THEN h.KROKR WHEN t .krokr IS NOT NULL THEN t .KROKR ELSE NULL 
                         END AS KrOkr, CASE WHEN b.krokr IS NOT NULL THEN b.Podnik WHEN h.krokr IS NOT NULL THEN h.Podnik WHEN t .krokr IS NOT NULL THEN t .Podnik ELSE NULL 
                         END AS Podnik, CASE WHEN b.krokr IS NOT NULL THEN b.Stado WHEN h.krokr IS NOT NULL THEN h.Stado WHEN t .krokr IS NOT NULL THEN t .stado ELSE NULL 
                         END AS Stado, CASE WHEN b.krokr IS NOT NULL THEN b.LUC WHEN h.krokr IS NOT NULL THEN h.LUC WHEN t .krokr IS NOT NULL THEN t .LUC ELSE NULL 
                         END AS LUCj, CASE WHEN b.krokr IS NOT NULL THEN b.JCCEHZ WHEN h.krokr IS NOT NULL THEN h.JCCEHZ WHEN t .krokr IS NOT NULL 
                         THEN t .JCCEHZ ELSE NULL END AS JCCEHZj, CASE WHEN b.krokr IS NOT NULL THEN b.ZvStat WHEN h.krokr IS NOT NULL 
                         THEN h.ZvStat WHEN t .krokr IS NOT NULL THEN t .ZvStat ELSE NULL END AS ZvStatj, CASE WHEN b.krokr IS NOT NULL THEN b.OtLUC WHEN h.krokr IS NOT NULL 
                         THEN h.OtLUC WHEN t .krokr IS NOT NULL THEN t .OtLUC ELSE NULL END AS OtLUCj, CASE WHEN b.krokr IS NOT NULL 
                         THEN b.OtJCCEHZ WHEN h.krokr IS NOT NULL THEN h.OtJCCEHZ WHEN t .krokr IS NOT NULL THEN t .OtJCCEHZ ELSE NULL END AS OtJCCEHZj, 
                         CASE WHEN b.krokr IS NOT NULL THEN b.OtZvStat WHEN h.krokr IS NOT NULL THEN h.OtZvStat WHEN t .krokr IS NOT NULL THEN t .OtZvStat ELSE NULL 
                         END AS OtZvStatj, CASE WHEN b.krokr IS NOT NULL THEN b.MaLUC WHEN h.krokr IS NOT NULL THEN h.MaLUC WHEN t .krokr IS NOT NULL 
                         THEN t .MaLUC ELSE NULL END AS MaLUCj, CASE WHEN b.krokr IS NOT NULL THEN b.MaJCCEHZ WHEN h.krokr IS NOT NULL 
                         THEN h.MaJCCEHZ WHEN t .krokr IS NOT NULL THEN t .MaJCCEHZ ELSE NULL END AS MaJCCEHZj, CASE WHEN b.krokr IS NOT NULL 
                         THEN b.MaZvStat WHEN h.krokr IS NOT NULL THEN h.MaZvStat WHEN t .krokr IS NOT NULL THEN t .MaZvStat ELSE NULL END AS MaZvStatj, 
                         CASE WHEN b.krokr IS NOT NULL THEN '2' WHEN h.krokr IS NOT NULL THEN '1' WHEN t .krokr IS NOT NULL THEN t .pohl ELSE NULL END AS pohlj, 
                         CASE WHEN b.krokr IS NOT NULL THEN b.plem WHEN h.krokr IS NOT NULL THEN h.plem WHEN t .krokr IS NOT NULL THEN t .plem ELSE NULL END AS plemj
FROM            dbo.View_GP_KozyPat1 AS p LEFT OUTER JOIN
                         dbo.GM_CAP AS b ON p.pohlavie = 1 AND (p.LUC = b.LUC OR
                         p.LUC IS NULL) AND p.JCCEHZ = b.JCCEHZ LEFT OUTER JOIN
                         dbo.GM_KOZA AS h ON p.pohlavie = 2 AND (REPLACE(p.LUC, ' ', '') = REPLACE(h.LUC, ' ', '') OR
                         p.LUC IS NULL) AND p.JCCEHZ = h.JCCEHZ LEFT OUTER JOIN
                         dbo.GM_Potomok AS t ON (p.pohlavie = 1 AND t.POHL = '4' OR
                         p.pohlavie = 2 AND t.POHL = '3') AND (REPLACE(p.LUC, ' ', '') = REPLACE(t.LUC, ' ', '') OR
                         p.LUC IS NULL) AND p.JCCEHZ = t.JCCEHZ
go

CREATE VIEW dbo.View_GP_KozyPat3
AS
SELECT        p.DNAID3, CASE WHEN p.KrOkr IS NOT NULL THEN p.LUCJ ELSE p.LU END AS LUC, CASE WHEN p.KrOkr IS NOT NULL THEN p.ZvStatj ELSE p.ZvStat END AS ZvStat,
                          CASE WHEN p.KrOkr IS NOT NULL THEN p.JCCEHZj ELSE p.JCCEHZ END AS JCCEHZ, p.pohlavie, p.DatNar, p.OtLU, p.otZvStat, p.otJCCEHZ, p.MaLU, p.maZvStat, 
                         p.MaJCCEHZ, p.DatumPrijmu, p.vysledokID, p.vysledoktestu, p.DatAnal, p.KrOkr, p.Podnik, p.Stado, p.OtLUCj, p.OtJCCEHZj, p.OtZvStatj, p.MaLUCj, p.MaJCCEHZj, 
                         p.MaZvStatj, p.pohlj, v.o_suhlasi, v.m_suhlasi, CASE WHEN p.otjccehz IS NOT NULL AND p.otjccehzj IS NOT NULL AND (replace(p.otlu, ' ', '') = replace(p.otlucj, ' ', 
                         '') OR
                         p.otlu IS NULL) AND p.otjccehz = p.otjccehzj THEN 0 WHEN p.otjccehz IS NOT NULL AND p.otjccehzj IS NOT NULL AND (replace(p.otlu, ' ', '') <> replace(p.otlucj, ' ', 
                         '') OR
                         p.otjccehz <> p.otjccehzj) THEN 1 ELSE NULL END AS inyot, CASE WHEN p.majccehz IS NOT NULL AND p.majccehzj IS NOT NULL AND (replace(p.malu, ' ', '') 
                         = replace(p.malucj, ' ', '') OR
                         p.malu IS NULL) AND p.majccehz = p.majccehzj THEN 0 WHEN p.majccehz IS NOT NULL AND p.majccehzj IS NOT NULL AND (replace(p.malu, ' ', '') 
                         <> replace(p.malucj, ' ', '') OR
                         p.majccehz <> p.majccehzj) THEN 1 ELSE NULL END AS inama, p.plemj, s.NAZLIN
FROM            dbo.View_GP_KozyPat2 AS p LEFT OUTER JOIN
                         dbo.GC_PaternVysled AS v ON p.vysledokID = v.vysledokID LEFT OUTER JOIN
                         dbo.GC_SubLin AS s ON s.CISLIN = SUBSTRING(p.OtLUCj, 1, 4)
go

CREATE VIEW dbo.View_CP_TELATA210_FULL
AS
SELECT     t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) AND (t.DOVVYR IS NULL)
GROUP BY t.CHOVATEL
go

CREATE VIEW dbo.View_SM_Bahnica
AS
SELECT        KROKR + PODNIK + STADO AS Chov, LUC, PUC, BAHCIS, ZVSTAT + JCCEHZ AS CEHZ, PORCIS, PRIZNAK, MIMOKU, PLEMS, PLEM, GENOTYP, RIZ_SKUP, DATNAR, HMOTN, DATOD, HMOTOD, STMENNAR, 
                         KROKRNAR, PODNIKNAR, STADONAR, SURV, DATZAR, DOVOD, DATVYR, PVRH, NAPJAH, PATERN, DATH70, HMOT70, DATH100, HMOT100, DENPRIR, KDPRIR, HVPORPR, DATNT, KPPNT, KRAJNT, KODPLOD, 
                         BPOVOD, BVU, BVLS, BVLD, BVLM, BVLV, BVLCH, BVLPP, BDEFEKT, BVLNA, BOSVAL, BMLUZMA, BEXTER, BCELKOM, TRIED, SORTIM, DLVLPO, DLVLPE, ZIVHMOTNT, CENABON, KATALC, KODPK, ZPK3, ZPK2, 
                         ZPK1, VYRPK
FROM            dbo.SM_BAHNICA
go

CREATE VIEW dbo.View_SP_OvcePat3
AS
SELECT     p.DNAID3, CASE WHEN p.KrOkr IS NOT NULL THEN p.LUCJ ELSE p.LU END AS LUC, CASE WHEN p.KrOkr IS NOT NULL THEN p.ZvStatj ELSE p.ZvStat END AS ZvStat, 
                      CASE WHEN p.KrOkr IS NOT NULL THEN p.JCCEHZj ELSE p.JCCEHZ END AS JCCEHZ, p.pohlavie, p.DatNar, p.OtLU, p.otZvStat, p.otJCCEHZ, p.MaLU, p.maZvStat, 
                      p.MaJCCEHZ, p.DatumPrijmu, p.vysledokID, p.vysledoktestu, p.DatAnal, p.KrOkr, p.Podnik, p.Stado, p.OtLUCj, p.OtJCCEHZj, p.OtZvStatj, p.MaLUCj, p.MaJCCEHZj, 
                      p.MaZvStatj, p.pohlj, v.o_suhlasi, v.m_suhlasi, CASE WHEN p.otjccehz IS NOT NULL AND p.otjccehzj IS NOT NULL AND (replace(p.otlu, ' ', '') = replace(p.otlucj, ' ', 
                      '') OR
                      p.otlu IS NULL) AND p.otjccehz = p.otjccehzj THEN 0 WHEN p.otjccehz IS NOT NULL AND p.otjccehzj IS NOT NULL AND (replace(p.otlu, ' ', '') <> replace(p.otlucj, ' ', 
                      '') OR
                      p.otjccehz <> p.otjccehzj) THEN 1 ELSE NULL END AS inyot, CASE WHEN p.majccehz IS NOT NULL AND p.majccehzj IS NOT NULL AND (replace(p.malu, ' ', '') 
                      = replace(p.malucj, ' ', '') OR
                      p.malu IS NULL) AND p.majccehz = p.majccehzj THEN 0 WHEN p.majccehz IS NOT NULL AND p.majccehzj IS NOT NULL AND (replace(p.malu, ' ', '') 
                      <> replace(p.malucj, ' ', '') OR
                      p.majccehz <> p.majccehzj) THEN 1 ELSE NULL END AS inama, p.plemj, s.NAZLIN
FROM         dbo.View_SP_OvcePat2 AS p LEFT OUTER JOIN
                      dbo.SC_PaternVysled AS v ON p.vysledokID = v.vysledokID LEFT OUTER JOIN
                      dbo.SC_SubLin AS s ON s.CISLIN = SUBSTRING(p.OtLUCj, 1, 4)
go


CREATE VIEW [dbo].[View_CP_TELATA210_T2]
AS
SELECT        TOP (100) PERCENT t.CISTELATA, t.CHOVATEL, t.DATNAR, v.DATVAZ, DATEDIFF(day, t.DATNAR, v.DATVAZ) AS days, v.HMOT, t.HMOTNAR, v.HMOT / DATEDIFF(day, 
                         t.DATNAR, v.DATVAZ) AS kgperDay
FROM            dbo.CM_Vazenia AS v INNER JOIN
                         dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE        (v.PRIZNAKKU = '2') AND (t.DOVVYR = '00' OR
                         t.DOVVYR IS NULL) AND (DATEDIFF(day, t.DATNAR, v.DATVAZ) >= 60) AND (DATEDIFF(day, t.DATNAR, v.DATVAZ) <= 175) AND (v.HMOT / DATEDIFF(day, t.DATNAR, 
                         v.DATVAZ) > 0.3) AND (v.HMOT / DATEDIFF(day, t.DATNAR, v.DATVAZ) <= 2)

go


create view [dbo].[View_CP_LaktacieNaplak] as
    select
      CM_Laktacie.CISKRAVY,
      CM_Laktacie.CHOVATEL,
      CM_Laktacie.PORLAK,
      CM_Laktacie.DATOTEL,
      CM_Laktacie.CHOVOTEL,
      CM_Laktacie.CHOVLAKT,
      CM_Laktacie.PRIEBPOROD,
      CM_Laktacie.POHLAVIE,
      CM_Laktacie.ZMENA,
      CM_Laktacie.DATUKONL,
      CM_Laktacie.DATUKNORL,
      CM_Laktacie.MEDZIOBD,
      CM_Laktacie.HMOTKR,
      CM_Laktacie.LAKTDNI,
      CM_Laktacie.LAKDNIN,
      CM_Laktacie.MLIEKCEL,
      CM_Laktacie.MLIEKNOR,
      CM_Laktacie.TUKCEL,
      CM_Laktacie.TUKNOR,
      CM_Laktacie.BIELKCEL,
      CM_Laktacie.BIELKNOR,
      CM_Laktacie.LAKTOZAC,
      CM_Laktacie.LAKTOZAN,
      CM_Laktacie.INDPER,
      CM_Laktacie.INDLAK,
      CM_Laktacie.CHARUST,
      CM_Laktacie.MAXLAK,
      CM_Laktacie.MLIEKO100,
      CM_Laktacie.TUK100,
      CM_Laktacie.BIELK100,
      CM_Laktacie.LAKT100,
      CM_Laktacie.MLIEKO200,
      CM_Laktacie.TUK200,
      CM_Laktacie.BIELK200,
      CM_Laktacie.LAKT200,
      CM_Laktacie.DATZAPZVK,
      CM_Laktacie.DATVYBZVK,
      CM_Laktacie.KOD_DOJ,
      CM_Laktacie.KOD_MEDZ,
      CM_Laktacie.SPRACINSERT,
      CM_Laktacie.SPRACUPDATE
    from CM_Laktacie
    union select
            CM_Naplak.CISKRAVY,
            CM_Naplak.CHOVATEL,
            CM_Naplak.PORLAK,
            CM_Naplak.DATOTEL,
            CM_Naplak.CHOVOTEL,
            CM_Naplak.CHOVLAKT,
            CM_Naplak.PRIEBPOROD,
            CM_Naplak.POHLAVIE,
            CM_Naplak.ZMENA,
            CM_Naplak.DATUKONL,
            CM_Naplak.DATUKNORL,
            CM_Naplak.MEDZIOBD,
            CM_Naplak.HMOTKR,
            CM_Naplak.LAKTDNI,
            CM_Naplak.LAKDNIN,
            CM_Naplak.MLIEKCEL,
            CM_Naplak.MLIEKNOR,
            CM_Naplak.TUKCEL,
            CM_Naplak.TUKNOR,
            CM_Naplak.BIELKCEL,
            CM_Naplak.BIELKNOR,
            CM_Naplak.LAKTOZAC,
            CM_Naplak.LAKTOZAN,
            CM_Naplak.INDPER,
            CM_Naplak.INDLAK,
            CM_Naplak.CHARUST,
            CM_Naplak.MAXLAK,
            CM_Naplak.MLIEKO100,
            CM_Naplak.TUK100,
            CM_Naplak.BIELK100,
            CM_Naplak.LAKT100,
            CM_Naplak.MLIEKO200,
            CM_Naplak.TUK200,
            CM_Naplak.BIELK200,
            CM_Naplak.LAKT200,
            CM_Naplak.DATZAPZVK,
            CM_Naplak.DATVYBZVK,
            CM_Naplak.KOD_DOJ,
            CM_Naplak.KOD_MEDZ,
            CM_Naplak.SPRACINSERT,
            CM_Naplak.SPRACUPDATE
          from CM_Naplak
          where CM_Naplak.CISKRAVY not in (select CM_Laktacie.CISKRAVY
                                           from CM_Laktacie
                                           where CM_Naplak.CISKRAVY = CM_Laktacie.CISKRAVY and
                                                 CM_Naplak.PORLAK = CM_Laktacie.PORLAK)
go


CREATE VIEW [dbo].[View_CP_TELATA210_T3]
AS
SELECT        t.CISTELATA, t.CHOVATEL, t.DATNAR, DATEDIFF(day, t.DATNAR, v.DATVAZ) AS days, v.HMOT, v.HMOT / DATEDIFF(day, t.DATNAR, v.DATVAZ) AS kgperDay
FROM            dbo.CM_Vazenia AS v INNER JOIN
                         dbo.CM_Telata AS t ON v.CISTELATA = t.CISTELATA
WHERE        (v.PRIZNAKKU = '2') AND (t.DOVVYR = '00' OR
                         t.DOVVYR IS NULL) AND (DATEDIFF(day, t.DATNAR, v.DATVAZ) >= 175) AND (DATEDIFF(day, t.DATNAR, v.DATVAZ) <= 245) AND (v.HMOT > 0) AND 
                         (v.HMOT / DATEDIFF(day, t.DATNAR, v.DATVAZ) > 0.3) AND (v.HMOT / DATEDIFF(day, t.DATNAR, v.DATVAZ) < 2)

go

CREATE VIEW dbo.View_SP_PremBah3
AS
SELECT        BAHCIS, SUM(Narod) AS NarodCel, SUM(NarBar) AS NarBar, SUM(Odchov) AS OdchCel, SUM(OdchBar) AS OdchBar, SUM(NaChov) AS NaChovCel, SUM(NaChovBar) 
                         AS NaChovBar, COUNT(1) AS pocvrh
FROM            dbo.View_SP_PremBah2
WHERE        (Narod > 0)
GROUP BY BAHCIS
go

CREATE VIEW dbo.View_SP_KonZapPotomok
AS
SELECT        ID, ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB
FROM            dbo.SM_KonZapPotomok AS p
WHERE        (POHL IS NOT NULL)
go

CREATE VIEW dbo.View_CP_TELATA210_FULL_povodneNa101
AS
SELECT        chovatel, SUM(hmot210) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM            dbo.CP_Hmot210
GROUP BY chovatel
go

CREATE VIEW dbo.View_CP_KravaPoOtcoNormLakt
AS
SELECT     l.PORLAK, COUNT(*) AS po4etkrav, SUM(l.MLIEKNOR) AS primerMleko, SUM(l.TUKNOR) AS PrimerTuk, SUM(l.BIELKNOR) AS asBielkPriem, SUM(l.BIELKNOR + l.TUKNOR) AS PriemBelTuK, 
                      ROUND(AVG(DATEDIFF(dd, k.DATNAR, l.DATOTEL) / 30.42), 0) AS vekM, CONVERT(float, CONVERT(int, AVG(DATEDIFF(dd, k.DATNAR, l.DATOTEL) % 30.45))) AS vekD, 
                      k.OTECLIN + '-' + RIGHT('000' + CAST(k.OTECREG AS varchar(3)), 3) AS otec, k.CHOVATEL, k.OUSCIS
FROM         dbo.CM_Krava AS k LEFT OUTER JOIN
                      dbo.CM_Laktacie AS l ON k.CISKRAVY = l.CISKRAVY
WHERE     (k.DOVVYR IS NULL) AND (k.PRIZNAKKU = '1') AND (l.ZMENA IN (30, 40))
GROUP BY k.CHOVATEL, k.OUSCIS, l.PORLAK, k.OTECLIN, k.OTECREG
go

CREATE VIEW View_ER_HeliosDotacieCerpane

  AS

    select
  ucet.CisloUctu                        as ucet,
  substring(Datum, 1, 2)                as rok,
  substring(Datum, 3, 2)                as mesiac,
  sum(Suma * Pocet)                     as spolu,
  sum(EC_RiadokFaktury.Dotacia * Pocet) as dotaciaSpolu
from EC_RiadokFaktury
  left outer join EC_CISPROD produkt on EC_RiadokFaktury.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
  inner join EC_NazvyUctov ucet on produkt.UCET = ucet.CisloUctu

where Potvrdeny = 1 and Zruseny = 0
group by ucet.CisloUctu, substring(Datum, 1, 2), substring(Datum, 3, 2)
;
go

CREATE VIEW dbo.View_CP_Meso_teliat_3a_1
AS
select p.CoJe as telat,count(*) as pocet,month(t.datnar) as mesac, year(t.datnar) as rok,
t.chovatel
from plis.dbo.CM_Telata as t
inner join plis.dbo.View_CP_Pohlavie_delene as p
on t.POHLAVIE=p.KOD
where  t.porlak=1

group by p.coje,month(t.datnar),year(t.datnar),t.CHOVATEL

union 

select 'z toho dvoicata a trojcata' as telat,count(*) as pocet,month(t.datnar) as mesac, 
year(t.datnar) as rok,t.chovatel
from plis.dbo.CM_Telata as t
inner join plis.dbo.View_CP_Pohlavie_delene as p
on t.POHLAVIE=p.KOD
where  t.porlak=1
and p.kod in ('11','22','31','32','41','42','51','52')
group by month(t.datnar),year(t.datnar),t.CHOVATEL
go

CREATE VIEW View_ER_DotacieCerpane

  AS

    select
  ucet.CisloUctu                        as ucet,
  substring(Datum, 1, 2)                as rok,
  substring(Datum, 3, 2)                as mesiac,
  sum(Suma * Pocet)                     as spolu,
  sum(EC_RiadokFaktury.Dotacia * Pocet) as dotaciaSpolu
from EC_RiadokFaktury
  left outer join EC_CISPROD produkt on EC_RiadokFaktury.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
  inner join EC_NazvyUctov ucet on produkt.UCET = ucet.CisloUctu

where Potvrdeny = 1 and Zruseny = 0
group by ucet.CisloUctu, substring(Datum, 1, 2), substring(Datum, 3, 2)
;
go

CREATE VIEW dbo.View_CP_Meso_teliat_3a_2
AS
select p.CoJe as telat,count(*) as pocet,month(t.datnar) as mesac, year(t.datnar) as rok,
t.chovatel
from plis.dbo.CM_Telata as t
inner join plis.dbo.View_CP_Pohlavie_delene as p
on t.POHLAVIE=p.KOD
where  t.porlak>=2

group by p.coje,month(t.datnar),year(t.datnar),t.CHOVATEL

union 

select 'z toho dvoicata a trojcata' as telat,count(*) as pocet,month(t.datnar) as mesac, 
year(t.datnar) as rok,t.chovatel
from plis.dbo.CM_Telata as t
inner join plis.dbo.View_CP_Pohlavie_delene as p
on t.POHLAVIE=p.KOD
where  t.porlak>=2
and p.kod in ('11','22','31','32','41','42','51','52')
group by month(t.datnar),year(t.datnar),t.CHOVATEL
go

CREATE VIEW dbo.View_CP_SumarJalKUTMHD_next2
AS
 
/*[CISTELATA],[vekMes],[vekDni] ,[CHOVATEL],[raspas],[HMOT],[PRIRPREPOC],[zivpriras],[ZnakPrip],[ZnakTelnost],idain*/ SELECT 1 AS ID, 'do 1 mes.' AS vek, COUNT(*) 
                      AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 0 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 1 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 2 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 3 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 4 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 5 AND vekdni BETWEEN 0 AND 31
GROUP BY a.chovatel, a.raspas
UNION
SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 0 AND 5
GROUP BY a.chovatel, a.raspas
UNION
SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 6 AND 11
GROUP BY a.chovatel, a.raspas
UNION
SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     CONVERT(varchar(2), vekmes) + '.' + CONVERT(varchar(2), vekdni) BETWEEN '11.15' AND '12.15'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 12 AND 18 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 12 AND 18 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 18 AND 24 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 18 AND 24 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 12 AND 24
GROUP BY a.chovatel, a.raspas
UNION
SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 12 AND 24 AND [ZnakTelnost] IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel, a.raspas
UNION
SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24
GROUP BY a.chovatel, a.raspas
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, 
                      a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999
GROUP BY a.chovatel, a.raspas
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) * 1000 AS pripprepoc, AVG(zivpriras) AS zivpriras, 
                      a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000
GROUP BY a.chovatel, a.raspas
go

CREATE VIEW dbo.View_CP_poslednaINseminaciq
AS
SELECT        TOP (100) PERCENT i.IPLCA, i.IDAIN, i.IPOIN, i.IPOREIN, i.IBLIN, i.IBREG, i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) AS byk, i.IVYSE, i.IDAOT, 
                         CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END AS ocakotel
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) AS dat_insem
                               FROM            dbo.CM_Insvyk AS i
                               GROUP BY IPLCA) AS i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.dat_insem
go

CREATE VIEW dbo.View_CP_VybHolPlemenice
AS
SELECT        CISKRAVY + '' AS UsCislo, '              ' AS importCis, CASE WHEN BB_NAME IS NULL THEN '' ELSE BB_NAME END AS Meno, '               ' AS Meno1, PL1, KR1, PL2, 
                         KR2, PL3, KR3, PL4, KR4, PL5, FARBA, OTECLIN AS Olin, OTECREG AS Oreg, CASE WHEN OUSCIS IS NULL THEN 'XX000000000000 ' ELSE OUSCIS END AS OUSCIS,
                          CASE WHEN MA IS NULL THEN 'XX000000000000 ' ELSE MA END AS MUSCIS, DATNAR, DOVVYR, DATVYR, Pohlavie, CHOVATEL AS Majitel
FROM            dbo.CM_Krava
WHERE        ((TYPPLEM IN ('62', '66', '72', '73', '76', '77', '82', '83', '84', '86', '87', '88', '92', '93', '94', '95', '96', '97', '98', '99') OR
                         PL1 = 'J') AND priznakku = 1) OR  (Rtrim(PL1) IN ('H', 'R') AND priznakku = 1) OR
                          (PRIZNAKKU = 1 AND (RTRIM(PL2) IN ('H', 'R')) AND KR2 = 50)
UNION
SELECT        CISTELATA + '' AS UsCislo, '               ' AS ImportCis, '                                        ' AS Meno, '               ' AS Meno1, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, Farba, 
                         OTECLIN AS Olin, OTECREG AS Oreg, CASE WHEN OUC IS NULL THEN 'XX000000000000 ' ELSE OUC END AS OUSCIS, CASE WHEN MATKA IS NULL 
                         THEN 'XX000000000000 ' ELSE MATKA END AS MA, DATNAR, DOVVYR, DATVYR, POHLAVIE, CHOVATEL AS Majitel
FROM            dbo.CM_Telata
WHERE        (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava)) AND (PRIZNAKKU = '1') AND (POHLAVIE IN ('02', '22', '32', '42', '52', '82', '92')) AND (((TYPPLEM IN ('62', '66', '72', '73', '76', '77', '82', 
                         '83', '84', '86', '87', '88', '92', '93', '94', '95', '96', '97', '98', '99') OR
                         PL1 = 'J') AND priznakku = 1) OR
                         (Rtrim(PL1) IN ('H', 'R') AND priznakku = 1) OR
                         (PRIZNAKKU = 1 AND (RTRIM(PL2) IN ('H', 'R')) AND KR2 = 50))
go

CREATE VIEW dbo.View_CP_VybHolKravy
AS
SELECT        CISKRAVY + '' AS UsCislo, '              ' AS importCis, CASE WHEN BB_NAME IS NULL THEN '' ELSE BB_NAME END AS Meno, '               ' AS Meno1, PL1, KR1, PL2, 
                         KR2, PL3, KR3, PL4, KR4, PL5, FARBA, OTECLIN AS Olin, OTECREG AS Oreg, CASE WHEN OUSCIS IS NULL THEN 'XX000000000000 ' ELSE OUSCIS END AS OUSCIS,
                          CASE WHEN MA IS NULL THEN 'XX000000000000 ' ELSE MA END AS MUSCIS, DATNAR, DOVVYR, DATVYR, POHLAVIE, CHOVATEL AS Majitel
FROM            dbo.CM_Krava
WHERE        (TYPPLEM IN ('62', '66', '72', '73', '76', '77', '82', '83', '84', '86', '87', '88', '92', '93', '94', '95', '96', '97', '98', '99')) OR
                         (PRIZNAKKU = 1) AND (RTRIM(PL1) IN ('H', 'R')) OR
                         (PRIZNAKKU = 1) AND (RTRIM(PL2) IN ('H', 'R')) AND (KR2 = 50)
go

CREATE VIEW dbo.View_GP_AkMlStada
AS
SELECT DISTINCT TOP (100) PERCENT KROKR, PODNIK, STADO
FROM            dbo.GM_KOZY
ORDER BY KROKR, PODNIK, STADO
go

CREATE VIEW View_ER_HeliosRiadokFaktury

  AS

select
  faktura.IDR,
  faktura.Chov,
  faktura.Faktura,
  faktura.Pocet,
  faktura.Datum,
  faktura.Produkt,
  faktura.ProduktNazov,
  faktura.JcBezDane,
  faktura.Konzulent,
  faktura.Region,
  faktura.PodnikNazov,
  faktura.Ico,
  faktura.OrgHelios,
  CASE WHEN zoot.Zootechnik is null
    THEN faktura.CisloZamestnanca
  ELSE zoot.Zootechnik END AS Zootechnik,
  CASE WHEN zoot.perc is null
    THEN 100
  ELSE zoot.perc END       AS perc
from ER_HeliosRiadokFaktury faktura left outer join ER_HeliosRiadokFakturyZoot zoot on faktura.IDR = zoot.ID_Faktura
go


create view [dbo].[aspnet_Users]
as
select * from aspnetdb..aspnet_Users

go

CREATE VIEW dbo.View_CP_poslednoVazeneTeliatZoznam_new
AS
SELECT        v.CISTELATA, v.DATVAZ, v.HMOT, v.RASTPAS AS raspas, v.PRIRPREPOC, v.HMOTPREPOC, v.DNIPREPOC, v.DNIVAZ, v.TURNUS, tt.DATNAR, tt.CHOVATEL, 
                         tt.POHLAVIE, tt.PRIZNAKKU, tt.DOVVYR, tt.HMOTNAR, tt.MATKA, tt.OUC, tt.OTECREG, tt.OTECLIN, (v.HMOTPREPOC - (CASE WHEN tt.HMOTNAR IS NULL OR
                         tt.HMOTNAR = 0 THEN 35 ELSE tt.HMOTNAR END)) / v.DNIPREPOC * 1000 AS zivpriras, DATEDIFF(day, tt.DATNAR, v.DATVAZ) / 30.42 AS vek, CONVERT(int, 
                         DATEDIFF(day, tt.DATNAR, v.DATVAZ) / 30.42) AS vekMes, CONVERT(int, CONVERT(float, DATEDIFF(day, tt.DATNAR, v.DATVAZ) % 30.42)) AS vekDni, i.IDAIN, i.IPOIN, 
                         i.IPOREIN, i.byk, i.IVYSE, i.IDAOT, CASE WHEN i.idain IS NOT NULL THEN 'pripustena' ELSE 'nepripustena' END AS ZnakPrip, CASE WHEN i.ivyse IN ('9', '8', '7') 
                         THEN 'telna' ELSE NULL END AS ZnakTelnost, v.CHOVVAZ, tt.DATVYR, v.PRIR, v.ZIVPRIR, i.ocakotel
FROM            dbo.CM_Vazenia AS v INNER JOIN
                             (SELECT        CISTELATA, MAX(DATVAZ) AS datvaz
                               FROM            dbo.CM_Vazenia
                               GROUP BY CISTELATA) AS t ON v.CISTELATA = t.CISTELATA AND v.DATVAZ = t.datvaz INNER JOIN
                         dbo.CM_Telata AS tt ON v.CISTELATA = tt.CISTELATA LEFT OUTER JOIN
                             (SELECT        TOP (1) IPLCA, IDAIN, IPOIN, IPOREIN, IBLIN, IBREG, byk, IVYSE, IDAOT, ocakotel
                               FROM            dbo.View_CP_poslednaINseminaciq) AS i ON v.CISTELATA = i.IPLCA
go

CREATE VIEW dbo.View_CP_SumarMladyDobytokJal_new
AS
SELECT        CISTELATA, vekMes, vekDni, CHOVATEL, raspas, HMOT, PRIRPREPOC, zivpriras, ZnakPrip, ZnakTelnost, IDAIN, POHLAVIE, DATNAR, CHOVVAZ, DATVAZ, PRIR, ZIVPRIR, ocakotel
FROM            dbo.View_CP_poslednoVazeneTeliatZoznam_new AS a
WHERE        (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (DOVVYR IS NULL) AND (POHLAVIE NOT IN (61, 62, 63) OR
                         POHLAVIE IS NULL) AND (CISTELATA NOT IN
                             (SELECT        USCISLO
                               FROM            dbo.CM_Byci))
go

CREATE VIEW dbo.View_CP_ZZ_Mlieko_teliat_2
AS
SELECT     k.IDKRAVY, k.CISKRAVY, k.CHOVATEL, k.SKUPINA, k.PK, k.OTECLIN, k.OTECREG, k.OUSCIS, k.MA, k.IDOT, k.IDMA, k.DATNAR, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, 
                      k.KR3, k.PL4, k.KR4, k.PL5, k.FARBA, k.ZNMATBYK, k.ZNAKET, k.POHLAVIE, k.ZDRAVTR, k.PLEMENNA, k.PORPREBLAK, k.DATPOSKONT, k.DOVVYR, k.DATVYR, 
                      k.DATZAR, k.TRUZIT, k.PORLAKMAX, k.MLIEKOMAX, k.TUKMAX, k.BIELMAX, k.LAKTOZAMAX, k.POCVSETLAK, k.POCNORLAK, k.MLIEKOPR, k.TUKPRKG, k.TUKPRPER, 
                      k.BIELPRKG, k.BIELPRPER, k.LAKTPRKG, k.LAKTPRPER, k.TYPPLEM, k.FARMACEHZ, k.PRIZNAKKU, k.KRJA, k.PINT, k.PSER, k.PMED, k.BB_ANIMALCODE, 
                      k.BB_NAME, k.BB_IMPORTED, k.BB_BREEDING_NAME, k.BB_OWNER, k.BB_KEEPER, k.BB_USE, k.BB_COUNTRYCODE, k.BB_CATEGORY, 
                      k.BB_HERDBOOK_NUMBER, k.DATZAPPREP, k.DATVYBPREP, l.CISKRAVY AS LCISKRAVY, l.CHOVATEL AS LCHOVATEL, l.PORLAK, l.DATOTEL, l.CHOVOTEL, 
                      l.CHOVLAKT, l.PRIEBPOROD, l.POHLAVIE AS Expr3, l.ZMENA, l.DATUKONL, l.DATUKNORL, l.MEDZIOBD, l.HMOTKR, l.LAKTDNI, l.LAKDNIN, l.MLIEKCEL, l.MLIEKNOR, 
                      l.TUKCEL, l.TUKNOR, l.BIELKCEL, l.BIELKNOR, l.LAKTOZAC, l.LAKTOZAN, l.INDPER, l.INDLAK, l.CHARUST, l.MAXLAK, l.ZNAK, l.BEZT, l.MLIEKO100, l.TUK100, 
                      l.BIELK100, l.LAKT100, l.MLIEKO200, l.TUK200, l.BIELK200, l.LAKT200, l.DATZAPZVK, l.DATVYBZVK, l.KOD_DOJ, l.KOD_MEDZ, u.CHOVATEL AS UCHOVATEL, 
                      u.CISKRAVY AS UCISKRAVY, u.PORLAK AS UPORLAK, u.montsOldOtel, u.DATNAR AS UDATNAR, u.DATOTEL AS UDATOTEL, u.LAKDNIN AS ULAKDNIN, 
                      u.LAKTDNI AS ULAKTDNI, u.ZMENA AS UZMENA, u.MLIEKNOR AS UMLIEKNOR, u.TUKNOR AS UTUKNOR, u.BIELKNOR AS UBIELKNOR, u.OTECLIN AS UOTECLIN, 
                      u.OTECREG AS UOTECREG, u.OUSCIS AS UOUSCIS, u.MA AS UMA
FROM         dbo.CM_Krava AS k INNER JOIN
                      dbo.CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY LEFT OUTER JOIN
                      dbo.cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
WHERE     (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') AND (k.DATNAR IS NOT NULL)
go

CREATE VIEW dbo.View_CP_testHodnotbyci2
AS
SELECT        ROKSPRAC, MESSPRAC, BYK, DATNAR, BLIN, BREG, MENBYK, stada, cery, PLEMENO, SPI, REL, M305, T305, tukpercenta, B305, bielkperc, SKUPINA, 
                         Preskupinovane, CASE WHEN Preskupinovane = SKUPINA THEN 'ANO' ELSE 'NIE' END AS CHEKMEOUT, RPHM, RPHT, RPHB
FROM            dbo.View_cp_test_hodnotbycy
go









CREATE view [dbo].[BB_BULLTREE]
AS
SELECT      ISNULL(CONVERT(varchar(3),B.LIN),'') as LIN,
			ISNULL(RIGHT('000' + CONVERT(varchar,B.REG),3),'') as REG,
			B.USCISLO, 
			ISNULL(CONVERT(varchar(3),O.LIN),'') AS OTECLIN, --O_linia
			ISNULL(CONVERT(varchar(3),O.REG),'') AS OTECREG, --O_register
			ISNULL(B.OTUSCIS,'') as OTUSCIS, --OTEC
			ISNULL(O.MENO,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS  as OMENO,--O_meno
			ISNULL(O.MENO1,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS  AS OMENO1,
			ISNULL(CONVERT(varchar(3),O.PK),'') as OPK, --O_PK
			
			--ISNULL(O.PL1 + ISNULL(O.PL2 + ISNULL(O.PL3 + ISNULL(O.PL4 + ISNULL(O.PL5,''), ''), ''),''),'') AS OPLEMENO, --O_plemeno
						
			
			ISNULL(O.PL1 + + CONVERT(VARCHAR, ISNULL(O.KR1, 0)) + ' ' 
					+ ISNULL(O.PL2 +  CONVERT(VARCHAR, ISNULL(O.KR2, 0)) + ' ' 
					+ ISNULL(O.PL3 +  CONVERT(VARCHAR, ISNULL(O.KR3, 0)) + ' ' 
					+ ISNULL(O.PL4 +  CONVERT(VARCHAR, ISNULL(O.KR4, 0)) + ' ' 
					+ ISNULL(O.PL5,''), ''), ''),''),'') AS OPLEMENO, --O_plemeno
			ISNULL(CONVERT(varchar(4),OPHB.RPHM),'') as ORPHM, --O_RPHM
			ISNULL(CONVERT(varchar(4),OPHB.RPHT),'') as ORPHT, --O_RPHT
			ISNULL(CONVERT(varchar(4),OPHB.RPHB),'') as ORPHB, --O_RPHB
			
		    ISNULL(B.MATKA,'') AS MATKA, --MATKA
			ISNULL(M.BB_NAME,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS as MMENO, --M_meno
			'' as MMENO1,
			ISNULL(CONVERT(varchar(3),M.PK),'') as MPK, --M_PK
			--ISNULL(M.PL1 + ISNULL(M.PL2 + ISNULL(M.PL3 + ISNULL(M.PL4 + ISNULL(M.PL5,''), ''), ''),''),'') AS MPLEMENO, --M_plemeno
			
			
			ISNULL(M.PL1 + CONVERT(VARCHAR, ISNULL(M.KR1, 0)) + ' ' 
					+ ISNULL(M.PL2 + CONVERT(VARCHAR, ISNULL(M.KR2, 0)) + ' ' 
					+ ISNULL(M.PL3 + CONVERT(VARCHAR, ISNULL(M.KR3, 0)) + ' ' 
					+ ISNULL(M.PL4 + CONVERT(VARCHAR, ISNULL(M.KR4, 0)) + ' ' 
					+ ISNULL(M.PL5,''), ''), ''),''),'') AS MPLEMENO, --M_plemeno
			'' as MTRIEDA,
			ISNULL(CONVERT(varchar(2),M.PORLAKMAX),'') as MMAX,--M_MAX
			ISNULL(CONVERT(varchar(5),convert(int,M.MLIEKOMAX)),'') as MMAXML, --M_MAXML
			ISNULL(CONVERT(varchar(3),convert(int,M.TUKMAX)),'') as MMAXT, --M_MAXT
			ISNULL(CONVERT(varchar(3),convert(int,M.BIELMAX)),'')  as MMAXB,--M_MAXB
			ISNULL(convert(varchar(10),convert(decimal(8,2),(M.TUKMAX /nullif(M.MLIEKOMAX,0)*100))),'') AS MPERCT, -- M_PERCT
			ISNULL(convert(varchar(9),convert(decimal(7,2),(M.BIELMAX /nullif(M.MLIEKOMAX,0)*100))),'') AS MPERCB, --M_PERCB
			ISNULL(CONVERT(varchar(2),convert(int,M.POCVSETLAK)),'') as MVSET,--M_VSET
			ISNULL(CONVERT(varchar(2),convert(int,M.POCNORLAK)),'') as MNORM,--M_NORM
			ISNULL(CONVERT(varchar(5),convert(int,M.MLIEKOPR)),'') as MPRML, --M_PRML
			ISNULL(CONVERT(varchar(3),convert(int,M.TUKPRKG)),'') as MPRT, --M_PRT
			ISNULL(CONVERT(varchar(3),convert(int,M.BIELPRKG)),'') as MPRB, --M_PRB
			ISNULL(CONVERT(varchar(4),convert(int,(M.TUKPRKG  +M.BIELPRKG))),'') as MPRTB, --M_PRTB
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),M.TUKPRPER)),'') as MPRPERCT, --M_PRPERCT
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),M.BIELPRPER)),'') as MPRPERCB, --M_PRPERCB
			ISNULL(CONVERT(varchar(7),convert(decimal(5,2),(M.TUKPRPER + M.BIELPRPER))),'') as MPRPERCTB,  --M_PRPERCTB 

			ISNULL(CONVERT(varchar(3),OO.LIN),'') as OOLIN, --OO_linia
			ISNULL(RIGHT('000' + CONVERT(varchar,OO.REG),3),'') as OOREG, --OO_register
			ISNULL(O.OTUSCIS,'') as OOUC, --OO_UC
			ISNULL(OO.MENO,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS as OOMENO, --OO_meno
			ISNULL(OO.MENO1,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS AS OOMENO1,
			ISNULL(CONVERT(varchar(3),OO.PK),'') as OOPK, -- OO_PK
			--ISNULL(OO.PL1 + ISNULL(OO.PL2 + ISNULL(OO.PL3 + ISNULL(OO.PL4 + ISNULL(OO.PL5,''), ''), ''),''),'') AS OOPLEMENO, --OO_plemeno
			
			
			ISNULL(OO.PL1 + CONVERT(VARCHAR, ISNULL(OO.KR1, 0)) + ' ' 
					+ ISNULL(OO.PL2 + CONVERT(VARCHAR, ISNULL(OO.KR2, 0)) + ' ' 
					+ ISNULL(OO.PL3 + CONVERT(VARCHAR, ISNULL(OO.KR3, 0)) + ' ' 
					+ ISNULL(OO.PL4 + CONVERT(VARCHAR, ISNULL(OO.KR4, 0)) + ' ' 
					+ ISNULL(OO.PL5,''), ''), ''),''),'') AS OOPLEMENO, --OO_plemeno
			ISNULL(CONVERT(varchar(4),OOPHB.RPHM),'') as OORPHM, --OO_RPHM
			ISNULL(CONVERT(varchar(4),OOPHB.RPHT),'') as OORPHT, --OO_RPHT
			ISNULL(CONVERT(varchar(4),OOPHB.RPHB),'') as OORPHB, --OO_RPHB

			ISNULL(O.MATKA,'') as MO, --MO_UC
			ISNULL(MO.BB_NAME,'')COLLATE SQL_Latin1_General_Cp1251_CS_AS as MOMENO, -- MO_meno
			'' AS MOMENO1,
			ISNULL(CONVERT(varchar(3),MO.PK),'') as MOPK, --MO_PK
			--ISNULL(MO.PL1 + ISNULL(MO.PL2 + ISNULL(MO.PL3 + ISNULL(MO.PL4 + ISNULL(MO.PL5,''), ''), ''),''),'') AS MOPLEMENO, --MO_plemeno

			ISNULL(MO.PL1 + CONVERT(VARCHAR, ISNULL(MO.KR1, 0)) + ' ' 
					+ ISNULL(MO.PL2 +CONVERT(VARCHAR, ISNULL(MO.KR2, 0)) + ' ' 
					+ ISNULL(MO.PL3 + CONVERT(VARCHAR, ISNULL(MO.KR3, 0)) + ' ' 
					+ ISNULL(MO.PL4 + CONVERT(VARCHAR, ISNULL(MO.KR4, 0)) + ' ' 
					+ ISNULL(MO.PL5,''), ''), ''),''),'') AS MOPLEMENO, --MO_plemeno
			'' AS MOTRIEDA,
			ISNULL(CONVERT(varchar(2),MO.PORLAKMAX),'') as MOMAX,--MO_MAX
			ISNULL(CONVERT(varchar(5),convert(int,MO.MLIEKOMAX)),'') as MOMAXML, --MO_MAXML
			ISNULL(CONVERT(varchar(3),convert(int,MO.TUKMAX)),'') as MOMAXT, --MO_MAXT
			ISNULL(CONVERT(varchar(3),convert(int,MO.BIELMAX)),'')  as MOMAXB,--MO_MAXB
			ISNULL(convert(varchar(10),convert(decimal(8,2),(MO.TUKMAX /nullif(MO.MLIEKOMAX,0)*100))),'') AS MOPERCT, -- MO_PERCT
			ISNULL(convert(varchar(9),convert(decimal(7,2),(MO.BIELMAX /nullif(MO.MLIEKOMAX,0)*100))),'') AS MOPERCB, --MO_PERCB
			--ISNULL(CONVERT(varchar(4),convert(int,MO.POCVSETLAK)),'') as MOVSET,--MO_VSET
			--ISNULL(CONVERT(varchar(4),convert(int,MO.POCNORLAK)),'') as MONORM,--MO_NORM
			ISNULL(CONVERT(varchar(5),convert(int,MO.MLIEKOPR)),'') as MOPRML, --MO_PRML
			ISNULL(CONVERT(varchar(3),convert(int,MO.TUKPRKG)),'') as MOPRT, --MO_PRT
			ISNULL(CONVERT(varchar(3),convert(int,MO.BIELPRKG)),'') as MOPRB, --MO_PRB
			ISNULL(CONVERT(varchar(4),convert(int,(MO.TUKPRKG + MO.BIELPRKG))),'') as MOPRTB, --MO_PRTB
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),MO.TUKPRPER)),'') as MOPRPERCT, --MO_PRPERCT
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),MO.BIELPRPER)),'') as MOPRPERCB, --MO_PRPERCB
			ISNULL(CONVERT(varchar(7),convert(decimal(5,2),(MO.TUKPRPER + MO.BIELPRPER))),'') as MOPRPERCTB, --MO_PRPERCTB 
			
			ISNULL(CONVERT(varchar(3),M.OTECLIN),'') as OMLIN,--OM_linia
			ISNULL(RIGHT('000' + CONVERT(varchar,M.OTECREG),3),'') as OMREG,--OM-register
			ISNULL(M.OUSCIS,'') as OMUC, --OM_UC
			ISNULL(OM.MENO,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS as OMMENO, --OM_meno
			ISNULL(OM.MENO1,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS AS OMMENO1,
			ISNULL(CONVERT(varchar(3),OM.PK),'') as OMPK, --OM_PK
			--ISNULL(OM.PL1 + ISNULL(OM.PL2 + ISNULL(OM.PL3 + ISNULL(OM.PL4 + ISNULL(OM.PL5,''), ''), ''),''),'') AS OMPLEMENO, --OM_plemeno
			
			
			
			ISNULL(OM.PL1 + CONVERT(VARCHAR, ISNULL(OM.KR1, 0)) + ' ' 
					+ ISNULL(OM.PL2 + CONVERT(VARCHAR, ISNULL(OM.KR2, 0)) + ' ' 
					+ ISNULL(OM.PL3 + CONVERT(VARCHAR, ISNULL(OM.KR3, 0)) + ' ' 
					+ ISNULL(OM.PL4 + CONVERT(VARCHAR, ISNULL(OM.KR4, 0)) + ' ' 
					+ ISNULL(OM.PL5,''), ''), ''),''),'') AS OMPLEMENO, --OM_plemeno
			ISNULL(CONVERT(varchar(4),OMPHB.RPHM),'') as OMRPHM, --OM_RPHM
			ISNULL(CONVERT(varchar(4),OMPHB.RPHT),'') as OMRPHT, --OM_RPHT
			ISNULL(CONVERT(varchar(4),OMPHB.RPHB),'') as OMRPHB, --OM_RPHB

			ISNULL(M.MA,'') as MM, --MM_UC
			ISNULL(MM.BB_NAME,'') COLLATE SQL_Latin1_General_Cp1251_CS_AS as MMMENO, --MM_meno 
			'' as MMMENO1,
			ISNULL(CONVERT(varchar(3),MM.PK),'') as MMPK, -- MM_PK
			--ISNULL(MM.PL1 + ISNULL(MM.PL2 + ISNULL(MM.PL3 + ISNULL(MM.PL4 + ISNULL(MM.PL5,''), ''), ''),''),'') AS MMPLEMENO, --MM_plemeno
			
			
			ISNULL(MM.PL1 + CONVERT(VARCHAR, ISNULL(MM.KR1, 0)) + ' ' 
					+ ISNULL(MM.PL2 + CONVERT(VARCHAR, ISNULL(MM.KR2, 0)) + ' ' 
					+ ISNULL(MM.PL3 + CONVERT(VARCHAR, ISNULL(MM.KR3, 0)) + ' ' 
					+ ISNULL(MM.PL4 + CONVERT(VARCHAR, ISNULL(MM.KR4, 0)) + ' ' 
					+ ISNULL(MM.PL5,''), ''), ''),''),'') AS MMPLEMENO, --MM_plemeno
			'' AS MMTRIEDA,
			ISNULL(CONVERT(varchar(2),convert(int,MM.PORLAKMAX)),'') as MMMAX,--MM_MAX
			ISNULL(CONVERT(varchar(5),convert(int,MM.MLIEKOMAX)),'') as MMMAXML, --MM_MAXML
			ISNULL(CONVERT(varchar(3),convert(int,MM.TUKMAX)),'')  as MMMAXT, --MM_MAXT
			ISNULL(CONVERT(varchar(3),convert(int,MM.BIELMAX)),'')  as MMMAXB,--MM_MAXB
			ISNULL(convert(varchar(10),convert(decimal(8,2),(MM.TUKMAX /nullif(MM.MLIEKOMAX,0)*100))),'') AS MMPERCT, -- MM_PERCT
			ISNULL(convert(varchar(9),convert(decimal(7,2),(MM.BIELMAX /nullif(MM.MLIEKOMAX,0)*100))),'') AS MMPERCB, --MM_PERCB
			--ISNULL(CONVERT(varchar(3),convert(int,MM.POCVSETLAK)),'') as MMVSET,--MM_VSET
			--ISNULL(CONVERT(varchar(3),convert(int,MM.POCNORLAK)),'') as MMNORM,--MM_NORM
			ISNULL(CONVERT(varchar(5),convert(int,MM.MLIEKOPR)),'') as MMPRML, --MM_PRML
			ISNULL(CONVERT(varchar(3),convert(int,MM.TUKPRKG)),'') as MMPRT, --MM_PRT
			ISNULL(CONVERT(varchar(3),convert(int,MM.BIELPRKG)),'') as MMPRB, --MM_PRB
			ISNULL(CONVERT(varchar(4),convert(int,(MM.TUKPRKG + MM.BIELPRKG))),'') as MMPRTB, --MM_PRTB
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),(MM.TUKPRPER))),'') AS MMPRPERCT, 
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),(MM.BIELPRPER))),'') AS MMPRPERCB,
			ISNULL(CONVERT(varchar(7),convert(decimal(5,2),(MM.TUKPRPER + MM.BIELPRPER))),'') as MMPRPERCTB  --MM_PRPERCTB 
			
								
FROM        CM_Byci as B 
				LEFT OUTER JOIN CM_Byci as O oN O.USCISLO = B.OTUSCIS 
				LEFT OUTER JOIN CM_Byci as OO on OO.USCISLO = O.OTUSCIS 
				LEFT OUTER JOIN CM_Krava as MO on MO.CISKRAVY = O.MATKA 	
				LEFT OUTER JOIN CM_Krava as M ON M.CISKRAVY = B.MATKA 
				LEFT OUTER JOIN CM_Krava as MM on MM.CISKRAVY = M.MA 
				LEFT OUTER JOIN CM_Byci as OM on OM.USCISLO = M.OUSCIS 
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OPHB on OPHB.BYK = O.USCISLO
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OOPHB on OOPHB.BYK = OO.USCISLO
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OMPHB on OMPHB.BYK = OM.USCISLO
						
				 where B.BB_ANIMAL_ID is not null

;


go

CREATE VIEW dbo.View_CP_PosledneVazenieTelKUTMHD
AS
SELECT     v.CISTELATA, v.DATVAZ, CASE WHEN v.HMOT = 0 THEN NULL ELSE v.hmot END AS HMOT, v.RASTPAS, v.TURNUS, v.DNIVAZ, tt.OTECLIN, tt.OTECREG, tt.MATKA, 
                      tt.DATNAR, tt.HMOTNAR, tt.POHLAVIE, tt.CHOVATEL, tt.PRIZNAKKU, tt.DOVVYR, CASE WHEN v.dnivaz IS NOT NULL AND 
                      v.dnivaz > 0 THEN ((v.HMOT - (CASE WHEN tt.HMOTNAR IS NULL OR
                      tt.HMOTNAR = 0 THEN 35 ELSE tt.HMOTNAR END)) / v.DNIVAZ * 1000) ELSE NULL END AS zivpriras, DATEDIFF(day, tt.DATNAR, GETDATE()) / 30.42 AS vekdnes, 
                      CONVERT(int, DATEDIFF(day, tt.DATNAR, GETDATE()) / 30.42) AS vekMesdnes, CONVERT(int, v.DNIVAZ / 30.42) AS vazmes, CONVERT(int, v.DNIVAZ % 30.42) 
                      AS vazdni, i.IDAIN, i.IPOIN, i.IPOREIN, i.byk, i.IVYSE, i.IDAOT, CASE WHEN i.idain IS NOT NULL THEN 'pripustena' ELSE 'nepripustena' END AS ZnakPrip, 
                      CASE WHEN i.ivyse IN ('9', '8', '7') THEN 'telna' ELSE NULL END AS ZnakTelnost
FROM         dbo.CM_Vazenia AS v INNER JOIN
                          (SELECT     CISTELATA, MAX(DATVAZ) AS datvaz
                            FROM          dbo.CM_Vazenia
                            GROUP BY CISTELATA) AS t ON v.CISTELATA = t.CISTELATA AND v.DATVAZ = t.datvaz LEFT OUTER JOIN
                      dbo.CM_Telata AS tt ON v.CISTELATA = tt.CISTELATA LEFT OUTER JOIN
                      dbo.View_CP_poslednaINseminaciq AS i ON v.CISTELATA = i.IPLCA
WHERE     (tt.PRIZNAKKU = '1') AND (tt.DOVVYR IS NULL)
go

CREATE VIEW dbo.View_CP_SumarJalKUTMHD
AS
SELECT     CISTELATA, DATVAZ, RASTPAS, TURNUS, DNIVAZ, zivpriras, IDAIN, IVYSE, ZnakPrip, ZnakTelnost, IPOIN, IPOREIN, POHLAVIE, CHOVATEL, HMOT, vazmes, 
                      vazdni
FROM         dbo.View_CP_PosledneVazenieTelKUTMHD AS a
WHERE     (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62')
go

CREATE VIEW dbo.View_SP_PocJarMBar
AS
SELECT     TOP (100) PERCENT p.KROKR, p.PODNIK, p.STADO, v.roknar, STR(YEAR(GETDATE()) - v.roknar, 2) AS vek, SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND 
                      (v.pbonjar < v.pocjar / 2) AND (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 > 7) THEN 1 ELSE 0 END) AS pocjar, SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL)
                       AND (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocjah, SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND 
                      (v.pbonmbar < v.pocmbar / 2) AND (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 > 7) THEN 1 ELSE 0 END) AS pocmbar2, SUM(CASE WHEN (p.pohl = '4') AND 
                      (p.tried IS NULL) AND (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocmbar1
FROM         dbo.SM_POTOMOK AS p LEFT OUTER JOIN
                      dbo.View_SP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar
GROUP BY p.KROKR, p.PODNIK, p.STADO, v.roknar
ORDER BY p.KROKR, p.PODNIK, p.STADO, v.roknar
go

CREATE VIEW dbo.View_Ketolatky_Export
AS
SELECT        '' AS [Index], '' AS BatchID, '' AS Barcode, '' AS Sequence, '' AS Date, '' AS Time, CAST(CAST(PERCTUKU AS decimal(10, 2)) AS varchar(10)) AS Fat, CAST(CAST(PERCBIELK AS decimal(10, 2)) AS varchar(10)) 
                         AS Protein, CAST(CAST(PERCLAKTOZ AS decimal(10, 2)) AS varchar(10)) AS Lactose, CAST(CAST(mocov AS decimal(10, 2)) AS varchar(10)) AS MUN, CAST(BUNECELEM AS varchar(10)) AS SCC, 
                         CAST(oa AS varchar(10)) AS [OA %], CAST(fp AS varchar(10)) AS [F/P], CAST(fs AS varchar(10)) AS [F/S], CAST(fsnf AS varchar(10)) AS [F/SNF], CAST(fl AS varchar(10)) AS [F/L], CAST(ac1 AS varchar(10)) AS [Ac1 mg/l], 
                         CAST(ac2 AS varchar(10)) AS [Ac2 mg/l], CAST(ac3 AS varchar(10)) AS [Ac3 mg/l], CAST(bhba AS varchar(10)) AS [BHB A mg/l], CAST(bhbb AS varchar(10)) AS [BHB B mg/l], CAST(bhbgc AS varchar(10)) 
                         AS [BHB GC mg/l], CISKRAVY AS [ID dojnice], CAST(CAST(DATKONTR AS date) AS varchar(10)) AS [datum provedeni kontroly], CAST(PorPreblak AS varchar(10)) AS [poradi laktace], CAST(LaktDni AS varchar(10)) 
                         AS [laktacni den], CAST(CAST(MLIEKOPR AS decimal(10, 2)) AS varchar(10)) AS dojivost, CHOV
FROM            dbo.CM_Rozbory
go

CREATE VIEW dbo.View_CP_SumarJalKUTMHD_next1
AS
SELECT     1 AS ID, 'do 1 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 0 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 1 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 2 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 3 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 4 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes = 5 AND vazdni BETWEEN 0 AND 31
GROUP BY a.chovatel
UNION
SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 0 AND 5
GROUP BY a.chovatel
UNION
SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 6 AND 11
GROUP BY a.chovatel
UNION
SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     CONVERT(varchar(2), vazmes) + '.' + CONVERT(varchar(2), vazdni) BETWEEN '11.15' AND '12.15'
GROUP BY a.chovatel
UNION
SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 12 AND 18 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel
UNION
SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 12 AND 18 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel
UNION
SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes  BETWEEN 18 AND 24 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel
UNION
SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 18 AND 24 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel
UNION
SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 12 AND 24
GROUP BY a.chovatel
UNION
SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes BETWEEN 12 AND 24 AND [ZnakTelnost] IS NOT NULL
GROUP BY a.chovatel
UNION
SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes > 24 AND ZnakPrip = 'pripustena'
GROUP BY a.chovatel
UNION
SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes > 24 AND ZnakPrip = 'nepripustena'
GROUP BY a.chovatel
UNION
SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes > 24
GROUP BY a.chovatel
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999
GROUP BY a.chovatel
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarJalKUTMHD] AS a
WHERE     vazmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000
GROUP BY a.chovatel
go


CREATE VIEW [dbo].[View_CP_Meso_6_group1]
AS
SELECT        COUNT(*) AS pv1, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL)
GROUP BY k.CHOVATEL

go

create view CM_LaktacieNaplakView as
    select
      CM_Laktacie.CISKRAVY,
      CM_Laktacie.CHOVATEL,
      CM_Laktacie.PORLAK,
      CM_Laktacie.DATOTEL,
      CM_Laktacie.CHOVOTEL,
      CM_Laktacie.CHOVLAKT,
      CM_Laktacie.PRIEBPOROD,
      CM_Laktacie.POHLAVIE,
      CM_Laktacie.ZMENA,
      CM_Laktacie.DATUKONL,
      CM_Laktacie.DATUKNORL,
      CM_Laktacie.MEDZIOBD,
      CM_Laktacie.HMOTKR,
      CM_Laktacie.LAKTDNI,
      CM_Laktacie.LAKDNIN,
      CM_Laktacie.MLIEKCEL,
      CM_Laktacie.MLIEKNOR,
      CM_Laktacie.TUKCEL,
      CM_Laktacie.TUKNOR,
      CM_Laktacie.BIELKCEL,
      CM_Laktacie.BIELKNOR,
      CM_Laktacie.LAKTOZAC,
      CM_Laktacie.LAKTOZAN,
      CM_Laktacie.INDPER,
      CM_Laktacie.INDLAK,
      CM_Laktacie.CHARUST,
      CM_Laktacie.MAXLAK,
      CM_Laktacie.MLIEKO100,
      CM_Laktacie.TUK100,
      CM_Laktacie.BIELK100,
      CM_Laktacie.LAKT100,
      CM_Laktacie.MLIEKO200,
      CM_Laktacie.TUK200,
      CM_Laktacie.BIELK200,
      CM_Laktacie.LAKT200,
      CM_Laktacie.DATZAPZVK,
      CM_Laktacie.DATVYBZVK,
      CM_Laktacie.KOD_DOJ,
      CM_Laktacie.KOD_MEDZ,
      CM_Laktacie.SPRACINSERT,
      CM_Laktacie.SPRACUPDATE
    from CM_Laktacie
    union select
            CM_Naplak.CISKRAVY,
            CM_Naplak.CHOVATEL,
            CM_Naplak.PORLAK,
            CM_Naplak.DATOTEL,
            CM_Naplak.CHOVOTEL,
            CM_Naplak.CHOVLAKT,
            CM_Naplak.PRIEBPOROD,
            CM_Naplak.POHLAVIE,
            CM_Naplak.ZMENA,
            CM_Naplak.DATUKONL,
            CM_Naplak.DATUKNORL,
            CM_Naplak.MEDZIOBD,
            CM_Naplak.HMOTKR,
            CM_Naplak.LAKTDNI,
            CM_Naplak.LAKDNIN,
            CM_Naplak.MLIEKCEL,
            CM_Naplak.MLIEKNOR,
            CM_Naplak.TUKCEL,
            CM_Naplak.TUKNOR,
            CM_Naplak.BIELKCEL,
            CM_Naplak.BIELKNOR,
            CM_Naplak.LAKTOZAC,
            CM_Naplak.LAKTOZAN,
            CM_Naplak.INDPER,
            CM_Naplak.INDLAK,
            CM_Naplak.CHARUST,
            CM_Naplak.MAXLAK,
            CM_Naplak.MLIEKO100,
            CM_Naplak.TUK100,
            CM_Naplak.BIELK100,
            CM_Naplak.LAKT100,
            CM_Naplak.MLIEKO200,
            CM_Naplak.TUK200,
            CM_Naplak.BIELK200,
            CM_Naplak.LAKT200,
            CM_Naplak.DATZAPZVK,
            CM_Naplak.DATVYBZVK,
            CM_Naplak.KOD_DOJ,
            CM_Naplak.KOD_MEDZ,
            CM_Naplak.SPRACINSERT,
            CM_Naplak.SPRACUPDATE
          from CM_Naplak
          where CM_Naplak.CISKRAVY not in (select CM_Laktacie.CISKRAVY
                                           from CM_Laktacie
                                           where CM_Naplak.CISKRAVY = CM_Laktacie.CISKRAVY and
                                                 CM_Naplak.PORLAK = CM_Laktacie.PORLAK)
go


CREATE VIEW [dbo].[View_CP_Meso_6_pv3]
AS
SELECT        COUNT(*) AS v3, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL) AND (p.medziobd BETWEEN 366 AND 385)
GROUP BY k.CHOVATEL

go

CREATE VIEW dbo.View_CP_Mlieko_ZoznamJalovicky
AS
SELECT        t.CISTELATA, t.CHOVATEL, t.POHLAVIE, p.SKRATKA, t.DATNAR, t.MATKA, k.TRUZIT, d.PRETLAC, t.OUC, t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG),
                          3) AS otec, ISNULL(t.PL1 + '-' + CONVERT(varchar, t.KR1), '') + '  ' + ISNULL(ISNULL(t.PL2, '') + '-' + CONVERT(varchar, t.KR2), '') 
                         + '  ' + ISNULL(t.PL3 + '-' + CONVERT(varchar, t.KR3), '') + '  ' + ISNULL(t.PL4 + '-' + CONVERT(varchar, t.KR4), '') + '  ' + ISNULL(t.PL5 + '-' + CONVERT(varchar, 
                         100 - (t.KR1 + t.KR2 + t.KR3 + t.KR4)), '') AS plemena, DATEDIFF(day, t.DATNAR, GETDATE()) / 30.42 AS vek, t.DOVVYR, t.DATNAR AS Expr1
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_Pohlavie AS p ON t.POHLAVIE = p.KOD LEFT OUTER JOIN
                         dbo.CC_Povod AS d ON t.PREUKAZ = d.KOD LEFT OUTER JOIN
                         dbo.CM_Krava AS k ON t.MATKA = k.CISKRAVY LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON t.OUC = b.USCISLO
WHERE        (t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (t.DOVVYR IS NULL) AND (DATEDIFF(day, t.DATNAR, GETDATE()) / 30.42 <= 38) AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', 
                         '63', '71')) OR
                         (t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak AS CM_Naplak_1)) AND (t.DOVVYR IS NULL) AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (t.DATNAR IS NULL)
go

CREATE VIEW dbo.View_CM_Kontroly
AS
SELECT DISTINCT 
                         CISKRAVY, DATKONTR, ZNKONTR, DENDOBA, INTERVAL, CISCHOVU, SKUPINA, PREPOCET, MLIEKO, MLIEKPR, PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, BUNECELEM, LAKTDNI + 15 AS LAKTDNI, 
                         PORPREBLAK, KodIntSB, PLATNOST, JeKontroly, SPRACINSERT, SPRACUPDATE, (CASE WHEN LaktDni + 15 BETWEEN 0 AND 100 THEN 1 ELSE CASE WHEN LaktDni + 15 BETWEEN 101 AND 
                         200 THEN 2 ELSE CASE WHEN LaktDni + 15 BETWEEN 201 AND 305 THEN 3 ELSE CASE WHEN LaktDni + 15 > 305 THEN 4 END END END END) AS KodIntLD, tab
FROM            (SELECT        CISKRAVY, DATKONTR, ZNKONTR, DENDOBA, INTERVAL, CISCHOVU, SKUPINA, PREPOCET, MLIEKO, MLIEKPR, PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, BUNECELEM, LAKTDNI, PORPREBLAK, 
                                                    KodIntSB, KodIntLD, PLATNOST, NULL AS JeKontroly, SPRACINSERT, SPRACUPDATE, 'K' AS tab
                          FROM            dbo.CM_Kontroly
                          UNION
                          SELECT        CISKRAVY, DATKONTR, ZNKONTR, DENDOBA, INTERVAL, CISCHOVU, SKUPINA, PREPOCET, MLIEKO, MLIEKPR, PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, BUNECELEM, LAKTDNI, PORPREBLAK, 
                                                   KodIntSB, KodIntLD, NULL AS PLATNOST, JeKontroly, SPRACINSERT, SPRACUPDATE, 'A' AS tab
                          FROM            dbo.CM_ArchKon) AS Kontroly
go

CREATE VIEW dbo.View_SP_MlBarNT2
AS
SELECT     dbo.View_SP_MlBarNT1.KROKR, dbo.View_SP_MlBarNT1.PODNIK, dbo.View_SP_MlBarNT1.STADO, dbo.View_SP_MlBarNT1.CHOVSTNAZ, 
                      dbo.View_SP_MlBarNT1.LUC, dbo.View_SP_MlBarNT1.PUC, dbo.View_SP_MlBarNT1.CEHZ, dbo.View_SP_MlBarNT1.PLEM, dbo.View_SP_MlBarNT1.PLEMZ, 
                      dbo.View_SP_MlBarNT1.PLEMR, dbo.View_SP_MlBarNT1.GENPOD, dbo.View_SP_MlBarNT1.LINIA, dbo.View_SP_MlBarNT1.GENOTYP, 
                      dbo.View_SP_MlBarNT1.RIZ_SKUP, dbo.View_SP_MlBarNT1.OTIDENST, dbo.View_SP_MlBarNT1.OTSTNAZ, dbo.View_SP_MlBarNT1.OTLUC, 
                      dbo.View_SP_MlBarNT1.OTPUC, dbo.View_SP_MlBarNT1.OTZVSTAT, dbo.View_SP_MlBarNT1.OTJCCEHZ, dbo.View_SP_MlBarNT1.OTTRIED, 
                      dbo.View_SP_MlBarNT1.OTKODPK, dbo.View_SP_MlBarNT1.OTSVJH, dbo.View_SP_MlBarNT1.OTSURVRH, dbo.View_SP_MlBarNT1.OTKPLOD, 
                      dbo.View_SP_MlBarNT1.MAIDENST, dbo.View_SP_MlBarNT1.MASTNAZ, dbo.View_SP_MlBarNT1.MALUC, dbo.View_SP_MlBarNT1.MAPUC, 
                      dbo.View_SP_MlBarNT1.MAZVSTAT, dbo.View_SP_MlBarNT1.MAJCCEHZ, dbo.View_SP_MlBarNT1.MATRIED, dbo.View_SP_MlBarNT1.MAKODPK, 
                      dbo.View_SP_MlBarNT1.MASURVRH, dbo.View_SP_MlBarNT1.MAKPLOD, dbo.View_SP_MlBarNT1.MAMAXML, dbo.View_SP_MlBarNT1.MANAZLIN, 
                      dbo.View_SP_MlBarNT1.OMLUC, dbo.View_SP_MlBarNT1.OMPUC, dbo.View_SP_MlBarNT1.DATNAR, dbo.View_SP_MlBarNT1.SURVRH, 
                      dbo.View_SP_MlBarNT1.KDPRIRT, dbo.View_SP_MlBarNT1.HVPORPR2, dbo.View_SP_MlBarNT1.PHVELVRHT, dbo.View_SP_MlBarNT1.HVPORVV, 
                      dbo.View_SP_MlBarNT1.TEXT10, dbo.View_SP_MlBarNT1.TEXT11, dbo.View_SP_MlBarNT1.TEXT12, dbo.View_SP_MlBarNT1.TEXT13, 
                      dbo.View_SP_MlBarNT1.TBOSVAL, dbo.View_SP_MlBarNT1.PHMLIEKOT, dbo.View_SP_MlBarNT1.HVPORML, dbo.View_SP_MlBarNT1.PHHMODST, 
                      dbo.View_SP_MlBarNT1.HVPORHO, dbo.View_SP_MlBarNT1.TEXTHO, dbo.View_SP_MlBarNT1.TEXTHVHO, dbo.View_SP_MlBarNT1.PATERN, 
                      dbo.View_SP_MlBarNT1.DATNT, dbo.View_SP_MlBarNT1.KATCIS, dbo.View_SP_MlBarNT1.SKUPINA, dbo.View_SP_MlBarNT1.KODPLOD, 
                      dbo.View_SP_MlBarNT1.BPOVOD, dbo.View_SP_MlBarNT1.BVU, dbo.View_SP_MlBarNT1.BVLS, dbo.View_SP_MlBarNT1.BVLCH, dbo.View_SP_MlBarNT1.BVLNA, 
                      dbo.View_SP_MlBarNT1.BDEFEKT, dbo.View_SP_MlBarNT1.BOSVAL, dbo.View_SP_MlBarNT1.BMLUZMA, dbo.View_SP_MlBarNT1.BEXTER, 
                      dbo.View_SP_MlBarNT1.BCELKOM, dbo.View_SP_MlBarNT1.TRIED, dbo.View_SP_MlBarNT1.KODPK, dbo.View_SP_MlBarNT1.SORTIM, 
                      dbo.View_SP_MlBarNT1.PZIVHMOTNT, dbo.View_SP_MlBarNT1.DATVAZNT, dbo.View_SP_MlBarNT1.HM1ROK, dbo.View_SP_MlBarNT1.HVHM1ROK, 
                      dbo.View_SP_MlBarNT1.UZITZAM, dbo.View_SP_MlBarNT1.TYPZAM, dbo.View_SP_MlBarNT1.RokNar, dbo.View_SP_MlBarNT1.Pocet, 
                      dbo.View_SP_MlBarNT1.NAZOV, dbo.View_SP_MlBarNT1.CISFARMY, dbo.View_SP_MlBarNT1.PlemSt, dbo.View_SP_MlBarNT1.EXPCHOV, 
                      dbo.View_SP_MlBarNT1.Plem1, dbo.View_SP_MlBarNT1.Plem2, dbo.View_SP_MlBarNT1.Plem3, dbo.View_SP_MlBarNT1.Plem4, dbo.SC_Plemena.KODPL2, 
                      dbo.SC_Plemena.NAZOVD, dbo.SP_PrPlem.KDPRIR AS KDPrirZPlem, dbo.SP_PrPlem.POCKDPRIR AS PocKDPrirZPlem, dbo.SP_PrStad.KDPRIR AS KDPrirSt, 
                      dbo.SP_PrStad.POCKDPRIR AS PocKDPrirSt, dbo.View_SP_MlBarNT1.Celkom2, dbo.View_SP_MlBarNT1.BVLPP, dbo.View_SP_MlBarNT1.DLVLPO, 
                      dbo.View_SP_MlBarNT1.DLVLPE, dbo.View_SP_MlBarNT1.MLD, dbo.View_SP_MlBarNT1.TUK, dbo.View_SP_MlBarNT1.INMLLTT, dbo.View_SP_MlBarNT1.HVMLLT, 
                      dbo.View_SP_MlBarNT1.UZITZST
FROM         dbo.View_SP_MlBarNT1 LEFT OUTER JOIN
                      dbo.SC_Plemena ON dbo.SC_Plemena.KODPL2 = dbo.View_SP_MlBarNT1.Plem1 LEFT OUTER JOIN
                      dbo.SP_PrPlem ON REPLACE(dbo.SP_PrPlem.PLEMST, ' ', '') = dbo.View_SP_MlBarNT1.Plem1 AND 
                      dbo.SP_PrPlem.ROKNAR = dbo.View_SP_MlBarNT1.RokNar LEFT OUTER JOIN
                      dbo.SP_PrStad ON dbo.SP_PrStad.KROKR = dbo.View_SP_MlBarNT1.KROKR AND dbo.SP_PrStad.PODNIK = dbo.View_SP_MlBarNT1.PODNIK AND 
                      dbo.SP_PrStad.STADO = dbo.View_SP_MlBarNT1.STADO AND dbo.SP_PrStad.ROKNAR = dbo.View_SP_MlBarNT1.RokNar
go


CREATE VIEW [dbo].[View_CP_Meso_6_spolu]
AS
SELECT        COUNT(*) AS spolu, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL)
GROUP BY k.CHOVATEL

go

CREATE VIEW dbo.View_CP_Rodokmen_Krava_mlieko
AS
SELECT     k.IDKRAVY, k.IDMA, k.IDOT, k.CISKRAVY AS K, k.FARBA AS K_farba, f.NAZF AS K_farbaText, pl.NAZTYP AS plemenentip, k.BB_NAME, k.PORLAKMAX, k.POCVSETLAK, k.DATNAR, k.TRUZIT, k.PK, 
                      k.POCNORLAK, k.CHOVATEL, ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, 
                      k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS K_plemena, k.MLIEKOMAX, 
                      k.MLIEKOPR, k.TUKMAX, k.TUKPRKG, NULLIF (k.TUKMAX, 0) * 100 / k.MLIEKOMAX AS K_TukMaxP, k.TUKPRPER, k.BIELMAX, k.BIELPRKG, NULLIF (k.BIELMAX, 0) * 100 / k.MLIEKOMAX AS K_bielkP, 
                      k.BIELPRPER, k.LAKTOZAMAX, NULLIF (k.LAKTOZAMAX, 0) * 100 / k.MLIEKOMAX AS K_LaktMaxP, mho.SPI AS M_SPI, ho.REL * 100 AS K_REl, ho.M305 AS K_M305, ho.RPHM AS K_RPHM, 
                      ho.T305 AS K_T305, ho.RPHT AS K_RPHT, ho.B305 AS K_B305, ho.RPHB AS K_RPHB, m.CISKRAVY AS M, m.BB_NAME AS M_name, m.PK AS M_PK, mpl.NAZTYP AS M_plemTyp, 
                      m.FARBA AS M_farbaKod, mf.NAZF AS M_farbaText, m.PORLAKMAX AS M_MaxLakt, m.POCNORLAK AS M_PocNlak, m.POCVSETLAK AS M_pocVsLakt, m.DATNAR AS M_datnar, 
                      m.TRUZIT AS M_TRUZ, m.CHOVATEL AS M_chovatel, ISNULL(m.PL1 + '-' + CONVERT(varchar, m.KR1), '') + '  ' + ISNULL(ISNULL(m.PL2, '') + '-' + CONVERT(varchar, m.KR2), '') 
                      + '  ' + ISNULL(m.PL3 + '-' + CONVERT(varchar, m.KR3), '') + '  ' + ISNULL(m.PL4 + '-' + CONVERT(varchar, m.KR4), '') + '  ' + ISNULL(m.PL5 + '-' + CONVERT(varchar, 
                      100 - (m.KR1 + m.KR2 + m.KR3 + m.KR4)), '') AS M_plemena, m.MLIEKOMAX AS M_mliekoMax, m.MLIEKOPR AS M_mliekoPr, m.TUKMAX AS M_tukMax, m.TUKPRKG AS M_tukPr, 
                      NULLIF (m.TUKMAX, 0) * 100 / m.MLIEKOMAX AS M_TukMaxP, m.TUKPRPER AS M_tukPrP, m.BIELMAX AS M_bielkMax, m.BIELPRKG AS M_BielkPr, NULLIF (m.BIELMAX, 0) 
                      * 100 / m.MLIEKOMAX AS M_bielkP, m.BIELPRPER AS M_bielkPrP, m.LAKTOZAMAX AS M_laktMax, NULLIF (m.LAKTOZAMAX, 0) * 100 / m.MLIEKOMAX AS M_LaktMaxP, mho.SPI, 
                      mho.REL * 100 AS M_REl, mho.M305 AS M_M305, mho.RPHM AS M_RPHM, mho.T305 AS M_T305, mho.RPHT AS M_RPHT, mho.B305 AS M_B305, mho.RPHB AS M_RPHB, o.BYK AS Otec, 
                      o.PK AS O_PK, o.cery AS O_cery, o.stada AS O_Stada, o.plemTyp AS O_plemTyp, o.lin AS O_lin, o.SKUPINA AS O_skupina, o.MENO AS O_meno, o.SPI AS O_SPI, o.REL AS O_REL, 
                      o.MLIEKO AS O_mlieko, o.TUK AS O_tuk, o.TUKP AS O_tukp, o.BIELK AS O_bielk, o.BIELKP AS O_Bielkp, o.DATNAR AS O_datnar, o.FARBA AS O_farbaKod, o.NAZF AS O_farbaText, 
                      o.plemena AS O_plemena, k.ZNMATBYK AS K_ZNMATBYK, k.LAKTPRKG AS K_LAKTPRKG, k.LAKTPRPER AS K_LAKTPRPERC, k.BB_COUNTRYCODE AS K_COUNTRYCODE, 
                      pl.UZITKOVYTYP AS K_UZTYP, ho.ROKSPRAC AS K_ROKSPRAC, ho.MESSPRAC AS K_MESSPRAC, o.KRVROZ AS O_KRVROZ, o.DATKRVROZ AS O_DATKRVROZ, 
                      o.BB_COUNTRYCODE AS O_COUNTRYCODE, o.ROKSPRAC AS O_ROKSPRAC, o.MESSPRAC AS O_MESSPRAC, o.UZITKOVYTYP AS O_UZTYP, o.PHHMOT120 AS O_PHHMOT120, 
                      o.PHHMOT210 AS O_PHHMOT210, o.PHHMOT365 AS O_PHHMOT365, o.SPOLAHL AS O_SPOLAHL, o.SC305 AS O_SC305, o.RPHSC AS O_RPHSC, o.RELSB AS O_RELSB, 
                      mho.ROKSPRAC AS M_ROKSPRAC, mho.MESSPRAC AS M_MESSPRAC, m.ZNMATBYK AS M_ZNAMATBYK, m.LAKTPRKG AS M_LAKTPRKG, m.LAKTPRPER AS M_LAKTPRPERC, 
                      m.BB_COUNTRYCODE AS M_COUNTRYCODE, mpl.UZITKOVYTYP AS M_UZTYP, MV.vahaNar AS M_HMOTNR, MV.vaha120 AS M_HMOT120, MV.priras120 AS M_PRIR120, 
                      MV.zpriras120 AS M_ZPRIR120, MV.vaha210 AS M_HMOT210, MV.priras210 AS M_PRIR210, MV.zproras210 AS M_ZPRIR210, MV.vaha365 AS M_HMOT365, MV.priras365 AS M_PRIR365, 
                      MV.zpriras365 AS M_ZPRIR365, MV.vaha500 AS M_HMOT500, MV.priras500 AS M_PRIR500, MV.zpriras500 AS M_ZPRIR500, KV.vahaNar, KV.vaha120, KV.priras120, KV.zpriras120, KV.vaha210, 
                      KV.priras210, KV.zproras210, KV.vaha365, KV.priras365, KV.zpriras365, KV.vaha500, KV.priras500, KV.zpriras500, ho.SPI AS K_SPI
FROM         dbo.CM_Krava AS k LEFT OUTER JOIN
                      dbo.CM_KravyTDM AS ho ON ho.CISLO = k.CISKRAVY LEFT OUTER JOIN
                      dbo.CC_Farby AS f ON k.FARBA = f.KODF LEFT OUTER JOIN
                      dbo.View_CP_poslednoHodnotenieBycy AS o ON k.IDOT = o.IDBYKA LEFT OUTER JOIN
                      dbo.CM_Krava AS m ON k.IDMA = m.IDKRAVY LEFT OUTER JOIN
                      dbo.CM_KravyTDM AS mho ON mho.CISLO = m.CISKRAVY LEFT OUTER JOIN
                      dbo.CC_Farby AS mf ON m.FARBA = mf.KODF LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS pl ON k.TYPPLEM = pl.TYPC LEFT OUTER JOIN
                      dbo.CC_PlemTyp AS mpl ON m.TYPPLEM = mpl.TYPC LEFT OUTER JOIN
                      dbo.CP_Meso_TelataVahy AS MV ON MV.cistelata = m.CISKRAVY LEFT OUTER JOIN
                      dbo.CP_Meso_TelataVahy AS KV ON KV.cistelata = k.CISKRAVY
go


CREATE VIEW [dbo].[View_CP_Meso_6_v2]
AS
SELECT        COUNT(*) AS pv2, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL) AND (p.medziobd BETWEEN 321 AND 365)
GROUP BY k.CHOVATEL

go

CREATE VIEW dbo.View_CP_Pribuznosti_KravyJalovic
AS
select k.ciskravy,k.PL1, k.CHOVATEL, DATEDIFF(day,k.datnar,getdate())/30.42 as vek,
k.OUSCIS as o,ko.MLIEKO,ko.SPI,ko.REL,ko.TUK,ko.TUKP,ko.BIELK,ko.BIELKP,
ko.OTUSCIS as oo, b.OTUSCIS as OOO,mo.OUSCIS as OMO, mm.OUSCIS as OM,oom.OTUSCIS as OOM,omm.OUSCIS as OMM

from plis.dbo.CM_Krava as k


left join plis.dbo.View_cp_pripusteniKravy as i
on k.ciskravy=i.IPLCA

left join plis.[dbo].[View_CP_poslednoHodnotenieBycy] as ko
on k.OUSCIS=ko.BYK
left join plis.dbo.CM_Byci as b on 
ko.OTUSCIS=b.USCISLO
left join plis.dbo.CM_Krava as mo
on ko.MATKA=mo.CISKRAVY
left join plis.dbo.CM_Krava as mm
on k.MA=mm.CISKRAVY
left join plis.dbo.CM_Byci as oom
on mm.OUSCIS=oom.USCISLO

left join plis.dbo.CM_Krava as omm
on mm.MA=omm.CISKRAVY



union


select k.CISTELATA,k.pl1, k.CHOVATEL, DATEDIFF(day,k.datnar,getdate())/30.42 as vek,
k.OUC as o,ko.MLIEKO,ko.SPI,ko.REL,ko.TUK,ko.TUKP,ko.BIELK,ko.BIELKP,
ko.OTUSCIS as oo, b.OTUSCIS as OOO,mo.OUSCIS as OMO, mm.OUSCIS as OM,oom.OTUSCIS as OOM,omm.OUSCIS as OMM

from plis.dbo.View_CP_Mlieko_zoznamJalovic as k

left join plis.dbo.View_cp_pripusteniKravy as i
on k.CISTELATA=i.IPLCA

left join plis.[dbo].[View_CP_poslednoHodnotenieBycy] as ko
on k.otec=ko.BYK
left join plis.dbo.CM_Byci as b on 
ko.OTUSCIS=b.USCISLO
left join plis.dbo.CM_Krava as mo
on ko.MATKA=mo.CISKRAVY
left join plis.dbo.CM_Krava as mm
on k.MATKA=mm.CISKRAVY

left join plis.dbo.CM_Byci as oom
on mm.OUSCIS=oom.USCISLO

left join plis.dbo.CM_Krava as omm
on mm.MA=omm.CISKRAVY
go

CREATE VIEW dbo.View_CP_telni_jalovic
AS
SELECT        t.CISTELATA, t.DATNAR, t.CHOVATEL, p.IPLCA, p.IBLIN, p.IBREG, p.IDAIN, p.IVYSE, p.IDAOT, B.USCISLO AS otec, DATEADD(dd, 285, p.IDAIN) AS ocakotel
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CM_Insvyk AS p ON t.CISTELATA = p.IPLCA LEFT OUTER JOIN
                         dbo.CM_Byci AS B ON p.IBLIN = B.LIN AND p.IBREG = B.REG
WHERE        (p.IVYSE IN ('6', '7', '8', '9')) AND (DATEDIFF(day, t.DATNAR, GETDATE()) / 31.42 <= 38) AND (t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak))
go


CREATE VIEW [dbo].[View_Cp_Meso_6_v4]
AS
SELECT        COUNT(*) AS v3, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL) AND (p.medziobd BETWEEN 386 AND 400)
GROUP BY k.CHOVATEL

go


CREATE VIEW [dbo].[View_Cp_Meso_v5]
AS
SELECT        COUNT(*) AS v5, k.CHOVATEL
FROM            dbo.CM_Krava AS k LEFT OUTER JOIN
                         dbo.CP_MedziObdMesove AS p ON k.CISKRAVY = p.kravcislo AND k.PORPREBLAK = p.porpreblak
WHERE        (k.DOVVYR IS NULL) AND (p.medziobd >= 401)
GROUP BY k.CHOVATEL

go

CREATE VIEW dbo.View_cp_pripusteniKravy
AS
SELECT     IPLCA, IDAIN, IPOIN, IPOREIN, byk, IVYSE, IDAOT
FROM         dbo.View_CP_poslednaINseminaciq
WHERE     (IDAIN > IDAOT)
go

CREATE VIEW dbo.CP_export_Fstada
AS
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, NULL AS IDPAMK, NULL AS IDPAMZ, b.KONZUL, b.OBVZOO, b.SPZAIS AS VykKU, 
                         b.CHARCHOV AS StKU, NULL AS DatZrus, 0 AS vlastne
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         NM_HDDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV
WHERE        a.TYPZV = 1
/* krava*/ UNION
SELECT DISTINCT 
                         + a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, b.PLEMENAR AS idPAMK, NULL AS IDPAMZ, NULL AS konzul, NULL AS OBvzoo, NULL 
                         AS VykKU, NULL AS StKU, NULL AS DatZrus, 0 AS vlastne
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         NM_OSDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV
WHERE        a.TYPZV = 2
/*prasa*/ UNION
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, IDPAMK.IDPAM AS IDPAMK, IDPAMZ.IDPAM AS IDPAMZ, b.CISKON AS Konzul, b.CISZOO AS ObvZoo,
                          b.VYKKU, b.STKU, b.DATZRUS, 0 AS vlastne
FROM            dbo.NM_CHOVMAS AS a LEFT JOIN
                         dbo.NM_OVDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID
WHERE        a.TYPZV = 3
/* ovce*/ UNION
SELECT        a.KRAJ + a.OKRES AS KROkr, a.PODNIK, a.CHOV AS stado, a.TYPZV, a.ZRUS, a.NAZOV, a.OBEC, a.CISFARMY, IDPAMK.IDPAM AS IDPAMK, IDPAMZ.IDPAM AS IDPAMZ, b.CISKON AS Konzul, b.CISZOO AS ObvZoo,
                          b.VYKKU, b.STKU, b.DATZRUS, 0 AS vlastne
FROM            NM_CHOVMAS AS a LEFT JOIN
                         dbo.NM_OVDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT JOIN
                         dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID


WHERE        a.TYPZV = 4
go

CREATE VIEW [dbo].[View_CM_Rozbory]
AS
SELECT        r.MESSP, r.DEKSP, r.CISKRAVY, r.DATKONTR, r.ZNKONTR, r.DENDOBA, r.INTERVAL, r.CHOV, r.SKUPINA, r.MLIEKO, r.MLIEKOPR, r.PRIZ, r.PERCTUKU, r.PERCBIELK, 
                         r.PERCLAKTOZ, r.BUNECELEM, SUBSTRING(r.CHOV, 1, 6) AS cpodnikr, SUBSTRING(STR(DAY(r.DATKONTR)), 9, 2) + '.' + SUBSTRING(STR(MONTH(r.DATKONTR)), 9, 
                         2) + '.' + SUBSTRING(STR(YEAR(r.DATKONTR)), 7, 4) AS SDATKONTR, r.PorPreblak, r.LaktDni, r.PorPreblakRep, r.LaktDniRep, r.SEKCIA, k.RESPONDER
FROM            dbo.CM_Rozbory AS r LEFT OUTER JOIN
                         plis.dbo.CM_Krava AS k ON k.CISKRAVY = r.CISKRAVY

go

CREATE VIEW dbo.View_CP_telataPoOtcoNad12m
AS
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, CHOVATEL
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
AND (DATEDIFF(day, DATNAR, GETDATE())  / 30.42 BETWEEN 12.00000000001 AND 38)
GROUP BY CHOVATEL, OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 6) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62')
 AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) 
                         / 30.42 BETWEEN 12.00000000001 AND 38)
GROUP BY substring(CHOVATEL, 1, 6), OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 3) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) 
                         / 30.42  BETWEEN 12.00000000001 AND 38)
GROUP BY substring(CHOVATEL, 1, 3), OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 1) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) 
                         / 30.42  BETWEEN 12.00000000001 AND 38)
GROUP BY substring(CHOVATEL, 1, 1), OUC, OTECLIN, OTECREG
go

CREATE VIEW dbo.View_cp_telataPoOtecDo12m
AS
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, CHOVATEL
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between  0.00000000001 and 12 )
GROUP BY CHOVATEL, OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 6) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1')
 AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between  0.00000000001 and 12)
GROUP BY substring(CHOVATEL, 1, 6), OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 3) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between  0.00000000001 and 12)
GROUP BY substring(CHOVATEL, 1, 3), OUC, OTECLIN, OTECREG
UNION
SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 1) AS chovatel
FROM            dbo.CM_Telata AS t
WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between  0.00000000001 and 12 )
GROUP BY substring(CHOVATEL, 1, 1), OUC, OTECLIN, OTECREG
go



CREATE VIEW [dbo].[View_NM_MenStadOv]
AS
SELECT     TOP (100) PERCENT dbo.NM_PODNIK.KrOkr, dbo.NM_CHOVMAS.PODNIK, dbo.NM_CHOVMAS.CHOV, dbo.NM_CHOVMAS.NAZOV, dbo.NM_CHOVMAS.CISFARMY, 
                      dbo.NM_CHOVMAS.ZRUS, dbo.NM_PODNIK.NAZOV AS NazPod, dbo.NM_PODNIK.NAZOV2 AS NazPod2, dbo.NM_PODNIK.NAZOVSKR AS NazPSkr, 
                      dbo.NM_OVDETAIL.STKU, dbo.NM_OVDETAIL.PLEM, dbo.NM_OVDETAIL.CISKON, dbo.NM_OVDETAIL.CISZOO, dbo.NM_OVDETAIL.VYKKU, 
                      dbo.NM_OVDETAIL.RCHPLEMK, dbo.NM_OVDETAIL.ROKZARPK, dbo.NM_OVDETAIL.DATZRUS, dbo.NM_OVDETAIL.EXPCHOV, dbo.NM_OVDETAIL.UZITZST, 
                      dbo.NM_OVDETAIL.KOMUZOS, dbo.NM_OVDETAIL.TLACKU, dbo.NM_OVDETAIL.TLACKMU, dbo.NC_CharChov.SKRATKA AS NazStKU, 
                      dbo.NC_TypKU.NAZOVSKR AS NazVykKU, SUBSTRING(dbo.NM_OVDETAIL.PLEM, 1, 2) AS Plem1, SUBSTRING(dbo.NM_OVDETAIL.PLEM, 3, 2) AS Plem2, 
                      SUBSTRING(dbo.NM_OVDETAIL.PLEM, 5, 2) AS Plem3, SUBSTRING(dbo.NM_OVDETAIL.PLEM, 7, 2) AS Plem4
FROM         dbo.NM_CHOVMAS LEFT OUTER JOIN
                      dbo.NM_OVDETAIL ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_OVDETAIL.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_OVDETAIL.OKRES AND 
                      dbo.NM_CHOVMAS.PODNIK = dbo.NM_OVDETAIL.PODNIK AND dbo.NM_CHOVMAS.CHOV = dbo.NM_OVDETAIL.CHOV LEFT OUTER JOIN
                      dbo.NM_PODNIK ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_PODNIK.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_PODNIK.OKRES AND 
                      dbo.NM_CHOVMAS.PODNIK = dbo.NM_PODNIK.PODNIK LEFT OUTER JOIN
                      dbo.NC_CharChov ON dbo.NM_CHOVMAS.TYPZV = dbo.NC_CharChov.DRUHHZ AND dbo.NM_OVDETAIL.STKU = dbo.NC_CharChov.KOD LEFT OUTER JOIN
                      dbo.NC_TypKU ON dbo.NM_OVDETAIL.VYKKU = dbo.NC_TypKU.KOD
WHERE     (dbo.NM_CHOVMAS.TYPZV = '3' and dbo.NM_CHOVMAS.ZRUS is null and dbo.NM_OVDETAIL.DATZRUS is null and dbo.NM_OVDETAIL.VYKKU <> '8')
ORDER BY dbo.NM_PODNIK.KrOkr, dbo.NM_CHOVMAS.PODNIK, dbo.NM_CHOVMAS.CHOV


go

CREATE VIEW dbo.View_SP_SomaBahRok2
AS
SELECT        TOP (100) PERCENT KROKR, PODNIK, STADO, LUC, PUC, ZVSTAT, JCCEHZ, ROKEV, AVG(NULLIF (CAST(SOMA AS INT), 0)) AS PrSoma
FROM            dbo.SM_OVCERR
WHERE        (SOMA <> '00000')
GROUP BY KROKR, PODNIK, STADO, LUC, PUC, ZVSTAT, JCCEHZ, ROKEV
go


CREATE VIEW [dbo].[View_CM_KravaLakt]
AS
SELECT     PORLAK, DATUKNORL, LAKDNIN, MLIEKNOR, TUKNOR, CASE WHEN MLIEKNOR <> 0 THEN TUKNOR * 100 / MLIEKNOR ELSE 0 END AS TUKPER, BIELKNOR, 
                      CASE WHEN MLIEKNOR <> 0 THEN BIELKNOR * 100 / MLIEKNOR ELSE 0 END AS BIELKPER, LAKTOZAN, 
                      CASE WHEN MLIEKNOR <> 0 THEN LAKTOZAN * 100 / MLIEKNOR ELSE 0 END AS LAKTPER, MAXLAK, CISKRAVY
FROM         dbo.CM_Laktacie

go


CREATE VIEW [dbo].[View_CM_KravaPlem]
AS
SELECT     CM_Krava_1.CISKRAVY, CM_Krava_1.CHOVATEL, CM_Krava_1.DATNAR, ISNULL(CM_Krava_1.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, 
                      CM_Krava_1.KR1) <> '0' THEN CONVERT(varchar, CM_Krava_1.KR1) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL2, '') 
                      + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR2) <> '0' THEN CONVERT(varchar, CM_Krava_1.KR2) 
                      ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL3, '') + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR3) <> '0' THEN CONVERT(varchar, 
                      CM_Krava_1.KR3) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR4) 
                      <> '0' THEN CONVERT(varchar, CM_Krava_1.KR4) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL5, '') AS PLEMENO, CM_Krava_1.PORPREBLAK, 
                      CM_Krava_1.PORLAKMAX, CM_Krava_1.MLIEKOMAX, CM_Krava_1.TUKMAX, CM_Krava_1.BIELMAX, CM_Krava_1.MLIEKOPR, 
                      CM_Krava_1.TUKPRKG, CM_Krava_1.BIELPRKG, dbo.CP_PlemenaPH.nazpl, dbo.CC_PlemTyp.TYPS, dbo.CP_AVG_ML_B_T.MLIEKOPRH, 
                      dbo.CP_AVG_ML_B_T.BIELKOVINAPRH, dbo.CP_AVG_ML_B_T.TUKPRH, dbo.CP_AVG_ML_B_T.MLIEKOML, dbo.CP_AVG_ML_B_T.BIELKOVINAML, 
                      dbo.CP_AVG_ML_B_T.TUKML, dbo.CM_Byci.LIN AS OTECLIN, dbo.CM_Byci.REG AS OTECREG, /*dbo.CM_Krava.CISKRAVY*/ CM_Krava_1.MA AS MA
FROM         dbo.CM_Krava RIGHT OUTER JOIN
                      dbo.CM_Krava AS CM_Krava_1 ON dbo.CM_Krava.IDKRAVY = CM_Krava_1.IDMA LEFT OUTER JOIN
                      dbo.CM_Byci ON CM_Krava_1.IDOT = dbo.CM_Byci.IDBYKA LEFT OUTER JOIN
                      dbo.CP_PlemenaPH INNER JOIN
                      dbo.CC_PlemTyp ON dbo.CP_PlemenaPH.idpl = dbo.CC_PlemTyp.PLEMPRIS ON CM_Krava_1.TYPPLEM = dbo.CC_PlemTyp.TYPC CROSS JOIN
                      dbo.CP_AVG_ML_B_T
WHERE     (CM_Krava_1.DOVVYR IS NULL) AND (CM_Krava_1.PRIZNAKKU = '1')

go


CREATE VIEW [dbo].[View_CM_KravaPrehlad]
AS
SELECT     CM_Krava_1.CISKRAVY, CM_Krava_1.CHOVATEL, CM_Krava_1.DATNAR, ISNULL(CM_Krava_1.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, 
                      CM_Krava_1.KR1) <> '0' THEN CONVERT(varchar, CM_Krava_1.KR1) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL2, '') 
                      + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR2) <> '0' THEN CONVERT(varchar, CM_Krava_1.KR2) 
                      ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL3, '') + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR3) <> '0' THEN CONVERT(varchar, 
                      CM_Krava_1.KR3) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, CM_Krava_1.KR4) 
                      <> '0' THEN CONVERT(varchar, CM_Krava_1.KR4) ELSE '' END + ' ' + ISNULL(CM_Krava_1.PL5, '') AS PLEMENO, dbo.CC_Farby.NAZF, 
                      CM_Krava_1.PORPREBLAK, CM_Krava_1.POCVSETLAK, CM_Krava_1.POCNORLAK, CM_Krava_1.MLIEKOPR, CM_Krava_1.TUKPRKG, 
                      CM_Krava_1.TUKPRPER, CM_Krava_1.BIELPRKG, CM_Krava_1.BIELPRPER, CM_Krava_1.LAKTPRKG, CM_Krava_1.LAKTPRPER, 
                      dbo.CC_PlemTyp.TYPS, CM_Krava_1.FARMACEHZ, CM_Krava_1.MA AS MA, dbo.CM_Byci.LIN AS OTECLIN, dbo.CM_Byci.REG AS OTECREG, 
                      dbo.CM_Byci.USCISLO AS OUSCIS, dbo.CM_Byci.MENO
FROM         dbo.CM_Byci RIGHT OUTER JOIN
                      dbo.CM_Krava AS CM_Krava_1 ON dbo.CM_Byci.IDBYKA = CM_Krava_1.IDOT LEFT OUTER JOIN
                      dbo.CM_Krava ON CM_Krava_1.IDMA = dbo.CM_Krava.IDKRAVY LEFT OUTER JOIN
                      dbo.CC_Farby ON CM_Krava_1.FARBA = dbo.CC_Farby.KODF LEFT OUTER JOIN
                      dbo.CC_PlemTyp ON CM_Krava_1.TYPPLEM = dbo.CC_PlemTyp.TYPC
WHERE     (CM_Krava_1.DATVYR IS NULL) AND (CM_Krava_1.DOVVYR IS NULL)

go


CREATE VIEW [dbo].[View_SP_RokyMl]
AS
SELECT DISTINCT TOP (100) PERCENT ROKEV AS Rok
FROM         dbo.SM_RMLUZST
ORDER BY Rok DESC

go


CREATE VIEW [dbo].[View_SP_NajBahMl1]
AS
SELECT     dbo.SM_MaxMl.BAHCIS, dbo.SM_MaxMl.ROKEV, dbo.SM_MaxMl.PORLAK, dbo.SM_MaxMl.PTNL, dbo.SM_MaxMl.PBNL, dbo.SM_MaxMl.PLNL, 
                      dbo.SM_MaxMl.MNL3L, dbo.SM_MaxMl.TNL3L, dbo.SM_MaxMl.BNL3L, dbo.SM_MaxMl.LNL3L, dbo.SM_MaxMl.HVPORML, dbo.SM_MaxMl.HVPORTL, 
                      dbo.SM_MaxMl.SMNL3L, dbo.SM_MaxMl.STNL3L, dbo.SM_MaxMl.SBNL3L, dbo.SM_MaxMl.SLNL3L, dbo.SM_MaxMl.SPTNL, dbo.SM_MaxMl.SPBNL, 
                      dbo.SM_MaxMl.SPLNL, dbo.SM_MaxMl.PMNL3L, dbo.SM_MaxMl.PTNL3L, dbo.SM_MaxMl.PBNL3L, dbo.SM_MaxMl.PLNL3L, dbo.SM_MaxMl.PPTNL, 
                      dbo.SM_MaxMl.PPBNL, dbo.SM_MaxMl.PPLNL, dbo.SM_MaxMl.PUZLAK, dbo.SM_MaxMl.PROKEV, dbo.SM_MaxMl.PPORLAK, dbo.SM_BAHNICA.KROKR, 
                      dbo.SM_BAHNICA.PODNIK, dbo.SM_BAHNICA.STADO, dbo.SM_BAHNICA.LUC, dbo.SM_BAHNICA.PUC, dbo.SM_BAHNICA.BAHCIS AS Bahcis2, 
                      dbo.SM_BAHNICA.ZVSTAT, dbo.SM_BAHNICA.JCCEHZ, dbo.SM_BAHNICA.PLEM, dbo.SM_BAHNICA.DOVOD, dbo.SM_BAHNICA.DATVYR, 
                      dbo.View_NM_MenStadOv.NAZOV, dbo.View_NM_MenStadOv.VYKKU, dbo.View_NM_MenStadOv.STKU, dbo.View_NM_MenStadOv.KrOkr AS KrOkr2, 
                      dbo.View_NM_MenStadOv.CHOV, dbo.View_NM_MenStadOv.ZRUS, dbo.View_NM_MenStadOv.NazStKU, dbo.View_NM_MenStadOv.NazVykKU, 
                      dbo.SM_MaxMl.PHVPORML, dbo.SM_BAHNICA.ZPLem1
FROM         dbo.SM_MaxMl LEFT OUTER JOIN
                      dbo.SM_BAHNICA ON dbo.SM_BAHNICA.BAHCIS = dbo.SM_MaxMl.BAHCIS LEFT OUTER JOIN
                      dbo.View_NM_MenStadOv ON dbo.View_NM_MenStadOv.KrOkr = dbo.SM_BAHNICA.KROKR AND dbo.View_NM_MenStadOv.CHOV = dbo.SM_BAHNICA.STADO

go


CREATE VIEW [dbo].[View_SP_NajBahMl2]
AS
SELECT     dbo.View_SP_NajBahMl1.BAHCIS, dbo.View_SP_NajBahMl1.ROKEV, dbo.View_SP_NajBahMl1.PORLAK, dbo.View_SP_NajBahMl1.PTNL, 
                      dbo.View_SP_NajBahMl1.PBNL, dbo.View_SP_NajBahMl1.PLNL, dbo.View_SP_NajBahMl1.MNL3L, dbo.View_SP_NajBahMl1.TNL3L, dbo.View_SP_NajBahMl1.BNL3L, 
                      dbo.View_SP_NajBahMl1.LNL3L, dbo.View_SP_NajBahMl1.HVPORML, dbo.View_SP_NajBahMl1.HVPORTL, dbo.View_SP_NajBahMl1.SMNL3L, 
                      dbo.View_SP_NajBahMl1.STNL3L, dbo.View_SP_NajBahMl1.SBNL3L, dbo.View_SP_NajBahMl1.SLNL3L, dbo.View_SP_NajBahMl1.SPTNL, 
                      dbo.View_SP_NajBahMl1.SPBNL, dbo.View_SP_NajBahMl1.SPLNL, dbo.View_SP_NajBahMl1.PMNL3L, dbo.View_SP_NajBahMl1.PTNL3L, 
                      dbo.View_SP_NajBahMl1.PBNL3L, dbo.View_SP_NajBahMl1.PLNL3L, dbo.View_SP_NajBahMl1.PPTNL, dbo.View_SP_NajBahMl1.PPBNL, 
                      dbo.View_SP_NajBahMl1.PPLNL, dbo.View_SP_NajBahMl1.PUZLAK, dbo.View_SP_NajBahMl1.PROKEV, dbo.View_SP_NajBahMl1.PPORLAK, 
                      dbo.View_SP_NajBahMl1.KROKR, dbo.View_SP_NajBahMl1.PODNIK, dbo.View_SP_NajBahMl1.STADO, dbo.View_SP_NajBahMl1.LUC, dbo.View_SP_NajBahMl1.PUC, 
                      dbo.View_SP_NajBahMl1.Bahcis2, dbo.View_SP_NajBahMl1.ZVSTAT, dbo.View_SP_NajBahMl1.JCCEHZ, dbo.View_SP_NajBahMl1.PLEM, 
                      dbo.View_SP_NajBahMl1.DOVOD, dbo.View_SP_NajBahMl1.DATVYR, dbo.View_SP_NajBahMl1.NAZOV, dbo.View_SP_NajBahMl1.VYKKU, 
                      dbo.View_SP_NajBahMl1.STKU, dbo.View_SP_NajBahMl1.KrOkr2, dbo.View_SP_NajBahMl1.CHOV, dbo.View_SP_NajBahMl1.ZRUS, 
                      dbo.View_SP_NajBahMl1.NazStKU, dbo.View_SP_NajBahMl1.NazVykKU, dbo.View_SP_NajBahMl1.PHVPORML, SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 1, 2) 
                      AS Plem1, SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 3, 2) AS Plem2, SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 5, 2) AS Plem3, 
                      SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 7, 2) AS Plem4, SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 9, 2) AS KodPKrvi, dbo.SC_PodKrvi.PERCPLEM1, 
                      dbo.SC_PodKrvi.PERCPLEM2, dbo.SC_PodKrvi.PERCPLEM3, dbo.SC_PodKrvi.PERCPLEM4, dbo.View_SP_NajBahMl1.ZPLem1
FROM         dbo.View_SP_NajBahMl1 LEFT OUTER JOIN
                      dbo.SC_PodKrvi ON dbo.SC_PodKrvi.CISKOD = SUBSTRING(dbo.View_SP_NajBahMl1.PLEM, 9, 2)

go


CREATE VIEW [dbo].[View_CP_MedziObdMeso]
AS
SELECT     chovatel, SUM(medziobd) AS medzi2, SUM(medziobd) / COUNT(*) AS priemMedzi
FROM         dbo.CP_MedziObdMesove
WHERE     (medziobd BETWEEN 100 AND 1200)
GROUP BY chovatel

go


CREATE VIEW [dbo].[View_SP_NajBahMl3]
AS
SELECT     BAHCIS, ROKEV, PORLAK, PTNL, PBNL, PLNL, MNL3L, TNL3L, BNL3L, LNL3L, HVPORML, HVPORTL, SMNL3L, STNL3L, SBNL3L, SLNL3L, SPTNL, SPBNL, SPLNL, 
                      PMNL3L, PTNL3L, PBNL3L, PLNL3L, PPTNL, PPBNL, PPLNL, PUZLAK, PROKEV, PPORLAK, KROKR, PODNIK, STADO, LUC, PUC, Bahcis2, ZVSTAT, JCCEHZ, PLEM, 
                      DOVOD, DATVYR, NAZOV, VYKKU, STKU, KrOkr2, CHOV, ZRUS, NazStKU, NazVykKU, PHVPORML, Plem1, Plem2, Plem3, Plem4, KodPKrvi, PERCPLEM1, PERCPLEM2, 
                      PERCPLEM3, PERCPLEM4, CASE WHEN Plem1 IN ('M ', 'AM', 'FM', 'SM', 'KM') THEN PERCPLEM1 ELSE 0 END + CASE WHEN Plem2 IN ('M ', 'AM', 'FM', 'SM', 'KM') 
                      THEN PERCPLEM2 ELSE 0 END + CASE WHEN Plem3 IN ('M ', 'AM', 'FM', 'SM', 'KM') THEN PERCPLEM3 ELSE 0 END + CASE WHEN Plem4 IN ('M ', 'AM', 'FM', 'SM', 
                      'KM') THEN PERCPLEM4 ELSE 0 END AS PercM, CASE WHEN Plem1 IN ('ZV', 'ZU', 'V ') THEN PERCPLEM1 ELSE 0 END + CASE WHEN Plem2 IN ('ZV', 'ZU', 'V ') 
                      THEN PERCPLEM2 ELSE 0 END + CASE WHEN Plem3 IN ('ZV', 'ZU', 'V ') THEN PERCPLEM3 ELSE 0 END + CASE WHEN Plem4 IN ('ZV', 'ZU', 'V ') 
                      THEN PERCPLEM4 ELSE 0 END AS PercZV, ZPLem1
FROM         dbo.View_SP_NajBahMl2

go



CREATE view [dbo].[BB_IRODMA]
AS
SELECT     
			
			ISNULL(B.USCISLO,'') as USCISLO, 
						
		    ISNULL(B.MATKA,'') as MATKA, --MATKA
			ISNULL(M.BB_NAME,'') as MMENO, --M_meno
			'' AS MMENO1,
			ISNULL(CONVERT(varchar(3),M.PK),'') as MPK, --M_PK
			ISNULL(M.PL1 + '-' + CONVERT(VARCHAR, ISNULL(M.KR1, 0)) + ' ' 
					+ ISNULL(M.PL2 + '-' + CONVERT(VARCHAR, ISNULL(M.KR2, 0)) + ' ' 
					+ ISNULL(M.PL3 + '-' + CONVERT(VARCHAR, ISNULL(M.KR3, 0)) + ' ' 
					+ ISNULL(M.PL4 + '-' + CONVERT(VARCHAR, ISNULL(M.KR4, 0)) + ' ' 
					+ ISNULL(M.PL5,''), ''), ''),''),'') AS MPLEMENO, --M_plemeno
			'' AS Trieda,
			ISNULL(CONVERT(varchar(2),M.PORLAKMAX),'') as MMAX,--M_MAX,
			ISNULL(CONVERT(varchar(5),convert(int,M.MLIEKOMAX)),'') as MMAXML, --M_MAXML
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),M.TUKMAX)),'') as MMAXT, --M_MAXT
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),M.BIELMAX)),'')  as MMAXB,--M_MAXB
			ISNULL(convert(varchar(10),convert(decimal(8,2),(M.TUKMAX /nullif(M.MLIEKOMAX,0)*100))),'') AS MPERCT, -- M_PERCT
			ISNULL(convert(varchar(9),convert(decimal(7,2),(M.BIELMAX /nullif(M.MLIEKOMAX,0)*100))),'') AS MPERCB, --M_PERCB
			ISNULL(CONVERT(varchar(3),convert(decimal(3,0),M.POCVSETLAK)),'') as MVSET,--M_VSET
			ISNULL(CONVERT(varchar(2),M.POCNORLAK),'') as MNORM,--M_NORM
			ISNULL(CONVERT(varchar(6),convert(decimal(6,0),M.MLIEKOPR)),'') as MPRML, --M_PRML
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),M.TUKPRKG)),'') as MPRT, --M_PRT
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),M.BIELPRKG)),'') as MPRB, --M_PRB
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),(M.TUKPRKG + M.BIELPRKG))),'') as MPRTB, --M_PRTB
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),M.TUKPRPER)),'') as MPRPERCT, --M_PRPERCT
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),M.BIELPRPER)),'') as MPRPERCB, --M_PRPERCB
			ISNULL(CONVERT(varchar(7),convert(decimal(5,2),(M.TUKPRPER + M.BIELPRPER))),'') as MPRPERCTB,  --M_PRPERCTB 

						
			ISNULL(M.OUSCIS,'') as OMUC, --OM_UC
			ISNULL(CONVERT(varchar(3),M.OTECLIN),'') as OMLIN,
			ISNULL(RIGHT('000' + CONVERT(varchar,M.OTECREG),3),'') as OMREG,
			ISNULL(OM.MENO,'') as OMMENO, 
			ISNULL(OM.MENO1,'') AS OMMENO1,
			ISNULL(CONVERT(varchar(3),OM.PK),'') as OMPK,
			ISNULL(OM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(OM.KR1, 0)) + ' ' 
					+ ISNULL(OM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(OM.KR2, 0)) + ' ' 
					+ ISNULL(OM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(OM.KR3, 0)) + ' ' 
					+ ISNULL(OM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(OM.KR4, 0)) + ' ' 
					+ ISNULL(OM.PL5,''), ''), ''),''),'') AS OMPLEMENO,
			ISNULL(CONVERT(varchar(4),OMPHB.RPHM),'') as OMRPHM,
			ISNULL(CONVERT(varchar(4),OMPHB.RPHT),'') as OMRPHT,
			ISNULL(CONVERT(varchar(4),OMPHB.RPHB),'') as OMRPHB,

			ISNULL(M.MA,'') as MM, --MM_UC
			ISNULL(MM.BB_NAME,'') as MMMENO, --MM_meno 
			'' AS MMMENO1,
			ISNULL(CONVERT(varchar(3),MM.PK),'') as MMPK, -- MM_PK
			ISNULL(MM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(MM.KR1, 0)) + ' ' 
					+ ISNULL(MM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(MM.KR2, 0)) + ' ' 
					+ ISNULL(MM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(MM.KR3, 0)) + ' ' 
					+ ISNULL(MM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(MM.KR4, 0)) + ' ' 
					+ ISNULL(MM.PL5,''), ''), ''),''),'') AS MMPLEMENO,
			'' AS MMTrieda,
			ISNULL(CONVERT(varchar(2),MM.PORLAKMAX),'') as MMMAX,
			ISNULL(CONVERT(varchar(5),convert(int,MM.MLIEKOMAX)),'') as MMMAXML, 
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),MM.TUKMAX)),'')  as MMMAXT,
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),MM.BIELMAX)),'')  as MMMAXB,
			ISNULL(convert(varchar(10),convert(decimal(8,2),(MM.TUKMAX /nullif(MM.MLIEKOMAX,0)*100))),'') AS MMPERCT, -- MM_PERCT
			ISNULL(convert(varchar(9),convert(decimal(7,2),(MM.BIELMAX /nullif(MM.MLIEKOMAX,0)*100))),'') AS MMPERCB, --MM_PERCB
			ISNULL(CONVERT(varchar(3),convert(decimal(3,0),MM.POCVSETLAK)),'') as MMVSET,
			ISNULL(CONVERT(varchar(3),MM.POCNORLAK),'') as MMNORM,
			ISNULL(CONVERT(varchar(6),convert(decimal(6,0),MM.MLIEKOPR)),'') as MMPRML, 
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),MM.TUKPRKG)),'') as MMPRT, 
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),MM.BIELPRKG)),'') as MMPRB,
			ISNULL(CONVERT(varchar(4),convert(decimal(4,0),(MM.TUKPRKG + MM.BIELPRKG))),'') as MMPRTB, 
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),(MM.TUKPRPER))),'') AS MMPRPERCT, 
			ISNULL(CONVERT(varchar(6),convert(decimal(4,2),(MM.BIELPRPER))),'') AS MMPRPERCB,
			ISNULL(CONVERT(varchar(7),convert(decimal(5,2),(MM.TUKPRPER + MM.BIELPRPER))),'') as MMPRPERCTB,  --MM_PRPERCTB 
			
			ISNULL(CONVERT(varchar(3),OOM.LIN),'') as OOMLIN,
			ISNULL(RIGHT('000' + CONVERT(varchar,OOM.REG),3),'') as OOMREG,
			ISNULL(OM.OTUSCIS,'') as OOMUC, --OOM_UC
			ISNULL(OOM.MENO,'') as OOMMENO, 
			ISNULL(OOM.MENO1,'') AS OOMMENO1,
			--CONVERT(varchar(3),OOM.PK) as OOMPK,
			--OOM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(OOM.KR1, 0)) + ' ' 
			--		+ ISNULL(OOM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(OOM.KR2, 0)) + ' ' 
			--		+ ISNULL(OOM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(OOM.KR3, 0)) + ' ' 
			--		+ ISNULL(OOM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(OOM.KR4, 0)) + ' ' 
			--		+ ISNULL(OOM.PL5,''), ''), ''),'') AS OOMPLEMENO,
			ISNULL(CONVERT(varchar(4),OOMPHB.RPHM),'') as OOMRPHM,
			ISNULL(CONVERT(varchar(4),OOMPHB.RPHT),'') as OOMRPHT,
			ISNULL(CONVERT(varchar(4),OOMPHB.RPHB),'') as OOMRPHB,


			ISNULL(OM.MATKA,'') as MOM,
			ISNULL(MOM.BB_NAME,'') as MOMMENO,
			'' AS MOMMENO1, 
			'' AS MOMTrieda, 
			--CONVERT(varchar(3),MOM.PK) as MOMPK, 
			--MOM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(MOM.KR1, 0)) + ' ' 
			--		+ ISNULL(MOM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(MOM.KR2, 0)) + ' ' 
			--		+ ISNULL(MOM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(MOM.KR3, 0)) + ' ' 
			--		+ ISNULL(MOM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(MOM.KR4, 0)) + ' ' 
			--		+ ISNULL(MOM.PL5,''), ''), ''),'') AS MOMPLEMENO, 
			----CONVERT(varchar(2),MOM.PORLAKMAX) as MOMMAX,
			----CONVERT(varchar(5),MOM.MLIEKOMAX) as MOMMAXML,
			----CONVERT(varchar(3),MOM.TUKMAX)  as MOMMAXT,
			----CONVERT(varchar(3),MOM.BIELMAX)  as MOMMAXB,
			------convert(varchar(4),convert(decimal(2,2),(MOM.TUKMAX /nullif(MOM.MLIEKOMAX,0)*100))) AS MOMPERCT, 
			------convert(varchar(4),convert(decimal(2,2),(MOM.BIELMAX /nullif(MOM.MLIEKOMAX,0)*100))) AS MOMPERCB, 
			----CONVERT(varchar(3),MOM.POCVSETLAK) as MOMVSET,
			----CONVERT(varchar(3),MOM.POCNORLAK) as MOMNORM,
			----CONVERT(varchar(5),MOM.MLIEKOPR) as MOMPRML,
			----CONVERT(varchar(3),MOM.TUKPRKG) as MOMPRT, 
			----CONVERT(varchar(3),MOM.BIELPRKG) as MOMPRB, 
			----CONVERT(varchar(4),(MOM.TUKPRKG + MOM.BIELPRKG)) as MOMPRTB 
			------CONVERT(varchar(4),convert(decimal(2,2),(MOM.TUKPRPER))) AS MOMPRPERCT, 
			------CONVERT(varchar(4),convert(decimal(2,2),(MOM.BIELPRPER))) AS MOMPERCB,
			------CONVERT(varchar(4),convert(decimal(2,2),(MOM.TUKPRPER + MOM.BIELPRPER)) as MOMPRPERCTB 
								
			
			ISNULL(CONVERT(varchar(3),OMM.LIN),'') AS OMMLIN,
			ISNULL(CONVERT(varchar(3),OMM.REG),'') AS OMMREG, 
			ISNULL(OM.OTUSCIS,'') AS OMMUS, 
			ISNULL(OMM.MENO,'') as OMMMENO,
			ISNULL(OMM.MENO1,'') AS OMMMENO1,
			--CONVERT(varchar(3),OMM.PK) as OPK, 
			--OMM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(OMM.KR1, 0)) + ' ' 
			--		+ ISNULL(OMM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(OMM.KR2, 0)) + ' ' 
			--		+ ISNULL(OMM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(OMM.KR3, 0)) + ' ' 
			--		+ ISNULL(OMM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(OMM.KR4, 0)) + ' ' 
			--		+ ISNULL(OMM.PL5,''), ''), ''),'') AS OMMPLEMENO, 
			ISNULL(CONVERT(varchar(4),OMMPHB.RPHM),'') as OMMRPHM, 
			ISNULL(CONVERT(varchar(4),OMMPHB.RPHT),'') as OMMRPHT, 
			ISNULL(CONVERT(varchar(4),OMMPHB.RPHB),'') as OMMRPHB, 


			ISNULL(MM.MA,'') as MMM,
			ISNULL(MMM.BB_NAME,'') as MMMMENO, 
			'' AS MMMMENO1, 
			'' AS MMMTrieda 
			----CONVERT(varchar(3),MMM.PK) as MMMPK, 
			----MMM.PL1 + '-' + CONVERT(VARCHAR, ISNULL(MMM.KR1, 0)) + ' ' 
			----		+ ISNULL(MMM.PL2 + '-' + CONVERT(VARCHAR, ISNULL(MMM.KR2, 0)) + ' ' 
			----		+ ISNULL(MMM.PL3 + '-' + CONVERT(VARCHAR, ISNULL(MMM.KR3, 0)) + ' ' 
			----		+ ISNULL(MMM.PL4 + '-' + CONVERT(VARCHAR, ISNULL(MMM.KR4, 0)) + ' ' 
			----		+ ISNULL(MMM.PL5,''), ''), ''),'') AS MMMPLEMENO, 
			----CONVERT(varchar(2),MMM.PORLAKMAX) as MMMMAX,
			----CONVERT(varchar(5),MMM.MLIEKOMAX) as MMMMAXML,
			----CONVERT(varchar(3),MMM.TUKMAX)  as MMMMAXT,
			----CONVERT(varchar(3),MMM.BIELMAX)  as MMMMAXB,
			------convert(varchar(4),convert(decimal(2,2),(MMM.TUKMAX /nullif(MMM.MLIEKOMAX,0)*100))) AS MMMPERCT, 
			------convert(varchar(4),convert(decimal(2,2),(MMM.BIELMAX /nullif(MMM.MLIEKOMAX,0)*100))) AS MMMPERCB, 
			----CONVERT(varchar(3),MMM.POCVSETLAK) as MMMVSET,
			----CONVERT(varchar(3),MMM.POCNORLAK) as MMMNORM,
			----CONVERT(varchar(5),MMM.MLIEKOPR) as MMMPRML,
			----CONVERT(varchar(3),MMM.TUKPRKG) as MMMPRT, 
			----CONVERT(varchar(3),MMM.BIELPRKG) as MMMPRB, 
			----CONVERT(varchar(4),(MMM.TUKPRKG + MMM.BIELPRKG)) as MMMPRTB, 
			------CONVERT(varchar(4),convert(decimal(2,2),(MMM.TUKPRPER))) AS MMMPRPERCT, 
			------CONVERT(varchar(4),convert(decimal(2,2),(MMM.BIELPRPER))) AS MMMPERCB,
			------CONVERT(varchar(4),convert(decimal(2,2),(MMM.TUKPRPER + MMM.BIELPRPER)) as MMMPRPERCTB 


			
FROM        CM_Byci as B 
				--LEFT OUTER JOIN CM_Byci as O oN O.USCISLO = B.OTUSCIS 
				--LEFT OUTER JOIN CM_Byci as OO on OO.USCISLO = O.OTUSCIS 
				--LEFT OUTER JOIN CM_Krava as MO on MO.CISKRAVY = O.MATKA 	
				LEFT OUTER JOIN CM_Krava as M ON M.CISKRAVY = B.MATKA 
				LEFT OUTER JOIN CM_Krava as MM on MM.CISKRAVY = M.MA 
				LEFT OUTER JOIN CM_Krava as MMM on MMM.CISKRAVY = MM.MA 
				LEFT OUTER JOIN CM_Byci as OMM on OMM.USCISLO = MM.OUSCIS 
				LEFT OUTER JOIN CM_Byci as OM on OM.USCISLO = M.OUSCIS 
				LEFT OUTER JOIN CM_Krava as MOM on MOM.CISKRAVY = OM.MATKA 
				LEFT OUTER JOIN CM_Byci as OOM on OOM.USCISLO = OM.OTUSCIS 
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OMPHB on OMPHB.BYK = OM.USCISLO
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OMMPHB on OMMPHB.BYK = OMM.USCISLO
				LEFT OUTER JOIN View_CP_poslednoHodnotenieBycy as OOMPHB on OOMPHB.BYK = OOM.USCISLO
						
				 where B.BB_ANIMAL_ID is not null
					
;


go

CREATE VIEW [dbo].[View_CP_ChovSumPLInt]
  AS
    --SELECT     TOP (100) PERCENT CHOVATEL, PL, SUM(KRV) AS KRV
    --FROM         dbo.CP_CHOVPL
    --WHERE     (PL IS NOT NULL)
    --GROUP BY CHOVATEL, PL
    --ORDER BY CHOVATEL, KRV DESC

    SELECT
      CHOVATEL,
      PL,
      convert(int, SUM(KRV))  AS KRV
    FROM (SELECT TOP (100) PERCENT
            CHOVATEL,
            CASE WHEN PL in ('H', 'R', 'M', 'N', 'F')
              THEN 'H'
            WHEN PL in ('S', 'MB')
              THEN 'S'
            ELSE PL END as PL,
            KRV
          FROM dbo.CP_CHOVPL
          WHERE (PL IS NOT NULL)
         ) as s
    GROUP BY CHOVATEL, PL
go

CREATE VIEW dbo.View_NM_Nazvy
AS
SELECT     dbo.NM_CHOVMAS.KRAJ + dbo.NM_CHOVMAS.OKRES + dbo.NM_CHOVMAS.PODNIK + dbo.NM_CHOVMAS.CHOV AS CHOVATEL, 
                      dbo.NC_KRAJ.NAZOV AS KRAJNAZOV, dbo.NC_OKRES.NAZOV AS OKRESNAZOV, dbo.NM_PODNIK.NAZOV AS PODNIKNAZOV, 
                      dbo.NM_PODNIK.NAZOV2 AS PODNIKNAZOV2, dbo.NM_PODNIK.NAZOVSKR AS PODNIKNAZOVSKR, dbo.NM_CHOVMAS.NAZOV AS CHOVNAZOV
FROM         dbo.NM_CHOVMAS LEFT OUTER JOIN
                      dbo.NM_PODNIK ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_PODNIK.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_PODNIK.OKRES AND 
                      dbo.NM_CHOVMAS.PODNIK = dbo.NM_PODNIK.PODNIK LEFT OUTER JOIN
                      dbo.NC_OKRES ON dbo.NM_PODNIK.KRAJ = dbo.NC_OKRES.KRAJ AND dbo.NM_PODNIK.OKRES = dbo.NC_OKRES.OKRES LEFT OUTER JOIN
                      dbo.NC_KRAJ ON dbo.NC_OKRES.KRAJ = dbo.NC_KRAJ.KRAJ
WHERE     (dbo.NM_CHOVMAS.TYPZV = '1') AND (dbo.NM_CHOVMAS.ZRUS IS NULL)
go

CREATE VIEW dbo.PW_ChovateliaOS
AS
SELECT     dbo.NM_Chovmas.KRAJ, dbo.NM_Chovmas.OKRES, dbo.NM_Chovmas.PODNIK, dbo.NM_Chovmas.CHOV, dbo.NM_Chovmas.NAZOV, 
                      dbo.NM_Chovmas.TYPZV, dbo.NM_Chovmas.ZRUS, dbo.NM_Podnik.KRAJ AS Expr5, dbo.NM_Podnik.OKRES AS Expr6, 
                      dbo.NM_Podnik.PODNIK AS Expr7, dbo.NM_Podnik.NAZOVSKR, dbo.NM_OsDetail.KRAJ AS Expr1, dbo.NM_OsDetail.OKRES AS Expr2, 
                      dbo.NM_OsDetail.PODNIK AS Expr3, dbo.NM_OsDetail.CHOV AS Expr4, dbo.NM_OsDetail.PLEMENAR, dbo.NM_PracSPU.IDPAM, 
                      dbo.NM_PracSPU.OSOBA
FROM         dbo.NM_Chovmas LEFT OUTER JOIN
                      dbo.NM_Podnik ON dbo.NM_Chovmas.KRAJ = dbo.NM_Podnik.KRAJ AND dbo.NM_Chovmas.OKRES = dbo.NM_Podnik.OKRES AND 
                      dbo.NM_Chovmas.PODNIK = dbo.NM_Podnik.PODNIK LEFT OUTER JOIN
                      dbo.NM_OsDetail ON dbo.NM_Chovmas.KRAJ = dbo.NM_OsDetail.KRAJ AND dbo.NM_Chovmas.OKRES = dbo.NM_OsDetail.OKRES AND 
                      dbo.NM_Chovmas.PODNIK = dbo.NM_OsDetail.PODNIK AND dbo.NM_Chovmas.CHOV = dbo.NM_OsDetail.CHOV LEFT OUTER JOIN
                      dbo.NM_PracSPU ON dbo.NM_OsDetail.PLEMENAR = dbo.NM_PracSPU.IDPAM
WHERE     (dbo.NM_Chovmas.TYPZV = '2') AND (dbo.NM_Chovmas.ZRUS IS NULL)
go

CREATE VIEW dbo.View_SP_NajBahMl4
AS
SELECT     BAHCIS, ROKEV, PORLAK, PTNL, PBNL, PLNL, MNL3L, TNL3L, BNL3L, LNL3L, HVPORML, HVPORTL, SMNL3L, STNL3L, SBNL3L, SLNL3L, SPTNL, SPBNL, SPLNL, 
                      PMNL3L, PTNL3L, PBNL3L, PLNL3L, PPTNL, PPBNL, PPLNL, PUZLAK, PROKEV, PPORLAK, KROKR, PODNIK, STADO, LUC, PUC, Bahcis2, 
                      CASE WHEN ZVSTAT IS NOT NULL THEN ZVSTAT + REPLACE(STR(CONVERT(float, JCCEHZ), 12), ' ', '.') ELSE '              ' END AS CEHZ, PLEM, DOVOD, DATVYR, 
                      NAZOV, VYKKU, STKU, KrOkr2, CHOV, ZRUS, NazStKU, NazVykKU, PHVPORML, Plem1, Plem2, Plem3, Plem4, KodPKrvi, PERCPLEM1, PERCPLEM2, PERCPLEM3, 
                      PERCPLEM4, PercM, PercZV, CASE WHEN KodPkrvi IN ('00', '01') 
                      THEN ZPlem1 WHEN PercM >= 87.5 THEN 'M ' WHEN PercZV >= 87.5 THEN 'ZV' WHEN ZPlem1 = 'C ' OR
                      (Plem2 = 'C ' AND ZPLEM1 <> 'ZV' AND ZPlem1 <> 'M ') OR
                      (PLEM3 = 'C ' AND ZPLEM1 <> 'ZV' AND ZPlem1 <> 'M ' AND Plem2 <> 'ZV' AND Plem2 <> 'M ') THEN 'CX' WHEN ZPlem1 = 'ZV' OR
                      (Plem2 = 'ZV' AND ZPlem1 <> 'M ' AND ZPlem1 <> 'C ') OR
                      (Plem3 = 'ZV' AND ZPlem1 <> 'M ' AND ZPlem1 <> 'C ' AND Plem2 <> 'M ' AND Plem2 <> 'C ') THEN 'ZVX' WHEN ZPlem1 = 'M ' OR
                      (Plem2 = 'M ' AND ZPlem1 <> 'ZV' AND ZPlem1 <> 'C ') OR
                      (Plem3 = 'M ' AND ZPlem1 <> 'ZV' AND ZPlem1 <> 'C ' AND Plem2 <> 'ZV' AND Plem2 <> 'C ') THEN 'MX' ELSE '  ' END AS PlemSkup
FROM         dbo.View_SP_NajBahMl3
go

CREATE VIEW dbo.View_CP_ChovMaxPLInt
  AS
    SELECT     TOP (100) PERCENT s.CHOVATEL, s.maxkrv, LTRIM(c.PL) AS PL
    FROM         (SELECT     CHOVATEL, MAX(KRV) AS maxkrv
                  FROM          dbo.View_CP_ChovSumPLInt
                  GROUP BY CHOVATEL) AS s INNER JOIN
      dbo.View_CP_ChovSumPLInt AS c ON s.CHOVATEL = c.CHOVATEL AND s.maxkrv = c.KRV
    ORDER BY PL
go


CREATE VIEW [dbo].[View_SP_MlPlemRR]
AS
SELECT     dbo.SM_MLPLEMRR.ROK, dbo.SM_MLPLEMRR.PLEMUP, dbo.SM_MLPLEMRR.POCETVS, dbo.SM_MLPLEMRR.POCETMNL, dbo.SM_MLPLEMRR.POCETTNL, 
                      dbo.SM_MLPLEMRR.POCETBNL, dbo.SM_MLPLEMRR.POCETLNL, dbo.SM_MLPLEMRR.SMNL, dbo.SM_MLPLEMRR.STNL, dbo.SM_MLPLEMRR.SPTNL, 
                      dbo.SM_MLPLEMRR.SBNL, dbo.SM_MLPLEMRR.SPBNL, dbo.SM_MLPLEMRR.SLNL, dbo.SM_MLPLEMRR.SPLNL, dbo.SM_MLPLEMRR.STKU, 
                      dbo.SM_MLPLEMRR.VYKKU, dbo.SM_MLPLEMRR.DruhHZ, dbo.NC_CharChov.SKRATKA
FROM         dbo.SM_MLPLEMRR LEFT OUTER JOIN
                      dbo.NC_CharChov ON dbo.NC_CharChov.DRUHHZ = dbo.SM_MLPLEMRR.DruhHZ AND dbo.NC_CharChov.KOD = dbo.SM_MLPLEMRR.STKU

go


CREATE VIEW [dbo].[View_SP_PHMlbar]
AS
SELECT     TOP (100) PERCENT dbo.SM_BLPHML.JEDCIS, dbo.SM_BLPHML.PHMLIEKO, dbo.SM_BLPHML.PHTUK, dbo.SM_BLPHML.PHBIEL, dbo.SM_BLPHML.PLEMSK, 
                      dbo.SM_Baran.KROKR, dbo.SM_Baran.PODNIK, dbo.SM_Baran.STADO, dbo.SM_Baran.LUC, dbo.SM_Baran.PUC, dbo.SM_Baran.BARCIS, 
                      dbo.SM_Baran.ZVSTAT + dbo.SM_Baran.JCCEHZ AS CEHZ, dbo.SM_Baran.PLEM, dbo.SM_Baran.DATNAR, dbo.SM_Baran.DOVOD, dbo.SM_Baran.DATVYR, 
                      dbo.View_NM_MenStadOv.KrOkr AS KrOkrMen, dbo.View_NM_MenStadOv.CHOV, dbo.View_NM_MenStadOv.NazPSkr, dbo.View_NM_MenStadOv.STKU, 
                      dbo.View_NM_MenStadOv.CISKON, dbo.View_NM_MenStadOv.VYKKU, dbo.SM_BLPHML.POHL, dbo.View_NM_MenStadOv.NazStKU, 
                      dbo.View_NM_MenStadOv.NazVykKU
FROM         dbo.SM_BLPHML LEFT OUTER JOIN
                      dbo.SM_Baran ON dbo.SM_BLPHML.JEDCIS = dbo.SM_Baran.BARCIS LEFT OUTER JOIN
                      dbo.View_NM_MenStadOv ON dbo.SM_Baran.KROKR = dbo.View_NM_MenStadOv.KrOkr AND dbo.SM_Baran.STADO = dbo.View_NM_MenStadOv.CHOV
WHERE     (dbo.SM_BLPHML.POHL = '2') AND (dbo.SM_Baran.DOVOD = '0') AND (dbo.SM_Baran.DATVYR IS NULL) AND (dbo.View_NM_MenStadOv.STKU = '1' OR
                      dbo.View_NM_MenStadOv.STKU = '2') AND (dbo.View_NM_MenStadOv.CISKON <> '00000') AND (dbo.SM_BLPHML.PHMLIEKO > 0)
ORDER BY dbo.SM_BLPHML.PHMLIEKO DESC

go

CREATE VIEW dbo.View_CP_meso_zoznamTelata_Sumar
AS
SELECT        t.CHOVATEL, DATEDIFF(MONTH, t.DATNAR, GETDATE()) AS VekMesac, DATEDIFF(day, t.DATNAR, GETDATE()) AS VekDni, t.CISTELATA, t.POHLAVIE, t.DOVVYR, t.TYPPLEM, p.TYPS, p.UZITKOVYTYP, p.PODIEL1, 
                         p.PODIEL2, t.OUC, b.MENO, t.OTECLIN, t.OTECREG, bp.UZITKOVYTYP AS OtecUzitkovyTyp, bp.NAZTYP AS PlemenoOtca, p.NAZTYP, t.HMOTNAR, v.vaha120, v.priras120, v.zpriras120, v.vaha210, v.priras210, 
                         v.zproras210, v.vaha365, v.priras365, v.zpriras365, v.vaha500, v.priras500, v.zpriras500, t.DATNAR, t.MATKA
FROM            dbo.CM_Telata AS t LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS p ON t.TYPPLEM = p.TYPC LEFT OUTER JOIN
                         dbo.CP_Meso_TelataVahy AS v ON t.CISTELATA = v.cistelata LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON t.OUC = b.USCISLO LEFT OUTER JOIN
                         dbo.CC_PlemTyp AS bp ON b.TYPPLEM = bp.TYPC
WHERE        (t.PRIZNAKKU = '2') AND (t.POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (t.CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava
                               WHERE        (DOVVYR IS NULL)))
go


CREATE VIEW [dbo].[View_SP_PlemSk]
AS
SELECT     TOP (100) PERCENT dbo.SM_BLPHML.PLEMSK, SUM(1) AS Pocet, CASE WHEN plemsk LIKE '%X%' THEN 1 ELSE 0 END AS Typ, dbo.SC_Plemena.KODPL2, 
                      dbo.SC_Plemena.NAZOVD + CASE WHEN plemsk LIKE '%X%' THEN ' - KRÍŽENCE' ELSE '' END AS Nazov2
FROM         dbo.SM_BLPHML INNER JOIN
                      dbo.SC_Plemena ON REPLACE(SUBSTRING(dbo.SM_BLPHML.PLEMSK, 1, 2), 'X', ' ') = dbo.SC_Plemena.KODPL2
GROUP BY dbo.SM_BLPHML.PLEMSK, dbo.SC_Plemena.KODPL2, dbo.SC_Plemena.NAZOVD
ORDER BY Pocet DESC

go


CREATE VIEW [dbo].[View_SP_RMlUzSt]
AS
SELECT     dbo.SM_RMLUZST.KROKR, dbo.SM_RMLUZST.PODNIK, dbo.SM_RMLUZST.STADO, dbo.SM_RMLUZST.NAZOV, dbo.SM_RMLUZST.PLEM, dbo.SM_RMLUZST.STKU, 
                      dbo.SM_RMLUZST.VYKKU, dbo.SM_RMLUZST.ROKEV, dbo.SM_RMLUZST.SML, dbo.SM_RMLUZST.STL, dbo.SM_RMLUZST.SBL, dbo.SM_RMLUZST.SLL, 
                      dbo.SM_RMLUZST.SMNL, dbo.SM_RMLUZST.SPTNL, dbo.SM_RMLUZST.SPBNL, dbo.SM_RMLUZST.SPLNL, dbo.SM_RMLUZST.STNL, dbo.SM_RMLUZST.SBNL, 
                      dbo.SM_RMLUZST.SLNL, dbo.SM_RMLUZST.SKMNL, dbo.SM_RMLUZST.SKTNL, dbo.SM_RMLUZST.SKBNL, dbo.SM_RMLUZST.SKLNL, 
                      dbo.SM_RMLUZST.POCETMNL, dbo.SM_RMLUZST.POCETTNL, dbo.SM_RMLUZST.POCETBNL, dbo.SM_RMLUZST.POCETLNL, dbo.SM_RMLUZST.POCETVS, 
                      dbo.SM_RMLUZST.SMODMNL, dbo.SM_RMLUZST.SMODTNL, dbo.SM_RMLUZST.SMODBNL, dbo.SM_RMLUZST.SMODLNL, dbo.SM_RMLUZST.PDDP, 
                      dbo.NC_CharChov.SKRATKA
FROM         dbo.SM_RMLUZST LEFT OUTER JOIN
                      dbo.NC_CharChov ON dbo.NC_CharChov.KOD = dbo.SM_RMLUZST.STKU AND dbo.NC_CharChov.DRUHHZ = 3

go



CREATE VIEW [dbo].[View_NM_MenStadKo]
AS
SELECT     TOP (100) PERCENT dbo.NM_PODNIK.KrOkr, dbo.NM_CHOVMAS.PODNIK, dbo.NM_CHOVMAS.CHOV, dbo.NM_CHOVMAS.NAZOV, dbo.NM_CHOVMAS.CISFARMY, 
                      dbo.NM_CHOVMAS.ZRUS, dbo.NM_PODNIK.NAZOV AS NazPod, dbo.NM_PODNIK.NAZOV2 AS NazPod2, dbo.NM_PODNIK.NAZOVSKR AS NazPSkr, 
                      dbo.NM_KODETAIL.STKU, dbo.NM_KODETAIL.PLEM, dbo.NM_KODETAIL.CISKON, dbo.NM_KODETAIL.CISZOO, dbo.NM_KODETAIL.VYKKU, 
                      dbo.NM_KODETAIL.RCHPLEMK, dbo.NM_KODETAIL.ROKZARPK, dbo.NM_KODETAIL.DATZRUS, dbo.NM_KODETAIL.KOMUZOS, dbo.NM_KODETAIL.TLACKU, 
                      dbo.NM_KODETAIL.TLACKMU, dbo.NC_CharChov.SKRATKA AS NazStKU, dbo.NC_TypKU.NAZOVSKR AS NazVykKU, SUBSTRING(dbo.NM_KODETAIL.PLEM, 1, 2) 
                      AS Plem1, SUBSTRING(dbo.NM_KODETAIL.PLEM, 3, 2) AS Plem2, SUBSTRING(dbo.NM_KODETAIL.PLEM, 5, 2) AS Plem3, SUBSTRING(dbo.NM_KODETAIL.PLEM, 7, 2) 
                      AS Plem4
FROM         dbo.NM_CHOVMAS LEFT OUTER JOIN
                      dbo.NM_KODETAIL ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_KODETAIL.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_KODETAIL.OKRES AND 
                      dbo.NM_CHOVMAS.PODNIK = dbo.NM_KODETAIL.PODNIK AND dbo.NM_CHOVMAS.CHOV = dbo.NM_KODETAIL.CHOV LEFT OUTER JOIN
                      dbo.NM_PODNIK ON dbo.NM_CHOVMAS.KRAJ = dbo.NM_PODNIK.KRAJ AND dbo.NM_CHOVMAS.OKRES = dbo.NM_PODNIK.OKRES AND 
                      dbo.NM_CHOVMAS.PODNIK = dbo.NM_PODNIK.PODNIK LEFT OUTER JOIN
                      dbo.NC_CharChov ON dbo.NM_CHOVMAS.TYPZV = dbo.NC_CharChov.DRUHHZ AND dbo.NM_KODETAIL.STKU = dbo.NC_CharChov.KOD LEFT OUTER JOIN
                      dbo.NC_TypKU ON dbo.NM_KODETAIL.VYKKU = dbo.NC_TypKU.KOD
WHERE     (dbo.NM_CHOVMAS.TYPZV = '4' and dbo.NM_CHOVMAS.ZRUS is null and dbo.NM_KODETAIL.DATZRUS is null and dbo.NM_KODETAIL.VYKKU <> '8')
ORDER BY dbo.NM_PODNIK.KrOkr, dbo.NM_CHOVMAS.PODNIK, dbo.NM_CHOVMAS.CHOV


go

CREATE VIEW dbo.View_CP_SumarMladyDobytokJal_next2
AS
/*[CISTELATA],[vekMes],[vekDni] ,[CHOVATEL],[raspas],[HMOT],[PRIRPREPOC],[zivpriras],[ZnakPrip],[ZnakTelnost],idain*/ SELECT 1 AS ID, 'do 1 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, 
                      AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 1 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 2 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 3 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 4 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 5 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes = 6 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 0 AND 6 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 7 AND 12 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     CONVERT(varchar(2), vekmes) + '.' + CONVERT(varchar(2), vekdni) BETWEEN '11.15' AND '12.15' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes BETWEEN 13 AND 24 AND [ZnakTelnost] IS NOT NULL AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     vekmes > 24 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     17 AS ID, 'celkom jalovice za mastal' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     POHLAVIE IS NOT NULL OR
                      datnar IS NOT NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     18 AS ID, 'bez povodu' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
WHERE     pohlavie IS NULL OR
                      datnar IS NULL
GROUP BY a.chovatel, a.raspas
UNION
SELECT     19 AS ID, 'priemerny prirastok za mastal' AS vek, AVG(prirprepoc) AS po4et/*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ , NULL AS hmotnost, NULL AS pripprepoc, NULL 
                      AS zivpriras,null as raspas, a.chovatel
FROM         [PLIS].[dbo].[View_CP_SumarMladyDobytokJal] AS a
GROUP BY a.chovatel
go

CREATE VIEW dbo.View_SP_LinieBahnic
AS
SELECT     TOP (100) PERCENT b.KROKR, b.PODNIK, b.STADO, b.CisLin, l.NAZLIN, SUM(1) AS pocet
FROM         dbo.SM_BAHNICA AS b LEFT OUTER JOIN
                      dbo.SC_SubLin AS l ON l.CISLIN = b.CisLin
WHERE     (b.DOVOD = '0') AND (b.DATVYR IS NULL)
GROUP BY b.KROKR, b.PODNIK, b.STADO, b.CisLin, l.NAZLIN
ORDER BY b.KROKR, b.PODNIK, b.STADO, b.CisLin, l.NAZLIN
go


CREATE VIEW [dbo].[View_SP_NajBahMl]
AS
SELECT     dbo.SM_MaxMl.BAHCIS, dbo.SM_MaxMl.ROKEV, dbo.SM_MaxMl.PORLAK, dbo.SM_MaxMl.PTNL, dbo.SM_MaxMl.PBNL, dbo.SM_MaxMl.PLNL, 
                      dbo.SM_MaxMl.MNL3L, dbo.SM_MaxMl.TNL3L, dbo.SM_MaxMl.BNL3L, dbo.SM_MaxMl.LNL3L, dbo.SM_MaxMl.HVPORML, dbo.SM_MaxMl.HVPORTL, 
                      dbo.SM_MaxMl.SMNL3L, dbo.SM_MaxMl.STNL3L, dbo.SM_MaxMl.SBNL3L, dbo.SM_MaxMl.SLNL3L, dbo.SM_MaxMl.SPTNL, dbo.SM_MaxMl.SPBNL, 
                      dbo.SM_MaxMl.SPLNL, dbo.SM_MaxMl.PMNL3L, dbo.SM_MaxMl.PTNL3L, dbo.SM_MaxMl.PBNL3L, dbo.SM_MaxMl.PLNL3L, dbo.SM_MaxMl.PPTNL, 
                      dbo.SM_MaxMl.PPBNL, dbo.SM_MaxMl.PPLNL, dbo.SM_MaxMl.PUZLAK, dbo.SM_MaxMl.PROKEV, dbo.SM_MaxMl.PPORLAK, dbo.SM_Bahnica.KROKR, 
                      dbo.SM_Bahnica.PODNIK, dbo.SM_Bahnica.STADO, dbo.SM_Bahnica.LUC, dbo.SM_Bahnica.PUC, dbo.SM_Bahnica.BAHCIS AS Bahcis2, dbo.SM_Bahnica.ZVSTAT, 
                      dbo.SM_Bahnica.JCCEHZ, dbo.SM_Bahnica.PLEM, dbo.SM_Bahnica.DOVOD, dbo.SM_Bahnica.DATVYR, dbo.View_NM_MenStadOv.NAZOV, 
                      dbo.View_NM_MenStadOv.VYKKU, dbo.View_NM_MenStadOv.STKU, dbo.View_NM_MenStadOv.KrOkr AS KrOkr2, dbo.View_NM_MenStadOv.CHOV, 
                      dbo.SM_Bahnica.PlemSkup, dbo.View_NM_MenStadOv.ZRUS, dbo.View_NM_MenStadOv.NazStKU, dbo.View_NM_MenStadOv.NazVykKU, 
                      dbo.SM_MaxMl.PHVPORML
FROM         dbo.SM_MaxMl LEFT OUTER JOIN
                      dbo.SM_Bahnica ON dbo.SM_Bahnica.BAHCIS = dbo.SM_MaxMl.BAHCIS LEFT OUTER JOIN
                      dbo.View_NM_MenStadOv ON dbo.View_NM_MenStadOv.KrOkr = dbo.SM_Bahnica.KROKR AND dbo.View_NM_MenStadOv.CHOV = dbo.SM_Bahnica.STADO

go

CREATE VIEW dbo.View_CP_poslednoVazeneTeliatZoznam
AS
SELECT        v.CISTELATA, v.DATVAZ, v.HMOT, v.RASTPAS AS raspas, v.PRIRPREPOC, v.HMOTPREPOC, v.DNIPREPOC, v.DNIVAZ, v.TURNUS, tt.DATNAR, tt.CHOVATEL, 
                         tt.POHLAVIE, tt.PRIZNAKKU, tt.DOVVYR, tt.HMOTNAR, tt.MATKA, tt.OUC, tt.OTECREG, tt.OTECLIN, (v.HMOTPREPOC - (CASE WHEN tt.HMOTNAR IS NULL OR
                         tt.HMOTNAR = 0 THEN 35 ELSE tt.HMOTNAR END)) / v.DNIPREPOC * 1000 AS zivpriras, DATEDIFF(day, tt.DATNAR, GETDATE()) / 30.42 AS vek, CONVERT(int, 
                         DATEDIFF(day, tt.DATNAR, GETDATE()) / 30.42) AS vekMes, CONVERT(int, CONVERT(float, DATEDIFF(day, tt.DATNAR, GETDATE()) % 30.42)) AS vekDni, i.IDAIN, i.IPOIN,
                          i.IPOREIN, i.byk, i.IVYSE, i.IDAOT, CASE WHEN i.idain IS NOT NULL THEN 'pripustena' ELSE 'nepripustena' END AS ZnakPrip, CASE WHEN i.ivyse IN ('9', '8', '7') 
                         THEN 'telna' ELSE NULL END AS ZnakTelnost
FROM            dbo.CM_Vazenia AS v INNER JOIN
                             (SELECT        CISTELATA, MAX(DATVAZ) AS datvaz
                               FROM            dbo.CM_Vazenia
                               GROUP BY CISTELATA) AS t ON v.CISTELATA = t.CISTELATA AND v.DATVAZ = t.datvaz LEFT OUTER JOIN
                         dbo.CM_Telata AS tt ON v.CISTELATA = tt.CISTELATA LEFT OUTER JOIN
                             (SELECT        TOP (1) IPLCA, IDAIN, IPOIN, IPOREIN, IBLIN, IBREG, byk, IVYSE, IDAOT, ocakotel
                               FROM            dbo.View_CP_poslednaINseminaciq) AS i ON v.CISTELATA = i.IPLCA
go

-- =============================================
-- Author:		David Florek
-- Create date:	07.09.2017
-- Description:	Zmaze riadky faktury podla filtrov
-- =============================================
CREATE PROCEDURE [dbo].[EC_ZrusRiadkyFakturyPodlaFiltrov]
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@kraj varchar(1) = null,
	@okres varchar(2) = null,
	@podnik varchar(3) = null,
	@chov varchar(3) = null,
	@typ varchar(10) = null,
	@region varchar(2) = null,
	@ico varchar(10) = null,
	@faktura varchar(10) = null,
	@komentar varchar(255) = null,
	@login varchar(255)
AS
BEGIN
	If(OBJECT_ID('tempdb..#faktury') Is Not Null)
		Drop Table #faktury

	select
		fak.IDR as IDR
	into #faktury
	from EC_RiadokFaktury fak
		inner join (
			select KRAJ, OKRES, PODNIK, CHOV, IDZOO, IDKON from NM_HDDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_OVDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_KODETAIL
			) d on fak.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		inner join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
	where
		(@rok is null or SUBSTRING(fak.Datum, 1, 2) = RIGHT(@rok, 2))
		and (@mesiac is null or SUBSTRING(fak.Datum, 3, 2) = REPLICATE('0',2 - LEN(@mesiac)) + @mesiac)
		and (@kraj is null or d.KRAJ = @kraj)
		and (@okres is null or d.OKRES = @okres)
		and (@podnik is null or d.PODNIK = @podnik)
		and (@chov is null or d.CHOV = @chov)
		and (@typ is null or fak.Typ = @typ)
		and (@region is null or
			(case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
			 when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and fak.Typ = 'KUML' then '21'
			 when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
			 else p.REGION end) = @region)
		and (@ico is null or p.ICO = @ico)
		and (@faktura is null or fak.Faktura like '%' + @faktura + '%')
		and fak.Potvrdeny = 0 and fak.Zruseny = 0;

		declare riadok cursor for select * from #faktury;

		declare @idr int;

	open riadok;
	fetch next from riadok into @idr;
	WHILE @@FETCH_STATUS = 0
		begin
			exec EC_ZrusRiadokFaktury @idr, @login, @komentar;
			fetch next from riadok into @idr;
		end
	close riadok;
	deallocate riadok;

	Drop Table #faktury;
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION C_LIN_REG
(	
	
	@LIN varchar(3) , 
	@REG int
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT 
	case when @LIN='NEZ' then @LIN else  @LIN + '-' + RIGHT ('000' + CONVERT (varchar, @REG), 3) end AS LinReg
)
go

-- =============================================
-- Author:		David Florek
-- Create date:	26.07.2017
-- Description:	Vrati produkt pre dany chov
-- Edit:			27.07.2017 - Oprava produktov konciacich na 60
-- Edit:			11.09.2017 - Pridane spajanie chovov podla fakturacnej skupiny
-- =============================================
CREATE FUNCTION [dbo].[CP_KUML_DAJPRODUKT]
(
	@chov varchar(9),
	@datum DATE = null
)
RETURNS varchar(5)
AS
BEGIN
	DECLARE @produkt varchar(5);
	DECLARE @priznak varchar(2);
	DECLARE @spvykon varchar(1);
	DECLARE @zvoz varchar(2);
	DECLARE @sb varchar(2);
	DECLARE @pocet int;

	select
	@priznak = PRIZNAK,
	@spvykon = SPVYKON,
	@zvoz = ZVOZ,
	@sb = SB
	from NM_HDDETAIL
	where KRAJ + OKRES + PODNIK + CHOV = @chov;

	if (@priznak = '01' and @spvykon = '1' and @zvoz = '0' and @sb = '0') set @produkt = '1010';
	if (@priznak = '01' and @spvykon = '6' and @zvoz = '0' and @sb = '0') set @produkt = '1110';
	if (@priznak = '01' and @spvykon = '7' and @zvoz = '0' and @sb = '0') set @produkt = '1115';
	if (@priznak = '01' and @spvykon = '2' and @zvoz = '0' and @sb = '0') set @produkt = '1210';

	if (@priznak = '01' and @spvykon = '1' and @zvoz = '1' and @sb = '0') set @produkt = '1020';
	if (@priznak = '01' and @spvykon = '6' and @zvoz = '1' and @sb = '0') set @produkt = '1120';
	if (@priznak = '01' and @spvykon = '7' and @zvoz = '1' and @sb = '0') set @produkt = '1125';
	if (@priznak = '01' and @spvykon = '2' and @zvoz = '1' and @sb = '0') set @produkt = '1220';

	if (@priznak = '01' and @spvykon = '1' and @zvoz = '0' and @sb = '1') set @produkt = '1030';
	if (@priznak = '01' and @spvykon = '6' and @zvoz = '0' and @sb = '1') set @produkt = '1130';
	if (@priznak = '01' and @spvykon = '7' and @zvoz = '0' and @sb = '1') set @produkt = '1135';
	if (@priznak = '01' and @spvykon = '2' and @zvoz = '0' and @sb = '1') set @produkt = '1230';

	if (@priznak = '01' and @spvykon = '1' and @zvoz = '1' and @sb = '1') set @produkt = '1040';
	if (@priznak = '01' and @spvykon = '6' and @zvoz = '1' and @sb = '1') set @produkt = '1140';
	if (@priznak = '01' and @spvykon = '7' and @zvoz = '1' and @sb = '1') set @produkt = '1145';
	if (@priznak = '01' and @spvykon = '2' and @zvoz = '1' and @sb = '1') set @produkt = '1240';

	if(@datum is null) set @datum = CAST(GETDATE() as date);

	declare @maxPoc int = 0;
	if(select count(*) from NM_HDDETAIL where KRAJ + OKRES + PODNIK = LEFT(@chov, 6) and SPVYKON in ('1', '2', '3', '6', '7', '8') and PRIZNAK = '01') >= 3
	begin
		select @maxPoc = MAX(s.HD_KRAVA) from NE_STATISTIKY s 
		join NM_HDDETAIL d on s.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		where d.KRAJ + d.OKRES + d.PODNIK = LEFT(@chov, 6) and SPVYKON in ('1', '2', '3', '6', '7', '8') and PRIZNAK = '01';
	end

	declare @fak varchar(1);
	set @fak = (select FaktSkup from NM_CHOVMAS where KRAJ + OKRES + PODNIK + CHOV = @chov and TYPZV = 1)

	if(@fak <> '0')
		begin			
			set @pocet =
			(select SUM(s.HD_KRAVA) from NE_STATISTIKY s join NM_CHOVMAS ch on s.CHOV = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
			where DATUM = @datum and LEFT(s.CHOV, 6) = LEFT(@chov, 6) and ch.FaktSkup = @fak and ch.TYPZV = 1);
		end
	else
		begin
			set @pocet = (select HD_KRAVA from NE_STATISTIKY where DATUM = @datum and CHOV = @chov);
		end

	if(@spvykon = '7' and @pocet > 2800)
		set @produkt = SUBSTRING(@produkt, 1, 3) + '60';
	else
		if @maxPoc > 1200 set @pocet = @maxPoc;

		set @produkt = @produkt + '' + (select top 1 SUBSTRING(prod.KOD3, 2, 1)
		from EC_CISPROD prod
		where
		prod.KOD1 = SUBSTRING(@produkt, 1, 1)
		and prod.KOD2 = SUBSTRING(@produkt, 2, 2)
		and prod.KOD3 like SUBSTRING(@produkt, 4, 1) + '%'
		and prod.POCETDO >= @pocet
		order by prod.POCETDO);
	
	return @produkt;
END
go

CREATE PROCEDURE [dbo].[CR_KUARHD_mesacne_test]

	@chov VARCHAR(9),
	@rok INT,
	@mesiac INT,
	@dekada INT

	AS

	BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016, 
--				19.5.2016	-- doplnene minus 2 mesiace od vyradenia
--				30.05.2016	-- opravene dvojicky, interval z inseminacie, vek pri oteleni, linia a register otca, vyradenie kravy je na stavene 1.den dekady minus 2 mesiace
							-- opraveny datum poslednej inseminacie, byka a ocakavaneho otelenia
--				1.6.2016	-- oprava datumu inseminacie po reinseminacii
-- Description:	Mesačné výsledky kontroly úžitkovosti a reprodukcie HD
-- @chov, @rok, @mesiac, @dekada
-- ===================================================================

	DECLARE @datum DATE, @datum2 DATE
    
	SELECT @datum = CASE @dekada
	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	END
	SET @datum2 = DATEADD(MONTH, -2, @datum)

	PRINT 'Datum: ' + CONVERT(VARCHAR, @datum);
	PRINT 'Datum -2 mesiace: ' + CONVERT(VARCHAR, @datum2);

	IF OBJECT_ID('tempdb..#krava') IS NOT NULL DROP TABLE #krava
	SELECT * INTO #krava FROM dbo.CM_Krava WHERE CHOVATEL=@chov and PRIZNAKKU=1 AND (DATVYR IS NULL OR DATVYR >= @datum2) 
	IF OBJECT_ID('tempdb..#kontroly') IS NOT NULL DROP TABLE #kontroly
	
	SELECT DISTINCT kontroly.CISKRAVY, kontroly.DATKONTR, kontroly.PERCTUKU, kontroly.PERCBIELK, kontroly.BUNECELEM  INTO #kontroly FROM dbo.CM_Kontroly kontroly
	INNER JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = kontroly.CISKRAVY) AND (DATVYR IS NULL OR DATVYR >= @datum2)
	WHERE  kontroly.CISCHOVU = @chov
	
	IF OBJECT_ID('tempdb..#k2row') IS NOT NULL DROP TABLE #k2row
	SELECT  t.* INTO #k2row FROM (SELECT  DISTINCT CISKRAVY FROM #kontroly) mo
	CROSS APPLY(SELECT  TOP 2 * FROM #kontroly mi  WHERE  mi.CISKRAVY = mo.CISKRAVY ORDER BY mi.DATKONTR DESC) t


	

		-- kontrola a kontrola - 1
	IF OBJECT_ID('tempdb..#k1') IS NOT NULL DROP TABLE #k1
	SELECT ciskravy, MAX(datkontr)datum1 INTO #k1 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k2') IS NOT NULL DROP TABLE #k2
	SELECT ciskravy, MIN(datkontr)datum2 INTO #k2 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k1temp') IS NOT NULL DROP TABLE #k1temp
	IF OBJECT_ID('tempdb..#k2temp') IS NOT NULL DROP TABLE #k2temp
	
	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko, ROUND(AVG(PERCTUKU),2)tuk, ROUND(AVG(PERCBIELK),2)bielk, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB, ROUND(AVG(BUNECELEM),0)SB INTO #k1temp  FROM #k1 k1
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k1.ciskravy AND k1.datum1 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY

	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko1, ROUND(AVG(PERCTUKU),2)tuk1, ROUND(AVG(PERCBIELK),2)bielk1, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB1, ROUND(AVG(BUNECELEM),0)SB1  INTO #k2temp FROM #k2 k2
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k2.ciskravy AND k2.datum2 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY	
	
	IF OBJECT_ID('tempdb..#2ko') IS NOT NULL DROP TABLE #2ko
	SELECT krava.CISKRAVY, k1temp.mlieko, k2temp.mlieko1, k1temp.tuk, k1temp.bielk, k1temp.TB, k1temp.SB, k2temp.tuk1, k2temp.bielk1, k2temp.TB1, k2temp.SB1 INTO #2ko FROM #krava krava
		INNER JOIN #k1temp k1temp ON (k1temp.CISKRAVY = krava.CISKRAVY)
		INNER JOIN #k2temp k2temp ON (k2temp.CISKRAVY = krava.CISKRAVY)

		-- 100 - 200 - 300

	IF OBJECT_ID('tempdb..#sdt') IS NOT NULL DROP TABLE #sdt
	
	SELECT c.* INTO #sdt FROM
	(
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 100)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 200)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 305)
	)c


DECLARE @krava VARCHAR(14), @iplca VARCHAR(14), @counter INT, @count INT, @poradie INT, @pdatum DATE, @fdatum DATE, @ivyse INT, @bykreg INT, @byklin  VARCHAR(3)
DECLARE @datotel DATE, @POCINS1 INT, @POCINS2 INT, @POCINS3 INT, @POCINS4VIAC INT, @POCTELNYCH INT

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL DROP TABLE #inseminacie

  CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT,
		  byklin VARCHAR(3),
		  bykreg VARCHAR(3),
		  datotel DATE
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM	dbo.CM_Insvyk I
                INNER JOIN dbo.CM_Krava K ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ((K.DATVYR) >= DATEADD(MONTH, -2, @datum) OR K.DOVVYR IS NULL) -- zahrnut do vyberu aj kravy, ktore boli vyradene od obdobia minus 2 mesiace
				AND I.IPOIN <> 99
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = MAX(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@byklin = MAX(CONVERT(VARCHAR(3),IBLIN)),
					@bykreg = MAX(IBREG),
					@datotel = MAX(IDAOT)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> '99'
					
            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse, byklin, bykreg, datotel )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse, @byklin, @bykreg, @datotel )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


-- interval

DECLARE @odatum DATE,@rozdiel_dni INT, @POCINTR INT, @POCSERV INT

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) -- pridane
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99


            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor


BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                --AND ( ISNULL(DOVVYR, '') = '' )
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) --pridane
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
					AND IsNumeric(IVYSE) = 1 AND CAST(IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END
END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor


IF OBJECT_ID('tempdb..#medziobdobie') IS NOT NULL DROP TABLE #medziobdobie
SELECT k.CISKRAVY ciskravy, n.MEDZIOBD INTO #medziobdobie FROM cm_krava k
			LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
			WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL)
			AND (DATVYR >= @datum2 OR k.DOVVYR IS NULL) -- pridane
			--AND (ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00')

IF OBJECT_ID('tempdb..#napocetlak') IS NOT NULL DROP TABLE #napocetlak
SELECT
	k.CISKRAVY AS ciskravy,
	n.LAKTDNI AS nap_dni,
	n.MLIEKCEL AS nap_mliekokg,
	ROUND(((n.TUKCEL / n.MLIEKCEL)*100),2) AS nap_tukper,
	ROUND(((n.BIELKCEL / n.MLIEKCEL)*100),2) AS nap_bielkper,
	ROUND(n.TUKCEL,0) AS nap_tkg,
	ROUND(n.BIELKCEL,0) AS nap_bkg
	INTO #napocetlak
	FROM dbo.CM_Naplak n
	LEFT JOIN #krava k ON (k.CISKRAVY = n.CISKRAVY)

	


	BEGIN

	--IF OBJECT_ID('tempdb..#vyber') IS NOT NULL DROP TABLE #vyber

	DELETE FROM CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok  AND mesiac = @mesiac AND dekada = @dekada

	INSERT INTO dbo.CR_KURHD_MesUzavCH_1
	SELECT
	 CONVERT(varchar(9), @chov) chov
	,CONVERT(INT, @rok) rok
	,CONVERT(INT, @mesiac) mesiac
	,CONVERT(INT, @dekada) dekada
	,CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	,CONVERT(INT,k.PORPREBLAK, NULL) PORPREBLAK
	,CONVERT(VARCHAR(2),n.ZMENA, NULL) ZMENA
	,UPPER(ISNULL(n.ZNAK,NULL)) ZNAK
	,CONVERT(DECIMAL(7,0),(tdm.SPI),NULL) SPI
	,CONVERT(DECIMAL(7,2), ROUND(tdm.REL*100,2), NULL) AS PERSPOL
	,CONVERT(DATE,k.datnar,NULL) DATNAR
	,CONVERT(VARCHAR(70),
	ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
    + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
    + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '')) PLEMKR
	,CONVERT(DATE, n.DATOTEL) DATOT
	,CONVERT(INT,(SELECT COUNT(*) FROM dbo.CM_kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY),NULL)PK
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 1 ORDER BY ko.DATKONTR DESC))ML1
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '1' THEN '*' END)ZN1
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 2 ORDER BY ko.DATKONTR DESC))ML2
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '2' THEN '*' END)ZN2
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 3 ORDER BY ko.DATKONTR DESC))ML3
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '3' THEN '*' END)ZN3
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 4 ORDER BY ko.DATKONTR DESC))ML4
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '4' THEN '*' END)ZN4
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 5 ORDER BY ko.DATKONTR DESC))ML5
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '5' THEN '*' END)ZN5
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 6 ORDER BY ko.DATKONTR DESC))ML6
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '6' THEN '*' END)ZN6
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 7 ORDER BY ko.DATKONTR DESC))ML7
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '7' THEN '*' END)ZN7
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 8 ORDER BY ko.DATKONTR DESC))ML8
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '8' THEN '*' END)ZN8
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 9 ORDER BY ko.DATKONTR DESC))ML9
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '9' THEN '*' END)ZN9
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 10 ORDER BY ko.DATKONTR DESC))ML10
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '10' THEN '*' END)ZN10
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 11 ORDER BY ko.DATKONTR DESC))ML11
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '11' THEN '*' END)ZN11
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 12 ORDER BY ko.DATKONTR DESC))ML12
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '12' THEN '*' END)ZN12
	,CONVERT(DECIMAL(4,2),kontrola2.tuk)PTUKU1
	,CONVERT(DECIMAL(4,2),kontrola2.bielk)PBIELK1
	,CONVERT(DECIMAL(3,1),kontrola2.TB)PTB1
	,CONVERT(INT,kontrola2.SB)SB1
	,CONVERT(DECIMAL(3,2),kontrola2.tuk1)PTUKU2
	,CONVERT(DECIMAL(3,2),kontrola2.bielk1)PBIELK2
	,CONVERT(DECIMAL(3,2),kontrola2.TB1)PTB2
	,CONVERT(INT,kontrola2.SB1)SB2
	,CONVERT(INT,sdt.laktdni)LAKTDNI
	,CONVERT(INT,sdt.lakdnin)UDNI
	,CONVERT(DECIMAL(7,2),sdt.mlieknor)NAPML
	,CONVERT(DECIMAL(7,2),sdt.tuknor)NAPTK
	,CONVERT(DECIMAL(3,2),sdt.tukper)UPERT
	,CONVERT(DECIMAL(7,2),sdt.bielknor)NAPBL 
	,CONVERT(DECIMAL(4,2),sdt.bielkper)UPERB
	,CONVERT(INT,ins.poradie)PORINS
	,(SELECT TOP 1 ( i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and (CONVERT(DATE, ins.fdatum)>n.DATOTEL) ORDER BY i.IDAIN DESC)OLINREG
	----,CONVERT(DATE,(CASE WHEN ins.ivyse = 9 THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))DTOTOC
	,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) and (DATEDIFF(day, n.DATOTEL, CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END)) else NULL end as DTOTOC
    ,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) then CONVERT(DATE, ins.fdatum)else null end DATINS
	,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3))OUC

	,CONVERT(VARCHAR(70),byc.PL1 + '-' + CONVERT(VARCHAR, ISNULL(byc.KR1, 0)) + ' ' + ISNULL(byc.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR2, 0)) + ' ' + ISNULL(byc.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR3, 0)) + ' ' + ISNULL(byc.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR4, 0)) + ' ' + ISNULL(byc.PL5, ''), ''), ''), ''))OTPLEM
	,CONVERT(VARCHAR(14),k.MA)MATKA
	,CONVERT(VARCHAR(70),(SELECT 
	--t1.ciskravy, t1.DATNAR, tt1.ciskravy, tt1.DATNAR,
	tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
		FROM dbo.CM_Krava t1
			LEFT JOIN dbo.CM_Krava tt1 ON t1.MA = tt1.CISKRAVY WHERE t1.CISKRAVY = k.CISKRAVY))MAPLEM
	,CONVERT(INT, interval.rozdiel_dni)INTERVAL
	,CONVERT(INT, sp.rozdiel_dni)SERVPER
	,CONVERT(INT, medzi.MEDZIOBD)MEDZIOB
	,CONVERT(VARCHAR(4),(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)/12)))+ '/' +(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)% 12))))OVEKRM -- rok/mesiac
	,CONVERT(VARCHAR(2),n.POHLAVIE)POHLTEL
	,CONVERT(INT, n.PRIEBPOROD)PRIEBPOR
	,CONVERT(INT, nap.nap_dni)
	,CONVERT(INT, nap.nap_mliekokg)
	,CONVERT(DECIMAL(5,2), nap.nap_tukper)
	,CONVERT(DECIMAL(5,2), nap.nap_bielkper)
	,CONVERT(INT, nap.nap_tkg)
	,CONVERT(INT, nap.nap_bkg)
	,CONVERT(VARCHAR(2), k.DOVVYR)
	,CONVERT(DATE, k.DATVYR, NULL)
	,GETDATE() AS generovane
	,(SELECT TOP 1 DATKONTR FROM #kontroly kk WHERE kk.CISKRAVY = k.CISKRAVY order by DATKONTR desc) kontrola
	, case when k.SKUPINA ='0' then null else k.SKUPINA end as SKUPINA
	, k.OUSCIS as otec


	FROM dbo.CM_Krava k
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #2ko kontrola2 ON (kontrola2.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #sdt sdt ON (sdt.ciskravy = k.CISKRAVY)
		LEFT JOIN #inseminacie ins ON (ins.krava = k.CISKRAVY)
		LEFT JOIN dbo.CM_KravyTDM tdm ON (tdm.CISLO = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Telata tel ON (tel.CISTELATA = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = tel.OUC)
		LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = k.OUSCIS)
		LEFT JOIN #krava mama ON (mama.ma = k.CISKRAVY)
		LEFT JOIN #interval interval ON (interval.krava = k.CISKRAVY)
		LEFT JOIN #servisperioda sp ON (sp.krava = k.CISKRAVY)
		LEFT JOIN #medziobdobie medzi ON (medzi.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #napocetlak nap ON (k.CISKRAVY = nap.ciskravy)
	WHERE  k.CHOVATEL = @chov and k.PRIZNAKKU=1
			AND (k.DATVYR >= @datum2 OR k.DOVVYR IS NULL)
			--AND k.DOVVYR IS NULL

	
	--------------------------------------------------------------------
	;WITH CTE AS(
	 SELECT ciskravy, chov, mesiac, rok, dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY ciskravy ORDER BY ciskravy)
		 FROM dbo.CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada AND ciskravy IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1
	--------------------------------------------------------------------




	END 

	END
go

---------------------------------------------------------------------------------------------------------------------------

--porovnanie rozdielov hodnot tuku v rozboroch mlieka v prebiehajucej laktacii krav na chove
---------------------------------------------------------------------------------------------------------------------------

CREATE procedure [dbo].[CR_Rozdiel_Tuku_V_Preblak]
@chov varchar(9)='',
@ciskravy varchar(14)=''

as
begin 
	declare @kravy table
	(
		ciskravy varchar(14),
		chov varchar(9),
		sdatkontr date,
		porpreblak varchar(2),
		laktdni float,
		mlieko float,
		perctuku float, 
		percbielk float, 
		krav_plem varchar(25)
	)
	
	insert into @kravy
		select
			R.CISKRAVY,
			N.CHOVATEL,
			convert (date,sdatkontr,103),
			--(select MAX(porpreblak) from View_CM_Rozbory as r where r.ciskravy= N.ciskravy and r.chov = N.chov),
			N.porlak,
			R.LAKTDNI,
			R.MLIEKO,
			perctuku, 
			R.PERCBIELK,
			k.PL1 + '-' + CONVERT(VARCHAR, ISNULL(k.KR1, 0)) 
				+ ' ' + ISNULL(k.PL2 + '-' + CONVERT(VARCHAR, ISNULL(k.KR2, 0)) + ' '
				+ ISNULL(k.PL3 + '-' + CONVERT(VARCHAR, ISNULL(k.KR3, 0)) + ' '
				+ ISNULL(k.PL4 + '-' + CONVERT(VARCHAR, ISNULL(k.KR4, 0)) + ' '
				+ ISNULL(k.PL5,''), ''), ''),'') krav_plem
		from  View_CM_Rozbory  as R
			left outer join CM_Naplak as N on N.CISKRAVY=R.CISKRAVY and N.PORLAK=R.PorPreblak 
			left outer join CM_Krava as k on k.CISKRAVY=R.CISKRAVY
			where (@chov= N.CHOVATEL or chov is null) and (R.CISKRAVY = @ciskravy or @ciskravy is null)
				and N.ZMENA='11' and ZNKONTR is null
	--select * from @kravy order by ciskravy, sdatkontr desc
	
	declare @maxLakt table
		(
			ciskravy varchar(14),
			chov varchar(9),
			porpreblak varchar(2),
			laktdni float,
			perctuku float,
			sdatkontr date,
			krav_plem varchar(25),
			rozdiely float
		)
	insert into @maxLakt
		select distinct
				ciskravy, 
				chov,
				porpreblak,
				laktdni,
				--(select MAX(porpreblak) from View_CM_Rozbory as r where r.ciskravy= k.ciskravy and r.chov = k.chov),
				perctuku,
				sdatkontr,
				krav_plem,
				null
		from @kravy as k
	
	if (@ciskravy is null)
		begin
			set @ciskravy= (select top 1 ciskravy from @maxLakt group by ciskravy order by ciskravy)
		end
	--print @ciskravy
	while (@ciskravy IS NOT NULL)
	--print @ciskravy
	begin
	print @ciskravy
	--	set @ciskravy = (select top 1 ciskravy from @maxLakt where ciskravy > @ciskravy group by ciskravy order by ciskravy)
		--select * from View_CM_Rozbory where CHOV='102501011' and CISKRAVY='SK000006321842'
		--print '456'
		declare
			 @datum date='2000-01-01',
			 @maxdatum date,
			 @perctuku1 float,
			 @perctuku2 float 

			set @datum =(select min(sdatkontr) from @maxLakt where ciskravy = @ciskravy and  sdatkontr > @datum)
			set @maxdatum =(select max(sdatkontr) from @maxLakt where ciskravy = @ciskravy and  sdatkontr > @datum)

			print @datum
			print @ciskravy
			while (@datum is not null and @datum < @maxdatum )
			begin
				set @perctuku1 =(select top 1 PERCTUKU from @maxLakt where ciskravy = @ciskravy and sdatkontr = @datum  )
				set @perctuku2 =(select top 1 PERCTUKU from @maxLakt where ciskravy=@ciskravy and  sdatkontr > @datum order by sdatkontr asc)
				set @datum =(select min(sdatkontr) from @maxLakt  where ciskravy=@ciskravy and sdatkontr > @datum)
				print @perctuku1
				print @perctuku2
				--select @perctuku2 - @perctuku1 as rozdielPerctuku

				update @maxLakt set rozdiely= @perctuku2 - @perctuku1 where ciskravy = @ciskravy and sdatkontr = @datum
			end

			set @ciskravy= (select top 1 ciskravy from @maxLakt where ciskravy > @ciskravy group by ciskravy order by ciskravy)
			print 'posledne '+ @ciskravy
		end
		--select * from @maxLakt where (rozdiely >1.99 or rozdiely < -1.99)   order by ciskravy, sdatkontr 
		--declare @kravyNaChove_11Zmena varchar
		--set @kravyNaChove_11Zmena = (select count(*) from CM_Naplak as N where N.CHOVATEL=@chov and N.ZMENA='11')

		declare @opakovaneKravy table
			(
			ciskravy varchar (14),
			chov varchar(9),
			pocet_opakovani_kravy int
			)
		insert into  @opakovaneKravy
				select distinct ciskravy, chov, count(ciskravy)as pocet_opakovani_kravy
						from @maxLakt where (rozdiely >1.99 or rozdiely < -1.99)
							 group by ciskravy,chov
			
			--select * from @opakovaneKravy 

			--select count(*) as Pocet_krav_s_opakovanim,
			--(select count(*) from CM_Naplak as N where N.CHOVATEL=@chov and N.ZMENA='11')as kravyNaChove_11Zmena, 
			--(select isnull((count(*)*100.0/nullif((select count(*)from CM_Naplak as N where N.CHOVATEL=@chov and N.ZMENA='11'),0)),0)) as percentoZchovu  
			--from @opakovaneKravy 	

			--select * from @maxLakt

		--create table CR_Rozdiel_Tuku_V_PrebPorLak
		--(
		--	ciskravy varchar(14),
		--	chov varchar(9),
		--	porpreblak varchar(2),
		--	laktdni float,
		--	perctuku float,
		--	sdatkontr date,
		--	krav_plem varchar(25),
		--	rozdiely float, 
		--	datum_generovania date
		--)

		insert CR_Rozdiel_Tuku_V_PrebPorLak   ----odtialto odkomentovat
		select ciskravy, chov, porpreblak, laktdni, perctuku, sdatkontr, krav_plem,
				rozdiely, GETDATE() as datum_generovania  
			from  @maxLakt
		where (rozdiely >1.99 or rozdiely < -1.99)

		--create table CR_Rozdiel_Tuku_V_PrebPorLak_prehlad_chov
		--(
		--  chov varchar(9),
		--Pocet_krav_s_opakovanim int, 
		--kravyNaChove_11Zmena int,
		--percentoZchovu  float,
		--datum_generovania date
		--)

		insert CR_Rozdiel_Tuku_V_PrebPorLak_prehlad_chov
		select chov,
			count(*) as Pocet_krav_s_opakovanim,
			(select count(*) from CM_Naplak as N where N.CHOVATEL=@chov and N.ZMENA='11')as kravyNaChove_11Zmena, 
			(count(*)*100.0/(select count(*)from CM_Naplak as N where N.CHOVATEL=@chov and N.ZMENA='11')) as percentoZchovu ,
			GETDATE() as datum_generovania
			from @opakovaneKravy 	group by chov












end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 1.12.2015
-- Description:	skopirovanie dat z migracie do PLISu (tabulky cm_krava, cm_kontroly, cm_naplak, cm_laktacie, cm_telata, cm_vazenia) pre zadanu mnozinu chovov
-- =============================================
CREATE PROCEDURE [dbo].[C_kopiruj_data_z_migracie]
    @ParIDDalsSprac bigint = 10000000
AS
BEGIN
    -- ohranicenie pre zaznamy s id spracovania chovu, ktory je uz v dalsom spracovani
	declare @IDDALSSPRAC bigint = @ParIDDalsSprac

	-- zoznam chovov pre dotiahnutie dat
	SELECT CHOV into #temp_vybr_chovy from CP_CHOVY_DATA_Z_FANDU 

	  --select count(*) from #temp_vybr_chovy
	-- KRAVY -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

	-- vytvorenie a naplnenie tabulky so zoznamom chovov v KU ML
	select distinct KRAJ+OKRES+podnik+CHOV as chovatel into #mlchovy
		from plis.dbo.nm_chovmas 
		where plis.dbo.HDchov_ma_typ_KU(kraj+okres+podnik+chov, 'ML') = 1 and zrus is null
	CREATE INDEX IDX_mlchovy_chovatel ON #mlchovy(chovatel)


	select distinct ciskravy into #kravy_nove from s112.migracia.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy ON #kravy_nove(ciskravy)


	select distinct ciskravy into #kravy_zvysne from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_zvysne_ciskravy ON #kravy_zvysne(ciskravy)


	select distinct ciskravy into #kravy_spolu from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_spolu_ciskravy ON #kravy_spolu(ciskravy)

	merge PLIS.dbo.CM_Krava as k
	using (select * from s112.migracia.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECLIN else m_k.OTECLIN end
		  ,k.OTECREG			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECREG else m_k.OTECREG end
		  ,k.OUSCIS				= case when m_k.OUSCIS is null then k.OUSCIS else m_k.OUSCIS end
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.IDOT else m_k.IDOT end
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP

	when not matched by target then insert (
		   CISKRAVY
		  ,CHOVATEL
		  ,SKUPINA
		  ,PK
		  ,OTECLIN
		  ,OTECREG
		  ,OUSCIS
		  ,MA
		  ,IDOT
		  ,IDMA
		  ,DATNAR
		  ,PL1
		  ,KR1
		  ,PL2
		  ,KR2
		  ,PL3
		  ,KR3
		  ,PL4
		  ,KR4
		  ,PL5
		  ,FARBA
		  ,ZNMATBYK
		  ,ZNAKET
		  ,POHLAVIE
		  ,ZDRAVTR
		  ,PLEMENNA
		  ,PORPREBLAK
		  ,DATPOSKONT
		  ,DOVVYR
		  ,DATVYR
		  ,DATZAR
		  ,TRUZIT
		  ,PORLAKMAX
		  ,MLIEKOMAX
		  ,TUKMAX
		  ,BIELMAX
		  ,LAKTOZAMAX
		  ,POCVSETLAK
		  ,POCNORLAK
		  ,MLIEKOPR
		  ,TUKPRKG
		  ,TUKPRPER
		  ,BIELPRKG
		  ,BIELPRPER
		  ,LAKTPRKG
		  ,LAKTPRPER
		  ,TYPPLEM
		  ,FARMACEHZ
		  ,PRIZNAKKU
		  ,KRJA
		  ,PINT
		  ,PSER
		  ,PMED
		  ,BB_ANIMALCODE
		  ,BB_NAME
		  ,BB_IMPORTED
		  ,BB_BREEDING_NAME
		  ,BB_OWNER
		  ,BB_KEEPER
		  ,BB_USE
		  ,BB_COUNTRYCODE
		  ,BB_CATEGORY
		  ,BB_HERDBOOK_NUMBER)
		values ( 
			m_k.CISKRAVY ,
			m_k.CHOVATEL ,
			m_k.SKUPINA  ,
			m_k.PK		  ,
			m_k.OTECLIN  ,
			m_k.OTECREG  ,
			m_k.OUSCIS	  ,
			m_k.MA		  ,
			m_k.IDOT	  ,
			m_k.IDMA	  ,
			m_k.DATNAR	  ,
			m_k.PL1	  ,
			m_k.KR1	  ,
			m_k.PL2	  ,
			m_k.KR2	  ,
			m_k.PL3	  ,
			m_k.KR3	  ,
			m_k.PL4	  ,
			m_k.KR4	  ,
			m_k.PL5	  ,
			m_k.FARBA	  ,
			m_k.ZNMATBYK ,
			m_k.ZNAKET	  ,
			m_k.POHLAVIE ,
			m_k.ZDRAVTR  ,
			m_k.PLEMENNA ,
			m_k.PORPREBLAK,
			m_k.DATPOSKONT,
			m_k.DOVVYR	  ,
			m_k.DATVYR	  ,
			m_k.DATZAR	  ,
			m_k.TRUZIT	  ,
			m_k.PORLAKMAX,
			m_k.MLIEKOMAX,
			m_k.TUKMAX	  ,
			m_k.BIELMAX  ,
			m_k.LAKTOZAMAX,
			m_k.POCVSETLAK,
			m_k.POCNORLAK,
			m_k.MLIEKOPR ,
			m_k.TUKPRKG  ,
			m_k.TUKPRPER ,
			m_k.BIELPRKG ,
			m_k.BIELPRPER,
			m_k.LAKTPRKG ,
			m_k.LAKTPRPER,
			m_k.TYPPLEM  ,
			m_k.FARMACEHZ,
			m_k.PRIZNAKKU,
			m_k.KRJA	  ,
			m_k.PINT	  ,
			m_k.PSER	  ,
			m_k.PMED	  ,
			m_k.BB_ANIMALCODE,
			m_k.BB_NAME  ,
			m_k.BB_IMPORTED,
			m_k.BB_BREEDING_NAME,
			m_k.BB_OWNER ,
			m_k.BB_KEEPER,
			m_k.BB_USE	  ,
			m_k.BB_COUNTRYCODE,
			m_k.BB_CATEGORY,
			m_k.BB_HERDBOOK_NUMBER);
					  	  

	merge PLIS.dbo.CM_Krava as k
	using (select * from s112.migracia.dbo.CM_Krava where ciskravy in (select ciskravy from #kravy_zvysne)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECLIN else m_k.OTECLIN end
		  ,k.OTECREG			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECREG else m_k.OTECREG end
		  ,k.OUSCIS				= case when m_k.OUSCIS is null then k.OUSCIS else m_k.OUSCIS end
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.IDOT else m_k.IDOT end
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP;


	delete from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)
	 and ((SPRACINSERT < @IDDALSSPRAC or SPRACINSERT is null) and (SPRACUPDATE < @IDDALSSPRAC or SPRACUPDATE is null))			

	print 'CM_Krava'


	-- KONTROLY --------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_kontr from s112.migracia.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_kontr ON #kravy_nove_kontr(ciskravy)


	select distinct ciskravy into #kravy_zvysne_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_kontr ON #kravy_zvysne_kontr(ciskravy)


	select distinct ciskravy into #kravy_spolu_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_spolu_ciskravy_kontr ON #kravy_spolu_kontr(ciskravy)

	--------

	select ciskravy, datkontr into #kontroly_nove from s112.migracia.dbo.CM_Kontroly where ciskravy in (select ciskravy from #kravy_spolu_kontr) and DATKONTR > '2013-01-01'

	CREATE INDEX IDX_kontroly_nove_ciskravydatkontr ON #kontroly_nove(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_stare from plis.dbo.CM_Kontroly as k where DATKONTR > '2013-01-01' and ciskravy in (select ciskravy from #kravy_spolu_kontr)

	CREATE INDEX IDX_kontroly_stare_ciskravydatkontr ON #kontroly_stare(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_delete from #kontroly_stare except select ciskravy, datkontr from #kontroly_nove


	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s112.migracia.dbo.CM_Kontroly as k1 where k1.ciskravy in (select ciskravy from #kravy_nove_kontr) and k1.DATKONTR > '2013-01-01') as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD
	when not matched then insert (					  
			 CISKRAVY	
			,DATKONTR	
			,ZNKONTR	
			,DENDOBA	
			,INTERVAL	
			,CISCHOVU	
			,SKUPINA	
			,PREPOCET	
			,MLIEKO	
			,MLIEKPR	
			,PRT		
			,PERCTUKU	
			,PERCBIELK	
			,PERCLAKTOZ
			,BUNECELEM	
			,LAKTDNI	
			,PORPREBLAK
			,PLATNOST	
			,KodIntSB	
			,KodIntLD)
		values ( 		
			 m_ko.CISKRAVY	
			,m_ko.DATKONTR	
			,m_ko.ZNKONTR	
			,m_ko.DENDOBA	
			,m_ko.INTERVAL	
			,m_ko.CISCHOVU	
			,m_ko.SKUPINA	
			,m_ko.PREPOCET	
			,m_ko.MLIEKO	
			,m_ko.MLIEKPR	
			,m_ko.PRT		
			,m_ko.PERCTUKU	
			,m_ko.PERCBIELK	
			,m_ko.PERCLAKTOZ
			,m_ko.BUNECELEM	
			,m_ko.LAKTDNI	
			,m_ko.PORPREBLAK
			,m_ko.PLATNOST	
			,m_ko.KodIntSB	
			,m_ko.KodIntLD); 					  

	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s112.migracia.dbo.CM_Kontroly as k where k.DATKONTR > '2013-01-01' and k.ciskravy in (select ciskravy from #kravy_zvysne_kontr)) as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set 
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD;

	delete ak from plis.dbo.CM_Kontroly ak where DATKONTR > '2013-01-01' and exists (select 1 from #kontroly_delete as sk where ak.CISKRAVY = sk.ciskravy and ak.DATKONTR = sk.datkontr)
	and ((ak.SPRACINSERT < @IDDALSSPRAC or ak.SPRACINSERT is null) and (ak.SPRACUPDATE < @IDDALSSPRAC or ak.SPRACUPDATE is null))

	print 'CM_Kontroly'


	-- NAPLAK ----------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_napl from s112.migracia.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_napl ON #kravy_nove_napl(ciskravy)


	select distinct ciskravy into #kravy_zvysne_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_napl ON #kravy_zvysne_napl(ciskravy)


	select distinct ciskravy into #kravy_spolu_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_spolu_ciskravy_napl ON #kravy_spolu_napl(ciskravy)

	---------

	select distinct ciskravy into #naplak_nove from s112.migracia.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_nove_ciskravy ON #naplak_nove(ciskravy)


	select distinct ciskravy into #naplak_stare from plis.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_stare_ciskravy ON #naplak_stare(ciskravy)


	select ciskravy into #naplak_delete from #naplak_stare except select ciskravy from #naplak_nove


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s112.migracia.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_nove_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,ZNAK			
			,BEZT			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_n.CISKRAVY
			,m_n.CHOVATEL
			,m_n.PORLAK
			,m_n.DATOTEL
			,m_n.CHOVOTEL
			,m_n.CHOVLAKT
			,m_n.PRIEBPOROD
			,m_n.POHLAVIE
			,m_n.ZMENA
			,m_n.DATUKONL
			,m_n.DATUKNORL
			,m_n.MEDZIOBD
			,m_n.HMOTKR
			,m_n.LAKTDNI
			,m_n.LAKDNIN
			,m_n.MLIEKCEL
			,m_n.MLIEKNOR
			,m_n.TUKCEL
			,m_n.TUKNOR
			,m_n.BIELKCEL
			,m_n.BIELKNOR
			,m_n.LAKTOZAC
			,m_n.LAKTOZAN
			,m_n.INDPER
			,m_n.INDLAK
			,m_n.CHARUST
			,m_n.MAXLAK
			,m_n.ZNAK
			,m_n.BEZT
			,m_n.MLIEKO100
			,m_n.TUK100
			,m_n.BIELK100
			,m_n.LAKT100
			,m_n.MLIEKO200
			,m_n.TUK200
			,m_n.BIELK200
			,m_n.LAKT200
			,m_n.DATZAPZVK
			,m_n.DATVYBZVK
			,m_n.KOD_DOJ
			,m_n.KOD_MEDZ);


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s112.migracia.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_zvysne_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ;

	delete n from plis.dbo.CM_Naplak n where exists (select 1 from #naplak_delete as nd where nd.CISKRAVY = n.CISKRAVY) and datotel > '2012-01-01'
	 and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null))

	print 'CM_Naplak'


	-- LAKTACIE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_lakt from s112.migracia.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_lakt ON #kravy_nove_lakt(ciskravy)


	select distinct ciskravy into #kravy_zvysne_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_lakt ON #kravy_zvysne_lakt(ciskravy)


	select distinct ciskravy into #kravy_spolu_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_spolu_ciskravy_lakt ON #kravy_spolu_lakt(ciskravy)

	--------

	select ciskravy, PORLAK into #laktacie_nove from s112.migracia.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_nove_ciskravyporlak ON #laktacie_nove(ciskravy, porlak)


	select ciskravy, PORLAK into #laktacie_stare from plis.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_stare_ciskravyporlak ON #laktacie_stare(ciskravy, porlak)


	select ciskravy, porlak into #laktacie_delete from #laktacie_stare except select ciskravy, porlak from #laktacie_nove


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s112.migracia.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_nove_lakt) /*and DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,SPOSOBKU			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_l.CISKRAVY
			,m_l.CHOVATEL
			,m_l.PORLAK
			,m_l.DATOTEL
			,m_l.CHOVOTEL
			,m_l.CHOVLAKT
			,m_l.PRIEBPOROD
			,m_l.POHLAVIE
			,m_l.ZMENA
			,m_l.DATUKONL
			,m_l.DATUKNORL
			,m_l.MEDZIOBD
			,m_l.HMOTKR
			,m_l.LAKTDNI
			,m_l.LAKDNIN
			,m_l.MLIEKCEL
			,m_l.MLIEKNOR
			,m_l.TUKCEL
			,m_l.TUKNOR
			,m_l.BIELKCEL
			,m_l.BIELKNOR
			,m_l.LAKTOZAC
			,m_l.LAKTOZAN
			,m_l.INDPER
			,m_l.INDLAK
			,m_l.CHARUST
			,m_l.MAXLAK
			,m_l.SPOSOBKU
			,m_l.MLIEKO100
			,m_l.TUK100
			,m_l.BIELK100
			,m_l.LAKT100
			,m_l.MLIEKO200
			,m_l.TUK200
			,m_l.BIELK200
			,m_l.LAKT200
			,m_l.DATZAPZVK
			,m_l.DATVYBZVK
			,m_l.KOD_DOJ
			,m_l.KOD_MEDZ);


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s112.migracia.dbo.CM_Laktacie as l1 where l1.ciskravy in (select ciskravy from #kravy_zvysne_lakt) /*and l1.DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ;

	delete a from PLIS.dbo.CM_Laktacie a where exists (select 1 from #laktacie_delete as ld where a.CISKRAVY = ld.ciskravy and a.PORLAK = ld.porlak)
	and ((a.SPRACINSERT < @IDDALSSPRAC or a.SPRACINSERT is null) and (a.SPRACUPDATE < @IDDALSSPRAC or a.SPRACUPDATE is null)) --and DATUKONL > '2012-01-01'

	print 'CM_Laktacie'


	-- TELATA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------



	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_stare from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_nove from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ into #telata_zvysne_ from #telata_stare except select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ from #telata_nove

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR/*, nullif(POHLAVIE, '') as POHLAVIE*/ into #telata_zvysne from #telata_zvysne_

	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null OR
	   t.cistelata is not null and 	t.cistelata = m_t.cistelata)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR
	when not matched then insert (
			 CISTELATA	
			,CHOVNAR	
			,OTECLIN	
			,OTECREG	
			,OUC		
			,MATKA		
			,HMOTOT		
			,DATNAR		
			,HMOTNAR	
			,PL1		
			,KR1		
			,PL2		
			,KR2		
			,PL3		
			,KR3		
			,PL4		
			,KR4		
			,PL5		
			,TYPPLEM	
			,FARBA		
			,PORLAK		
			,POHLAVIE	
			,ZNAKET		
			,PREUKAZ	
			,DOBANOS	
			,CHOVATEL	
			,PRIZNAKKU	
			,PRIEBPOR	
			,URCTEL		
			,PRICOBTPOR	
			,PRICUHYN	
			,DOVVYR		
			,DATVYR		
			,IDMA		
			,IDOT		
			,DONORKA	
			,IDDONOR)
	VALUES (
			m_t.CISTELATA
			,m_t.CHOVNAR
			,m_t.OTECLIN
			,m_t.OTECREG
			,m_t.OUC
			,m_t.MATKA
			,m_t.HMOTOT
			,m_t.DATNAR
			,m_t.HMOTNAR
			,m_t.PL1
			,m_t.KR1
			,m_t.PL2
			,m_t.KR2
			,m_t.PL3
			,m_t.KR3
			,m_t.PL4
			,m_t.KR4
			,m_t.PL5
			,m_t.TYPPLEM
			,m_t.FARBA
			,m_t.PORLAK
			,m_t.POHLAVIE
			,m_t.ZNAKET
			,m_t.PREUKAZ
			,m_t.DOBANOS
			,m_t.CHOVATEL
			,m_t.PRIZNAKKU
			,m_t.PRIEBPOR
			,m_t.URCTEL
			,m_t.PRICOBTPOR
			,m_t.PRICUHYN
			,m_t.DOVVYR
			,m_t.DATVYR
			,m_t.IDMA
			,m_t.IDOT
			,m_t.DONORKA
			,m_t.IDDONOR);

	print 'CM_Telata 1'

	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.cistelata is not null and t1.cistelata = t0.cistelata and t0.cistelata is not null)) as m_t
	on (t.cistelata is not null and t.cistelata = m_t.cistelata and m_t.cistelata is not null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.matka = t0.matka and t1.datnar = t0.datnar /*and t1.pohlavie = t0.pohlavie*/ and t1.cistelata is null and t0.cistelata is null)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	print 'CM_Telata 2'

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_stare_del from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_nove_del from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR, POHLAVIE into #telata_delete_ from #telata_stare_del except select CISTELATA, MATKA, DATNAR, POHLAVIE from #telata_nove_del

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR, nullif(POHLAVIE, '') as POHLAVIE into #telata_delete from #telata_delete_

	delete ad from plis.dbo.CM_Telata ad where ad.cistelata in (select cistelata from #telata_delete) and ad.CISTELATA is not null
	and ((ad.SPRACINSERT < @IDDALSSPRAC or ad.SPRACINSERT is null) and (ad.SPRACUPDATE < @IDDALSSPRAC or ad.SPRACUPDATE is null))

	delete ad1 from plis.dbo.CM_Telata ad1 where exists
	(select 1 from #telata_delete as t2 where t2.matka = ad1.matka and t2.datnar = ad1.datnar and t2.cistelata is null and ad1.cistelata is null)
	and ((ad1.SPRACINSERT < @IDDALSSPRAC or ad1.SPRACINSERT is null) and (ad1.SPRACUPDATE < @IDDALSSPRAC or ad1.SPRACUPDATE is null))

	print 'CM_Telata cele'


	-- VAZENIA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

	select CISTELATA, datvaz into #vazenia_stare from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_zvysne from #vazenia_stare except select CISTELATA, datvaz from #vazenia_nove

	merge PLIS.dbo.CM_vazenia as v
	using (select * from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy) /*and DATVAZ > '2010-01-01'*/) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC
	when not matched then insert (
			 CISTELATA	
			,DATVAZ		
			,HMOT			
			,RASTPAS		
			,CHOVVAZ		
			,TURNUS		
			,PRIZNAKKU	
			,DNIVAZ		
			,DNIPREPOC	
			,HMOTPREPOC	
			,PRIRPREPOC	
			,PRIR			
			,ZIVPRIR		
			,ZIVPRIRPREPOC)
	VALUES (	
			 m_v.CISTELATA
			,m_v.DATVAZ
			,m_v.HMOT
			,m_v.RASTPAS
			,m_v.CHOVVAZ
			,m_v.TURNUS
			,m_v.PRIZNAKKU
			,m_v.DNIVAZ
			,m_v.DNIPREPOC
			,m_v.HMOTPREPOC
			,m_v.PRIRPREPOC
			,m_v.PRIR
			,m_v.ZIVPRIR
			,m_v.ZIVPRIRPREPOC);


	merge PLIS.dbo.CM_vazenia as v
	using (select * from s112.migracia.dbo.CM_Vazenia as v0 where /*DATVAZ > '2010-01-01' and*/ exists
	(select 1 from #vazenia_zvysne as v1 where v0.cistelata = v1.cistelata and v0.DATVAZ = v1.datvaz)) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC;


	select CISTELATA, datvaz into #vazenia_stare_del from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove_del from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_delete from #vazenia_stare_del except select CISTELATA, datvaz from #vazenia_nove_del

	delete av from plis.dbo.CM_Vazenia av where /*DATVAZ > '2010-01-01'and*/ exists
	(select 1 from #vazenia_delete as v1 where av.cistelata = v1.cistelata and av.DATVAZ = v1.datvaz)
	and ((av.SPRACINSERT < @IDDALSSPRAC or av.SPRACINSERT is null) and (av.SPRACUPDATE < @IDDALSSPRAC or av.SPRACUPDATE is null))

	print 'CM_Vazenia'


	---- TABULKY PRE ZOSTAVY  V PLISE -----------------------------------------------------------------------------------------------------------------------------------------------



	delete from plis.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziObdMesove 
	select * from s112.migracia.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziObdMesove'


	delete from plis.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.Cp_Meso_TelataPoLaktacii 
	select * from s112.migracia.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)

	print 'Cp_Meso_TelataPoLaktacii'


	delete from plis.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_TelataVahy 
	select * from s112.migracia.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_TelataVahy'


	delete from plis.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_ChovatelMesoPlemena 
	select * from s112.migracia.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_ChovatelMesoPlemena'


	delete from plis.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_StadaPodlaVeku 
	select * from s112.migracia.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_StadaPodlaVeku'


	delete from plis.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.cp_Meso_MediobdobieReport 
	select * from s112.migracia.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)

	print 'cp_Meso_MediobdobieReport'


	delete from plis.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_telata_1B 
	select * from s112.migracia.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_telata_1B'


	delete from plis.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_1AReportTelata 
	select * from s112.migracia.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_1AReportTelata'


	delete from plis.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.cp_meso_telata_3b_1 
	select * from s112.migracia.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)

	print 'cp_meso_telata_3b_1'


	delete from plis.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_KravaPoslednaUzavLaktZaradeny 
	select * from s112.migracia.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_KravaPoslednaUzavLaktZaradeny'


	delete from plis.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_KravaPoslednaUzavLakt 
	select * from s112.migracia.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_KravaPoslednaUzavLakt'


	delete from plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH 
	select * from s112.migracia.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_UZITKOVOSTKRAVPOOTCOCH'


	delete from plis.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziobdZostavaA 
	select * from s112.migracia.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziobdZostavaA'


	delete from plis.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziobdZostavaB 
	select * from s112.migracia.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziobdZostavaB'


	delete from plis.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Mlieko_NajKrava 
	select * from s112.migracia.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Mlieko_NajKrava'


	delete from plis.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Mlieko_Kravy_21 
	select * from s112.migracia.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Mlieko_Kravy_21'

	DECLARE @CHOVATEL VARCHAR(9)
	DECLARE db_cursor CURSOR FOR  
	select chov from #temp_vybr_chovy 
	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @CHOVATEL   
	WHILE @@FETCH_STATUS = 0   
	BEGIN   
		EXECUTE [dbo].[C_ZZ_UpozorneniaNaVsetkychChovoch_CHOV] @CHOVATEL
		FETCH NEXT FROM db_cursor INTO @CHOVATEL   
	END   
	CLOSE db_cursor   
	DEALLOCATE db_cursor

	print 'Upozornenia na chovoch'

END

go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_plemeno_rocenka_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)='',--null
@plem varchar(10)='' --null

AS

BEGIN
delete from CR_LaktacneZostavy_Opr where PlemTyp in ('SR','S','P','H','B')

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_ZostavaLaktacie_plemeno_rocenka @chov, @datumOd, @datumDo, @region, @plem 
												


           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
	
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_plemeno_rocenka @chov, @datumOd, @datumDo, @region, @plem 
	EXEC CR_ZostavaLaktacie_plemeno_rocenka_SPOLU @chov, @datumOd, @datumDo, @region, @plem 

	delete from CR_LaktacneZostavy_Opr where datumOd = @datumOd and datumDo = @datumDo and filter is null

end
go

/****** Script for SelectTopNRows command from SSMS  ******/
-- rocenka mlieko --- nasledne prepisat do excelu 
----Pomer tuk/Bilekovina v rozboroch v kontrolnom roku---str 20
-- Exec Roc_MLHD_11 '2017-01-01', '2017-12-31'

CREATE procedure  [dbo].[Roc_MLHD_10]
	@datumOd date,
	@datumDo date

	as 
	begin

--declare @datumOd date='2017-01-01', @datumDo date= '2017-12-31'
 
 /** 1.laktacie T:B < 1.1**/
 select distinct count(*) as T1L1 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '1'
					and k.PERCTUKU/k.PERCBIELK < 1.1
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '1'	
					and ak.PERCTUKU/ak.PERCBIELK < 1.1
		) t

	/** 1.laktacie T:B 1.1 - 1,5**/
	select distinct count(*) as T2L1 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '1'
					and k.PERCTUKU/k.PERCBIELK > 1.1 and k.PERCTUKU/k.PERCBIELK < 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '1'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.1 and ak.PERCTUKU/ak.PERCBIELK < 1.5
		) r
	/** 1.laktacie T:B > 1,5**/
		select distinct count(*) as T3L1 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '1'
					and k.PERCTUKU/k.PERCBIELK > 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '1'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.5 
		) s

/**2laktacie**/
	/** 2.laktacie T:B < 1.1**/
	select distinct count(*) as T1L2 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK < 1.1
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK < 1.1
		) t2

	/** 2.laktacie T:B 1.1 - 1,5**/
	select distinct count(*) as T2L2 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK > 1.1 and k.PERCTUKU/k.PERCBIELK < 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.1 and ak.PERCTUKU/ak.PERCBIELK < 1.5
		) r2
	/**2.laktacie T:B > 1,5**/
		select distinct count(*) as T3L2 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK > 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.5 
		) s2

/**vsetky laktacie**/
	/**vsetky laktacie T:B < 1.1**/
	 select distinct count(*) as T1L3 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					--and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK < 1.1
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					--and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK < 1.1
		) t3

	/**vsetky laktacie T:B 1.1 - 1,5**/
	select distinct count(*) as T2L3 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					--and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK > 1.1 and k.PERCTUKU/k.PERCBIELK < 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					--and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.1 and ak.PERCTUKU/ak.PERCBIELK < 1.5
		) r3
	
	/**vsetky laktacie T:B > 1,5**/
		select distinct count(*) as T3L3 from (
			Select distinct * /*k.CISKRAVY, k.PERCBIELK, k.PERCTUKU, k.PERCTUKU/k.PERCBIELK*/ from CM_Kontroly as k
				where k.DATKONTR >= @datumOd and k.DATKONTR <=@datumDo
					and k.PERCBIELK > 0 
					and k.PERCTUKU > 0
					--and k.PORPREBLAK = '2'
					and k.PERCTUKU/k.PERCBIELK > 1.5 
		union
			Select distinct * /* ak.CISKRAVY, ak.PERCBIELK, ak.PERCTUKU, ak.PERCTUKU/ak.PERCBIELK */ from CM_ArchKon as ak 
				where ak.DATKONTR >= @datumOd and ak.DATKONTR <=@datumDo
					and ak.PERCBIELK > 0 
					and ak.PERCTUKU > 0
					--and ak.PORPREBLAK = '2'	
					and ak.PERCTUKU/ak.PERCBIELK > 1.5 
		) s3

end
go

create PROCEDURE [dbo].[Roc_MPHD_NAJCHOV_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN
delete from Roc_MPHD_Tab_Najchov where rok=datepart(year, @DatumOd)

DECLARE @counter INT
DECLARE @podnik VARCHAR(6)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT kraj+okres+podnik from Roc_MPHD_Tab_zaklad 
					where rok = DATEPART(year,@datumOd)
					order by kraj+okres+podnik
		
    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @podnik

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @podnik
			EXEC Roc_MPHD_Najchov @podnik,@datumOd, @datumDo 

           FETCH NEXT FROM prepocet_cursor INTO @podnik

		
       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


set @podnik = null
EXEC Roc_MPHD_Najchov @podnik,@datumOd, @datumDo 

END

go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-23
-- Description:	Vrati vypocitany efekt pevnej regresie
-- =============================================
CREATE FUNCTION [dbo].[C_blup_fixreg] 
(
	@TYP [varchar](2),
	@DATUMN date, 
	@DATOTEL date, 
	@PORLAK varchar(2)
)
RETURNS int
AS
BEGIN

	declare 
	@SKUPLE varchar(3),
	@VEKM int,
	@SEZONA int,
	@I int,
	@K int,
	@L int,
	@J int,
	@BODY int

	set @SKUPLE = case when @TYP in ('H0', 'H1', 'H2', 'H3') then 'HOL'
								when @TYP in ('S0', 'S1', 'S2') then 'STR'
								else 'PIN' end

	set @VEKM = DATEDIFF(MONTH, @DATUMN, @DATOTEL)

	set @SEZONA = case when DATEPART(MONTH, @DATOTEL) between 4 and 9 then 1 else 2 end

	set @I = case when @TYP in ('H0', 'S0', 'P0') then 1
					when @TYP in ('H1', 'S1', 'P1') then 2
					when @TYP in ('H2', 'S2', 'P2') then 3
					when @TYP = 'H3' then 4 end

	set @K = case when @SEZONA = 1 then 1 
					when @SEZONA = 2 then 2 end

	set @L = case when @PORLAK = '01' then 1
					when @PORLAK = '02' then 2
					when @PORLAK = '03' then 3 end

	set @J = case when @SKUPLE = 'HOL' AND @PORLAK = '01' then
					case when @VEKM < 27 then 1
							when @VEKM between 27 and 30 then 2
							when @VEKM > 30 then 3 end
					when @SKUPLE = 'HOL' AND @PORLAK = '02' then
					case when @VEKM < 41 then 1
							when @VEKM between 41 and 45 then 2
							when @VEKM > 45 then 3 end
					when @SKUPLE = 'HOL' AND @PORLAK = '03' then
					case when @VEKM < 54 then 1
							when @VEKM between 54 and 59 then 2
							when @VEKM > 59 then 3 end
					when @SKUPLE = 'STR' AND @PORLAK = '01' then
					case when @VEKM < 30 then 1
							when @VEKM between 30 and 34 then 2
							when @VEKM > 34 then 3 end
					when @SKUPLE = 'STR' AND @PORLAK = '02' then
					case when @VEKM < 43 then 1
							when @VEKM between 43 and 47 then 2
							when @VEKM > 47 then 3 end
					when @SKUPLE = 'STR' AND @PORLAK = '03' then
					case when @VEKM < 56 then 1
							when @VEKM between 56 and 61 then 2
							when @VEKM > 61 then 3 end
					when @SKUPLE = 'PIN' AND @PORLAK = '01' then
					case when @VEKM < 34 then 1
							when @VEKM between 34 and 37 then 2
							when @VEKM > 37 then 3 end
					when @SKUPLE = 'PIN' AND @PORLAK = '02' then
					case when @VEKM < 47 then 1
							when @VEKM between 47 and 51 then 2
							when @VEKM > 51 then 3 end
					when @SKUPLE = 'PIN' AND @PORLAK = '03' then
					case when @VEKM < 60 then 1
							when @VEKM between 60 and 65 then 2
							when @VEKM > 65 then 3 end end
		
	set @BODY = case when @SKUPLE = 'HOL' then ((@L - 1) * 24 + (@I - 1) * 6 + (@J - 1) * 2 + @K)
											else ((@L - 1) * 18 + (@I - 1) * 6 + (@J - 1) * 2 + @K) end

	return @BODY
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date, ,>
-- Description:	<Description, ,>
-- =============================================
CREATE FUNCTION count_all_char
(
	 @text varchar(max),
	 @char varchar(1)
)
RETURNS int
AS
BEGIN
--declare @text varchar(256) = '103,H0,55,44,11,44'
--declare @char varchar(1) = ','
declare @pos int = CHARINDEX(@char, @text)
declare @pocet int = 0
while @pos <> 0
begin
	set @pocet = @pocet + 1
	set @text = SUBSTRING(@text, CHARINDEX(@char, @text)+1, len(@text) )
	set @pos = CHARINDEX(@char, @text)
end

return @pocet

END
go

CREATE PROCEDURE [dbo].[CR_KUARHD_mesacne_Oprava]

	@chov VARCHAR(9),
	@rok INT,
	@mesiac INT--,
	--@dekada INT

	AS

	BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016, 
--				19.5.2016	-- doplnene minus 2 mesiace od vyradenia
--				30.05.2016	-- opravene dvojicky, interval z inseminacie, vek pri oteleni, linia a register otca, vyradenie kravy je na stavene 1.den dekady minus 2 mesiace
							-- opraveny datum poslednej inseminacie, byka a ocakavaneho otelenia
--				1.6.2016	-- oprava datumu inseminacie po reinseminacii
--				25.7.2017	-- zrusenie dekad
--				6.12.2017	-- opravenie vyberu plemena matky - ak sa matka nenachadza v kravach, tak ju vyhlada v telatach
-- Description:	Mesačné výsledky kontroly úžitkovosti a reprodukcie HD
-- @chov, @rok, @mesiac
-- ===================================================================

	DECLARE @datum DATE, @datum2 DATE
    
	SELECT @datum = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/
	SET @datum2 = DATEADD(MONTH, -2, @datum)

	PRINT 'Datum: ' + CONVERT(VARCHAR, @datum);
	PRINT 'Datum -2 mesiace: ' + CONVERT(VARCHAR, @datum2);

	IF OBJECT_ID('tempdb..#krava') IS NOT NULL DROP TABLE #krava
	SELECT * INTO #krava FROM dbo.CM_Krava WHERE CHOVATEL=@chov and PRIZNAKKU=1 AND (DATVYR IS NULL OR DATVYR >= @datum2) 
	IF OBJECT_ID('tempdb..#kontroly') IS NOT NULL DROP TABLE #kontroly
	
	SELECT DISTINCT kontroly.CISKRAVY, kontroly.DATKONTR, kontroly.PERCTUKU, kontroly.PERCBIELK, kontroly.BUNECELEM  INTO #kontroly FROM dbo.CM_Kontroly kontroly
	INNER JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = kontroly.CISKRAVY) AND (DATVYR IS NULL OR DATVYR >= @datum2)
	WHERE  kontroly.CISCHOVU = @chov
	
	IF OBJECT_ID('tempdb..#k2row') IS NOT NULL DROP TABLE #k2row
	SELECT  t.* INTO #k2row FROM (SELECT  DISTINCT CISKRAVY FROM #kontroly) mo
	CROSS APPLY(SELECT  TOP 2 * FROM #kontroly mi  WHERE  mi.CISKRAVY = mo.CISKRAVY ORDER BY mi.DATKONTR DESC) t


	

		-- kontrola a kontrola - 1
	IF OBJECT_ID('tempdb..#k1') IS NOT NULL DROP TABLE #k1
	SELECT ciskravy, MAX(datkontr)datum1 INTO #k1 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k2') IS NOT NULL DROP TABLE #k2
	SELECT ciskravy, MIN(datkontr)datum2 INTO #k2 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k1temp') IS NOT NULL DROP TABLE #k1temp
	IF OBJECT_ID('tempdb..#k2temp') IS NOT NULL DROP TABLE #k2temp
	
	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko, ROUND(AVG(PERCTUKU),2)tuk, ROUND(AVG(PERCBIELK),2)bielk, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB, ROUND(AVG(BUNECELEM),0)SB INTO #k1temp  FROM #k1 k1
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k1.ciskravy AND k1.datum1 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY

	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko1, ROUND(AVG(PERCTUKU),2)tuk1, ROUND(AVG(PERCBIELK),2)bielk1, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB1, ROUND(AVG(BUNECELEM),0)SB1  INTO #k2temp FROM #k2 k2
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k2.ciskravy AND k2.datum2 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY	
	
	IF OBJECT_ID('tempdb..#2ko') IS NOT NULL DROP TABLE #2ko
	SELECT krava.CISKRAVY, k1temp.mlieko, k2temp.mlieko1, k1temp.tuk, k1temp.bielk, k1temp.TB, k1temp.SB, k2temp.tuk1, k2temp.bielk1, k2temp.TB1, k2temp.SB1 INTO #2ko FROM #krava krava
		INNER JOIN #k1temp k1temp ON (k1temp.CISKRAVY = krava.CISKRAVY)
		INNER JOIN #k2temp k2temp ON (k2temp.CISKRAVY = krava.CISKRAVY)

		-- 100 - 200 - 300

	IF OBJECT_ID('tempdb..#sdt') IS NOT NULL DROP TABLE #sdt
	
	SELECT c.* INTO #sdt FROM
	(
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 100)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 200)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 305)
	)c


DECLARE @krava VARCHAR(14), @iplca VARCHAR(14), @counter INT, @count INT, @poradie INT, @pdatum DATE, @fdatum DATE, @ivyse INT, @bykreg INT, @byklin  VARCHAR(3)
DECLARE @datotel DATE, @POCINS1 INT, @POCINS2 INT, @POCINS3 INT, @POCINS4VIAC INT, @POCTELNYCH INT

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL DROP TABLE #inseminacie

  CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT,
		  byklin VARCHAR(3),
		  bykreg VARCHAR(3),
		  datotel DATE
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM	dbo.CM_Insvyk I
                INNER JOIN dbo.CM_Krava K ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ((K.DATVYR) >= DATEADD(MONTH, -2, @datum) OR K.DOVVYR IS NULL) -- zahrnut do vyberu aj kravy, ktore boli vyradene od obdobia minus 2 mesiace
				AND I.IPOIN <> 99
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = MAX(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@byklin = MAX(CONVERT(VARCHAR(3),IBLIN)),
					@bykreg = MAX(IBREG),
					@datotel = MAX(IDAOT)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> '99'
					
            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse, byklin, bykreg, datotel )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse, @byklin, @bykreg, @datotel )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


-- interval

DECLARE @odatum DATE,@rozdiel_dni INT, @POCINTR INT, @POCSERV INT

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) -- pridane
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99


            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor


BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                --AND ( ISNULL(DOVVYR, '') = '' )
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) --pridane
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
					AND IsNumeric(IVYSE) = 1 AND CAST(IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END
END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor


IF OBJECT_ID('tempdb..#medziobdobie') IS NOT NULL DROP TABLE #medziobdobie
SELECT k.CISKRAVY ciskravy, n.MEDZIOBD INTO #medziobdobie FROM cm_krava k
			LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
			WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL)
			AND (DATVYR >= @datum2 OR k.DOVVYR IS NULL) -- pridane
			--AND (ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00')

IF OBJECT_ID('tempdb..#napocetlak') IS NOT NULL DROP TABLE #napocetlak
SELECT
	k.CISKRAVY AS ciskravy,
	n.LAKTDNI AS nap_dni,
	n.MLIEKCEL AS nap_mliekokg,
	ROUND(((n.TUKCEL / n.MLIEKCEL)*100),2) AS nap_tukper,
	ROUND(((n.BIELKCEL / n.MLIEKCEL)*100),2) AS nap_bielkper,
	ROUND(n.TUKCEL,0) AS nap_tkg,
	ROUND(n.BIELKCEL,0) AS nap_bkg
	INTO #napocetlak
	FROM dbo.CM_Naplak n
	LEFT JOIN #krava k ON (k.CISKRAVY = n.CISKRAVY)

	


	BEGIN

	--IF OBJECT_ID('tempdb..#vyber') IS NOT NULL DROP TABLE #vyber

	----DELETE FROM CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok  AND mesiac = @mesiac --AND dekada = @dekada


	----INSERT INTO dbo.CR_KURHD_MesUzavCH_1
	SELECT
	 CONVERT(varchar(9), @chov) chov
	,CONVERT(INT, @rok) rok
	,CONVERT(INT, @mesiac) mesiac
	,/*CONVERT(INT, @dekada)*/ null dekada
	,CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	,CONVERT(INT,k.PORPREBLAK, NULL) PORPREBLAK
	,CONVERT(VARCHAR(2),n.ZMENA, NULL) ZMENA
	,UPPER(ISNULL(n.ZNAK,NULL)) ZNAK
	,CONVERT(DECIMAL(7,0),(tdm.SPI),NULL) SPI
	,CONVERT(DECIMAL(7,2), ROUND(tdm.REL*100,2), NULL) AS PERSPOL
	,CONVERT(DATE,k.datnar,NULL) DATNAR
	,CONVERT(VARCHAR(70),
	ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
    + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
    + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '')) PLEMKR
	,CONVERT(DATE, n.DATOTEL) DATOT
	,CONVERT(INT,(SELECT COUNT(*) FROM dbo.CM_kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY),NULL)PK
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 1 ORDER BY ko.DATKONTR DESC))ML1
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '1' THEN '*' END)ZN1
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 2 ORDER BY ko.DATKONTR DESC))ML2
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '2' THEN '*' END)ZN2
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 3 ORDER BY ko.DATKONTR DESC))ML3
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '3' THEN '*' END)ZN3
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 4 ORDER BY ko.DATKONTR DESC))ML4
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '4' THEN '*' END)ZN4
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 5 ORDER BY ko.DATKONTR DESC))ML5
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '5' THEN '*' END)ZN5
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 6 ORDER BY ko.DATKONTR DESC))ML6
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '6' THEN '*' END)ZN6
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 7 ORDER BY ko.DATKONTR DESC))ML7
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '7' THEN '*' END)ZN7
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 8 ORDER BY ko.DATKONTR DESC))ML8
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '8' THEN '*' END)ZN8
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 9 ORDER BY ko.DATKONTR DESC))ML9
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '9' THEN '*' END)ZN9
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 10 ORDER BY ko.DATKONTR DESC))ML10
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '10' THEN '*' END)ZN10
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 11 ORDER BY ko.DATKONTR DESC))ML11
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '11' THEN '*' END)ZN11
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 12 ORDER BY ko.DATKONTR DESC))ML12
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '12' THEN '*' END)ZN12
	,CONVERT(DECIMAL(4,2),kontrola2.tuk)PTUKU1
	,CONVERT(DECIMAL(4,2),kontrola2.bielk)PBIELK1
	,CONVERT(DECIMAL(3,1),kontrola2.TB)PTB1
	,CONVERT(INT,kontrola2.SB)SB1
	,CONVERT(DECIMAL(3,2),kontrola2.tuk1)PTUKU2
	,CONVERT(DECIMAL(3,2),kontrola2.bielk1)PBIELK2
	,CONVERT(DECIMAL(3,2),kontrola2.TB1)PTB2
	,CONVERT(INT,kontrola2.SB1)SB2
	,CONVERT(INT,sdt.laktdni)LAKTDNI
	,CONVERT(INT,sdt.lakdnin)UDNI
	,CONVERT(DECIMAL(7,2),sdt.mlieknor)NAPML
	,CONVERT(DECIMAL(7,2),sdt.tuknor)NAPTK
	,CONVERT(DECIMAL(3,2),sdt.tukper)UPERT
	,CONVERT(DECIMAL(7,2),sdt.bielknor)NAPBL 
	,CONVERT(DECIMAL(4,2),sdt.bielkper)UPERB
	,CONVERT(INT,ins.poradie)PORINS
	--,(SELECT TOP 1 ( i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)
	,(SELECT TOP 1 (case when i.IBLIN = 'NEZ' then 'NEZ'
					else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and (CONVERT(DATE, ins.fdatum)>n.DATOTEL) ORDER BY i.IDAIN DESC)OLINREG
	----,CONVERT(DATE,(CASE WHEN ins.ivyse = 9 THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))DTOTOC
	,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) and (DATEDIFF(day, n.DATOTEL, CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END)) else NULL end as DTOTOC
    ,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) then CONVERT(DATE, ins.fdatum)else null end DATINS
	--,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3))OUC
	,case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS OUC
	,CONVERT(VARCHAR(70),byc.PL1 + '-' + CONVERT(VARCHAR, ISNULL(byc.KR1, 0)) + ' ' + ISNULL(byc.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR2, 0)) + ' ' + ISNULL(byc.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR3, 0)) + ' ' + ISNULL(byc.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR4, 0)) + ' ' + ISNULL(byc.PL5, ''), ''), ''), ''))OTPLEM
	,CONVERT(VARCHAR(14),k.MA)MATKA
	--,CONVERT(VARCHAR(70),
	--		(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
	--	FROM dbo.CM_Krava t1
	--		LEFT JOIN dbo.CM_Krava tt1 ON t1.MA = tt1.CISKRAVY WHERE t1.CISKRAVY = k.CISKRAVY))MAPLEM
	--,null as MAPLEM
	-----------------opravene 6.12.2017 - doplnenie, hladanie plemena matky v telatach, ak sa matka nenachadza v CM_Krave - masove kravy niekedy zostavaju v tabulke teliat

	,CONVERT(VARCHAR(70),(case when (select tt1.CISKRAVY from dbo.CM_Krava tt1 where k.MA = tt1.CISKRAVY)  is not null
			then 
				(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
				FROM  dbo.CM_Krava tt1 WHERE tt1.CISKRAVY = k.MA)
		else 
			(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
			FROM  dbo.CM_Telata tt1  WHERE tt1.CISTELATA = k.MA)
		end)) as MAPLEM
	,CONVERT(INT, interval.rozdiel_dni)INTERVAL
	,CONVERT(INT, sp.rozdiel_dni)SERVPER
	,CONVERT(INT, medzi.MEDZIOBD)MEDZIOB
	,CONVERT(VARCHAR(4),(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)/12)))+ '/' +(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)% 12))))OVEKRM -- rok/mesiac
	,CONVERT(VARCHAR(2),n.POHLAVIE)POHLTEL
	,CONVERT(INT, n.PRIEBPOROD)PRIEBPOR
	,CONVERT(INT, nap.nap_dni)
	,CONVERT(INT, nap.nap_mliekokg)
	,CONVERT(DECIMAL(5,2), nap.nap_tukper)
	,CONVERT(DECIMAL(5,2), nap.nap_bielkper)
	,CONVERT(INT, nap.nap_tkg)
	,CONVERT(INT, nap.nap_bkg)
	,CONVERT(VARCHAR(2), k.DOVVYR)
	,CONVERT(DATE, k.DATVYR, NULL)
	,GETDATE() AS generovane
	,(SELECT TOP 1 DATKONTR FROM #kontroly kk WHERE kk.CISKRAVY = k.CISKRAVY order by DATKONTR desc) kontrola
	, case when k.SKUPINA ='0' then null else k.SKUPINA end as SKUPINA
	, k.OUSCIS as otec


	FROM dbo.CM_Krava k
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #2ko kontrola2 ON (kontrola2.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #sdt sdt ON (sdt.ciskravy = k.CISKRAVY)
		LEFT JOIN #inseminacie ins ON (ins.krava = k.CISKRAVY)
		LEFT JOIN dbo.CM_KravyTDM tdm ON (tdm.CISLO = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Telata tel ON (tel.CISTELATA = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = tel.OUC)
		LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = k.OUSCIS)
		LEFT JOIN #krava mama ON (mama.ma = k.CISKRAVY)
		LEFT JOIN #interval interval ON (interval.krava = k.CISKRAVY)
		LEFT JOIN #servisperioda sp ON (sp.krava = k.CISKRAVY)
		LEFT JOIN #medziobdobie medzi ON (medzi.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #napocetlak nap ON (k.CISKRAVY = nap.ciskravy)
	WHERE  k.CHOVATEL = @chov and k.PRIZNAKKU=1
			AND (k.DATVYR >= @datum2 OR k.DOVVYR IS NULL)
			--AND k.DOVVYR IS NULL

	
	--------------------------------------------------------------------
	;WITH CTE AS(
	 SELECT ciskravy, chov, mesiac, rok, dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY ciskravy ORDER BY ciskravy)
		 FROM dbo.CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac /*AND dekada = @dekada*/ AND ciskravy IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1
	--------------------------------------------------------------------




	END 

	END
go

/****** Script for SelectTopNRows command from SSMS  ******/
/** Rocenka MLHD ----PREHLAD VYSLEDKOV PODLA KRAJOV - OBSAH MOCOVINY V MLIEKU ---str 17 **/
--nasledne prepisat do excelu, neuklada sa do tabulky

CREATE procedure  [dbo].[Roc_MLHD_6]
 @datumOd date, --'2017-01-01'
 @datumDo date  --'2017-12-31'
 
 as 
 begin
 
	SELECT left (chov,1) as kraj,
		  sum(case when bil > 3.6 and mocov <   15 then 1 end) as SKUP1,
		  sum(case when bil > 3.6 and mocov  >= 15.0 and mocov < 30.0 then 1 end) as SKUP2,       
		  sum(case when bil > 3.6 and mocov  >= 30.0 then 1 end) as SKUP3,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov < 15 then 1 end) as SKUP4,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov >= 15 and mocov < 30.0  then 1 end) as SKUP5,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov  >= 30.0  then 1 end) as SKUP6,
		  sum(case when bil < 3.2 and mocov < 15 then 1 end) as SKUP7,
		  sum(case when bil < 3.2 and mocov >= 15.0 and mocov < 30.0 then 1 end) as SKUP8,
		  sum(case when bil < 3.2 and mocov >= 30 then 1 end) as SKUP9,
		   sum (1)
  
	  FROM [dbo].[CM_Mocovina]
	  where datrozb >= @datumOd and datrozb < @datumDo and bil > 0 and 
	  len(cis_kravy) = 14 and cis_kravy not between  'SK000000000001' and 'SK000000000100'
	  --and (chov=@chov or @chov is null)
  
	  group by left (chov,1)
	  order by left (chov,1)

	  /**SR**/
	  	SELECT 'SR' as kraj,
		  sum(case when bil > 3.6 and mocov <   15 then 1 end) as SKUP1,
		  sum(case when bil > 3.6 and mocov  >= 15.0 and mocov < 30.0 then 1 end) as SKUP2,       
		  sum(case when bil > 3.6 and mocov  >= 30.0 then 1 end) as SKUP3,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov < 15 then 1 end) as SKUP4,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov >= 15 and mocov < 30.0  then 1 end) as SKUP5,
		  sum(case when bil >= 3.2 and bil <= 3.6 and mocov  >= 30.0  then 1 end) as SKUP6,
		  sum(case when bil < 3.2 and mocov < 15 then 1 end) as SKUP7,
		  sum(case when bil < 3.2 and mocov >= 15.0 and mocov < 30.0 then 1 end) as SKUP8,
		  sum(case when bil < 3.2 and mocov >= 30 then 1 end) as SKUP9,
		   sum (1)
  
	  FROM [dbo].[CM_Mocovina]
	  where datrozb >= @datumOd and datrozb < @datumDo and bil > 0 and 
	  len(cis_kravy) = 14 and cis_kravy not between  'SK000000000001' and 'SK000000000100'
	  --and (chov=@chov or @chov is null)
  
	  --group by left (chov,1)
	  --order by left (chov,1)
  end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-03-01
-- Description:	priprava TXT suborov dennych nadojov za H, S a P pre BLUP (aj s SCS)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_denNadTXT]
AS
BEGIN

IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_h'))
	drop table temp_dennad_h

SELECT    --top 100000
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
td.DATKONTR,
td.CISCHOVU, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), td.SCS)), 5) as SCS0, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI
,'  ' as POZN
into temp_dennad_h
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
and ht.PLEM = 'H' 

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +convert(varchar(8), DATKONTR, 4) +CISCHOVU +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS0 +DNI +POZN from plis.dbo.temp_dennad_h order by CISKRAVY, DATKONTR" queryout "e:\ROZBORAK\Data\BLUP\H\datafile.sdf" -T -c -t,'

drop table temp_dennad_h

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD]  where plem = ''H''" queryout "e:\ROZBORAK\Data\BLUP\H\htd_count.txt" -T -c -t,'



IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_s'))
	drop table temp_dennad_s

SELECT  -- top 100    
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
td.DATKONTR,
td.CISCHOVU, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), td.SCS)), 5) as SCS0, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI
,'  ' as POZN
into temp_dennad_s
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('S0', 'S1', 'S2')
and ht.PLEM = 'S' 

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +convert(varchar(8), DATKONTR, 4) +CISCHOVU +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS0 +DNI +POZN from plis.dbo.temp_dennad_s order by CISKRAVY, DATKONTR" queryout "e:\ROZBORAK\Data\BLUP\S\datafile.sdf" -T -c -t,'

drop table temp_dennad_s

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD]  where plem = ''S''" queryout "e:\ROZBORAK\Data\BLUP\S\htd_count.txt" -T -c -t,'


IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_p'))
	drop table temp_dennad_p

SELECT   -- top 100    
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
td.DATKONTR,
td.CISCHOVU, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), td.SCS)), 5) as SCS0, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI
,'  ' as POZN
into temp_dennad_p
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('P0', 'P1', 'P2')
and ht.PLEM = 'P' 

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +convert(varchar(8), DATKONTR, 4) +CISCHOVU +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS0 +DNI +POZN from plis.dbo.temp_dennad_p order by CISKRAVY, DATKONTR" queryout "e:\ROZBORAK\Data\BLUP\P\datafile.sdf" -T -c -t,'

drop table temp_dennad_p

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD]  where plem = ''P''" queryout "e:\ROZBORAK\Data\BLUP\P\htd_count.txt" -T -c -t,'


-- s SB ------------------------------------------------


IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_h_sb'))
	drop table temp_dennad_h_sb

SELECT    --top 1000
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), case when td.SB > 0 then log(td.SB/100, 10)/log(2, 10) + 3 else 0 end)), 5) as SCS, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI

into temp_dennad_h_sb
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD_SB as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
and ht.PLEM = 'H' 
and (SB is not null and SB > 0) and ((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0)

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS +DNI from plis.dbo.temp_dennad_h_sb order by CISKRAVY" queryout "e:\ROZBORAK\Data\BLUP\H\SB\datafile.sdf" -T -c -t,'

drop table temp_dennad_h_sb

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD_SB]  where plem = ''H''" queryout "e:\ROZBORAK\Data\BLUP\H\SB\htd_count.txt" -T -c -t,'


IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_s_sb'))
	drop table temp_dennad_s_sb

SELECT   -- top 100    
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), case when td.SB > 0 then log(td.SB/100, 10)/log(2, 10) + 3 else 0 end)), 5) as SCS, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI

into temp_dennad_s_sb
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD_SB as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('S0', 'S1', 'S2')
and ht.PLEM = 'S' 
and (SB is not null and SB > 0) and ((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0)

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS +DNI from plis.dbo.temp_dennad_s_sb order by CISKRAVY" queryout "e:\ROZBORAK\Data\BLUP\S\SB\datafile.sdf" -T -c -t,'

drop table temp_dennad_s_sb

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD_SB]  where plem = ''S''" queryout "e:\ROZBORAK\Data\BLUP\S\SB\htd_count.txt" -T -c -t,'


IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_dennad_p_sb'))
	drop table temp_dennad_p_sb

SELECT   -- top 100    
convert(nchar(15), td.CISKRAVY + '               ') as CISKRAVY,
convert(nchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then td.OTEC else k.OUSCIS end, '000000000000000') + '               ') as OTEC,
convert(nchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then td.MATKA else k.MA end, '000000000000000') + '               ') as MATKA,
td.PORLAK, 
RIGHT('      '+ convert(varchar(6), ht.PORADIE), 6) as HTD,
RIGHT('00'+ convert(varchar(2), dbo.C_blup_fixreg(td.TYP, td.DATUMN, td.DATOTEL, td.PORLAK)), 2) as FIXREG,
RIGHT('    '+ convert(varchar(4), convert(decimal(3,1), td.MLIEKO)), 4) as MLIEKO, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUK)), 4) as TUK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.TUKP)), 4) as TUKP, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELK)), 4) as BIELK, 
RIGHT('    '+ convert(varchar(4), convert(decimal(3,2), td.BIELKP)), 4) as BIELKP, 
RIGHT('     '+ convert(varchar(5), isnull(td.SB, 0)), 5) as SB, 
RIGHT('     '+ convert(varchar(5), convert(decimal(4,2), case when td.SB > 0 then log(td.SB/100, 10)/log(2, 10) + 3 else 0 end)), 5) as SCS, 
RIGHT('   '+ convert(varchar(3), case when td.DNI > 999 then 999 else td.DNI end), 3) as DNI

into temp_dennad_p_sb
FROM CM_ZSTDM as td INNER JOIN
        CP_HTD_SB as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
					LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
WHERE td.TYP in ('P0', 'P1', 'P2')
and ht.PLEM = 'P' 
and (SB is not null and SB > 0) and ((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0)

EXEC xp_cmdshell 'bcp "select +CISKRAVY +OTEC +MATKA +PORLAK +HTD +FIXREG +MLIEKO +TUK +TUKP +BIELK +BIELKP +SB +SCS +DNI from plis.dbo.temp_dennad_p_sb order by CISKRAVY" queryout "e:\ROZBORAK\Data\BLUP\P\SB\datafile.sdf" -T -c -t,'

drop table temp_dennad_p_sb

EXEC xp_cmdshell 'bcp "SELECT count(*) FROM [plis].[dbo].[CP_HTD_SB]  where plem = ''P''" queryout "e:\ROZBORAK\Data\BLUP\P\SB\htd_count.txt" -T -c -t,'


END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-28
-- Description:	Prihratie dat z Interbull-u do tabuliek v PLIS-e
-- Input:		nastavenie roka a mesiaca pre identifikaciu vysledkov
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PLIS_TDM]
	@rok varchar(4),
	@mesiac varchar(2)
AS
BEGIN

	DECLARE @RC int

	EXECUTE @RC = [dbo].[C_blup_BykyTDM_PLIS] 
		@rok,
		@mesiac

	EXECUTE @RC = [dbo].[C_blup_BykyTDMSB_PLIS] 
		@rok,
		@mesiac		

	EXECUTE @RC = [dbo].[C_blup_KravyTDM_PLIS] 
		@rok,
		@mesiac																	

END
go




-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru fenotypov pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_phenotypic4]
AS
BEGIN
    

	delete from CP_LAKT_VYSL_PDC_SIM_NEMECKO

	  



	-- 1 lakt 100 dni
	SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR (DATUKONL)  end) as ROKUK, 100 as DNI, v1.MLIEKO100 as MLIEKO,  v1.TUK100 as TUK, v1.BIELK100  as BIELK into #temp_1_100
	  FROM View_CP_LaktacieNaplak as v1
	 
	  where v1.porlak = '01' and v1.mlieko100 is not null and zmena in (30, 40, 11)
	  and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, u.PRMLIEKO

	  FROM #temp_1_100 mt 
	  left join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.DNI = u.DNI and
	                                        mt.ROKUK= u.rok    

	 
	-- 1 lakt 200 dni
	
    SELECT v1.CISKRAVY, v1.CHOVATEL, v1.PORLAK, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR (DATUKONL)  end) as ROKUK, 200 as dni, v1.MLIEKO200 as MLIEKO,  v1.TUK200 as TUK, v1.BIELK200  as BIELK into #temp_1_200
	  FROM View_CP_LaktacieNaplak as v1
	 
	  where v1.porlak = '01' and v1.mlieko200 is not null and zmena in (30, 40, 11)
	  and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, u.PRMLIEKO
	                
	FROM #temp_1_200 mt
	 left join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.DNI = u.DNI and
	                                        mt.ROKUK= u.rok    

	
 	-- 1 lakt 305 dni

    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR (DATUKONL)  end) as ROKUK, 305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_1_305
	  FROM View_CP_LaktacieNaplak as v1
	  where v1.porlak = '01' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	  and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, u.prmlieko
	                  
	FROM #temp_1_305 mt
     left join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.DNI = u.DNI and
	                                        mt.ROKUK= u.rok    
	-- 2 lakt 305 dni
	
    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR (DATUKONL)  end) as ROKUK, 305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_2_305
	  FROM View_CP_LaktacieNaplak as v1
	 
	  where v1.porlak = '02' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	  and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, u.prmlieko
	
	FROM #temp_2_305 mt
		  left join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.DNI = u.DNI and
	                                        mt.ROKUK= u.rok    
	-- 3 lakt 305 dni

    SELECT v1.CISKRAVY, v1.CHOVATEL, v1.PORLAK,  (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR (DATUKONL)  end) as ROKUK,  305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_3_305
	FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '03' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, u.prmlieko
	            
	FROM #temp_3_305 mt
	--inner join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.dni = u.DNI
	       left join CP_USEKY_LAKT_ROCNE as u on mt.CHOVATEL = u.CHOVATEL and mt.PORLAK = u.PORLAK and mt.DNI = u.DNI and
	                                        mt.ROKUK= u.rok    
	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00'+convert(varchar(2), PORLAK), 2) as PORLAK
		,RIGHT('000'+convert(varchar(3), DNI), 3) as DNI
		,RIGHT('00000'+convert(varchar(5), convert(numeric (5,0), MLIEKO)), 5) as MLIEKO
	--	,RIGHT('0000'+convert(varchar(4),  convert(numeric(4,0), TUK*10)), 4) as TUK
         ,case when tuk is not null and tuk  > 0 then (RIGHT('0000'+convert(varchar(4),  convert(decimal(4,0) , tuk*10)), 4) )
	                               else '0000' end as TUK
   
	--	,RIGHT('0000'+convert(varchar(4),  convert(numeric(4,0), BIELK*10)), 4) as BIELK
	    ,case when bielk is not null and bielk  > 0 then (RIGHT('0000'+convert(varchar(4),  convert(decimal(4,0) , BIELK*10)), 4) )
	                               else '0000' end  as BIELK
    
	--	,RIGHT('00000'+convert(varchar(5), convert(numeric (5,0), PRMLIEKO)), 5) as PRIEMML
	     ,case when PRMLIEKO is not null and PRMLIEKO > 0 then ( RIGHT('00000'+convert(varchar(5), convert(numeric (5,0), PRMLIEKO)), 5) )
		                           else '00000'end   as PRIEMML
		into temp_polozky_pdc
	FROM CP_LAKT_VYSL_PDC_SIM_NEMECKO

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +PORLAK +DNI +MLIEKO +TUK +BIELK +PRIEMML as VETA from plis.dbo.temp_polozky_pdc" queryout "e:\ROZBORAK\Data\svk.08.txt" -T -c -t,'

	drop table temp_polozky_pdc
    drop table #temp_1_100  drop table #temp_1_200 drop table #temp_1_305 drop table #temp_2_305 drop table #temp_3_305 
END


go


-- ========================================================
-- Author:		Roman Rafaj
-- Create date: 22.3.2016
--				20.5.2016 - zmena na vstupy
--				29.6.2016 - kontrola vazeni, debug informacie					
-- Description:	Evidencia a kontrola rastu mladeho dobytka za mesiac
--				(v pripade ak nie je vazenie v chove v aktualnom mesiaci,
--				hlada posledne vazenie zvierata)
--				
--				#1902 
--				update0206.sql
-- ========================================================

CREATE PROCEDURE [dbo].[CR_EKRMD_mes_oprava]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

			IF OBJECT_ID('tempdb..#abc1') IS NOT NULL 
			BEGIN
            	DROP TABLE #abc1
				PRINT 'vymazal som #abc1....'
			END

DECLARE @posledny_datum DATE, @rok_spracovania DATE, @mesiac_spracovania DATE, @cistelata varchar(14),@idr bigint

---- zistenie posledneho vazenia v chove pre vyber roku a mesiaca
--SELECT TOP 1 @posledny_datum =  DATVAZ FROM dbo.CM_Vazenia WHERE CHOVVAZ = @chov ORDER BY DATVAZ DESC

--PRINT 'Datum posledneho vazenia: ' + CONVERT(VARCHAR, @posledny_datum)

--SET @rok = DATEPART(yyyy,@posledny_datum)
--SET @mesiac = DATEPART(mm,@posledny_datum)

					DECLARE @pocetvymaz int
					SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_EKRMD WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
					DELETE FROM dbo.CR_EKRMD WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
					PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)
 
 --SELECT @IDR = IDR
 --FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 --WHERE @CHOV = chov and @rok=rok and @mesiac=MESIAC 

 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

SELECT * FROM #idrtable
SELECT IDR INTO #temp FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @chov AND ROK = @rok AND MESIAC = @mesiac

	DECLARE @counter int
	SET @counter = 0;


	DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR)
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)




	IF ( SELECT COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR) WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR)
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 6 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, DATVAZ, t.DATNAR, HMOT, RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									LEFT JOIN dbo.CM_Telata t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					plemeno VARCHAR(3),
					datnar DATE,
					pohlavie VARCHAR(2),
					PK VARCHAR(3),
					ET BIT,
					farba VARCHAR(2),
					matka VARCHAR(14),
					otecLIN VARCHAR(3),
					otecREG INT,
					otecUscislo VARCHAR(14),
					otecMeno VARCHAR(30),
					datvaz1 DATE,mesiac1 INT,den1 INT,hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE,mesiac2 INT,den2 INT,hmot2 INT,rp2 VARCHAR,
					datvaz3 DATE,mesiac3 INT,den3 INT,hmot3 INT,rp3 VARCHAR,
					datvaz4 DATE,mesiac4 INT,den4 INT,hmot4 INT,rp4 VARCHAR,
					datvaz5 DATE,mesiac5 INT,den5 INT,hmot5 INT,rp5 VARCHAR,
					datvaz6 DATE,mesiac6 INT,den6 INT,hmot6 INT,rp6 VARCHAR,
					zprir INT,
					dp INT,
					planprip DATE,
					DatPlanPripust varchar(10), 
					vekPripus varchar(6),
					/*vekm INT,
					vekd INT,*/ 
					byk VARCHAR(7),
					datinsem DATE,
					ocotel DATE,
					ocprip DATE,
					porlakmax INT,
					pocvsetlak INT,
					pocnorlak INT,
					mliekopr INT,
					tukper DECIMAL(7,2),
					bielkper DECIMAL(7,2),
					mliekomax INT,
					tukmax  DECIMAL(7,2),
					bielmax DECIMAL(7,2),
					rok int,
					mesiac INT,
					generovane DATETIME,
					plemskladba varchar(70)
					)
				END

				INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())

			-- vlozenie z CM_Telata
			UPDATE #abc1 SET
			chov = @chov, plemeno = a.TYPPLEM, datnar = a.datnar, pohlavie = a.pohlavie, PK = a.PK, ET = a.ZNAKET, farba = a.farba, matka = a.matka, otecLIN = a.otecLIN, otecREG = a.otecREG
			FROM	(
					SELECT t.CHOVATEL, t.TYPPLEM, t.datnar, t.pohlavie, k.PK , t.ZNAKET, t.farba, t.matka, t.otecLIN, t.otecREG  FROM cm_telata t
							LEFT JOIN cm_krava k ON (k.CISKRAVY = t.MATKA)
							WHERE CISTELATA = @cistelata
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			zprir = a.zp FROM (SELECT TOP 1 convert(int,ZIVPRIR)zp FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC )a
			WHERE cistelata = @cistelata

			-- denny prirastok
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia as v
			--left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA  
					WHERE v.CISTELATA = @cistelata --and t.CISTELATA = @cistelata
					 ORDER BY DATVAZ DESC

			DECLARE @d1 date, @d2 DATE, @h1 INT, @h2 INT, @dp INT, @datPr date, @datnar date, @datPlanPripust varchar(10)

			select @datnar = t.datnar FROM dbo.CM_Telata t where t.cistelata = @cistelata
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ  DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 
			
			--SET @dp = ROUND((@h1-@h2) * 1000 / DATEDIFF(day,@d2,@d1),0) -- nahradene
			SET @dp =  COALESCE(ROUND((@h1-@h2) * 1000 / NULLIF(DATEDIFF(day,@d2,@d1),0),0), 0)
			
			set @datPr = case when @h1 >200 then (case when  @h1>360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360- @h2 )*1000/NULLIF( @dp,0)),@d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			
			
			UPDATE #abc1 SET DP = @DP, planprip = @datPr, datPlanPripust = @datPlanPripust  WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac 
			
						
			DROP TABLE #2v

			--- inseminacie
			DECLARE @datinsem DATE = null, @porins INT = null, @byk VARCHAR(7) = null, @vysetrenie INT = null, @idaot DATE = null, @ocotel DATE = null, @ocprip DATE = null,  @datkon DATE = null, @vekPripus varchar(6) = null
			
			SELECT TOP 1 
			@datinsem = i.IDAIN,
			@porins = i.IPOIN,
			--@byk =  i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3),
			@byk = case when i.IBLIN = 'NEZ' then 'NEZ'
			else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end,
			
			@vysetrenie = i.IVYSE,
			@idaot = i.IDAOT, 
            @ocotel = CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			@datkon = (SELECT TOP 1 DATVAZ FROM #vazenie WHERE CISTELATA = @cistelata ORDER BY  DATVAZ DESC),
			@ocprip = CASE WHEN DATEDIFF(MONTH, t.DATNAR, @datkon ) >= 15 THEN  DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			-- doplnit datum pripustenia (vypocitanie)
			@vekPripus = convert(varchar(3),convert(int,DATEDIFF(day,t.DATNAR,i.IDAIN)/30.42)) +' / '+ convert(varchar(2),convert(int,CONVERT(float,datediff(day,t.DATNAR,i.IDAIN)%30.42))) 
			 
			FROM dbo.CM_Insvyk AS i INNER JOIN (SELECT IPLCA, MAX(IDAIN) AS IDAIN FROM dbo.CM_Insvyk AS i GROUP BY IPLCA)i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.IDAIN
									INNER JOIN dbo.CM_Telata t ON (t.CISTELATA = i.IPLCA)
									
			WHERE i.IPLCA = @cistelata --and t.CISTELATA =  @cistelata 
			
			UPDATE #abc1 SET
			datinsem =@datinsem, byk = @byk, ocotel = @ocotel, @ocprip = @ocprip, vekPripus = @vekPripus
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac

			-- laktacie
			DECLARE @porlakmax INT, @pocvsetlak INT , @pocnorlak INT, @mliekopr INT, @tukper DECIMAL(7,2), @bielkper DECIMAL(7,2), @tukmax DECIMAL(7,2), @bielmax DECIMAL(7,2), @mliekomax INT
            DECLARE @plemskladba VARCHAR(70)

			SELECT
			@porlakmax = k.PORLAKMAX,
			@pocvsetlak = k.POCVSETLAK,
			@pocnorlak = k.POCNORLAK,
			@mliekopr = k.MLIEKOPR,
			@tukper = k.TUKPRPER,
			@bielkper = k.BIELPRPER,
			@mliekomax = CONVERT(INT,k.MLIEKOMAX),
			--@tukmax = ((k.TUKMAX/k.MLIEKOMAX)*100),
			@tukmax = (k.TUKMAX/NULLIF(k.MLIEKOMAX,0)*100),
			--@bielmax = ((k.BIELMAX/k.MLIEKOMAX)*100)
			@bielmax = (k.BIELMAX/NULLIF(k.MLIEKOMAX,0)*100),
			@plemskladba = t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR2,
                                                              0)) + ' '
                                                              + ISNULL(t.PL3
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR3,
                                                              0)) + ' '
                                                              + ISNULL(t.PL4
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR4,
                                                              0)) + ' '
                                                              + ISNULL(t.PL5,
                                                              ''), ''), ''),
                                                              '')


			FROM dbo.CM_Telata t LEFT JOIN dbo.CM_Krava k ON (t.MATKA = k.CISKRAVY) WHERE t.CISTELATA = @cistelata

			UPDATE #abc1 SET
			porlakmax = @porlakmax, pocvsetlak = @pocvsetlak, pocnorlak = @pocnorlak, mliekopr = @mliekopr,
			tukper = @tukper, bielkper = @bielkper, mliekomax = @mliekomax, tukmax = @tukmax, bielmax = @bielmax,
			plemskladba = @plemskladba
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac

			--otec
			declare @O_uscislo varchar(14)=null, @O_meno varchar(30)=null
			select
			@O_uscislo = t.ouc,
			@O_meno =  b.meno
			FROM dbo.CM_Telata t LEFT JOIN  CM_Byci b ON (t.OUC = b.uscislo) WHERE t.CISTELATA = @cistelata
			UPDATE #abc1 SET  
			otecUscislo = @O_uscislo, otecMeno = @O_meno
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac


			-- pocty vazeni
			UPDATE #abc1 SET
			DATVAZ1 = a.DATVAZ1, MESIAC1 = a.MESIAC1, DEN1 = a.DEN1, HMOT1 = a.HMOT1, RP1 = a.RP1
			FROM	(
			SELECT DATVAZ DATVAZ1, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC1, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 6
					)a
			WHERE cistelata = @cistelata
		
			UPDATE #abc1 SET
			DATVAZ2 = a.DATVAZ2, MESIAC2 = a.MESIAC2, DEN2 = a.DEN2, HMOT2 = a.HMOT2, RP2 = a.RP2
			FROM	(
			SELECT DATVAZ DATVAZ2,  convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42)AS MESIAC2, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN2, CONVERT(INT,HMOT)HMOT2, RASTPAS RP2 FROM #vazenie WHERE ID = 5
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ3 = a.DATVAZ3, MESIAC3 = a.MESIAC3, DEN3 = a.DEN3, HMOT3 = a.HMOT3, RP3 = a.RP3
			FROM	(
			SELECT DATVAZ DATVAZ3, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC3, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN3, CONVERT(INT,HMOT)HMOT3, RASTPAS RP3 FROM #vazenie WHERE ID = 4
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ4 = a.DATVAZ4, MESIAC4 = a.MESIAC4, DEN4 = a.DEN4, HMOT4 = a.HMOT4, RP4 = a.RP4
			FROM	(
			SELECT DATVAZ DATVAZ4, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC4, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN4, CONVERT(INT,HMOT)HMOT4, RASTPAS RP4 FROM #vazenie WHERE ID = 3
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ5 = a.DATVAZ5, MESIAC5 = a.MESIAC5, DEN5 = a.DEN5, HMOT5 = a.HMOT5, RP5 = a.RP5
			FROM	(
			SELECT DATVAZ DATVAZ5, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC5, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN5, CONVERT(INT,HMOT)HMOT5, RASTPAS RP5 FROM #vazenie WHERE ID = 2
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ6 = a.DATVAZ6, MESIAC6 = a.MESIAC6, DEN6 = a.DEN6, HMOT6 = a.HMOT6, RP6 = a.RP6
			FROM	(
			SELECT DATVAZ DATVAZ6,  DATEDIFF(MONTH, DATNAR, DATVAZ)  AS MESIAC6, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN6, CONVERT(INT,HMOT)HMOT6, RASTPAS RP6 FROM #vazenie WHERE ID = 1
					)a
			WHERE cistelata = @cistelata

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor

			

INSERT INTO [dbo].[CR_EKRMD]
		(
		cistelata,
		chov,
		plemeno,
		datnar,
		pohlavie,
		PK,
		ET,
		farba,
		matka,
		otecLIN,
		otecREG,
		otecUscislo,
		otecMeno,
		datvaz1,mesiac1,den1,hmot1,rp1,
		datvaz2,mesiac2,den2,hmot2,rp2,
		datvaz3,mesiac3,den3,hmot3,rp3,
		datvaz4,mesiac4,den4,hmot4,rp4,
		datvaz5,mesiac5,den5,hmot5,rp5,
		datvaz6,mesiac6,den6,hmot6,rp6,
		zprir,
		dp,
		planprip,
		DatPlanPripust, 
		vekPripus,
		byk,
		datinsem,
		ocotel,
		ocprip,
		porlakmax,
		pocvsetlak,
		pocnorlak,
		mliekopr,
		tukper,
		bielkper,
		mliekomax,
		tukmax,
		bielmax,
		rok,
		mesiac,
		generovane,
		plemskladba
		)
		SELECT * FROM #abc1 order by cistelata

		--DROP TABLE #abc1

END

ELSE
	BEGIN
	PRINT 'Proceduru som vynechal, ziadne tela vo vazeni.....'
	END

END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 4.1.2016
-- Description:	Vrati mesacnu uzavierku chovov (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[CR_KUHD_MesUzavCHov]
    @rok varchar(4),
	@mesiac varchar(2),
	--@DEKADA varchar(1) = '',
	@CHOV varchar(9) = ''
	--@Vytlacil varchar(10) = null
	
as
begin

	
	select	distinct
	np.NAZOV as podnik,
	(case when len(chovatel)=9 then nch.NAZOV
	else null end)
	 as chov,
	(select case when LEN(chovatel)=6 then (chovatel+'999') else chovatel end )as chovatel,
	
	--chovatel,
	mesiac,rok,--dekada,
	datum_kontroly as DatKontroly,
	--(select max(datum_kontroly) from plis.dbo.CR_KUHD_MesUzavCH_1x where (chovatel like @CHOV+'%' or @CHOV is null) and rok=@rok and mesiac=@mesiac and dekada = @DEKADA) as DatKontroly,
	RKO1ML,RKO1KS,RKO12ML,RKO12KS,RKO1KSL1,RKO1MLL1,RKO12KSL1,RKO12MLL1,MKO1KS,MKO1ML,MKO12KS,MKO12ML,MKO1KSL1,MKO1MLL1,[MKO12KSL1]
      ,MKO12MLL1,POCKRAVZAP
      ,POCKRAVKONT,POCKRAVKONTL1,POCKRAVZAPL1,MLIEKOCELKOM,MLIEKOCELKOML1,MLIEKOPRIEMERZ,MLIEKOPRIEMERK,MLIEKOPRIEMERZL1,MLIEKOPRIEMERKL1,TUKPER,TUKPERL1,BIELKPER,BIELKPERL1
      ,SB,SBL1,POMERTB11V,POMERTB15V,POMERTBOKV,
	  POMERTB11VL1,POMERTB15VL1,POMERTBOKVL1,
	  POCKRAV100,MLIEKO100,TUK100,
	  TUK100PER,
	  BIELK100
      ,BIELK100PER,TB100,TB100PER,
	  POCKRAV200,MLIEKO200,TUK200,
	  TUK200PER,
	  BIELK200,
	  BIELK200PER,TB200,TB200PER,
	  POCKRAV300,MLIEKO300
      ,TUK300,
	  TUK300PER,
	  BIELK300,
	  BIELK300PER,TB300,TB300PER,
	  POCKRAV100L1,MLIEKO100L1,TUK100L1,
	  TUK100PERL1,
	  BIELK100L1,
	  BIELK100PERL1
      ,TB100L1,TB100L1PER,
	  POCKRAV200L1,MLIEKO200L1,TUK200L1,
	  TUK200PERL1,
	  BIELK200L1,
	  BIELK200PERL1,TB200L1,TB200PERL1,POCKARV300L1,
      MLIEKO300L1,TUK300L1,
	  TUK300PERL1,
	  BIELK300L1,
	  BIELK300PERL1,TB300L1,TB300PERL1,
	  POCINS1,POCINS2,POCINS3,POCINS4VIAC,POCTELNYCH
      ,POCINTR,POCSERV,POCMEDZ,generovane

	   from plis.dbo.CR_KUHD_MesUzavCH_1x as m
	left join plis.dbo.NM_PODNIK as NP
	on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(chovatel,1,6)
	inner join NM_CHOVMAS as NCH
	--on NCH.KRAJ + NCH.OKRES + NCH.PODNIK = LEFT(chovatel,6) and (len(chovatel)=6 or NCH.CHOV=SUBSTRING(chovatel,7,3))
	on chovatel = (CASE when LEN(chovatel) = 6
		THEN NCH.KRAJ + NCH.OKRES + NCH.PODNIK
		ELSE NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV
		END)
	where
	 
	 (m.chovatel like @CHOV+'%' or @CHOV is null)
	and m.rok = @rok and m.MESIAC = @mesiac --and (m.dekada = @DEKADA or @DEKADA is null )
	and NCH.ZRUS is null
	and NCH.TYPZV=1

	
	order by chovatel ;
	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	vypocet medziobdobia v tabulke CM_Laktacie
-- Metodika MO - ak bola krava medzi dvoma vlastnymi oteleniami DONORKOU jej MO je NULL
-- =============================================
CREATE PROCEDURE [dbo].[VypocetMOvCM_Laktacie]
AS
declare @v_krava varchar(14);
declare krava_cursor cursor for SELECT distinct CISKRAVY FROM CM_Laktacie /*------------- where ciskravy = 'SK000062682926'*/;	
declare @v_datum datetime;
declare @v_predchadzajuci_datotel datetime;	
declare @MO int;
declare @count_row_Embtr int;
declare @count_row_Telata int;

BEGIN	
	OPEN krava_cursor   
	FETCH NEXT FROM krava_cursor INTO @v_krava

		WHILE @@FETCH_STATUS = 0   
		BEGIN 
			print 'krava ' + @v_krava;

			declare @v_datotel datetime; -- datum otelenia
					
			declare datotel_kravy_cursor cursor for SELECT datotel FROM CM_Laktacie where ciskravy = @v_krava order by datotel;
			
			set @v_predchadzajuci_datotel = NULL;			

			OPEN datotel_kravy_cursor   
			FETCH NEXT FROM datotel_kravy_cursor INTO @v_datotel

			WHILE @@FETCH_STATUS = 0   
			BEGIN  	
				set @MO = NULL;			
				set @count_row_Embtr = 0;
				set @count_row_Telata = 0;
				select @count_row_Embtr = count(*) from CM_Embtr where IMATK = @v_krava and idain between @v_predchadzajuci_datotel and @v_datotel;
				select @count_row_Telata = count(*) from CM_Telata where matka = @v_krava and datnar between @v_predchadzajuci_datotel  and @v_datotel and (pohlavie = '81' or pohlavie = '82');
				
				if (@count_row_Embtr = 0 and @count_row_Telata = 0)
					begin
						select @MO = datediff(day, @v_predchadzajuci_datotel, @v_datotel);	
					end;
				
				/*print 'otelenie ' + cast(@v_datotel as varchar(20));
				print ' predchadzajuce otelenie ' + cast(@v_predchadzajuci_datotel as varchar(20));
				print 'MO ' + cast(@MO as varchar(20));*/		
				set @v_predchadzajuci_datotel = @v_datotel;	
				
				UPDATE CM_Laktacie SET MEDZIOBD = @MO WHERE ciskravy = @v_krava and datotel = @v_datotel;
						  
			FETCH NEXT FROM datotel_kravy_cursor INTO @v_datotel
			END
			CLOSE datotel_kravy_cursor   
			DEALLOCATE datotel_kravy_cursor	
						  
		FETCH NEXT FROM krava_cursor INTO @v_krava
		END
	
	
	CLOSE krava_cursor   
	DEALLOCATE krava_cursor


/*

exec VypocetMOvCM_Laktacie

*/
END
go

CREATE procedure [dbo].[Rocenka_OV_Tab_VKUSt]
    @TypPlem varchar(2),
	@rok varchar(4),
	@StupenKu varchar(1)
as
begin

--select * --,p.NAZOVD
--	from plis.dbo.SP_Rocenka_VKUSt as z
--	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
--		where  -- z.rok = @rok and 
--	 z.TypPlem = @TypPlem and z.Rok= @rok and @StupenKu= z.StupenKU


	--select * --,p.NAZOVD
	--select distinct
	--v.id, TypPlem, StupenKU, v.KrOkr, v.Podnik, Stado, NazovStada, PlemenoStada,pl.Nazov as NazovPlemena, PocBah_Prip, PocBah_PredVyrad, PocBah_Jal, 
	--PocBah_Obah, PocNarJahn, PercOplod, PercPlod, PercPlodNaBahn, 
	--case when Osoba <> ' -' then Osoba else
	--	isnull( case when k.TITUL_PRED is null or k.TITUL_PRED = ' ' then '' else k.TITUL_PRED + ' ' end  + 
	--	k.PRIEZVISKO + ' ' + k.meno +
	--	case when k.TITUL_ZA is null or k.TITUL_ZA = ' ' then '' else ', ' + k.TITUL_ZA end
	--	+ ' - ' + k.FUNKCIA + '   ', '') + isnull( 
	--	case when z.TITUL_PRED is null or z.TITUL_PRED = ' ' then '' else z.TITUL_PRED + ' ' end  + 
	--	z.PRIEZVISKO + ' ' + z.meno + ' - ' +  z.FUNKCIA, '') end as osoba, 	

	--Osoba1, Osoba2, Osoba3, Osoba4, 
	--Rok,
 --	StupenKUNazov
	--from plis.dbo.SP_Rocenka_VKUSt as v
	----left outer join plis.dbo.GC_Plemena as pl on pl.KODPL2 = v.PlemenoStada
	--left outer join NM_PODNIK p on p.krokr + p.podnik = v.krokr + v.podnik 
	--left outer join NM_Konatel k on k.id =  p.ID_KONATEL
	--left outer join NM_CHOVMAS c on c.KRAJ + c.okres + c.podnik + c.chov = v.krokr + v.podnik  + v.Stado
	--left outer join NM_Zootechnik z on z.id =  c.ID_ZOOTECHNIK
	--left outer join plis.dbo.SC_Plemena_N as pl on pl.KodPl = v.PlemenoStada
	--	where  -- z.rok = @rok and 
	-- v.TypPlem = @TypPlem and v.Rok= @rok and @StupenKu= v.StupenKU
	-- order by id


	select distinct 
		v.id, TypPlem, StupenKU, v.KrOkr, v.Podnik, Stado, NazovStada, PlemenoStada,
		pl.Nazov as NazovPlemena, PocBah_Prip, PocBah_PredVyrad, PocBah_Jal, 
		PocBah_Obah, PocNarJahn, PercOplod, PercPlod, PercPlodNaBahn, 
		isnull( case when k.TITUL_PRED is null or k.TITUL_PRED = ' ' then '' else k.TITUL_PRED + ' ' end  + 
			k.PRIEZVISKO + ' ' + k.meno +
			case when k.TITUL_ZA is null or k.TITUL_ZA = ' ' then '' else ', ' + k.TITUL_ZA end + ' - ' + 
			--k.FUNKCIA + '   ', '') + 
			case when k.PRIEZVISKO is not null and (k.FUNKCIA  is null or k.FUNKCIA = ' ') then 'majiteľ' else k.FUNKCIA end + '   ', '') + 
		isnull( 
			case when z.TITUL_PRED is null or z.TITUL_PRED = ' ' then '' else z.TITUL_PRED + ' ' end  + 
			z.PRIEZVISKO + ' ' + z.meno + ' - ' +  z.FUNKCIA, '')  as osoba, 	

		case when k.TITUL_PRED is null or k.TITUL_PRED = ' ' then '' else k.TITUL_PRED + ' ' end  + 
			k.PRIEZVISKO + ' ' + k.meno +  
		case when k.TITUL_ZA is null or k.TITUL_ZA = ' ' then '' else ', ' + k.TITUL_ZA end as osoba1,
			k.FUNKCIA as osoba2,
	
		case when z.TITUL_PRED is null or z.TITUL_PRED = ' ' then '' else z.TITUL_PRED + ' ' end +
			z.PRIEZVISKO + ' ' + z.meno as osoba3,
			z.FUNKCIA as Osoba4, 
		Rok,
 		StupenKUNazov
	from dbo.SP_Rocenka_VKUSt as v
		--left outer join plis.dbo.GC_Plemena as pl on pl.KODPL2 = v.PlemenoStada
		left outer join NM_PODNIK p on p.krokr + p.podnik = v.krokr + v.podnik 
		left outer join NM_Konatel k on k.id =  p.ID_KONATEL
		left outer join NM_CHOVMAS c on c.KRAJ + c.okres + c.podnik + c.chov = v.krokr + v.podnik  + v.Stado  and TypZv = 3
		left outer join NM_Zootechnik z on z.id =  c.ID_ZOOTECHNIK
		left outer join plis.dbo.SC_Plemena_N as pl on pl.KodPl = v.PlemenoStada
	where  -- z.rok = @rok and 
		 v.TypPlem = @TypPlem and v.Rok= @rok and @StupenKu= v.StupenKU
	 order by id
end

---					exec [Rocenka_OV_Tab_VKUSt] 'C', 2017, 1
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Description:	priemerne MO za mliekovu kravu, ci narodene telata pochadzaju z prirodzenej plemenitby, alebo inseminacie
-- zistuje sa, ci byk, ktorym bola krava oplodnena, patri do inseminacie alebo nie, na to sluzi priznak z CM_Byci - bb_insem,
-- tento priznak moze mat hodnoty = '-' (t.j. prirodzena plemenitba PPL), 'I' - inseminacia, alebo NULL
-- ak je bb_insem NULL berieme do uvahy cislo registra byka, ak ma < 500 patri do inseminacie, ak ma >= 501 patri do PPL

CREATE PROCEDURE [dbo].[MedziobdobiePodlaPPLaInsMliekovy](@krava varchar(14))
AS
BEGIN

declare @v_bb_insem char(1);

declare @v_PPL float; /*suma medziobd PPL*/
declare @v_Ins float; /*suma medziobd Ins*/
set @v_PPL = 0;
set @v_Ins = 0;

declare @v_pocetPPL int;
declare @v_pocetIns int;
set @v_pocetPPL = 0;
set @v_pocetIns = 0;

declare @v_priemerPPL float;
declare @v_priemerIns float;
set @v_priemerPPL = 0;
set @v_priemerIns = 0;

/*kurzorove premenne*/

declare @v_datotel date;
declare @v_oteclin varchar(3);
declare @v_otecreg int;
declare @v_medziobd int;

declare krava_cursor cursor for

/*
select t.DATNAR, t.CISTELATA, t.OTECLIN, t.OTECREG, t.OUC, p.Medziobd from plis.dbo.CM_Telata as t
left join plis.dbo.Cp_Meso_TelataPoLaktacii as p on (t.MATKA=p.Ciskrava) where t.MATKA=@krava
and t.DATNAR=p.DATOTEL group by t.CISTELATA,t.OTECLIN,t.OTECREG,t.OUC,t.DATNAR,p.Medziobd
order by t.DATNAR
*/

select  l.DATOTEL,  t.OTECLIN, t.OTECREG, l.MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   left outer join CM_Telata t on t.DATNAR=l.DATOTEL and t.MATKA=l.CISKRAVY   
   where l.CISKRAVY=@krava and k.priznakku = '1'  
   union
   select  N.DATOTEL,  t.OTECLIN, t.OTECREG, n.MEDZIOBD from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV  
    left outer join CM_Telata t on t.DATNAR=n.DATOTEL and t.MATKA=n.CISKRAVY   
   where n.CISKRAVY=@krava and k.priznakku = '1' 
   order by l.DATOTEL  

OPEN krava_cursor   
FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg,  @v_medziobd

	WHILE @@FETCH_STATUS = 0   
	BEGIN  	   	
		if (@v_oteclin is not null and @v_otecreg is not null and @v_medziobd is not null)
		begin
			select @v_bb_insem=BB_INSEM from CM_Byci b where b.LIN = @v_oteclin and b.REG = @v_otecreg;
			 print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1));
			 print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1));  
			if (@v_bb_insem = 'I')
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;
			
			if (@v_bb_insem = '-')
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			
			if (@v_bb_insem is null)
			begin
				if (@v_otecreg >= 501)
					begin
						set @v_PPL = @v_PPL + @v_medziobd;
						set @v_pocetPPL = @v_pocetPPL + 1;
					end;
					else
					begin
						set @v_Ins = @v_Ins + @v_medziobd;
						set @v_pocetIns = @v_pocetIns + 1;
					end;
			end;			
			
			/*if (@v_otecreg >= 501)
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			else
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;*/
		end;
		begin
			print 'neznama linia, alebo medziobd je null'
		end;
		print 'ppl: ' + cast(@v_PPL as varchar(14)) + ' / ' + cast(@v_pocetPPL as varchar(14)) ;
		print 'ins: ' + cast(@v_Ins as varchar(14)) + ' / ' + cast(@v_pocetIns as varchar(14)) ;
		print '\n'
		
	FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg,  @v_medziobd
	END
	
CLOSE krava_cursor   
DEALLOCATE krava_cursor

if (@v_pocetPPL <> 0)
set @v_priemerPPL = @v_PPL / @v_pocetPPL;

if (@v_pocetIns <> 0)
set @v_priemerIns = @v_Ins / @v_pocetIns;

select NULLIF(@v_priemerIns,0) as Ins, NULLIF(@v_priemerPPL,0) as PPL

/*
exec [MedziobdobiePodlaPPLaInsMliekovy] 'SK000800300388'
*/
END
go


/***masova rocenka - pocet prvych inseminacii na 100 krav
Masova rocenka 2017 - str.40 **/
 Create procedure [dbo].[Roc_MPHD_16A]
	
	@datumOd date ,
	@datumDo date 

as 
begin

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

--create table Roc_MPHD_Tab_16A 
--(
--pocet_prveIns int,
--pocet_vsetkychIns int,
--priemer_prvychIns float,
--pocet_prvetelne int,
--pocet_vsetky_telne int,
--priemertelnych float,
--rok int
--)
 
 
declare @prveins int
set @prveins =(select count(*) as 'prve'
				from CM_Insvyk as i
					left outer join CM_Krava as k on k.CISKRAVY = i.IPLCA
				 where i.IPOIN = '01' and k.PRIZNAKKU='2' and i.idain >= @datumOd and i.IDAIN <= @datumDo
				 and IKRJA in('1','3'))
--select @prveins as pocet_prveIns

declare @vsetkyins int
 set @vsetkyins = ( select count(*) as 'vsetky'
						 from CM_Insvyk as i
							left outer join CM_Krava as k on k.CISKRAVY = i.IPLCA
						 where  k.PRIZNAKKU='2' and i.idain >= @datumOd and i.IDAIN <= @datumDo
						 and IKRJA in('1','3'))
--select @vsetkyins as pocet_vsetkychIns

	declare @priemer float 
	set @priemer = (select (@prveins*100.0) / @vsetkyins)
	--select @priemer as priemer_prvychIns


declare @prvetelne int
set @prvetelne = (select count (*) from CM_Insvyk as i
					left outer join CM_Krava as k on k.CISKRAVY = i.IPLCA
				where  IKRJA in('1','3') and IVYSE > '6' and i.idain >= @datumOd and i.IDAIN <= @datumDo
					and k.PRIZNAKKU = '2')
--select @prvetelne as pocet_prvetelne

declare  @vsetkytelne int
set @vsetkytelne = (select count(*) from CM_Insvyk as i
					left outer join CM_Krava as k on k.CISKRAVY = i.IPLCA
				where  IKRJA in('1','3') and IPOIN <> '99' and i.idain >= @datumOd and i.IDAIN <= @datumDo
					and k.PRIZNAKKU = '2')
--select @vsetkytelne as pocet_vsetky_telne

declare @priemertelnych float
set @priemertelnych = (select @prvetelne * 100.0 / @vsetkytelne ) 
--select @priemertelnych as priemertelnych

insert Roc_MPHD_Tab_16A
select 	@prveins as pocet_prveIns,
		@vsetkyins as pocet_vsetkychIns,
		@priemer as priemer_prvychIns,
		@prvetelne as pocet_prvetelne,
		@vsetkytelne as pocet_vsetky_telne,
		@priemertelnych as priemertelnych,
		DATEPART(YEAR,@datumOd) as rok 


--select top 100 * from CM_Insvyk
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	vypocet medziobdobia v tabulke CM_Laktacie
-- Metodika MO - ak bola krava medzi dvoma vlastnymi oteleniami DONORKOU jej MO je NULL
-- =============================================
CREATE PROCEDURE [dbo].[VypocetMOvCM_Laktacie_CHOV]
@ParChov varchar(9)
AS
declare @v_krava varchar(14);
declare krava_cursor cursor for SELECT distinct CISKRAVY FROM CM_Laktacie where chovatel = @ParChov /*------------- where ciskravy = 'SK000062682926'*/;	
declare @v_datum datetime;
declare @v_predchadzajuci_datotel datetime;	
declare @MO int;
declare @count_row_Embtr int;
declare @count_row_Telata int;

BEGIN	
	OPEN krava_cursor   
	FETCH NEXT FROM krava_cursor INTO @v_krava

		WHILE @@FETCH_STATUS = 0   
		BEGIN 
			print 'krava ' + @v_krava;

			declare @v_datotel datetime; -- datum otelenia
					
			declare datotel_kravy_cursor cursor for SELECT datotel FROM CM_Laktacie where ciskravy = @v_krava order by datotel;
			
			set @v_predchadzajuci_datotel = NULL;			

			OPEN datotel_kravy_cursor   
			FETCH NEXT FROM datotel_kravy_cursor INTO @v_datotel

			WHILE @@FETCH_STATUS = 0   
			BEGIN  	
				set @MO = NULL;			
				set @count_row_Embtr = 0;
				set @count_row_Telata = 0;
				select @count_row_Embtr = count(*) from CM_Embtr where IMATK = @v_krava and idain between @v_predchadzajuci_datotel and @v_datotel;
				select @count_row_Telata = count(*) from CM_Telata where matka = @v_krava and datnar between @v_predchadzajuci_datotel  and @v_datotel and (pohlavie = '81' or pohlavie = '82');
				
				if (@count_row_Embtr = 0 and @count_row_Telata = 0)
					begin
						select @MO = datediff(day, @v_predchadzajuci_datotel, @v_datotel);	
					end;
				
				/*print 'otelenie ' + cast(@v_datotel as varchar(20));
				print ' predchadzajuce otelenie ' + cast(@v_predchadzajuci_datotel as varchar(20));
				print 'MO ' + cast(@MO as varchar(20));	*/		
				set @v_predchadzajuci_datotel = @v_datotel;	
				
				UPDATE CM_Laktacie SET MEDZIOBD = @MO WHERE ciskravy = @v_krava and datotel = @v_datotel;
						  
			FETCH NEXT FROM datotel_kravy_cursor INTO @v_datotel
			END
			CLOSE datotel_kravy_cursor   
			DEALLOCATE datotel_kravy_cursor	
						  
		FETCH NEXT FROM krava_cursor INTO @v_krava
		END
	
	
	CLOSE krava_cursor   
	DEALLOCATE krava_cursor


/*

exec VypocetMOvCM_Laktacie_chov


*/
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA_chov_old] 
AS
BEGIN
	/**********************************************

	! please run affter C_Aktual_KodDojKodMedzi !

		using table:CM_Naplak,CM_Krava,CM_Laktacie

		canging table:CP_MedziobdZostavaA

		used for:(9.A) Rozbor medziobdobia podľa prebiehajúcej laktácie 

	*********************************************/

	declare @c as varchar(9)
	

	/*create table #aTable  
	(
	[chovatel] varchar(9)
      ,[groupNazov]  varchar(30)
      ,[l1] int
      ,[pl1] float
      ,[l2] int
      ,[pl2] float
      ,[l3] int
      ,[pl3] float
      ,[l4] int
      ,[pl4] float
      ,[l5] int
      ,[pl5] float
      ,[l6] int
      ,[pl6] float
      ,[l7] int
      ,[pl7] float
      ,[l8] int
      ,[pl8] float
      ,[l9] int
      ,[pl9] float
      ,[Spolu] int
      ,[pSpolu] float
      ,[Pmedziobd] int
      ,[SpoluChov] int
      ,[znakLakt] varchar(1)
	)*/
	
	TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaA_CopyTest
	
	declare @t1 as datetime;
	set @t1=datediff(SECOND,getdate(),GETDATE());
	
	declare @t2 as datetime;
	declare @t3 as datetime;

	declare @kod as int;
	declare @nazov as varchar(20);
	--declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

/*	declare chovatel cursor for
	select distinct substring(chovatel, 1, convert(int,@kolko)) 
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	and chovatel like substring(@chov,1,convert(int,1,@kolko))+'%'
	

	open chovatel
	fetch next from  chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		*/
		declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,6)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,3)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,1)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		declare hran cursor for
		select kod,nazov
		from plis.dbo.CC_Medziobd

		open hran
		fetch next from hran into @kod,@nazov
		
	
		
	
		while @@FETCH_STATUS=0
		begin
		
		
		begin
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c+'%' and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod);
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod);
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod);
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c+'%' and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod);
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c+'%' and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod);
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c+'%' and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod);
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod);
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod);
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod);
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ=@kod and KOD_MEDZ is not null and KOD_MEDZ!=1);
			set @s=(select COUNT(*)
					from PLIS.dbo.CM_Naplak as l
					inner join PLIS.dbo.CM_Krava as k
					on k.CISKRAVY=l.CISKRAVY
					where k.CHOVATEL like @c +'%'
					and k.DOVVYR is null);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL like @c +'%' and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest  values  (@c ,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);
		end
	/*		------------------------------------------------------
		if(@znak='N')
		begin
					set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena in (30,40));
	
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena in (30,40));
			
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and KOD_DOJ=@kod and zmena in (30,40));
			
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and zmena in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1);
		
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL like @chov+'%' and KOD_MEDZ=@kod)
			
			insert into #aTable  values  (@chov,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'N');
		end
----------------------------------------------------------------
if (@znak='C')
begin
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena not in (30,40) );
		
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena not in (30,40));
			
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena not in (30,40));
			
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena not in (30,40));
			
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena not in (30,40));
			
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena not in (30,40));
		
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena not in (30,40));
		
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena not in (30,40));
		
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena not in (30,40));
			
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and kod_medz=@kod and zmena not in (30,40));
		
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @chov+'%' and k.DOVVYR is null and zmena not in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1*100)*1.00)/@s;
			set @p2=(convert(float,@l2*100)*1.00)/@s;
			set @p3=(convert(float,@l3*100)*1.00)/@s;
			set @p4=(convert(float,@l4*100)*1.00)/@s;
			set @p5=(convert(float,@l5*100)*1.00)/@s;
			set @p6=(convert(float,@l6*100)*1.00)/@s;
			set @p7=(convert(float,@l7*100)*1.00)/@s;
			set @p8=(convert(float,@l8*100)*1.00)/@s;
			set @p9=(convert(float,@l9*100)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu*100)*1.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL like @chov+'%' and KOD_MEDZ=@kod)
			
			insert into #aTable  values  (@chov,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'C');
	
end*/
--------------------------------------------------------------------------------------

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
		
		
		begin
			
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
				
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null  and KOD_MEDZ is not null and KOD_MEDZ!=1);
	
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
				
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest  values(@c ,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)
			
			
			set @l1=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l2=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l3=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l4=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l5=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l6=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l7=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l8=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l9=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @spolu=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest  values(@c ,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)
			
end

fetch next from chovatel into @C;
end

close chovatel
deallocate chovatel
/*
		fetch next from chovatel into @C;
	end

	close chovatel;
	deallocate chovatel;*/

	--select * from #aTable
		--	drop table #aTable

END

go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 03.01.2017
-- Update:		03.10.2017 - prehodenie do procedury
--				08.01.2017 - oprava: Novozaradene - problem s obonitovanymi, aby ich nebralo do dospelych
--									 podmienka z datZar (ak je novo zaradeny bez bonit?) prehodena na datNT <> rokev2
--				25.01.2018 - fix DOVOD = '4': vek, 2 uhyn, 5 veterinarne dovody - aby ich uz nebralo do uvahy
-- Description:	Doplnenie nezaradenych bahnic do Kontrolne Zapisnika
-- =============================================
CREATE PROCEDURE [dbo].[S_KonZap_DotiahnutieBahnic]
(
	@chov varchar(9),
	@RokEv1 varchar(4),
	@RokEv2 varchar(2),
	@login varchar(40)
)
AS
BEGIN
	declare @datum date = GETDATE()
	
	
	iNSERT iNTO SM_KonZap
		(KROKR, PODNIK, STADO, CEHZ, LUC, PUC, 
		BAHCIS, ROKEV1, ROKEV2, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ, IDM, IDS)
	SELECT 
		KROKR, PODNIK, STADO, ZVSTAT + JCCEHZ as CEHZ, LUC, PUC, 
		BAHCIS, @RokEv1, @RokEv2, 
	@datum, @login, null, 0, 'web', 'GKZ', 
	(select id from SM_KonZapMen where chov=b.KROKR + b.PODNIK + b.STADO and rokev = @rokev1+@rokev2) as idm, 
	(select id from SM_KonZapMen where chov=@chov and rokev = @rokev1+@rokev2) as ids
	from SM_Bahnica b
	where KROKR + PODNIK + STADO in (select spchov from SM_SpoJChov where chov = @chov)
		and BAHCIS not in (
		select BAHCIS from SM_KonZap k 
			left outer join SM_KonZapMen m on m.id = k.ids
		where 
			m.chov = @chov and m.rokev = @rokev1+@rokev2
			and k.bahcis = b.bahcis)
		and --DATVYR is null and DOVOD = 0
            ( (DATVYR is null and DOVOD = '0') 
			--or (DOVOD = '4' and DATVYR = CAST((CAST(YEAR(GETDATE()) as Varchar(4))+'-01-01') as datetime) )  
            --or  (DATVYR >= CAST((CAST(YEAR(GETDATE()) as Varchar(4))+'-01-01') as datetime) )
            --or  (year(DATVYR) > cast(@rokev1 as int)+1 )
			or  (year(DATVYR) = cast(@rokev1 as int)+1 and DOVOD = '4' )	--fix DOVOD = '4' //25.01.18 -  1 vek, 2 uhyn, 5 veterinarne dovody - aby ich uz nebralo do uvahy
		) 
       -- and year(b.DATZAR) <> cast(@rokev1 as int)+1
	   --and (b.DATNT is NULL or year(b.DATNT) <> cast(@rokev1 as int)+1 )
		
	select count(k.id) as pocet
	from SM_KonZap k
		left outer join SM_KonZapMen m on m.id = k.ids
	where m.chov = @chov 
		and m.rokev = @RokEv1+@RokEv2
		and k.DATZAPIS = @datum
			
END


--		exec [S_KonZap_DotiahnutieBahnic] '708517053', '2017', '18', 'durech'

--		exec [S_KonZap_DotiahnutieBahnic] '708221013 ', '2017', '18', 'durech'
go

/****** Script for SelectTopNRows command from SSMS  ******/
/** Rocenka MLHD ----PREHLAD VYSLEDKOV PODLA KRAJOV - POCET SOMATICKYCH BUNIEK VO VZORKACH MLIEKA ---str 15 **/
/**  SB do 200, 400, 600, 800, 1000 anad 1000 **/
CREATE procedure [dbo].[Roc_MLHD_5A]

    @datumOd date,
    @datumDo date
  --declare @datumOD date = '2017-01-01', @datumDo date = '2017-12-31'
as
  begin


    /**somaticke bunky do 200 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_do200
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM < 201
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM < 201
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ
    /**somaticke bunky do 400 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_do400
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 200
            and k.BUNECELEM < 401
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 200
            and ak.BUNECELEM < 401
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ

    /**somaticke bunky do 600 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_do600
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 400
            and k.BUNECELEM < 601
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 400
            and ak.BUNECELEM < 601
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ
    /**somaticke bunky do 800 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_do800
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 600
            and k.BUNECELEM < 801
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 600
            and ak.BUNECELEM < 801
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ
    /**somaticke bunky do 1000 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_do1000
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 800
            and k.BUNECELEM < 1001
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 800
            and ak.BUNECELEM < 1001
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ

    /**somaticke bunky nad 1000 tisic**/
    select t.kraj, t.nazov, Count(*) as SB_kraj_nad1000
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 1000
            and p.KRAJ <> 0
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 1000
            and p.KRAJ <> 0) as t
    group by t.kraj, t.nazov
    order by t.KRAJ


    /**SR somaticke bunky do 200 tisic**/
    select Count(*) as SB_SR_do201
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM < 201
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM < 201) as t
    --group by t.kraj, t.nazov
    --order by t.KRAJ

    /**SR somaticke bunky do 400 tisic**/
    select distinct Count(*) as SB_SR_do400
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 200
            and k.BUNECELEM < 401
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 200
            and ak.BUNECELEM < 401) as t

    /**SR somaticke bunky do 600 tisic**/
    select distinct Count(*) as SB_SR_do600
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 400
            and k.BUNECELEM < 601
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 400
            and ak.BUNECELEM < 601) as t

    /**SR somaticke bunky do 800 tisic**/
    select distinct Count(*) as SB_SR_do800
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 600
            and k.BUNECELEM < 801
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 600
            and ak.BUNECELEM < 801) as t

    /**SR somaticke bunky do 1000 tisic**/
    select distinct Count(*) as SB_SR_do1000
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 800
            and k.BUNECELEM < 1001
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 800
            and ak.BUNECELEM < 1001) as t

    /**SR somaticke bunky nad 1000 tisic**/
    select distinct Count(*) as SB_SR_nad10000
    from (select distinct k.CISKRAVY, k.DATKONTR
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
            and k.BUNECELEM > 1000
          union
          select distinct ak.CISKRAVY, ak.DATKONTR
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo
            and ak.BUNECELEM > 1000) as t



    /**priemer SB za kraj**/
    select distinct t.kraj,
                    t.nazov,
                    Count(*)                  as pocet_kontrol,
                    sum(BUNECELEM)            as spolu_SB,
                    sum(BUNECELEM) / Count(*) as priemer
    from (select distinct ch.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR, BUNECELEM
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(k.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
          union
          select distinct ch.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR, BUNECELEM
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj = SUBSTRING(ak.CISCHOVU, 1, 1)
                 left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo) as t
    group by t.kraj, t.nazov
    order by t.KRAJ

    /**SR priemer SB za SR**/
    select distinct Count(*) as SR_pocet_kontrol, sum(BUNECELEM) as SR_spolu_SB, sum(BUNECELEM) / Count(*) as SR_priemer
    from (select distinct k.CISKRAVY, k.DATKONTR, BUNECELEM
          from CM_Kontroly as k
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = k.CISCHOVU
              --left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where k.DATKONTR >= @datumOD
            and k.DATKONTR <= @datumDo
          union
          select distinct ak.CISKRAVY, ak.DATKONTR, BUNECELEM
          from CM_ArchKon as ak
                 left outer join NM_CHOVMAS as ch on ch.kraj + ch.OKRES + ch.PODNIK + ch.CHOV = ak.CISCHOVU
              --left outer join NC_KRAJ p on p.KRAJ = ch.kraj
          where ak.DATKONTR >= @datumOD
            and ak.DATKONTR <= @datumDo) as t
    --group by t.kraj, t.nazov
    --order by t.KRAJ


  end
go

CREATE PROCEDURE [dbo].[CR_KUMP_kravy_1] 
	@chov varchar(9),
	@rok int,
	@mesiac int

AS

--	Vysledky KUMP v chove krav / mesacne
--	vstupne parametre: chov, rok, mesiac
--
--	Autor: Roman Rafaj, 23.03.2016
--	verzia	1.0: uvodna proc
--	#1936
--  update0210.sql

BEGIN

DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHK_MES_1 WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHK_MES_1 WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac
	END

INSERT INTO CR_KUMP_CHK_MES_1
		(
		CISKRAVY,
		CHOVATEL,
		znak_vyr,
		krav_datnar,
		krav_porlakt,
		krav_otec,
		krav_otec_usc,
		krav_TYPPLEM,
		krav_plem,
		tel_plem,
		krav_MM,
		tel_otec,
		tel_otec_usc,
		cistela,
		tel_datnar,
		tel_hmot,
		krav_hmot,
		krav_PL,
		tel_pohl,
		tel_PRIEBPOR,
		ins_IDAIN,
		ins_IVYSE,
		ins_BYK,
		krav_por_ins,
		krav_dniodot,
		krav_datocotel,
		krav_vek_rok,
		krav_vek_dni,
		vek_krav_vdnoch,
		tel_vaha120,
		tel_zp120,
		tel_rp120,
		tel_vaha210,
		tel_zp210,
		tel_rp210,
		tel_vaha365,
		tel_zp365,
		tel_rp365,
		tel_vaha500,
		tel_zp500,
		tel_rp500,
		krav_PH210,
		DOVVYR,
		DATVYR,
		mesiac,
		rok,
		generovane
		
		)

		SELECT  k.CISKRAVY,
		k.CHOVATEL,
		(case when k.DOVVYR <>'' then 'V' else ''end  ) as znak_vyr,
		k.DATNAR krav_datnar,
		(SELECT TOP 1 t.PORLAK FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS krav_porlakt,
		--(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3)) krav_otec,
		case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS krav_otec,
		k.OUSCIS as krav_otec_usc,
		k.TYPPLEM krav_TYPPLEM,
		k.PL1 + '-' + CONVERT(VARCHAR, ISNULL(k.KR1, 0)) 
		+ ' ' + ISNULL(k.PL2 + '-' + CONVERT(VARCHAR, ISNULL(k.KR2, 0)) + ' '
        + ISNULL(k.PL3 + '-' + CONVERT(VARCHAR, ISNULL(k.KR3, 0)) + ' '
        + ISNULL(k.PL4 + '-' + CONVERT(VARCHAR, ISNULL(k.KR4, 0)) + ' '
        + ISNULL(k.PL5,''), ''), ''),'') krav_plem,

		(SELECT TOP 1 t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) 
		+ ' ' + ISNULL(t.PL2 + '-' + CONVERT(VARCHAR, ISNULL(t.KR2, 0)) + ' '
        + ISNULL(t.PL3 + '-' + CONVERT(VARCHAR, ISNULL(t.KR3, 0)) + ' '
        + ISNULL(t.PL4 + '-' + CONVERT(VARCHAR, ISNULL(t.KR4, 0)) + ' '
        + ISNULL(t.PL5,''), ''), ''),'') FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_plem,
		k.MA krav_MM,
		--(SELECT TOP 1 (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3)
		(SELECT TOP 1 (case when t.OTECLIN = 'NEZ' then 'NEZ'
			else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end) FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_otec,
		(SELECT TOP 1 t.OUC FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_otec_usc,
		(SELECT TOP 1 LEFT((ISNULL(CONVERT(varchar(50),t.CISTELATA),'')+'SK000000000000'),14)   FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS cistela, -- priznakku musi byt vzdy 2, tela masovej kravy moze byt preradene do mlieka
		(SELECT TOP 1 t.DATNAR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_datnar,
		(SELECT TOP 1 t.HMOTNAR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_hmot,
		t.HMOTOT  AS krav_hmot,
		(SELECT TOP 1 t.PORLAK FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS krav_PL,
		(SELECT TOP 1 t.POHLAVIE FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_pohl,
		(SELECT TOP 1 t.PRIEBPOR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC) AS tel_PRIEBPOR,
		(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and i.IDAIN > t.DATNAR ) AS ins_IDAIN,
		(SELECT TOP 1 i.IVYSE FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy AND i.IVYSE = 9 and i.IDAIN > t.DATNAR  ) AS ins_IVYSE,
		--(SELECT top 1(i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)
		(SELECT TOP 1 (case when i.IBLIN = 'NEZ' then 'NEZ'
			else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy AND i.IDAIN > t.DATNAR ORDER BY i.IDAIN DESC ) AS ins_BYK,
		(SELECT COUNT(IPLCA) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.CISKRAVY AND i.IDAIN > t.DATNAR) krav_por_ins,
	
		--(SELECT TOP 1 DATEDIFF(DAY,t.DATNAR, DATEADD(DAY, 5, GETDATE()) ) ORDER BY t.DATNAR DESC) AS krav_dniodot,
		(SELECT TOP 1 DATEDIFF(DAY,t.DATNAR,  GETDATE())  FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2 ORDER BY DATNAR DESC) AS krav_dniodot,

		--(select Top 1 (CASE WHEN i.IDAIN > t.DATNAR and i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy) AS krav_datocotel,
		--(select top 1 (CASE when (CONVERT(DATE, i.IDAIN)>t.DATNAR) and (DATEDIFF(day, t.DATNAR, CONVERT(DATE,(CASE WHEN (i.IVYSE = 7 or i.IVYSE = 8 or i.IVYSE = 9) THEN (DATEADD(DAY, 285,i.IDAIN)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (i.IVYSE = 7 or i.IVYSE = 8 or i.IVYSE = 9) THEN (DATEADD(DAY, 285, i.IDAIN)) ELSE NULL END)) else NULL end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy) AS krav_datocotel,
		--CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) and (DATEDIFF(day, n.DATOTEL, CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END)) else NULL end as DTOTOC

		(select top 1 DATEADD(DAY, 285,(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy  and i.IDAIN > t.DATNAR and i.IVYSE IN ('7', '8', '9')))
			FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy) AS krav_datocotel,

		--(SELECT DATEDIFF(DAY,k.DATNAR, t.DATNAR)/365) AS krav_vek_rok,		
		(SELECT TOP 1 DATEDIFF(day,k.DATNAR,(SELECT TOP 1 t.DATNAR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC))/365 FROM cm_krava WHERE CISKRAVY = k.ciskravy) AS krav_vek_rok,
		--(SELECT DATEDIFF(MONTH,k.DATNAR, t.DATNAR)%12) AS krav_vek_dni,
		(SELECT TOP 1 DATEDIFF(MONTH,k.DATNAR,(SELECT TOP 1 t.DATNAR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC))%12 FROM cm_krava WHERE CISKRAVY = k.ciskravy) AS krav_vek_dni,
		
		--(SELECT DATEDIFF(DAY,k.DATNAR, t.DATNAR)) AS vek_krav_vdnoch,		
		(SELECT TOP 1 DATEDIFF(day,k.DATNAR,(SELECT TOP 1 t.DATNAR FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC))FROM cm_krava WHERE CISKRAVY = k.ciskravy) AS vek_krav_vdnoch,
		
		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_vaha120,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_zp120,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_rp120,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_vaha210,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_zp210,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_rp210,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_vaha365,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_zp365,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_rp365,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_vaha500,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_zp500,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v
		WHERE t.MATKA = k.ciskravy AND t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_rp500,
		ph.PHHMOT210 as krav_PH210,
		k.DOVVYR,
		k.DATVYR,
		@mesiac mesiac,
		@rok rok,
		GETDATE() AS generovane

		FROM dbo.CM_Krava k
		left outer join CM_Telata t on (k.CISKRAVY= t.MATKA and t.CISTELATA=(select TOP 1 LEFT((ISNULL(CONVERT(varchar(50),t.CISTELATA),'')+'SK000000000000'),14)   
											FROM dbo.CM_Telata t WHERE t.MATKA = k.ciskravy AND t.PRIZNAKKU = 2  ORDER BY DATNAR DESC))
		left outer join CM_PHKRAVYMP ph on ph.ANIMAL=k.CISKRAVY


		WHERE k.CHOVATEL = @chov AND k.PRIZNAKKU = 2 AND (k.DOVVYR IS NULL OR k.DATVYR  > DATEADD(month, -2, GETDATE())) 
		ORDER BY RIGHT(k.CISKRAVY,9)
END
go

CREATE PROCEDURE [dbo].[CR_CUK]
@chov VARCHAR(14),
--@rok INT,
--@mesiac INT,
@vyber varchar(1024)

AS

BEGIN
--set @vyber=''
-- drop table #kravytable
--drop table #kravytable2


--declare 

--set @vyber='SK000801068054;SK000801522278;SK000801138699;SK000800965589;SK000801351500;SK000801530874;SK000800436598;SK000800965780;SK000800965732;SK000800437165;SK000801351480;SK000812083730;SK000801454989;SK000801522290;SK000801522217;SK000812051022;SK000801138661'
--set @chov = 808041701
--set @rok = 2017
--set @mesiac = 6



--Declare @oznacenie varchar(20) = null

--select * from stringToTable (@vyber)
IF OBJECT_ID('tempdb..##kravytable1') IS NOT NULL DROP TABLE #kravytable
IF OBJECT_ID('tempdb..##kravytable2') IS NOT NULL DROP TABLE #kravytable2

	


	 declare @zoznamKrav table
			 (
			 chov varchar(9),
			 ciskravy varchar(14)
			 )
		insert into @zoznamKrav
			select  k.CHOVATEL, k.ciskravy
			from CM_Krava as k 
			WHERE k.CHOVATEL = @chov --and k.PORPREBLAK is not null
		--union 
		--	select  CHOV, t.MATKA
		--	from  @IRDtable as i
		--	left join CM_Telata as t on t.SPRACINSERT=i.IDR or t.SPRACUPDATE= i.IDR
		--	WHERE i.CHOV = @chov and @rok=i.rok and @mesiac=i.MESIAC


	--declare @Kravy table
	--		 (
	--		 CHOV varchar(9),
	--		 CISKRAVY varchar(14),
	--		 DATNAR DATE,
	--		 NAZOV1 VARCHAR(25),
	--		 NAZOV2 VARCHAR(25),
	--		 NAZOVSKR VARCHAR(25),
	--		 NAZOV_CELY VARCHAR(25),
	--		 BB_NAME VARCHAR(25),
	--		 DATPOSKONT DATE,
	--		 DATZAR DATE,
	--		 TRUZIT VARCHAR (5),
	--		 PK VARCHAR(5),
	--		 PORPREBLAK INT,
	--		 PLEMENO VARCHAR(50),
	--		 TypPLEM VARCHAR(25),
	--		 NAZTYP VARCHAR(25),
	--		 FARBA varchar(25),
	--		 MB varchar(15),
	--		 DATVYR DATE,
	--		 DOVVYR VARCHAR(3),
	--		 PORLAKMAX INT,
	--		 POCVSETLAK FLOAT,
	--		 POCNORLAK FLOAT,
	--		 KOEFPRIBUZ int, 
	--		 KRVDAT_1 date, 
	--		 KRVDAT date,
	--		 DNA varchar(15),
	--		 ZNAKET VARCHAR(3),
	--		 VAHA_120 float,
	--		 VAHA_210 float,
	--		 VAHA_365 float,
	--		 VAHA_500 float,
	--		 HMOTNAR float,
	--		 DATINSEM date,
	--		 BYK varchar(14),
	--		 DatOcOtel date
	--		  )
	
if (@vyber<>'') 
begin
					--insert into @Kravy 
							select k.CHOVATEL as CHOV,
							 v.uscislo as CISKRAVY,--k.CISKRAVY,
								 k.DATNAR as DATNAR,
								 c.NAZOV as NAZOV1,
								 pp.NAZOV as NAZOV2,
								 pp.NAZOVSKR as NAZOVSKR,
								 pp.Nazov as NAZOV_CELY,
								 BB_NAME as BB_NAME,
								 DATPOSKONT as DATPOSKONT,
								 DATZAR as DATZAR,
								 TRUZIT as TRUZIT,
								 pk as pk,
								 porpreblak as PORPREBLAK, 
								 ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
											  + '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
											  + '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
											  + CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS PLEMENO,
								  p.TYPS + ' - ' + p.TYPC as TypPLEM, 
								  p.NAZTYP as NAZTYP,
								  f.NAZF AS FARBA,
								  ISNULL(m.TEXT, '') AS MB,
								  k.DATVYR as DATVYR,
								  k.DOVVYR as DOVVYR, 
								  k.PORLAKMAX as PORLAKMAX, 
								  k.POCVSETLAK as POCVSETLAK, 
								  k.POCNORLAK as POCNORLAK,
								  isnull(koefpribuz,0) * 100 as KOEFPRIBUZ, 
								  pt.krvdat as KRVDAT_1, 
								  pt.krvdat as KRVDAT, 
								  CAST(pt.crozb as varchar) + '/' + pt.crad as DNA,
								  case when convert(int,k.ZNAKET)=0 then 'Nie' when convert(int,k.ZNAKET)=1 then 'Áno' end as ZNAKET,
		  							t.vaha120 as VAHA_120,
									t.vaha210 as VAHA_210,
									t.vaha365 as VAHA_365,
									t.vaha500 as VAHA_500,
									ph.phhmot120 as PH120, 
									ph.phhmot210 as PH210,
									ph.PHHMOT365 as PH365, 
									tt.HMOTNAR as HMOTNAR,
									otel.datinsem as DATINSEM,
									otel.bik as BYK,
									otel.datOcOtel as DatOcOtel,  ----vlastna uzitkovost kravy
									rod.M_MENO, 
									rod.M_USCISLO, 
									rod.M_DATNAR, 
									rod.M_PlemSK,
									rod.M_PK,
									rod.O_MENO,
									rod.O_USCISLO, rod.O_DATNAR, 
									rod.O_PlemSK,
									rod.O_PK,
									rod.MM_MENO, 
									rod.MM_USCISLO, 
									rod.MM_DATNAR, 
									rod.MM_PlemSK,
									rod.MM_PK,
									rod.OM_MENO, 
									rod.OM_USCISLO, 
									rod.OM_DATNAR, 
									rod.OM_PlemSK,
									rod.OM_PK,
									rod.OO_MENO, 
									rod.OO_USCISLO, 
									rod.OO_DATNAR, 
									rod.OO_PlemSK,
									rod.OO_PK,
									rod.MO_MENO, 
									rod.MO_USCISLO, 
									rod.MO_DATNAR, 
									rod.MO_PlemSK,
									rod.MO_PK
							  into #kravytable1
							  from stringToTable (@vyber) v
							  left outer join  @zoznamKrav as z on v.uscislo = z.ciskravy
							  left outer join CM_Krava k on k.CISKRAVY = v.uscislo
							  --from   CM_Krava as k 
							  --cross apply stringToTable (@vyber) t on t.uscislo = k.ciskravy
											LEFT OUTER JOIN CC_Farby AS f ON k.FARBA = f.KODF
											LEFT OUTER JOIN CC_MB AS m ON k.ZNMATBYK = m.KOD 
											LEFT OUTER JOIN CC_PlemTyp AS p ON k.TYPPLEM = p.TYPC 
											LEFT OUTER JOIN NM_CHOVMAS AS c ON c.KRAJ + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL 
											LEFT OUTER JOIN NM_PODNIK AS pp ON pp.KRAJ + pp.OKRES + pp.PODNIK = SUBSTRING(k.CHOVATEL, 1, 6)
											LEFT OUTER JOIN Ainbreeding AS a ON a.uscislo = k.CISKRAVY
											LEFT OUTER JOIN CM_Paternita AS pt ON pt.Krava = k.CISKRAVY
											LEFT OUTER JOIN plis.dbo.CP_Meso_TelataVahy as t on t.cistelata = k.ciskravy
											left join plis.dbo.CM_Telata as tt on t.cistelata=tt.CISTELATA
											left join plis.dbo.CP_Meso_OcakavaneOrtel as otel on t.cistelata=otel.ciskrava
											left outer join View_CP_Rodokmene as rod on rod.USCISLO = v.uscislo
											left outer join CM_PHKRAVYMP as ph on ph.ANIMAL = v.uscislo
							WHERE k.PORPREBLAK is not null and z.chov=@chov
					select * from #kravytable1 order by CISKRAVY
end 
else
begin
		--insert into @Kravy 
		 select z.CHOV as CHOV,
			z.CISKRAVY as CISKRAVY,
			k.DATNAR as DATNAR,
			c.NAZOV as NAZOV1,
			pp.NAZOV as NAZOV2,
			pp.NAZOVSKR as NAZOVSKR,
			pp.Nazov as NAZOV_CELY,
			BB_NAME as BB_NAME,
			DATPOSKONT as DATPOSKONT,
			DATZAR as DATZAR,
			TRUZIT as TRUZIT,
			pk as pk,
			porpreblak as PORPREBLAK, 
			ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
						+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
						+ '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
						+ CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS PLEMENO,
			p.TYPS + ' - ' + p.TYPC as TypPLEM, 
			p.NAZTYP as NAZTYP,
			f.NAZF AS FARBA,
			ISNULL(m.TEXT, '') AS MB,
			k.DATVYR as DATVYR,
			k.DOVVYR as DOVVYR, 
			k.PORLAKMAX as PORLAKMAX, 
			k.POCVSETLAK as POCVSETLAK, 
			k.POCNORLAK as POCNORLAK,
			isnull(koefpribuz,0) * 100 as KOEFPRIBUZ, 
			pt.krvdat as KRVDAT_1, 
			pt.krvdat as KRVDAT, 
			CAST(pt.crozb as varchar) + '/' + pt.crad as DNA,
			case when convert(int,k.ZNAKET)=0 then 'Nie' when convert(int,k.ZNAKET)=1 then 'Áno' end as ZNAKET,
		  	t.vaha120 as VAHA_120,
			t.vaha210 as VAHA_210,
			t.vaha365 as VAHA_365,
			t.vaha500 as VAHA_500,
			ph.phhmot120 as PH120, 
			ph.phhmot210 as PH210,
			ph.PHHMOT365 as PH365, 
			tt.HMOTNAR as HMOTNAR,
			otel.datinsem as DATINSEM,
			otel.bik as BYK,
			otel.datOcOtel as DatOcOtel,
			rod.M_MENO, 
			rod.M_USCISLO, 
			rod.M_DATNAR, 
			rod.M_PlemSK,
			rod.M_PK,
			ph_M.phhmot120 as M_PH120, 
			ph_M.phhmot210 as M_PH210,
			ph_M.PHHMOT365 as M_PH365, 
			rod.O_MENO,
			rod.O_USCISLO, rod.O_DATNAR, 
			rod.O_PlemSK,
			rod.O_PK,
			rod.MM_MENO, 
			rod.MM_USCISLO, 
			rod.MM_DATNAR, 
			rod.MM_PlemSK,
			rod.MM_PK,
			ph_MM.phhmot120 as MM_PH120, 
			ph_MM.phhmot210 as MM_PH210,
			ph_MM.PHHMOT365 as MM_PH365, 
			rod.OM_MENO, 
			rod.OM_USCISLO, 
			rod.OM_DATNAR, 
			rod.OM_PlemSK,
			rod.OM_PK,
			rod.OO_MENO, 
			rod.OO_USCISLO, 
			rod.OO_DATNAR, 
			rod.OO_PlemSK,
			rod.OO_PK,
			rod.MO_MENO, 
			rod.MO_USCISLO, 
			rod.MO_DATNAR, 
			rod.MO_PlemSK,
			rod.MO_PK,
			ph_MO.phhmot120 as MO_PH120, 
			ph_MO.phhmot210 as MO_PH210,
			ph_MO.PHHMOT365 as MO_PH365 
		  into #kravytable2
		  from  @zoznamKrav as z
					left join CM_Krava as k on k.CISKRAVY = z.ciskravy
					LEFT OUTER JOIN CC_Farby AS f ON k.FARBA = f.KODF
                    LEFT OUTER JOIN CC_MB AS m ON k.ZNMATBYK = m.KOD 
                    LEFT OUTER JOIN CC_PlemTyp AS p ON k.TYPPLEM = p.TYPC 
                    LEFT OUTER JOIN NM_CHOVMAS AS c ON c.KRAJ + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL 
                    LEFT OUTER JOIN NM_PODNIK AS pp ON pp.KRAJ + pp.OKRES + pp.PODNIK = SUBSTRING(k.CHOVATEL, 1, 6)
                    LEFT OUTER JOIN Ainbreeding AS a ON a.uscislo = k.CISKRAVY
                    LEFT OUTER JOIN CM_Paternita AS pt ON pt.Krava = k.CISKRAVY
					LEFT OUTER JOIN plis.dbo.CP_Meso_TelataVahy as t on t.cistelata = z.ciskravy
					left join plis.dbo.CM_Telata as tt on t.cistelata=tt.CISTELATA
					left join plis.dbo.CP_Meso_OcakavaneOrtel as otel on t.cistelata=otel.ciskrava
					left outer join View_CP_Rodokmene as rod on rod.USCISLO = z.ciskravy
					left outer join CM_PHKRAVYMP as ph on ph.ANIMAL = z.ciskravy
					left outer join CM_PHKRAVYMP as ph_M on ph_M .ANIMAL = rod.M_USCISLO
					left outer join CM_PHKRAVYMP as ph_MO on ph_MO .ANIMAL = rod.MO_USCISLO
					left outer join CM_PHKRAVYMP as ph_MM on ph_MM .ANIMAL = rod.MM_USCISLO

	WHERE k.PORPREBLAK is not null
	
					select * from #kravytable2 order by CISKRAVY
	
 end
 end
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016
-- Description:	Prepocet KUHD
-- =============================================

CREATE PROCEDURE [dbo].[CR_prepocet_KUHD_vstupy] @rok INT, @mesiac INT, @dekada INT 

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)


    CREATE TABLE #spracovane
        (
          chov VARCHAR(14) ,
          pocet INT
        )

    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
		SELECT CHOV FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
		DELETE FROM CR_KUHD_MesUzavCH_1x_backup WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
		--INSERT CR_KUHD_MesUzavCH_1x_backup
		--	SELECT * FROM dbo.CR_KUHD_MesUzavCH_1 WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
				
				--	INSERT INTO CR_KUHD_MesUzavCH_1x_backup
				--	SELECT * FROM CR_KUHD_MesUzavCH_1x
				--	WHERE NOT EXISTS(SELECT * FROM CR_KUHD_MesUzavCH_1x_backup
				--		WHERE (chovatel = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada))

							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)

							EXEC dbo.CR_KUHD_mesacne @chov,@rok,@mesiac,@dekada

				--INSERT  INTO #inseminacie
				-- ( krava, poradie, fdatum, ivyse )
				-- VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_15]
    @rok varchar(4)
	
as
begin

	
	select * 
	from plis.dbo.Roc_MLHD_Tab_15 as z
	where   z.rok = @rok
  ORDER BY Okres, mlieko desc 
end
go



create PROCEDURE [dbo].[C_ZZ_Meso_telata_1B_CHOV]
	@ParChov varchar(9)
AS
BEGIN
--		TRUNCATE TABLE plis.dbo.[CP_Meso_telata_1B] 
	delete plis.dbo.[CP_Meso_telata_1B] where chov = @ParChov

	declare @chov as varchar(9)
	declare @ouc as varchar(14)
	declare @omeno as varchar(50)
	declare @otec as varchar (10)

	declare @pBn as int;
	declare @hBn as float;

	declare @pJn as int;
	declare @hJn as float;
	 
	declare @pB120 as int;
	declare @hB120 as float;
	declare @prB120 as float;
	declare @pJ120 as int;
	declare @hJ120 as float;
	declare @prJ120 as float;

	declare @pB210 as int;
	declare @hB210 as float;
	declare @prB210 as float;
	declare @pJ210 as int;
	declare @hJ210 as float;
	declare @prJ210 as float;

	declare @pB365 as int;
	declare @hB365 as float;
	declare @prB365 as float;
	declare @pJ365 as int;
	declare @hJ365 as float;
	declare @prJ365 as float;

	declare @pB700 as int;
	declare @hB700 as float;
	declare @prB700 as float;
	declare @pJ700 as int;
	declare @hJ700 as float;
	declare @prJ700 as float;


	declare chov cursor for
	select chovatel,USCISLO,MENO,Otec
	from plis.dbo.[View_CP_Meso_ZoznamOtciPodlaChov] where chovatel = @ParChov

	open chov
	fetch next from chov into @chov,@ouc,@omeno,@otec

	while @@FETCH_STATUS=0
	begin 
			
			

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and OUC=@ouc
			group by OUC

			open v1
			fetch next from v1 into @pBn,@hBn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and OUC=@ouc
			group by OUC

			open v2
			fetch next from v2 into @pB120,@hB120,@prB120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and OUC=@ouc
			group by OUC

			open v3
			fetch next from v3 into @pB210,@hB210,@prB210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and OUC=@ouc
			group by OUC

			open v4
			fetch next from v4 into @pB365,@hB365,@prB365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and OUC=@ouc
			group by OUC

			open v5
			fetch next from v5 into @pB700,@hB700,@prB700
			close v5
			deallocate v5
		-------------------------------------------------------------------------------------

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and OUC=@ouc
			group by OUC

			open v1
			fetch next from v1 into @pJn,@hJn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and OUC=@ouc
			group by OUC

			open v2
			fetch next from v2 into @pJ120,@hJ120,@prJ120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and OUC=@ouc
			group by OUC

			open v3
			fetch next from v3 into @pJ210,@hJ210,@prJ210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and OUC=@ouc
			group by OUC

			open v4
			fetch next from v4 into @pJ365,@hJ365,@prJ365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and OUC=@ouc
			group by OUC

			open v5
			fetch next from v5 into @pJ700,@hJ700,@prJ700
			close v5
			deallocate v5


			insert into plis.dbo.[CP_Meso_telata_1B] values (
														@chov,
														@ouc,
														@omeno,
														@otec,
														@pBn,
														@hBn,
														@pJn ,
														@hJn,
														@pB120 ,
														@hB120 ,
														@prB120 ,
														@pJ120 ,
														@hJ120 ,
														@prJ120 ,
														@pB210 ,
														@hB210 ,
														@prB210 ,
														@pJ210 ,
														@hJ210 ,
														@prJ210 ,
														@pB365 ,
														@hB365 ,
														@prB365 ,
														@pJ365 ,
														@hJ365 ,
														@prJ365 ,
														@pB700 ,
														@hB700 ,
														@prB700 ,
														@pJ700 ,
														@hJ700 ,
														@prJ700 
													)


													set	@pBn=0;
														set @hBn=0;
														set @pJn=0 
														set @hJn=0
														set @pB120 =0
														set @hB120 =0
														set @prB120 =0
														set @pJ120 =0
														set @hJ120 =0
														set @prJ120 =0
														set @pB210 =0
														set @hB210 =0
														set @prB210 =0
														set @pJ210 =0
														set @hJ210 =0
														set @prJ210 =0
														set @pB365 =0
														set @hB365 =0
														set @prB365 =0
														set @pJ365 =0
														set @hJ365 =0
														set @prJ365 =0
														set @pB700 =0
														set @hB700 =0
														set @prB700 =0
														set @pJ700 =0
														set @hJ700 =0
														set @prJ700=0 
		fetch next from chov into @chov,@ouc,@omeno,@otec;
	end

	close chov;
	deallocate chov;

END

go

Create PROCEDURE [dbo].[Rocenka_MLHD_NAJCHOV] 
	@rok int

as 
begin

select distinct * from  Roc_MLHD_Tab_NAJCHOV --za podnik
where chov is null and @rok = Rok
order by indx desc

select distinct* from  Roc_MLHD_Tab_NAJCHOV --Holstein
where (substring(prev_pl,1,1) in ('R','H','M','N')
	and substring(prev_pl,1,2) <> 'MB' )
	and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc

select * from Roc_MLHD_Tab_NAJCHOV --Holstein
where Prev_pl = 'Hol+K' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV --cisty Holstein
where (prev_pl in ('R','H') or prev_pl in ('R H','H R') )
		and (chov <>'' or chov is not null) and @rok = Rok
		order by indx desc

select * from Roc_MLHD_Tab_NAJCHOV --Holstein cisty 
where Prev_pl = 'Hol' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV --Slovensky strakaty
where substring(prev_pl,1,1) ='S'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc
select * from Roc_MLHD_Tab_NAJCHOV ----Slovensky strakaty
where Prev_pl = 'SS+K' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV -- cisty Slovensky strakaty
where prev_pl ='S'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc

select * from Roc_MLHD_Tab_NAJCHOV ----cisty Slovensky strakaty
where Prev_pl = 'SS' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV --Pinzgau
where substring(prev_pl,1,1) ='P'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc

select * from Roc_MLHD_Tab_NAJCHOV ----Pinzgau
where Prev_pl = 'Pin+K' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV -- cisty Pinzgau
where prev_pl ='P'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc
select * from Roc_MLHD_Tab_NAJCHOV ----cisty Pinzgau
where Prev_pl = 'Pin' and @rok = Rok

select distinct * from  Roc_MLHD_Tab_NAJCHOV --Braunvieh
where substring(prev_pl,1,1) ='B'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc
select * from Roc_MLHD_Tab_NAJCHOV ----Braunvieh
where Prev_pl = 'Brau' and @rok = Rok



select distinct * from  Roc_MLHD_Tab_NAJCHOV --Momb
where substring(prev_pl,1,2) ='MB'
		and (chov <>'' or chov is not null) and @rok = Rok
	order by indx desc

	select * from Roc_MLHD_Tab_NAJCHOV ----Momb
where Prev_pl = 'MB' and @rok = Rok

end
go

CREATE procedure  [dbo].[Roc_MLHD_12]
	@datumOd date,
	@datumDo date

	as 
	begin
    
    delete from Roc_MLHD_Tab_12 where rok = DATEPART(YEAR, @datumOd);
	
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
/***naj mastale podla kg bielkovin ***/

	--holstein
	declare @prvostky_H table(
		chov varchar(9),
		pocet_prvostok_na_chove int,
		/*bielk_max int,*/
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--slovenske strakate
	declare @prvostky_S table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		/*bielk_max int,*/
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--Pinzgauske
		declare @prvostky_P table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		/*bielk_max int,*/
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--Braunvieh
	declare @prvostky_B table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		/*bielk_max int,*/
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)

insert into @prvostky_H 
(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 20 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and (eko.ZRUS is null or eko.datumZrusenia> @datumOd)
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,1) in ('H','R')
							AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5--, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'') 
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.BIELKNOR),2) desc
	--select * from @prvostky_H

	insert into @prvostky_S 
(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 15 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and eko.ZRUS is null AND eko.TYPZV='1'
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('S ','MB')
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.BIELKNOR),2) desc
	
	insert into @prvostky_P 
	(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 10 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('P')
							and eko.ZRUS is null AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5  --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.BIELKNOR),2) desc
	
	insert into @prvostky_B
	(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 100 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('B')
							and eko.ZRUS is null 
							AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.BIELKNOR),2) desc

	----declare @prvostky_fin table(
	----	chov varchar(9),
	----	pocet_prvostok_na_chove int,
	----	okres varchar(100),
	----	podnik varchar(100),
	----	mastal  varchar(100),
	----	char_ust  varchar(30),
	----	plem  varchar(10),
	----	pocet_N_lakt float,
	----	lakt_dni float,
	----	mlieko float, 
	----	tuk_P float,
	----	tuk float,
	----	bielk_P float,
	----	bielk float,
	----	vek_otel Varchar(10),
	----	plemeno varchar(5),
	----	rok int,
	----	B_M varchar(2)
	----	)
	insert into Roc_MLHD_Tab_12-- @prvostky_fin
			(chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, vek_otel, plemeno, rok, B_M )
		select chov,pocet_prvostok_na_chove, okres, podnik, UPPER(mastal) AS mastal, char_ust, plem,	pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'H' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'B' as B_M
		from @prvostky_H
	
	union

		select chov,pocet_prvostok_na_chove, okres, podnik, UPPER(mastal) AS mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'S' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'B' as B_M
		from @prvostky_S

	union

		select chov,pocet_prvostok_na_chove, okres, podnik, UPPER(mastal) AS mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'P' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'B' as B_M
		from @prvostky_P

	union

		select chov,pocet_prvostok_na_chove, okres, podnik, UPPER(mastal) AS mastal, char_ust, plem,	pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'B' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'B' as B_M
		from @prvostky_B


----select * from @prvostky_fin where rok = '2017' and B_M = 'B'
----	order by plemeno, bielk desc

/***naj mastale podla kg mlieka ***/

	--holstein
	declare @prvostkyM_H table(
		chov varchar(9),
		pocet_prvostok_na_chove int,
		/*bielk_max int,*/
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--slovenske strakate
	declare @prvostkyM_S table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--Pinzgauske
		declare @prvostkyM_P table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)
	--Braunvieh
	declare @prvostkyM_B table( 
		chov varchar(9),
		pocet_prvostok_na_chove int,
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float
		)

insert into @prvostkyM_H 
(chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 20 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,
				count(Lakt.zmena)as pocet_N_lakt,	
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and (eko.ZRUS is null or eko.datumZrusenia> @datumOd)
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,1) in ('H','R')
							AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5--, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'') 
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.MLIEKNOR),2) desc
	--select * from @prvostky_H

	insert into @prvostkyM_S 
(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 15 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and eko.ZRUS is null AND eko.TYPZV='1'
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('S ','MB')
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.MLIEKNOR),2) desc
	
	insert into @prvostkyM_P 
	(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 10 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,
				count(Lakt.zmena)as pocet_N_lakt,	
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('P')
							and eko.ZRUS is null AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5  --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.MLIEKNOR),2) desc
	
	insert into @prvostkyM_B
	(chov,pocet_prvostok_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
		select top 100 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				--ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
				count(Lakt.zmena)as pocet_N_lakt,
				ROUND(AVG(Lakt.LAKDNIN),2) as lakt_dni,
				ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
				ROUND(AVG(Lakt.TUKNOR),2) as tuk,
				ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
				ROUND(AVG(MEDZIOBD),2) as medziobd 
		
		FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
							left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
							--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
							left outer join  NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
						 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
								or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
							and r.rok = DATEPART(YEAR,@datumOd)
							and SUBSTRING(r.stpec_5,1,2) in ('B')
							and eko.ZRUS is null 
							AND eko.TYPZV='1'
							and Lakt.MLIEKCEL <>''
							and Lakt.ZMENA in ('30','40')
							and Lakt.PORLAK= '1'
							
										
					group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
					having count(lakt.CISKRAVY) >10
					order by ROUND(AVG(Lakt.MLIEKNOR),2) desc


	insert into Roc_MLHD_Tab_12--@prvostky_fin
			(chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, vek_otel, plemeno, rok, B_M)
		select chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem,	pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'H' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'M' as B_M
		from @prvostkyM_H
	
	union

		select chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'S' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'M' as B_M
		from @prvostkyM_S

	union

		select chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'P' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'M' as B_M
		from @prvostkyM_P

	union

		select chov,pocet_prvostok_na_chove, okres, podnik, mastal, char_ust, plem,	pocet_N_lakt, lakt_dni, mlieko, 
			ROUND(tuk / mlieko * 100, 2)as tuk_P, 
			tuk, 
			ROUND(bielk / mlieko * 100, 2)as bielk_P, 
			bielk, 
			convert(varchar, round(medziobd  / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, medziobd ) % 30.42, 0)) ) AS vek_otel,
			'B' as plemeno,
			DATEPART(YEAR, @datumOd) as rok, 
			'M' as B_M
		from @prvostkyM_B


----select * from @prvostky_fin where rok='2017' and B_M = 'M'
----	order by plemeno, mlieko desc


	END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	vypocet medziobdobia v tabulke CM_Naplak
-- Metodika MO - ak bola krava medzi dvoma vlastnymi oteleniami DONORKOU jej MO je NULL
-- =============================================
CREATE PROCEDURE [dbo].[VypocetMOvCM_Naplak]
AS
declare @v_krava varchar(14);
declare @v_datotel datetime;
declare krava_cursor cursor for SELECT CISKRAVY, DATOTEL FROM CM_Naplak /*------------ where ciskravy = 'SK000002396842' */;	
declare @v_datum datetime;
declare @MO int;
declare @count_row_Embtr int;
declare @count_row_Telata int;
declare @v_predchadzajuci_datotel datetime;
BEGIN	
	OPEN krava_cursor   
	FETCH NEXT FROM krava_cursor INTO @v_krava, @v_datotel

		WHILE @@FETCH_STATUS = 0   
		BEGIN 
			set @MO = NULL;	
			set @v_predchadzajuci_datotel = NULL;
			
            select top 1 @v_predchadzajuci_datotel = datotel from CM_Laktacie where ciskravy = @v_krava and datotel <> @v_datotel order by datotel desc;

			set @count_row_Embtr = 0;
			set @count_row_Telata = 0;
			select @count_row_Embtr = count(*) from CM_Embtr where IMATK = @v_krava and idain between @v_predchadzajuci_datotel and @v_datotel;
			select @count_row_Telata = count(*) from CM_Telata where matka = @v_krava and datnar between @v_predchadzajuci_datotel  and @v_datotel and (pohlavie = '81' or pohlavie = '82');

			if (@count_row_Embtr = 0 and @count_row_Telata = 0)
					begin
						select @MO = datediff(day, @v_predchadzajuci_datotel, @v_datotel);	
					end;		
						
				/*print 'krava ' + @v_krava + ' datotel ' + cast(@v_datotel as varchar(20));
				print 'otelenie ' + cast(@v_datotel as varchar(20));
				print ' predchadzajuce otelenie ' + cast(@v_predchadzajuci_datotel as varchar(20));
				print 'MO ' + cast(@MO as varchar(20));	*/	
			
			 UPDATE CM_Naplak SET MEDZIOBD = @MO WHERE ciskravy = @v_krava and datotel = @v_datotel;	
		FETCH NEXT FROM krava_cursor INTO @v_krava, @v_datotel
		END
	
	
	CLOSE krava_cursor   
	DEALLOCATE krava_cursor


/*
exec VypocetMOvCM_Naplak
*/
END
go


CREATE PROCEDURE [dbo].[C_ZZ_Naplak_a_Laktacie_100_a_200dni]

AS
BEGIN

/******************************************
	using table : naplak

	changing table: naplak

	used for: updating values of 100 days and 200 days lactation in Naplak

********************************************/

	/*update plis.dbo.CM_Laktacie
	set MLIEKO100=MLIEKNOR
	where LAKDNIN=100;

	update plis.dbo.CM_Laktacie
	set TUK100=TUKNOR
	where LAKDNIN=100;

	update plis.dbo.CM_Laktacie
	set BIELK100=BIELKNOR
	where LAKDNIN=100;

	update plis.dbo.CM_Laktacie
	set MLIEKO200=MLIEKNOR
	where LAKDNIN=200;

	update plis.dbo.CM_Laktacie
	set Tuk200=TUKNOR
	where LAKDNIN=200;

	update plis.dbo.CM_Laktacie
	set BIELK200=BIELKNOR
	where LAKDNIN=200;*/

	---------------------------------

	update plis.dbo.CM_Naplak
	set MLIEKO100=MLIEKNOR
	where LAKDNIN=100
	and ZMENA=11;

	update plis.dbo.CM_Naplak
	set TUK100=TUKNOR
	where LAKDNIN=100
	and ZMENA=11;

	update plis.dbo.CM_Naplak
	set BIELK100=BIELKNOR
	where LAKDNIN=100
	and ZMENA=11;

	update plis.dbo.CM_Naplak
	set MLIEKO200=MLIEKNOR
	where LAKDNIN=200
	and ZMENA=11;

	update plis.dbo.CM_Naplak
	set Tuk200=TUKNOR
	where LAKDNIN=200
	and ZMENA=11;

	update plis.dbo.CM_Naplak
	set BIELK200=BIELKNOR
	where LAKDNIN=200
	and ZMENA=11;
END
go

-- =============================================
-- Author:		David Florek
-- Create date:	03.11.2017
-- Description:	Prepocita percenta na stado.
-- Edit:			04.12.2017 - Prerobene z percentylu na quantyl
-- =============================================
CREATE PROCEDURE [dbo].[CM_Keto_prepocet_percent]
	@chov varchar(9),
	@datum date = null
AS
BEGIN
	if(OBJECT_ID('tempdb..#rozbory') is not null)
		drop table #rozbory

	if @datum is null
		select TOP 1 DATKONTR = @datum from CM_Rozbory where CHOV = @chov order by DATKONTR desc;
	select * into #rozbory from CM_Rozbory
	where CHOV = @chov and CAST(DATKONTR as DATE) = @datum
	and oa is not null and LaktDni <= 100;

	--declare
	--@oaMax decimal(13, 3),
	--@fpMax decimal(13, 3),
	--@fsMax decimal(13, 3),
	--@fsnfMax decimal(13, 3),
	--@flMax decimal(13, 3),
	--@ac1Max decimal(13, 3),
	--@ac2Max decimal(13, 3),
	--@ac3Max decimal(13, 3),
	--@bhbaMax decimal(13, 3),
	--@bhbbMax decimal(13, 3),
	--@bhbgcMax decimal(13, 3);

	--declare
	--@oaMin decimal(13, 3),
	--@fpMin decimal(13, 3),
	--@fsMin decimal(13, 3),
	--@fsnfMin decimal(13, 3),
	--@flMin decimal(13, 3),
	--@ac1Min decimal(13, 3),
	--@ac2Min decimal(13, 3),
	--@ac3Min decimal(13, 3),
	--@bhbaMin decimal(13, 3),
	--@bhbbMin decimal(13, 3),
	--@bhbgcMin decimal(13, 3);

	declare @pocet decimal(13, 3);

	select
	--@oaMax = MAX(oa), @fpMax = MAX(fp), @fsMax = MAX(fs), @fsnfMax = MAX(fsnf), @flMax = MAX(fl),
	--@ac1Max = MAX(ac1), @ac2Max = MAX(ac2), @ac3Max = MAX(ac3), @bhbaMax = MAX(bhba), @bhbbMax = MAX(bhbb), @bhbgcMax = MAX(bhbgc),
	--@oaMin = MIN(oa), @fpMin = MIN(fp), @fsMin = MIN(fs), @fsnfMin = MIN(fsnf), @flMin = MIN(fl),
	--@ac1Min = MIN(ac1), @ac2Min = MIN(ac2), @ac3Min = MIN(ac3), @bhbaMin = MIN(bhba), @bhbbMin = MIN(bhbb), @bhbgcMin = MIN(bhbgc),
	@pocet = cast(count(*) as decimal(13, 3))
	from #rozbory;

	declare
	@cisKravy varchar(14),
	@oa decimal(13, 3),
	@fp decimal(13, 3),
	@fs decimal(13, 3),
	@fsnf decimal(13, 3),
	@fl decimal(13, 3),
	@ac1 decimal(13, 3),
	@ac2 decimal(13, 3),
	@ac3 decimal(13, 3),
	@bhba decimal(13, 3),
	@bhbb decimal(13, 3),
	@bhbgc decimal(13, 3);

	declare rozboryKurzor cursor
	for select cisKravy, oa, fp, fs, fsnf, fl, ac1, ac2, ac3, bhba, bhbb, bhbgc from #rozbory

	open rozboryKurzor
	fetch next from rozboryKurzor into @cisKravy, @oa, @fp, @fs, @fsnf, @fl, @ac1, @ac2, @ac3, @bhba, @bhbb, @bhbgc;
	while @@FETCH_STATUS = 0 
	begin
		--update CM_Rozbory
		--set oaPerc =	case when (@oaMax - @oaMin) <> 0 then ((@oa - @oaMin) / (@oaMax - @oaMin)) * 100.00 else 0 end,
		--fpPerc =		case when (@fpMax - @fpMin) <> 0 then ((@fp - @fpMin) / (@fpMax - @fpMin)) * 100 else 0 end,
		--fsPerc =		case when (@fsMax - @fsMin) <> 0 then ((@fs - @fsMin) / (@fsMax - @fsMin)) * 100 else 0 end,
		--fsnfPerc =		case when (@fsnfMax - @fsnfMin) <> 0 then ((@fsnf - @fsnfMin) / (@fsnfMax - @fsnfMin)) * 100 else 0 end,
		--flPerc =		case when (@flMax - @flMin) <> 0 then ((@fl - @flMin) / (@flMax - @flMin)) * 100 else 0 end,
		--ac1Perc =		case when (@ac1Max - @ac1Min) <> 0 then ((@ac1 - @ac1Min) / (@ac1Max - @ac1Min)) * 100 else 0 end,
		--ac2Perc =		case when (@ac2Max - @ac2Min) <> 0 then ((@ac2 - @ac2Min) / (@ac2Max - @ac2Min)) * 100 else 0 end,
		--ac3Perc =		case when (@ac3Max - @ac3Min) <> 0 then ((@ac3 - @ac3Min) / (@ac3Max - @ac3Min)) * 100 else 0 end,
		--bhbaPerc =		case when (@bhbaMax - @bhbaMin) <> 0 then ((@bhba - @bhbaMin) / (@bhbaMax - @bhbaMin)) * 100 else 0 end,
		--bhbbPerc =		case when (@bhbbMax - @bhbbMin) <> 0 then ((@bhbb - @bhbbMin) / (@bhbbMax - @bhbbMin)) * 100 else 0 end,
		--bhbgcPerc =		case when (@bhbgcMax - @bhbgcMin) <> 0 then ((@bhbgc - @bhbgcMin) / (@bhbgcMax - @bhbgcMin)) * 100 else 0 end
		--where CHOV = @chov and DATKONTR = @datum and CISKRAVY = @cisKravy;

		update CM_Rozbory
		set oaPerc =	((select cast(count(*) as decimal(13, 3)) from #rozbory where oa <= @oa) / @pocet) * 100.00,
		fpPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where fp <= @fp) / @pocet) * 100.00,
		fsPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where fs <= @fs) / @pocet) * 100.00,
		fsnfPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where fsnf <= @fsnf) / @pocet) * 100.00,
		flPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where fl <= @fl) / @pocet) * 100.00,
		ac1Perc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where ac1 <= @ac1) / @pocet) * 100.00,
		ac2Perc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where ac2 <= @ac2) / @pocet) * 100.00,
		ac3Perc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where ac3 <= @ac3) / @pocet) * 100.00,
		bhbaPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where bhba <= @bhba) / @pocet) * 100.00,
		bhbbPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where bhbb <= @bhbb) / @pocet) * 100.00,
		bhbgcPerc =		((select cast(count(*) as decimal(13, 3)) from #rozbory where bhbgc <= @bhbgc) / @pocet) * 100.00
		where CHOV = @chov and DATKONTR = @datum and CISKRAVY = @cisKravy

		fetch next from rozboryKurzor into @cisKravy, @oa, @fp, @fs, @fsnf, @fl, @ac1, @ac2, @ac3, @bhba, @bhbb, @bhbgc;
	end

	close rozboryKurzor;
	deallocate rozboryKurzor;

	drop table #rozbory;
END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 30.10.2017
-- Description:	Vrati plemeno vo forme tabulky zo stringu
-- =============================================
CREATE FUNCTION S_plemeno
(	
	@plem varchar(10)
)
RETURNS @table TABLE 
(
	pl1 varchar(2),
	pl2 varchar(2),
	pl3 varchar(2),
	pl4 varchar(2),
	kod varchar(2)
)
AS
BEGIN
--
--RETURN 	
	insert into @table
	select substring(@plem, 1, 2)[pl1], substring(@plem, 3, 2)[pl2], substring(@plem, 5, 2)[pl3], substring(@plem, 7, 2)[pl4], substring(@plem, 9, 2)[kod]
	return;
END


--		select * from dbo.S_plemeno('SD  M VF01') 
go



CREATE PROCEDURE [dbo].[C_Zoznam_nar_teliat_KUMP_1]

	@chov[varchar](9), 
	@rok int,
	@mesiac INT
	

	 AS
 DECLARE @IDR BIGINT,	@vymazcount int
 SELECT @vymazcount = COUNT(*) FROM plis.dbo.CR_Zoznam_nar_teliat_KUMP_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac 
 DELETE FROM plis.dbo.CR_Zoznam_nar_teliat_KUMP_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac 

 PRINT 'Vymazal som ' + CAST(@vymazcount AS VARCHAR) + ' teliat z tabulky CR_Zoznam_nar_teliat_KUMP_1....'
 
 DECLARE @zoznam TABLE (cistelata VARCHAR(14),
 Dat_Nar DATE,
  matka VARCHAR(14), 
 IDR BIGINT, 
 spracinsert BIGINT, 
 dovvyr VARCHAR(2), 
 chov VARCHAR(9),  
 datnar DATE , 
 pohlavie VARCHAR(2), 
 Farba varchar(2), 
 UrcTel varchar, 
 HmotNar decimal, 
 PriebPor varchar(1), 
 Plemeno varchar(40),
 Lin_Reg varchar(8), 
 Otec Varchar(14), 
 Preukaz VARCHAR(15), 
 URtel VARCHAR, 
 O_Meno VARCHAR(50),
 mesiac int, rok int
 )

 SELECT @IDR = IDR
 FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 WHERE @CHOV = chov and @rok=rok and @mesiac=MESIAC 

 SELECT DISTINCT IDR INTO #idrtable
FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

SELECT * FROM #idrtable
SELECT IDR INTO #temp FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @chov AND ROK = @rok AND MESIAC = @mesiac

--SELECT t1.* FROM cm_telata t1, #temp t2 WHERE SPRACINSERT = t2.IDR

--DROP TABLE #temp


 INSERT INTO @zoznam
        ( cistelata , matka ,IDR ,spracinsert, dovvyr, chov , datnar , pohlavie, Farba, UrcTel, HmotNar,PriebPor, Plemeno, Lin_Reg, Otec )
        SELECT  t.CISTELATA , t.MATKA , t2.IDR ,t.SPRACINSERT, t.DOVVYR,
                sch.CHOV , t.DATNAR , t.POHLAVIE, t.FARBA AS Farba , t.URCTEL as UrcTel,CAST(t.HMOTNAR as decimal(7,2)) as HmotNar,
				CAST(t.PRIEBPOR as varchar(1)) as PriebPor,
				t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' '
		 + ISNULL(t.PL2 + '-'
		 + CONVERT(VARCHAR, ISNULL(t.KR2,0)) + ' '
		 + ISNULL(t.PL3+ '-' + CONVERT(VARCHAR, ISNULL(t.KR3, 0)) + ' '
         + ISNULL(t.PL4 + '-'+ CONVERT(VARCHAR, ISNULL(t.KR4,0)) + ' '
         + ISNULL(t.PL5,''), ''), ''),'') AS Plemeno, 
		 --t.OTECLIN + '-' + RIGHT(1000 + t.OTECREG, 3) AS Lin_Reg, 
		 case when t.OTECLIN = 'NEZ' then 'NEZ'
			else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end
			AS Lin_Reg, 
		  t.OUC AS Otec 
        FROM    VstupyPLIS.dbo.CP_SPRAC_CHOVY sch
                INNER JOIN plis.dbo.CM_Telata t ON t.SPRACINSERT = sch.IDR  --OR ( sch.IDR = t.SPRACUPDATE )
									and t.DOVVYR is null
	
						
				 INNER JOIN #temp t2 on t2.IDR=t.SPRACINSERT
        WHERE   t.DOVVYR is null and CHOV = @chov and @rok=rok and @mesiac=MESIAC  and PRIZNAKKU='2' and  t.SPRACINSERT is not null
		
		select * from @zoznam

		--Create table plis.dbo.CR_Zoznam_nar_teliat_KUMP_2
		--(chov Varchar(9), Cislo_Telata VARCHAR(14), Dat_Nar DATE, Pohlavie VARCHAR(2), Plemeno varchar(40), Preukaz VARCHAR(15), 
		--Farba varchar(2),URtel VARCHAR, HmotNar decimal null, PriebPor VARCHAR(2), Matka VARCHAR(14), O_Meno VARCHAR(50), Lin_Reg varchar(8),
		--Otec VARCHAR(14),  mesiac int, rok int, SPRACINSERT BIGINT,DOVVYR VARCHAR(2), generovane date)
	
	INSERT INTO plis.dbo.CR_Zoznam_nar_teliat_KUMP_1
		(chov , Cislo_Telata, Dat_Nar,Pohlavie, 
		Plemeno, 
		Preukaz, 
		Farba,URtel, HmotNar, PriebPor,
		 Matka, 
		O_Meno, 
		Lin_Reg, Otec,
		mesiac, rok, SPRACINSERT
		,DOVVYR,
		generovane
		 )
	
		(
		SELECT @chov AS chov ,
			z.CISTELATA AS Cislo_Telata , 
			z.DATNAR AS Dat_Nar ,
			z.POHLAVIE as Pohlavie,
			z.Plemeno AS Plemeno ,
			povod.PRETLAC AS Preukaz , 
			t.FARBA AS Farba ,
			t.URCTEL as URtel, 
			CAST(t.HMOTNAR as decimal(7,2)) as HmotNar, 
			CAST(t.PRIEBPOR as varchar(1)) as PriebPor, 
			z.matka AS Matka ,
			b.MENO AS O_Meno ,
			--t.OTECLIN + '-' + RIGHT(1000 + t.OTECREG, 3) AS Lin_Reg ,
			case when t.OTECLIN = 'NEZ' then 'NEZ'
			else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end
			AS Lin_Reg, 
			t.OUC AS Otec ,  
			@mesiac AS mesiac , 
			@rok AS rok, 
			t2.IDR as SPRACINSERT, 
			t.dovvyr as DOVVYR,
			GETDATE() as generovane
		

       FROM   @zoznam  as z
	   
                
        LEFT JOIN plis.dbo.CM_Telata t ON 	(z.cistelata=t.CISTELATA
											and t.DOVVYR is null
											and t.cistelata is not null)
                                            OR ( t.MATKA = z.matka
                                                 AND t.DATNAR = z.datnar
                                                 AND t.POHLAVIE = z.pohlavie
												 and t.DOVVYR is null
												 and t.cistelata is null
                                               )
          INNER JOIN  VstupyPLIS.dbo.CP_SPRAC_CHOVY sch ON   sch.IDR=t.SPRACINSERT                                 
        LEFT JOIN plis.dbo.CM_Naplak n ON  t.MATKA=n.CISKRAVY
                                            OR ( n.CISKRAVY = t.MATKA
                                                 AND n.DATOTEL = t.DATNAR
                                               )
                                          
        LEFT JOIN plis.dbo.CM_Byci b ON ( t.OUC = b.USCISLO )
        LEFT JOIN plis.dbo.CC_Povod povod ON ( t.PREUKAZ = povod.KOD )
		LEFT JOIN #temp t2 on t2.IDR=z.SPRACINSERT
        WHERE   z.chov = @chov 
		and z.DOVVYR is null 
		and z.SPRACINSERT is not null)
		
		
	--select * from plis.dbo.CR_Zoznam_nar_teliat_KUMP_1 order by chov, Cislo_Telata
go



create PROCEDURE [dbo].[C_ZZ_Meso_telata_1A_CHOV]
	@ParChov varchar(9)
AS
BEGIN
--		TRUNCATE TABLE plis.dbo.[CP_Meso_1AReportTelata] 
	delete plis.dbo.[CP_Meso_1AReportTelata] where chovatel = @ParChov

	declare @chov as varchar(9)
	declare @n as varchar(30)

	declare @pBn as int;
	declare @hBn as float;

	declare @pJn as int;
	declare @hJn as float;
	 
	declare @pB120 as int;
	declare @hB120 as float;
	declare @prB120 as float;
	declare @pJ120 as int;
	declare @hJ120 as float;
	declare @prJ120 as float;

	declare @pB210 as int;
	declare @hB210 as float;
	declare @prB210 as float;
	declare @pJ210 as int;
	declare @hJ210 as float;
	declare @prJ210 as float;

	declare @pB365 as int;
	declare @hB365 as float;
	declare @prB365 as float;
	declare @pJ365 as int;
	declare @hJ365 as float;
	declare @prJ365 as float;

	declare @pB700 as int;
	declare @hB700 as float;
	declare @prB700 as float;
	declare @pJ700 as int;
	declare @hJ700 as float;
	declare @prJ700 as float;


	declare chov cursor for
	select chovatel,NAZTYP
	from plis.dbo.[View_CP_Meso_Chovatel_NazovPlemen] where chovatel = @ParChov

	open chov
	fetch next from chov into @chov,@n

	while @@FETCH_STATUS=0
	begin 
			
			

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and NAZTYP=@n
			group by NAZTYP

			open v1
			fetch next from v1 into @pBn,@hBn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v2
			fetch next from v2 into @pB120,@hB120,@prB120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v3
			fetch next from v3 into @pB210,@hB210,@prB210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v4
			fetch next from v4 into @pB365,@hB365,@prB365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v5
			fetch next from v5 into @pB700,@hB700,@prB700
			close v5
			deallocate v5
		-------------------------------------------------------------------------------------

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and NAZTYP=@n
			group by NAZTYP

			open v1
			fetch next from v1 into @pJn,@hJn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v2
			fetch next from v2 into @pJ120,@hJ120,@prJ120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v3
			fetch next from v3 into @pJ210,@hJ210,@prJ210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v4
			fetch next from v4 into @pJ365,@hJ365,@prJ365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [PLIS].[dbo].[View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v5
			fetch next from v5 into @pJ700,@hJ700,@prJ700
			close v5
			deallocate v5


			insert into plis.dbo.[CP_Meso_1AReportTelata] values (
														@chov,
														 @n,
														@pBn,
														@hBn,
														@pJn ,
														@hJn,
														@pB120 ,
														@hB120 ,
														@prB120 ,
														@pJ120 ,
														@hJ120 ,
														@prJ120 ,
														@pB210 ,
														@hB210 ,
														@prB210 ,
														@pJ210 ,
														@hJ210 ,
														@prJ210 ,
														@pB365 ,
														@hB365 ,
														@prB365 ,
														@pJ365 ,
														@hJ365 ,
														@prJ365 ,
														@pB700 ,
														@hB700 ,
														@prB700 ,
														@pJ700 ,
														@hJ700 ,
														@prJ700 
													)
			set	@pBn=0;
														set @hBn=0;
														set @pJn=0 
														set @hJn=0
														set @pB120 =0
														set @hB120 =0
														set @prB120 =0
														set @pJ120 =0
														set @hJ120 =0
														set @prJ120 =0
														set @pB210 =0
														set @hB210 =0
														set @prB210 =0
														set @pJ210 =0
														set @hJ210 =0
														set @prJ210 =0
														set @pB365 =0
														set @hB365 =0
														set @prB365 =0
														set @pJ365 =0
														set @hJ365 =0
														set @prJ365 =0
														set @pB700 =0
														set @hB700 =0
														set @prB700 =0
														set @pJ700 =0
														set @hJ700 =0
														set @prJ700=0 
		fetch next from chov into @chov,@n;
	end

	close chov;
	deallocate chov;

END

go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_CapRokNar] 
(	
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, 
SUM(1) AS pocet,CASE WHEN RokNar = 0 THEN 0 ELSE sum(datediff(month,DatNar,getdate())) end as Svekmes
FROM    dbo.GM_CAP
WHERE     (DOVOD = '0') AND (DATVYR IS NULL) AND (KrOkr+Podnik+stado= @chovatel)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar
)
go


CREATE PROCEDURE [dbo].[C_ZZ_18_test] (@chov as varchar(9),@kolko as int)
	
AS
BEGIN
SET ARITHABORT ON;
	
	SELECT 'do 24' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 

 FROM CM_Krava AS k INNER JOIN CM_Naplak AS l 
 ON k.CISKRAVY = l.CISKRAVY LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
 WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
 AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) 
 AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 <= 24) 
 AND (k.DATNAR IS NOT NULL) 
 
 UNION 
 
 SELECT 'do 25' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
 AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
 AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
 FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
 LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
 WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
 AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') 
 AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 24.0000000000000001 AND 25) 
 AND (k.DATNAR IS NOT NULL) 
 
 UNION 
 
 SELECT 'do 26' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
 AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
 AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305
 FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY LEFT OUTER JOIN cp_kravy_305Udaje AS u
  ON k.CISKRAVY = u.CISKRAVY WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
  AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
   AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 25.0000000000000001 AND 26) 
   AND (k.DATNAR IS NOT NULL) 
   
   UNION 
   
   SELECT 'do 27' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
   AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
   AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
   AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
   AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
   FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
   WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
   AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) 
   AND (k.PRIZNAKKU = '1') AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 26.0000000000000001 AND 27) 
   AND (k.DATNAR IS NOT NULL) 
   
   UNION 
   
   SELECT 'do 28' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
   AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
   AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
   AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
   AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
   FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
   WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
   AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') 
   AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 27.0000000000000001 AND 28) 
   AND (k.DATNAR IS NOT NULL) 
   
   UNION 
   
   SELECT 'do 29' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
   AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
    AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
	 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
	 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
	 FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
	 LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
	  WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') AND (k.DOVVYR IS NULL) 
	  AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') 
	  AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 28.0000000000000001 AND 29) 
	  AND (k.DATNAR IS NOT NULL) 
	  
	  UNION 
	  
	  SELECT 'do 30' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
	  AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100, 
	  AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
	  AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
	  AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
	  FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
	  LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
	  WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
	  AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') 
	  AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 29.0000000000000001 AND 30) 
	  AND (k.DATNAR IS NOT NULL) 
	  
	  UNION 
	  
	  SELECT 'nad 30' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
	  AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
	   AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
	   AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
	   AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305
	    FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY 
		LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY 
		WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
		AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1') 
		AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 > 30.0000000000000001) AND (k.DATNAR IS NOT NULL) 
		
		UNION 
		
		SELECT 'SPOLU/PRIEMER' AS Expr1, COUNT(*) AS pocet, AVG(l.MLIEKO100) AS mlieko1000, 
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100, AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		 AVG(l.MLIEKO200) AS mlieko200, AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200, 
		 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200, AVG(u.MLIEKNOR) AS mlieko305, 
		 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305, AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305 
		 FROM CM_Krava AS k INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY LEFT OUTER JOIN
		  cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
		   WHERE (k.CHOVATEL LIKE SUBSTRING(@chov, 1, CONVERT (int, @kolko)) + '%') 
		   AND (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) 
		   AND (k.PRIZNAKKU = '1') AND (k.DATNAR IS NOT NULL)

END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	vypocet medziobdobia v tabulke CM_Naplak
-- Metodika MO - ak bola krava medzi dvoma vlastnymi oteleniami DONORKOU jej MO je NULL
-- =============================================
CREATE PROCEDURE [dbo].[VypocetMOvCM_Naplak_CHOV]
@ParChov varchar(9)
AS
declare @v_krava varchar(14);
declare @v_datotel datetime;
declare krava_cursor cursor for SELECT CISKRAVY, DATOTEL FROM CM_Naplak where chovatel = @ParChov /*------------ where ciskravy = 'SK000002396842' */;	
declare @v_datum datetime;
declare @MO int;
declare @count_row_Embtr int;
declare @count_row_Telata int;
declare @v_predchadzajuci_datotel datetime;
BEGIN	
	OPEN krava_cursor   
	FETCH NEXT FROM krava_cursor INTO @v_krava, @v_datotel

		WHILE @@FETCH_STATUS = 0   
		BEGIN 
			set @MO = NULL;	
			set @v_predchadzajuci_datotel = NULL;
			
            select top 1 @v_predchadzajuci_datotel = datotel from CM_Laktacie where ciskravy = @v_krava and datotel <> @v_datotel order by datotel desc;

			set @count_row_Embtr = 0;
			set @count_row_Telata = 0;
			select @count_row_Embtr = count(*) from CM_Embtr where IMATK = @v_krava and idain between @v_predchadzajuci_datotel and @v_datotel;
			select @count_row_Telata = count(*) from CM_Telata where matka = @v_krava and datnar between @v_predchadzajuci_datotel  and @v_datotel and (pohlavie = '81' or pohlavie = '82');

			if (@count_row_Embtr = 0 and @count_row_Telata = 0)
					begin
						select @MO = datediff(day, @v_predchadzajuci_datotel, @v_datotel);	
					end;		
						
				/*print 'krava ' + @v_krava + ' datotel ' + cast(@v_datotel as varchar(20));
				print 'otelenie ' + cast(@v_datotel as varchar(20));
				print ' predchadzajuce otelenie ' + cast(@v_predchadzajuci_datotel as varchar(20));
				print 'MO ' + cast(@MO as varchar(20));	*/		
			
			 UPDATE CM_Naplak SET MEDZIOBD = @MO WHERE ciskravy = @v_krava and datotel = @v_datotel;	
		FETCH NEXT FROM krava_cursor INTO @v_krava, @v_datotel
		END
	
	
	CLOSE krava_cursor   
	DEALLOCATE krava_cursor


/*
exec VypocetMOvCM_Naplak_chov

*/
END
go

/*******************************************

!  please run affter updating table cp_MedziObdMesove (C_VZ_MedziobdobieMesove procedure) !

	using table:CM_Krava,CP_MedziObdMesove

	changing table:cp_Meso_MediobdobieReport

	used for:(6)Rozbor medziobdobia kráv KÚMP 

*****************************************/
CREATE PROCEDURE [dbo].[C_ZZ_Meso_MedziObdobZostava_101]
AS
BEGIN

TRUNCATE TABLE cp_Meso_MediobdobieReport

declare @chov as varchar(9);
declare @l as int;
declare @hranica as varchar(15);
declare @spolu int;
declare @Pmedzi2 as int;
declare @Pmedzi3 as int;
declare @Pmedzi4 as int;
declare @Pmedzi5 as int;
declare @Pmedzi6 as int;
declare @Pmedzi7 as int;
declare @Pmedzi8 as int;
declare @Pmedzi9 as int;

declare @l2h1 as int;
declare @l2h2 as int;
declare @l2h3 as int;
declare @l2h4 as int;
declare @l2h5 as int;
declare @l3h1 as int;
declare @l3h2 as int;
declare @l3h3 as int;
declare @l3h4 as int;
declare @l3h5 as int;
declare @l4h1 as int;
declare @l4h2 as int;
declare @l4h3 as int;
declare @l4h4 as int;
declare @l4h5 as int;
declare @l5h1 as int;
declare @l5h2 as int;
declare @l5h3 as int;
declare @l5h4 as int;
declare @l5h5 as int;
declare @l6h1 as int;
declare @l6h2 as int;
declare @l6h3 as int;
declare @l6h4 as int;
declare @l6h5 as int;
declare @l7h1 as int;
declare @l7h2 as int;
declare @l7h3 as int;
declare @l7h4 as int;
declare @l7h5 as int;
declare @l8h1 as int;
declare @l8h2 as int;
declare @l8h3 as int;
declare @l8h4 as int;
declare @l8h5 as int;
declare @l9h1 as int;
declare @l9h2 as int;
declare @l9h3 as int;
declare @l9h4 as int;
declare @l9h5 as int;

declare @lspolu2 as int;
declare @lspolu3 as int;
declare @lspolu4 as int;
declare @lspolu5 as int;
declare @lspolu6 as int;
declare @lspolu7 as int;
declare @lspolu8 as int;
declare @lspolu9 as int;

declare @hspolu1 as int;
declare @hspolu2 as int;
declare @hspolu3 as int;
declare @hspolu4 as int;
declare @hspolu5 as int;



declare chov cursor for
select distinct k.CHOVATEL
from plis.dbo.CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null


open chov;
fetch next from chov into @chov;

while @@FETCH_STATUS=0
begin


				set @spolu=	(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK is not null
		 and k.porpreblak !=1)
		 --------------------------------------------------------------

		set @l2h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l2h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l2h3=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l2h4=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l2h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu2=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null )

		 set @hspolu5=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)


		 set @hspolu4=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @hspolu3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and ( t.Medziobd<=320) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi2=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 ---------------------------------------------------------

		 set @l3h1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l3h2=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l3h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l3h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l3h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi3=(select avg(nullif(t.Medziobd,0))
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null)
		 --------------------------------------------
		 set @l4h1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l4h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l4h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l4h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l4h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu4=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)

		 set @Pmedzi4=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l5h1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l5h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		  set @l5h3=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		  set @l5h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		  set @l5h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd >= 401
		 and k.PORPREBLAK is not null)

		 set @lspolu5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)

		 set @Pmedzi5=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)
		 -----------------------------------------------

		 set @l6h1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		  set @l6h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l6h3=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l6h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l6h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)


		 set @lspolu6=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)

		 set @Pmedzi6=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l7h1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l7h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l7h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l7h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l7h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu7=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)

		 set @Pmedzi7=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l8h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l8h2=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l8h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l8h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l8h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu8=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)

		 set @Pmedzi8=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l9h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l9h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l9h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l9h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l9h5=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu9=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)

		 set @Pmedzi9=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------------
	

	insert into cp_Meso_MediobdobieReport values(@chov,'do 320',@l2h1,(@l2h1*100)/convert(float,@spolu)*1.00,
												 @l3h1,(@l3h1*100)/convert(float,@spolu)*1.00,@l4h1,(@l4h1*100)/convert(float,@spolu)*1.00,
												 @l5h1,(@l5h1*100)/convert(float,@spolu)*1.00,@l6h1,(@l6h1*100)/convert(float,@spolu)*1.00,
												 @l7h1,(@l7h1*100)/convert(float,@spolu)*1.00,@l8h1,(@l8h1*100)/convert(float,@spolu)*1.00,
												 @l9h1,(@l9h1*100)/convert(float,@spolu)*1.00,@hspolu1,
												 (@hspolu1*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'321-365',@l2h2,(@l2h2*100)/convert(float,@spolu)*1.00,
												 @l3h2,(@l3h2*100)/convert(float,@spolu)*1.00,@l4h2,
												 (@l4h2*100)/convert(float,@spolu)*1.00,@l5h2,
												 (@l5h2*100)/convert(float,@spolu)*1.00,@l6h2,(@l6h2*100)/convert(float,@spolu)*1.00,
												 @l7h2,(@l7h2*100)/convert(float,@spolu)*1.00,@l8h2,(@l8h2*100)/convert(float,@spolu)*1.00,
												 @l9h2,(@l9h2*100)/convert(float,@spolu)*1.00,@hspolu2,(@hspolu2*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'366-385',@l2h3,(@l2h3*100)/convert(float,@spolu)*1.00,@l3h3,
												 (@l3h3*100)/convert(float,@spolu)*1.00,@l4h3,(@l4h3*100)/convert(float,@spolu)*1.00,@l5h3,
												 (@l5h3*100)/convert(float,@spolu)*1.00,@l6h3,(@l6h3*100)/convert(float,@spolu)*1.00,@l7h3,
												 (@l7h3*100)/convert(float,@spolu)*1.00,@l8h3,(@l8h3*100)/convert(float,@spolu)*1.00,@l9h3,
												 (@l9h3*100)/convert(float,@spolu)*1.00,@hspolu3,(@hspolu3*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'386-400',@l2h4,(@l2h4*100)/convert(float,@spolu)*1.00,@l3h4,(
												 @l3h4*100)/convert(float,@spolu)*1.00,@l4h4,(@l4h4*100)/convert(float,@spolu)*1.00,@l5h4, 
												 (@l5h4*100)/convert(float,@spolu)*1.00,@l6h4,(@l6h4*100)/convert(float,@spolu)*1.00,@l7h4,
												 (@l7h4*100)/convert(float,@spolu)*1.00,@l8h4,(@l8h4*100)/convert(float,@spolu)*1.00,@l9h4,
												 (@l9h4*100)/convert(float,@spolu)*1.00,@hspolu4,(@hspolu4*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'nad 400',@l2h5,(@l2h5*100)/convert(float,@spolu)*1.00,@l3h5,
												 (@l3h5*100)/convert(float,@spolu)*1.00,@l4h5,(@l4h5*100)/convert(float,@spolu)*1.00,@l5h5,
												 (@l5h5*100)/convert(float,@spolu)*1.00,@l6h5,(@l6h5*100)/convert(float,@spolu)*1.00,@l7h5,
												 (@l7h5*100)/convert(float,@spolu)*1.00,@l8h5,(@l8h5*100)/convert(float,@spolu)*1.00,@l9h5,
												 (@l9h5*100)/convert(float,@spolu)*1.00,@hspolu5,(@hspolu5*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Spolu',@lspolu2,(@lspolu2*100)/convert(float,@spolu)*1.00,
												 @lspolu3,(@lspolu3*100)/convert(float,@spolu)*1.00,@lspolu4,
												 (@lspolu4*100)/convert(float,@spolu)*1.00,@lspolu5,(@lspolu5*100)/convert(float,@spolu)*1.00,
												 @lspolu6,(@lspolu6*100)/convert(float,@spolu)*1.00,@lspolu7,(@lspolu7*100)/convert(float,@spolu)*1.00,
												 @lspolu8,(@lspolu8*100)/convert(float,@spolu)*1.00,@lspolu9,(@lspolu9*100)/convert(float,@spolu)*1.00,
												 @spolu,(@spolu*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Priem. medziobd.',@Pmedzi2,null,@Pmedzi3,null,@Pmedzi4,null,@Pmedzi5,null,@Pmedzi6,null,@Pmedzi7,null,@Pmedzi8,null,@Pmedzi9,null,@spolu,null);

	fetch next from chov into @chov;
end

close chov;
deallocate chov;

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-27
-- Description:	Priprava suborov rodokmenov matiek a otcov
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_rodokmeneTXT]

AS
BEGIN
DECLARE @RC int

	IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_vsetky_kravy'))
		drop table temp_vsetky_kravy	

	-- priprava celkovej tabulky krav pre vytvorenie rodokmenov
	select CISKRAVY, DATNAR, OUSCIS, MA, dbo.C_Blup_PLTyp(pl1, kr1, pl2, kr2, pl3, kr3, pl4, kr4) as PTYP
	into temp_vsetky_kravy
	from CM_Krava

	CREATE INDEX IDX_temp_vsetky_kravy ON temp_vsetky_kravy(CISKRAVY)

	-- pridanie starych krav zo zoznamu vyradenych krav
	merge temp_vsetky_kravy as k
	using CM_Vyrkrav as v
	on k.CISKRAVY = v.CISKRAVY
	when not matched then insert
	(CISKRAVY, DATNAR, OUSCIS, MA, PTYP)
	values 
	(v.CISKRAVY, v.DATNAR, dbo.C_aktual_zisti_USCISBYKA(v.oteclin, v.otecreg), v.MATKA, dbo.C_Blup_PLTyp(v.pl1, v.kr1, v.pl2, v.kr2, v.pl3, v.kr3, v.pl4, v.kr4))
	when matched then update set
		k.datnar = case when k.datnar is null then v.datnar else k.datnar end,
		--k.ouscis = case when k.ouscis is null then dbo.C_aktual_zisti_USCISBYKA(v.oteclin, v.otecreg) else k.ouscis end,
		--k.ma = case when k.ma is null then v.matka else k.ma end,
		--k.ptyp = case when k.ptyp is null then dbo.C_Blup_PLTyp(v.pl1, v.kr1, v.pl2, v.kr2, v.pl3, v.kr3, v.pl4, v.kr4) else k.ptyp end;
		--k.datnar = v.datnar,
		k.ouscis = dbo.C_aktual_zisti_USCISBYKA(v.oteclin, v.otecreg),
		k.ma = case when v.matka = 'SK000000000000' then k.ma else v.matka end,
		k.ptyp = dbo.C_Blup_PLTyp(v.pl1, v.kr1, v.pl2, v.kr2, v.pl3, v.kr3, v.pl4, v.kr4);

	-- pridanie starych krav z banky bykov
	merge temp_vsetky_kravy as k
	using (SELECT  
		a.ANIMALCODE COLLATE SQL_Latin1_General_Cp1251_CS_AS AS CISKRAVY, 
		a.BORNDATE DATNAR, 
		CASE WHEN a1.NEWANIMALCODE IS NULL THEN a1.ANIMALCODE ELSE a1.NEWANIMALCODE END AS OUSCIS, 
		CASE WHEN a2.NEWANIMALCODE IS NULL THEN a2.ANIMALCODE ELSE a2.NEWANIMALCODE END AS MA, 
		plis.dbo.C_Blup_PLTyp(c.RACE1, c.RACE1_RATE, c.RACE2, c.RACE2_RATE, c.RACE3, c.RACE3_RATE, c.RACE4, c.RACE4_RATE) as PTYP

		FROM            bankabykov.dbo.ANIMAL AS a LEFT OUTER JOIN
								 bankabykov.dbo.CATTLE as c ON a.ANIMAL_ID = c.ANIMAL_ID LEFT OUTER JOIN
								 bankabykov.dbo.ANIMAL AS a2 ON a.MOTHER = a2.ANIMAL_ID LEFT OUTER JOIN
								 bankabykov.dbo.ANIMAL AS a1 ON a.FATHER = a1.ANIMAL_ID 
		WHERE a.animal_id in (SELECT max(a.ANIMAL_ID) FROM bankabykov.dbo.ANIMAL AS a WHERE a.sex = 2 /*and len(a.ANIMALCODE) = 14*/ group by a.ANIMALCODE)) as v
	on k.CISKRAVY = v.CISKRAVY
	when not matched then insert
	(CISKRAVY, DATNAR, OUSCIS, MA, PTYP)
	values 
	(v.CISKRAVY, v.DATNAR, v.OUSCIS, v.MA, v.PTYP)
	--when matched then update set
	--	k.datnar = case when k.datnar is null then v.datnar else k.datnar end,
	--	--k.ouscis = case when k.ouscis is null then dbo.C_aktual_zisti_USCISBYKA(v.oteclin, v.otecreg) else k.ouscis end,
	--	--k.ma = case when k.ma is null then v.matka else k.ma end,
	--	--k.ptyp = case when k.ptyp is null then dbo.C_Blup_PLTyp(v.pl1, v.kr1, v.pl2, v.kr2, v.pl3, v.kr3, v.pl4, v.kr4) else k.ptyp end;
	--	--k.datnar = v.datnar,
	--	k.ouscis = case when k.ouscis is null then v.ouscis else k.ouscis end,
	--	k.ma = case when k.ma is null then v.ma else k.ma end,
	--	k.ptyp = case when k.ptyp is null then v.ptyp else k.ptyp end
	;	

	EXECUTE @RC = [dbo].[C_blup_rodokmeneTXT_H] 

	EXECUTE @RC = [dbo].[C_blup_rodokmeneTXT_S] 

	EXECUTE @RC = [dbo].[C_blup_rodokmeneTXT_P] 


	IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_vsetky_kravy'))
		drop table temp_vsetky_kravy

end
go

-- =============================================
-- Author:		Vladimir Durch
-- Create date: 11.01.2016
-- Update     : 14.11.2017 - Priamo podla plemena - vid plems, alebo dopocitat lubovolne plemeno
--						   - nespravne urcenie kodu, - chyba v zapise premennej @podiel -> @podiel1
--	                       - oprava - 'len' nahradeny 'datalength', vid problem s medzerami v len...
--									
--				20.11.2017 - Opraveny podiel na min 11, kde pod tuto hranicu sa plemeno rozdeli podla fandu k ostatnym
--								- Ak je podiel krvi pod 11 -> tj 12.5/2.. tak sa pripocita k predloslemu plemenu..
--								- Ak je pkrv2 < 11 tak pkrv1 = 100 a pkrv2 = 0
--								- Ak je prkv3 < 11 tak pkrv1 += pkrv3/2 a pkrv2 += pkrv3/2 a pkrv3 = 0
--								- Ak je prkv4 < 11 tak pkrv1 += pkrv4/2 a pkrv2 += pkrv4/2 a pkrv4 = 0

-- Description:	Vypocet plemena potomka na zaklade rodicov (barana a bahnice)

-- Source	  : FAND:  SLOVCE -> PRESUNY -> P: VypPlem1  (30 riadok)
-- =============================================
CREATE FUNCTION [dbo].[S_vypocet_plem_potomok_funkcia2]
(
	@plemOtec char(10),
	@plemMatka char(10)	
)
RETURNS varchar(10)
AS
BEGIN
			-- Ak je viac plemien ako 4? podla coho ich spocitat a zoradit?
		-- plemeno pod 11 sa pripocita k tym ostatnym plemenam nad 11...
		--use durech_db

		--drop table @table_podiel
		--drop table @table_podiel2


		--declare @menovka varchar(8) = 'C '

		declare @otec char(10) = @plemOtec
		declare @matka char(10) = @plemMatka
		declare @menovka varchar(8) --= 'A B C '
		declare @chov char(9)

		if (@otec = '' or @otec is null or len(@otec) <> 10)
		and (@matka = '' or @matka is null or len(@matka) <> 10) 
			return NULL
		

		----PLEM ci PLEMS <<<< ???? tak PLEM
		----set @otec = (select PLEMs as @otec from SM_BARAN where BARCIS = @BarCis)
		--select @otec = PLEM from SM_BARAN where BARCIS = @BarCis
		----set @matka = (select PLEMs from SM_BAHNICA where BAHCIS = @BahCis)
		--select @matka = PLEM, @chov = KROKR + PODNIK + STADO from SM_BAHNICA where BAHCIS = @BahCis

		--plemeno menovky
		set @menovka = (select plem from NM_OVDETAIL where 
				--KRAJ = substring(@chov, 1,1)
				--and OKRES = substring(@chov, 2,2)
				--and PODNIK = substring(@chov, 4,3)
				--and chov = substring(@chov, 7,3)
				KRAJ = substring(@chov, 1,1)
				and OKRES = substring(@chov, 2,2)
				and PODNIK = substring(@chov, 4,3)
				and chov = substring(@chov, 7,3)
		)

		declare  @table_podiel table
		(
			plemeno char(2),
			podiel decimal(5,2),
			menovka decimal(1,0),	-- ak je v plemene na menovke chovu tak =1, inak =0
			rodic decimal(1,0),		-- ak je v plemene otca tak =2, inak je v plemene matky =1
			priorita decimal(2,0)
		)

		declare @table_podiel2 table
		(
			plemeno char(2),
			podiel decimal(5,2),
			menovka decimal(1,0),	-- ak je v plemene na menovke chovu tak =1, inak =0
			rodic decimal(1,0),		-- ak je v plemene otca tak =2, inak je v plemene matky =1, ak obaja tak =3
			priorita decimal(2,0)
		)

		--declare @matka varchar(10) = 'AMC     02'
		--declare @otec varchar(10) = 'C       00'
		--declare @matka varchar(10) = 'AMC A B 14'
		--declare @otec varchar(10) = 'C A E D 14'

		declare @perc1 decimal(5,2)
		declare @perc2 decimal(5,2)
		declare @perc3 decimal(5,2)
		declare @perc4 decimal(5,2)

		select @perc1 = percplem1,
				@perc2 = percplem2,
				@perc3 = percplem3,
				@perc4 = percplem4 from SC_PodKrvi where CISKOD = SUBSTRING(@matka, 9, 10)



		insert into @table_podiel 
		values (SUBSTRING(@matka, 1, 2), @perc1, 0, 2, 5),
				(SUBSTRING(@matka, 3, 2), @perc2, 0, 2, 6),
				(SUBSTRING(@matka, 5, 2), @perc3, 0, 2, 7),
				(SUBSTRING(@matka, 7, 2), @perc4, 0, 2, 8)


		select @perc1 = percplem1,
				@perc2 = percplem2,
				@perc3 = percplem3,
				@perc4 = percplem4 from SC_PodKrvi where CISKOD = SUBSTRING(@otec, 9, 10)

		insert into @table_podiel 
		values (SUBSTRING(@otec, 1, 2), @perc1, 0, 1, 1),
				(SUBSTRING(@otec, 3, 2), @perc2, 0, 1, 2),
				(SUBSTRING(@otec, 5, 2), @perc3, 0, 1, 3),
				(SUBSTRING(@otec, 7, 2), @perc4, 0, 1, 4)

		update @table_podiel 
		set menovka = 0

		--nastavenie menovky podla plemena v menovke
		update @table_podiel 
		set menovka = 1
		where CHARINDEX(plemeno, @menovka) <> 0 


		delete from @table_podiel
		where plemeno = '  '


		--Spojenie rovnakych plemien a ich zotriedenie 
		insert into @table_podiel2
		select * from (
		select plemeno, sum(podiel) /2 as podiel, sum(menovka) as menovka, sum(rodic) as  rodic, min(priorita) as priorita
		from @table_podiel
		group by plemeno
		) as t
		order by podiel desc, menovka desc, rodic desc, priorita asc


		--select * from @table_podiel
		--select * from @table_podiel2

		delete from @table_podiel2
		where plemeno not in (select top(4) plemeno from @table_podiel2)

		declare @podiel int = 11;

		declare @pocet decimal(5,2) = (select count(*) from @table_podiel2 where podiel >= @podiel)
		declare @sum_podiel decimal(5,2) = (select sum(podiel) from @table_podiel2 where podiel >= @podiel)

		if (@pocet > 2) begin set @pocet = 2 end

		declare @zvysok decimal(5,2) = (100 - @sum_podiel) / @pocet

		-- Ak je podiel krvi pod 11 -> tj 12.5/2.. tak sa pripocita k predloslemu plemenu..
		-- Ak je pkrv2 < 11 tak pkrv1 = 100 a pkrv2 = 0
		-- Ak je prkv3 < 11 tak pkrv1 += pkrv3/2 a pkrv2 += pkrv3/2 a pkrv3 = 0
		-- Ak je prkv4 < 11 tak pkrv1 += pkrv4/2 a pkrv2 += pkrv4/2 a pkrv4 = 0

		update @table_podiel2
		set podiel = 0
		where podiel < @podiel

		update @table_podiel2
		set podiel = podiel + (@zvysok)
		where podiel <> 0
		and plemeno in (select top 3 plemeno from @table_podiel2)


		--select * from @table_podiel2

		--declare @test float = 57	--31.25

		--select p.* from SC_PodKrvi p
		--left join SC_PodKrvi k on p.CISKOD = (k.CISKOD + 1)
		--where @test between p.percplem1 and k.percplem1 
		--and (p.percplem1


		set @pocet = (select count(*) from @table_podiel2)

		declare @kod varchar(2)

		declare @podiel1 decimal(5,2) = (select top 1 podiel from @table_podiel2)
		declare @podiel2 decimal(5,2) = (select top 1 podiel from @table_podiel2 where podiel not in (select top 1 podiel from @table_podiel2))

				if(@pocet = 1)
		begin
			set @kod = '00'
		end
		if (@pocet = 2)
		begin
				 if (@podiel1 > 81) set @kod = '01'
			else if (@podiel1 > 69) set @kod = '02'
			else if (@podiel1 > 56) set @kod = '03'
			else set @kod = '04'
		end
		else if(@pocet = 3)
		begin
				 if (@podiel1 > 69) set @kod = '05'
			else if (@podiel1 > 56) set @kod = '06'
			else if (@podiel1 > 44 and @podiel2 > 31) set @kod = '07'
			else if (@podiel1 > 44 and @podiel2 <= 31 ) set @kod = '08'
			else set @kod = '09'

		end
		else if(@pocet = 4)
		begin
				 if (@podiel1 > 56) set @kod = '10'
			else if (@podiel1 > 44) set @kod = '11'
			else if (@podiel1 > 31 and @podiel2 > 31) set @kod = '12'
			else if (@podiel1 > 31 and @podiel2 <= 31 ) set @kod = '13'
			else set @kod = '14'

		end



		DECLARE @vysledok VARCHAR(10)

		SELECT @vysledok = COALESCE(@vysledok + '', '') + plemeno
		FROM @table_podiel2
		--WHERE plemeno = @OrderNumber

		--set @vysledok = (select @vysledok + RIGHT('        ', 8-len(@vysledok)) + @kod )
		set @vysledok = (select @vysledok + RIGHT('        ', 8-datalength(@vysledok)) + @kod )	--Fix 14.11.2017
		--set @vysledok += @kod

		/*select  @vysledok*/

		return @vysledok;
		
END
go





CREATE PROCEDURE [dbo].[C_ZZ_Meso_Telata_CHOV]
	@ParChov varchar(9)

AS
BEGIN
/***************************************
	
	!  please run affter C_aktual_prepocMasoveVazenia !

	using table:CM_Vazenia,CM_Telata

	canging table:CP_Meso_TelataVahy

	used for: Create table were are all vaha for each telata. Used for detail view of Mesove Telata and 
	for taking details for Mesova Krava when she was litlle.

******************************************/


--TRUNCATE TABLE [PLIS].[dbo].CP_Meso_TelataVahy
delete [PLIS].[dbo].CP_Meso_TelataVahy where chovatel = @ParChov

declare @t as varchar(14);
declare @t120 as float;
declare @tp120 as float;
declare @tj120 as float;
declare @t210 as float;
declare @tp210 as float;
declare @tj210 as float;
declare @t365 as float;
declare @tp365 as float;
declare @tj365 as float;
declare @t500 as float;
declare @tp500 as float;
declare @tj500 as float;
declare @hmotnost as float;
declare @prir as float;
declare @zivprir as float;
declare @dniprepoc as int;
declare @hn as int;
declare @c varchar(9);
declare @nar float;
	
	declare telata cursor for
select DISTINCT CISTELATA from PLIS.dbo.CM_Vazenia where cistelata in (select cistelata from plis.dbo.CM_Telata where chovatel = @ParChov)
	
	open telata
	fetch next from telata into @t;

	while @@FETCH_STATUS=0
	begin
		
		declare vaj cursor for
		select HMOTPREPOC,/*PRIR,ZIVPRIR*/ PRIRPREPOC,ZIVPRIRPREPOC,DNIPREPOC
		from plis.dbo.CM_Vazenia
		where CISTELATA=@t
		and DNIPREPOC is not null; 
			
		open vaj
		fetch next from vaj into @hmotnost,@prir,@zivprir,@dniprepoc

		while @@FETCH_STATUS=0
		begin
		set @hn= (select HMOTNAR from plis.dbo.CM_Telata where CISTELATA=@t)
			
			if(@hn is null)
			begin
				set @hn=35;
			end

			if(@dniprepoc=120)
			begin
				set @t120=@hmotnost;
				set @tp120=@prir;
				set @tj120=@zivprir;
			end

			if(@dniprepoc=210)
			begin
				set @t210=@hmotnost;
				set @tp210=@prir;
				set @tj210=@zivprir;
			end

			if(@dniprepoc=365)
			begin
				set @t365=@hmotnost;
				set @tp365=@prir;
				set @tj365=@zivprir;
			end


			if(@dniprepoc=500)
			begin
				set @t500=@hmotnost;
				set @tp500=@prir;
				set @tj500=@zivprir;
			end

			fetch next from vaj into @hmotnost,@prir,@zivprir,@dniprepoc
		end
		close vaj
		deallocate vaj;

		set @c=(select CHOVATEL from plis.dbo.CM_Telata where CISTELATA=@t)
		set @nar=(select HMOTNAR from plis.dbo.CM_Telata where CISTELATA=@t)


		insert into [PLIS].[dbo].CP_Meso_TelataVahy values (@t,@nar,@t120,@tp120,@tj120,@t210,@tp210,@tj210,@t365,@tp365,@tj365,@t500,@tp500,@tj500,@c)


		set @t120 =null;
set @tp120 =null;
set @tj120 =null;
set @t210 =null;
set @tp210 =null;
set @tj210 =null;
set @t365 =null;
set @tp365 =null;
set @tj365 =null;
set @t500 =null;
set @tp500 =null;
set @tj500 =null;



		fetch next from telata into @t;
	end
	
	close telata;
	deallocate telata;
   
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_KozRokNar] 
(
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, 
SUM(1) AS pocet,CASE WHEN Roknar = 0 THEN 0 ELSE sum(datediff(month,DatNar,getdate())) end as Svekmes
FROM    dbo.GM_KOZA
WHERE     (DOVOD = '0') AND (DATVYR IS NULL) AND (KrOkr+Podnik+stado= @chovatel)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar
)
go

CREATE procedure [dbo].[CR_KUMP_CHMlD_MES]
    
	@rok int,
	@mesiac int,
	@CHOV varchar(9) = ''
	--@Vytlacil varchar(10) = null
	
as
begin

	
	select np.NAZOV as podnik, 
		nch.NAZOV as NazovChov,
		kump.*
	
	  



	   FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] as kump 

	   left join plis.dbo.NM_PODNIK as NP
	on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(kump.CHOVATEL,1,6)
	left join NM_CHOVMAS as NCH
	on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = kump.CHOVATEL
	  
	   where (kump.CHOVATEL like @CHOV+'%' or @CHOV is null)	and kump.rok = @rok and kump.mesiac =@mesiac
	   end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PotOtca] 
(	
	-- Add the parameters for the function here
 @pbarcis varchar(8))
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
select KrOkr,stado,LUC,PUC,JedCis,Macis,Datnar,KDPRir from SM_APotomok where otcis=@pBarcis
union  select KrOkr,stado,LUC,PUC,JedCis,Macis,DatNar,KDPRir from SM_Potomok where otcis=@pBarcis
)
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 20.09.2016 
-- Description:	Zoznam chovov Ovce
--				12.05.2016 - TypKU vyhodeny - budu sa brat vsetky, nie len PSSR
--						   - + add ch.TYPZV = '3' pre OVCe
-- =============================================
CREATE PROCEDURE [dbo].[S_aktual_ZoznamChovov]	

AS
BEGIN
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SP_ZoznamChovov]') AND TYPE IN (N'U'))
		DELETE FROM [dbo].SP_ZoznamChovov
		-- drop table [dbo].SP_ZoznamChovov
	ELSE
		CREATE TABLE [dbo].[SP_ZoznamChovov](
			[Chov] [varchar](9) NOT NULL,
			[Nazov] [varchar](25) NULL,
			[StKU] [varchar](5) NULL,
			[PlemSt] [varchar](4) NULL,			
			[UzitZSt] [varchar](30) NULL,
			[PocetBahnic] [int] NULL,
			[PocetBaranov] [int] NULL,			
			[PocetPotomkov] [int] NULL,			
			[Konzulent] [varchar](30) NULL,			
			[Zootechnik] [varchar](30) NULL,
		) ON [PRIMARY]


	
DECLARE 
		@chovatel as varchar(9),	
		@kraj as varchar(1),
		@okres as varchar(2),
		@podnik as varchar(3),
		@chov as varchar(3),
				
		@STKU as varchar(5),

--		@typ as varchar(4),		
		@pocBah as int,
		@pocBar as int,
		@pocPot as int,
		@zootechnik as varchar(30),
		@konzulent as varchar(30),
		@nazov as varchar(25)

	declare @UzitZSt varchar(30)
	declare @PlemSt varchar(2)
	declare @UzitZam varchar(1)

	declare zviera cursor  for
	SELECT ch.kraj, ch.okres, ch.podnik, ch.chov--, *
	FROM NM_CHOVMAS AS ch
    inner join NM_OVDETAIL as mimo on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = mimo.kraj+mimo.okres+mimo.podnik+mimo.chov 
    where --ch.ZRUS is null --and (mimo.PRIZNAK = '01' or ch.TYPZV = '1') 
	ch.ZRUS is null  and DATZRUS is null and ch.TYPZV = '3' -- and mimo.VykKu = 1 --{12.05.2017 vykKu vyhodeny}

	open zviera	
	fetch next from zviera into @kraj, @okres, @podnik, @chov;
	WHILE @@FETCH_STATUS = 0 
		begin
			SET @chovatel = @kraj + @okres + @podnik + @chov;

			SET @nazov = (SELECT NAZOVSKR FROM NM_PODNIK p
							WHERE p.KRAJ = @kraj 
								and p.OKRES = @okres
								and p.PODNIK = @podnik)

	


  -- Uzitkove zameranie stada a plemeno stada z menovky
	(select @UzitZSt = (select popis from [NC_UzitZam] u where u.UZITZST = n.uzitzst),  @PlemSt = substring(plem, 1, 2),
		@STKU = (case when STKU = 2 then 'RCH' 
			  when STKU = 3 then 'ÚCH'
			  when STKU = 1 and EXPCHOV = 'E' then 'ŠCH E'
			  else 'ŠCH' end)
		from NM_OVDETAIL n
		where KRAJ = @kraj
			and OKRES = @okres
			and PODNIK = @podnik
			and chov = @chov
	)

	
	--set @UzitZam = (
	--	select UZITZAM 
	--	from SC_Plemena
	--	where KODPL2 = @PlemSt
	--)
	
	----print @UzitZam

	--/* Typ zamerania stada */
	--declare @TypZam varchar(1) = (
	--select 
	--case when (@PlemSt in ('M ', 'AM', 'FM', 'BG', 'RM', 'NC', 'VR', 'OD', 'CH', 'T ', 'R ', 'V ')) then '3'
	--	when @PlemSt in ('AF','VF') then '4'
	--	when @UzitZam = '1' and @UzitZSt = '4' or @UzitZam = '4' then '1'
	--	when @UzitZam = '1' and @UzitZSt <> '4' or @UzitZam = '2' then '2'
	----begin
	--end
	--)




			SET @pocPot = (SELECT count (*) 
							from SP_Ovecky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab in ('SM_Potomok','SM_APotomok') )

			SET @pocBah = (SELECT count (*) 
							from SP_Ovecky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab = 'SM_Bahnica' )

			SET @pocBar = (SELECT count (*) 
							from SP_Ovecky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab = 'SM_Baran' )

			if (@pocPot is NULL)
				SET @pocPot = 0;		

			if (@pocBah is NULL)
				SET @pocBah = 0;

			if (@pocBar is NULL)
				SET @pocBar = 0;


			--SET @zootechnik = (SELECT top 1 (case when TITULPRED is not null then TITULPRED + ' ' else '' end) + Meno + ' ' + priezvisko + 
			--								(case when TITULZA is not null then ' ' + TITULZA else '' end)
			SET @zootechnik = (SELECT top 1 Priezvisko + ' ' + Meno + (case when TITULPRED is not null then ', ' + TITULPRED else '' end) +
											(case when TITULZA is not null then ' ' + TITULZA else '' end)
	            FROM NM_Kontakt k  LEFT OUTER JOIN		            
		            NM_OVDETAIL hd ON (hd.CISZOO = k.id)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)
	            
			SET @konzulent = (SELECT top 1 Priezvisko + ' ' + Meno + (case when TITULPRED is not null then ', ' + TITULPRED else '' end) +
											(case when TITULZA is not null then ' ' + TITULZA else '' end)
	            FROM NM_Kontakt k  LEFT OUTER JOIN		            
		            NM_OVDETAIL hd ON (hd.CISKON = k.id)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)


			 if (--@typKU != 'X' and @typKU is not null and 
				@chovatel not in (select chov from SP_ZoznamChovov where chov = @chovatel))
			 begin
					insert into SP_ZoznamChovov					
					values ( @chovatel, @nazov, @STKU, @PlemSt, @UzitZSt,  @pocBah, @PocBar, @pocPot, @konzulent, @zootechnik)
			end
			fetch next from zviera into @kraj, @okres, @podnik, @chov;
		end
	close zviera;
	deallocate zviera;




END

--		exec [S_aktual_ZoznamChovov]

--	drop table SP_ZoznamChovov

--	select t.* from SP_ZoznamChovov t order by chov


--INNER JOIN NM_PRACCHOV AS pch  ON pch.KRAJ + pch.OKRES + pch.PODNIK + pch.CHOV = t.Chov
--INNER JOIN aspnetdb.dbo.aspnet_Users AS u 
--INNER JOIN aspnetdb.dbo.User_PRACKU AS up ON u.UserId = up.UserId 
--INNER JOIN NM_PRACKU AS p ON up.IDPRACKU = p.IDPRACKU ON pch.IDPRACKU = p.IDPRACKU 
--            AND u.UserName = 'durech'


go

-- =============================================
-- Author:		David Florek
-- Create date:	19.10.2017
-- Description:	Prida dotacie do uctu.
-- =============================================
CREATE PROCEDURE [dbo].[EC_PridajDotacie]
	@suma decimal(12, 2),
	@mesiace int,
	@ucet varchar(10),
	@rok int,
	@login varchar(255),
	@typZmeny varchar(100) = 'Pridanie dotácie'
AS
BEGIN
	declare @id int;

	if (select count(*) from EC_UctyDotacie where Ucet = @ucet and Rok = @rok) = 0
	begin
		insert into EC_UctyDotacie (Suma, OstMesiace, Ucet, Rok, PoslednaZmena)
		values (@suma, @mesiace, @ucet, @rok, GETDATE());

		select @id = SCOPE_IDENTITY();
	end else
	begin
		select @id = MAX(ID) from EC_UctyDotacie where Ucet = @ucet and Rok = @rok;

		update EC_UctyDotacie set Suma = Suma + @suma, OstMesiace = OstMesiace + @mesiace, PoslednaZmena = GETDATE() where ID = @id;
	end
	
	insert into EC_UctyDotacie_Hist (ID, Suma, OstMesiace, TypZmeny, Zmenil, DatumZmeny)
	values (@id, @suma, @mesiace, @typZmeny, @login, GETDATE());
END
go



-- !!!!! TATO PROCEDURA BUDE NAHRADENA FUNKCIOU C_aktual_plem_potomok_funkcia  !!!!!

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 03.8.2011
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky (+12.5 Slovenske strakate)
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_plem_potomok]
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)
	
AS
BEGIN
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
	
	declare @podiely table 
	(		
		PL [varchar](2),
		KR [decimal](5,2),
		Pr [int]
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2),

	@HR_M [decimal](5,2),
	@HR_O [decimal](5,2)
	
	select @PL1_O = PL1, 
		@KR1_O = KR1, 
		@PL2_O = PL2, 
		@KR2_O = KR2, 
		@PL3_O = PL3, 
		@KR3_O = KR3, 
		@PL4_O = PL4, 
		@KR4_O = KR4, 
		@PL5_O = PL5
	from CM_Byci 
	where USCISLO = @USCISLO_O
	/*
	select @PL1_M = PL1, 
		@KR1_M = KR1, 
		@PL2_M = PL2, 
		@KR2_M = KR2, 
		@PL3_M = PL3, 
		@KR3_M = KR3, 
		@PL4_M = PL4, 
		@KR4_M = KR4, 
		@PL5_M = PL5
	from CM_Krava
	where CISKRAVY = @USCISLO_M
	*/
	
	select top 1 @PL1_M = c.PL1, 
		@KR1_M = c.KR1, 
		@PL2_M = c.PL2, 
		@KR2_M = c.KR2, 
		@PL3_M = c.PL3, 
		@KR3_M = c.KR3, 
		@PL4_M = c.PL4, 
		@KR4_M = c.KR4, 
		@PL5_M = c.PL5
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		SELECT 
			k.PL1 AS PL1, 
			k.KR1 AS KR1, 
			k.PL2 AS PL2, 
			k.KR2 AS KR2, 
			k.PL3 AS PL3, 
			k.KR3 AS KR3, 
			k.PL4 AS PL4, 
			k.KR4 AS KR4, 
			k.PL5 AS PL5 
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			AND k.DOVVYR IS NULL
			AND k.CHOVATEL = @CHOVATEL 
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		SELECT
			t.PL1 AS PL1, 
			t.KR1 AS KR1, 
			t.PL2 AS PL2, 
			t.KR2 AS KR2, 
			t.PL3 AS PL3, 
			t.KR3 AS KR3, 
			t.PL4 AS PL4, 
			t.KR4 AS KR4, 
			t.PL5 AS PL5 
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 2)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 3)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 4)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 5)			
		end			
	end
		
	--zistenie, kolko plemien H a R ma otec
	set @HR_O = (select COUNT(*) from @podiely where PL in ('H','R'))
	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 7)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 8)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 9)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 10)			
		end			
	end

	--zistenie, kolko plemien H a R ma matka
	set @HR_M = (select COUNT(*) from @podiely where PL in ('H','R')) -  @HR_O

	
	--ak X, nastav najvysiu prioritu
	if (select COUNT(*) from @podiely where PL = 'X') > 0	
	begin
		update @podiely
		set Pr = '100'
		where PL = 'X'
	end

	
	--Ak je vela plemien, tak H a R sa spoja, ak sa tam nachadzaju
	--Ale ak jedno zviera obsahuje aj H aj R, tak ich nespajaj
	if ((select COUNT(distinct pl) from @podiely where KR > 6) > 5
	and  (@HR_O <> 2 and @HR_M <> 2))
	begin
		update @podiely
		set PL = 'H'
		where PL = 'R'
	end
	
	-- scitanie plemien a usporiadanie na zaklade priority podla rodica
	--insert @podiely_usp 
	--select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	--GROUP by PL
	----order by SUM(isnull(KR, 0)) desc, PL asc
	insert @podiely_usp 
	select PL, ROUND(sum(isnull(KR, 0)),1) as KR from @podiely	
	GROUP by PL
	order by KR desc, Min(Pr) asc--, Min(ID) asc	
	

	--set @zvPlem = (select 0)
	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		--update @podiely_usp
		--set KR = 0, PL = null
		--where KR < @zvPlem

		DELETE FROM  @podiely_usp
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		-- prirad dalsie plemena > 4 k prvemu...
		if @KR_pom < 100
			set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR2_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL		

	select '              ' AS Potomok, 
	@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5
	--select @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	/*
	select 'Otec', @PL1_O, @KR1_O, @PL2_O, @KR2_O, @PL3_O, @KR3_O, @PL4_O, @KR4_O, @PL5_O
	select 'Matka', @PL1_M, @KR1_M, @PL2_M, @KR2_M, @PL3_M, @KR3_M, @PL4_M, @KR4_M, @PL5_M
	select 'Potomok', @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	*/
	return (0)
	
END


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PocKozMCap]
(	
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT     TOP (100) PERCENT p.KROKR, p.PODNIK, p.STADO, v.roknar, STR(YEAR(GETDATE()) - v.roknar, 2) AS vek, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonmkoz < v.pocmkoz / 2)  
 THEN 1 ELSE 0 END) AS pocmkoz, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonmkoz < v.pocmkoz / 2) 
 THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesmkoz, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmcap < v.pocmcap / 2)
 THEN 1 ELSE 0 END) AS pocmcap, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmcap < v.pocmcap / 2)  
  THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesmcap
FROM         dbo.GM_POTOMOK AS p LEFT OUTER JOIN
     dbo.View_GP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar 
WHERE p.krokr+p.podnik+p.stado = @chovatel
GROUP BY p.KROKR, p.PODNIK, p.STADO, v.RokNar
ORDER BY p.KROKR, p.PODNIK, p.STADO, v.RokNar
)
go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Update:		10.04.2015 - 210 najblizsia
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[C_VZ_ChovMesovePlemena](@param1 int)
AS
BEGIN

/**************************************************************

! PLEASE RUN AFFTER C_VZ_MEDZIOBDOBIEMESOVE AND C_AKTUAL_PREPOCMASOVEVAZENIA PROCEDURE !

using table:NM_Register,CM_Krava,NM_CHOVMAS,CM_Telata,NM_Podnik,NC_KRAJ,NC_OKRES

using views:View_CP_MedziObdMeso

changing table:CP_ChovatelMesoPlemena

used for: creating table used for results in report : volna zona -> Kontrola úžitkovosti mäsových plemien 

**************************************************************/

DECLARE @chov_id VARCHAR(9);

DECLARE @GLperc float;
DECLARE @Aperc float;
DECLARE @Bperc float;
DECLARE @Dperc float;
DECLARE @Fperc float;
DECLARE @Gperc float;
DECLARE @Hperc float;
DECLARE @Jperc float;
DECLARE @Lperc float;
DECLARE @Mperc float;
DECLARE @Nperc float;
DECLARE @Pperc float;
DECLARE @Rperc float;
DECLARE @Sperc float;
DECLARE @Tperc float;
DECLARE @Xperc float;
DECLARE @AAperc float;
DECLARE @ARperc float;
DECLARE @BAperc float;
DECLARE @BBperc float;
DECLARE @BRperc float;
DECLARE @BSperc float;
DECLARE @CIperc float;
DECLARE @GAperc float;
DECLARE @HEperc float;
DECLARE @HLperc float;
DECLARE @CHperc float;
DECLARE @MAperc float;
DECLARE @MBperc float;
DECLARE @PIperc float;
DECLARE @SBperc float;
DECLARE @SDperc float;
DECLARE @SGperc float;
DECLARE @SHperc float;
DECLARE @SLperc float;
DECLARE @SMperc float;
DECLARE @SVperc float;
DECLARE @WGperc float;
DECLARE @ZBperc float;

declare @pl1 varchar(2);
declare @pl2 varchar(2);
declare @pl3 varchar(2);
declare @pl4 varchar(2);
declare @pl5 varchar(2);

declare @kr1 float;
declare @kr2 float;
declare @kr3 float;
declare @kr4 float;
declare @kr5 float;

DECLARE @UCISLO VARCHAR(14);

declare @celkPoc int;
declare @aktPoc int;
declare @plmax1 float;
declare @plmax1Pismeno varchar(2);
declare @plmax2 float;
declare @plmax2Pismeno varchar(2);
declare @plmax3 float;
declare @plmax3Pismeno varchar(2);
DECLARE @CIS_KRAVA VARCHAR(14);
DECLARE @MEDZI INT;
DECLARE @prznakku INT;
declare @dovvyr INT;
DECLARE @KRAVI_MATKI INT;
DECLARE @MEDZI2 INT;

SET @MEDZI2 =0;

SET @KRAVI_MATKI=0;
TRUNCATE TABLE CP_ChovatelMesoPlemena

DECLARE cur_Chovatel CURSOR FOR 
select distinct K.CHOVATEL
from CM_Krava AS K
inner join NM_CHOVMAS AS C
ON K.CHOVATEL=(C.KRAJ+C.OKRES+C.PODNIK+C.CHOV)
and (C.ZRUS IS NULL or c.ZRUS='A')
AND K.PRIZNAKKU='2' ;

select  @celkPoc=count(*) from NM_Register;
set @aktPoc = 0;
SET @plmax1 =0;
SET @plmax1Pismeno ='';
SET @plmax2 =0;
SET @plmax2Pismeno ='';
SET @plmax3 =0;
SET @plmax3Pismeno ='';
SET @CIS_KRAVA='';
SET @MEDZI=0;

OPEN cur_Chovatel  
FETCH NEXT FROM cur_Chovatel INTO @chov_id 

WHILE @@FETCH_STATUS = 0 
BEGIN  
--print @chov_id;

       SET @MEDZI=0;
	   SET @KRAVI_MATKI=0;
	   SET @GLperc = 0;
       set @Aperc = 0;
	   set @Bperc = 0;
	   SET @Dperc = 0;
	   SET @Fperc = 0;
	   SET @Gperc = 0;
	   SET @Hperc = 0;
	   SET @Jperc = 0;
	   SET @Lperc = 0;
	   SET @Mperc = 0;
	   SET @Nperc = 0;
	   SET @Pperc = 0;
	   SET @Rperc = 0;
	   SET @Sperc = 0;
	   SET @Tperc = 0;
	   SET @Xperc = 0;
	   SET @AAperc = 0;
	   SET @ARperc = 0;
	   SET @BAperc = 0;
	   SET @BBperc = 0;
	   SET @BRperc = 0;
	   SET @BSperc = 0;
	   SET @CIperc = 0;
	   SET @GAperc = 0;
	   SET @HEperc = 0;
	   SET @HLperc = 0;
	   SET @CHperc = 0;
	   SET @MAperc = 0;
	   SET @MBperc = 0;
	   SET @PIperc = 0;
	   SET @SBperc = 0;
	   SET @SDperc = 0;
	   SET @SGperc = 0;
	   SET @SHperc = 0;
	   SET @SLperc = 0;
	   SET @SMperc = 0;
	   SET @SVperc = 0;
	   SET @WGperc = 0;
	   SET @ZBperc = 0;
	    set @aktPoc = @aktPoc + 1;

------------------------- vibera kravy pre kazdy chovatel


		SET @plmax1 =0;
		SET @plmax1Pismeno ='';
		SET @plmax2 =0;
		SET @plmax2Pismeno ='';
		SET @plmax3 =0;
		SET @plmax3Pismeno ='';
	
				DECLARE cur_kravy CURSOR FOR  
				SELECT pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5,CISKRAVY
				FROM CM_Krava
				where CHOVATEL = @chov_id
				and PRIZNAKKU='2'
				--and DOVVYR IS NULL;

	   open cur_kravy;
	   FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	   WHILE @@FETCH_STATUS = 0 
	    BEGIN 
		 SET @kr5=100-(@kr1+@kr2+@kr3+@kr4);
	
				if @pl1 ='GL'SET @GLperc= @GLperc+@kr1;
				if @pl1 ='A' set @Aperc = @Aperc+@kr1;
				if @pl1 ='B' set @Bperc = @Bperc+@kr1;
				if @pl1 ='D' set @Dperc = @Dperc+@kr1;
				if @pl1 ='F' set @Fperc = @Fperc+@kr1;
				if @pl1 ='G' set @Gperc = @Gperc+@kr1;
				if @pl1 ='H' set @Hperc = @Hperc+@kr1;
				if @pl1 ='J' set @Jperc = @Jperc+@kr1;
				if @pl1 ='M' set @Mperc = @Mperc+@kr1;
				if @pl1 ='L' set @Lperc = @Lperc+@kr1;
				if @pl1 ='N' set @Nperc = @Nperc+@kr1;
				if @pl1 ='P' set @Pperc = @Pperc+@kr1;
				if @pl1 ='R' set @Rperc = @Rperc+@kr1;
				if @pl1 ='S' set @Sperc = @Sperc+@kr1;
				if @pl1 ='T' set @Tperc = @Tperc+@kr1;
				if @pl1 ='X' set @Xperc = @Xperc+@kr1;
				if @pl1='AA' set @AAperc= @AAperc+@kr1;
				if @pl1='AR' set @ARperc= @ARperc+@kr1;
				if @pl1='BA' set @BAperc= @BAperc+@kr1;
				if @pl1='BB' set @BBperc= @BBperc+@kr1;
				if @pl1='BR' set @BRperc= @BRperc+@kr1;
				if @pl1='BS' set @BSperc= @BSperc+@kr1;
				if @pl1='CI' set @CIperc= @CIperc+@kr1;
				if @pl1='GA' set @GAperc= @GAperc+@kr1;
				if @pl1='HE' set @HEperc= @HEperc+@kr1;
				if @pl1='HL' set @HLperc= @HLperc+@kr1;
				if @pl1='CH' set @CHperc= @CHperc+@kr1;
				if @pl1='MA' set @MAperc= @MAperc+@kr1;
				if @pl1='MB' set @MBperc= @MBperc+@kr1;
				if @pl1='PI' set @PIperc=@PIperc+@kr1;
				if @pl1='SB' set @SBperc=@SBperc+@kr1;
				if @pl1='SD' set @SDperc=@SDperc+@kr1;
				if @pl1='SG' set @SGperc=@SGperc+@kr1;
				if @pl1='SH' set @SHperc=@SHperc+@kr1;
				if @pl1='SL' set @SLperc=@SLperc+@kr1;
				if @pl1='SM' set @SMperc=@SMperc+@kr1;
				if @pl1='SV' set @SVperc=@SVperc+@kr1;
				if @pl1='WG' set @WGperc=@WGperc+@kr1;
				if @pl1='ZB' set @ZBperc=@ZBperc+@kr1;
-------------------------------------------------------------
				if @pl2 = 'GL' set @GLperc =  @GLperc+@kr2;
				if @pl2 = 'A' set @Aperc =  @Aperc+@kr2;
				if @pl2 = 'B' set @Bperc =  @Bperc+@kr2;
				if @pl2 = 'D' set @Dperc =  @Dperc+@kr2;
				if @pl2 = 'F' set @Fperc =  @Fperc+@kr2;
				if @pl2 = 'G' set @Gperc =  @Gperc+@kr2;
				if @pl2 = 'H' set @Hperc =  @Hperc+@kr2;
				if @pl2 = 'J' set @Jperc =  @Jperc+@kr2;
				if @pl2 = 'L' set @Lperc =  @Lperc+@kr2;
				if @pl2 = 'M' set @Mperc =  @Mperc+@kr2;
				if @pl2 = 'N' set @Nperc =  @Nperc+@kr2;
				if @pl2 = 'P' set @Pperc =  @Pperc+@kr2;
				if @pl2 = 'R' set @Rperc =  @Rperc+@kr2;
				if @pl2 = 'S' set @Sperc =  @Sperc+@kr2;
				if @pl2 = 'T' set @Tperc =  @Tperc+@kr2;
				if @pl2 = 'X' set @Xperc =  @Xperc+@kr2;
				if @pl2= 'AA' set @AAperc=@AAperc+@kr2;
				if @pl2='AR' set   @ARperc=@ARperc+@kr2;
				if @pl2='BA' set   @BAperc=@BAperc+@kr2;
				if @pl2='BB' set   @BBperc=@BBperc+@kr2;
				if @pl2='BR' set   @BRperc=@BRperc+@kr2;
				if @pl2='BS' set   @BSperc=@BSperc+@kr2;
				if @pl2='CI' set   @CIperc=@CIperc+@kr2;
				if @pl2='GA' set   @GAperc=@GAperc+@kr2;
				if @pl2='HE' set   @HEperc=@HEperc+@kr2;
				if @pl2='HL' set   @HLperc=@HLperc+@kr2;
				if @pl2='CH' set   @CHperc=@CHperc+@kr2;
				if @pl2='MA' set   @MAperc=@MAperc+@kr2;
				if @pl2='MB' set   @MBperc=@MBperc+@kr2;
				if @pl2='PI' set   @PIperc=@PIperc+@kr2;
				if @pl2='SB' set   @SBperc=@SBperc+@kr2;
				if @pl2='SD' set   @SDperc=@SDperc+@kr2;
				if @pl2='SG' set   @SGperc=@SGperc+@kr2;
				if @pl2='SH' set   @SHperc=@SHperc+@kr2;
				if @pl2='SL' set   @SLperc=@SLperc+@kr2;
				if @pl2='SM' set   @SMperc=@SMperc+@kr2;
				if @pl2='SV' set   @SVperc=@SVperc+@kr2;
				if @pl2='WG' set   @WGperc=@WGperc+@kr2;
				if @pl2='ZB' set   @ZBperc=@ZBperc+@kr2;
-------------------------------------------------------------
				if @pl3 = 'GL' set @GLperc =  @GLperc+@kr3;
				if @pl3 = 'A' set @Aperc =  @Aperc+@kr3;
				if @pl3 = 'B' set @Bperc =  @Bperc+@kr3;
				if @pl3 = 'D' set @Dperc =  @Dperc+@kr3;
				if @pl3 = 'F' set @Fperc =  @Fperc+@kr3;
				if @pl3 = 'G' set @Gperc =  @Gperc+@kr3;
				if @pl3 = 'H' set @Hperc =  @Hperc+@kr3;
				if @pl3 = 'J' set @Jperc =  @Jperc+@kr3;
				if @pl3 = 'M' set @Mperc =  @Mperc+@kr3;
				if @pl3 = 'N' set @Nperc =  @Nperc+@kr3;
				if @pl3 = 'P' set @Pperc =  @Pperc+@kr3;
				if @pl3 = 'R' set @Rperc =  @Rperc+@kr3;
				if @pl3 = 'S' set @Sperc =  @Sperc+@kr3;
				if @pl3 = 'T' set @Tperc =  @Tperc+@kr3;
				if @pl3 = 'X' set @Xperc =  @Xperc+@kr3;
				if @pl3= 'AA' set @AAperc=@AAperc+@kr3;
				if @pl3='AR' set   @ARperc=@ARperc+@kr3;
				if @pl3='BA' set   @BAperc=@BAperc+@kr3;
				if @pl3='BB' set   @BBperc=@BBperc+@kr3;
				if @pl3='BR' set   @BRperc=@BRperc+@kr3;
				if @pl3='BS' set   @BSperc=@BSperc+@kr3;
				if @pl3='CI' set   @CIperc=@CIperc+@kr3;
				if @pl3='GA' set   @GAperc=@GAperc+@kr3;
				if @pl3='HE' set   @HEperc=@HEperc+@kr3;
				if @pl3='HL' set   @HLperc=@HLperc+@kr3;
				if @pl3='CH' set   @CHperc=@CHperc+@kr3;
				if @pl3='MA' set   @MAperc=@MAperc+@kr3;
				if @pl3='MB' set   @MBperc=@MBperc+@kr3;
				if @pl3='PI' set   @PIperc=@PIperc+@kr3;
				if @pl3='SB' set   @SBperc=@SBperc+@kr3;
				if @pl3='SD' set   @SDperc=@SDperc+@kr3;
				if @pl3='SG' set   @SGperc=@SGperc+@kr3;
				if @pl3='SH' set   @SHperc=@SHperc+@kr3;
				if @pl3='SL' set   @SLperc=@SLperc+@kr3;
				if @pl3='SM' set   @SMperc=@SMperc+@kr3;
				if @pl3='SV' set   @SVperc=@SVperc+@kr3;
				if @pl3='WG' set   @WGperc=@WGperc+@kr3;
				if @pl3='ZB' set   @ZBperc=@ZBperc+@kr3;
				if @pl3='L' set   @Lperc=@Lperc+@kr3;
-------------------------------------------------------------
				if @pl4 = 'GL' set @GLperc =  @GLperc+@kr4;
				if @pl4 = 'A' set @Aperc =  @Aperc+@kr4;
				if @pl4 = 'B' set @Bperc =  @Bperc+@kr4;
				if @pl4 = 'D' set @Dperc =  @Dperc+@kr4;
				if @pl4 = 'F' set @Fperc =  @Fperc+@kr4;
				if @pl4 = 'G' set @Gperc =  @Gperc+@kr4;
				if @pl4 = 'H' set @Hperc =  @Hperc+@kr4;
				if @pl4 = 'J' set @Jperc =  @Jperc+@kr4;
				if @pl4 = 'M' set @Mperc =  @Mperc+@kr4;
				if @pl4 = 'N' set @Nperc =  @Nperc+@kr4;
				if @pl4 = 'P' set @Pperc =  @Pperc+@kr4;
				if @pl4 = 'R' set @Rperc =  @Rperc+@kr4;
				if @pl4 = 'S' set @Sperc =  @Sperc+@kr4;
				if @pl4 = 'T' set @Tperc =  @Tperc+@kr4;
				if @pl4 = 'X' set @Xperc =  @Xperc+@kr4;
				if @pl4= 'AA' set @AAperc=@AAperc+@kr4;
				if @pl4='AR' set   @ARperc=@ARperc+@kr4;
				if @pl4='BA' set   @BAperc=@BAperc+@kr4;
				if @pl4='BB' set   @BBperc=@BBperc+@kr4;
				if @pl4='BR' set   @BRperc=@BRperc+@kr4;
				if @pl4='BS' set   @BSperc=@BSperc+@kr4;
				if @pl4='CI' set   @CIperc=@CIperc+@kr4;
				if @pl4='GA' set   @GAperc=@GAperc+@kr4;
				if @pl4='HE' set   @HEperc=@HEperc+@kr4;
				if @pl4='HL' set   @HLperc=@HLperc+@kr4;
				if @pl4='CH' set   @CHperc=@CHperc+@kr4;
				if @pl4='MA' set   @MAperc=@MAperc+@kr4;
				if @pl4='MB' set   @MBperc=@MBperc+@kr4;
				if @pl4='PI' set   @PIperc=@PIperc+@kr4;
				if @pl4='SB' set   @SBperc=@SBperc+@kr4;
				if @pl4='SD' set   @SDperc=@SDperc+@kr4;
				if @pl4='SG' set   @SGperc=@SGperc+@kr4;
				if @pl4='SH' set   @SHperc=@SHperc+@kr4;
				if @pl4='SL' set   @SLperc=@SLperc+@kr4;
				if @pl4='SM' set   @SMperc=@SMperc+@kr4;
				if @pl4='SV' set   @SVperc=@SVperc+@kr4;
				if @pl4='WG' set   @WGperc=@WGperc+@kr4;
				if @pl4='ZB' set   @ZBperc=@ZBperc+@kr4;
				if @pl4='L' set   @Lperc=@Lperc+@kr4;
-------------------------------------------------------------
				if @pl5 = 'GL' set @GLperc =  @GLperc+@kr5;
				if @pl5 = 'A' set @Aperc =  @Aperc+@kr5;
				if @pl5 = 'B' set @Bperc =  @Bperc+@kr5;
				if @pl5 = 'D' set @Dperc =  @Dperc+@kr5;
				if @pl5 = 'F' set @Fperc =  @Fperc+@kr5;
				if @pl5 = 'G' set @Gperc =  @Gperc+@kr5;
				if @pl5 = 'H' set @Hperc =  @Hperc+@kr5;
				if @pl5 = 'J' set @Jperc =  @Jperc+@kr5;
				if @pl5 = 'M' set @Mperc =  @Mperc+@kr5;
				if @pl5 = 'N' set @Nperc =  @Nperc+@kr5;
				if @pl5 = 'P' set @Pperc =  @Pperc+@kr5;
				if @pl5 = 'R' set @Rperc =  @Rperc+@kr5;
				if @pl5 = 'S' set @Sperc =  @Sperc+@kr5;
				if @pl5 = 'T' set @Tperc =  @Tperc+@kr5;
				if @pl5 = 'X' set @Xperc =  @Xperc+@kr5;
				if @pl5= 'AA' set @AAperc=@AAperc+@kr5;
				if @pl5='AR' set   @ARperc=@ARperc+@kr5;
				if @pl5='BA' set   @BAperc=@BAperc+@kr5;
				if @pl5='BB' set   @BBperc=@BBperc+@kr5;
				if @pl5='BR' set   @BRperc=@BRperc+@kr5;
				if @pl5='BS' set   @BSperc=@BSperc+@kr5;
				if @pl5='CI' set   @CIperc=@CIperc+@kr5;
				if @pl5='GA' set   @GAperc=@GAperc+@kr5;
				if @pl5='HE' set   @HEperc=@HEperc+@kr5;
				if @pl5='HL' set   @HLperc=@HLperc+@kr5;
				if @pl5='CH' set   @CHperc=@CHperc+@kr5;
				if @pl5='MA' set   @MAperc=@MAperc+@kr5;
				if @pl5='MB' set   @MBperc=@MBperc+@kr5;
				if @pl5='PI' set   @PIperc=@PIperc+@kr5;
				if @pl5='SB' set   @SBperc=@SBperc+@kr5;
				if @pl5='SD' set   @SDperc=@SDperc+@kr5;
				if @pl5='SG' set   @SGperc=@SGperc+@kr5;
				if @pl5='SH' set   @SHperc=@SHperc+@kr5;
				if @pl5='SL' set   @SLperc=@SLperc+@kr5;
				if @pl5='SM' set   @SMperc=@SMperc+@kr5;
				if @pl5='SV' set   @SVperc=@SVperc+@kr5;
				if @pl5='WG' set   @WGperc=@WGperc+@kr5;
				if @pl5='ZB' set   @ZBperc=@ZBperc+@kr5;
				if @pl5='L' set   @Lperc=@Lperc+@kr5;
-------------------------------------------------------------


		FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	END
	  
			set @MEDZI2= (select priemMedzi  from View_CP_MedziObdMeso where chovatel=@chov_id);
	
	close cur_kravy;
	Deallocate cur_kravy
	
	    IF  @GLperc>@plmax1 BEGIN Set @plmax1=@GLperc; Set @plmax1Pismeno='GL'  END
		IF  @Aperc>@plmax1 BEGIN Set @plmax1=@Aperc; Set @plmax1Pismeno='A'  END
		IF  @Bperc>@plmax1 BEGIN Set @plmax1=@Bperc; Set @plmax1Pismeno='B'  END
		IF  @Dperc>@plmax1 BEGIN Set @plmax1=@Dperc; Set @plmax1Pismeno='D'  END
		IF  @Fperc>@plmax1 BEGIN Set @plmax1=@Fperc; Set @plmax1Pismeno='F'  END
		IF  @Gperc>@plmax1 BEGIN Set @plmax1=@Gperc; Set @plmax1Pismeno='G'  END
		IF  @Hperc>@plmax1 BEGIN Set @plmax1=@Hperc; Set @plmax1Pismeno='H'  END
		IF  @Jperc>@plmax1 BEGIN Set @plmax1=@Jperc; Set @plmax1Pismeno='J'  END
		IF  @Lperc>@plmax1 BEGIN Set @plmax1=@Lperc; Set @plmax1Pismeno='L'  END
		IF  @Mperc>@plmax1 BEGIN Set @plmax1=@Mperc; Set @plmax1Pismeno='M'  END
		IF  @Nperc>@plmax1 BEGIN Set @plmax1=@Nperc; Set @plmax1Pismeno='N'  END
		IF  @Pperc>@plmax1 BEGIN Set @plmax1=@Pperc; Set @plmax1Pismeno='P'  END
		IF  @Rperc>@plmax1 BEGIN Set @plmax1=@Rperc; Set @plmax1Pismeno='R'  END
		IF  @Sperc>@plmax1 BEGIN Set @plmax1=@Sperc; Set @plmax1Pismeno='S'  END
		IF  @Tperc>@plmax1 BEGIN Set @plmax1=@Tperc; Set @plmax1Pismeno='T'  END
		IF  @Xperc>@plmax1 BEGIN Set @plmax1=@Xperc; Set @plmax1Pismeno='X'  END
		IF  @AAperc>@plmax1 BEGIN Set @plmax1=@AAperc; Set @plmax1Pismeno='AA'  END
		IF  @ARperc>@plmax1 BEGIN Set @plmax1=@ARperc; Set @plmax1Pismeno='AR'  END
		IF  @BAperc>@plmax1 BEGIN Set @plmax1=@BAperc; Set @plmax1Pismeno='BA'  END
		IF  @BBperc>@plmax1 BEGIN Set @plmax1=@BBperc; Set @plmax1Pismeno='BB'  END
		IF  @BRperc>@plmax1 BEGIN Set @plmax1=@BRperc; Set @plmax1Pismeno='BR'  END
		IF  @BSperc>@plmax1 BEGIN Set @plmax1=@BSperc; Set @plmax1Pismeno='BS'  END
		IF  @CIperc>@plmax1 BEGIN Set @plmax1=@CIperc; Set @plmax1Pismeno='CI'  END
		IF  @GAperc>@plmax1 BEGIN Set @plmax1=@GAperc; Set @plmax1Pismeno='GA'  END
		IF  @HEperc>@plmax1 BEGIN Set @plmax1=@HEperc; Set @plmax1Pismeno='HE'  END
		IF  @HLperc>@plmax1 BEGIN Set @plmax1=@HLperc; Set @plmax1Pismeno='HL'  END
		IF  @CHperc>@plmax1 BEGIN Set @plmax1=@CHperc; Set @plmax1Pismeno='CH'  END
		IF  @MAperc>@plmax1 BEGIN Set @plmax1=@MAperc; Set @plmax1Pismeno='MA'  END
		IF  @MBperc>@plmax1 BEGIN Set @plmax1=@MBperc; Set @plmax1Pismeno='MB'  END
		IF  @PIperc>@plmax1 BEGIN Set @plmax1=@PIperc; Set @plmax1Pismeno='PI'  END
		IF  @SBperc>@plmax1 BEGIN Set @plmax1=@SBperc; Set @plmax1Pismeno='SB'  END
		IF  @SDperc>@plmax1 BEGIN Set @plmax1=@SDperc; Set @plmax1Pismeno='SD'  END
		IF  @SGperc>@plmax1 BEGIN Set @plmax1=@SGperc; Set @plmax1Pismeno='SG'  END
		IF  @SHperc>@plmax1 BEGIN Set @plmax1=@SHperc; Set @plmax1Pismeno='SH'  END
		IF  @SLperc>@plmax1 BEGIN Set @plmax1=@SLperc; Set @plmax1Pismeno='SL'  END
		IF  @SMperc>@plmax1 BEGIN Set @plmax1=@SMperc; Set @plmax1Pismeno='SM'  END
		IF  @SVperc>@plmax1 BEGIN Set @plmax1=@SVperc; Set @plmax1Pismeno='SV'  END
		IF  @WGperc>@plmax1 BEGIN Set @plmax1=@WGperc; Set @plmax1Pismeno='WG'  END
		IF  @ZBperc>@plmax1 BEGIN Set @plmax1=@ZBperc; Set @plmax1Pismeno='ZB'  END
----------------------------------------------------------------------------
-----------------------MAX KRV 2---------------------
  
		IF  (@GLperc>@plmax2 AND @plmax1Pismeno !='GL') BEGIN Set @plmax2=@GLperc; Set @plmax2Pismeno='GL'  END
		IF  (@Aperc>@plmax2 AND @plmax1Pismeno !='A') BEGIN Set @plmax2=@Aperc; Set @plmax2Pismeno='A'  END
		IF  (@Bperc>@plmax2 AND @plmax1Pismeno !='B') BEGIN Set @plmax2=@Bperc; Set @plmax2Pismeno='B'  END
		IF  (@Dperc>@plmax2 AND @plmax1Pismeno !='D') BEGIN Set @plmax2=@Dperc; Set @plmax2Pismeno='D'  END
		IF  (@Fperc>@plmax2 AND @plmax1Pismeno !='F') BEGIN Set @plmax2=@Fperc; Set @plmax2Pismeno='F'  END
		IF  (@Gperc>@plmax2 AND @plmax1Pismeno !='G') BEGIN Set @plmax2=@Gperc; Set @plmax2Pismeno='G'  END
		IF  (@Hperc>@plmax2 AND @plmax1Pismeno !='H') BEGIN Set @plmax2=@Hperc; Set @plmax2Pismeno='H'  END
		IF  (@Jperc>@plmax2 AND @plmax1Pismeno !='J') BEGIN Set @plmax2=@Jperc; Set @plmax2Pismeno='J'  END
		IF  (@Lperc>@plmax2 AND @plmax1Pismeno !='L') BEGIN Set @plmax2=@Lperc; Set @plmax2Pismeno='L'  END
		IF  (@Mperc>@plmax2 AND @plmax1Pismeno !='M') BEGIN Set @plmax2=@Mperc; Set @plmax2Pismeno='M'  END
		IF  (@Nperc>@plmax2 AND @plmax1Pismeno !='N') BEGIN Set @plmax2=@Nperc; Set @plmax2Pismeno='N'  END
		IF  (@Pperc>@plmax2 AND @plmax1Pismeno !='P') BEGIN Set @plmax2=@Pperc; Set @plmax2Pismeno='P'  END
		IF  (@Rperc>@plmax2 AND @plmax1Pismeno !='R') BEGIN Set @plmax2=@Rperc; Set @plmax2Pismeno='R'  END
		IF  (@Sperc>@plmax2 AND @plmax1Pismeno !='S') BEGIN Set @plmax2=@Sperc; Set @plmax2Pismeno='S'  END
		IF  (@Tperc>@plmax2 AND @plmax1Pismeno !='T') BEGIN Set @plmax2=@Tperc; Set @plmax2Pismeno='T'  END
		IF  (@Xperc>@plmax2 AND @plmax1Pismeno !='X') BEGIN Set @plmax2=@Xperc; Set @plmax2Pismeno='X'  END
		IF  (@AAperc>@plmax2 AND @plmax1Pismeno !='AA') BEGIN Set @plmax2=@AAperc; Set @plmax2Pismeno='AA'  END
		IF  (@ARperc>@plmax2 AND @plmax1Pismeno !='AR') BEGIN Set @plmax2=@ARperc; Set @plmax2Pismeno='AR'  END
		IF  (@BAperc>@plmax2 AND @plmax1Pismeno !='BA') BEGIN Set @plmax2=@BAperc; Set @plmax2Pismeno='BA'  END
		IF  (@BBperc>@plmax2 AND @plmax1Pismeno !='BB') BEGIN Set @plmax2=@BBperc; Set @plmax2Pismeno='BB'  END
		IF  (@BRperc>@plmax2 AND @plmax1Pismeno !='BR') BEGIN Set @plmax2=@BRperc; Set @plmax2Pismeno='BR'  END
		IF  (@BSperc>@plmax2 AND @plmax1Pismeno !='BS') BEGIN Set @plmax2=@BSperc; Set @plmax2Pismeno='BS'  END
		IF  (@CIperc>@plmax2 AND @plmax1Pismeno !='CI') BEGIN Set @plmax2=@CIperc; Set @plmax2Pismeno='CI'  END
		IF  (@GAperc>@plmax2 AND @plmax1Pismeno !='GA') BEGIN Set @plmax2=@GAperc; Set @plmax2Pismeno='GA'  END
		IF  (@HEperc>@plmax2 AND @plmax1Pismeno !='HE') BEGIN Set @plmax2=@HEperc; Set @plmax2Pismeno='HE'  END
		IF  (@HLperc>@plmax2 AND @plmax1Pismeno !='HL') BEGIN Set @plmax2=@HLperc; Set @plmax2Pismeno='HL'  END
		IF  (@CHperc>@plmax2 AND @plmax1Pismeno !='CH') BEGIN Set @plmax2=@CHperc; Set @plmax2Pismeno='CH'  END
		IF  (@MAperc>@plmax2 AND @plmax1Pismeno !='MA') BEGIN Set @plmax2=@MAperc; Set @plmax2Pismeno='MA'  END
		IF  (@MBperc>@plmax2 AND @plmax1Pismeno !='MB') BEGIN Set @plmax2=@MBperc; Set @plmax2Pismeno='MB'  END
		IF  (@PIperc>@plmax2 AND @plmax1Pismeno !='PI') BEGIN Set @plmax2=@PIperc; Set @plmax2Pismeno='PI'  END
		IF  (@SBperc>@plmax2 AND @plmax1Pismeno !='SB') BEGIN Set @plmax2=@SBperc; Set @plmax2Pismeno='SB'  END
		IF  (@SDperc>@plmax2 AND @plmax1Pismeno !='SD') BEGIN Set @plmax2=@SDperc; Set @plmax2Pismeno='SD'  END
		IF  (@SGperc>@plmax2 AND @plmax1Pismeno !='SG') BEGIN Set @plmax2=@SGperc; Set @plmax2Pismeno='SG'  END
		IF  (@SHperc>@plmax2 AND @plmax1Pismeno !='SH') BEGIN Set @plmax2=@SHperc; Set @plmax2Pismeno='SH'  END
		IF  (@SLperc>@plmax2 AND @plmax1Pismeno !='SL') BEGIN Set @plmax2=@SLperc; Set @plmax2Pismeno='SL'  END
		IF  (@SMperc>@plmax2 AND @plmax1Pismeno !='SM') BEGIN Set @plmax2=@SMperc; Set @plmax2Pismeno='SM'  END
		IF  (@SVperc>@plmax2 AND @plmax1Pismeno !='SV') BEGIN Set @plmax2=@SVperc; Set @plmax2Pismeno='SV'  END
		IF  (@WGperc>@plmax2 AND @plmax1Pismeno !='WG') BEGIN Set @plmax2=@WGperc; Set @plmax2Pismeno='WG'  END
		IF  (@ZBperc>@plmax2 AND @plmax1Pismeno !='ZB') BEGIN Set @plmax2=@ZBperc; Set @plmax2Pismeno='ZB'  END
--------------------KONEC-------------------------------------------------------------------------------------------------------
----------------MAX KRV3 -------------------------------------------------------------------------------------------------------
		IF  (@GLperc>@plmax3 AND @plmax1Pismeno !='GL' AND @plmax2Pismeno !='GL') BEGIN Set @plmax3=@GLperc; Set @plmax3Pismeno='GL'  END
		IF  (@Aperc>@plmax3 AND @plmax1Pismeno !='A' AND @plmax2Pismeno !='A') BEGIN Set @plmax3=@Aperc; Set @plmax3Pismeno='A'  END
		IF  (@Bperc>@plmax3 AND @plmax1Pismeno !='B' AND @plmax2Pismeno !='B') BEGIN Set @plmax3=@Bperc; Set @plmax3Pismeno='B'  END
		IF  (@Dperc>@plmax3 AND @plmax1Pismeno !='D' AND @plmax2Pismeno !='D') BEGIN Set @plmax3=@Dperc; Set @plmax3Pismeno='D'  END
		IF  (@Fperc>@plmax3 AND @plmax1Pismeno !='F' AND @plmax2Pismeno !='F') BEGIN Set @plmax3=@Fperc; Set @plmax3Pismeno='F'  END
		IF  (@Gperc>@plmax3 AND @plmax1Pismeno !='G' AND @plmax2Pismeno !='G') BEGIN Set @plmax3=@Gperc; Set @plmax3Pismeno='G'  END
		IF  (@Hperc>@plmax3 AND @plmax1Pismeno !='H' AND @plmax2Pismeno !='H') BEGIN Set @plmax3=@Hperc; Set @plmax3Pismeno='H'  END
		IF  (@Jperc>@plmax3 AND @plmax1Pismeno !='J' AND @plmax2Pismeno !='J') BEGIN Set @plmax3=@Jperc; Set @plmax3Pismeno='J'  END
		IF  (@Lperc>@plmax3 AND @plmax1Pismeno !='L' AND @plmax2Pismeno !='L') BEGIN Set @plmax3=@Lperc; Set @plmax3Pismeno='L'  END
		IF  (@Mperc>@plmax3 AND @plmax1Pismeno !='M' AND @plmax2Pismeno !='M') BEGIN Set @plmax3=@Mperc; Set @plmax3Pismeno='M'  END
		IF  (@Nperc>@plmax3 AND @plmax1Pismeno !='N' AND @plmax2Pismeno !='N') BEGIN Set @plmax3=@Nperc; Set @plmax3Pismeno='N'  END
		IF  (@Pperc>@plmax3 AND @plmax1Pismeno !='P' AND @plmax2Pismeno !='P') BEGIN Set @plmax3=@Pperc; Set @plmax3Pismeno='P'  END
		IF  (@Rperc>@plmax3 AND @plmax1Pismeno !='R' AND @plmax2Pismeno !='R') BEGIN Set @plmax3=@Rperc; Set @plmax3Pismeno='R'  END
		IF  (@Sperc>@plmax3 AND @plmax1Pismeno !='S' AND @plmax2Pismeno !='S') BEGIN Set @plmax3=@Sperc; Set @plmax3Pismeno='S'  END
		IF  (@Tperc>@plmax3 AND @plmax1Pismeno !='T' AND @plmax2Pismeno !='T') BEGIN Set @plmax3=@Tperc; Set @plmax3Pismeno='T'  END
		IF  (@Xperc>@plmax3 AND @plmax1Pismeno !='X' AND @plmax2Pismeno !='X') BEGIN Set @plmax3=@Xperc; Set @plmax3Pismeno='X'  END
		IF  (@AAperc>@plmax3 AND @plmax1Pismeno !='AA' AND @plmax2Pismeno !='AA') BEGIN Set @plmax3=@AAperc; Set @plmax3Pismeno='AA'  END
		IF  (@ARperc>@plmax3 AND @plmax1Pismeno !='AR' AND @plmax2Pismeno !='AR') BEGIN Set @plmax3=@ARperc; Set @plmax3Pismeno='AR'  END
		IF  (@BAperc>@plmax3 AND @plmax1Pismeno !='BA' AND @plmax2Pismeno !='BA') BEGIN Set @plmax3=@BAperc; Set @plmax3Pismeno='BA'  END
		IF  (@BBperc>@plmax3 AND @plmax1Pismeno !='BB' AND @plmax2Pismeno !='BB') BEGIN Set @plmax3=@BBperc; Set @plmax3Pismeno='BB'  END
		IF  (@BRperc>@plmax3 AND @plmax1Pismeno !='BR' AND @plmax2Pismeno !='BR') BEGIN Set @plmax3=@BRperc; Set @plmax3Pismeno='BR'  END
		IF  (@BSperc>@plmax3 AND @plmax1Pismeno !='BS' AND @plmax2Pismeno !='BS') BEGIN Set @plmax3=@BSperc; Set @plmax3Pismeno='BS'  END
		IF  (@CIperc>@plmax3 AND @plmax1Pismeno !='CI' AND @plmax2Pismeno !='CI') BEGIN Set @plmax3=@CIperc; Set @plmax3Pismeno='CI'  END
		IF  (@GAperc>@plmax3 AND @plmax1Pismeno !='GA' AND @plmax2Pismeno !='GA') BEGIN Set @plmax3=@GAperc; Set @plmax3Pismeno='GA'  END
		IF  (@HEperc>@plmax3 AND @plmax1Pismeno !='HE' AND @plmax2Pismeno !='HE') BEGIN Set @plmax3=@HEperc; Set @plmax3Pismeno='HE'  END
		IF  (@HLperc>@plmax3 AND @plmax1Pismeno !='HL' AND @plmax2Pismeno !='HL') BEGIN Set @plmax3=@HLperc; Set @plmax3Pismeno='HL'  END
		IF  (@CHperc>@plmax3 AND @plmax1Pismeno !='CH' AND @plmax2Pismeno !='CH') BEGIN Set @plmax3=@CHperc; Set @plmax3Pismeno='CH'  END
		IF  (@MAperc>@plmax3 AND @plmax1Pismeno !='MA' AND @plmax2Pismeno !='MA') BEGIN Set @plmax3=@MAperc; Set @plmax3Pismeno='MA'  END
		IF  (@MBperc>@plmax3 AND @plmax1Pismeno !='MB' AND @plmax2Pismeno !='MB') BEGIN Set @plmax3=@MBperc; Set @plmax3Pismeno='MB'  END
		IF  (@PIperc>@plmax3 AND @plmax1Pismeno !='PI' AND @plmax2Pismeno !='PI') BEGIN Set @plmax3=@PIperc; Set @plmax3Pismeno='PI'  END
		IF  (@SBperc>@plmax3 AND @plmax1Pismeno !='SB' AND @plmax2Pismeno !='SB') BEGIN Set @plmax3=@SBperc; Set @plmax3Pismeno='SB'  END
		IF  (@SDperc>@plmax3 AND @plmax1Pismeno !='SD' AND @plmax2Pismeno !='SD') BEGIN Set @plmax3=@SDperc; Set @plmax3Pismeno='SD'  END
		IF  (@SGperc>@plmax3 AND @plmax1Pismeno !='SG' AND @plmax2Pismeno !='SG') BEGIN Set @plmax3=@SGperc; Set @plmax3Pismeno='SG'  END
		IF  (@SHperc>@plmax3 AND @plmax1Pismeno !='SH' AND @plmax2Pismeno !='SH') BEGIN Set @plmax3=@SHperc; Set @plmax3Pismeno='SH'  END
		IF  (@SLperc>@plmax3 AND @plmax1Pismeno !='SL' AND @plmax2Pismeno !='SL') BEGIN Set @plmax3=@SLperc; Set @plmax3Pismeno='SL'  END
		IF  (@SMperc>@plmax3 AND @plmax1Pismeno !='SM' AND @plmax2Pismeno !='SM') BEGIN Set @plmax3=@SMperc; Set @plmax3Pismeno='SM'  END
		IF  (@SVperc>@plmax3 AND @plmax1Pismeno !='SV' AND @plmax2Pismeno !='SV') BEGIN Set @plmax3=@SVperc; Set @plmax3Pismeno='SV'  END
		IF  (@WGperc>@plmax3 AND @plmax1Pismeno !='WG' AND @plmax2Pismeno !='WG') BEGIN Set @plmax3=@WGperc; Set @plmax3Pismeno='WG'  END
		IF  (@ZBperc>@plmax3 AND @plmax1Pismeno !='ZB' AND @plmax2Pismeno !='ZB') BEGIN Set @plmax3=@ZBperc; Set @plmax3Pismeno='ZB'  END
 declare @okres varchar(3);
 set @okres=SUBSTRING(@chov_id,2,2);
	  -- print N' ------------ ';
	   declare @vaj int;
	   set @vaj=
	   (SELECT tab1.PocVazeny from (/*namiesto View_CP_TELATA210_FULL je tu z neho select, nakolko vo view si management studio prerobi select na nepouzitelny*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2' and CISKRAVY = t.CISTELATA) and t.CHOVATEL = @chov_id
  and DATVAZ = (select top 1 DATVAZ from  CM_VAZENIA v left outer join
		CM_Telata tt on v.CISTELATA = tt.CISTELATA where tt.CISTELATA = t.CISTELATA
		order by abs(DATEDIFF(day, DATNAR, DATVAZ)-210) asc)
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id) ; 

 declare @hmot int;
 set @hmot=(
 SELECT tab1.avr from (/*namiesto View_CP_TELATA210_FULL je tu z neho select*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2' and CISKRAVY = t.CISTELATA) and t.CHOVATEL = @chov_id
  and DATVAZ = (select top 1 DATVAZ from  CM_VAZENIA v left outer join
		CM_Telata tt on v.CISTELATA = tt.CISTELATA where tt.CISTELATA = t.CISTELATA
		order by abs(DATEDIFF(day, DATNAR, DATVAZ)-210) asc)
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id
 )

 declare @index float
 IF(@VAJ>0 and @MEDZI2>0)
	BEGIN
		set @index= (@HMOT*365)/@MEDZI2;
	END
	ELSE SET @INDEX=0;
 --print @hmot;
 --print @vaj;
 --print @index
	   

	   declare @kravStav int;
	   declare @MDStav int;
	   set @kravStav=(SELECT count(*)
  FROM CM_Krava
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null))

  /*
  telata sa vyberaju na zaklade takej podmienky,
  ze mozu byt uz rok vyradene a toto tela sa nenachadza v CM_Krava,
  nakolko uz ako tela nie je povazovane za tela,
  jedine v pripade, ze toto tela je zaradzovane do CM_Krava na zaklade inseminacie a vtedy je na chove ale stale ako tela,
  kde sa chov konci na xxx xxx xx0, preto je do podmienky v nasledujucom selecte pridany atr. priznakku = '2'.
  pri zaradzovani do inseminacie, je sice tato "krava" v CM_Krava, ale je telatom, priznakku ma iny.  
   */
  set @MDStav=(SELECT count(*)
  FROM CM_Telata
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null)
   and CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2'))

  declare @nazovPod varchar(50);
  set @nazovPod=(select NAZOVSKR from NM_Podnik where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2) and podnik=SUBSTRING(@chov_id,4,3));

  declare @kraj varchar(20);
  set @kraj=(select nazov from NC_KRAJ where kraj=SUBSTRING(@chov_id,1,1));
  set @kraj=SUBSTRING(@chov_id,1,1)+'-'+@kraj;

  declare @okres11 varchar(20);
  set @okres11=(select NAZOV from NC_OKRES where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2));
  set @okres11 = SUBSTRING(@chov_id,2,2)+'-'+@okres11

	    insert into dbo.CP_ChovatelMesoPlemena ([kraj],[okres],[podnik],[chov],[chovatel],[pl1],[pl2],[pl3],[nazov],[MEDZI],[POCET_VAZENI],[HMOTNOST],[HODN_INDEX],[stav_kravy],[stav_MD],[nazovPodnik]) 
		      values (@kraj,@okres11,SUBSTRING(@chov_id,4,3),SUBSTRING(@chov_id,7,3),@chov_id,@plmax1Pismeno,@plmax2Pismeno,@plmax3Pismeno,(select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3)),@MEDZI2,@VAJ,@hmot,@index,@kravStav,@MDStav,@nazovPod);
			

		--insert into dbo.CP_ChovatelMesoPlemena() select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3);

       FETCH NEXT FROM cur_Chovatel INTO @chov_id;  
END   

close cur_chovatel
Deallocate cur_chovatel
--PRINT 'KONIEC';
RETURN
END



--exec C_VZ_ChovMesovePlemena 0
go

CREATE PROCEDURE [dbo].[CR_KUMP_MlDobytka_1] 
	@chov varchar(9),
	@rok int,
	@mesiac int

AS
BEGIN

--	Vysledky KUMP v chove mladeho dobytka / mesacne
--	vstupne parametre: chov, rok, mesiac
--
--	Autor: M.Holes



DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHMlD_MES_1 WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHMlD_MES_1 WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac
	END

-- DECLARE @IDR BIGINT
-- SELECT @IDR = IDR
-- FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
-- WHERE @CHOV = chov and @rok=rok and @mesiac=MESIAC 

-- SELECT DISTINCT IDR INTO #idrtable
--FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
-- WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

	 declare @telata table
		(
		cistelata varchar(14),
		chov varchar (9),
		datnar date,
		vek int,
		Por_ins int,
		Datum_ins date,
		Znak_Tel varchar(2),
		Prip_byk varchar(14),
		Dat_OcOtel date,
		vazenie_OD date
		)

	insert into @telata
		 select	distinct t.CISTELATA,
			t.CHOVATEL,
			t.DATNAR,
			DATEDIFF(day,t.datnar, GETDATE()) as vek,
			(SELECT  i.IPOIN FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 and i.IDAIN=(SELECT MAX(i.IDAIN)  FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99  )) as Por_ins,
			(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 ) AS  Datum_ins,
			(SELECT i.IVYSE FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 and i.IDAIN=(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 )) AS Znak_Tel,
			(SELECT (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)) FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 and i.IDAIN=(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 ) ) AS Prip_byk,
			(select DATEADD(DAY, 285,(SELECT MAX(i.IDAIN) FROM dbo.CM_Insvyk i WHERE i.IPLCA = t.cistelata and i.IPOIN <>99 and i.IVYSE IN ('7', '8', '9')))) AS Dat_OcOtel,
			--(case when (select DATEDIFF(day,t.datnar,getdate())) < 536 and (select DATEDIFF(day,t.datnar,getdate())) > 400 and ((select max(v.DNIVAZ) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < 500 )
			--			then (465-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
			--		when (select DATEDIFF(day,t.datnar,getdate())) < 401 and (select DATEDIFF(day,t.datnar,getdate())) > 245 and ((select max(v.DNIVAZ) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 365 )
			--			then (330-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
			--		when (select DATEDIFF(day,t.datnar,getdate())) < 246 and (select DATEDIFF(day,t.datnar,getdate())) > 155 and ((select max(v.DNIVAZ) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 210)
			--			then (175-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
			--		when (select DATEDIFF(day,t.datnar,getdate())) < 156  then (85-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
			--		else null
			--			end) as vazenie_OD
			
			/****** oprava 10.10.2017  ....upravene podla zasad, tak aby to bolo v rovnokom rozmedzi, ako aj chybnik,  po dohode s Idkou Kobrtkovou ******/
			(case when (select DATEDIFF(day,t.datnar,getdate())) < 536 
							and (select DATEDIFF(day,t.datnar,getdate())) > 400 
							and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < 500 )
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (465-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (465-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
					when (select DATEDIFF(day,t.datnar,getdate())) < 401 
							and (select DATEDIFF(day,t.datnar,getdate())) > 245 
							and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 365 )
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (330-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (330-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
					when (select DATEDIFF(day,t.datnar,getdate())) < 246 
							and (select DATEDIFF(day,t.datnar,getdate())) > 155 
							and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 210)
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (175-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (175-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
					when (select DATEDIFF(day,t.datnar,getdate())) < 156  
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (85-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
					then (85-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
					else null
						end) as vazenie_OD

			 /*(case when (select DATEDIFF(day,t.datnar,getdate())) < 536 and (select DATEDIFF(day,t.datnar,getdate())) > 400 and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < 500 )
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (470-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (470-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
					when (select DATEDIFF(day,t.datnar,getdate())) < 401 and (select DATEDIFF(day,t.datnar,getdate())) > 245 and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 365 )
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (330-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (330-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
					when (select DATEDIFF(day,t.datnar,getdate())) < 246 and (select DATEDIFF(day,t.datnar,getdate())) > 155 and ((select isnull(max(v.DNIVAZ),0) from CM_Vazenia as v where v.CISTELATA = t.CISTELATA)  < 210)
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (180-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
						then (180-(select DATEDIFF(day,t.datnar,getdate())))+getdate()
					when (select DATEDIFF(day,t.datnar,getdate())) < 156  
							and  ((select isnull(max(v.DATVAZ),'1970-01-01') from CM_Vazenia as v where v.CISTELATA = t.CISTELATA) < (select (90-(select DATEDIFF(day,t.datnar,getdate())))+getdate()))
					then (90-(select DATEDIFF(day,t.datnar,getdate())))+getdate() 
					else null
					end) as vazenie_OD*/






		from CM_Telata as t
		left outer join CM_Insvyk as i on i.IPLCA = t.CISTELATA
		left outer join CM_Vazenia  as v on v.CISTELATA = t.CISTELATA
			where
				 t.CHOVATEL=@chov
				 and t.PRIZNAKKU=2
				 and t.DOVVYR is null
				 and t.DATVYR is null
				 and t.CISTELATA not in (select ciskravy from CM_Krava)
				 
			 	order by CISTELATA

				----select *from @telata


		------drop table CR_KUMP_CHMlD_MES_1
--create table CR_KUMP_CHMlD_MES_1
--(		CISTELATA varchar(14)null,
--		CHOVATEL varchar(14)null,
--		tela_datnar date null,
--		tela_pohl varchar(2)null,
--		tel_plemSklad varchar(45)null,
--		Matka varchar(14)null,
--		por_lakt varchar(14)null,
--		Otec varchar(14)null,
--		O_LinReg varchar(9)null,
--		O_meno varchar(30),
--		Hmot_nar decimal null,
--		Prieb_porodu varchar(14)null,
--		Por_ins int,
--		Datum_ins date,
--		Znak_Tel varchar(2),
--		Prip_byk varchar(14),
--		Dat_OcOtel date,
--		tel_vaha120 int,
--		tel_zp120 int,
--		tel_rp120 varchar(10),
--		tel_vaha210 int,
--		tel_zp210 int,
--		tel_rp210 varchar(10),
--		tel_vaha365 int,
--		tel_zp365 int,
--		tel_rp365 varchar(10),
--		tel_vaha500 int,
--		tel_zp500 int,
--		tel_rp500 varchar(10),
--		PH210 float,
--		vazenie_OD date,
--		vazenie_DO date,
--		idr bigint,
--		mesiac int,
--		rok int, 
--		generovane date
--		)

INSERT INTO CR_KUMP_CHMlD_MES_1
		(
		CISTELATA,
		CHOVATEL,
		tela_datnar,
		tela_pohl,
		tel_plemSklad,
		Matka,
		PORPREBLAK,
		por_lakt,
		Otec,
		O_LinReg,
		O_meno,
		Hmot_nar,
		Prieb_porodu,
		Por_ins,
		Datum_ins,
		Znak_Tel,
		Prip_byk,
		Dat_OcOtel,
		tel_vaha120,
		tel_zp120,
		tel_rp120,
		tel_vaha210,
		tel_zp210,
		tel_rp210,
		tel_vaha365,
		tel_zp365,
		tel_rp365,
		tel_vaha500,
		tel_zp500,
		tel_rp500,
		PH210,
		vazenie_OD,
		vazenie_DO,
		idr,
		mesiac,
		rok,
		generovane
		)

SELECT distinct	z.CISTELATA,
		z.chov,
		t.DATNAR,
		t.POHLAVIE,
		t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) 
		+ ' ' + ISNULL(t.PL2 + '-' + CONVERT(VARCHAR, ISNULL(t.KR2, 0)) + ' '
        + ISNULL(t.PL3 + '-' + CONVERT(VARCHAR, ISNULL(t.KR3, 0)) + ' '
        + ISNULL(t.PL4 + '-' + CONVERT(VARCHAR, ISNULL(t.KR4, 0)) + ' '
        + ISNULL(t.PL5,''), ''), ''),'') as tel_plemSklad,
		case when t.RECIPIENTKA is not null then t.RECIPIENTKA else t.MATKA end as Matka,
		k.PORPREBLAK,
		t.PORLAK,
		t.OUC,
		--t.OTECLIN + '-' + RIGHT(1000 + t.OTECREG, 3) AS Lin_Reg, 
		case when t.OTECLIN = 'NEZ' then 'NEZ'
			else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end
			AS Lin_Reg,
		b.MENO as O_meno,
		t.HMOTNAR,
		t.PRIEBPOR,
		z.Por_ins,
		z.Datum_ins,
		z.Znak_Tel,
		z.Prip_byk,
		z.Dat_OcOtel,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_vaha120,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_zp120,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '120' ORDER BY v.DATVAZ desc) AS tel_rp120,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_vaha210,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_zp210,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '210' ORDER BY v.DATVAZ desc) AS tel_rp210,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_vaha365,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_zp365,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '365' ORDER BY v.DATVAZ desc) AS tel_rp365,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.HMOTPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_vaha500,

		(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIRPREPOC,0))) FROM dbo.CM_Vazenia v 
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_zp500,

		(SELECT TOP 1 v.RASTPAS FROM dbo.CM_Vazenia v
		WHERE t.CISTELATA = v.CISTELATA AND t.PRIZNAKKU = 2 AND v.DNIPREPOC = '500' ORDER BY v.DATVAZ desc) AS tel_rp500,
		ph.PHHMOT210,
		z.vazenie_OD,
		dateadd(day,70,z.vazenie_OD)as vazenie_DO,
		--v.IDR as idr,
		null as idr,
		@mesiac as mesiac,
		@rok as rok,
		getdate() as generovane

		from @telata as z 
		left outer join CM_Telata as t on t.CHOVATEL = z.chov and t.CISTELATA = z.cistelata
		left outer join CM_Krava as k on k.CISKRAVY = t.MATKA
		--inner join #idrtable as v on (v.IDR = t.SPRACINSERT or v.IDR=t.SPRACUPDATE) 
		--left outer join CM_Insvyk as i on i.IPLCA = z.cistelata 
		left outer join CM_PHKRAVYMP ph on ph.ANIMAL=z.cistelata
		left outer join CM_Byci b on --(b.LIN  + '-' + RIGHT(1000 + b.REG, 3))
									----	(case when b.LIN = 'NEZ' then 'NEZ'
									----	else (b.LIN + '-' + RIGHT('000' + CONVERT(varchar, b.REG), 3) ) end)
									----=
									----	--(t.OTECLIN + '-' + RIGHT(1000 + t.OTECREG, 3)) 
									----	(case when t.OTECLIN = 'NEZ' then 'NEZ'
									----	else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end)
									(b.LIN=t.OTECLIN and b.REG=t.OTECREG) or b.USCISLO=t.OUC
		

		--select * from CR_KUMP_CHMlD_MES_1 where @chov=CHOVATEL and @mesiac=mesiac and @rok=rok order by tela_datnar

		end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 03.8.2011
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky (+12.5 Slovenske strakate)
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_plem_potomok_par]
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) output,
	@KR1_P [decimal](5,2) output,
	@PL2_P [varchar](2) output,
	@KR2_P [decimal](5,2) output,
	@PL3_P [varchar](2) output,
	@KR3_P [decimal](5,2) output,
	@PL4_P [varchar](2) output,
	@KR4_P [decimal](5,2) output,
	@PL5_P [varchar](2) output

AS
BEGIN
	declare @podiely table 
	(		
		PL [varchar](2),
		KR [decimal](5,2),
		Pr [int]
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2),

	@HR_M [decimal](5,2),
	@HR_O [decimal](5,2)
	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 2)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 3)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 4)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 5)			
		end			
	end
		
	--zistenie, kolko plemien H a R ma otec
	set @HR_O = (select COUNT(*) from @podiely where PL in ('H','R'))
	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 7)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 8)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 9)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 10)			
		end			
	end

	--zistenie, kolko plemien H a R ma matka
	set @HR_M = (select COUNT(*) from @podiely where PL in ('H','R')) -  @HR_O

	
	--ak X, nastav najvysiu prioritu
	if (select COUNT(*) from @podiely where PL = 'X') > 0	
	begin
		update @podiely
		set Pr = '100'
		where PL = 'X'
	end

	
	--Ak je vela plemien, tak H a R sa spoja, ak sa tam nachadzaju
	--Ale ak jedno zviera obsahuje aj H aj R, tak ich nespajaj
	if ((select COUNT(distinct pl) from @podiely where KR > 6) > 5
	and  (@HR_O <> 2 and @HR_M <> 2))
	begin
		update @podiely
		set PL = 'H'
		where PL = 'R'
	end
	
	-- scitanie plemien a usporiadanie na zaklade priority podla rodica
	--insert @podiely_usp 
	--select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	--GROUP by PL
	----order by SUM(isnull(KR, 0)) desc, PL asc
	insert @podiely_usp 
	select PL, ROUND(sum(isnull(KR, 0)),1) as KR from @podiely	
	GROUP by PL
	order by KR desc, Min(Pr) asc--, Min(ID) asc	
	

	--set @zvPlem = (select 0)
	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		--update @podiely_usp
		--set KR = 0, PL = null
		--where KR < @zvPlem

		DELETE FROM  @podiely_usp
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		-- prirad dalsie plemena > 4 k prvemu...
		if @KR_pom < 100
			set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR2_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	
	
	
	return (0)
	
END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
Create procedure [dbo].[CR_ZostavaLaktacie_plemeno_opr]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[PlemTyp] [varchar] (10) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				--(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')
					THEN 'OSTA' else PLEM end end)as Plem, 					
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.kraj = @chov	
					
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and (PLEM=@plem or @plem is null)

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where-- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.okres = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when  PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')  --and PLEM is not null
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where -- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.podnik = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.chovatel = @chov
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem,
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')-- and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
		(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
											
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
				and (pl.TYPS=@plem or @plem is null)	


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
		  (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		and (PLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
			(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					and (pl.TYPS=@plem or @plem is null)	
end


--select * from @kravy

--select * from @Laktacie

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


----insert plis.dbo.CR_LaktacneZostavy 
----	(
----	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

----	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
----	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

----	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

----	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
----	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
----	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
----	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
----	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
----	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

----	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
----	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

----	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
----	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
----	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
----	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
----	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go



create PROCEDURE [dbo].[C_ZZ_Meso_Telata]

AS
BEGIN


TRUNCATE TABLE [PLIS].[dbo].CP_Meso_TelataVahy

declare @t as varchar(14);
declare @t120 as float;
declare @tp120 as float;
declare @tj120 as float;
declare @t210 as float;
declare @tp210 as float;
declare @tj210 as float;
declare @t365 as float;
declare @tp365 as float;
declare @tj365 as float;
declare @t500 as float;
declare @tp500 as float;
declare @tj500 as float;
declare @v as float;
declare @p as float;
declare @d as int;
declare @hn as int;
	
	declare telata cursor for
select DISTINCT CISTELATA from PLIS.dbo.CM_Vazenia
	


	open telata
	fetch next from telata into @t;

	while @@FETCH_STATUS=0
	begin
		
		declare vaj cursor for
		select HMOTPREPOC,PRIRPREPOC,DNIPREPOC
		from plis.dbo.CM_Vazenia
		where CISTELATA=@t
		and DNIPREPOC is not null; 
			
		open vaj
		fetch next from vaj into @v,@p,@d

		while @@FETCH_STATUS=0
		begin
		set @hn= (select HMOTNAR from plis.dbo.CM_Telata where CISTELATA=@t)
			
			if(@hn is null)
			begin
				set @hn=35;
			end

			if(@d=120)
			begin
				set @t120=@v;
				set @tp120=@p;
				set @tj120=((@v-@hn)/120)*1000;
			end

			if(@d=210)
			begin
				set @t210=@v;
				set @tp210=@p;
				set @tj210=((@v-@hn)/210)*1000;
			end

			if(@d=365)
			begin
				set @t365=@v;
				set @tp365=@p;
				set @tj365=((@v-@hn)/365)*1000;
			end


			if(@d=500)
			begin
				set @t500=@v;
				set @tp500=@p;
				set @tj210=((@v-@hn)/500)*1000;
			end

			fetch next from vaj into @v,@p,@d
		end
		close vaj
		deallocate vaj;


		insert into [PLIS].[dbo].CP_Meso_TelataVahy values (@t,@t120,@tp120,@tj120,@t210,@tp210,@tj210,@t365,@tp365,@tj365,@t500,@tp500,@tj500)


		set @t120 =null;
set @tp120 =null;
set @tj120 =null;
set @t210 =null;
set @tp210 =null;
set @tj210 =null;
set @t365 =null;
set @tp365 =null;
set @tj365 =null;
set @t500 =null;
set @tp500 =null;
set @tj500 =null;



		fetch next from telata into @t;
	end
	
	close telata;
	deallocate telata;
   
END
go


-- ==================================================================
-- Author:		Mirka Holesova
-- Evidencna karta kravy KUMP, cize CUK kravy
-- vybera len kravy, ktore boli v danom mesiace spracovane, alebo kravy, ktorych telata boli spracovane (nahlasene otelenie, hmotnost, oprava...)
-- @chov, @rok, @mesiac
-- ===================================================================

CREATE PROCEDURE [dbo].[CR_Evid_karta_KUMP]
@chov VARCHAR(14),
@rok INT,
@mesiac INT,
@vyber varchar(1024)

AS

BEGIN

	--set @vyber='SK000801068054;SK000801522278;SK000801138699;SK000800965589;SK000801351500;SK000801530874;SK000800436598;SK000800965780;SK000800965732;SK000800437165;SK000801351480;SK000812083730;SK000801454989;SK000801522290;SK000801522217;SK000812051022;SK000801138661'
	--set @chov = 808041701
	--set @rok = 2017
	--set @mesiac = 6

IF OBJECT_ID('tempdb..##kravytable1') IS NOT NULL DROP TABLE #kravytable
IF OBJECT_ID('tempdb..##kravytable2') IS NOT NULL DROP TABLE #kravytable2

	declare @IRDtable table
	 (
	 IDR bigint, 
	 chov varchar(9),
	 mesiac int,
	 rok int
	 )
	  insert into @IRDtable
	   SELECT DISTINCT IDR,CHOV,MESIAC,ROK 
		FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
		 WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC


	 declare @zoznamKrav table
			 (
			 chov varchar(9),
			 ciskravy varchar(14)
			 )
		insert into @zoznamKrav
			select  CHOV, k.ciskravy
			from  @IRDtable as i
			left join CM_Krava as k on k.SPRACINSERT = i.IDR or k.SPRACUPDATE = i.IDR
			WHERE i.CHOV = @chov and @rok=i.rok and @mesiac=i.MESIAC and k.PORPREBLAK is not null
		union 
			select  CHOV, t.MATKA
			from  @IRDtable as i
			left join CM_Telata as t on t.SPRACINSERT=i.IDR or t.SPRACUPDATE= i.IDR
			WHERE i.CHOV = @chov and @rok=i.rok and @mesiac=i.MESIAC
	
if (@vyber<>'') 
begin					
					select k.CHOVATEL as CHOV,
						v.uscislo as CISKRAVY,--k.CISKRAVY,
							k.DATNAR as DATNAR,
							c.NAZOV as NAZOV1,
							pp.NAZOV as NAZOV2,
							pp.NAZOVSKR as NAZOVSKR,
							pp.Nazov as NAZOV_CELY,
							BB_NAME as BB_NAME,
							DATPOSKONT as DATPOSKONT,
							DATZAR as DATZAR,
							TRUZIT as TRUZIT,
							pk as pk,
							porpreblak as PORPREBLAK, 
							ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
										+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
										+ '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
										+ CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS PLEMENO,
							p.TYPS + ' - ' + p.TYPC as TypPLEM, 
							p.NAZTYP as NAZTYP,
							f.NAZF AS FARBA,
							ISNULL(m.TEXT, '') AS MB,
							a.koefpribuz as KoefPrib,
							k.DATVYR as DATVYR,
							k.DOVVYR as DOVVYR, 
							k.PORLAKMAX as PORLAKMAX, 
							k.POCVSETLAK as POCVSETLAK, 
							k.POCNORLAK as POCNORLAK,
							isnull(koefpribuz,0) * 100 as KOEFPRIBUZ, 
							pt.krvdat as KRVDAT_1, 
							pt.krvdat as KRVDAT, 
							CAST(pt.crozb as varchar) + '/' + pt.crad as DNA,
							case when convert(int,k.ZNAKET)=0 then 'Nie' when convert(int,k.ZNAKET)=1 then 'Áno' end as ZNAKET,
		  					t.vaha120 as VAHA_120,
							t.vaha210 as VAHA_210,
							t.vaha365 as VAHA_365,
							t.vaha500 as VAHA_500,
							tt.HMOTNAR as HMOTNAR,
							otel.datinsem as DATINSEM,
							otel.bik as BYK,
							otel.datOcOtel as DatOcOtel,  ----vlastna uzitkovost kravy
							rod.M_MENO, 
							rod.M_USCISLO, 
							rod.M_DATNAR, 
							rod.M_PlemSK,
							rod.M_PK,
							rod.O_MENO,
							rod.O_USCISLO, rod.O_DATNAR, 
							rod.O_PlemSK,
							rod.O_PK,
							rod.MM_MENO, 
							rod.MM_USCISLO, 
							rod.MM_DATNAR, 
							rod.MM_PlemSK,
							rod.MM_PK,
							rod.OM_MENO, 
							rod.OM_USCISLO, 
							rod.OM_DATNAR, 
							rod.OM_PlemSK,
							rod.OM_PK,
							rod.OO_MENO, 
							rod.OO_USCISLO, 
							rod.OO_DATNAR, 
							rod.OO_PlemSK,
							rod.OO_PK,
							rod.MO_MENO, 
							rod.MO_USCISLO, 
							rod.MO_DATNAR, 
							rod.MO_PlemSK,
							rod.MO_PK
						into #kravytable1
						from stringToTable (@vyber) v
							left outer join  @zoznamKrav as z on v.uscislo = z.ciskravy
							left outer join CM_Krava k on k.CISKRAVY = v.uscislo
							LEFT OUTER JOIN CC_Farby AS f ON k.FARBA = f.KODF
							LEFT OUTER JOIN CC_MB AS m ON k.ZNMATBYK = m.KOD 
							LEFT OUTER JOIN CC_PlemTyp AS p ON k.TYPPLEM = p.TYPC 
							LEFT OUTER JOIN NM_CHOVMAS AS c ON c.KRAJ + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL 
							LEFT OUTER JOIN NM_PODNIK AS pp ON pp.KRAJ + pp.OKRES + pp.PODNIK = SUBSTRING(k.CHOVATEL, 1, 6)
							LEFT OUTER JOIN Ainbreeding AS a ON a.uscislo = k.CISKRAVY
							LEFT OUTER JOIN CM_Paternita AS pt ON pt.Krava = k.CISKRAVY
							LEFT OUTER JOIN plis.dbo.CP_Meso_TelataVahy as t on t.cistelata = k.ciskravy
							left join plis.dbo.CM_Telata as tt on t.cistelata=tt.CISTELATA
							left join plis.dbo.CP_Meso_OcakavaneOrtel as otel on t.cistelata=otel.ciskrava
							left outer join View_CP_Rodokmene as rod on rod.USCISLO = v.uscislo
					WHERE k.PORPREBLAK is not null and z.chov=@chov
			select * from #kravytable1 order by CISKRAVY
	end 
else
	begin
		 select z.CHOV as CHOV,
			z.CISKRAVY as CISKRAVY,
			k.DATNAR as DATNAR,
			c.NAZOV as NAZOV1,
			pp.NAZOV as NAZOV2,
			pp.NAZOVSKR as NAZOVSKR,
			pp.Nazov as NAZOV_CELY,
			BB_NAME as BB_NAME,
			DATPOSKONT as DATPOSKONT,
			DATZAR as DATZAR,
			TRUZIT as TRUZIT,
			pk as pk,
			porpreblak as PORPREBLAK, 
			ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
						+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
						+ '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
						+ CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS PLEMENO,
			p.TYPS + ' - ' + p.TYPC as TypPLEM, 
			p.NAZTYP as NAZTYP,
			f.NAZF AS FARBA,
			ISNULL(m.TEXT, '') AS MB,
			a.koefpribuz as KoefPrib1,
			k.DATVYR as DATVYR,
			k.DOVVYR as DOVVYR, 
			k.PORLAKMAX as PORLAKMAX, 
			k.POCVSETLAK as POCVSETLAK, 
			k.POCNORLAK as POCNORLAK,
			isnull(koefpribuz,0) * 100 as KOEFPRIBUZ, 
			pt.krvdat as KRVDAT_1, 
			pt.krvdat as KRVDAT, 
			CAST(pt.crozb as varchar) + '/' + pt.crad as DNA,
			case when convert(int,k.ZNAKET)=0 then 'Nie' when convert(int,k.ZNAKET)=1 then 'Áno' end as ZNAKET,
		  	t.vaha120 as VAHA_120,
			t.vaha210 as VAHA_210,
			t.vaha365 as VAHA_365,
			t.vaha500 as VAHA_500,
			tt.HMOTNAR as HMOTNAR,
			otel.datinsem as DATINSEM,
			otel.bik as BYK,
			otel.datOcOtel as DatOcOtel,
			rod.M_MENO, 
			rod.M_USCISLO, 
			rod.M_DATNAR, 
			rod.M_PlemSK,
			rod.M_PK,
			rod.O_MENO,
			rod.O_USCISLO, rod.O_DATNAR, 
			rod.O_PlemSK,
			rod.O_PK,
			rod.MM_MENO, 
			rod.MM_USCISLO, 
			rod.MM_DATNAR, 
			rod.MM_PlemSK,
			rod.MM_PK,
			rod.OM_MENO, 
			rod.OM_USCISLO, 
			rod.OM_DATNAR, 
			rod.OM_PlemSK,
			rod.OM_PK,
			rod.OO_MENO, 
			rod.OO_USCISLO, 
			rod.OO_DATNAR, 
			rod.OO_PlemSK,
			rod.OO_PK,
			rod.MO_MENO, 
			rod.MO_USCISLO, 
			rod.MO_DATNAR, 
			rod.MO_PlemSK,
			rod.MO_PK
		  into #kravytable2
		  from  @zoznamKrav as z
					left join CM_Krava as k on k.CISKRAVY = z.ciskravy
					LEFT OUTER JOIN CC_Farby AS f ON k.FARBA = f.KODF
                    LEFT OUTER JOIN CC_MB AS m ON k.ZNMATBYK = m.KOD 
                    LEFT OUTER JOIN CC_PlemTyp AS p ON k.TYPPLEM = p.TYPC 
                    LEFT OUTER JOIN NM_CHOVMAS AS c ON c.KRAJ + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL 
                    LEFT OUTER JOIN NM_PODNIK AS pp ON pp.KRAJ + pp.OKRES + pp.PODNIK = SUBSTRING(k.CHOVATEL, 1, 6)
                    LEFT OUTER JOIN Ainbreeding AS a ON a.uscislo = k.CISKRAVY
                    LEFT OUTER JOIN CM_Paternita AS pt ON pt.Krava = k.CISKRAVY
					LEFT OUTER JOIN plis.dbo.CP_Meso_TelataVahy as t on t.cistelata = z.ciskravy
					left join plis.dbo.CM_Telata as tt on t.cistelata=tt.CISTELATA
					left join plis.dbo.CP_Meso_OcakavaneOrtel as otel on t.cistelata=otel.ciskrava
					left outer join View_CP_Rodokmene as rod on rod.USCISLO = z.ciskravy
	
			WHERE k.PORPREBLAK is not null
	
		select * from #kravytable2 order by CISKRAVY
	
	end
 end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Fix menovky, kedze pri prevode sa vyskytnu nullove hodnoty
-- =============================================
CREATE PROCEDURE Fix_Menovka

AS
BEGIN
	update dbo.NM_PODNIK 
	set narokNaDotacie = case 
						when '4' = (select c.VELPOD from dbo.NM_CPREHL1 as c where c.kraj = dbo.NM_PODNIK.kraj  and c.OKRES = dbo.NM_PODNIK.OKRES  and c.PODNIK = dbo.NM_PODNIK.PODNIK ) or  dbo.NM_PODNIK.vTazkostiach = 1
						then 0
						else 1
						end
	where narokNaDotacie is null

	update dbo.HIST_NM_PODNIK set narokNaDotacie = 1
	where narokNaDotacie is null


	update dbo.NM_PODNIK set vTazkostiach = 0
	where vTazkostiach is null

	update dbo.HIST_NM_PODNIK set vTazkostiach = 0
	where vTazkostiach is null



	update dbo.NM_CHOVMAS set EkoChov = 0
	where EkoChov is null

	update dbo.HIST_NM_CHOVMAS set EkoChov = 0
	where EkoChov is null
END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 03.01.2017
-- Update:		03.10.2017 - prehodenie do procedury
-- Description:	Zmazanie nevyplnenych bahnic z Kontrolne Zapisnika
-- =============================================
create PROCEDURE [dbo].[S_KonZap_ZmazNevyplneneBahnice]
(
	@chov varchar(9),
	@RokEv1 varchar(4),
	@RokEv2 varchar(2)
	
)
AS
BEGIN
	declare @pocetPred int = (select count(k.id)
								from SM_KonZap k
									left outer join SM_KonZapMen m on m.id = k.ids
								where m.chov = @chov 
									and m.rokev = @RokEv1+@RokEv2)

	delete 
    from SM_KonZap
    where KROKR + PODNIK + STADO in (select spchov from SM_SpoJChov where chov = @chov)
    and ROKEV1 + ROKEV2 =  @RokEv1 + @RokEv2
    and ID_KonZapBaran is null and BPLEM is null
    and DATPRIP is null and DATOBAH is null
    and id not in (select ID_KonZap from SM_KonZapPotomok  where KROKR + PODNIK + STADO in (select spchov from SM_SpoJChov where chov = @chov))

	
		
	declare @pocetPo int = (select count(k.id)
								from SM_KonZap k
									left outer join SM_KonZapMen m on m.id = k.ids
								where m.chov = @chov 
									and m.rokev = @RokEv1+@RokEv2)

	select @pocetPred-@pocetPo as pocet

			
END


--		exec [S_KonZap_ZmazNevyplneneBahnice] '708517053', '2017', '18'
go



-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 28.09.2015
-- Description:	Hlasenie responderov - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Respondery_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR bigint 
	declare @CHOV [varchar](9)
	declare @CISKRAVY [varchar](14)
	declare @RESPONDER [varchar](30)
	
	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	
	
	-- vyber doposial nespracovanych hlaseni responderov 
	declare db_cursor_respondery cursor
	FOR
	SELECT IDR
      ,CHOV
      ,CISKRAVY
	  ,RESPONDER
	FROM VstupyPLIS.dbo.CP_RESPONDERY where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
	
	OPEN db_cursor_respondery

	-- cyklus cez vsetky nespracovane hlasenia responderov
	FETCH NEXT
	FROM db_cursor_respondery INTO 	
		 @IDR
		,@CHOV	
		,@CISKRAVY
		,@RESPONDER
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke hlaseni skupin nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_RESPONDERY set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran respondery
		begin try		
	
			begin	
				UPDATE PLIS.dbo.CM_Krava SET RESPONDER = null WHERE CHOVATEL = @CHOV and RESPONDER = @RESPONDER
				UPDATE PLIS.dbo.CM_Krava SET RESPONDER = nullif(@RESPONDER, '') WHERE CHOVATEL = @CHOV and CISKRAVY = @CISKRAVY
			end
						
			--------------------------------------------------------			

			-- zaznam v tabulke hlaseni responderov nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_RESPONDERY set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR

			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'20'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran respondery;		
		
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'20'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran respondery		

		FETCH NEXT
		FROM db_cursor_respondery INTO 	
			 @IDR
			,@CHOV	
			,@CISKRAVY
			,@RESPONDER

	end
	
	CLOSE db_cursor_respondery
	DEALLOCATE db_cursor_respondery
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Respondery_aktualizacia ...OK'	
END


go


create PROCEDURE [dbo].[C_ZZ_Meso_Krava]
	
AS
BEGIN



TRUNCATE TABLE [PLIS].[dbo].CP_Meso_Krava


declare @k as varchar(14);
declare @datNar as datetime;
declare @l as int;
declare @p as varchar(80);
declare @typP as varchar(10);
declare @f as varchar(20);
declare @o as varchar(10);
declare @ouscis as varchar(14);
declare @ma as varchar(14);
declare @dovvyr as varchar(2);
declare @datvyr as datetime;
declare @c as varchar(9) ;

declare @h as float;
declare @d as int;
declare @prirastok as float;


declare @h120 as float;
declare @h210 as float;
declare @h365 as float;
declare @H500 AS FLOAT;
declare @pri120 as float;
declare @pri210 as float;
declare @pri365 as float;
declare @pri500 as float;


declare @t1poch as varchar(2);
declare @t1 as varchar(14);
declare @t1hmotNar as int;
declare @t2poch as varchar(2);
declare @t2 as varchar(14)
declare @t2hmotNar as int;
declare @t3poch as varchar(2)
declare @t3 as varchar(14)
declare @t3hmotNar as int;
declare @totec as varchar(10);
declare @touscis as varchar(14);
declare @hmotOtel as int;
declare @medzi as int;
declare @vekDni as int;
declare @vekMesac as int;
declare @datOtel as datetime;

set @h120=null;
set @h210 =null;
set @h365 =null;
set @H500 =null;
set @pri120=null;
set @pri210 =null;
set @pri365=null;
set @pri500=null;



declare krava cursor for
select k.CISKRAVY,k.DATNAR,k.PORPREBLAK,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
  + '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
  + '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
  + CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, p.TYPS + ' - ' + p.TYPC AS TypPlem, 
  f.NAZF AS Farba, k.OTECLIN+'-'+convert(varchar,k.OTECREG) as otec, k.OUSCIS,k.MA,k.DOVVYR,k.DATVYR,k.CHOVATEL
from plis.dbo.CM_Krava as k
inner join PLIS.dbo.CM_Vazenia as v
on k.CISKRAVY=v.CISTELATA
LEFT OUTER JOIN plis.dbo.CC_Farby AS f 
ON k.FARBA = f.KODF 
LEFT OUTER JOIN plis.dbo.CC_PlemTyp AS p 
ON k.TYPPLEM = p.TYPC 
where k.PRIZNAKKU=2

open krava
fetch next from krava into @k,@datNar,@l,@p,@typP,@f,@o,@ouscis,@ma,@dovvyr,@datvyr,@c

while @@FETCH_STATUS=0
begin


	declare hmot cursor for
	select DNIPREPOC,HMOTPREPOC,PRIRPREPOC
	from plis.dbo.CM_Vazenia
	where CISTELATA=@k;

	open hmot
	fetch next from hmot into @d,@h,@prirastok
	while @@FETCH_STATUS=0
	begin
		
		if(@d=120)
		begin
			set @h120=@h;
			set @pri120=@prirastok
		end

		if(@d=210)
		begin
			set @h210=@h;
			set @pri210=@prirastok;
		end

		if(@d=365)
		begin
			set @h365=@h;
			set @pri365=@prirastok
		end

		if(@d=500)
		begin
			set @H500=@h;
			set @pri500=@prirastok;
		end

	fetch next from hmot into @d,@h,@prirastok
	end
	close hmot
	deallocate hmot;


	declare telata cursor for
	select top 1 t1Pochl,t1,HmotOtT1,t2Pochl,t2,HmotOtT2,t3Pochl,t3,HmotOtT3,otecLin,otecUsnCis,HmotOtel,Medziobd,VekDni,VekMesac,Datotel
	from plis.dbo.Cp_Meso_TelataPoLaktacii
	where Ciskrava=@k
	order by Datotel DESC;

	open telata
	fetch next from telata into @t1poch,@t1,@t1hmotNar,@t2poch,@t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@totec,@touscis,@hmotOtel,@medzi,@vekDni,@vekMesac,@datOtel

	while @@FETCH_STATUS=0
	begin
		fetch next from telata into @t1poch,@t1,@t1hmotNar,@t2poch,@t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@totec,@touscis,@hmotOtel,@medzi,@vekDni,@vekMesac,@datOtel

	end
	close telata
	deallocate telata

	declare @Khmotnar as int
	set @Khmotnar=(select HMOTNAR from plis.dbo.CM_Telata where CISTELATA=@k);

	insert into CP_Meso_Krava values (@c,@k,@datNar,@l,@vekMesac,
									  @vekDni,@medzi,@datOtel,@totec,@touscis,
									  @p,@typP,@f,@o,@ouscis,@ma,@t1poch,@t1,@t1hmotNar,@t2poch,
									  @t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@hmotOtel,@h120,@h210,@h365,
									  @H500,@Khmotnar,@dovvyr,@datvyr)

fetch next from krava into @k,@datNar,@l,@p,@typP,@f,@o,@ouscis,@ma,@dovvyr,@datvyr,@c
end

close krava
deallocate krava;

 

END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a sektora
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_sektor]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [Sektor_kod][varchar](2)null,
	  [Sektor][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]


declare @kravy table                                   
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[Sektor_kod][varchar](2)null,
		[Sektor][varchar](100)null
		--[PocZapojL1] int NULL
	)

insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,reg.Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR,	 
	 d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL)
 left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
 left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''

 --select * from  @Laktacie order by CHOVATEL

 insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,	
			k.ciskravy,
			PORPREBLAK,
			d.FSEKTOR as Sektor_kod, 
			e.NAZOV as Sektor
		from CM_Krava as k
			left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
			left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
			left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)

			where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
				and (reg.REGION=@region or @region is null)
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
 				and a.PRIZNAK=1	


declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	 )

	Insert @PocZapojL1
		select 
			@chov as CHOV, 
			@region as Region,		
			count(k.ciskravy) as PocZapojL1,
			k.Sektor_kod, 
			k.Sektor

		from @kravy as k
			where  k.PORPREBLAK ='1'
 		group by 
			case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end 
			,Sektor_kod,Sektor
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL2
		select 
			@chov as CHOV, 
			@region as Region,
			count(k.ciskravy) as PocZapojL2,
			Sektor_kod, 
			Sektor
		from @kravy as k
	
		where k.PORPREBLAK >='2'
 	
		group by 
			case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end
			,Sektor_kod,Sektor
	
		--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojLCelk
		select 
			@chov as CHOV, 
			@region as Region,
			count(k.ciskravy) as PocZapojLCelk,
			Sektor_kod, 
			Sektor
		from @kravy as k
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end
		,Sektor_kod,Sektor
	
	--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
    [Sektor][varchar](100)null
	)

	Insert @pocLAKV1
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakV1,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor

		from @Laktacie as l	where PORLAK = '1'

		group by  case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
			, l.Sektor_kod, l.Sektor 
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @pocLAKV2
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakV2,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor
	
		from @Laktacie as l	where PORLAK >= '2'

		group by case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			 l.Sektor_kod, l.Sektor 
		
	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @pocLAKVCelk
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakVCelk,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor

		from @Laktacie as l
		
		group by  case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			l.Sektor_kod, l.Sektor 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, 
	Sektor_kod, Sektor)
	
		select 
		@chov as CHOV, 
		@region as Region,
		count(*)  as PocLakN1, 
		ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
		ROUND(AVG(LAKTDNI),2) as LaktdniL1,
		ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
		ROUND(AVG(TUKNOR),2)as TukNorL1,
		ROUND(AVG(BIELKNOR),2) as BielkNorL1,
		ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
		AVG(INDPER) as IPZL1,
		Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
		Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor
	
		from @Laktacie as l
			where  PORLAK = '1'
			and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
					l.Sektor_kod, l.Sektor 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,		
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null

	)
	 insert @lakt2
		select
			@chov as CHOV, 
			@region as Region,
			count(*) as PocLakN2, 
			ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
			ROUND(AVG(LAKTDNI),2)as LaktdniL2,
			ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
			ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
			ROUND(AVG(TUKNOR),2)as TukNorL2,
			ROUND(AVG(BIELKNOR),2) as BielkNorL2,
			ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
			AVG(INDPER) as IPZL2,
			Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
			Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
		from @Laktacie as l
	
		where PORLAK >= '2'
			and (l.ZMENA = '30' or l.ZMENA='40') 

		group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @laktCelkom
		select
			@chov as CHOV, 
			@region as Region,
			count(*) as PocLakCelk, 
			ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
			ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
			ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
			ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
			ROUND(AVG(TUKNOR),2) as TukNorCelk,
			ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
			ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
			AVG(INDPER) as IPZCelk,
			Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
			Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
		from @Laktacie as l
	
		where (l.ZMENA = '30' or l.ZMENA='40') 

		group by case when @chov is null and @region is null then @chov else
				case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
				l.Sektor_kod, l.Sektor 
	
	--select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @NormLak1
		select 
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
			Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where 
		l.PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
		 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		 l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @NormLak2
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
			Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where 
		l.PORLAK >= '2'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
				case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
				l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @NormLakCelk
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
			Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		 l.Sektor_kod, l.Sektor 

	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL1
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
   		from @Laktacie as l
	
		where 
		PORLAK='1'
	 
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @ZmenaL2
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
  		from @Laktacie as l
	
		where 
		PORLAK>='2'
	
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
	----select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @ZmenaCelk
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
  		from @Laktacie as l
	
		group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			l.Sektor_kod, l.Sektor 

	--select * from @ZmenaCelk order by CHOV

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('S'+l.Sektor_kod)as Filter,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and  ZapojL1.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.Sektor_kod=l.Sektor_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.Sektor_kod=l.Sektor_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.Sektor_kod=l.Sektor_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.Sektor_kod=l.Sektor_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.Sektor_kod=l.Sektor_kod)
	left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

	end
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 25.08.2017

-- Description:	Opravi medzere v LUC -> medzere su len na zaciatku LUC
-- =============================================
CREATE FUNCTION [dbo].[S_oprav_LUC]
(
	@LUC varchar(5)
)
RETURNS varchar(5)
AS
BEGIN
	if @LUC is NULL or @LUC = '' return NULL;

	if (substring(@LUC, 5, 1) = ' ')
		begin
			set @LUC = replace(@LUC, ' ', '')
			set @LUC =  (Select LEFT('     ', 5-len(@LUC)) + @LUC)
		end

	return (select @LUC)
--		(select replace(@LUC, ' ', '.'))
		--(select case when len(@LUC) = 5 then replace(@LUC, ' ', '.') else  LEFT('.....', 5-len(@LUC))+@LUC END as LUC)

END


--		select [dbo].[S_oprav_LUC]('145 ')

go

Create PROCEDURE [dbo].[CR_ZostavaLaktacie_sektor_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region


END

go

CREATE PROCEDURE [dbo].[C_ZZ_Meso_KravyPodlaRokovALakt_101]	
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_Meso_StadaPodlaVeku

	SET NOCOUNT ON;
	declare @chov varchar(9);
	set @chov='';
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=0;
	set @pocet=0;
	

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;

	declare  chovately cursor 
	for SELECT  DISTINCT     CHOVATEL
		FROM    plis.dbo.CM_Krava AS k
		WHERE    (PRIZNAKKU = '2') AND (DOVVYR IS NULL)
		GROUP BY CHOVATEL

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					print @chov;
				
						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt1 into @pocet,@l
						end
						set @rok=1;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=2;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt2 into @pocet,@l
						end
						set @rok=2;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt3 into @pocet,@l
						end
						set @rok=3;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						set @count=0;
						
						open lakt4 
						fetch next from lakt4 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt4 into @pocet,@l
						end
						set @rok=4;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK
						
					
						
						
						open lakt5 
						fetch next from lakt5 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=5;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt5 into @pocet,@l
						end
						set @rok=5;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt6 
						fetch next from lakt6 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt6 into @pocet,@l
						end
						set @rok=6;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt7 into @pocet,@l
						end
						set @rok=7;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt8 into @pocet,@l
						end
						set @rok=8;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt9 into @pocet,@l
						end
						set @rok=9;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt10 into @pocet,@l
						end
						set @rok=10;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt11 into @pocet,@l
						end
						set @rok=11;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt12 into @pocet,@l
						end
						set @rok=12;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt13 into @pocet,@l
						end
						set @rok=13;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 14 and 14.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_Meso_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					FETCH NEXT FROM chovately INTO @chov;
			end

			print @count;

			close chovately;
			deallocate chovately;
    
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PrVekSt] 
(	
	@chov varchar(9) 

)

RETURNS @T table(nazov varchar(13),Pockoz varchar(8),poccap varchar(8), pocmkoz varchar(8), pocmcap varchar(8))
AS
begin
	declare @pockoz int = 0, @pockoz2 int = 0, @poccap int = 0, @poccap2 int = 0, @pocmkoz int = 0, @pocmcap int = 0
	declare @svekkoz int = 0, @svekcap int = 0,@svekmkoz int = 0 ,@svekmcap int = 0
	declare @prvekkoz varchar(8), @prvekcap varchar(8),@prvekmkoz varchar(8),@prvekmcap varchar(8)
	SELECT @pockoz2 = @pockoz2 + pocet,@pockoz = @pockoz + case when roknar>0 then pocet else 0 end,
	       @svekkoz = @svekkoz + case when roknar>0 then svekmes else 0 end
	  FROM function_GP_KozRokNar(@chov)
	SELECT @poccap2 = @poccap2 + pocet,@poccap = @poccap + case when roknar>0 then pocet else 0 end,
	       @svekcap = @svekcap + case when roknar>0 then svekmes else 0 end
	  FROM function_GP_CapRokNar(@chov)
	SELECT @pocmkoz = @pocmkoz + pocmkoz, @svekmkoz=@svekmkoz+svekmesmkoz, 
	 @pocmcap = @pocmcap + pocmcap, @svekmcap=@svekmcap+svekmesmcap 
	  FROM function_GP_PocMKozMCap(@chov)
	  where roknar > 0
	set @prvekkoz = case when @pockoz>0 then str((@svekkoz/@pockoz)/12,2)+'r '+str((@svekkoz/@pockoz)%12,2)+'m' else '  - ' end;
	set @prvekcap = case when @poccap>0 then str((@svekcap/@poccap)/12,2)+'r '+str((@svekcap/@poccap)%12,2)+'m' else '  - ' end;
	set @prvekmkoz = case when @pocmkoz>0 then str((@svekmkoz/@pocmkoz)/12,2)+'r '+str((@svekmkoz/@pocmkoz)%12,2)+'m' else '  - ' end;	
	set @prvekmcap = case when @pocmcap>0 then str((@svekmcap/@pocmcap)/12,2)+'r '+str((@svekmcap/@pocmcap)%12,2)+'m' else '  - ' end;
	insert into @T (nazov,Pockoz,poccap, pocmkoz, pocmcap) values ('Počet celkom',str(@pockoz2,8),str(@poccap2,8),str(@pocmkoz,8), str(@pocmcap,8))
	insert into @T (nazov,Pockoz,poccap, pocmkoz, pocmcap) values ('Priemerný vek', @prvekkoz, @prvekcap, @prvekmkoz, @prvekmcap)
	RETURN 
end


go




CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_LaktaciePodlaOtcov_CHOV]
	@ParChov varchar(9)
	
AS
BEGIN

/*******************************************

	using table:CM_Krava,

	using view: View_CP_KravaPoOtcoNormLakt

	changing table: CP_UZITKOVOSTKRAVPOOTCOCH

	used for:(1) Úžitkovosť kráv po otcoch za normované laktácie  report

**********************************************/
	
	SET NOCOUNT ON;


	DECLARE @PO1 INT;
	DECLARE @PO2 INT;

	SET @PO1=0;
	SET @PO2=0;

	declare @chov varchar(9);
	declare @Ucislo varchar(14);
	declare @lakt int;
	declare @po4et int;
	declare @mlekoP float;
	declare @tukP float;
	declare @bielkP float;
	declare @belTukP float;
	declare @vek float;
	declare @vekD int;

	declare @vekM int;
	declare @vekD1 int;

	declare @otec varchar(10);

declare @msms as datetime;
set @msms=GETDATE();

	SET @lakt =0;
	SET @po4et =0;
	SET @mlekoP =0;
	SET @tukP =0;
	SET @bielkP =0;
	SET @belTukP =0;
	SET @vek =0;
	set @vek=0;
	set @otec='';
	set @Ucislo='';
	set @chov='';

	--TRUNCATE TABLE [PLIS].[dbo].CP_UZITKOVOSTKRAVPOOTCOCH	
	--delete [PLIS].[dbo].CP_UZITKOVOSTKRAVPOOTCOCH where CHOVATEL = @ParChov -- 20160811
	delete [PLIS].[dbo].CP_UZITKOVOSTKRAVPOOTCOCH where CHOVATEL = @ParChov or CHOVATEL = left(@ParChov, 6) or CHOVATEL = left(@ParChov, 3) 

	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_KravaPoOtcoNormLakt')
		DROP TABLE PLIS.dbo.TEMP_KravaPoOtcoNormLakt
	
	select * into PLIS.dbo.TEMP_KravaPoOtcoNormLakt
		from [PLIS].[dbo].[View_CP_KravaPoOtcoNormLakt] where CHOVATEL = @ParChov

    declare  chovately cursor 
	for select DISTINCT chovatel
		from plis.dbo.CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null and CHOVATEL = @ParChov

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			DECLARE @POCNLACT INT;
						SET @POCNLACT=0;

			DECLARE @MLEKO FLOAT;
			DECLARE @TaB FLOAT;
			DECLARE @TUK FLOAT;
			DECLARE @BELK FLOAT;
			DECLARE @BELKATUK FLOAT;
			DECLARE @KRAVYCHOV INT;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;

			DECLARE @M1 FLOAT;
			DECLARE @T1 FLOAT;
			DECLARE @B1 FLOAT;
			DECLARE @BAT1 FLOAT;
			DECLARE @P1 INT;

			DECLARE @M2 FLOAT;
			DECLARE @T2 FLOAT;
			DECLARE @B2 FLOAT;
			DECLARE @BAT2 FLOAT;
			DECLARE @P2 INT;

			DECLARE @MN FLOAT;
			DECLARE @TN FLOAT;
			DECLARE @BN FLOAT;
			DECLARE @BATN FLOAT;
			DECLARE @PN INT; 

			declare @i int;
			set @i=0;

			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;

			SET @M2 = 0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			declare @vek1 float;
			DECLARE @L1 INT;
			DECLARE @L2 INT;
			set @vek1=0;
			SET @L1=0;
			SET @L2=0;
		--	print @chov;
			----------------------------------------------------------------------------------------------------

			declare otec cursor 
			for select DISTINCT OUSCIS
				from plis.dbo.CM_Krava
				where DOVVYR is null
				and PRIZNAKKU='1'
				and OUSCIS is not null
				and chovatel=@chov;

			open otec
			fetch next from otec into @Ucislo;
			while @@FETCH_STATUS=0
			begin
				
					
					--print @ucislo;
					
				declare kravy cursor
				for select porlak,po4etkrav,primermleko,primerTuk,asBielkpriem,priembeltuk,vekM,VekD,otec
				from View_CP_KravaPoOtcoNormLakt
				where chovatel=@chov
				and OUSCIS=@Ucislo
				
				


				open kravy
				fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
				WHILE @@FETCH_STATUS = 0 
					BEGIN
					/*	print @lakt;
						print @po4et;
						print @mlekop;
						print @tukP;
						print @bielkP;
						print @belTukP;
						print @vek;
						print @otec;*/
					
							
						IF(@lakt=1)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								SET @L1=@po4et+@L1
								SET @MLEKO=@MLEKO+@mlekoP;
								SET @BELKATUK=@BELKATUK+@belTukP;
								set @vekM=@vek1;
								set @vekD1=@vekD;
								SET @M1 =@mlekoP+@M1;
								SET @T1 =@tukP+@T1;
								SET @B1 =@bielkP+@B1;
								SET @BAT1 =@belTukP+@BAT1;
								SET @P1=@po4eT+@P1;
								SET @PO1=@PO1+1;
							END
					else	IF(@LAKT=2)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								--SET @KRAVYCHOV=@KRAVYCHOV+@po4et;
								SET @L2=@po4et+@L2;
								SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;

								SET @M2 =@mlekoP+@M2;
								SET @T2 =@tukP+@T2;
								SET @B2 =@bielkP+@B2;
								SET @BAT2 =@belTukP+@BAT2;
								SET @P2=@po4et+@P2;
								SET @PO2=@PO2+1;
							END

						
						

					else		IF(@LAKT!=2 and @lakt!=1)
								BEGIN
									if(@Ucislo='')
										begin set @Ucislo=NULL; end

									SET @TaB=@TaB+@belTukP;
									SET @TUK=@TUK+@tukP;
									SET @BELK=@BELK+@bielkP;
									SET @POCNLACT=@POCNLACT+@po4et;
									SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;
									set @POCNLACT=(select count(*)
													from plis.dbo.CM_Krava
													where priznakku=1
													and DOVVYR is null
													and chovatel=@chov
													and OUSCIS=@Ucislo
													and POCNORLAK>2);
									set @i=@i+1;
									SET @MN =@MN+@mlekoP;
									SET @TN = @TN+@tukP;
									SET @BN =@BN+@bielkP;
									SET @BATN =@BATN+@belTukP;
						
								END

						
					fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
			
					end

					close kravy;
				Deallocate kravy;
				SET @KRAVYCHOV=(select count(*)from plis.dbo.cm_krava where chovatel=@chov and DOVVYR is null and PRIZNAKKU='1')
				-------------------------------------------------------------------------------------------------------------------------------------------------------
				
					 set @POCNLACT=(select SUM(po4etkrav) from [PLIS].[dbo].TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK>2);

					 declare @po1a int;
					 declare @po2a int;

					 set @PO1a=(select SUM(po4etkrav) from [PLIS].[dbo].TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK=1);

					 set @PO2a=(select SUM(po4etkrav) from [PLIS].[dbo].TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK=2);



				IF(@POCNLACT>0)
					BEGIN
					set @MN=@MN/@POCNLACT;
					set @TN=@TN/@POCNLACT;
					SET @BN=@BN/@POCNLACT;
					SET @BATN=@BATN/@POCNLACT;
					END
					
					if(@POCNLACT= 0 or @POCNLACT is null)
					begin
						set @MN=null;
						set @tn=null;
						set @bn=null;
						set @BATN=null;
					end
					
					IF(@PO1a>1)
					BEGIN
						
						SET	@M1=@M1/@PO1a
						SET	@T1=@T1/@PO1a
						SET @B1=@B1/@PO1a
						SET @BAT1=@BAT1/@PO1a
						SET @vek1=@VEK1/@PO1
					END

					IF(@PO2a>1)
					BEGIN
						
						SET	@M2=@M2/@PO2a
						SET	@T2=@T2/@PO2a
						SET @B2=@B2/@PO2a
						SET @BAT2=@BAT2/@PO2a
						
					END
					
					IF(@PO2=0)
					begin
					SET @M2 =NULL;
					SET @T2 =NULL;
					SET @B2 =NULL;
					SET @BAT2 =NULL;
					end

				IF(@PO1=0)
					BEGIN
						
						SET	@M1=NULL
						SET	@T1=NULL
						SET @B1=NULL
						SET @BAT1=NULL
						SET @vek1=NULL
					END
			
				set @i=(select COUNT(*) 
						from PLIS.dbo.CM_Krava as k
						--inner join plis.dbo.CM_Laktacie as p
						--on k.CISKRAVY=p.CISKRAVY
						where PRIZNAKKU=1 
						and DOVVYR is null 
						 and k.chovatel=@chov
						 and k.OUSCIS=@Ucislo 
						 and k.POCNORLAK>2 );
						 --and zmena in (30,40));
				
				--	set @vekD=convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) % 30
				--	set @vek1=convert(int,@vek1)+convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) / 30
				
				
				INSERT INTO PLIS.DBO.CP_UZITKOVOSTKRAVPOOTCOCH VALUES(@otec,@Ucislo,@L1,@M1,@T1,@B1,@BAT1,@vekM,@vekD1,@L2,@M2,@T2,@B2,@BAT2,@I,@MN,@TN,@BN,@BATN,@MLEKO,@TUK,@BELK,@BELKATUK,@KRAVYCHOV,@chov,@POCNLACT);
				--print N'insert'
				--print datediff(ms,@msms,getdate());
				set @msms=GETDATE();
				
				set @vek1=0;
				set @vekD=0;
				SET @POCNLACT=0;
				set @i=0;
				SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;
			set @po1=0;
			set @PO2=0;
			SET @M2 =0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @L1=0;
			SET @L2=0;
			set @vek1=0;
			SET @po4et =0;
	
				
				
				
				fetch next from otec into @Ucislo;
				
				end	

				close otec;
		Deallocate otec;
					------------------------------ TEN HOVATEL SKON4IL-----------------------------------
			FETCH NEXT FROM chovately INTO @chov ;
			--print N'____________________________________________________________________'
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @KRAVYCHOV=0;
			

			end
	

		close chovately;
		Deallocate chovately;
		
		
----------------------------------
-- dopocet pre podniky a okresy
----------------------------------

    declare  chovately cursor 
	for -- podniky
		select distinct substring(chovatel,1,6)
		from plis.dbo.CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null and CHOVATEL = @ParChov

		union
		-- okresy
		select distinct substring(chovatel,1,3)
		from plis.dbo.CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null and CHOVATEL = @ParChov

		-- print '-- zaciatok: ' + CONVERT( VARCHAR(24), GETDATE(), 121)



		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;			
		
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			
			IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_kravy_v_chovoch')
				DROP TABLE PLIS.dbo.TEMP_kravy_v_chovoch	
			
			-- print '-- c01z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
			
			select * into PLIS.dbo.TEMP_kravy_v_chovoch
				from plis.dbo.CM_Krava 
				where DOVVYR is null
				and PRIZNAKKU='1'
				and chovatel like @chov+'%';	
			-- print '-- c01k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)										



			SET @POCNLACT=0;


			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;

			set @i=0;

			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;

			SET @M2 = 0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;

			set @vek1=0;
			SET @L1=0;
			SET @L2=0;
		--	print @chov;
		
		
			IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc1')
				DROP TABLE PLIS.dbo.TEMP_chovy_v_prepOtc1
			
			-- print '-- c1z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
			select * into PLIS.dbo.TEMP_chovy_v_prepOtc1
				--from [PLIS].[dbo].TEMP_KravaPoOtcoNormLakt where CHOVATEL like @chov+'%' -- 20160811
				from [PLIS].[dbo].[View_CP_KravaPoOtcoNormLakt] where CHOVATEL like @chov+'%'
			-- print '-- c1k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)		
			----------------------------------------------------------------------------------------------------

			declare otec cursor 
			for select DISTINCT OUSCIS
				from PLIS.dbo.TEMP_kravy_v_chovoch
				where OUSCIS is not null;

			open otec
			fetch next from otec into @Ucislo;
			while @@FETCH_STATUS=0
			begin
				
				IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc')
					DROP TABLE PLIS.dbo.TEMP_chovy_v_prepOtc
				
				-- print '-- c2z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				select * into PLIS.dbo.TEMP_chovy_v_prepOtc
					from [PLIS].[dbo].TEMP_chovy_v_prepOtc1 where OUSCIS=@Ucislo
				-- print '-- c2k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)										
					--print @ucislo;
					
				declare kravy cursor
				for select porlak,po4etkrav,primermleko,primerTuk,asBielkpriem,priembeltuk,vekM,VekD,otec
				from PLIS.dbo.TEMP_chovy_v_prepOtc
				
				


				open kravy
				fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
				WHILE @@FETCH_STATUS = 0 
					BEGIN
					/*	print @lakt;
						print @po4et;
						print @mlekop;
						print @tukP;
						print @bielkP;
						print @belTukP;
						print @vek;
						print @otec;*/
					
							
						IF(@lakt=1)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								SET @L1=@po4et+@L1
								SET @MLEKO=@MLEKO+@mlekoP;
								SET @BELKATUK=@BELKATUK+@belTukP;
								set @vekM=@vek1;
								set @vekD1=@vekD;
								SET @M1 =@mlekoP+@M1;
								SET @T1 =@tukP+@T1;
								SET @B1 =@bielkP+@B1;
								SET @BAT1 =@belTukP+@BAT1;
								SET @P1=@po4eT+@P1;
								SET @PO1=@PO1+1;
							END
					else	IF(@LAKT=2)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								--SET @KRAVYCHOV=@KRAVYCHOV+@po4et;
								SET @L2=@po4et+@L2;
								SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;

								SET @M2 =@mlekoP+@M2;
								SET @T2 =@tukP+@T2;
								SET @B2 =@bielkP+@B2;
								SET @BAT2 =@belTukP+@BAT2;
								SET @P2=@po4et+@P2;
								SET @PO2=@PO2+1;
							END

						
						

					else		IF(@LAKT!=2 and @lakt!=1)
								BEGIN
									if(@Ucislo='')
										begin set @Ucislo=NULL; end

									SET @TaB=@TaB+@belTukP;
									SET @TUK=@TUK+@tukP;
									SET @BELK=@BELK+@bielkP;
									SET @POCNLACT=@POCNLACT+@po4et;
									SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;
									-- print '-- c3z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
									set @POCNLACT=(select count(*)
													from PLIS.dbo.TEMP_kravy_v_chovoch
													where OUSCIS=@Ucislo
													and POCNORLAK>2);
									-- print '-- c3k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)														
									set @i=@i+1;
									SET @MN =@MN+@mlekoP;
									SET @TN = @TN+@tukP;
									SET @BN =@BN+@bielkP;
									SET @BATN =@BATN+@belTukP;
						
								END

						
					fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
			
					end

					close kravy;
				Deallocate kravy;
				
				-- print '-- c4z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				SET @KRAVYCHOV=(select count(*)from PLIS.dbo.TEMP_kravy_v_chovoch)
				-------------------------------------------------------------------------------------------------------------------------------------------------------
				-- print '-- c4k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c5z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					 set @POCNLACT=(select SUM(po4etkrav) from PLIS.dbo.TEMP_chovy_v_prepOtc where PORLAK>2);
					-- print '-- c5k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c6z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					 set @PO1a=(select SUM(po4etkrav) from PLIS.dbo.TEMP_chovy_v_prepOtc where PORLAK=1);
					-- print '-- c6k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c7z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	

					 set @PO2a=(select SUM(po4etkrav) from PLIS.dbo.TEMP_chovy_v_prepOtc where PORLAK=2);
					-- print '-- c7k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	



				IF(@POCNLACT>0)
					BEGIN
					set @MN=@MN/@POCNLACT;
					set @TN=@TN/@POCNLACT;
					SET @BN=@BN/@POCNLACT;
					SET @BATN=@BATN/@POCNLACT;
					END
					
					if(@POCNLACT= 0 or @POCNLACT is null)
					begin
						set @MN=null;
						set @tn=null;
						set @bn=null;
						set @BATN=null;
					end
					
					IF(@PO1a>1)
					BEGIN
						
						SET	@M1=@M1/@PO1a
						SET	@T1=@T1/@PO1a
						SET @B1=@B1/@PO1a
						SET @BAT1=@BAT1/@PO1a
						SET @vek1=@VEK1/@PO1
					END

					IF(@PO2a>1)
					BEGIN
						
						SET	@M2=@M2/@PO2a
						SET	@T2=@T2/@PO2a
						SET @B2=@B2/@PO2a
						SET @BAT2=@BAT2/@PO2a
						
					END
					
					IF(@PO2=0)
					begin
					SET @M2 =NULL;
					SET @T2 =NULL;
					SET @B2 =NULL;
					SET @BAT2 =NULL;
					end

				IF(@PO1=0)
					BEGIN
						
						SET	@M1=NULL
						SET	@T1=NULL
						SET @B1=NULL
						SET @BAT1=NULL
						SET @vek1=NULL
					END
					
				-- print '-- c8z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				set @i=(select COUNT(*) 
						from PLIS.dbo.TEMP_kravy_v_chovoch as k
						--inner join plis.dbo.CM_Laktacie as p
						--on k.CISKRAVY=p.CISKRAVY
						where k.OUSCIS=@Ucislo 
						 and k.POCNORLAK>2 );
						 --and zmena in (30,40));
				-- print '-- c8k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				--	set @vekD=convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) % 30
				--	set @vek1=convert(int,@vek1)+convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) / 30
				
				
				INSERT INTO PLIS.DBO.CP_UZITKOVOSTKRAVPOOTCOCH VALUES(@otec,@Ucislo,@L1,@M1,@T1,@B1,@BAT1,@vekM,@vekD1,@L2,@M2,@T2,@B2,@BAT2,@I,@MN,@TN,@BN,@BATN,@MLEKO,@TUK,@BELK,@BELKATUK,@KRAVYCHOV,@chov,@POCNLACT);
				--print N'insert'
				--print datediff(ms,@msms,getdate());
				set @msms=GETDATE();
				
				set @vek1=0;
				set @vekD=0;
				SET @POCNLACT=0;
				set @i=0;
				SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;
			set @po1=0;
			set @PO2=0;
			SET @M2 =0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @L1=0;
			SET @L2=0;
			set @vek1=0;
			SET @po4et =0;
	
				
				
				
				fetch next from otec into @Ucislo;
				
				end	

				close otec;
		Deallocate otec;
					------------------------------ TEN HOVATEL SKON4IL-----------------------------------
			FETCH NEXT FROM chovately INTO @chov ;
			--print N'____________________________________________________________________'
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @KRAVYCHOV=0;
			

			end
	

		close chovately;
		Deallocate chovately;

	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_kravy_v_chovoch')
		DROP TABLE PLIS.dbo.TEMP_kravy_v_chovoch	

	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc')
		DROP TABLE PLIS.dbo.TEMP_chovy_v_prepOtc
		
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc1')
		DROP TABLE PLIS.dbo.TEMP_chovy_v_prepOtc1		

	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_KravaPoOtcoNormLakt')
		DROP TABLE PLIS.dbo.TEMP_KravaPoOtcoNormLakt

END


go


CREATE PROCEDURE [dbo].[CR_KUHD_mesacne_v2]
		@chov VARCHAR(9) ,
		@rok INT ,
		@mesiac INT,
		@dekada INT,
		@stado varchar(2)

AS

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE, @minusrok2 DATE, @minusrok3 DATE

-- Mesacna zostava KUHD mlieko
-- vstupne parametre: chov, rok, mesiac, dekada

-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc


--			1.1: 29.01.2016, doplnenie stlpcov, smerodajnej ochylky podla FANDu
--			1.2: 2.2.2016, doplnenie stlpcov MKO1KSL1, MKO1MLL1, MKO12KSL1, MKO12MLL1
--			1.3: 2.2.2016, doplnenie stlpcov MLIEKOPRIEMERZL1, MLIEKOPRIEMERKL1
--			1.4: 3.3.2016, doplnenie RKO12KS, zmeny vypoctov podla FAND
--			1.5: 22.3.2016, pridany datum kontroly, skupiny
-- VS		update0179.sql
-- Redmine	#1902



BEGIN
				
		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

        -- nastavenie startovacieho  a koncoveho datumu podla dekady
		-- ak dekada = 1, startovaci den dekady je 15 (15-30 v mesiaci)
		-- ak dekada = 9, startovaci den dekady je 1 (1-14 v mesiaci)
		
		IF (@dekada = 1)
			BEGIN
			SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			END
		ELSE
			BEGIN
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
			END
		
		IF (@dekada = 1)
			BEGIN
			SET @end = CAST(eomonth(@start) AS date)
			END
		ELSE
			BEGIN
			SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
			END

        SELECT  @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
        SELECT  @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia
        SELECT  @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
        SELECT  @end2 = DATEADD(dd, -1, @start1)	-- koniec predchadzajuceho obdobia (minus 2 mesiace)
		SELECT	@minusrok = DATEADD(dd, -350, @start)
		SELECT	@minusrok2 = DATEADD(mm, -1, @minusrok) -- pre potreby druhych kontrol
		SELECT	@minusrok3 = DATEADD(mm, -13, @start) -- pre potreby druhych kontrol

		-----------------------------------------------
		-- prve a druhe kontroly
		-----------------------------------------------


DECLARE @DatPKon DATE;
DECLARE @DatPRok DATE, @DatPPRok DATE;

SELECT TOP 1 @DatPKon = DATKONTR FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov ORDER BY DATKONTR DESC

	
	DECLARE @den INT
		SELECT @den = 
			CASE 
				WHEN DATEPART(dd, @DatPKon) > 14 THEN '15'
					ELSE 
						'1'
				END 
				
	DECLARE @startdekady date
    SET @startdekady = CAST(CAST(DATEPART(year, @DatPKon) AS varchar) + '-' + CAST(DATEPART(month, @DatPKon) AS varchar) + '-' + CAST(@den AS varchar) AS DATETIME)
	SET @DatPRok = DATEADD(dd, -350, @startdekady)
	SET @DatPPRok = DATEADD(mm, -1, @DatPRok)

	PRINT 'Datum poslednej kontroly: ' + CONVERT(VARCHAR, @DatPKon)
	PRINT 'Nastavenie startu dekady v kontrole ' + CONVERT(VARCHAR, @startdekady)
	PRINT 'Datum pre vypocet rocneho zoznamu: ' + CONVERT(VARCHAR, @DatPRok)
	PRINT 'Datum pre vypocet rocneho zoznamu minus 1 mesiac: ' + CONVERT(VARCHAR, @DatPPRok)

			IF OBJECT_ID('tempdb..#kontrola1') IS NOT NULL
			BEGIN
            	DROP TABLE #kontrola1
			END
	
	
			IF OBJECT_ID('tempdb..#prvekontroly') IS NOT NULL
			BEGIN
            		DROP TABLE #prvekontroly
				END

		SELECT ciskravy, COUNT(ciskravy) AS pocetkontrol, MIN(DATKONTR) AS K1, MAX(DATKONTR) AS KP, AVG(MLIEKPR) as mliekopr
				INTO #prvekontroly FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov GROUP  BY CISKRAVY

		-- datum poslednej kontroly
		DECLARE @poslednakontrola DATE, @predposlednakontrola DATE
		DECLARE @RKO1KS INT, @RKO1KSL1 INT, @RKO1ML DECIMAL(7,2), @RKO12ML DECIMAL(7,2), @MKO1ML DECIMAL(7,2), @MKO12ML DECIMAL(7,2)
		DECLARE @MKO1KS INT, @MKO12KS INT, @MKO1KSL1 INT, @MKO1MLL1 DECIMAL(7,2), @MKO12KSL1 INT, @MKO12MLL1 DECIMAL (7,2), @RKO12KS INT
		DECLARE @RKO1MLL1 DECIMAL (4,2), @RKO12MLL1 DECIMAL (4,2), @RKO12KSL1 INT


        SELECT @poslednakontrola = MAX(K1) FROM #prvekontroly
		SELECT TOP 1 @predposlednakontrola = K1 FROM #prvekontroly WHERE K1 < (SELECT  MAX(K1) FROM #prvekontroly) ORDER BY K1 desc         
		


		-- stlpce:
		-- cislo kravy, pocet kontrol, prva kontrola, posledna kontrola

		SELECT pk.*, naplak.PORLAK, naplak.lakdnin, pk.mliekopr AS mlieknor --, kontroly.MLIEKPR AS mliekopr1
		INTO #kontrola1 FROM #prvekontroly pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
		WHERE pk.K1 >= @minusrok AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00'
		AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END



	SELECT @MKO1KS = COUNT(*), @MKO1ML = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND KP = @poslednakontrola
	SELECT @MKO1KSL1 = COUNT(*), @MKO1MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND PORLAK = 1 AND KP = @poslednakontrola
	SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 OR pocetkontrol = 2

			SELECT @MKO12KS = COUNT(*), @MKO12ML = AVG(pk.mliekopr) FROM #kontrola1 pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
			WHERE  (KP = @poslednakontrola AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00') AND (K1 = @poslednakontrola OR K1 = @predposlednakontrola)
					AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 
	
	DECLARE @counter INT

BEGIN
		
		IF OBJECT_ID('tempdb..#kontroly01') IS NOT NULL
			BEGIN DROP TABLE #kontroly01 END

	    CREATE TABLE #kontroly01 (ciskravy VARCHAR(14), pocet INT, prva DATE, druha DATE, mliekopr DECIMAL(7,2), mliekopr2 DECIMAL(7,2),  lak INT)
	
		DECLARE @ciskravy VARCHAR(14), @pocet INT, @poradie INT, @prva DATE, @posledna DATE, @druha DATE, @mliekopr DECIMAL(7,2), @mliekopr2 DECIMAL(7,2), @lak INT
			
			SET @counter = 0;
		DECLARE kontroly_cursor CURSOR
		FOR
			SELECT COUNT(CISKRAVY) AS pocet, CISKRAVY  FROM dbo.CM_Kontroly WHERE DATKONTR > @DatPRok AND CISCHOVU = @chov
				GROUP BY CISKRAVY
	
    OPEN kontroly_cursor
    FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
						SELECT TOP 1 @ciskravy = ko.CISKRAVY, @prva = ko.DATKONTR,  @mliekopr = MLIEKPR, @lak = n.PORLAK  FROM dbo.CM_Kontroly ko
						LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = ko.CISKRAVY)
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy ORDER BY ko.DATKONTR ASC

						SELECT @pocet = COUNT(ko.ciskravy) FROM dbo.CM_Kontroly ko
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy
						GROUP BY ko.ciskravy

						SELECT TOP 1 @druha = dva.DATKONTR, @mliekopr2 = dva.MLIEKPR  FROM
						(SELECT TOP 2 CISKRAVY, DATKONTR, MLIEKPR FROM dbo.CM_Kontroly
						WHERE CISCHOVU = @chov AND CISKRAVY = @ciskravy ORDER BY DATKONTR ASC) AS dva
						ORDER BY datkontr DESC
				
						INSERT  INTO #kontroly01 ( ciskravy, pocet, prva, druha, mliekopr, mliekopr2, lak) VALUES  ( @ciskravy, @pocet, @prva, @druha,  @mliekopr, @mliekopr2, @lak)


            FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

        END
END

CLOSE kontroly_cursor
DEALLOCATE kontroly_cursor

--SELECT * FROM #kontroly01


SELECT		@RKO1KS = COUNT(ko.ciskravy), @RKO1ML = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL
			AND kr.skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

SELECT		@RKO1KSL1 = COUNT(ko.ciskravy), @RKO1MLL1 = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL AND ko.lak = 1
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

SELECT		@RKO12KS = COUNT(ko.ciskravy), @RKO12ML = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha)
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

SELECT		@RKO12KSL1 = COUNT(ko.ciskravy), @RKO12MLL1 = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha) AND ko.lak = 1
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

			---	SELECT @rkoks, @rkoml, @RKOKs1L, @RKOMl1L, @rkoks + @RKO12ks, ROUND(((@RKO12ml+@RKOMl)/2),1), @RKOKs1L + @RKO12ks1L, ROUND(((@RKO12ml1L+@RKOMl1L)/2),1)



		-----------------------------------------------

		IF OBJECT_ID('tempdb..#kravy') IS NOT NULL DROP TABLE #kravy
		IF OBJECT_ID('tempdb..#kx') IS NOT NULL DROP TABLE #kx
		IF OBJECT_ID('tempdb..#kx1') IS NOT NULL DROP TABLE #kx1
		IF OBJECT_ID('tempdb..#kx2') IS NOT NULL DROP TABLE #kx2

		SELECT ko.* INTO #kravy
		FROM dbo.CM_Kontroly ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		--WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')
		WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND ISNULL(kr.DOVVYR, '') = '' OR kr.DOVVYR = '00'
		AND kr.skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

		SELECT * FROM #kravy

		DECLARE @POCKRAVZAP INT, @POCKRAVKONT INT, @POCKRAVKONT1LAK INT, @POCKRAVZAP1LAK INT
        DECLARE @POCKRAVKONTR1L INT, @2kontrol INT, @2kontrola INT, @1kontrola1lak INT, @2kontrola1lak INT

			-- pocet krav v kontrole
			SELECT @POCKRAVKONT = COUNT(CISKRAVY) FROM #kravy

			-- pocet krav v kontrole na 1.laktacii
			SELECT @POCKRAVKONT1LAK = COUNT(CISKRAVY) FROM #kravy WHERE PORPREBLAK = (1)

			-- pocet krav v chove
			SELECT @POCKRAVZAP = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov AND ISNULL(DOVVYR,'') = '' OR DOVVYR = '00'
												AND  skupina LIKE CASE
												WHEN @stado IS NOT NULL THEN @stado
												WHEN @stado IS NULL THEN NULL
												WHEN @stado = 'XX' THEN '%'
												END 
				

			--pocet krav na 1 laktacii
			SELECT @POCKRAVZAP1LAK = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov
					AND (ISNULL(DOVVYR,'') = '' OR DOVVYR = '00')
					AND PORPREBLAK = '1'
					AND skupina LIKE CASE
												WHEN @stado IS NOT NULL THEN @stado
												WHEN @stado IS NULL THEN NULL
												WHEN @stado = 'XX' THEN '%'
												END 

			-- vlozim zaznamy zo zvoleneho mesiaca do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			-- vlozim zaznamy zo zvoleneho mesiaca - 1 do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx1
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start1 AND @end1

			-- vlozim zaznamy zo zvoleneho mesiaca - 2 do temper
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx2
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start2 AND @end2

			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom
			SELECT @POCKRAVKONTR1L = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi
			SELECT @2kontrola = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL)

			
			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom / 1.laktacia
			SELECT @1kontrola1lak = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL AND a.PORPREBLAK = 1
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi / 1.laktacia
			SELECT @2kontrola1lak = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL) AND a.PORPREBLAK = 1
			
			
			
			DROP TABLE #kx
			DROP TABLE #kx1
			DROP TABLE #kx2

			
			DECLARE @mesiac_minus_1 INT, @mesiac_minus_2 INT, @rok_minus_1 INT
			DECLARE @rok_minus_2 AS INT
			DECLARE @MLIEKOCELKOM AS DECIMAL(7,2)
			DECLARE @MLIEKOCELKOML1 AS DECIMAL (7,2)
			DECLARE @TUKPER AS DECIMAL (7,2)
			DECLARE @BIELKPER AS DECIMAL(7,2)
			DECLARE @SB AS FLOAT 
			DECLARE @pocet_TB_11 AS INT
			DECLARE @pocet_TB_1115 AS INT
			DECLARE @pocet_TB_15 AS INT
			DECLARE @pocet_TB_11_LAK1 AS INT
			DECLARE @pocet_TB_1115_LAK1 AS INT
			DECLARE @pocet_TB_15_LAK1 AS INT


			-- sucet mlieka / vsetky kravy v kg
			SELECT @MLIEKOCELKOM = SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			SELECT @MLIEKOCELKOML1 = SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	AND PORPREBLAK = 1

			-- priemerne percento tuku
			SELECT @TUKPER = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @TUKPERL1 DECIMAL(4,2)
			SELECT @TUKPERL1 = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @BIELKPER = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @BIELKPERL1 DECIMAL(4,2)
			SELECT @BIELKPERL1 = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @SB = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @SBL1 INT
			SELECT @SBL1 = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			-----------------------------------------------------------------------------------------------------
			-- pomery tuk / bielkovina
			-----------------------------------------------------------------------------------------------------

			DECLARE @POMERTB11V INT
			SELECT	@POMERTB11V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	 AND (k.PERCTUKU / k.PERCBIELK) < 1.1

			DECLARE @POMERTB15V INT
			SELECT @POMERTB15V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) > 1.5

			DECLARE @POMERTBOKV INT
			SELECT @POMERTBOKV = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) BETWEEN 1.1 AND 1.5

			DECLARE @POMERTB11VL1 INT
			SELECT @POMERTB11VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) < 1.1 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1

			DECLARE @POMERTB15VL1 INT
			SELECT @POMERTB15VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) > 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
			
			DECLARE @POMERTBOKVL1 INT
			SELECT @POMERTBOKVL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) BETWEEN 1.1 AND 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
							

		----------------------------------------------------------------------------------------------------------------------------


			DECLARE @lak_al INT
            DECLARE @POCKRAV100 INT
			DECLARE @POCKRAV200 INT
			DECLARE @POCKRAV300 INT

			DECLARE @POCKRAV100L1 INT
			DECLARE @POCKRAV200L1 INT
			DECLARE @POCKARV300L1 INT
			
			DECLARE @MLIEKO100 INT
			DECLARE @TUK100 FLOAT
			DECLARE @TUK100PER FLOAT
			DECLARE @BIELK100 FLOAT
			DECLARE @BIELK100PER FLOAT
			DECLARE @TB100 FLOAT
			DECLARE @TB100PER FLOAT

			DECLARE @MLIEKO200 INT
			DECLARE @TUK200 FLOAT
			DECLARE @TUK200PER FLOAT
			DECLARE @BIELK200 FLOAT
			DECLARE @BIELK200PER FLOAT
			DECLARE @TB200 FLOAT
			DECLARE @TB200PER FLOAT

			DECLARE @MLIEKO300 INT
			DECLARE @TUK300 FLOAT
			DECLARE @TUK300PER FLOAT
			DECLARE @BIELK300 FLOAT
			DECLARE @BIELK300PER FLOAT
			DECLARE @TB300 FLOAT
			DECLARE @TB300PER FLOAT

			DECLARE @MLIEKO100L1 INT
			DECLARE @TUK100L1 FLOAT
			DECLARE @TUK100PERL1 FLOAT
			DECLARE @BIELK100L1 FLOAT
			DECLARE @BIELK100PERL1 FLOAT
			DECLARE @TB100L1 FLOAT
			DECLARE @TB100L1PER FLOAT

			DECLARE @MLIEKO200L1 INT
			DECLARE @TUK200L1 FLOAT
			DECLARE @TUK200PERL1 FLOAT
			DECLARE @BIELK200L1 FLOAT
			DECLARE @BIELK200PERL1 FLOAT
			DECLARE @TB200L1 FLOAT
			DECLARE @TB200PERL1 FLOAT

			DECLARE @MLIEKO300L1 INT
			DECLARE @TUK300L1 FLOAT
			DECLARE @TUK300PERL1 FLOAT
			DECLARE @BIELK300L1 FLOAT
			DECLARE @BIELK300PERL1 FLOAT
			DECLARE @TB300L1 FLOAT
			DECLARE @TB300PERL1 FLOAT


			
			SELECT @lak_al = COUNT(N.ciskravy)
						FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)


			SELECT DISTINCT ciskravy INTO #kontrola FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end


			

			
			--100 denne pocet
			SELECT
			@POCKRAV100 = COUNT(N.ciskravy),
			@MLIEKO100 = AVG(N.MLIEKNOR),
			@TUK100 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PER = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PER = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100 = @TUK100 + @BIELK100,
			@TB100PER = ROUND(@TUK100PER + @BIELK100PER,2)
			
			--FROM #kravy K INNER JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKDNIN = 100

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND krava.DOVVYR IS NULL
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 


			--200 denne pocet
			SELECT
			@POCKRAV200 = COUNT(N.ciskravy),
			@MLIEKO200 = AVG(N.MLIEKNOR),
			@TUK200 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PER = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PER = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200 = @TUK200 + @BIELK200,
			@TB200PER = ROUND(@TUK200PER + @BIELK200PER,2)
			
			--FROM #kravy K LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 200 AND 304

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND krava.DOVVYR IS NULL
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

			DECLARE @dkon300 DATE
			SET @dkon300 = DATEADD(YEAR, -1, @startdekady) -- odpocet roka

			PRINT "Vypocet obdobia pre uzavrete laktacie: " + CONVERT(varchar, @dkon300)

			-- vsetky kravy s uzavretou laktaciou
			SELECT
			@POCKRAV300 = COUNT(L.CISKRAVY),
			@MLIEKO300 = AVG(L.MLIEKNOR),
			@TUK300 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PER = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PER = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300 = @TUK300 + @BIELK300,
			@TB300PER = ROUND(@TUK300PER + @BIELK300PER,2)

			FROM dbo.CM_Laktacie L
			WHERE  chovatel = @chov and (zmena = '30' or zmena = '40' )  and ((DatUkonl > @dkon300 and Datuknorl is null )  or   DatUknorl > @dkon300)
			-- WHERE  chovatel = @chov and (zmena = '30' or zmena = '40' )  and ((DatUkonl > @minusrok2 and Datuknorl is null )  or   DatUknorl > @minusrok2)
			GROUP by L.CHOVATEL

			--100 denne pocet / 1 laktacia
			SELECT
			@POCKRAV100L1 = COUNT(N.ciskravy),
			@MLIEKO100L1 = AVG(N.MLIEKNOR),
			@TUK100L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PERL1 = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100L1 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PERL1 = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100L1 = @TUK100L1 + @BIELK100L1,
			@TB100L1PER = ROUND(@TUK100PERL1 + @BIELK100PERL1,2)
			
			--FROM #kravy K INNER JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 100 AND 199 AND N.PORLAK = 1

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

			
			--200 denne pocet / 1 laktacia
			SELECT
			@POCKRAV200L1 = COUNT(N.ciskravy),
			@MLIEKO200L1 = AVG(N.MLIEKNOR),
			@TUK200L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PERL1 = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200L1 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PERL1 = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200L1 = @TUK200L1 + @BIELK200L1,
			@TB200PERL1 = ROUND(@TUK200PERL1 + @BIELK200PERL1,2)
			
			-- FROM #kravy K LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 200 AND 304 AND N.PORLAK = 1

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL
			AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 

			-- vsetky kravy s uzavretou laktaciou / 1.laktacia


			SELECT
			@POCKARV300L1 = COUNT(N.ciskravy),
			@MLIEKO300L1 = AVG(L.MLIEKNOR),
			@TUK300L1 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PERL1 = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300L1 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PERL1 = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300L1 = @TUK300L1 + @BIELK300L1,
			@TB300PERL1 = ROUND(@TUK300PERL1 + @BIELK300PERL1,2)
			FROM dbo.CM_Laktacie L
		
			LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
			WHERE  L.CHOVATEL = @chov AND L.PORLAK = 1 AND (L.ZMENA = '30' or L.ZMENA = '40' )  and ((L.DatUkonl > @dkon300 and L.Datuknorl is null )  or   L.DatUknorl > @dkon300)
	

			-----------------------------------------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - pocty (dni)
			----------------------------------------------------------------------------------------------


DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @count INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @POCINS1 INT;
DECLARE @POCINS2 INT;
DECLARE @POCINS3 INT;
DECLARE @POCINS4VIAC INT;
DECLARE @POCTELNYCH INT;


BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                LEFT JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                LEFT JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie

    SELECT  @POCINS1 = COUNT(@krava) FROM   #inseminacie
    SELECT  @POCINS2 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 2
	SELECT  @POCINS3 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 3
    SELECT  @POCINS4VIAC = COUNT(@krava) FROM   #inseminacie WHERE   poradie >= 4
    SELECT  @POCTELNYCH = COUNT(@krava) FROM   #inseminacie WHERE   ivyse = 9


    --SELECT  @inseminacia1 AS inseminacia1 ,  @inseminacia2 AS inseminacia2 ,  @inseminacia3 AS inseminacia3 , @inseminacia4 AS inseminacia4 , @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / interval
			----------------------------------------------------------------------------------------------


DECLARE @odatum DATE;
DECLARE @rozdiel_dni INT;
DECLARE @POCINTR INT;
DECLARE @POCSERV INT;


BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99

            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / servisperioda
			----------------------------------------------------------------------------------------------
	
	PRINT "debug info"

BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )
	

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 
			
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	
	OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum


    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
						
            SELECT  
                    @pdatum = MAX(IDAIN) ,
					@ivyse = MAX(IVYSE),
				--	@ivyse = CONVERT(INT, CASE WHEN IsNumeric(CONVERT(VARCHAR(12), MAX(IVYSE))) = 1 then CONVERT(VARCHAR(12), MAX(IVYSE)) else 0 End),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)

            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
			
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
			
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum
        END

		
		SELECT  @POCSERV = AVG(rozdiel_dni) FROM #servisperioda

		END

		CLOSE servisperioda_cursor
		DEALLOCATE servisperioda_cursor
		PRINT 'servisperioda'

		----------------------------------------------------------------------------------------------
		-- Medziobdobie
		----------------------------------------------------------------------------------------------


		PRINT 'zaciatok medziobdobie'
		DECLARE @POCMEDZ INT
		SELECT @POCMEDZ =  AVG(n.MEDZIOBD) FROM dbo.CM_Krava k 
				LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY) WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL) AND ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00'
				AND skupina LIKE
			CASE	WHEN @stado IS NOT NULL THEN @stado
					WHEN @stado IS NULL THEN NULL
					WHEN @stado = 'XX' THEN '%'
			END 
		PRINT 'koniec medziobdobie - hodnota je:' + CONVERT(VARCHAR, @POCMEDZ)

		-- SKUP
		DECLARE @SKUP VARCHAR(2)
		SELECT @SKUP = SKUPINA FROM dbo.CM_Krava WHERE CISKRAVY = @ciskravy


	
		DELETE  FROM dbo.CR_KUHD_MesUzavCH_1x WHERE   chovatel = @chov AND mesiac = @mesiac AND rok = @rok AND dekada = @dekada AND SKUP = @stado
		PRINT 'vymazal som stare data:'
		PRINT 'chovatel: '+ CONVERT(VARCHAR, @chov);
		PRINT 'rok: '+ CONVERT(VARCHAR, @rok);
		PRINT 'mesiac: '+ CONVERT(VARCHAR, @mesiac);
		PRINT 'dekada: '+ CONVERT(VARCHAR, @dekada);
		INSERT  INTO dbo.CR_KUHD_MesUzavCH_1x

			(	chovatel,
                mesiac,
                rok ,
				dekada,	
				RKO1ML,				-- rok - 1.kontroly - mlieko
				RKO1KS,				-- rok - 1.kontroly - kusy
				RKO12ML,			-- rok - 1. - 2. kontroly - mlieko
				RKO12KS,			-- rok - 1. - 2. kontroly - kusy
				RKO1KSL1,			-- rok - 1.kontroly - mlieko - 1.laktacia
				RKO1MLL1,			-- rok - 1.kontroly - kusy - 1.laktacia
				RKO12KSL1,			-- rok - 1. - 2. kontroly - kusy - 1.laktacia
				RKO12MLL1,			-- rok - 1. - 2. kontroly - mlieko - 1.laktacia
				MKO1KS,				-- mesiac - 1.kontroly - kusy
				MKO1ML,				-- mesiac - 1.kontroly - mlieko
				MKO12KS,			-- mesiac - 1.- 2. kontroly - kusy
				MKO12ML,			-- mesiac - 1.- 2. kontroly - mlieko
				POCKRAVZAP,
				POCKRAVKONT,
				POCKRAVKONTL1,
				POCKRAVZAPL1,
				MLIEKOCELKOM,	
				MLIEKOCELKOML1,	
				MLIEKOPRIEMERZ,	
				MLIEKOPRIEMERK,	
				TUKPER,			
				TUKPERL1,		
				BIELKPER,		
				BIELKPERL1,
				SB,
				SBL1,
				POMERTB11V,
				POMERTB15V,
				POMERTBOKV,
				POMERTB11VL1,
				POMERTB15VL1,
				POMERTBOKVL1,
				POCKRAV100,
				MLIEKO100,
				TUK100,
				TUK100PER,
				BIELK100,
				BIELK100PER,
				TB100,
				TB100PER,
				POCKRAV200,
				MLIEKO200,
				TUK200,
				TUK200PER,
				BIELK200,
				BIELK200PER,
				TB200,
				TB200PER,
				POCKRAV300,
				MLIEKO300,
				TUK300,
				TUK300PER,
				BIELK300,
				BIELK300PER,
				TB300,
				TB300PER,
				POCKRAV100L1,
				MLIEKO100L1,
				TUK100L1,
				TUK100PERL1,
				BIELK100L1,
				BIELK100PERL1,
				TB100L1,
				TB100L1PER,
				POCKRAV200L1,
				MLIEKO200L1,
				TUK200L1,
				TUK200PERL1,
				BIELK200L1,
				BIELK200PERL1,
				TB200L1,
				TB200PERL1,
				POCKARV300L1,
				MLIEKO300L1,
				TUK300L1,
				TUK300PERL1,
				BIELK300L1,
				BIELK300PERL1,
				TB300L1,
				TB300PERL1,
				POCINS1,
				POCINS2,
				POCINS3,
				POCINS4VIAC,
				POCTELNYCH,
				POCINTR,
				POCSERV,
				POCMEDZ,
				MKO1KSL1,
				MKO1MLL1,
				MKO12KSL1,
				MKO12MLL1,
				MLIEKOPRIEMERZL1,	
				MLIEKOPRIEMERKL1,
				generovane,
				datkon,
				SKUP

			)
			VALUES

			(	@chov ,
                @mesiac ,
                @rok,
				@dekada,
				@RKO1ML,
				@RKO1KS,
				ROUND(((@RKO12ML+@RKO1ML)/2),1), --@RKO12ML,
				@RKO1KS + @RKO12KS,
				@RKO1KSL1,
				@RKO1MLL1,
				@RKO1KSL1 + @RKO12KSL1,
				ROUND(((@RKO12MLL1+@RKO1MLL1)/2),1), --@RKO12MLL1,
				@MKO1KS,
				@MKO1ML,
				@MKO12KS,
				@MKO12ML,
				@POCKRAVZAP,
				@POCKRAVKONT,
				@POCKRAVKONT1LAK,
				@POCKRAVZAP1LAK,
				ROUND(@MLIEKOCELKOM,1),
				ROUND(@MLIEKOCELKOML1,1),
				ROUND(@MLIEKOCELKOM / @POCKRAVZAP,2),
				ROUND(@MLIEKOCELKOM / @POCKRAVKONT,2),
				ROUND(@TUKPER, 2),
				ROUND(@TUKPERL1, 2),
				ROUND(@BIELKPER, 2),
				ROUND(@BIELKPERL1, 2),
				@SB,
				@SBL1,
				@POMERTB11V,
				@POMERTB15V,
				@POMERTBOKV,
				@POMERTB11VL1,
				@POMERTB15VL1,
				@POMERTBOKVL1,
				@POCKRAV100,
				@MLIEKO100,
				@TUK100,
				@TUK100PER,
				@BIELK100,
				@BIELK100PER,
				@TB100,
				@TB100PER,
				@POCKRAV200,
				@MLIEKO200,
				@TUK200,
				@TUK200PER,
				@BIELK200,
				@BIELK200PER,
				@TB200,
				@TB200PER,
				@POCKRAV300,
				@MLIEKO300,
				@TUK300,
				@TUK300PER,
				@BIELK300,
				@BIELK300PER,
				@TB300,
				@TB300PER,
				@POCKRAV100L1,
				@MLIEKO100L1,
				@TUK100L1,
				@TUK100PERL1,
				@BIELK100L1,
				@BIELK100PERL1,
				@TB100L1,
				@TB100L1PER,
				@POCKRAV200L1,
				@MLIEKO200L1,
				@TUK200L1,
				@TUK200PERL1,
				@BIELK200L1,
				@BIELK200PERL1,
				@TB200L1,
				@TB200PERL1,
				@POCKARV300L1,
				@MLIEKO300L1,
				@TUK300L1,
				@TUK300PERL1,
				@BIELK300L1,
				@BIELK300PERL1,
				@TB300L1,
				@TB300PERL1,
				@POCINS1,
				@POCINS2,
				@POCINS3,
				@POCINS4VIAC,
				@POCTELNYCH,
				@POCINTR,
				@POCSERV,
				@POCMEDZ,
				@MKO1KSL1,
				@MKO1MLL1,
				@MKO12KSL1,
				@MKO12MLL1,
				ROUND(@MLIEKOCELKOML1 / @POCKRAVZAP1LAK,2),
				ROUND(@MLIEKOCELKOML1 / @POCKRAVKONT1LAK,2),
				GETDATE(),
				@DatPKon,
				@stado
			)


	--	EXEC CR_KUHD_mesacne_HH @chov, @rok, @mesiac, @dekada

END


go

Create PROCEDURE [dbo].[CR_ZostavaLaktacie_stupenKU_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region


END

go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[Zostava_6B_masove](@chovatel varchar(9))
AS
BEGIN

   declare @pocet_do320 float;
   declare @pocet_od321az365 float;
   declare @pocet_od366az385 float;
   declare @pocet_od386az400 float;
   declare @pocet_od401 float;
   declare @pocet_spolu float;
   
   set @pocet_do320 = 0;
   set @pocet_od321az365 = 0;
   set @pocet_od366az385 = 0;
   set @pocet_od386az400 = 0;
   set @pocet_od401 = 0;
   set @pocet_spolu = 0;
   
   declare @v_ciskravy varchar(14);
   declare @v_priemerMOzaUk_aj_PrebzaKravu float;
   
   declare @v_celkovePriemerneMO float;
   set @v_celkovePriemerneMO = 0;
   
   declare krava_cursor1 cursor for 
 
   /*
    select tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from ( 
   select k.chovatel, k.ciskravy,cp.datotel, MEDZIOBD from CM_Krava k, [Cp_Meso_TelataPoLaktacii] cp     
   where k.CISKRAVY = cp.Ciskrava and  k.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '2'
   ) as tab 
   group by tab.CISKRAVY 
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 
   */
    select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.CHOVATEL, tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from (    
   select k.chovatel, k.ciskravy,cp.datotel, MEDZIOBD from CM_Krava k  left outer join 
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV left outer join 
   [Cp_Meso_TelataPoLaktacii] cp
   on cp.Ciskrava = k.CISKRAVY
   where k.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '2' and chovmas.ZRUS is null 
   ) as tab 
   group by tab.CISKRAVY, tab.CHOVATEL 
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 

	OPEN krava_cursor1   
	FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu

		WHILE @@FETCH_STATUS = 0   
		BEGIN   
				set @v_priemerMOzaUk_aj_PrebzaKravu =  round(@v_priemerMOzaUk_aj_PrebzaKravu,0);
				set @v_celkovePriemerneMO = @v_celkovePriemerneMO + @v_priemerMOzaUk_aj_PrebzaKravu;
				if (@v_priemerMOzaUk_aj_PrebzaKravu <=320)
					begin
						set @pocet_do320 = @pocet_do320 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 321 and @v_priemerMOzaUk_aj_PrebzaKravu <= 365)
					begin
						set @pocet_od321az365 = @pocet_od321az365 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 366 and @v_priemerMOzaUk_aj_PrebzaKravu <= 385)
					begin
						set @pocet_od366az385 = @pocet_od366az385 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 386 and @v_priemerMOzaUk_aj_PrebzaKravu <= 400)
					begin
						set @pocet_od386az400 = @pocet_od386az400 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 401)
					begin
						set @pocet_od401 = @pocet_od401 + 1;
					end
				
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu is not null) /*prvostky sa neberu do uvahy*/
					begin
						set @pocet_spolu = @pocet_spolu + 1;
					end
			
				
					  
		FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu
		END
	if (@pocet_spolu!=0)
	begin	
	set @v_celkovePriemerneMO = round(@v_celkovePriemerneMO / @pocet_spolu,0)			
	end 
	
	declare @v_percento_do320 float;
	declare @v_percento_od321az365 float;
	declare @v_percento_od366az385 float;
	declare @v_percento_od386az400 float;
	declare @v_percento_od401 float;
	declare @v_percento_spolu float;
	
	set @v_percento_do320 = 0;
	set @v_percento_od321az365 = 0;
	set @v_percento_od366az385 = 0;
	set @v_percento_od386az400 = 0;
	set @v_percento_od401 = 0;
	set @v_percento_spolu = 0;
	
	if (@pocet_spolu != 0)
	begin
	set @v_percento_do320 =  round(@pocet_do320 * 100 / @pocet_spolu, 1)
	set @v_percento_od321az365 = round(@pocet_od321az365 * 100 / @pocet_spolu,1)
	set @v_percento_od366az385 = round(@pocet_od366az385 * 100 / @pocet_spolu,1)
	set @v_percento_od386az400 = round(@pocet_od386az400 * 100 / @pocet_spolu,1)
	set @v_percento_od401 = round(@pocet_od401 * 100 / @pocet_spolu,1)
	set @v_percento_spolu = round(((@pocet_do320 + @pocet_od321az365 + 
	@pocet_od366az385 + @pocet_od386az400 + @pocet_od401) * 100) / @pocet_spolu,1)
	end;
	
	select 1 as poradie ,	'do 320 dní ' as dni, @pocet_do320 as pocet,  @v_percento_do320 as percento
	union 
	select 2 as poradie,	'321-365 dní ' as dni,	@pocet_od321az365 as pocet,  @v_percento_od321az365 as percento
	union 
	select 3 as poradie,	'366-385 dní ' as dni,	@pocet_od366az385 as pocet,  @v_percento_od366az385 as percento
	union 
	select 4 as poradie,	'386-400 dní ' as dni,	@pocet_od386az400 as pocet ,  @v_percento_od386az400 as percento
	union 
	select 5 as poradie,	'nad 401 dní ' as dni,	@pocet_od401 as pocet,  @v_percento_od401 as percento
	union 
	select 6 as poradie,	'spolu ' as dni, @pocet_spolu as pocet, @v_percento_spolu as percento
	union 
	select 7 as poradie,	'priemerné MO ' as dni, @v_celkovePriemerneMO as pocet, null as percento
	order by poradie
	
	CLOSE krava_cursor1   
	DEALLOCATE krava_cursor1
END
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 23.03.2016
-- Description:	Nahradi nuly bodkami v CEHZ
-- =============================================
CREATE FUNCTION [dbo].[S_uprav_CEHZ]
(
	@CEHZ varchar(14)
)
RETURNS varchar(14)
AS
BEGIN
	if (substring(@CEHZ, 3, 14) = '000000000000' or len(@CEHZ) <> 14)
		set @CEHZ = NULL

	return 
		(select (substring(@CEHZ, 1, 2) + RIGHT('..............', 12-len(cislo)) + cislo) as cislo
					from 
					(select 
						substring(@CEHZ, 
						patindex('%[^0]%',substring(@CEHZ, 3, 14))+2, 14) as cislo
					) as t 
		)

END

go

Create PROCEDURE [dbo].[CR_ZostavaLaktacie_sektor_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date=''

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go



-- =============================================
-- procedura ::C_aktual_plem_potomok:: nahradena funkciou ::C_aktual_plem_potomok_funkcia::

-- Author:		PSSR, š.p.
-- Create date: 03.08.2011
-- Last update: 01.06.2015
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 

-- Update:
--				Odobrate plemena S (12.5%) - ako vo FANDe
--				Spojenie plemien H a R za urcitych podmienok
--				Opravene spocitanie plemien pri pocte > 4
--				Osetrene vstupy
--				Opravene poradie plemien pri rovnakych KR... - beru sa podla priority ako boli v jeho predkoch (S-12.5 CH-12.5 >> S-6.3 CH-6.3)
--				1.6.2015 - vyhodene X ako posledne v poradi
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_plem_potomok_funkcia_test]
(
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)
)	
RETURNS @table TABLE
					 (
					--potomok varchar(14), 
					--PL1_P varchar(10),
					--PL2_P varchar(10),
					--PL3_P varchar(10),
					--PL4_P varchar(10),
					--PL5_P varchar(10),

					--krava varchar(14), 
					--PL1_M varchar(10),
					--PL2_M varchar(10),
					--PL3_M varchar(10),
					--PL4_M varchar(10),
					--PL5_M varchar(10),

					--otec varchar(14), 
					--PL1_O varchar(10),
					--PL2_O varchar(10),
					--PL3_O varchar(10),
					--PL4_O varchar(10),
					--PL5_O varchar(10)

					potomok varchar(14), 
					PL1 varchar(10),
					KR1 float,
					PL2 varchar(10),
					KR2 float,
					PL3 varchar(10),
					KR3 float,
					PL4 varchar(10),
					KR4 float,
					PL5 varchar(10),
					Matka varchar(14), 
					skladba_M varchar(50)
					
					)

AS
BEGIN	
	--print N'start: '-- + @USCISLO_O + ' + ' + @USCISLO_M;
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
	
	declare @podiely table 
	(		
		PL [varchar](2),
		KR [decimal](5,2),
		Pr [int]
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2),

	@HR_M [decimal](5,2),
	@HR_O [decimal](5,2)
	
	--ak neexistuje vstupny udaj, ukonci fciu
	if (@USCISLO_O is null or len(@USCISLO_O) != 14)
		return;
	if (@USCISLO_M is null or len(@USCISLO_M) != 14)
		return;
	if (@CHOVATEL is null or @CHOVATEL = '')
		return;
	
	select @PL1_O = PL1, 
		@KR1_O = KR1, 
		@PL2_O = PL2, 
		@KR2_O = KR2, 
		@PL3_O = PL3, 
		@KR3_O = KR3, 
		@PL4_O = PL4, 
		@KR4_O = KR4, 
		@PL5_O = PL5,
		@USCISLO_O = USCISLO
	from CM_Byci 
	where USCISLO = @USCISLO_O
	/*
	select @PL1_M = PL1, 
		@KR1_M = KR1, 
		@PL2_M = PL2, 
		@KR2_M = KR2, 
		@PL3_M = PL3, 
		@KR3_M = KR3, 
		@PL4_M = PL4, 
		@KR4_M = KR4, 
		@PL5_M = PL5
	from CM_Krava
	where CISKRAVY = @USCISLO_M
	*/
	
	select top 1 @PL1_M = c.PL1, 
		@KR1_M = c.KR1, 
		@PL2_M = c.PL2, 
		@KR2_M = c.KR2, 
		@PL3_M = c.PL3, 
		@KR3_M = c.KR3, 
		@PL4_M = c.PL4, 
		@KR4_M = c.KR4, 
		@PL5_M = c.PL5,
		@USCISLO_M = USCISLO
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		SELECT 
			k.PL1 AS PL1, 
			k.KR1 AS KR1, 
			k.PL2 AS PL2, 
			k.KR2 AS KR2, 
			k.PL3 AS PL3, 
			k.KR3 AS KR3, 
			k.PL4 AS PL4, 
			k.KR4 AS KR4, 
			k.PL5 AS PL5,
			k.CISKRAVY AS USCISLO
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			--AND k.DOVVYR IS NULL
			AND k.CHOVATEL = @CHOVATEL 
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		SELECT
			t.PL1 AS PL1, 
			t.KR1 AS KR1, 
			t.PL2 AS PL2, 
			t.KR2 AS KR2, 
			t.PL3 AS PL3, 
			t.KR3 AS KR3, 
			t.PL4 AS PL4, 
			t.KR4 AS KR4, 
			t.PL5 AS PL5,
			t.CISTELATA AS USCISLO
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	

	
	--ak by sa otec alebo matka nenasiela.. konci
	if (@PL1_O is null or @PL1_O = '')
		return ;
	if (@PL1_M is null or @PL1_M = '')
		return ;
	--if (@USCISLO_O is null or len(@USCISLO_O) != 14)
	--	return;
	--if (@USCISLO_M is null or len(@USCISLO_M) != 14)
	--	return;

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom, 1)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 2)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 3)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 4)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 5)			
		end			
	end
		
	--zistenie, kolko plemien H a R ma otec
	set @HR_O = (select COUNT(*) from @podiely where PL in ('H','R'))
	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom, 6)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 7)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 8)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 9)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 10)			
		end			
	end

	--zistenie, kolko plemien H a R ma matka
	set @HR_M = (select COUNT(*) from @podiely where PL in ('H','R')) -  @HR_O

	--1.6.2015 - aktualizacia - vyhodene X ako posledne
	--ak X, nastav najvysiu prioritu
	--if (select COUNT(*) from @podiely where PL = 'X') > 0	
	--begin
	--	update @podiely
	--	set Pr = '100'
	--	where PL = 'X'
	--end

	
	--Ak je vela plemien, tak H a R sa spoja, ak sa tam nachadzaju
	--Ale ak jedno zviera obsahuje aj H aj R, tak ich nespajaj
	if ((select COUNT(distinct pl) from @podiely where KR > 6) > 5
	and  (@HR_O <> 2 and @HR_M <> 2))
	begin
		update @podiely
		set PL = 'H'
		where PL = 'R'
	end
	
	-- scitanie plemien a usporiadanie na zaklade priority podla rodica
	--insert @podiely_usp 
	--select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	--GROUP by PL
	----order by SUM(isnull(KR, 0)) desc, PL asc
	insert @podiely_usp 
	select PL, ROUND(sum(isnull(KR, 0)),1) as KR from @podiely	
	GROUP by PL
	order by KR desc, Min(Pr) asc--, Min(ID) asc	

	--set @zvPlem = (select KR from @podiely_usp where KR='R')

	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		--update @podiely_usp
		--set KR = 0, PL = null
		--where KR < @zvPlem

		DELETE FROM  @podiely_usp
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		-- prirad dalsie plemena > 4 k prvemu...
		if @KR_pom < 100
			set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR2_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	

	insert into @table
	select '              ' AS Potomok, 
	@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5,
	--@PL1_P + '-' + CONVERT(varchar, ISNULL(@KR1_P, 0)) + ' ' +
	--ISNULL(@PL2_P + '-' + CONVERT(varchar, ISNULL(@KR2_P, 0)) + ' ','') +
	--ISNULL(@PL3_P + '-' + CONVERT(varchar, ISNULL(@KR3_P, 0)) + ' ','') +
	--ISNULL(@PL4_P + '-' + CONVERT(varchar, ISNULL(@KR4_P, 0)) + ' ','') +
	--ISNULL(@PL5_P, '')
	-- AS SKUPINA,

	--@PL1_P + '-' + CONVERT(varchar, ISNULL(@KR1_P, 0)) as PL1_P,
	--ISNULL(@PL2_P + '-' + CONVERT(varchar, ISNULL(@KR2_P, 0)),'') as PL2_P,
	--ISNULL(@PL3_P + '-' + CONVERT(varchar, ISNULL(@KR3_P, 0)),'') as PL3_P,
	--ISNULL(@PL4_P + '-' + CONVERT(varchar, ISNULL(@KR4_P, 0)),'') as PL4_P,
	--ISNULL(@PL5_P, '') as PL5_P,

	
	@USCISLO_M AS Matka,

	--@PL1_M AS PL1_M, 
	--@KR1_M AS KR1_M, 
	--@PL2_M AS PL2_M, 
	--@KR2_M AS KR2_M, 
	--@PL3_M AS PL3_M, 
	--@KR3_M AS KR3_M, 
	--@PL4_M AS PL4_M, 
	--@KR4_M AS KR4_M, 
	--@PL5_M AS PL5_M,
	
	--@PL1_M + '-' + CONVERT(varchar, ISNULL(@KR1_M, 0)) + ' ' +
	--ISNULL(@PL2_M + '-' + CONVERT(varchar, ISNULL(@KR2_M, 0)) + ' ','') +
	--ISNULL(@PL3_M + '-' + CONVERT(varchar, ISNULL(@KR3_M, 0)) + ' ','') +
	--ISNULL(@PL4_M + '-' + CONVERT(varchar, ISNULL(@KR4_M, 0)) + ' ','') +
	--ISNULL(@PL5_M, '')
	-- AS SKUPINA_M

			@PL1_M + '-' + CONVERT(varchar, cast(ISNULL(@KR1_M, 0) as float)) + ' ' +
	ISNULL(@PL2_M + '-' + CONVERT(varchar, cast(ISNULL(@KR2_M, 0) as float)) + ' ','') +
	ISNULL(@PL3_M + '-' + CONVERT(varchar, cast(ISNULL(@KR3_M, 0) as float)) + ' ','') +
	ISNULL(@PL4_M + '-' + CONVERT(varchar, cast(ISNULL(@KR4_M, 0) as float)) + ' ','') +
	ISNULL(@PL5_M, '')
	 AS SKUPINA_M


	-- @PL1_M + '-' + CONVERT(varchar, ISNULL(@KR1_M, 0)) as PL1_M,
	--ISNULL(@PL2_M + '-' + CONVERT(varchar, ISNULL(@KR2_M, 0)),'') as PL2_M,
	--ISNULL(@PL3_M + '-' + CONVERT(varchar, ISNULL(@KR3_M, 0)),'') as PL3_M,
	--ISNULL(@PL4_M + '-' + CONVERT(varchar, ISNULL(@KR4_M, 0)),'') as PL4_M,
	--ISNULL(@PL5_M, '')  as PL5_M,

	--@USCISLO_O AS Otec,

	----@PL1_O + '-' + CONVERT(varchar, ISNULL(@KR1_O, 0)) + ' ' +
	----ISNULL(@PL2_O + '-' + CONVERT(varchar, ISNULL(@KR2_O, 0)) + ' ','') +
	----ISNULL(@PL3_O + '-' + CONVERT(varchar, ISNULL(@KR3_O, 0)) + ' ','') +
	----ISNULL(@PL4_O + '-' + CONVERT(varchar, ISNULL(@KR4_O, 0)) + ' ','') +
	----ISNULL(@PL5_O, '')
	---- AS SKUPINA
	--@PL1_O + '-' + CONVERT(varchar, ISNULL(@KR1_O, 0))  AS PL1_O,
	--ISNULL(@PL2_O + '-' + CONVERT(varchar, ISNULL(@KR2_O, 0)),'') AS PL2_O,
	--ISNULL(@PL3_O + '-' + CONVERT(varchar, ISNULL(@KR3_O, 0)),'') AS PL3_O,
	--ISNULL(@PL4_O + '-' + CONVERT(varchar, ISNULL(@KR4_O, 0)),'') AS PL4_O,
	--ISNULL(@PL5_O, '') AS PL5_O

	--@PL1_O AS PL1_O, 
	--@KR1_O AS KR1_O, 
	--@PL2_O AS PL2_O, 
	--@KR2_O AS KR2_O, 
	--@PL3_O AS PL3_O, 
	--@KR3_O AS KR3_O, 
	--@PL4_O AS PL4_O, 
	--@KR4_O AS KR4_O, 
	--@PL5_O AS PL5
	--select @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	/*
	select 'Otec', @PL1_O, @KR1_O, @PL2_O, @KR2_O, @PL3_O, @KR3_O, @PL4_O, @KR4_O, @PL5_O
	select 'Matka', @PL1_M, @KR1_M, @PL2_M, @KR2_M, @PL3_M, @KR3_M, @PL4_M, @KR4_M, @PL5_M
	select 'Potomok', @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	*/
	--return (0)
	--print 'end';
	return;
END


--select * from  C_aktual_plem_potomok_funkcia ('SK000800996953','SK000485942309','309529011')
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 24.8.2016
-- Description:	Rozbitie filtra na jednotlive polozky:Chov.zvaz, sektor, stupenKU...
-- =============================================
CREATE function [dbo].[CR_ZostavaLaktacie_RozbitieFiltra2]
	(@Filter varchar(max)=''
	)
returns @rozbitieFiltra table 
	(
	--str VARCHAR(50),
	--Filter VARCHAR(max)null,
	Oznacenie VARCHAR(50)null,
	Plem_Zvaz VARCHAR(50)null ,
	Sektor_StupenKU VARCHAR(50)null,
	SR VARCHAR(50)null,
	kraj_nazov VARCHAR(50)null,
	okres_nazov VARCHAR(50)null,
	Region_nazov VARCHAR(70)null,
	podnik_nazov VARCHAR(100)null,
	chov_nazov VARCHAR(50)null,
	obec_nazov VARCHAR(50)null,
	chov_zvaz VARCHAR(100)null,
	kap_ust VARCHAR(100)null,
	vyr_obl VARCHAR(100)null,
	sektor_nazov VARCHAR(100)null,
	stupenKU_nazov VARCHAR(100)null,
	PlemTyp VARCHAR(50)null
	)
as	
begin


--declare @Filter varchar(max)='SR,1'
set @Filter = (select REPLACE(@filter, ',', '.'))

declare @n int
set @n=(select count(seq) from string2table (@Filter,'.') )
--declare @rozbitieFiltra table 
--(str VARCHAR(50))

--INSERT INTO @rozbitieFiltra 
--

declare @Oznacenie varchar(50)
set @Oznacenie = (select PARSENAME(@Filter, @n)) 
declare @Plem_Zvaz as varchar(50)
set @Plem_Zvaz = (select PARSENAME(@Filter, @n-1))
declare @Sektor_StupenKU as varchar(50)
set @Sektor_StupenKU = (select PARSENAME(@Filter, @n-2))

/*
print '@n'
print @n

print '@Oznacenie'
print @Oznacenie
print '@Plem_Zvaz'
print @Plem_Zvaz
print '@Sektor_StupenKU'
print @Sektor_StupenKU
*/
--SELECT PARSENAME(x.s, @n) AS Oznacenie,
--		PARSENAME(x.s,@n-1) AS Plem_Zvaz, 
--		PARSENAME(x.s, @n-2) AS Sektor_StupenKU,
	INSERT INTO @rozbitieFiltra 
	select 
	--@Filter as Filter,
	@Oznacenie as Oznacenie,
	@Plem_Zvaz as Plem_Zvaz,
	@Sektor_StupenKU as Sektor_StupenKU,
	(select distinct case when (SUBSTRING(PARSENAME(@Filter, @n) ,1,2)='SR') then ('Slovenská republika')end) as SR,
	(select distinct case when (SUBSTRING(PARSENAME(@Filter, @n) ,1,2)='SR') then ('') 
		else case when (SUBSTRING(PARSENAME(@Filter, @n) ,1,1)='R') then ('') 
		else (select  NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(PARSENAME(@Filter, @n) ,1,1))end end) as kraj_nazov,
	(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(PARSENAME(@Filter, @n),1,3)) as okres_nazov,
	(select nazov FROM NC_REGION h where ('R'+h.REG)= PARSENAME(@Filter, @n)) as Region_nazov,
	(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(PARSENAME(@Filter, @n) ,1,6))  as  podnik_nazov,
	(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and a.TYPZV='1' and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= PARSENAME(@Filter, @n)) as chov_nazov,
	(select OBEC FROM NM_CHOVMAS a where a.ZRUS is null and a.TYPZV='1' and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= PARSENAME(@Filter, @n) ) as obec_nazov,
	(select nazov FROM NC_CharChov e where e.DRUHHZ='1' and ('ChZ'+e.KOD)= PARSENAME(@Filter, @n-1) ) as chov_zvaz,
	(select nazov FROM NC_KapUst m where ('KUst'+ m.KOD)= PARSENAME(@Filter, @n-1) ) as kap_ust,
	(select nazov FROM NC_VyrObl o where ('Obl'+ o.KOD)= PARSENAME(@Filter, @n-1) ) as vyr_obl,
	(select nazov FROM NC_Sektor f where ('S'+ f.ID)= PARSENAME(@Filter, @n-2)) as sektor_nazov,
	(select nazov FROM NC_SposVyk g where ('StKU'+ g.KOD)= PARSENAME(@Filter, @n-2)) as stupenKU_nazov,
	(select case when (SUBSTRING(PARSENAME(@Filter, @n-1),1,3)<>'ChZ') then PARSENAME(@Filter, @n-1)end) as PlemTyp 

--FROM @rozbitieFiltra  
--CROSS APPLY (SELECT REPLACE(str, ',', '.')) AS x(s)

return;-- @rozbitieFiltra
end

go

Create PROCEDURE [dbo].[CR_ZostavaLaktacie_stupenKU_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_TypPlem_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

------ prepocet pre chov
----DECLARE prepocet_cursor CURSOR
----FOR
----SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
----				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----    OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;                    
            
----			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----			EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END



----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor


------SET @counter = 0;

------ prepocet pre podnik
----DECLARE prepocet_cursor CURSOR
----FOR
----SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----   OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;
                    
            
----                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END
----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor

----	   --SET @counter = 0;


----DECLARE prepocet_cursor CURSOR	-- prepocet pre okres
----FOR
----SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----    OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;
                    
            
----                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----                             EXEC CR_ZostavaLaktacie_TypPlem @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END


----	   SET @counter = 0;
----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_TypPlem @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_TypPlem @chov, @datumOd, @datumDo, @region


END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac-- and (ch.DEKADA = @DEKADA or @DEKADA is null)
		--(ch.CHOV like @CHOV+'%' or @CHOV is null)
		--	and ((ch.ROK = @rok and ch.MESIAC = @mesiac )--and ch.DEKADA = @DEKADA)
		--	or
		--	((@dekada is null or @dekada = '')
		--	and
		--	(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
		--	OR
		--	(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
		--	OR
		--	(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
		--	or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARKRAV as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '3' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_OTELENIA as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '4' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_PRESUNY as ezk
	on h.IDR_HLAS = ezk.ID_CP
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '5' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ROZBORAK as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '6' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ROZBORAK_OPR as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '7' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARTELIATML as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '8' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_HLASSKUP as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '9' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_DOKVAZML as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

	union

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_DOKVAZMAS as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

	UNION

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARTELIATMAS as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '16' and ezk.CISCHYBY is not null


	order by CHOV, TYP_HLAS

end
go

CREATE procedure [dbo].[Rocenka_KO_Tab_VysKUStr]
    @TypPlem varchar(2),
	@rok varchar(4),
	@StupenKu varchar(1)

	
	
	
	
as
begin

	
	--select * 
	select v.id,v.TypPlem,  v.StupenKU, v.KrOkr, v.Podnik, v.Stado, v.NazovStada, v.PlemenoStada, v.PocKoz_Prip, v.PocKoz_PredVyrad, v.PocKoz_Jal, v.PocKoz_Obah, v.PocNarKozl, v.PercOplod, v.PercPlod, v.PercPlodNaKozu, 
	isnull( case when k.TITUL_PRED is null or k.TITUL_PRED = ' ' then '' else k.TITUL_PRED + ' ' end  + 
			k.PRIEZVISKO + ' ' + k.meno +
			case when k.TITUL_ZA is null or k.TITUL_ZA = ' ' then '' else ', ' + k.TITUL_ZA end + ' - ' + 
			--k.FUNKCIA + '   ', '') + 
			case when k.PRIEZVISKO is not null and (k.FUNKCIA  is null or k.FUNKCIA = ' ') then 'majiteľ' else k.FUNKCIA end + '   ', '') + 
		isnull( 
			case when z.TITUL_PRED is null or z.TITUL_PRED = ' ' then '' else z.TITUL_PRED + ' ' end  + 
			z.PRIEZVISKO + ' ' + z.meno + ' - ' +  z.FUNKCIA, '')  as osoba,
	--null as Osoba, 
	--Osoba1, Osoba2, Osoba3, Osoba4, 
	--isnull(k.TITUL_PRED + '', '') + 
	case when k.TITUL_PRED is null or k.TITUL_PRED = ' ' then '' else k.TITUL_PRED + ' ' end  + 
	k.PRIEZVISKO + ' ' + k.meno + 
	case when k.TITUL_ZA is null or k.TITUL_ZA = ' ' then '' else ', ' + k.TITUL_ZA end
	as osoba1, k.FUNKCIA as osoba2,
	--isnull(z.TITUL_PRED + ' ', '') + 
	case when z.TITUL_PRED is null or z.TITUL_PRED = ' ' then '' else z.TITUL_PRED + ' ' end  + 
	z.PRIEZVISKO + ' ' + z.meno as osoba3, z.FUNKCIA as osoba4,
 	v.StupenKUNazov, v.Rok
 ,pl.NAZOV
	from dbo.GP_Rocenka_VysKUStr as v
	left outer join plis.dbo.GC_Plemena as pl on pl.KODPL2 = v.PlemenoStada
	left outer join NM_PODNIK p on p.krokr + p.podnik = v.krokr + v.podnik 
	left outer join NM_Konatel k on k.id =  p.ID_KONATEL
	left outer join NM_CHOVMAS c on c.KRAJ + c.okres + c.podnik + c.chov = v.krokr + v.podnik  + v.Stado  and TypZv = 4
	left outer join NM_Zootechnik z on z.id =  c.ID_ZOOTECHNIK
		where  -- z.rok = @rok and 
	 v.TypPlem = @TypPlem and v.Rok= @rok and v.StupenKU = @StupenKu
	 order by v.id
end


--		exec [Rocenka_KO_Tab_VysKUStr] 'C', 2017, '1'
--		exec [Rocenka_KO_Tab_VysKUStr] 'C', 2017, '2'
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko --Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a sektora
-- =============================================
 Create procedure [dbo].[Roc_MLHDH_ZostavaLaktacie_zvaz_sektor]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (100) null,
	  [Sektor_kod][varchar](2)null,
	  [Sektor][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null,
		[Sektor_kod][varchar](2)null,
		[Sektor][varchar](100)null		
	)

insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,reg.Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
 left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
		 
 --select * from  @Laktacie order by CHOVATEL

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov,
		d.FSEKTOR as Sektor_kod, 
		e.NAZOV as Sektor
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV)
		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
		
	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1
				
declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD, CharChov, Sektor_kod, Sektor)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null

	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

--select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	----select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
  	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		----select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaCelk order by CHOV

insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
		(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD)+','+('S'+l.Sektor_kod)as Filter,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD and ZapojL1.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD and ZapojL2.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojLCelk.CharChov_KOD=l.CharChov_KOD and ZapojLCelk.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.CharChov_KOD=l.CharChov_KOD and LAKV1.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.CharChov_KOD=l.CharChov_KOD and LAKV2.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD and LAKVC.Sektor_kod=l.Sektor_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.CharChov_KOD=l.CharChov_KOD and L1.Sektor_kod=l.Sektor_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD and L2.Sektor_kod=l.Sektor_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD and lCelk.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD and NL1.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD and NL2.Sektor_kod=l.Sektor_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD and NlCelk.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD and ZL1.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD and ZL2.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD and ZCelk.Sektor_kod=l.Sektor_kod)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 03.10.2016
-- Description:	Vytvorenie Tabulky SP_Bahnice_Rep - Kolko ktora bahnica mala potomkov
-- =============================================
CREATE PROCEDURE SP_aktual_Bahnice_Rep
AS
BEGIN
	truncate table SP_Bahnice_Rep
/*
drop table SP_Bahnice_Rep

create table SP_Bahnice_Rep 
(
	bahcis varchar(9) NOT NULL,	
	--narodCel int,
	--pocVrh int,
	NarodCel int,
	NarBar int,
	OdchCel int,
	OdchBar int,
	NaChovCel int,
	NaChovBar int,
	pocVrh int,

	indRepr float,
	skratZap varchar(9)	
	,CONSTRAINT PK_SP_Bahnice_Rep PRIMARY KEY CLUSTERED (bahcis)
)
*/

				insert into SP_Bahnice_Rep
				select b.bahcis,				
				s.NarodCel, s.NarBar,
				s.OdchCel,
				s.OdchBar,
				s.NaChovCel,
				s.NaChovBar,
				s.PocVrh,
				cast(s.NarodCel as float)/s.PocVrh as IndRepr,
				dbo.[S_Bahnica_reprodukcia_skrat_forma](b.BAHCIS)
				FROM SM_BAHNICA b
				 LEFT OUTER JOIN SC_SubLin ON SUBSTRING(b.OTLUC, 1, 4) = SC_SubLin.CISLIN 
				 --LEFT OUTER JOIN function_SP_SumReprBah(@chov) as s ON s.BahCis=b.BahCis 
				 LEFT OUTER JOIN dbo.function_SP_SumReprBahRok_All() as s ON s.BahCis=b.BahCis 
				--WHERE (b.KROKR + b.PODNIK + b.STADO = @chov)


END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko ...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_zvaz]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null
		
	)

insert into @Laktacie	--moje povodme
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
	  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 
 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD,CharChov)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
   CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov   

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.CharChov_KOD=l.CharChov_KOD )
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV2.CharChov_KOD=l.CharChov_KOD)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and L1.CharChov_KOD=l.CharChov_KOD) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 4.1.2016
-- Description:	Vrati mesacnu uzavierku chovov (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[CR_KURHD_MesUzavCHov]
    @rok varchar(4),
	@mesiac varchar(2),
	--@DEKADA varchar(1) = '',
	@CHOV varchar(9) = ''
	
as
begin
declare @chovy table
([chov]varchar(9)
)
insert into @chovy
select distinct chov
	
from plis.dbo.CR_KURHD_MesUzavCH_1 as x
where (x.chov like @CHOV+'%' or @CHOV is null)
	and x.rok = @rok and x.MESIAC = @mesiac --and (x.dekada = @DEKADA or @DEKADA is null)
	
--select * from @chovy



declare @kontrola table
(
[chov]varchar(9),
[kontrola] date, 
generovane datetime
)
insert into @kontrola 
select c.chov,
MAX(k.kontrola)/* from plis.dbo.CR_KURHD_MesUzavCH_1 as k where c.chov = k.chov and k.rok=@rok and k.mesiac=@mesiac /*group by generovane*/)*/
, k.generovane
from @chovy as c 
left outer join plis.dbo.CR_KURHD_MesUzavCH_1 as k  on c.chov=k.chov
where --(k.dekada =@DEKADA  or @DEKADA is null) and
  k.rok=@rok and k.mesiac=@mesiac
group by c.chov,k.generovane

--select * from @kontrola




	select	
	   m.chov
      ,m.rok
      ,m.mesiac
      --,m.dekada
	  ,dk.kontrola as DatKontroly
	  --(select top 1 kontrola from plis.dbo.CR_KURHD_MesUzavCH_1 where (chov like @CHOV+'%' or @CHOV is null) and rok=@rok and mesiac= @mesiac and dekada=@DEKADA) as DatKontroly
      ,m.CISKRAVY
	  ,case when m.SKUPINA ='0' then null else m.SKUPINA end as skupina
      ,m.PORPREBLAK
      ,m.ZMENA
      ,m.ZNAK
      ,m.SPI
      ,m.PERSPOL
      ,m.DATNAR as DATNAR
      ,m.PLEMKR
      ,m.DATOT as DATOT
      ,m.PK
      ,m.ML1
      ,m.ZN1
      ,m.ML2
      ,m.ZN2
      ,m.ML3
      ,m.ZN3
      ,m.ML4
      ,m.ZN4
      ,m.ML5
      ,m.ZN5
      ,m.ML6
      ,m.ZN6
      ,m.ML7
      ,m.ZN7
      ,m.ML8
      ,m.ZN8
      ,m.ML9
      ,m.ZN9
      ,m.ML10
      ,m.ZN10
      ,m.ML11
      ,m.ZN11
      ,m.ML12
      ,m.ZN12
      ,m.PTUKU1
      ,m.PBIELK1
      ,m.PTB1
      ,m.SB1
      ,m.PTUKU2
      ,m.PBIELK2
      ,m.PTB2
      ,m.SB2
      ,m.LAKTDNI
      ,m.UDNI
      ,m.NAPML
      ,m.NAPTK
      ,m.UPERT
      ,m.NAPBL
      ,m.UPERB
      ,m.PORINS
      ,m.OLINREG
      ,m.DTOTOC as DTOTOC
	  ,m.DATINS AS DATINS
      ,m.OUC
	  ,m.otec
      ,m.OTPLEM
      ,m.MATKA
      ,m.MAPLEM
      ,m.INTERVAL
      ,m.SERVPER
      ,m.MEDZIOB
      ,m.OVEKRM
      ,m.POHLTEL
      ,m.PRIEBPOR
      ,m.nap_dni
      ,m.nap_mliekokg
      ,m.nap_tukper
      ,m.nap_bielkper
      ,m.nap_tkg
      ,m.nap_bkg
	  ,m.DOVVYR
	  ,(select case when m.DOVVYR is not null then 'V' else ''end) as V,
	  m.generovane,
	  a.nazov as chov_nazov,
		b.NAZOV as podnik_nazov,
		c.NAZOV as kraj,
		d.NAZOV as okres,
		a.OBEC as obec
		
	   from plis.dbo.CR_KURHD_MesUzavCH_1 as m
	   Left join @kontrola as dk on dk.chov = m.chov and dk.generovane = m.generovane
	   Left join plis.dbo.NM_CHOVMAS a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV)= m.chov
	   LEFT JOIN plis.dbo.NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	   LEFT JOIN plis.dbo.NC_KRAJ c ON (b.KRAJ = c.KRAJ)
	   LEFT JOIN plis.dbo.NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
	
	where
	a.ZRUS is null  --b.ZRUS is null and 
	and a.TYPZV = 1
	and (m.chov like @CHOV+'%' or @CHOV is null)
	and m.rok = @rok and m.MESIAC = @mesiac --and (m.dekada = @DEKADA  or @DEKADA is null)

	
	order by m.chov,m.skupina,m.CISKRAVY
	end
go

-- =============================================
-- Author:		Zsolt Tak�cs
-- Create date:	18.12.2018
-- Description:	Vytvorenie kopie dat pre vysledky BLUP.
-- =============================================
CREATE   PROCEDURE [dbo].[PM_BLUP_KopirujData]
AS  
BEGIN  
	truncate table PM_BLUP_VSKAN_VYSLEDKY;
	insert into PM_BLUP_VSKAN_VYSLEDKY select *,null,null,null,null,null,null,null from PM_BLUP_VSKAN;
	truncate table PM_BLUP_VSPRA_VYSLEDKY;
	insert into PM_BLUP_VSPRA_VYSLEDKY select *,null,null,null,null,null,null,null from PM_BLUP_VSPRA;
	truncate table PM_BLUP_CDATA_VYSLEDKY;
	insert into PM_BLUP_CDATA_VYSLEDKY select *,null,null,null,null,null,null,null from PM_BLUP_CDATA;
END;
go


-- =============================================
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch, ktore boli spracovane v danom mesiaci.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_mes_OPR]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN


DECLARE @cistelata varchar(14)

	 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
		FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY 
		WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

		--SELECT count(*)as pocet FROM #idrtable 
		
	DECLARE @counter int
	SET @counter = 0;

	DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR)
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)

	
	IF ( SELECT COUNT(*) FROM dbo.CM_Vazenia v LEFT outer JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR ) WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac) >= 1
		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR )
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

				INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1  then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360- @h1 )*1000/ NULLIF(@dp,0)),@d1) 
			
			print '@h1'
			print @h1 
			print '@h2n' 
			print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor
			
			
			 --select * from  #abc1

			--CREATE TABLE CR_TMHD_pripust_mes_Opr
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int
			--	)
			
			insert into CR_TMHD_pripust_mes_Opr
				select *, @mesiac + 1 as mesiacPripus  from #abc1 where (hmot2 > 200 and hmot2 < 360 and DatPrip2 >= DatPrip1 and DatPrip2 > getdate()and DatPrip2 < dateadd(month,1, getdate() ))
							or (hmot2 > 360 and DatPrip1 >= getdate() and DatPrip1 < dateadd(month,1, getdate() ))
			union 
				select *, @mesiac + 2 from #abc1 where (hmot2 > 200 and hmot2 < 360 and DatPrip2 >= DatPrip1 and DatPrip2 >= dateadd(month,1,getdate()) and DatPrip2 < dateadd(month,2, getdate() )) 
						or (hmot2 > 360 and DatPrip1 > dateadd(month,1, getdate()) and DatPrip1 < dateadd(month,2, getdate()))
			union 
				select *, @mesiac + 3 from #abc1 where (hmot2 > 200 and hmot2 < 360 and DatPrip2 >= DatPrip1 and DatPrip2 >= dateadd(month,2, getdate()) and DatPrip2 < dateadd(month,3, getdate() ))
						or (hmot2 > 360 and DatPrip1 > dateadd(month,2, getdate()) and DatPrip1 < dateadd(month,3, getdate()))
			union 
				select *, null as mesiacPripus from #abc1 where cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 < 360 and DatPrip2 >= DatPrip1 and DatPrip2 > getdate() and DatPrip2 < dateadd(month,3,getdate()))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DatPrip1 < dateadd(month,3, getdate())))

--select dateadd(day,((360- hmot2 )*100/ dp),datvaz2) from #abc1

end
end
go

-- =============================================
----pre rocenku MLHD 
----procedura -prepocet procedur Roc_MLHD_ZostavaLaktacie_KapMast 
----							 Roc_MLHD_ZostavaLaktacie_VyrObl 
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy_Opr nasledne sa da prepociat procedura Roc_MLHD_TAB1_rocenka_prepocet a udaje sa vlozia do tabulky Roc_MLHD_1_rocenka
---- M. Holesova
-- =============================================
CREATE PROCEDURE [dbo].[Roc_MLHD_ZostavaLaktacie_KapMast_VyrObl_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC Roc_MLHD_ZostavaLaktacie_KapMast @chov, @datumOd, @datumDo, @region
							EXEC Roc_MLHD_ZostavaLaktacie_VyrObl @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC Roc_MLHD_ZostavaLaktacie_KapMast @chov, @datumOd, @datumDo, @region
	EXEC Roc_MLHD_ZostavaLaktacie_VyrObl @chov, @datumOd, @datumDo, @region


END

go

CREATE FUNCTION [PM_DajTypPl] (@plemeno varchar(8))  
RETURNS int  
AS  
BEGIN  
     IF (@plemeno='10000000') RETURN (1)
     IF (@plemeno IN ('20000000','30000000','30250000','30310000','30500000','30560000','30810000','40000000','70000000')) RETURN (2)
     IF (@plemeno IN ('62000000','60000000','80000000','63000000','13000000','50000000')) RETURN (3)
	 RETURN(0)
END;
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 02.11.2016
-- Description:	spojenie vsetkych oviec - barany, ovce a potomkov do jednej tabulky

--	update  2018.06.13 - pridane neznamy otec a matka... pre rodokmen
--			2016.11.15 - drobne kozmeticke upravy
--			2016.12.07 - fix pohlavie pri IB
-- =============================================
CREATE PROCEDURE [dbo].[C_napln_CP_Kravicky]
AS
BEGIN
		truncate table CP_Kravicky

		INSERT INTO CP_Kravicky
		SELECT IDBYKA, uscislo, CHOVATEL, 
		LIN + '-' + CAST(RIGHT(1000 + REG, 3) as varchar) as LinReg, 		
		DatNar, 'CM_Byci', '01', 1, null as PriznakKU,
		PL1 + '-' + CONVERT(varchar, cast(ISNULL(KR1, 0) as float)) + ' ' +
		ISNULL(PL2 + '-' + CONVERT(varchar, cast(ISNULL(KR2, 0) as float)) + ' ','') +
		ISNULL(PL3 + '-' + CONVERT(varchar, cast(ISNULL(KR3, 0) as float)) + ' ','') +
		ISNULL(PL4 + '-' + CONVERT(varchar, cast(ISNULL(KR4, 0) as float)) + ' ','') +
		ISNULL(PL5, '') AS SKUPINA, OTUSCIS, IDOT, MATKA, IDMA, NULL , DATVYRAD, MENO
		FROM CM_Byci

		INSERT INTO CP_Kravicky
		SELECT IDKRAVY, CISKRAVY, CHOVATEL, 
		NULL as LinReg, DatNar, 'CM_Krava', '02', 2, priznakKU,
		PL1 + '-' + CONVERT(varchar, cast(ISNULL(KR1, 0) as float)) + ' ' +
		ISNULL(PL2 + '-' + CONVERT(varchar, cast(ISNULL(KR2, 0) as float)) + ' ','') +
		ISNULL(PL3 + '-' + CONVERT(varchar, cast(ISNULL(KR3, 0) as float)) + ' ','') +
		ISNULL(PL4 + '-' + CONVERT(varchar, cast(ISNULL(KR4, 0) as float)) + ' ','') +
		ISNULL(PL5, '') AS SKUPINA, OUSCIS, IDOT, MA, IDMA, DOVVYR , DATVYR, BB_NAME
		FROM CM_Krava
		--WHERE CISKRAVY not in (select uscislo from CP_Kravicky where uscislo = CISKRAVY)
						
		-- INTERBULL - Ainbreeding2 - Importovany Barani
		INSERT INTO CP_Kravicky 
		SELECT NULL, uscislo, NULL, 
		NULL as LinReg, DatNar, 'IB', Pohlavie, cast(pohlavie as int), NULL,
		plemeno, otec, NULL, MATKA, NULL, NULL , NULL, MENO
		FROM Ainbreeding2 a
		--WHERE uscislo not in (select uscislo from CP_Kravicky k where k.uscislo = a.uscislo)


		INSERT INTO CP_Kravicky
		SELECT IDTELATA, CISTELATA, CHOVATEL, 
		NULL as LinReg, DatNar, 'CM_Telata', POHLAVIE, 
		CASE WHEN (substring(pohlavie, 2,1) = 1 AND pohlavie <> '61') THEN 1 ELSE   
			(CASE WHEN (substring(pohlavie, 2,1) = 2 AND pohlavie <> '62') THEN 2 ELSE 
			null END) END AS pohl2, PriznakKU,
		PL1 + '-' + CONVERT(varchar, cast(ISNULL(KR1, 0) as float)) + ' ' +
		ISNULL(PL2 + '-' + CONVERT(varchar, cast(ISNULL(KR2, 0) as float)) + ' ','') +
		ISNULL(PL3 + '-' + CONVERT(varchar, cast(ISNULL(KR3, 0) as float)) + ' ','') +
		ISNULL(PL4 + '-' + CONVERT(varchar, cast(ISNULL(KR4, 0) as float)) + ' ','') +
		ISNULL(PL5, '') AS SKUPINA, OUC, IDOT, MATKA, IDMA, DOVVYR , DATVYR, NULL
		FROM CM_Telata
		--WHERE CISTELATA not in (select uscislo from CP_Kravicky where uscislo = CISTELATA)

		--update SP_Ovecky
		--set dovod = '0'
		--where dovod is null

		--update SP_Ovecky
		--set otecCis = null
		--where otecCis = '00000000'

		--update SP_Ovecky
		--set matkaCis = null
		--where matkaCis  = '00000000'
		----set dovod = null
		----where dovod = '0'

		insert into CP_Kravicky
			(uscislo, meno)
		values
			('XX1234567890XX', 'NEZNÁMY'),
			('SK999999999999','NEZNÁMA')
END


/*

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

--	drop table CP_Kravicky

CREATE TABLE [dbo].[CP_Kravicky](
	ID bigint NULL,
	[uscislo] [varchar](14) NULL,
	[chov] [varchar](9) NULL,
	[LinReg] [varchar](7) NULL,	
	[datNar] [date] NULL,
	[tab] [varchar](14) NULL,
	[pohl] [varchar](2) NULL,
	[ppohl] int NULL,	--presne pohlavie - byk, krava
	[priznakKU] [varchar](1) NULL,
	[plemSkl] [varchar](35) NULL,
	[otec] [varchar](14) NULL,	
	[idOtec] bigint NULL,	
	[matka] [varchar](14) NULL,
	[idMatka] bigint NULL,	
	[dovod] [varchar](2) NULL,
	[datVyr] [date] NULL,
	[meno] [varchar](50) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

SET ANSI_PADDING ON

GO

CREATE NONCLUSTERED INDEX [idx_uscislo] ON [dbo].[CP_Kravicky]
(
	[uscislo] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

SET ANSI_PADDING ON

GO

CREATE NONCLUSTERED INDEX [idx_chov] ON [dbo].[CP_Kravicky]
(
	[chov] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

*/


--		exec [C_napln_CP_Kravicky] 
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 1.12.2015
-- Description:	skopirovanie dat z migracie do PLISu (tabulky cm_krava, cm_kontroly, cm_naplak, cm_laktacie, cm_telata, cm_vazenia) pre zadanu mnozinu chovov
-- =============================================
CREATE PROCEDURE [dbo].[C_kopiruj_data_z_migracie]
    @ParIDDalsSprac bigint = 1000000
AS
BEGIN
    -- ohranicenie pre zaznamy s id spracovania chovu, ktory je uz v dalsom spracovani
	declare @IDDALSSPRAC bigint = @ParIDDalsSprac

	-- zoznam chovov pre dotiahnutie dat
	SELECT CHOV into #temp_vybr_chovy from CP_CHOVY_DATA_Z_FANDU 

	  --select count(*) from #temp_vybr_chovy
	-- KRAVY -----------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove from s112.migracia.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy ON #kravy_nove(ciskravy)


	select distinct ciskravy into #kravy_zvysne from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_zvysne_ciskravy ON #kravy_zvysne(ciskravy)


	select distinct ciskravy into #kravy_spolu from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_spolu_ciskravy ON #kravy_spolu(ciskravy)

	merge PLIS.dbo.CM_Krava as k
	using (select * from s112.migracia.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= m_k.OTECLIN
		  ,k.OTECREG			= m_k.OTECREG
		  ,k.OUSCIS				= m_k.OUSCIS
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= m_k.IDOT
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP

	when not matched by target then insert (
		   CISKRAVY
		  ,CHOVATEL
		  ,SKUPINA
		  ,PK
		  ,OTECLIN
		  ,OTECREG
		  ,OUSCIS
		  ,MA
		  ,IDOT
		  ,IDMA
		  ,DATNAR
		  ,PL1
		  ,KR1
		  ,PL2
		  ,KR2
		  ,PL3
		  ,KR3
		  ,PL4
		  ,KR4
		  ,PL5
		  ,FARBA
		  ,ZNMATBYK
		  ,ZNAKET
		  ,POHLAVIE
		  ,ZDRAVTR
		  ,PLEMENNA
		  ,PORPREBLAK
		  ,DATPOSKONT
		  ,DOVVYR
		  ,DATVYR
		  ,DATZAR
		  ,TRUZIT
		  ,PORLAKMAX
		  ,MLIEKOMAX
		  ,TUKMAX
		  ,BIELMAX
		  ,LAKTOZAMAX
		  ,POCVSETLAK
		  ,POCNORLAK
		  ,MLIEKOPR
		  ,TUKPRKG
		  ,TUKPRPER
		  ,BIELPRKG
		  ,BIELPRPER
		  ,LAKTPRKG
		  ,LAKTPRPER
		  ,TYPPLEM
		  ,FARMACEHZ
		  ,PRIZNAKKU
		  ,KRJA
		  ,PINT
		  ,PSER
		  ,PMED
		  ,BB_ANIMALCODE
		  ,BB_NAME
		  ,BB_IMPORTED
		  ,BB_BREEDING_NAME
		  ,BB_OWNER
		  ,BB_KEEPER
		  ,BB_USE
		  ,BB_COUNTRYCODE
		  ,BB_CATEGORY
		  ,BB_HERDBOOK_NUMBER)
		values ( 
			m_k.CISKRAVY ,
			m_k.CHOVATEL ,
			m_k.SKUPINA  ,
			m_k.PK		  ,
			m_k.OTECLIN  ,
			m_k.OTECREG  ,
			m_k.OUSCIS	  ,
			m_k.MA		  ,
			m_k.IDOT	  ,
			m_k.IDMA	  ,
			m_k.DATNAR	  ,
			m_k.PL1	  ,
			m_k.KR1	  ,
			m_k.PL2	  ,
			m_k.KR2	  ,
			m_k.PL3	  ,
			m_k.KR3	  ,
			m_k.PL4	  ,
			m_k.KR4	  ,
			m_k.PL5	  ,
			m_k.FARBA	  ,
			m_k.ZNMATBYK ,
			m_k.ZNAKET	  ,
			m_k.POHLAVIE ,
			m_k.ZDRAVTR  ,
			m_k.PLEMENNA ,
			m_k.PORPREBLAK,
			m_k.DATPOSKONT,
			m_k.DOVVYR	  ,
			m_k.DATVYR	  ,
			m_k.DATZAR	  ,
			m_k.TRUZIT	  ,
			m_k.PORLAKMAX,
			m_k.MLIEKOMAX,
			m_k.TUKMAX	  ,
			m_k.BIELMAX  ,
			m_k.LAKTOZAMAX,
			m_k.POCVSETLAK,
			m_k.POCNORLAK,
			m_k.MLIEKOPR ,
			m_k.TUKPRKG  ,
			m_k.TUKPRPER ,
			m_k.BIELPRKG ,
			m_k.BIELPRPER,
			m_k.LAKTPRKG ,
			m_k.LAKTPRPER,
			m_k.TYPPLEM  ,
			m_k.FARMACEHZ,
			m_k.PRIZNAKKU,
			m_k.KRJA	  ,
			m_k.PINT	  ,
			m_k.PSER	  ,
			m_k.PMED	  ,
			m_k.BB_ANIMALCODE,
			m_k.BB_NAME  ,
			m_k.BB_IMPORTED,
			m_k.BB_BREEDING_NAME,
			m_k.BB_OWNER ,
			m_k.BB_KEEPER,
			m_k.BB_USE	  ,
			m_k.BB_COUNTRYCODE,
			m_k.BB_CATEGORY,
			m_k.BB_HERDBOOK_NUMBER);
					  	  

	merge PLIS.dbo.CM_Krava as k
	using (select * from s112.migracia.dbo.CM_Krava where ciskravy in (select ciskravy from #kravy_zvysne)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= m_k.OTECLIN
		  ,k.OTECREG			= m_k.OTECREG
		  ,k.OUSCIS				= m_k.OUSCIS
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= m_k.IDOT
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP;


	delete from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)
	 and ((SPRACINSERT < @IDDALSSPRAC or SPRACINSERT is null) and (SPRACUPDATE < @IDDALSSPRAC or SPRACUPDATE is null))			

	print 'CM_Krava'


	-- KONTROLY --------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_kontr from s112.migracia.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_kontr ON #kravy_nove_kontr(ciskravy)


	select distinct ciskravy into #kravy_zvysne_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_kontr ON #kravy_zvysne_kontr(ciskravy)


	select distinct ciskravy into #kravy_spolu_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_spolu_ciskravy_kontr ON #kravy_spolu_kontr(ciskravy)

	--------

	select ciskravy, datkontr into #kontroly_nove from s112.migracia.dbo.CM_Kontroly where ciskravy in (select ciskravy from #kravy_spolu_kontr) and DATKONTR > '2013-01-01'

	CREATE INDEX IDX_kontroly_nove_ciskravydatkontr ON #kontroly_nove(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_stare from plis.dbo.CM_Kontroly as k where DATKONTR > '2013-01-01' and ciskravy in (select ciskravy from #kravy_spolu_kontr)

	CREATE INDEX IDX_kontroly_stare_ciskravydatkontr ON #kontroly_stare(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_delete from #kontroly_stare except select ciskravy, datkontr from #kontroly_nove


	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s112.migracia.dbo.CM_Kontroly as k1 where k1.ciskravy in (select ciskravy from #kravy_nove_kontr) and k1.DATKONTR > '2013-01-01') as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD
	when not matched then insert (					  
			 CISKRAVY	
			,DATKONTR	
			,ZNKONTR	
			,DENDOBA	
			,INTERVAL	
			,CISCHOVU	
			,SKUPINA	
			,PREPOCET	
			,MLIEKO	
			,MLIEKPR	
			,PRT		
			,PERCTUKU	
			,PERCBIELK	
			,PERCLAKTOZ
			,BUNECELEM	
			,LAKTDNI	
			,PORPREBLAK
			,PLATNOST	
			,KodIntSB	
			,KodIntLD)
		values ( 		
			 m_ko.CISKRAVY	
			,m_ko.DATKONTR	
			,m_ko.ZNKONTR	
			,m_ko.DENDOBA	
			,m_ko.INTERVAL	
			,m_ko.CISCHOVU	
			,m_ko.SKUPINA	
			,m_ko.PREPOCET	
			,m_ko.MLIEKO	
			,m_ko.MLIEKPR	
			,m_ko.PRT		
			,m_ko.PERCTUKU	
			,m_ko.PERCBIELK	
			,m_ko.PERCLAKTOZ
			,m_ko.BUNECELEM	
			,m_ko.LAKTDNI	
			,m_ko.PORPREBLAK
			,m_ko.PLATNOST	
			,m_ko.KodIntSB	
			,m_ko.KodIntLD); 					  

	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s112.migracia.dbo.CM_Kontroly as k where k.DATKONTR > '2013-01-01' and k.ciskravy in (select ciskravy from #kravy_zvysne_kontr)) as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set 
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD;

	delete ak from plis.dbo.CM_Kontroly ak where DATKONTR > '2013-01-01' and exists (select 1 from #kontroly_delete as sk where ak.CISKRAVY = sk.ciskravy and ak.DATKONTR = sk.datkontr)
	and ((ak.SPRACINSERT < @IDDALSSPRAC or ak.SPRACINSERT is null) and (ak.SPRACUPDATE < @IDDALSSPRAC or ak.SPRACUPDATE is null))

	print 'CM_Kontroly'


	-- NAPLAK ----------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_napl from s112.migracia.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_napl ON #kravy_nove_napl(ciskravy)


	select distinct ciskravy into #kravy_zvysne_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_napl ON #kravy_zvysne_napl(ciskravy)


	select distinct ciskravy into #kravy_spolu_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_spolu_ciskravy_napl ON #kravy_spolu_napl(ciskravy)

	---------

	select distinct ciskravy into #naplak_nove from s112.migracia.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_nove_ciskravy ON #naplak_nove(ciskravy)


	select distinct ciskravy into #naplak_stare from plis.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_stare_ciskravy ON #naplak_stare(ciskravy)


	select ciskravy into #naplak_delete from #naplak_stare except select ciskravy from #naplak_nove


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s112.migracia.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_nove_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,ZNAK			
			,BEZT			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_n.CISKRAVY
			,m_n.CHOVATEL
			,m_n.PORLAK
			,m_n.DATOTEL
			,m_n.CHOVOTEL
			,m_n.CHOVLAKT
			,m_n.PRIEBPOROD
			,m_n.POHLAVIE
			,m_n.ZMENA
			,m_n.DATUKONL
			,m_n.DATUKNORL
			,m_n.MEDZIOBD
			,m_n.HMOTKR
			,m_n.LAKTDNI
			,m_n.LAKDNIN
			,m_n.MLIEKCEL
			,m_n.MLIEKNOR
			,m_n.TUKCEL
			,m_n.TUKNOR
			,m_n.BIELKCEL
			,m_n.BIELKNOR
			,m_n.LAKTOZAC
			,m_n.LAKTOZAN
			,m_n.INDPER
			,m_n.INDLAK
			,m_n.CHARUST
			,m_n.MAXLAK
			,m_n.ZNAK
			,m_n.BEZT
			,m_n.MLIEKO100
			,m_n.TUK100
			,m_n.BIELK100
			,m_n.LAKT100
			,m_n.MLIEKO200
			,m_n.TUK200
			,m_n.BIELK200
			,m_n.LAKT200
			,m_n.DATZAPZVK
			,m_n.DATVYBZVK
			,m_n.KOD_DOJ
			,m_n.KOD_MEDZ);


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s112.migracia.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_zvysne_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ;

	delete n from plis.dbo.CM_Naplak n where exists (select 1 from #naplak_delete as nd where nd.CISKRAVY = n.CISKRAVY) and datotel > '2012-01-01'
	 and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null))

	print 'CM_Naplak'


	-- LAKTACIE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_lakt from s112.migracia.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_lakt ON #kravy_nove_lakt(ciskravy)


	select distinct ciskravy into #kravy_zvysne_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_lakt ON #kravy_zvysne_lakt(ciskravy)


	select distinct ciskravy into #kravy_spolu_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_spolu_ciskravy_lakt ON #kravy_spolu_lakt(ciskravy)

	--------

	select ciskravy, PORLAK into #laktacie_nove from s112.migracia.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_nove_ciskravyporlak ON #laktacie_nove(ciskravy, porlak)


	select ciskravy, PORLAK into #laktacie_stare from plis.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_stare_ciskravyporlak ON #laktacie_stare(ciskravy, porlak)


	select ciskravy, porlak into #laktacie_delete from #laktacie_stare except select ciskravy, porlak from #laktacie_nove


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s112.migracia.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_nove_lakt) /*and DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,SPOSOBKU			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_l.CISKRAVY
			,m_l.CHOVATEL
			,m_l.PORLAK
			,m_l.DATOTEL
			,m_l.CHOVOTEL
			,m_l.CHOVLAKT
			,m_l.PRIEBPOROD
			,m_l.POHLAVIE
			,m_l.ZMENA
			,m_l.DATUKONL
			,m_l.DATUKNORL
			,m_l.MEDZIOBD
			,m_l.HMOTKR
			,m_l.LAKTDNI
			,m_l.LAKDNIN
			,m_l.MLIEKCEL
			,m_l.MLIEKNOR
			,m_l.TUKCEL
			,m_l.TUKNOR
			,m_l.BIELKCEL
			,m_l.BIELKNOR
			,m_l.LAKTOZAC
			,m_l.LAKTOZAN
			,m_l.INDPER
			,m_l.INDLAK
			,m_l.CHARUST
			,m_l.MAXLAK
			,m_l.SPOSOBKU
			,m_l.MLIEKO100
			,m_l.TUK100
			,m_l.BIELK100
			,m_l.LAKT100
			,m_l.MLIEKO200
			,m_l.TUK200
			,m_l.BIELK200
			,m_l.LAKT200
			,m_l.DATZAPZVK
			,m_l.DATVYBZVK
			,m_l.KOD_DOJ
			,m_l.KOD_MEDZ);


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s112.migracia.dbo.CM_Laktacie as l1 where l1.ciskravy in (select ciskravy from #kravy_zvysne_lakt) /*and l1.DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ;

	delete a from PLIS.dbo.CM_Laktacie a where exists (select 1 from #laktacie_delete as ld where a.CISKRAVY = ld.ciskravy and a.PORLAK = ld.porlak)
	and ((a.SPRACINSERT < @IDDALSSPRAC or a.SPRACINSERT is null) and (a.SPRACUPDATE < @IDDALSSPRAC or a.SPRACUPDATE is null)) --and DATUKONL > '2012-01-01'

	print 'CM_Laktacie'


	-- TELATA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------



	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_stare from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_nove from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ into #telata_zvysne_ from #telata_stare except select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ from #telata_nove

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR/*, nullif(POHLAVIE, '') as POHLAVIE*/ into #telata_zvysne from #telata_zvysne_

	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null OR
	   t.cistelata is not null and 	t.cistelata = m_t.cistelata)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= m_t.OTECLIN
		  ,t.OTECREG		= m_t.OTECREG
		  ,t.OUC			= m_t.OUC
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= m_t.DOVVYR
		  ,t.DATVYR			= m_t.DATVYR
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= m_t.IDOT
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR
	when not matched then insert (
			 CISTELATA	
			,CHOVNAR	
			,OTECLIN	
			,OTECREG	
			,OUC		
			,MATKA		
			,HMOTOT		
			,DATNAR		
			,HMOTNAR	
			,PL1		
			,KR1		
			,PL2		
			,KR2		
			,PL3		
			,KR3		
			,PL4		
			,KR4		
			,PL5		
			,TYPPLEM	
			,FARBA		
			,PORLAK		
			,POHLAVIE	
			,ZNAKET		
			,PREUKAZ	
			,DOBANOS	
			,CHOVATEL	
			,PRIZNAKKU	
			,PRIEBPOR	
			,URCTEL		
			,PRICOBTPOR	
			,PRICUHYN	
			,DOVVYR		
			,DATVYR		
			,IDMA		
			,IDOT		
			,DONORKA	
			,IDDONOR)
	VALUES (
			m_t.CISTELATA
			,m_t.CHOVNAR
			,m_t.OTECLIN
			,m_t.OTECREG
			,m_t.OUC
			,m_t.MATKA
			,m_t.HMOTOT
			,m_t.DATNAR
			,m_t.HMOTNAR
			,m_t.PL1
			,m_t.KR1
			,m_t.PL2
			,m_t.KR2
			,m_t.PL3
			,m_t.KR3
			,m_t.PL4
			,m_t.KR4
			,m_t.PL5
			,m_t.TYPPLEM
			,m_t.FARBA
			,m_t.PORLAK
			,m_t.POHLAVIE
			,m_t.ZNAKET
			,m_t.PREUKAZ
			,m_t.DOBANOS
			,m_t.CHOVATEL
			,m_t.PRIZNAKKU
			,m_t.PRIEBPOR
			,m_t.URCTEL
			,m_t.PRICOBTPOR
			,m_t.PRICUHYN
			,m_t.DOVVYR
			,m_t.DATVYR
			,m_t.IDMA
			,m_t.IDOT
			,m_t.DONORKA
			,m_t.IDDONOR);

	print 'CM_Telata 1'

	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.cistelata is not null and t1.cistelata = t0.cistelata and t0.cistelata is not null)) as m_t
	on (t.cistelata is not null and t.cistelata = m_t.cistelata and m_t.cistelata is not null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= m_t.OTECLIN
		  ,t.OTECREG		= m_t.OTECREG
		  ,t.OUC			= m_t.OUC
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= m_t.DOVVYR
		  ,t.DATVYR			= m_t.DATVYR
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= m_t.IDOT
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	merge PLIS.dbo.CM_Telata as t
	using (select * from s112.migracia.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.matka = t0.matka and t1.datnar = t0.datnar /*and t1.pohlavie = t0.pohlavie*/ and t1.cistelata is null and t0.cistelata is null)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= m_t.OTECLIN
		  ,t.OTECREG		= m_t.OTECREG
		  ,t.OUC			= m_t.OUC
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= m_t.DOVVYR
		  ,t.DATVYR			= m_t.DATVYR
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= m_t.IDOT
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	print 'CM_Telata 2'

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_stare_del from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_nove_del from s112.migracia.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR, POHLAVIE into #telata_delete_ from #telata_stare_del except select CISTELATA, MATKA, DATNAR, POHLAVIE from #telata_nove_del

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR, nullif(POHLAVIE, '') as POHLAVIE into #telata_delete from #telata_delete_

	delete ad from plis.dbo.CM_Telata ad where ad.cistelata in (select cistelata from #telata_delete) and ad.CISTELATA is not null
	and ((ad.SPRACINSERT < @IDDALSSPRAC or ad.SPRACINSERT is null) and (ad.SPRACUPDATE < @IDDALSSPRAC or ad.SPRACUPDATE is null))

	delete ad1 from plis.dbo.CM_Telata ad1 where exists
	(select 1 from #telata_delete as t2 where t2.matka = ad1.matka and t2.datnar = ad1.datnar and t2.cistelata is null and ad1.cistelata is null)
	and ((ad1.SPRACINSERT < @IDDALSSPRAC or ad1.SPRACINSERT is null) and (ad1.SPRACUPDATE < @IDDALSSPRAC or ad1.SPRACUPDATE is null))

	print 'CM_Telata cele'


	-- VAZENIA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

	select CISTELATA, datvaz into #vazenia_stare from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_zvysne from #vazenia_stare except select CISTELATA, datvaz from #vazenia_nove

	merge PLIS.dbo.CM_vazenia as v
	using (select * from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy) /*and DATVAZ > '2010-01-01'*/) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC
	when not matched then insert (
			 CISTELATA	
			,DATVAZ		
			,HMOT			
			,RASTPAS		
			,CHOVVAZ		
			,TURNUS		
			,PRIZNAKKU	
			,DNIVAZ		
			,DNIPREPOC	
			,HMOTPREPOC	
			,PRIRPREPOC	
			,PRIR			
			,ZIVPRIR		
			,ZIVPRIRPREPOC)
	VALUES (	
			 m_v.CISTELATA
			,m_v.DATVAZ
			,m_v.HMOT
			,m_v.RASTPAS
			,m_v.CHOVVAZ
			,m_v.TURNUS
			,m_v.PRIZNAKKU
			,m_v.DNIVAZ
			,m_v.DNIPREPOC
			,m_v.HMOTPREPOC
			,m_v.PRIRPREPOC
			,m_v.PRIR
			,m_v.ZIVPRIR
			,m_v.ZIVPRIRPREPOC);


	merge PLIS.dbo.CM_vazenia as v
	using (select * from s112.migracia.dbo.CM_Vazenia as v0 where /*DATVAZ > '2010-01-01' and*/ exists
	(select 1 from #vazenia_zvysne as v1 where v0.cistelata = v1.cistelata and v0.DATVAZ = v1.datvaz)) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC;


	select CISTELATA, datvaz into #vazenia_stare_del from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove_del from s112.migracia.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_delete from #vazenia_stare_del except select CISTELATA, datvaz from #vazenia_nove_del

	delete av from plis.dbo.CM_Vazenia av where /*DATVAZ > '2010-01-01'and*/ exists
	(select 1 from #vazenia_delete as v1 where av.cistelata = v1.cistelata and av.DATVAZ = v1.datvaz)
	and ((av.SPRACINSERT < @IDDALSSPRAC or av.SPRACINSERT is null) and (av.SPRACUPDATE < @IDDALSSPRAC or av.SPRACUPDATE is null))

	print 'CM_Vazenia'


	---- TABULKY PRE ZOSTAVY  V PLISE -----------------------------------------------------------------------------------------------------------------------------------------------



	delete from plis.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziObdMesove 
	select * from s112.migracia.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziObdMesove'


	delete from plis.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.Cp_Meso_TelataPoLaktacii 
	select * from s112.migracia.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)

	print 'Cp_Meso_TelataPoLaktacii'


	delete from plis.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_TelataVahy 
	select * from s112.migracia.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_TelataVahy'


	delete from plis.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_ChovatelMesoPlemena 
	select * from s112.migracia.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_ChovatelMesoPlemena'


	delete from plis.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_StadaPodlaVeku 
	select * from s112.migracia.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_StadaPodlaVeku'


	delete from plis.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.cp_Meso_MediobdobieReport 
	select * from s112.migracia.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)

	print 'cp_Meso_MediobdobieReport'


	delete from plis.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_telata_1B 
	select * from s112.migracia.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_telata_1B'


	delete from plis.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Meso_1AReportTelata 
	select * from s112.migracia.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Meso_1AReportTelata'


	delete from plis.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.cp_meso_telata_3b_1 
	select * from s112.migracia.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)

	print 'cp_meso_telata_3b_1'


	delete from plis.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_KravaPoslednaUzavLaktZaradeny 
	select * from s112.migracia.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_KravaPoslednaUzavLaktZaradeny'


	delete from plis.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_KravaPoslednaUzavLakt 
	select * from s112.migracia.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_KravaPoslednaUzavLakt'


	delete from plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH 
	select * from s112.migracia.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_UZITKOVOSTKRAVPOOTCOCH'


	delete from plis.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziobdZostavaA 
	select * from s112.migracia.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziobdZostavaA'


	delete from plis.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_MedziobdZostavaB 
	select * from s112.migracia.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_MedziobdZostavaB'


	delete from plis.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Mlieko_NajKrava 
	select * from s112.migracia.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Mlieko_NajKrava'


	delete from plis.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)
	insert into plis.dbo.CP_Mlieko_Kravy_21 
	select * from s112.migracia.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)

	print 'CP_Mlieko_Kravy_21'
END

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_KapMast]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      --[CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      --[CharChov][varchar] (30) null,
	  [KapUst_kod][varchar] (2) null,
	  [KapUst][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                              
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		--[CharChov_KOD][varchar] (2) null,
  --      [CharChov][varchar] (30) null
		[KapUst_kod][varchar] (2) null,
		[KapUst][varchar] (30) null
		
	)

insert into @Laktacie	
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, /*b.KOD, b.NAZOV,*/ 
	 (case when ust.kod in ('1','2') then '2' else ust.KOD end) as KapUst_kod,
	 (case when ust.kod in ('1','2') then ' 11 - 20 kusov' else ust.NAZOV end) as KapUst,
	  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NC_KapUst as ust on ust.KOD = a.KAPMAST
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		--b.KOD as CharChov_KOD,
		--b.NAZOV as CharChov
		--ust.kod as KapUst_kod,
		--ust.NAZOV as KapUst 
		(case when ust.kod in ('1','2') then '2' else ust.KOD end) as KapUst_kod,
		(case when ust.kod in ('1','2') then ' 11 - 20 kusov' else ust.NAZOV end) as KapUst
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_KapUst as ust on ust.KOD = a.KAPMAST
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		--CharChov_KOD,
		--CharChov
		KapUst_kod,
		KapUst 
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ KapUst_kod, KapUst		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
 	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		--CharChov_KOD,
		--CharChov
		KapUst_kod as KapUst_kod,
		KapUst as KapUst
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ KapUst_kod, KapUst		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	----[CharChov_KOD][varchar] (2) null,
 ----   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null

	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		--CharChov_KOD,
		--CharChov
		KapUst_kod as KapUst_kod,
		KapUst as KapUst
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD ,CharChov*/ KapUst_kod, KapUst	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	--CharChov_KOD as CharChov_KOD,
	--CharChov as Charchov
	KapUst_kod as KapUst_kod,
		KapUst as KapUst
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	----CharChov_KOD as CharChov_KOD,
 ----   CharChov as Charchov
 	KapUst_kod as KapUst_kod,
	KapUst as KapUst
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, /*CharChov_KOD ,CharChov*/ KapUst_kod, KapUst)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2,
   --CharChov_KOD as CharChov_KOD,
   -- CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
--[CharChov_KOD][varchar] (2) null,
--    [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, /*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov 
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov   
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst


insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+/*('ChZ'+l.CharChov_KOD)*/ ('KUst'+l.KapUst_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL1.CharChov_KOD=l.CharChov_KOD*/ ZapojL1.KapUst_kod = l.KapUst_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL2.CharChov_KOD=l.CharChov_KOD*/ ZapojL2.KapUst_kod = l.KapUst_kod )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and /*ZapojLCelk.CharChov_KOD=l.CharChov_KOD*/ ZapojLCelk.KapUst_kod=l.KapUst_kod) 
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV1.CharChov_KOD=l.CharChov_KOD*/ LAKV1.KapUst_kod=l.KapUst_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV2.CharChov_KOD=l.CharChov_KOD*/ LAKV2.KapUst_kod=l.KapUst_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKVC.CharChov_KOD=l.CharChov_KOD*/ LAKVC.KapUst_kod=l.KapUst_kod )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*L1.CharChov_KOD=l.CharChov_KOD*/ L1.KapUst_kod=l.KapUst_kod) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and /*L2.CharChov_KOD=l.CharChov_KOD*/ L2.KapUst_kod=l.KapUst_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and /*lCelk.CharChov_KOD=l.CharChov_KOD*/ lCelk.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and /*NL1.CharChov_KOD=l.CharChov_KOD*/ NL1.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and /*NL2.CharChov_KOD=l.CharChov_KOD*/ NL2.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and /*NlCelk.CharChov_KOD=l.CharChov_KOD*/ NlCelk.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and /*ZL1.CharChov_KOD=l.CharChov_KOD*/ ZL1.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and /*ZL2.CharChov_KOD=l.CharChov_KOD*/ ZL2.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and /*ZCelk.CharChov_KOD=l.CharChov_KOD*/ ZCelk.KapUst_kod=l.KapUst_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 


/***	insert into Roc_MLHD_Tab_1
	 (
	 [oblast] ,[stpec_7] ,[stpec_8],[stpec_9],[stpec_10],[stpec_11],[stpec_12],[stpec_13]  ,[stpec_15] ,[stpec_16] ,[stpec_17],[stpec_18],[stpec_19]
	 ,[stpec_20] ,[stpec_21],[stpec_22],[stpec_23],[stpec_24],[stpec_25] ,[stpec_26],[stpec_27],[stpec_28],[stpec_29],[rok],[Por],[DatumOd],[DatumDo],[datumGenerovania]
	 )
	select 
	  (case when filter = 'SR' then 'SLOVENSKO'
	   when filter = 'SR,Obl1' then 'ZA VÝROBNÚ OBLASŤ 1'
	   when filter = 'SR,Obl2' then 'ZA VÝROBNÚ OBLASŤ 2'
	   when filter = 'SR,ChZ1' then 'ZA ŠĽACHTIT. CHOVY STRAKATÉ'	
	   when filter = 'SR,ChZ2' then 'ZA ŠĽACHTIT. CHOVY PINZGAU'
	   when filter = 'SR,ChZ3' then 'ZA ŠĽACHTIT. CHOVY HOLSTEIN'
	   when filter = 'SR,ChZ5' then 'ZA ŠĽACHTIT. CHOVY BRAUNVIEH'
	   when filter = 'SR,ChZ0' then 'OSTATNÉ CHOVY'
	   when filter = 'SR, ,S01' then 'POĽNOHOSP. DRUŽSTVÁ'
	   when filter = 'SR, ,S02' then 'ŠTÁTNE MAJETKY'
	   when filter = 'SR, ,S03' then 'POĽNOHOSP. ŠKOLY'
	   when filter = 'SR, ,S08' then 'SÚKROMNÝ SEKTOR'
	   when filter = 'SR,KUst2' then 'ZA MAŠTALE DO 20'
	   when filter = 'SR,KUst3' then 'MAŠT. 21-50'
	   when filter = 'SR,KUst4' then 'MAŠT. 51-100'
	   when filter = 'SR,KUst5' then 'MAŠT. 101-220'
	   when filter = 'SR,KUst6' then 'MAŠT. 221-500'
	   when filter = 'SR,KUst7' then 'MAŠT. 501 A VIAC'
	  else ''
	  END  ) as oblast

  , PocLakN1 as stpec_7
      ,LakdniNL1 as stpec_8
      ,MliekNorL1 as stpec_9
      , round((TukNorL1*100)/MliekNorL1,2) as stpec_10
      ,TukNorL1 as stpec_11
      ,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
      ,BielkNorL1 as stpec_13
      --,as stpec_14Den
      --,as stpec_14Mesiac
      ,PocLakN2 as stpec_15
      ,LakDniNL2 as stpec_16
      ,MliekNorL2 as stpec_17
      ,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
	  
      ,TukNorL2 as stpec_19
      ,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
      ,BielkNorL2 as stpec_21
      ,MedziobdCelk as stpec_22
      ,PocLakNcelk as stpec_23      
	  ,LakDniNCelk as stpec_24
      ,MliekNorCelk as stpec_25
      ,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
      ,TukNorCelk as stpec_27
      ,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
      ,BielkNorCelk as stpec_29
      ,datepart (year,datumGenerovania)as rok
     ,(case when filter = 'SR' then '1'
	   when filter = 'SR,Obl1' then '2'
	   when filter = 'SR,Obl2' then '3'
	   when filter = 'SR,ChZ1' then '4'	
	   when filter = 'SR,ChZ2' then '5'
	   when filter = 'SR,ChZ3' then '6'
	   when filter = 'SR,ChZ5' then '7'
	   when filter = 'SR,ChZ0' then '8'
	   when filter = 'SR, ,S01' then '9'
	   when filter = 'SR, ,S02' then '10'
	   when filter = 'SR, ,S03' then '11'
	   when filter = 'SR, ,S08' then '12'
	   when filter = 'SR,KUst2' then '13'
	   when filter = 'SR,KUst3' then '14'
	   when filter = 'SR,KUst4' then '15'
	   when filter = 'SR,KUst5' then '16'
	   when filter = 'SR,KUst6' then '17'
	   when filter = 'SR,KUst7' then '18'
	  else ''
	  END  ) as Por
      ,DatumOd as DatumOd
      ,DatumDo as DatumDo
      ,datumGenerovania as datumGenerovania
	  FROM [dbo].[CR_LaktacneZostavy] 
	  
	  where DatumOd = @datumOd and datumGenerovania = @datumOd

	  and Filter in ('SR','SR,Obl1','SR,Obl2','SR,ChZ1','SR,ChZ2' ,'SR,ChZ3' ,'SR,ChZ5','SR,ChZ0' ,'SR, ,S01','SR, ,S02','SR, ,S03','SR, ,S08',
	  'SR,KUst2' ,'SR,KUst3' , 'SR,KUst4','SR,KUst5' , 'SR,KUst6','SR,KUst7') 
	  **/
	  end
go

-- =============================================
-- Author:		David Florek
-- Create date:	13.09.2017
-- Description:	Vrati produkt pre dany chov KUMP
-- =============================================
CREATE FUNCTION [dbo].[CP_KUMP_DAJPRODUKT]
(
	@chov varchar(9),
	@datum DATE = null
)
RETURNS varchar(5)
AS
BEGIN
	declare @pocet int;
	declare @fak varchar(1);

	if(@datum is null) set @datum = CAST(GETDATE() as date);

	set @fak = (select FaktSkup from NM_CHOVMAS where KRAJ + OKRES + PODNIK + CHOV = @chov and TYPZV = 1)
	if(@fak <> '0')
		begin
			set @pocet =
			(select SUM(s.HD_KRAVA) from NE_STATISTIKY s join NM_CHOVMAS ch on s.CHOV = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
			where DATUM = @datum and LEFT(s.CHOV, 6) = LEFT(@chov, 6) and ch.FaktSkup = @fak and ch.TYPZV = 1);
		end
	else
		begin
			set @pocet = (select HD_KRAVA from NE_STATISTIKY where DATUM = @datum and CHOV = @chov);
		end

	return case
		when @pocet < 120 then '16101' else '16102' end;
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 
/*
declare @chov varchar(9) = '207527051',--'1',	--'102501011',
	@datumOd date = '2016-12-01',
	@datumDo date ='2017-01-01',
	@region varchar(2) = null,
	@plem varchar(10) = null
*/
Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
) --ON [PRIMARY]

declare @kravy table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	ciskravy varchar(14),
	PORPREBLAK int
	--[PocZapojL1] int NULL
)

	 
if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.kraj = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.okres = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.podnik = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.chovatel = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 	 

 end
 ELSE
 begin 
	insert into @Laktacie
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov

	 FROM NC_OKRES as reg 
	 left outer join dbo.View_CP_LaktaciePreZostavy as Lakt on ((reg.KRAJ + reg.OKRES)= lakt.okres ) --substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	where 
	(reg.REGION=@region or @region is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (PLEM=@plem or @plem is null)
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null AND eko.TYPZV='1'
		and Lakt.MLIEKCEL <>''


	Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' --and k.PORPREBLAK ='1'
		and (reg.REGION=@region or @region is null)
end




declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)
	

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		null as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k
	 where
		k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS
		-----,case when @plem is not null then pl.TYPS end 


--select * from @PocZapojL1 
declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	where k.PORPREBLAK >='2' 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojLCelk
	from @kravy as k 
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	-----[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----	case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
----	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	null as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
					----case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	 ----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	---,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----, l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV



insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
 	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	----(Select distinct case when @chov is null and @region is null then ('SR') else
	----case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))---- and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null))----and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null))----and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null))----and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null))----and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null))----and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null))----and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null))----and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null))----and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go

-- =============================================

-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_UpozorneniaNaVsetkychChovoch_testovaci]

AS
BEGIN

	/*AK TABULKA NEEXISTUJE, TAK JU VYTVOR, INAK ZMAZ Z NEJ DATA*/
	
	IF NOT EXISTS 
		( 
		SELECT * FROM sys.tables t
		INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
		WHERE s.name = 'dbo' and t.name = 'CP_UpozorneniaNaChove2' 
		)
		BEGIN
			CREATE TABLE CP_UpozorneniaNaChove2(
			chovatel VARCHAR(9),
			typ_ku varchar(4),
			zoot VARCHAR(30),
			nezhod_rodic_pat_s_plis INT,
			pocet_nezhod_preb_lakt INT,
			chybne_MO INT, -- do 200
			vysoke_MO INT -- nad 1200
			);
		END;
	ELSE 
		BEGIN 
			TRUNCATE TABLE CP_UpozorneniaNaChove2
		END; 

/*VLOZENIE DO TABULKY CP_UpozorneniaNaChove2 TYP KU, CHOV, HLAVNYCH ZOOTECHNIKOV, JEDNA SA O NEZRUSENY CHOV*/
INSERT INTO CP_UpozorneniaNaChove2 (typ_ku, chovatel, zoot)

SELECT  
	case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
	when (SPVYKON in ('4','5')) and (PRIZNAK = '01') then 'MP' 
	when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
	else 'X' 
	end,
h.KRAJ + h.OKRES + h.PODNIK + h.CHOV, osoba
FROM
		dbo.NM_PracSPU p  LEFT OUTER JOIN
		dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		where PRIZNAK='01' 


/**************------------------------------POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS--------------------------------***************/
CREATE TABLE #nezhod_pat_vs_plis
(
chovatel VARCHAR(9),
pocet_nezhodujucich_pat_plis INT
)

INSERT INTO #nezhod_pat_vs_plis (chovatel, pocet_nezhodujucich_pat_plis) 
/*
SELECT t.CHOVATEL, COUNT(*) AS pocet_nezhodujucich_pat_plis FROM (
SELECT POHL, KRAVA, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA FROM

(SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, 
k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + ISNULL(k.PL4 + 
CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, 

 CASE WHEN CHARINDEX('/',p.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(p.M,'/',''),12)  != k.MA THEN k.MA END
	WHEN LEN(p.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + p.M,12)  != k.MA THEN k.MA END
 ELSE 
	CASE WHEN k.MA != p.M THEN k.MA END 
 END AS M_PLIS

 , pv.M_suhlasi, p.KT, 
p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA
FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00') 
AND k.PRIZNAKKU <> 0
AND k.ciskravy IS NOT NULL
UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, 
b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + 
 ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN b.OTUSCIS END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) AND 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) AND 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) AND 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA,   
 CASE WHEN CHARINDEX('/',pb.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(pb.M,'/',''),12)  != b.MATKA THEN b.MATKA END
	WHEN LEN(pb.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + pb.M,12)  != b.MATKA THEN b.MATKA END
 ELSE 
	CASE WHEN b.MATKA != pb.M THEN b.MATKA END 
 END AS M_PLIS 
 , pv.M_suhlasi, 
 pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND b.USCISLO IS NOT NULL
UNION

SELECT   'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], t.DATNAR, t.PL1 + 
CONVERT(varchar, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2 + CONVERT(varchar, ISNULL(t.KR2, 0)) 
+ ' ' + ISNULL(t.PL3 + CONVERT(varchar, ISNULL(t.KR3, 0)) + ' ' + ISNULL(t.PL4 + 
CONVERT(varchar, ISNULL(t.KR4, 0)) + ' ' + ISNULL(t.PL5, ''), ''), ''), '') 
AS PLEMENO, t.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OUC END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OUC END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECLIN END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECREG END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, 
 CASE WHEN CHARINDEX('/',p.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(p.M,'/',''),12)  != t.MATKA THEN t.MATKA END
	WHEN LEN(p.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + p.M,12)  != t.MATKA THEN t.MATKA END
 ELSE 
	CASE WHEN t.MATKA != p.M THEN t.MATKA END 
 END AS M_PLIS,
pv.M_suhlasi, p.KT, 
p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA
FROM    plis.dbo.CM_Telata AS t RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON t.CISTELATA = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV 
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00')
AND t.CISTELATA IS NOT NULL
AND (SELECT k.CISKRAVY FROM plis.dbo.CM_Krava k WHERE k.CISKRAVY = t.CISTELATA) IS NULL

UNION

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN b.OUC END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN b.OUC END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) AND 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN 
	(SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) AND 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN (SELECT REG 
	FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA,  
  CASE WHEN CHARINDEX('/',pb.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(pb.M,'/',''),12)  != b.MATKA THEN b.MATKA END
	WHEN LEN(pb.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + pb.M,12)  != b.MATKA THEN b.MATKA END
 ELSE 
	CASE WHEN b.MATKA != pb.M THEN b.MATKA END 
 END AS M_PLIS,
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Telata AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.CISTELATA = pb.UC LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND b.CISTELATA IS NOT NULL
AND (SELECT bb.USCISLO FROM plis.dbo.CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL

UNION

SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], 
k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + 
ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, 
 CASE WHEN CHARINDEX('/',p.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(p.M,'/',''),12)  != k.MA THEN k.MA END
	WHEN LEN(p.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + p.M,12)  != k.MA THEN k.MA END
 ELSE 
	CASE WHEN k.MA != p.M THEN k.MA END 
 END AS M_PLIS,
pv.M_suhlasi, p.KT, 
p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA
FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
		plis.dbo.CM_Telata AS t ON t.CISTELATA = p.KRAVA 
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00') 
AND (k.ciskravy IS NULL AND t.cistelata is NULL)

UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
 pv.O_suhlasi, pb.M AS M_PA,
  CASE WHEN CHARINDEX('/',pb.M) <> 0 THEN 
	CASE WHEN 'SK' + right('000000000' + replace(pb.M,'/',''),12)  != b.MATKA THEN b.MATKA END
	WHEN LEN(pb.M) < 14 THEN CASE WHEN 'SK' + right('000000000000' + pb.M,12)  != b.MATKA THEN b.MATKA END
 ELSE 
	CASE WHEN b.MATKA != pb.M THEN b.MATKA END 
 END AS M_PLIS,
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
		plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV LEFT OUTER JOIN
		  plis.dbo.CM_Telata AS t ON t.CISTELATA = pb.UC
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND (b.USCISLO IS NULL AND t.cistelata IS NULL)

) as s
WHERE
(O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL OR M_PLIS IS NOT NULL)
) as t
GROUP BY CHOVATEL
*/

 SELECT chovatel, count(*)  
                FROM CM_Paternita_All vs
                WHERE   
                ((O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL) AND O_suhlasi = 1 AND O_PA != 'XX000000000000')
				OR M_PLIS != 
				CASE WHEN CHARINDEX('/',vs.M_PA) <> 0 THEN 
				'SK' + right('000000000' + replace(vs.M_PA,'/',''),12)
				WHEN LEN(vs.M_PA) < 14 THEN 'SK' + right('000000000000' + vs.M_PA,12)
				ELSE M_PA
				END	AND M_suhlasi = 1					
				group by chovatel
				

/**************-----------------------KONIEC POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS KONIEC--------------------------------***************/



/**/
CREATE TABLE #nezhod_preb_lakt
(
chovatel VARCHAR(9),
pocet_nezhod_preb_lakt INT
)

INSERT INTO #nezhod_preb_lakt (chovatel, pocet_nezhod_preb_lakt) 
/*select tabl2.chovatel, tabl2.pocet from (*/
select chovatel, count(*) as pocet FROM (
select tab.MATKA, tab.dat, c.PORPREBLAK, t.PORLAK, c.CHOVATEL from cm_krava c inner join
(
SELECT  t.MATKA,max(t.DATNAR) as dat
FROM CM_Telata as t 
inner JOIN CM_Krava as k on t.MATKA = k.CISKRAVY inner join NM_HDDETAIL h on 
k.CHOVATEL = (h.KRAJ + h.OKRES + h.PODNIK + h.CHOV)
WHERE k.DOVVYR is null and h.PRIZNAK = '01' and t.DATNAR is not null
group by t.MATKA) as tab 
on c.CISKRAVY = tab.MATKA
inner join CM_Telata t on t.MATKA = tab.MATKA and t.MATKA = c.CISKRAVY and tab.dat = t.DATNAR
where t.PORLAK > c.PORPREBLAK  or t.PORLAK is null or c.PORPREBLAK is null)  
as tab
group by chovatel
/*) as tabl2 right join CP_UpozorneniaNaChove2 u on tabl2.CHOVATEL = u.chovatel*/




/**/
	
	
	
	
CREATE TABLE #tab_chybne_MO
(
chovatel VARCHAR(9),
pocet_chybne_MO INT
)

INSERT INTO #tab_chybne_MO (chovatel, pocet_chybne_MO) 	
select cp.chovatel, count(*) as pocet_chybnych_MO from Cp_Meso_TelataPoLaktacii 
cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd <= 200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_chybnych_MO from
(select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
on l.CISKRAVY = k.CISKRAVY 
where k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
) as tabulka 
group by tabulka.CHOVATEL 



/**/	
	
	
	
CREATE TABLE #tab_vysoke_MO
(
chovatel VARCHAR(9),
pocet_vysoke_MO INT
)

INSERT INTO #tab_vysoke_MO (chovatel, pocet_vysoke_MO) 	
select cp.chovatel, count(*) as pocet_vysokych_MO from Cp_Meso_TelataPoLaktacii 
cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd >= 1200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_vysokych_MO from
(select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
on l.CISKRAVY = k.CISKRAVY 
where k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
) as tabulka 
group by tabulka.CHOVATEL 


/*
...
DALSIE DOPLNENIA
...
*/


	
declare @k_chovatel varchar(14);
declare @v_pocet_nezhodnych_pat_plis int;
declare @v_pocet_nezhod_preb_lakt int;
declare @v_pocet_chybne_MO int;
declare @v_pocet_vysoke_MO int;

declare kurzor_CP_UpozorneniaNaChove2 cursor for select chovatel from CP_UpozorneniaNaChove2

	OPEN kurzor_CP_UpozorneniaNaChove2   
	FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove2 INTO  @k_chovatel
		WHILE @@FETCH_STATUS = 0   
		BEGIN  
			SELECT @v_pocet_nezhodnych_pat_plis = pocet_nezhodujucich_pat_plis FROM #nezhod_pat_vs_plis WHERE chovatel = @k_chovatel; 					
			UPDATE CP_UpozorneniaNaChove2 SET nezhod_rodic_pat_s_plis=@v_pocet_nezhodnych_pat_plis WHERE chovatel = @k_chovatel;				  
			
			SELECT @v_pocet_nezhod_preb_lakt = pocet_nezhod_preb_lakt FROM #nezhod_preb_lakt WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_nezhod_preb_lakt as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove2 SET pocet_nezhod_preb_lakt=@v_pocet_nezhod_preb_lakt WHERE chovatel = @k_chovatel;
			
			SELECT @v_pocet_chybne_MO = pocet_chybne_MO FROM #tab_chybne_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_chybne_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove2 SET chybne_MO=@v_pocet_chybne_MO WHERE chovatel = @k_chovatel;		
			
			SELECT @v_pocet_vysoke_MO = pocet_vysoke_MO FROM #tab_vysoke_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_vysoke_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove2 SET vysoke_MO=@v_pocet_vysoke_MO WHERE chovatel = @k_chovatel;
			
			set @v_pocet_nezhodnych_pat_plis = null;
			set @v_pocet_nezhod_preb_lakt = null;
			set @v_pocet_chybne_MO = null;
			set @v_pocet_vysoke_MO = null;
			
		FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove2 INTO @k_chovatel
		END	
	CLOSE kurzor_CP_UpozorneniaNaChove2   
	DEALLOCATE kurzor_CP_UpozorneniaNaChove2
END


/*

exec [C_ZZ_UpozorneniaNaVsetkychChovoch_testovaci]

*/
go


CREATE PROCEDURE [dbo].[C_ZZ_Mleko_telata_3B] (@CHOVATEL as varchar(9), @rok as varchar(9),@kolko as int)
	
AS
BEGIN

	declare @k as int
	set @k=@kolko;
	
	create table #aTable  
	(
	[CHOVATEL]  varchar(9)
      ,[rok]  varchar(10)
      ,[od]  varchar(10)
      ,[m1]  int
      ,[m2]  int
      ,[m3]  int
      ,[m4]  int
      ,[m5]  int
      ,[m6]  int
      ,[m7]  int
      ,[m8]  int
      ,[m9]  int
      ,[m10]  int
      ,[m11]  int
      ,[m12]  int
	)


	declare @c as varchar(9);
	declare @y as varchar(4);

	set @c=@CHOVATEL;
	set @y=@rok;


	declare @m as varchar(2);
	declare @kr as int;
	declare @j as int;
	declare @vs as int;

	declare @m1k as int;
	declare @m1j as int;
	declare @m1s as int;

	declare @m2k as int;
	declare @m2j as int;
	declare @m2s as int;

	declare @m3k as int;
	declare @m3j as int;
	declare @m3s as int;

	declare @m4k as int;
	declare @m4j as int;
	declare @m4s as int;

	declare @m5k as int;
	declare @m5j as int;
	declare @m5s as int;

	declare @m6k as int;
	declare @m6j as int;
	declare @m6s as int;

	declare @m7k as int;
	declare @m7j as int;
	declare @m7s as int;

	declare @m8k as int;
	declare @m8j as int;
	declare @m8s as int;

	declare @m9k as int;
	declare @m9j as int;
	declare @m9s as int;

	declare @m10k as int;
	declare @m10j as int;
	declare @m10s as int;

	declare @m11k as int;
	declare @m11j as int;
	declare @m11s as int;

	declare @m12k as int;
	declare @m12j as int;
	declare @m12s as int;

	
	
			
			set @m1k=0;
				set @m1j=0;
				set @m1s=0;

				set @m2k=0;
				set @m2j=0;
				set @m2s=0;

				set @m3k=0;
				set @m3j=0;
				set @m3s=0;

				set @m4k=0;
				set @m4j=0;
				set @m4s=0;

				set @m5k=0;
				set @m5j=0;
				set @m5s=0;

				set @m6k=0;
				set @m6j=0;
				set @m6s=0;

				set @m7k=0;
				set @m7j=0;
				set @m7s=0;

				set @m8k=0;
				set @m8j=0;
				set @m8s=0;

				set @m9k=0;
				set @m9j=0;
				set @m9s=0;

				set @m10k=0;
				set @m10j=0;
				set @m10s=0;

				set @m11k=0;
				set @m11j=0;
				set @m11s=0;

				set @m12k=0;
				set @m12j=0;
				set @m12s=0;

		

				
				declare @help as varchar(4);

				set @help=convert(varchar(4), (convert(int,@y)-1));
				print N'In begining'
				print @y;
				print @help;

while(@help <= (convert(int,@y)))
begin
		print N'In beginng while'
		print @help
		print @y
		print N'OK'
		
		declare a cursor for
		select convert(varchar(2),vs.mesac) as mesac,vs.pocet as Po4etVs,j.pocet as Po4etJal,k.pocet as Po4etKrav
		from(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union 
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union 
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as vs

		left join

			(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t 
				where t.PORLAK=1 
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as j
		on vs.CHOVNAR=j.CHOVNAR and vs.rok=j.rok and vs.mesac=j.mesac

		left join

			(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK>1 
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.View_CP_Mlieko_ZoznamZivoNarodenychTeliat as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as k
		on vs.CHOVNAR=k.CHOVNAR and vs.rok=k.rok and vs.mesac=k.mesac


		where vs.CHOVNAR=@c
		and vs.rok=@y

		order by vs.mesac 
		
		open a 
		fetch next from a into @m,@vs,@j,@kr
		
		while @@FETCH_STATUS=0
		begin
		if(@m='1')
		begin
		set @m1k=@kr;
		set @m1j=@j;
		set @m1s=@vs;
		end
		
		if(@m='2')
		begin
		set @m2k=@kr;
		set @m2j=@j;
		set @m2s=@vs;
		end
		
		if(@m='3')
		begin
		set @m3k=@kr;
		set @m3j=@j;
		set @m3s=@vs;
		end
		
		if(@m='4')
		begin
		set @m4k=@kr;
		set @m4j=@j;
		set @m4s=@vs;
		end
		
		if(@m='5')
		begin
		set @m5k=@kr;
		set @m5j=@j;
		set @m5s=@vs;
		end
		
		if(@m='6')
		begin
		set @m6k=@kr;
		set @m6j=@j;
		set @m6s=@vs;
		end
		
		if(@m='7')
		begin
		set @m7k=@kr;
		set @m7j=@j;
		set @m7s=@vs;
		end
		
		if(@m='8')
		begin
		set @m8k=@kr;
		set @m8j=@j;
		set @m8s=@vs;
		end
		
		if(@m='9')
		begin
		set @m9k=@kr;
		set @m9j=@j;
		set @m9s=@vs;
		end
		
		if(@m='10')
		begin
		set @m10k=@kr;
		set @m10j=@j;
		set @m10s=@vs;
		end
		
		if(@m='11')
		begin
		set @m11k=@kr;
		set @m11j=@j;
		set @m11s=@vs;
		end
		
		if(@m='12')
		begin
		set @m12k=@kr;
		set @m12j=@j;
		set @m12s=@vs;
		end
		
		fetch next from a into @m,@vs,@j,@kr
		end
		
		close a
		deallocate a

			insert into #aTable values (
																@c,
																@y,
																'Krava',
																@m1k,
																@m2k,
																@m3k,
																@m4k,
																@m5k,
																@m6k,
																@m7k,
																@m8k,
																@m9k,
																@m10k,
																@m11k,
																@m12k
															)
				insert into #aTable values (
																@c,
																@y,
																'Jalovica',
																@m1j,
																@m2j,
																@m3j,
																@m4j,
																@m5j,
																@m6j,
																@m7j,
																@m8j,
																@m9j,
																@m10j,
																@m11j,
																@m12j
															)
		
		insert into #aTable values (
																@c,
																@y,
																'Spolu',
																@m1s,
																@m2s,
																@m3s,
																@m4s,
																@m5s,
																@m6s,
																@m7s,
																@m8s,
																@m9s,
																@m10s,
																@m11s,
																@m12s
															)
	
		insert into #aTable values(
																@c,
																@y,
																'Nápočet',
																@m1s,
																@m1s+@m2s,
																@m1s+@m2s+@m3s,
																@m1s+@m2s+@m3s+@m4s,
																@m1s+@m2s+@m3s+@m4s+@m5s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s+@m11s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s+@m11s+@m12s
		)

				set @m1k=0;
				set @m1j=0;
				set @m1s=0;

				set @m2k=0;
				set @m2j=0;
				set @m2s=0;

				set @m3k=0;
				set @m3j=0;
				set @m3s=0;

				set @m4k=0;
				set @m4j=0;
				set @m4s=0;

				set @m5k=0;
				set @m5j=0;
				set @m5s=0;

				set @m6k=0;
				set @m6j=0;
				set @m6s=0;

				set @m7k=0;
				set @m7j=0;
				set @m7s=0;

				set @m8k=0;
				set @m8j=0;
				set @m8s=0;

				set @m9k=0;
				set @m9j=0;
				set @m9s=0;

				set @m10k=0;
				set @m10j=0;
				set @m10s=0;

				set @m11k=0;
				set @m11j=0;
				set @m11s=0;

				set @m12k=0;
				set @m12j=0;
				set @m12s=0;


 Set @y= convert(varchar(4),(convert(int,@y)-1));

print N'----------------'
print @help;
print @y;
print N'--------------------'
	end		

	set @y=@rok;

	insert into #aTable (CHOVATEL,rok,od,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12)  (
	select a.CHOVATEL
	  ,a.[rok] +'-'+b.rok as rok
      ,a.[od]
      ,a.[m1]-b.m1 as j
      ,a.[m2]-b.m2 as f
      ,a.[m3]-b.m3 as m
      ,a.[m4]-b.m4 as a
      ,a.[m5]-b.m5 as maj
      ,a.[m6]-b.m6 as j
      ,a.[m7]-b.m7 as j2
      ,a.[m8]-b.m8 as a
      ,a.[m9]-b.m9 as s
      ,a.[m10]-b.m10 as o
      ,a.[m11]-b.m11 as n
      ,a.[m12]-b.m12 as d
  FROM #aTable as a
  full join #aTable as b
  on (a.CHOVATEL=b.CHOVATEL and a.od=b.od and (convert(int,b.rok)+1)=convert(int,a.rok))
  where a.CHOVATEL=@c
  and a.rok=@y
  )
  
  /**/
  
  

	
  
  /**/  
  

  print N'Sled poslednoto'
  
  select * from #aTable
			drop table #aTable
END

/*

declare @c varchar(9);
declare @r varchar(9);
declare @kolko int;

set @c = '102501011';
set @r = '2014';
set @kolko = 9;

exec C_ZZ_Mleko_telata_3B @c, @r, @kolko


*/
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania03]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin


	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint,
		ROK int,
		MESIAC int
		--DEKADA int
	)
	insert into @spracCHOVy (CHOV, IDCHOVU, ROK, MESIAC/*, DEKADA*/)
	select CHOV, idr, ch.rok, ch.mesiac /*ch.dekada */from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and @rok=rok and @mesiac=mesiac
			--and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
			--or
			--((@dekada is null or @dekada = '')
			--and
			--(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
			--OR
			--(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
			--OR
			--(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
			--or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )


	select sch.CHOV, --h.IDR_HLAS, h.TYP_HLAS, 
	chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd03.CISKRAVY, hd03.DATNAR, 
	--hd03.DATSPRAC, hd03.DATZAPIS, hd03.DI,
	hd03.FARBA, hd03.KR1, hd03.KR2, hd03.KR3, hd03.KR4, --hd03.LOGIN,
	hd03.MATKA, hd03.OTECLIN, hd03.OTECREG,
	--hd03.OTECREG,
	hd03.PL1, hd03.PL2, hd03.PL3, hd03.PL4, hd03.PORPREBLAK, --hd03.PRIZSPRAC, hd03.VERZIA,
	hd03.ZNAKET, hd03.ZNMATBYK--, sch.ROK, sch.MESIAC/*, sch.DEKADA */ /*, pKU.MENO, pKU.PRIEZVISKO*/
	
	--,(select distinct meno  from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd03.login) AS MENO
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd03.login) as Priezvisko
	
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARKRAV as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD03_ZARKRAV as hd03
	on h.IDR_HLAS = hd03.IDR
	--left join View_AD_Prehlad_pracovnikov_KU_v_PLISe as pKU
	--on pKU.UserName= hd03.LOGIN
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '3' and ezk.CISCHYBY is not null
		
		order by CHOV, CISKRAVY
	end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_VyrObl]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      --[CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      --[CharChov][varchar] (30) null,
	  [VyrObl_kod][varchar] (2) null,
	  [VyrObl][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                   
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		--[CharChov_KOD][varchar] (2) null,
  --      [CharChov][varchar] (30) null
		[VyrObl_kod][varchar] (2) null,
		[VyrObl][varchar] (30) null
		
	)
insert into @Laktacie	--moje povodne
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, /*b.KOD, b.NAZOV,*/ obl.KOD, obl.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NC_VyrObl as obl on obl.KOD = a.VYROBL

 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		--b.KOD as CharChov_KOD,
		--b.NAZOV as CharChov
		--ust.kod as KapUst_kod,
		--ust.NAZOV as KapUst 
		obl.KOD as VyrObl_kod,
		obl.NAZOV as VyrObl
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_VyrObl as obl on obl.KOD = a.VYROBL
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod,
		VyrObl 
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ VyrObl_kod, VyrObl 	
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
 	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod as VyrObl_kod,
		VyrObl as VyrObl  
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ VyrObl_kod, VyrObl 		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	----[CharChov_KOD][varchar] (2) null,
 ----   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null

	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod as VyrObl_kod,
		VyrObl as VyrObl  
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD ,CharChov*/ VyrObl_kod, VyrObl 		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	--CharChov_KOD as CharChov_KOD,
	--CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	----CharChov_KOD as CharChov_KOD,
 ----   CharChov as Charchov
 	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, /*CharChov_KOD ,CharChov*/ VyrObl_kod, VyrObl 	)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL1,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
   --CharChov_KOD as CharChov_KOD,
   -- CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
--[CharChov_KOD][varchar] (2) null,
--    [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, /*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 

	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov 
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov   
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 

insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+/*('ChZ'+l.CharChov_KOD)*/ ('Obl'+l.VyrObl_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL1.CharChov_KOD=l.CharChov_KOD*/ ZapojL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL2.CharChov_KOD=l.CharChov_KOD*/ ZapojL2.VyrObl_kod = l.VyrObl_kod )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and /*ZapojLCelk.CharChov_KOD=l.CharChov_KOD*/ ZapojLCelk.VyrObl_kod = l.VyrObl_kod) 
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV1.CharChov_KOD=l.CharChov_KOD*/ LAKV1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV2.CharChov_KOD=l.CharChov_KOD*/ LAKV2.VyrObl_kod = l.VyrObl_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKVC.CharChov_KOD=l.CharChov_KOD*/ LAKVC.VyrObl_kod = l.VyrObl_kod )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*L1.CharChov_KOD=l.CharChov_KOD*/ L1.VyrObl_kod = l.VyrObl_kod) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and /*L2.CharChov_KOD=l.CharChov_KOD*/ L2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and /*lCelk.CharChov_KOD=l.CharChov_KOD*/ lCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and /*NL1.CharChov_KOD=l.CharChov_KOD*/ NL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and /*NL2.CharChov_KOD=l.CharChov_KOD*/ NL2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and /*NlCelk.CharChov_KOD=l.CharChov_KOD*/ NlCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and /*ZL1.CharChov_KOD=l.CharChov_KOD*/ ZL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and /*ZL2.CharChov_KOD=l.CharChov_KOD*/ ZL2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and /*ZCelk.CharChov_KOD=l.CharChov_KOD*/ ZCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	end
go

CREATE PROCEDURE [dbo].[Vloz_Emaily_Podla_Chovu_a_Druhu] ( @p_podnik varchar(6), @p_email varchar(50), @p_HD bit, @p_OV bit, @p_KY bit, @p_zostHDML bit, @p_zostHDMP bit, @p_zostHDTMHD bit, @ret varchar(55) output) 
AS
declare @pocet_uz_existujucich_adries_v_db int;
BEGIN    
    set @pocet_uz_existujucich_adries_v_db = 0;    
    select @pocet_uz_existujucich_adries_v_db = COUNT(*) from NM_EmailChovy where PODNIK = @p_podnik and EMAIL = @p_email;    
    if (@pocet_uz_existujucich_adries_v_db <= 0) 
        begin
            insert into NM_EmailChovy(email, HD, OV, KY, podnik, zostHDML, zostHDMP, zostHDTMHD) values(@p_email, @p_HD, @p_OV, @p_KY, @p_podnik, @p_zostHDML, @p_zostHDMP, @p_zostHDTMHD);
            set @ret = 'Email bol vložený.';            
        end    
    else 
        begin
            set @ret = 'Vami zadaný email bol už raz vložený.';                
        end
END
go


-- =============================================
-- procedura ::C_aktual_plem_potomok:: nahradena funkciou ::C_aktual_plem_potomok_funkcia::

-- Author:		PSSR, š.p., Vladimír Ďurech
-- Create date: 03.08.2011
-- Last update: 01.07.2015
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 

-- Update:
--				Odobrate plemena S (12.5%) - ako vo FANDe
--				Spojenie plemien H a R za urcitych podmienok
--				Opravene spocitanie plemien pri pocte > 4
--				Osetrene vstupy
--				Opravene poradie plemien pri rovnakych KR... - beru sa podla priority ako boli v jeho predkoch (S-12.5 CH-12.5 >> S-6.3 CH-6.3)
--				01.06.2015 - vyhodene X ako posledne v poradi
--				02.06.2015 - SR + SB -> SM
--				17.06.2015 - odstraneny chovatel z podmienok (ako param zatial. ponechany)
--				22.06.2015 - Plemeno s KR pod 6 sa pripocitava podla typu (ci ide o Mliekovy, Masovy, Komb) - predtym slo k najvyssiemu
--				   -||-	   - Sucet PS rodica musi byt 100, inak nepocita potomka
--				29.06.2015 - Plemeno sa pripocita podla nasledujucich specifikacii:
--									ML -> KOMB -> X -> MP
--									KOMB -> ML -> X -> MP
--									X -> Plemeno s najvacsim podielom
--									MP-> KOMB -> X -> ML
--							- zvysne plemena (ak pocet > 4) sa rataju ako plemeno s KR pod 6
--							- PL5 sa uz uvadzat nebude!! PL5 is NULL
--				01.07.2015 -  oprava H a R ... 	
--					    	- ak by bolo (H aj R) a  H alebo R bude mensie ako 6, tak pripocitaj ich k sebe, aby nezaniklo
--				02.07.2015 - pre vypocet, musi rodic mat podiel Plemena nad 6	(chyba o: S-93.8 R-3.1 F-3.1)
--				23.09.2015 - ak nema rodic plemenu skladbu tak -> X-100 (predtym koniec)
--				26.02.2016 - plemeno sa prepocita aj ak chyba otec alebo matka (je null)
--				30.11.2016 - add replace k plemenam pri selekte - niektori sikovny zadavaju medzere do plemena... 'L' vs ' L' ('FR008727970854','PL005303501490', null)

--				27.06.2017 - Funkcia rozbita na 2 funkcie, kde tato zisti na zaklade Otca a Matky ich plemenu skupinu, vlozi do tabuliek a vola povodnu funkciu na prepocet a vrati vysledok
--				18.07.2017 - fix - znovu doplnena Plemena skladba matky O:)
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_plem_potomok_funkcia]
(
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)	--chovatel moze ist prec (17.6.2015)
)	

RETURNS @table TABLE
					 (
					potomok varchar(14) NULL,
					PL1 varchar(10) NULL,
					KR1 decimal(5,1) NULL,
					PL2 varchar(10) NULL,
					KR2 decimal(5,1) NULL,
					PL3 varchar(10) NULL,
					KR3 decimal(5,1) NULL,
					PL4 varchar(10) NULL,
					KR4 decimal(5,1) NULL,
					PL5 varchar(10) NULL,
					Matka varchar(14) NULL,
					skladba_M varchar(50) NULL,
					stav varchar (50) NULL
					)
AS
BEGIN
	declare 
	@TABLE_O as TablePlem;
	declare 
	@TABLE_M as TablePlem;
--	@TABLE_O as TABLE  (					
--					PL1 varchar(10) NULL,
--					KR1 decimal(5,2) NULL,
--					PL2 varchar(10) ,
--					KR2 decimal(5,2) NULL,
--					PL3 varchar(10) ,
--					KR3 decimal(5,2) NULL,
--					PL4 varchar(10) ,
--					KR4 decimal(5,2) NULL,
--					PL5 varchar(10) 
--);
--	declare @TABLE_M as TABLE  (					
--					PL1 varchar(10) NULL,
--					KR1 decimal(5,2) NULL,
--					PL2 varchar(10) ,
--					KR2 decimal(5,2) NULL,
--					PL3 varchar(10) ,
--					KR3 decimal(5,2) NULL,
--					PL4 varchar(10) ,
--					KR4 decimal(5,2) NULL,
--					PL5 varchar(10) 
--)
	
	insert into @TABLE_O
	select PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5
	from CM_Byci 
	where USCISLO = @USCISLO_O

	insert into @TABLE_M
	select top 1 PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		select PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5		
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			--AND k.DOVVYR IS NULL
			--AND k.CHOVATEL = @CHOVATEL 
			AND PRIZNAKKU <> 0
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		select PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			--AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	

	declare @skladba_M varchar(100)= (select PL1 + '-' + CONVERT(varchar, cast(ISNULL(KR1, 0) as float)) + ' ' +
										ISNULL(PL2 + '-' + CONVERT(varchar, cast(ISNULL(KR2, 0) as float)) + ' ','') +
										ISNULL(PL3 + '-' + CONVERT(varchar, cast(ISNULL(KR3, 0) as float)) + ' ','') +
										ISNULL(PL4 + '-' + CONVERT(varchar, cast(ISNULL(KR4, 0) as float)) + ' ','') +
										ISNULL(PL5, '') from @TABLE_M)
	
	insert into @table
	select '              ' AS Potomok, 
	 PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, @USCISLO_M AS Matka, @skladba_M as skladba_M,  stav--'ok' as Stav
	from [C_aktual_plem_potomok_vypocet](@TABLE_O, @TABLE_M)

	
	/*@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5,	
	*/
	
	/*
			@PL1_M + '-' + CONVERT(varchar, cast(ISNULL(@KR1_M, 0) as float)) + ' ' +
	ISNULL(@PL2_M + '-' + CONVERT(varchar, cast(ISNULL(@KR2_M, 0) as float)) + ' ','') +
	ISNULL(@PL3_M + '-' + CONVERT(varchar, cast(ISNULL(@KR3_M, 0) as float)) + ' ','') +
	ISNULL(@PL4_M + '-' + CONVERT(varchar, cast(ISNULL(@KR4_M, 0) as float)) + ' ','') +
	ISNULL(@PL5_M, '')
	 AS SKUPINA_M,
	 'ok' as Stav
	 */
	return;
END


--	select * from  C_aktual_plem_potomok_funkcia ('SK000800996953','SK000485942309','309529011')
--select * from  C_aktual_plem_potomok_funkcia ('SK000372205810','SK000085790028','309529011')

--select * from  C_aktual_plem_potomok_funkcia ('SK000003137953','SK000088878028','309529011')

		--create table CP_PlemenoTyp
		--(
		--	PL varchar(2),
		--	typ int	-- 00 - kombinovana, 01 - mliekove, 02 - masove
		--)

		--INSERT INTO CP_PlemenoTyp
		--VALUES 
		--('S', 0), ('MB', 0), ('P', 0), ('B', 0), ('SD', 0), ('T', 0), ('G', 0), 
		--('F', 1), ('H', 1), ('M', 1), ('N', 1), ('R', 1), ('A', 1), ('D', 1), ('J', 1), 
		--('BB', 2), ('AA', 2), ('BA', 2), ('GL', 2), ('HE', 2), ('HL', 2), ('CH', 2), 
		--('L', 2), ('PI', 2), ('SB', 2), ('SM', 2), ('SV', 2), ('AR', 2), ('BR', 2), 
		--('BS', 2), ('CI', 2), ('GA', 2), ('MA', 2), ('SG', 2), ('SH', 2), ('SL', 2), 
		--('WG', 2), ('ZB', 2), ('U', 2), ('X', 3);
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania04]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)
	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )
	
	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY,ezk.CHOVPOV, hd04.CISKRAVY, hd04.CISTELATA, 
	nullif(hd04.DATOTEL, '') as DATOTEL, hd04.DATSPRAC, hd04.DATUMULOZENIA, hd04.DATVYR, hd04.DATZAPIS, hd04.DOVVYR, hd04.POHLAVIE, hd04.PRIEBPOROD, 
	hd04.PRIZSPRAC, hd04.LOGIN
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd04.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd04.login) as Priezvisko
	from @spracCHOVy as sch
	
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_OTELENIA as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD04_OTELENIA as hd04
	on h.IDR_HLAS = hd04.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '4' and ezk.CISCHYBY is not null

	
	order by CHOV, CISKRAVY

end
go




CREATE PROCEDURE [dbo].[C_ZZ_Meso_OcakOtel_CHOV]
	@ParChov varchar(9)
AS
BEGIN
	/***************************************
		
		using table:CM_Krava,CM_Insvyk

		changing table:CP_Meso_OcakavaneOrtel

		used for: selecting all Krava having CM_Insvyk.IVYSE in('7','8','9') and calculating when probablly they will born.
		used in Masova krava inseminacii web page.

	***************************************/
	
--TRUNCATE TABLE [PLIS].[dbo].CP_Meso_OcakavaneOrtel
	delete [PLIS].[dbo].CP_Meso_OcakavaneOrtel where ciskrava in (select CISKRAVY from PLIS.dbo.CM_Krava where CHOVATEL = @ParChov)

	declare @k as varchar(14);
	declare @datinsem as date;
	declare @bik as varchar(10);
	declare @datOcOt as date;

	declare insem cursor for
	select  distinct i.IPLCA   
	from plis.dbo.CM_Krava as k
	inner join plis.dbo.CM_Insvyk as i
	on k.CISKRAVY=i.IPLCA
	where i.IVYSE in('7','8','9')
	and k.PRIZNAKKU=2 and k.CHOVATEL = @ParChov

	open insem
	fetch next from insem into @k

	while @@FETCH_STATUS=0

	begin

		declare posins cursor for
		select top 1 i.IDAIN,i.IBLIN+'-'+convert(varchar,i.IBREG),DATEADD(day,285,i.IDAIN)
		from plis.dbo.CM_Krava as k
		inner join plis.dbo.CM_Insvyk as i
		on k.CISKRAVY=i.IPLCA
		where i.IVYSE in('7','8','9')
		and k.PRIZNAKKU=2
		and i.IPLCA=@k
		group by i.IPLCA,i.IDAIN,i.IBLIN,i.IBREG,i.IVYSE,k.CISKRAVY
		order by i.IDAIN DESC

		open posins 
		fetch next from posins into @datinsem,@bik,@datOcOt

		while @@FETCH_STATUS=0
		begin
			fetch next from posins into @datinsem,@bik,@datOcOt
		end
		close posins
		deallocate posins

			insert into CP_Meso_OcakavaneOrtel values (@k,@datinsem,@bik,@datOcOt);

		fetch next from insem into @k
	end

	close insem
	deallocate insem;

END


go





-- =============================================
-- Author:		David Florek
-- Create date:	23.10.2017
-- Description:	Prepocita dotacie.
-- EDIT:			10.04.2018 Prerobene dotacie po novom. Pred spustenim treba odkomentovat riadok v kurzore.
-- =============================================
CREATE PROCEDURE [dbo].[EC_PrepocetDotacii]
	@rok int,
	@mesiac int,
	@ucet varchar(7),
	@login varchar(255)
AS
BEGIN
	-- Ak nemame dotacie na danom ucte alebo ak nemame ostavajuce mesiace, koncime
	if not exists(select * from EC_UctyDotacie where Ucet = @ucet and Rok = @rok and OstMesiace > 0)
	begin
		select -1 as PocetRiadkov, 0 as RozdaneDotacie;
		return;
	end
	
	-- Konverzia roku a mesiaca na 2 cifry
	declare @rokText varchar(2) = right(@rok, 2);
	declare @mesiacText varchar(2) = @mesiac;
	if LEN(@mesiacText) = 1 set @mesiacText = '0' + @mesiacText;

	-- Ulozime si ID uctu dotacie pre neskorsie pouzitie
	declare @iductu int;
	select @iductu = ID from EC_UctyDotacie where Ucet = @ucet and Rok = @rok;

	-- Ulozime si dnesny datum pre neskorsie pouzitie v kurzore
	declare @datum date = GETDATE();

	-- Dropneme docasnu tabulku ak existuje
	if(OBJECT_ID('tempdb..#sumy') is not null)
		drop table #sumy

	-- Ulozenie vsetkych riadkov faktury, ktorych sa dotacie na tomto ucte tykaju
	select fakt.IDR, cast(fakt.Suma -
		case	-- Odpocitame zvoz
		when LEFT(fakt.Produkt, 3) in ('102', '104', '112', '114', '122', '124') then 0.04
		when LEFT(fakt.Produkt, 3) in ('302', '304', '312', '314', '322', '324') then 0.02
		when LEFT(fakt.Produkt, 3) in ('402', '404', '412', '414', '422', '424') then 0.02
		else 0 end
		as decimal(13,2)) as JC,
	Pocet
	into #sumy
	from EC_RiadokFaktury fakt
	inner join EC_CISPROD prod on fakt.Produkt = prod.KOD1 + prod.KOD2 + prod.KOD3
	inner join NM_PODNIK pod on LEFT(fakt.Chov, 6) = pod.KRAJ + pod.OKRES + pod.PODNIK
	where LEFT(Datum, 2) = @rokText
	and SUBSTRING(Datum, 3, 2) = @mesiacText
	and DotaciaPrepocitana = 0
	and prod.UCET = @ucet
	and prod.DOTACIA = 1
	and fakt.DotaciaPrepocitana = 0
	and pod.narokNaDotacie = 1 and fakt.PriplatokPerc <> -90 ;  /* Kobrtkova - nie je dotacia na prepocet*/

	-- Premenne na vypocet aktualneho koeficientu
	declare @maxKoeficient decimal(6,2), @maxKoeficientDot decimal(6,2), @koeficient decimal(6,2), @zostatok decimal(13,2), @celkovaSuma decimal(13,2);

	-- Vyber koeficientu z databazy
	select @maxKoeficientDot = maxPercDot / 100 from EC_UctyDotacie where ID = @iductu;

	-- Vypocet zostatku na ucte
	select @zostatok = ud.Suma - ISNULL(sum(dnr.suma), 0)
	from EC_UctyDotacie ud
	left join EC_DotaciaNaRiadok dnr on ud.ID = dnr.IDUctu
	where ud.ID = @iductu
	group by ud.Suma;

	-- Docasne pre potrebu ineho prepoctu dotacii. Potom zmazat/zakomentovat !!!!
	if(@iductu = 1) set @zostatok = 119386.74;
	if(@iductu = 2) set @zostatok = 46797.25;
	if(@iductu = 3) set @zostatok = 4519.90 ;
	if(@iductu = 4) set @zostatok = 8324.99;
	if(@iductu = 5) set @zostatok = 3120.54;
	if(@iductu = 6) set @zostatok = 3551.58;
	if(@iductu = 7) set @zostatok = 8701.86 ;
	if(@iductu = 8) set @zostatok = 433.13;

	-- Vypocet celkovej zaplatenej sumy
	select @celkovaSuma = SUM(JC * Pocet) from #sumy;
	-- Vypocet maximalneho mozneho koeficientu pre vycerpanie vsetkych financii na ucte
	set @maxKoeficient = @zostatok / @celkovaSuma;

	-- Vyber toho mensieho koeficientu
	if @maxKoeficient > @maxKoeficientDot set @koeficient = @maxKoeficientDot else set @koeficient = @maxKoeficient;
	-- Docastne odstranene, lebo bolo treba cerpat 100% dotacie
	-- if @koeficient > 0.7 set @koeficient = 0.7;

	declare dotacieKurzor cursor
	for select IDR, JC, Pocet from #sumy;

	declare @idr int, @jc decimal(13,2), @pocet int, @dotacia decimal(13, 4);

	declare @pocetRiadkov int = 0, @sumaRozdana decimal(13,2) = 0;

	-- Kurzor prechadzajuci vsetkymi riadkami faktury za dany mesiac a ucet
	open dotacieKurzor;
	fetch next from dotacieKurzor into @idr, @jc, @pocet;
	WHILE @@FETCH_STATUS = 0
		begin
			set @dotacia = @jc * @koeficient;

			set @sumaRozdana = @sumaRozdana + (@dotacia * @pocet);
			set @pocetRiadkov = @pocetRiadkov + 1;
			
			-- doplneny prepocet Cena spolu po prepocitani dotacie. Vypocita sa sumaCelkom a ulozi do riadka faktury do stlpca SumaCelkom
			-----------------------
				declare @EC_RF Table (PriplatokPerc decimal(10,2), Priplatok decimal(10, 2));
				insert into @EC_RF select ecrf.PriplatokPerc, ecrf.Priplatok from EC_RiadokFaktury as ecrf where ecrf.IDR = @idr;
				declare @priplatokPerc decimal(10,2), @priplatok decimal(10, 2),@sumaCelkom decimal(10, 4);
				select @priplatokPerc = PriplatokPerc, @priplatok = Priplatok from @EC_RF;
				set @sumaCelkom = (@jc - @dotacia)*((100 + @priplatokPerc)/100)*@pocet;
			----------------------------------------

			-- Toto treba odkomentovat pred pustenim nazivo!!!
			-- Nastavi prepocitanu dotaciu a prida ju do riadka faktury
			update EC_RiadokFaktury set Dotacia = @dotacia, DotaciaPrepocitana = 1, SumaCelkom = @sumaCelkom where IDR = @idr;

			-- Pridanie do zoznamu rozdelenych dotacii. Tento sa pouziva na vypocet zostatku
			insert into EC_DotaciaNaRiadok(IDRiadka, IDUctu, Suma, Datum) values (@idr, @iductu, @dotacia * @pocet, @datum);
			fetch next from dotacieKurzor into @idr, @jc, @pocet;
		end

	-- Odoberieme jeden zostavajuci mesiac
	update EC_UctyDotacie set OstMesiace = OstMesiace - 1 where ID = @iductu;
	
	close dotacieKurzor;
	deallocate dotacieKurzor;
	drop table #sumy;

	select @pocetRiadkov as PocetRiadkov, @sumaRozdana as RozdaneDotacie;
END


go

-- =============================================
-- Author:		David Florek
-- Create date:	08.03.2018
-- Description:	Export dat calving pre Simental do Nemecka
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_calv2]
AS
BEGIN

	declare @datum date = '2018-06-15';

	select (select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = LEFT(lakt.CISKRAVY, 2))
		+ RIGHT(lakt.CISKRAVY, 12)
		+ RIGHT('00' + cast(lakt.PORLAK as varchar(2)), 2)
		+ ISNULL(FORMAT((select TOP 1 IDAIN from CM_Insvyk where IPLCA = lakt.CISKRAVY and IVYSE in ('7', '8', '9') and IDAIN between lakt.DATOTEL and laktplus.DATOTEL order by IDAIN desc), 'yyyyMMdd'), '00000000')
		+ ISNULL(FORMAT(lakt.DATOTEL, 'yyyyMMdd'), '00000000')
		+ CASE	WHEN lakt.PORLAK = 1 THEN '000'
				ELSE CASE WHEN LEN(lakt.MEDZIOBD) > 3 THEN '999'
				ELSE ISNULL(RIGHT('000' + cast((select MEDZIOBD from CM_Laktacie where CISKRAVY = lakt.CISKRAVY and PORLAK = lakt.PORLAK) as varchar(10)), 3), '000') END END
		+ IIF(lakt.ZMENA = '10', '1', '0')
		as veta
	into temp_polozky_calv2
	from CM_Laktacie lakt
	left outer join CM_Laktacie laktplus on lakt.CISKRAVY = laktplus.CISKRAVY and lakt.PORLAK + 1 = laktplus.PORLAK
	where lakt.CISKRAVY in (select distinct CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))
	and lakt.DATOTEL < @datum
	
	union select (select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = LEFT(naplak.CISKRAVY, 2))
		+ RIGHT(naplak.CISKRAVY, 12)
		+ RIGHT('00' + cast(naplak.PORLAK as varchar(2)), 2)
		+ ISNULL(FORMAT((select TOP 1 IDAIN from CM_Insvyk where IPLCA = naplak.CISKRAVY and IVYSE in ('7', '8', '9') and DATEDIFF(day, IDAIN, naplak.DATOTEL) > 0 order by IDAIN desc), 'yyyyMMdd'), '00000000')
		+ ISNULL(FORMAT(naplak.DATOTEL, 'yyyyMMdd'), '00000000')
		+ CASE	WHEN naplak.PORLAK = 1 THEN '000'
				ELSE CASE WHEN LEN(naplak.MEDZIOBD) > 3 THEN '999'
				ELSE ISNULL(RIGHT('000' + cast((select MEDZIOBD from CM_Laktacie where CISKRAVY = naplak.CISKRAVY and PORLAK = naplak.PORLAK) as varchar(10)), 3), '000') END END
		+ IIF(naplak.ZMENA = '10', '1', '0') as veta
	from CM_Naplak naplak
	where naplak.CISKRAVY in (select distinct CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))
	and naplak.DATOTEL < @datum

	EXEC xp_cmdshell 'bcp "select veta from plis.dbo.temp_polozky_calv2" queryout "e:\ROZBORAK\Data\svk.06.txt" -T -c -t,'

	drop table temp_polozky_calv2
END
go


CREATE PROCEDURE [dbo].[C_SB_za_poslednych_5_mesiacov] (@cchovu varchar(9), @ciskravy varchar(14), @datkontr datetime)
AS

declare @v_ciskravy varchar(14);

BEGIN


/*dynamicky tvoreny datumovy nazov atributov SB za poslednych 5 mesiacov v temporary tabulke*/
/**/
DECLARE @v_prvy_atribut varchar(20); /*hodnota rovnaka s @v_datum_spatny_1*/
DECLARE @v_druhy_atribut varchar(20);
DECLARE @v_treti_atribut varchar(20);
DECLARE @v_stvrty_atribut varchar(20);
DECLARE @v_piaty_atribut varchar(20);
DECLARE @v_citac_1 smallint;
DECLARE @v_atribut datetime; 

DECLARE @v_datum_spatny_1 datetime; /*hodnota rovnaka s @v_prvy_atribut*/
DECLARE @v_datum_spatny_2 datetime;
DECLARE @v_datum_spatny_3 datetime;
DECLARE @v_datum_spatny_4 datetime;
DECLARE @v_datum_spatny_5 datetime;

DECLARE @v_sb_1 float;
DECLARE @v_sb_2 float;
DECLARE @v_sb_3 float;
DECLARE @v_sb_4 float;
DECLARE @v_sb_5 float;

DECLARE @v_pocet_sb_zaznamov_1 int;
DECLARE @v_pocet_sb_zaznamov_2 int;
DECLARE @v_pocet_sb_zaznamov_3 int;
DECLARE @v_pocet_sb_zaznamov_4 int;
DECLARE @v_pocet_sb_zaznamov_5 int;

SET @v_pocet_sb_zaznamov_1 = 0;
SET @v_pocet_sb_zaznamov_2 = 0;
SET @v_pocet_sb_zaznamov_3 = 0;
SET @v_pocet_sb_zaznamov_4 = 0;
SET @v_pocet_sb_zaznamov_5 = 0;


SET @v_citac_1 = 0;
set @v_prvy_atribut = '2000-01-01';
set @v_druhy_atribut = '2000-01-02';
set @v_treti_atribut = '2000-01-03';
set @v_stvrty_atribut = '2000-01-04';
set @v_piaty_atribut = '2000-01-05';

set @v_datum_spatny_1 = '2000-01-01';
set @v_datum_spatny_2 = '2000-01-02';
set @v_datum_spatny_3 = '2000-01-03';
set @v_datum_spatny_4 = '2000-01-04';
set @v_datum_spatny_5 = '2000-01-05';

DECLARE @cursor_atributy CURSOR

SET @cursor_atributy = CURSOR FOR
SELECT distinct v1.DATKONTR FROM View_CM_Rozbory v1 WHERE 
((v1.CISKRAVY = @CISKRAVY) OR (@CISKRAVY = 'SK')) AND (
(v1.DATKONTR <= @DATKONTR) 
/*OR  (@DATKONTR = '2000-01-01 01:01' )*/) AND (v1.CHOV = @cchovu) 
ORDER BY v1.DATKONTR DESC
OPEN @cursor_atributy
FETCH NEXT FROM @cursor_atributy INTO @v_atribut;
WHILE @@FETCH_STATUS = 0 
   
BEGIN

if (@v_citac_1 = 0)
begin
SET @v_prvy_atribut = convert(varchar(10), @v_atribut, 104);
SET @v_datum_spatny_1 = @v_atribut;
end
if (@v_citac_1 = 1)
begin
SET @v_druhy_atribut = convert(varchar(10), @v_atribut, 104);
SET @v_datum_spatny_2 = @v_atribut;
end
if (@v_citac_1 = 2)
begin
SET @v_treti_atribut = convert(varchar(10), @v_atribut, 104);
SET @v_datum_spatny_3 = @v_atribut;
end
if (@v_citac_1 = 3)
begin
SET @v_stvrty_atribut = convert(varchar(10), @v_atribut, 104);
SET @v_datum_spatny_4 = @v_atribut;
end
if (@v_citac_1 = 4)
begin
SET @v_piaty_atribut = convert(varchar(10), @v_atribut, 104);
SET @v_datum_spatny_5 = @v_atribut;
end
SET @v_citac_1 = @v_citac_1 + 1;
FETCH NEXT FROM @cursor_atributy INTO @v_atribut;
END
/*print 'hodnota 1: ' + cast(@v_prvy_atribut as varchar(10)) + '' ;
print 'hodnota 2: ' + cast(@v_druhy_atribut as varchar(10)) + '' ;
print 'hodnota 3: ' + cast(@v_treti_atribut as varchar(10)) + '' ;
print 'hodnota 4: ' + cast(@v_stvrty_atribut as varchar(10)) + '' ;
print 'hodnota 5: ' + cast(@v_piaty_atribut as varchar(10)) + '' ;*/


CLOSE @cursor_atributy;
DEALLOCATE @cursor_atributy;

IF EXISTS(SELECT TABLE_NAME FROM plis.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'temp_aktualne_rozbory')
DROP TABLE plis.dbo.temp_aktualne_rozbory

DECLARE @SQLQuery AS NVARCHAR(1000);
SET @SQLQuery = 
( 'create table temp_aktualne_rozbory(
ciskravy varchar(14),
' + 
' "' + @v_prvy_atribut + '" '+ ' float, ' + 
' "' + @v_druhy_atribut + '" '+ ' float, ' +
' "' + @v_treti_atribut + '" '+ ' float, ' +
' "' + @v_stvrty_atribut + '" '+ ' float, ' +
' "' + @v_piaty_atribut + '" '+ ' float);' );
EXECUTE sp_executesql @SQLQuery;

DECLARE @cursor_aktualne_rozbory CURSOR

SET @cursor_aktualne_rozbory = CURSOR FOR

SELECT CISKRAVY FROM View_CM_Rozbory WHERE 
((CISKRAVY = @CISKRAVY) OR (@CISKRAVY = 'SK')) AND 
((DATKONTR = @DATKONTR) /*OR (@DATKONTR = '2000-01-01 01:01')*/) AND 
(CHOV = @cchovu) ORDER BY DATKONTR DESC, CISKRAVY 




OPEN @cursor_aktualne_rozbory

FETCH NEXT FROM @cursor_aktualne_rozbory INTO @v_ciskravy

WHILE @@FETCH_STATUS = 0 /*1*/
   
BEGIN   

/*print @v_ciskravy + ' ' + @v_sdatkontr + ' ' + cast(@v_mlieko as varchar(5)) + ' ' + cast(@v_mliekopr as varchar(5)) + ' ' + 
cast(@v_perctuku as varchar(5))
+ ' ' + cast(@v_percbielk as varchar(5)) + ' ' + cast(@v_bunecelem as varchar(5)) + ' ' + @v_dendoba 
+ ' ' + @v_interval + ' ' + @v_messp
+ ' ' + @v_deksp + ' ' + cast(@v_perclaktoz as varchar(5)) + ' ' + @v_porpreblak + ' ' + cast(@v_LaktDni as varchar(5));*/
					
			
			set @CISKRAVY = @v_ciskravy;			
			
			SELECT @v_pocet_sb_zaznamov_1 = COUNT(*) FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_1 
			and CHOV = @cchovu;			
			if (@v_pocet_sb_zaznamov_1 = 1)
			begin
			SELECT  top(1) @v_sb_1 = BUNECELEM FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_1 
			and CHOV = @cchovu ORDER BY DATKONTR DESC;			
			end;
			if (@v_pocet_sb_zaznamov_1 = 0)
			begin
			set @v_sb_1 = null;						
			end;
			
			
			SELECT @v_pocet_sb_zaznamov_2 = COUNT(*) FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_2 
			and CHOV = @cchovu;
			if (@v_pocet_sb_zaznamov_2 = 1)
			begin
			SELECT  top(1) @v_sb_2 = BUNECELEM FROM View_CM_Rozbory  WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_2 
			and CHOV = @cchovu ORDER BY DATKONTR DESC;			
			end;
			if (@v_pocet_sb_zaznamov_2 = 0)
			begin
			set @v_sb_2 = null;						
			end;
			
			SELECT @v_pocet_sb_zaznamov_3 = COUNT(*) FROM View_CM_Rozbory  WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_3 
			and CHOV = @cchovu;
			if (@v_pocet_sb_zaznamov_3 = 1)
			begin
			SELECT  top(1) @v_sb_3 = BUNECELEM FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_3
			and CHOV = @cchovu ORDER BY DATKONTR DESC;			
			end;
			if (@v_pocet_sb_zaznamov_3 = 0)
			begin
			set @v_sb_3 = null;						
			end;
			
			SELECT @v_pocet_sb_zaznamov_4 = COUNT(*) FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_4 
			and CHOV = @cchovu;
			if (@v_pocet_sb_zaznamov_4 = 1)
			begin
			SELECT  top(1) @v_sb_4 = BUNECELEM FROM View_CM_Rozbory  WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_4 
			and CHOV = @cchovu ORDER BY DATKONTR DESC;			
			end
			if (@v_pocet_sb_zaznamov_4 = 0)
			begin
			set @v_sb_4 = null;						
			end;
			
			
			SELECT @v_pocet_sb_zaznamov_5 = COUNT(*) FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_5 
			and CHOV = @cchovu;
			if (@v_pocet_sb_zaznamov_5 = 1)
			begin
			SELECT  top(1) @v_sb_5 = BUNECELEM FROM View_CM_Rozbory WHERE 
			CISKRAVY = @CISKRAVY AND datkontr = @v_datum_spatny_5 
			and CHOV = @cchovu ORDER BY DATKONTR DESC;
			end;
			if (@v_pocet_sb_zaznamov_5 = 0)
			begin
			set @v_sb_5 = null;						
			end;
			
			insert into temp_aktualne_rozbory values (@v_ciskravy, @v_sb_1, @v_sb_2, @v_sb_3, @v_sb_4,
@v_sb_5);


FETCH NEXT FROM @cursor_aktualne_rozbory INTO @v_ciskravy
  
END   


CLOSE @cursor_aktualne_rozbory;
DEALLOCATE @cursor_aktualne_rozbory;



if (@v_piaty_atribut != '2000-01-05')
begin 
exec ('select ciskravy as "Číslo kravy", 
"' +@v_prvy_atribut + '", "' + @v_druhy_atribut + '", "' + @v_treti_atribut + '", "'
+ @v_stvrty_atribut + '", "' + @v_piaty_atribut + '" from temp_aktualne_rozbory order by "' + @v_prvy_atribut + '" desc;' );
end;

if (@v_stvrty_atribut != '2000-01-04' and @v_piaty_atribut = '2000-01-05')
begin 
exec ('select ciskravy as "Číslo kravy", 
"' +@v_prvy_atribut + '", "' + @v_druhy_atribut + '", "' + @v_treti_atribut + '", "'
+ @v_stvrty_atribut + '" from temp_aktualne_rozbory order by "' + @v_prvy_atribut + '" desc;' );
end;

if (@v_treti_atribut != '2000-01-03' and @v_stvrty_atribut = '2000-01-04')
begin 
exec ('select ciskravy as "Číslo kravy",  
"' +@v_prvy_atribut + '", "' + @v_druhy_atribut + '", "' + @v_treti_atribut + 
'" from temp_aktualne_rozbory order by "' + @v_prvy_atribut + '" desc;' );
end;

if (@v_druhy_atribut != '2000-01-02' and @v_treti_atribut = '2000-01-03')
begin 
exec ('select ciskravy as "Číslo kravy", 
"' +@v_prvy_atribut + '", "' + @v_druhy_atribut + '" from temp_aktualne_rozbory order by "' + @v_prvy_atribut + '" desc;' );
end;

if (@v_prvy_atribut != '2000-01-01' and @v_druhy_atribut = '2000-01-02')
begin 
exec ('select ciskravy as "Číslo kravy", 
"' +@v_prvy_atribut + '" from temp_aktualne_rozbory order by "' + @v_prvy_atribut + '" desc;' );
end;

if (@v_prvy_atribut = '2000-01-01')
begin 
exec ('select ciskravy as "Číslo kravy", 
from temp_aktualne_rozbory;' );
end;


drop table temp_aktualne_rozbory;

END
go




CREATE PROCEDURE [dbo].[C_ZZ_Meso_MedziObdobZostava_CHOV]
	@ParChov varchar(9)
AS
BEGIN
/*******************************************

!  please run affter updating table cp_MedziObdMesove (C_VZ_MedziobdobieMesove procedure) !

	using table:CM_Krava,CP_MedziObdMesove

	changing table:cp_Meso_MediobdobieReport

	used for:(6)Rozbor medziobdobia kráv KÚMP 

*****************************************/

--TRUNCATE TABLE cp_Meso_MediobdobieReport
delete PLIS.dbo.cp_Meso_MediobdobieReport where chovatel = @ParChov

declare @chov as varchar(9);
declare @l as int;
declare @hranica as varchar(15);
declare @spolu int;

declare @Pmedzi0 as int;
declare @Pmedzi2 as int;
declare @Pmedzi3 as int;
declare @Pmedzi4 as int;
declare @Pmedzi5 as int;
declare @Pmedzi6 as int;
declare @Pmedzi7 as int;
declare @Pmedzi8 as int;
declare @Pmedzi9 as int;

declare @l2h0 as int;
declare @l3h0 as int;
declare @l4h0 as int;
declare @l5h0 as int;
declare @l6h0 as int;
declare @l7h0 as int;
declare @l8h0 as int;
declare @l9h0 as int;
declare @l2h1 as int;
declare @l2h2 as int;
declare @l2h3 as int;
declare @l2h4 as int;
declare @l2h5 as int;
declare @l3h1 as int;
declare @l3h2 as int;
declare @l3h3 as int;
declare @l3h4 as int;
declare @l3h5 as int;
declare @l4h1 as int;
declare @l4h2 as int;
declare @l4h3 as int;
declare @l4h4 as int;
declare @l4h5 as int;
declare @l5h1 as int;
declare @l5h2 as int;
declare @l5h3 as int;
declare @l5h4 as int;
declare @l5h5 as int;
declare @l6h1 as int;
declare @l6h2 as int;
declare @l6h3 as int;
declare @l6h4 as int;
declare @l6h5 as int;
declare @l7h1 as int;
declare @l7h2 as int;
declare @l7h3 as int;
declare @l7h4 as int;
declare @l7h5 as int;
declare @l8h1 as int;
declare @l8h2 as int;
declare @l8h3 as int;
declare @l8h4 as int;
declare @l8h5 as int;
declare @l9h1 as int;
declare @l9h2 as int;
declare @l9h3 as int;
declare @l9h4 as int;
declare @l9h5 as int;

declare @lspolu0 as int;
declare @lspolu2 as int;
declare @lspolu3 as int;
declare @lspolu4 as int;
declare @lspolu5 as int;
declare @lspolu6 as int;
declare @lspolu7 as int;
declare @lspolu8 as int;
declare @lspolu9 as int;

declare @hspolu0 as int;
declare @hspolu1 as int;
declare @hspolu2 as int;
declare @hspolu3 as int;
declare @hspolu4 as int;
declare @hspolu5 as int;


	

declare chov cursor for
select distinct k.CHOVATEL
from plis.dbo.CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null and k.chovatel = @ParChov


open chov;
fetch next from chov into @chov;

while @@FETCH_STATUS=0
begin


		 set @spolu=	(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK is not null
		 and k.porpreblak !=1)

		 if (@spolu = 0) 
			set @spolu = null
		 --------------------------------------------------------------
		
		 set @l2h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK = 2
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null
		 )
				
		 set @l2h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l2h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l2h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l2h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l2h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 set @hspolu5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)


		 set @hspolu4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @hspolu3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu1=(select count(*)
		from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and ( t.Medziobd<=320) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)
		 
		 set @hspolu0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and ( t.Medziobd is null) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi2=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 ---------------------------------------------------------
		
		 set @l3h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l3h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l3h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l3h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l3h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l3h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi3=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null)
		 --------------------------------------------
		  
		 set @l4h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)		 
		 
		 set @l4h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l4h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l4h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l4h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l4h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)

		 set @Pmedzi4=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l5h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l5h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l5h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l5h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l5h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l5h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd >= 401
		 and k.PORPREBLAK is not null)

		 set @lspolu5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)

		 set @Pmedzi5=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)
		 -----------------------------------------------

		 set @l6h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)
		
		 set @l6h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l6h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l6h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l6h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l6h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)


		 set @lspolu6=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)

		 set @Pmedzi6=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l7h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l7h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l7h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l7h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l7h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l7h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu7=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)

		 set @Pmedzi7=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l8h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l8h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l8h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l8h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l8h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l8h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu8=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)

		 set @Pmedzi8=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l9h0=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l9h1=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l9h2=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l9h3=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l9h4=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l9h5=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu9=(select count(*)
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)

		 set @Pmedzi9=(select avg(nullif(t.Medziobd,0))
		 from plis.dbo.CM_Krava as k
		 LEFT join plis.dbo.CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL=@chov
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------------
	
	
	
	insert into cp_Meso_MediobdobieReport values(@chov,'bez medziobdobia',@l2h0,(@l2h0*100)/convert(float,@spolu)*1.00,
												 @l3h0,(@l3h0*100)/convert(float,@spolu)*1.00,@l4h0,(@l4h0*100)/convert(float,@spolu)*1.00,
												 @l5h0,(@l5h0*100)/convert(float,@spolu)*1.00,@l6h0,(@l6h0*100)/convert(float,@spolu)*1.00,
												 @l7h0,(@l7h0*100)/convert(float,@spolu)*1.00,@l8h0,(@l8h0*100)/convert(float,@spolu)*1.00,
												 @l9h0,(@l9h0*100)/convert(float,@spolu)*1.00,@hspolu0,
												 (@hspolu0*100)/convert(float,@spolu)*1.00);
	

	insert into cp_Meso_MediobdobieReport values(@chov,'do 320',@l2h1,(@l2h1*100)/convert(float,@spolu)*1.00,
												 @l3h1,(@l3h1*100)/convert(float,@spolu)*1.00,@l4h1,(@l4h1*100)/convert(float,@spolu)*1.00,
												 @l5h1,(@l5h1*100)/convert(float,@spolu)*1.00,@l6h1,(@l6h1*100)/convert(float,@spolu)*1.00,
												 @l7h1,(@l7h1*100)/convert(float,@spolu)*1.00,@l8h1,(@l8h1*100)/convert(float,@spolu)*1.00,
												 @l9h1,(@l9h1*100)/convert(float,@spolu)*1.00,@hspolu1,
												 (@hspolu1*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'321-365',@l2h2,(@l2h2*100)/convert(float,@spolu)*1.00,
												 @l3h2,(@l3h2*100)/convert(float,@spolu)*1.00,@l4h2,
												 (@l4h2*100)/convert(float,@spolu)*1.00,@l5h2,
												 (@l5h2*100)/convert(float,@spolu)*1.00,@l6h2,(@l6h2*100)/convert(float,@spolu)*1.00,
												 @l7h2,(@l7h2*100)/convert(float,@spolu)*1.00,@l8h2,(@l8h2*100)/convert(float,@spolu)*1.00,
												 @l9h2,(@l9h2*100)/convert(float,@spolu)*1.00,@hspolu2,(@hspolu2*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'366-385',@l2h3,(@l2h3*100)/convert(float,@spolu)*1.00,@l3h3,
												 (@l3h3*100)/convert(float,@spolu)*1.00,@l4h3,(@l4h3*100)/convert(float,@spolu)*1.00,@l5h3,
												 (@l5h3*100)/convert(float,@spolu)*1.00,@l6h3,(@l6h3*100)/convert(float,@spolu)*1.00,@l7h3,
												 (@l7h3*100)/convert(float,@spolu)*1.00,@l8h3,(@l8h3*100)/convert(float,@spolu)*1.00,@l9h3,
												 (@l9h3*100)/convert(float,@spolu)*1.00,@hspolu3,(@hspolu3*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'386-400',@l2h4,(@l2h4*100)/convert(float,@spolu)*1.00,@l3h4,(
												 @l3h4*100)/convert(float,@spolu)*1.00,@l4h4,(@l4h4*100)/convert(float,@spolu)*1.00,@l5h4, 
												 (@l5h4*100)/convert(float,@spolu)*1.00,@l6h4,(@l6h4*100)/convert(float,@spolu)*1.00,@l7h4,
												 (@l7h4*100)/convert(float,@spolu)*1.00,@l8h4,(@l8h4*100)/convert(float,@spolu)*1.00,@l9h4,
												 (@l9h4*100)/convert(float,@spolu)*1.00,@hspolu4,(@hspolu4*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'nad 400',@l2h5,(@l2h5*100)/convert(float,@spolu)*1.00,@l3h5,
												 (@l3h5*100)/convert(float,@spolu)*1.00,@l4h5,(@l4h5*100)/convert(float,@spolu)*1.00,@l5h5,
												 (@l5h5*100)/convert(float,@spolu)*1.00,@l6h5,(@l6h5*100)/convert(float,@spolu)*1.00,@l7h5,
												 (@l7h5*100)/convert(float,@spolu)*1.00,@l8h5,(@l8h5*100)/convert(float,@spolu)*1.00,@l9h5,
												 (@l9h5*100)/convert(float,@spolu)*1.00,@hspolu5,(@hspolu5*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Spolu',@lspolu2,(@lspolu2*100)/convert(float,@spolu)*1.00,
												 @lspolu3,(@lspolu3*100)/convert(float,@spolu)*1.00,@lspolu4,
												 (@lspolu4*100)/convert(float,@spolu)*1.00,@lspolu5,(@lspolu5*100)/convert(float,@spolu)*1.00,
												 @lspolu6,(@lspolu6*100)/convert(float,@spolu)*1.00,@lspolu7,(@lspolu7*100)/convert(float,@spolu)*1.00,
												 @lspolu8,(@lspolu8*100)/convert(float,@spolu)*1.00,@lspolu9,(@lspolu9*100)/convert(float,@spolu)*1.00,
												 @spolu,(@spolu*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Priem. medziobd.',@Pmedzi2,null,@Pmedzi3,null,@Pmedzi4,null,@Pmedzi5,null,@Pmedzi6,null,@Pmedzi7,null,@Pmedzi8,null,@Pmedzi9,null,@spolu,null);

	fetch next from chov into @chov;
end

close chov;
deallocate chov;

END


go

-- =============================================
----pre rocenku MLHD 
----procedura -prepocet procedur Roc_MLHD_ZostavaLaktacie
----							 Roc_MLHD_ZostavaLaktacie_plemeno
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy_Opr
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[Roc_MLHD_Zostava_Laktacie_LaktPlem_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
							EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

CREATE FUNCTION dbo.kravakontrola (@ciskravy VARCHAR(14))
		
RETURNS @kr_table TABLE
	(
		krava		varchar(14),
		AD			date,			-- actual date / posledna kontrola
		PD			date,			-- previous date / predosla kontrola
		PL			INT				-- poradie laktacie
	)
	AS
	BEGIN
	DECLARE	@krava VARCHAR(14),
			@AD	DATE,
			@PD DATE,
			@PL int

		
				SELECT	@krava = tri.ciskravy,
						@AD = MAX(tri.AD),
						@PD = MAX(tri.PD),
						@PL = MAX(tri.PL) 
				FROM 
					(
				SELECT CISKRAVY, NULL AD, NULL PD, PORLAK PL FROM dbo.CM_Naplak WHERE CISKRAVY = @ciskravy

					UNION

				SELECT TOP 1 * FROM
				(SELECT TOP 1 CISKRAVY, DATKONTR AD, NULL PD, NULL AS PL FROM dbo.CM_Kontroly WHERE CISKRAVY = @ciskravy
				ORDER BY AD DESC) jeden

					UNION

				SELECT TOP 1 dva.CISKRAVY,NULL AD, dva.DATKONTR PD, NULL PL  FROM
					(SELECT TOP 2 * FROM dbo.CM_Kontroly WHERE CISKRAVY = @ciskravy ORDER BY DATKONTR DESC) dva
				ORDER BY PD ASC
	
					) tri
				GROUP BY tri.CISKRAVY
		IF @ciskravy IS NOT NULL
			BEGIN
				INSERT @kr_table
				        SELECT @krava, @AD, @PD, @PL;
			END;

		RETURN;

	END;
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,vrati zoznam linii s poctom nevyradenych baranov, stado je zadane parametrom>,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BarLinie]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.cislin, l.nazlin,SUM(1) AS pocet
FROM dbo.SM_BARAN b LEFT OUTER JOIN dbo.SC_SubLin l
 on l.cislin=b.Cislin 
 WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.CisLin,NAZLIN )
go

-- =============================================
-- Author:		PSSR, š.p.
-- Description:	Pripravene pre rocenku HD Mlieko--- Udaje do tabulky CP_Rocvys...pouzivaju sa na stranke plis v hodnotiacich prehladoch kravy tabulka 6B
-- Holesova M.
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_Rocvys]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date =''

as	
begin 

delete from CP_ROCVYS where rok = DATEPART(YEAR, @datumOd) and CHOVATEL = @chov
--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30', @chov varchar(14) = '102'

 Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null
	  
)
 
 insert into @Laktacie
 SELECT
 			 PORLAK, (substring(Lakt.CHOVATEL, 1, len(@chov))) as chovatel, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR
			
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and (substring(Lakt.CHOVATEL, 1, len(@chov))) = @chov		
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			
			and MLIEKCEL <>''
--select * from @Laktacie



--declare @pocLAKV1 table
--	(
--	[CHOV] [varchar](9) NULL,
--	[PocLakV1] [float](4) NULL
--	)

--	Insert @pocLAKV1
--	select 
--	@chov as CHOV, 
--	count(*) as PNVL1 --PocLakV1

--	from @Laktacie as l	where PORLAK = '1'

--	group by (substring(l.CHOVATEL, 1, len(@chov))) 
--		select * from @pocLAKV1 


--declare @pocLAKV2 table
--	([CHOV] [varchar](9) NULL,
--	[PNLV2] [float](4) NULL
--)
--	Insert @pocLAKV2
--	select 
--	@chov as CHOV, 
--	count(*) as PNLV2 --PocLakV2

--	from @Laktacie as l	where PORLAK >= '2'

--group by (substring(l.CHOVATEL, 1, len(@chov))) 
--		select * from @pocLAKV2

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	 [PNLT1] float null --pocet norm.lakt
      ,[SMLKT1] float null  -- spocitane mlieko
      ,[STUK1] float null  --spocitany tuk
      ,[PNLB1] float null 
      ,[SMLKB1] float null 
      ,[SBLK1] float null 
      ,[PNLV1] float null 
      ,[SMLKV1] float null 
      ,[SLD1] float null 
      ,[PVEK1] float null 
      ,[SVEK1] float null 
	)
	
Insert into @lakt1
	
select 
	CHOVATEL as CHOV, 
	count(*)  as PNLT1 --PocLakN1, 
	,sum(MLIEKNOR) as [SMLKT1]
	,sum(TUKNOR) as [STUK1]
    ,count(BIELKNOR) as [PNLB1]
	,sum(MLIEKNOR) as [SMLKB1]
    ,sum(BIELKNOR) as [SBLK1]
	,count(*) as PNLV1
    ,sum(MLIEKNOR) as [SMLKV1]
	,sum(LAKDNIN) as SLD1--LakdniNL1,	
	,count(MEDZIOBD) as PVEK1
	,sum(MEDZIOBD) as SVEK1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by CHOVATEL
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	 [PNLT2] float null --pocet norm.lakt
      ,[SMLKT2] float null  -- spocitane mlieko
      ,[STUK2] float null  --spocitany tuk
      ,[PNLB2] float null 
      ,[SMLKB2] float null 
      ,[SBLK2] float null 
      ,[PNLV2] float null 
      ,[SMLKV2] float null 
      ,[SLD2] float null 
      ,[PMEDZ2] float null 
      ,[SMEDZ2] float null 
	)
 insert @lakt2
 select
	CHOVATEL as CHOV, 
	count(*)  as PNLT2 --PocLakN1, 
	,sum(MLIEKNOR) as SMLKT2
	,sum(TUKNOR) as STUK2
    ,count(BIELKNOR) as PNLB2
	,sum(MLIEKNOR) as SMLKB2
    ,sum(BIELKNOR) as SBLK2
	,count(*) as PNLV2
    ,sum(MLIEKNOR) as SMLKV2
	,sum(LAKDNIN) as SLD2 --LakdniNL1,	
	,count(MEDZIOBD) as PMEDZ2
	,sum(MEDZIOBD) as SMEDZ2
	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by CHOVATEL
	
 --select * from @lakt2 order by CHOV


insert CP_ROCVYS 		
	select distinct l.CHOVATEL,
      datepart(YEAR, @datumOd) as ROK
      ,l1.PNLT1 as PNLT1
      ,l1.SMLKT1 as SMLKT1
      ,l1.STUK1 as STUK1
      ,l1.PNLB1 as PNLB1
      ,l1.SMLKB1 as SMLKB1
      ,l1.SBLK1 as SBLK1
      ,l1.PNLV1 as PNLV1
      ,l1.SMLKV1 as SMLKV1
      ,l1.SLD1 as SLD1
      ,l1.PVEK1 as PVEK1
      ,l1.SVEK1 as SVEK1
      ,l2.PNLT2 as PNLT2
      ,l2.SMLKT2 as SMLKT2
      ,l2.STUK2 as STUK2
      ,l2.PNLB2 as PNLB2
      ,l2.SMLKB2 as SMLKB2
      ,l2.SBLK2 as SBLK2
      ,l2.PNLV2 as PNLV2
      ,l2.SMLKV2 as SMLKV2
      ,l2.SLD2 as SLD2
      ,l2.PMEDZ2 as PMEDZ2
      ,l2.SMEDZ2 as SMEDZ2

	  from @Laktacie as l
	  left outer join @lakt1 as l1 on l1.CHOV = l.chovatel
	  left outer join @lakt2 as l2 on l2.CHOV = l.CHOVATEL

end
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (30) null,
	  [SPVykonu_kod][varchar](2) null,--sposob vykonu=stupen KU
	  [SPVykonu][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]

declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	 
insert into @Laktacie	
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,c.KOD, c.NAZOV,--, d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
	 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
	 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''

		 
 --select * from  @Laktacie order by CHOVATEL

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
		
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

 declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	where  k.PORPREBLAK ='1'
 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		)
	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	where k.PORPREBLAK >='2'
 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu


declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu
--select * from @PocZapojL1 

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
		
		--select * from @pocLAKV1 

declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV2,
    CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
    CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
		
	group by 
	case when @chov is null and @region is null then @chov	
		 when @chov is null then @region 
		 else (substring(l.CHOVATEL, 1, len(@chov))) end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu

		--select * from @pocLAKVCelk
		--print 0

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2,0)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

insert @laktCelkom
	select
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakCelk, 
		ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
		ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
		ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
		ROUND(AVG(TUKNOR),2) as TukNorCelk,
		ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
		ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
		AVG(INDPER) as IPZCelk,
		Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
		Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu

 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	
	insert @NormLak1
	select 
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
		Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @NormLak2
	select
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
		Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 	l.PORLAK >= '2'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @NormLakCelk
	select
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
		Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu  
	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu   

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaCelk order by CHOV

insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD)+','+('StKU'+l.SPVykonu_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojLCelk.CharChov_KOD=l.CharChov_KOD and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV1.CharChov_KOD=l.CharChov_KOD and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.CharChov_KOD=l.CharChov_KOD and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.CharChov_KOD=l.CharChov_KOD and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.CharChov_KOD=l.CharChov_KOD and L1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.CharChov_KOD=l.CharChov_KOD and L2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.CharChov_KOD=l.CharChov_KOD and lCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.CharChov_KOD=l.CharChov_KOD and NL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.CharChov_KOD=l.CharChov_KOD and NL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.CharChov_KOD=l.CharChov_KOD and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.CharChov_KOD=l.CharChov_KOD and ZL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.CharChov_KOD=l.CharChov_KOD and ZL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.CharChov_KOD=l.CharChov_KOD and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PocZvPohl] 
(	
	@chov varchar(9) 
)

RETURNS @T table(nazov varchar(13),Pocbah varchar(8),pocbar varchar(8), pocjar varchar(8), pocjah varchar(8), pocmbar2 varchar(8), pocmbar1 varchar(8))
AS
begin
	declare @pocbah int = 0, @pocbah2 int = 0, @pocbar int = 0, @pocbar2 int = 0, @pocjar int = 0, @pocjah int = 0, @pocmbar1 int = 0, @pocmbar2 int = 0
	SELECT @pocbah = @pocbah + pocet
	  FROM function_SP_bahroknar(@chov)
	SELECT @pocbar = @pocbar + pocet
	  FROM function_SP_barroknar(@chov)
	SELECT @pocjar = @pocjar + pocjar, @pocjah = @pocjah + pocjah,@pocmbar2 = @pocmbar2 + pocmbar2, 
	       @pocmbar1 = @pocmbar1 + pocmbar1
	  FROM function_SP_pocjarmbar(@chov)
	insert into @T (nazov,Pocbah,pocbar, pocjar, pocjah, pocmbar2, pocmbar1) values ('Počet celkom',str(@pocbah,8),str(@pocbar,8),str(@pocjar,8), str(@pocjah,8), str(@pocmbar2,8),str(@pocmbar1,8))
	RETURN 
end

go


CREATE PROCEDURE [dbo].[calcolate1AMesove] 
AS
BEGIN


 TRUNCATE TABLE plis.dbo.CP_Meso_1AReportTelata

declare @kodTyp as int;

declare @chov as varchar(10);

		declare @n varchar(20);
		declare @t as varchar(20);
		declare @pbn as int;

		declare @vbn as float;
		declare @pjn as int;
		declare @vjn as float;

		declare @pb120 as int;
		declare @vb120 float;
		declare @prb120 float;
		declare @pj120 int;
		declare @vj120 float;
		declare @prj120 as float;

		declare @pb210 as int;
		declare @vb210 float;
		declare @prb210 float;
		declare @pj210 int;
		declare @vj210 float;
		declare @prj210 as float;

		declare @pb365 as int;
		declare @vb365 float;
		declare @prb365 float;
		declare @pj365 int;
		declare @vj365 float;
		declare @prj365 as float;

		declare @pb500 as int;
		declare @vb500 float;
		declare @prb500 float;
		declare @pj500 int;
		declare @vj500 float;
		declare @prj500 as float;

/*DECLARE @TABLE TABLE 
( KodPlemeno int, NazovPlemeno varchar(20), 
  TypPlemeno varchar(20),PocetNarodeniBycy int,
  VahaNarodenyBycy float,PocetNarJalovis int, 
  VahaNarJalovis float,Pocet120Bycy int,
  Vaha120Bycy float,Prirastok120Bycy float,
  Pocet120Jalovic int,Vaha120Jalovic float,
  Prirastok120Jalovic float, Pocet210Byci int,
  Vaha210Bycy float,PrirastokBycy210 float,
  PocetJalovis210 int, VahaJalovic210 float,
  prirastokJalovic210 float, PocetBycy365 int,
  VahaBycy365 float,PrirastokBycy365 float,
  PocetJalovic365 int,VahaJalovic365 float,
  PrirastokJalovic365 float,PocetBycy500 int,
  VahaBycy500 float,PrirastokBycy500 float,
  PocetJalovic500 int,VahaJalovic500 float,
  PrirastokJalovic500 float) */

  declare chovately cursor for
  select distinct t.CHOVATEL
	from plis.dbo.CM_Telata as t
	where  t.PRIZNAKKU=2
	and t.pohlavie not in (16,26,61,62,63,71,03)


	open chovately
	fetch next from chovately into @chov;
	while @@FETCH_STATUS=0
	begin


		declare kodtypy cursor 
		for	select p.TYPC
		from plis.dbo.CM_Telata as t
		inner join plis.dbo.CC_PlemTyp as p
		on t.TYPPLEM=p.TYPC
		where t.CHOVATEL like @chov+'%'
		and t.PRIZNAKKU=2
		and t.DOVVYR is null
		and t.pohlavie not in (16,26,61,62,63,71,03)
		group by p.TYPC

		open kodtypy
		fetch next from kodtypy into @kodTyp;
		while @@FETCH_STATUS=0
		begin



		set @n=(select p.NAZTYP
				from  plis.dbo.CC_PlemTyp as p
				where p.TYPC=@kodTyp)
		set @t=(select p.UZITKOVYTYP
				from  plis.dbo.CC_PlemTyp as p
				where p.TYPC=@kodTyp)

		set @pbn=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vahaNar is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vbn=(select avg(v.vahaNar)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vahaNar is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)


		set @pjn=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vahaNar is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vjn=(select avg(v.vahaNar)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vahaNar is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

					-----------------------------------------------------
			set @pb120=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha120 is not null
					and p.TYPC=@kodTyp
					and t.DOVVYR is null
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vb120=(select avg(v.vaha120)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha120 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)


		set @pj120=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha120 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vj120=(select avg(v.vaha120)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.DOVVYR is null
					and t.POHLAVIE like'%2'
					and v.vaha120 is not null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prj120=(select avg(v.priras120)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.priras120 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prb120=(select avg(v.priras120)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.priras120 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)
					-----------------------------------------------------

					set @pb210=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and t.DOVVYR is null
					and v.vaha210 is not null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vb210=(select avg(v.vaha210)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha210 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)


		set @pj210=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha210 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vj210=(select avg(v.vaha210)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha210 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prj210=(select avg(v.priras210)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.priras210 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prb210=(select avg(v.priras210)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.priras210 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

					-----------------------------------------------------
					
					set @pb365=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vb365=(select avg(v.vaha365)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)


		set @pj365=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vj365=(select avg(v.vaha365)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prj365=(select avg(v.priras365)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.priras365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prb365=(select avg(v.priras365)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.priras365 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

					-----------------------------------------------------

					
					set @pb500=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vb500=(select avg(v.vaha500)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.vaha500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)


		set @pj500=(select count(*) as pocet 
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

		set @vj500=(select avg(v.vaha500)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.vaha500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prj500=(select avg(v.priras500)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%2'
					and v.priras500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

			set @prb500=(select avg(v.priras500)
					from plis.dbo.CM_Telata as t
					left join plis.dbo.CP_Meso_TelataVahy as v
					on t.CISTELATA=v.CISTELATA and t.CHOVATEL=v.chovatel
					inner join plis.dbo.CC_PlemTyp as p
					on t.TYPPLEM=p.TYPC
					where t.CHOVATEL=@chov
					and t.PRIZNAKKU=2
					and t.POHLAVIE like'%1'
					and v.priras500 is not null
					and t.DOVVYR is null
					and p.TYPC=@kodTyp
					and t.pohlavie not in (16,26,61,62,63,71,03)	)

					-----------------------------------------------------


		insert into  plis.dbo.CP_Meso_1AReportTelata values (
								@chov,@kodtyp,@n,@t,
								@pbn,@vbn,@pjn,@vjn,
								@pb120,@vb120,@prb120,@pj120,@vj120,@prj120,
								@pb210,@vb210,@prb210,@pj210,@vj210,@prj210,
								@pb365,@vb365,@prb365,@pj365,@vj365,@prj365,
								@pb500,@vb500,@prb500,@pj500,@vj500,@prj500
							);
		fetch next from kodtypy into @kodTyp;
	end

	close kodtypy
	deallocate kodtypy
	
	fetch next from chovately into @chov;
	end
	close chovately
	deallocate chovately
 


	
END
go

CREATE PROCEDURE [dbo].[CR_KUARHD_mesacneOPR]

	@chov VARCHAR(9),
	@rok INT,
	@mesiac INT--,
	--@dekada INT

	AS

	BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016, 
--				19.5.2016	-- doplnene minus 2 mesiace od vyradenia
--				30.05.2016	-- opravene dvojicky, interval z inseminacie, vek pri oteleni, linia a register otca, vyradenie kravy je na stavene 1.den dekady minus 2 mesiace
							-- opraveny datum poslednej inseminacie, byka a ocakavaneho otelenia
--				1.6.2016	-- oprava datumu inseminacie po reinseminacii
--				25.7.2017	-- zrusenie dekad
-- Description:	Mesačné výsledky kontroly úžitkovosti a reprodukcie HD
-- @chov, @rok, @mesiac
-- ===================================================================

	DECLARE @datum DATE, @datum2 DATE
    
	SELECT @datum = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/
	SET @datum2 = DATEADD(MONTH, -2, @datum)

	PRINT 'Datum: ' + CONVERT(VARCHAR, @datum);
	PRINT 'Datum -2 mesiace: ' + CONVERT(VARCHAR, @datum2);

	IF OBJECT_ID('tempdb..#krava') IS NOT NULL DROP TABLE #krava
	SELECT * INTO #krava FROM dbo.CM_Krava WHERE CHOVATEL=@chov and PRIZNAKKU=1 AND (DATVYR IS NULL OR DATVYR >= @datum2) 
	IF OBJECT_ID('tempdb..#kontroly') IS NOT NULL DROP TABLE #kontroly
	
	SELECT DISTINCT kontroly.CISKRAVY, kontroly.DATKONTR, kontroly.PERCTUKU, kontroly.PERCBIELK, kontroly.BUNECELEM  INTO #kontroly FROM dbo.CM_Kontroly kontroly
	INNER JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = kontroly.CISKRAVY) AND (DATVYR IS NULL OR DATVYR >= @datum2)
	WHERE  kontroly.CISCHOVU = @chov
	
				--select * from #kontroly

	IF OBJECT_ID('tempdb..#k2row') IS NOT NULL DROP TABLE #k2row
	SELECT  t.* INTO #k2row FROM (SELECT  DISTINCT CISKRAVY FROM #kontroly) mo
	CROSS APPLY(SELECT  TOP 2 * FROM #kontroly mi  WHERE  mi.CISKRAVY = mo.CISKRAVY ORDER BY mi.DATKONTR DESC) t
	
	--select * from #k2row
	
	IF OBJECT_ID('tempdb..#k1') IS NOT NULL DROP TABLE #k1
	SELECT ciskravy, MAX(datkontr)datum1 INTO #k1 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k2') IS NOT NULL DROP TABLE #k2
	SELECT CISKRAVY,(case when  MIN(datkontr)<>MAX(datkontr) then MIN(datkontr)else null end) as datum2  INTO #k2 FROM #k2row  GROUP BY ciskravy
	
	select * from #k1 order by CISKRAVY
	select * from #k2 order by CISKRAVY

	IF OBJECT_ID('tempdb..#k1temp') IS NOT NULL DROP TABLE #k1temp
	IF OBJECT_ID('tempdb..#k2temp') IS NOT NULL DROP TABLE #k2temp
	
	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko, ROUND(AVG(PERCTUKU),2)tuk, ROUND(AVG(PERCBIELK),2)bielk, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB, ROUND(AVG(BUNECELEM),0)SB INTO #k1temp  FROM #k1 k1
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k1.ciskravy AND k1.datum1 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY
	select * from #k1temp order by CISKRAVY

	SELECT k2.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko1, ROUND(AVG(PERCTUKU),2)tuk1, ROUND(AVG(PERCBIELK),2)bielk1, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB1, ROUND(AVG(BUNECELEM),0)SB1  INTO #k2temp FROM #k2 as k2
		Left outer JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k2.ciskravy AND (k2.datum2 = kontroly.DATKONTR)) 
		
		GROUP BY k2.CISKRAVY	
	select * from #k2temp order by CISKRAVY
	
	IF OBJECT_ID('tempdb..#2ko') IS NOT NULL DROP TABLE #2ko
	SELECT krava.CISKRAVY, k1temp.mlieko, k2temp.mlieko1, k1temp.tuk, k1temp.bielk, k1temp.TB, k1temp.SB, k2temp.tuk1, k2temp.bielk1, k2temp.TB1, k2temp.SB1 INTO #2ko FROM #krava krava
		INNER JOIN #k1temp k1temp ON (k1temp.CISKRAVY = krava.CISKRAVY)
		INNER JOIN #k2temp k2temp ON (k2temp.CISKRAVY = krava.CISKRAVY)
	select * from #2ko order by CISKRAVY

		-- 100 - 200 - 300

	IF OBJECT_ID('tempdb..#sdt') IS NOT NULL DROP TABLE #sdt
	
	SELECT c.* INTO #sdt FROM
	(
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 100)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 200)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 305)
	)c


DECLARE @krava VARCHAR(14), @iplca VARCHAR(14), @counter INT, @count INT, @poradie INT, @pdatum DATE, @fdatum DATE, @ivyse INT, @bykreg INT, @byklin  VARCHAR(3)
DECLARE @datotel DATE, @POCINS1 INT, @POCINS2 INT, @POCINS3 INT, @POCINS4VIAC INT, @POCTELNYCH INT

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL DROP TABLE #inseminacie

  CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT,
		  byklin VARCHAR(3),
		  bykreg VARCHAR(3),
		  datotel DATE
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM	dbo.CM_Insvyk I
                INNER JOIN dbo.CM_Krava K ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ((K.DATVYR) >= DATEADD(MONTH, -2, @datum) OR K.DOVVYR IS NULL) -- zahrnut do vyberu aj kravy, ktore boli vyradene od obdobia minus 2 mesiace
				AND I.IPOIN <> 99
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = MAX(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@byklin = MAX(CONVERT(VARCHAR(3),IBLIN)),
					@bykreg = MAX(IBREG),
					@datotel = MAX(IDAOT)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> '99'
					
            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse, byklin, bykreg, datotel )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse, @byklin, @bykreg, @datotel )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


-- interval

DECLARE @odatum DATE,@rozdiel_dni INT, @POCINTR INT, @POCSERV INT

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) -- pridane
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99


            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor


BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                --AND ( ISNULL(DOVVYR, '') = '' )
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) --pridane
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
					AND IsNumeric(IVYSE) = 1 AND CAST(IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END
END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor


IF OBJECT_ID('tempdb..#medziobdobie') IS NOT NULL DROP TABLE #medziobdobie
SELECT k.CISKRAVY ciskravy, n.MEDZIOBD INTO #medziobdobie FROM cm_krava k
			LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
			WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL)
			AND (DATVYR >= @datum2 OR k.DOVVYR IS NULL) -- pridane
			--AND (ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00')

IF OBJECT_ID('tempdb..#napocetlak') IS NOT NULL DROP TABLE #napocetlak
SELECT
	k.CISKRAVY AS ciskravy,
	n.LAKTDNI AS nap_dni,
	n.MLIEKCEL AS nap_mliekokg,
	ROUND(((n.TUKCEL / n.MLIEKCEL)*100),2) AS nap_tukper,
	ROUND(((n.BIELKCEL / n.MLIEKCEL)*100),2) AS nap_bielkper,
	ROUND(n.TUKCEL,0) AS nap_tkg,
	ROUND(n.BIELKCEL,0) AS nap_bkg
	INTO #napocetlak
	FROM dbo.CM_Naplak n
	LEFT outer JOIN #krava k ON (k.CISKRAVY = n.CISKRAVY)

	--select * from #napocetlak

	--print '#napocetlak'
	--declare @napocetlak int = (select count(*) from #napocetlak)
	--print @napocetlak


	BEGIN

	--IF OBJECT_ID('tempdb..#vyber') IS NOT NULL DROP TABLE #vyber

	------DELETE FROM CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok  AND mesiac = @mesiac --AND dekada = @dekada


	INSERT INTO dbo.CR_KURHD_MesUzavCH_3
	SELECT
--	distinct CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	 CONVERT(varchar(9), @chov) chov
	,CONVERT(INT, @rok) rok
	,CONVERT(INT, @mesiac) mesiac
	,/*CONVERT(INT, @dekada)*/ null dekada
	,CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	,CONVERT(INT,k.PORPREBLAK, NULL) PORPREBLAK
	,CONVERT(VARCHAR(2),n.ZMENA, NULL) ZMENA
	,UPPER(ISNULL(n.ZNAK,NULL)) ZNAK
	,CONVERT(DECIMAL(7,0),(tdm.SPI),NULL) SPI
	,CONVERT(DECIMAL(7,2), ROUND(tdm.REL*100,2), NULL) AS PERSPOL
	,CONVERT(DATE,k.datnar,NULL) DATNAR
	,CONVERT(VARCHAR(70),
	ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
    + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
    + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '')) PLEMKR
	,CONVERT(DATE, n.DATOTEL) DATOT
	,CONVERT(INT,(SELECT COUNT(*) FROM dbo.CM_kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY),NULL)PK
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 1 ORDER BY ko.DATKONTR DESC))ML1
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '1' THEN '*' END)ZN1
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 2 ORDER BY ko.DATKONTR DESC))ML2
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '2' THEN '*' END)ZN2
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 3 ORDER BY ko.DATKONTR DESC))ML3
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '3' THEN '*' END)ZN3
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 4 ORDER BY ko.DATKONTR DESC))ML4
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '4' THEN '*' END)ZN4
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 5 ORDER BY ko.DATKONTR DESC))ML5
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '5' THEN '*' END)ZN5
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 6 ORDER BY ko.DATKONTR DESC))ML6
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '6' THEN '*' END)ZN6
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 7 ORDER BY ko.DATKONTR DESC))ML7
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '7' THEN '*' END)ZN7
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 8 ORDER BY ko.DATKONTR DESC))ML8
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '8' THEN '*' END)ZN8
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 9 ORDER BY ko.DATKONTR DESC))ML9
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '9' THEN '*' END)ZN9
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 10 ORDER BY ko.DATKONTR DESC))ML10
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '10' THEN '*' END)ZN10
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 11 ORDER BY ko.DATKONTR DESC))ML11
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '11' THEN '*' END)ZN11
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 12 ORDER BY ko.DATKONTR DESC))ML12
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '12' THEN '*' END)ZN12
	,CONVERT(DECIMAL(4,2),kontrola2.tuk)PTUKU1
	,CONVERT(DECIMAL(4,2),kontrola2.bielk)PBIELK1
	,CONVERT(DECIMAL(3,1),kontrola2.TB)PTB1
	,CONVERT(INT,kontrola2.SB)SB1
	,CONVERT(DECIMAL(3,2),kontrola2.tuk1)PTUKU2
	,CONVERT(DECIMAL(3,2),kontrola2.bielk1)PBIELK2
	,CONVERT(DECIMAL(3,2),kontrola2.TB1)PTB2
	,CONVERT(INT,kontrola2.SB1)SB2
	,CONVERT(INT,sdt.laktdni)LAKTDNI
	,CONVERT(INT,sdt.lakdnin)UDNI
	,CONVERT(DECIMAL(7,2),sdt.mlieknor)NAPML
	,CONVERT(DECIMAL(7,2),sdt.tuknor)NAPTK
	,CONVERT(DECIMAL(3,2),sdt.tukper)UPERT
	,CONVERT(DECIMAL(7,2),sdt.bielknor)NAPBL 
	,CONVERT(DECIMAL(4,2),sdt.bielkper)UPERB
	,CONVERT(INT,ins.poradie)PORINS
	,(SELECT TOP 1 ( i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and (CONVERT(DATE, ins.fdatum)>n.DATOTEL) ORDER BY i.IDAIN DESC)OLINREG
	----,CONVERT(DATE,(CASE WHEN ins.ivyse = 9 THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))DTOTOC
	,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) and (DATEDIFF(day, n.DATOTEL, CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END)) else NULL end as DTOTOC
    ,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) then CONVERT(DATE, ins.fdatum)else null end DATINS
	,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3))OUC

	,CONVERT(VARCHAR(70),byc.PL1 + '-' + CONVERT(VARCHAR, ISNULL(byc.KR1, 0)) + ' ' + ISNULL(byc.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR2, 0)) + ' ' + ISNULL(byc.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR3, 0)) + ' ' + ISNULL(byc.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR4, 0)) + ' ' + ISNULL(byc.PL5, ''), ''), ''), ''))OTPLEM
	,CONVERT(VARCHAR(14),k.MA)MATKA
	,CONVERT(VARCHAR(70),(SELECT 
	--t1.ciskravy, t1.DATNAR, tt1.ciskravy, tt1.DATNAR,
	tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
		FROM dbo.CM_Krava t1
			LEFT JOIN dbo.CM_Krava tt1 ON t1.MA = tt1.CISKRAVY WHERE t1.CISKRAVY = k.CISKRAVY))MAPLEM
	,CONVERT(INT, interval.rozdiel_dni)INTERVAL
	,CONVERT(INT, sp.rozdiel_dni)SERVPER
	,CONVERT(INT, medzi.MEDZIOBD)MEDZIOB
	,CONVERT(VARCHAR(4),(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)/12)))+ '/' +(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)% 12))))OVEKRM -- rok/mesiac
	,CONVERT(VARCHAR(2),n.POHLAVIE)POHLTEL
	,CONVERT(INT, n.PRIEBPOROD)PRIEBPOR
	,CONVERT(INT, nap.nap_dni)
	,CONVERT(INT, nap.nap_mliekokg)
	,CONVERT(DECIMAL(5,2), nap.nap_tukper)
	,CONVERT(DECIMAL(5,2), nap.nap_bielkper)
	,CONVERT(INT, nap.nap_tkg)
	,CONVERT(INT, nap.nap_bkg)
	,CONVERT(VARCHAR(2), k.DOVVYR)
	,CONVERT(DATE, k.DATVYR, NULL)
	,GETDATE() AS generovane
	,(SELECT TOP 1 DATKONTR FROM #kontroly kk WHERE kk.CISKRAVY = k.CISKRAVY order by DATKONTR desc) kontrola
	, case when k.SKUPINA ='0' then null else k.SKUPINA end as SKUPINA
	, k.OUSCIS as otec


	FROM dbo.CM_Krava k
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #2ko kontrola2 ON (kontrola2.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #sdt sdt ON (sdt.ciskravy = k.CISKRAVY)
		LEFT JOIN #inseminacie ins ON (ins.krava = k.CISKRAVY)
		LEFT JOIN dbo.CM_KravyTDM tdm ON (tdm.CISLO = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Telata tel ON (tel.CISTELATA = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = tel.OUC)
		LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = k.OUSCIS)
		LEFT JOIN #krava mama ON (mama.ma = k.CISKRAVY)
		LEFT JOIN #interval interval ON (interval.krava = k.CISKRAVY)
		LEFT JOIN #servisperioda sp ON (sp.krava = k.CISKRAVY)
		LEFT JOIN #medziobdobie medzi ON (medzi.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #napocetlak nap ON (k.CISKRAVY = nap.ciskravy)
	WHERE  k.CHOVATEL = @chov and k.PRIZNAKKU=1
			AND (k.DATVYR >= @datum2 OR k.DOVVYR IS NULL)
	
			--AND k.DOVVYR IS NULL

	
	----------------------------------------------------------------------
	--;WITH CTE AS(
	-- SELECT ciskravy, chov, mesiac, rok, dekada,
	--	 RN = ROW_NUMBER()OVER(PARTITION BY ciskravy ORDER BY ciskravy)
	--	 FROM dbo.CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac /*AND dekada = @dekada*/ AND ciskravy IS NOT NULL
	--				)
	--	DELETE FROM CTE  WHERE RN > 1
	----------------------------------------------------------------------




	END 
	
	END
go



-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.04.2017
-- Description:	Doplni bodkami v PUC na koniec 457..
-- =============================================
CREATE FUNCTION [dbo].[S_uprav_PUC]
(
	@PUC varchar(5)
)
RETURNS varchar(14)
AS
BEGIN
	if @PUC is NULL or @PUC = '' return NULL;

	if (len(@PUC) != 5)
		set @PUC = (Select @PUC + RIGHT('     ', 5-len(@PUC)))

	return 
		(select replace(@PUC, ' ', '.'))
		--(select case when len(@PUC) = 5 then replace(@PUC, ' ', '.') else  LEFT('.....', 5-len(@PUC))+@PUC END as LUC)

END


go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania05]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd05.CISKRAVY, hd05.DATSPRAC, 
	hd05.DATZAPIS, hd05.CHOVDO, hd05.CHOVHLAS, hd05.CHOVOD, hd05.LOGIN, hd05.PRIZSPRAC, hd05.VERZIA
	
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd05.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_PRESUNY as ezk
	on h.IDR_HLAS = ezk.ID_CP
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD05_PRESUNY as hd05
	on h.IDR_HLAS = hd05.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '5' and ezk.CISCHYBY is not null

		Order by CHOV, CISKRAVY

		end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko --- Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_plemeno]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[PlemTyp] [varchar] (10) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				--(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')
					THEN 'OSTA' else PLEM end end)as Plem, 					
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.kraj = @chov	
					
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and (PLEM=@plem or @plem is null)
					and MLIEKCEL <>''

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where-- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.okres = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when  PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')  --and PLEM is not null
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where -- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.podnik = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.chovatel = @chov
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem,
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')-- and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
		(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
											
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
				and (pl.TYPS=@plem or @plem is null)	


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
		  (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		and (PLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
			(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					and (pl.TYPS=@plem or @plem is null)	
end


--select * from @kravy

--select * from @Laktacie

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 14.06.2016
-- Description:	vypocet cudzej krvi
-- =============================================
CREATE FUNCTION [dbo].[SIMSucetCudzejKrvi] 
(
	@PL1 varchar(2) NULL,
	@KR1 float NULL,
	@PL2 varchar(2) NULL,
	@KR2 float NULL,
	@PL3 varchar(2) NULL,
	@KR3 float NULL,
	@PL4 varchar(2) NULL,
	@KR4 float NULL,
	@PL5 varchar(2) NULL
)
RETURNS int
AS
BEGIN
	
	declare @cudziakrv numeric (5,1) = 0
	if (@PL2 not in ('S', 'MB'))
		set @cudziakrv = isnull(@kr2, 0)
	if (@PL3 not in ('S', 'MB'))
		set @cudziakrv = @cudziakrv + isnull(@kr3, 0)
	if (@PL4 not in ('S', 'MB'))
		set @cudziakrv = @cudziakrv + isnull(@kr4, 0)

	-- Return the result of the function
	RETURN @cudziakrv * 10

END
go

-- =============================================
-- Author:		David Florek
-- Create date:	31.07.2017
-- Description:	Vrati posledny pracovny den v mesiaci. Nerata so sviatkami.
-- =============================================
CREATE FUNCTION [dbo].[Posledny_pracovny_den_mesiaca]
(
	@mesiac varchar(2) = '0',
	@rok varchar(4) = '0'
)
RETURNS varchar(2)
AS
BEGIN
	DECLARE @datum DATE;

	set @datum = GETDATE();

	if @mesiac = '0' set @mesiac = CAST(MONTH(@datum) as varchar(2));
	if @rok = '0' set @mesiac = CAST(YEAR(@datum) as varchar(4));

	set @datum = CONVERT(Date, '01-' + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + '-' + @rok, 105);

	set @datum = EOMONTH(@datum);

	if(DATEPART(WEEKDAY, @datum) = 1) set @datum = DATEADD(day, -2, @datum);
	if(DATEPART(WEEKDAY, @datum) = 7) set @datum = DATEADD(day, -1, @datum);

	return CAST(DAY(@datum) as varchar(2));
END
go

CREATE procedure [dbo].[CR_Zhoda_vzoriek_z_rozborov]
@chov varchar(9)='',
@ciskravy varchar(14)=''

as
begin 
	--declare @datumKontroly date
	--set @datumKontroly= (select max(convert (date,SDATKONTR,103)) from View_CM_Rozbory where CHOV=@chov or chov is null group by chov)

	declare @kravy table
	(
		ciskravy varchar(14),
		chov varchar(9),
		sdatkontr date,
		porpreblak varchar(2)
	
	)
	
	insert into @kravy
		select distinct
			N.CISKRAVY,
			N.CHOVATEL,
			(select max(convert (date,SDATKONTR,103)) from View_CM_Rozbory where CHOV=@chov or chov is null group by chov),
			N.porlak
			
			from  View_CM_Rozbory  as R
			left outer join CM_Naplak as N on N.CISKRAVY=R.CISKRAVY and N.PORLAK=R.PorPreblak 
				where (@chov= N.CHOVATEL or @chov is null) 
					and (R.CISKRAVY = @ciskravy or @ciskravy is null)
					and N.ZMENA='11' 
					and ZNKONTR is null 
					--and R.SDATKONTR = @datumKontroly
	select * from @kravy order by  sdatkontr desc

	declare @porovnanie table
	(
		ciskravy varchar(14),
		chov varchar(9),
		sdatkontr date,
		porpreblak varchar(2),
		perctuku float,
		percbielk float, 
		perclaktoz float
	)
	Insert into @porovnanie
		select distinct
			K.ciskravy,
			K.chov,
			K.sdatkontr, 
			K.porpreblak,
			R.PERCTUKU,
			R.PERCBIELK,
			R.PERCLAKTOZ
		from View_CM_Rozbory as R
	left outer join @kravy as K  on R.CHOV = K.chov and convert(date,R.sdatkontr,103) = K.SDATKONTR and R.CISKRAVY=K.ciskravy and R.porpreblak = K.PorPreblak
	
				--where ZNKONTR is null	
				--	and R.sdatkontr = K.SDATKONTR --group by R.ciskravy,K.sdatkontr,K.chov,K.porpreblak,R.PERCTUKU, R.PERCBIELK, R.PERCLAKTOZ
	
	select * from @porovnanie
	end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.1.2016
-- Description:	Vrati sumar k zoznamu teliat za mesiac (prefix mesiac) 
-- 20.04.2018 pridanie: okrem sumaru za chov vyberie aj sumar za podnik, pokial ma podnik viac ML chovov so spracovanim v danom mesiaci a roku.
-- =============================================
CREATE procedure [dbo].[CR_Zoznam_Teliat_Za_mesiac_sumar_2]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	
as
begin
	
	declare @sumar_teliat table
	(
	chov varchar(9), 
	preukazany int,
	duplicitny int,
	nepreukazany int,
	dodatocne_urceny int,
	neznamy int,
	spolu_teliat int,
	mesiac int,
	rok int )

	declare @sumar_teliat_P table
	(
	P_chov varchar(9), 
	P_preukazany int,
	P_duplicitny int,
	P_nepreukazany int,
	P_dodatocne_urceny int,
	P_neznamy int,
	P_spolu_teliat int,
	P_mesiac int,
	P_rok int
	)

	insert into @sumar_teliat
	select chov, preukazany,duplicitny,nepreukazany,dodatocne_urceny,neznamy,spolu_teliat,mesiac,rok--,dekada 
	from plis.dbo.CR_Zoznam_teliat_za_mesiac_sumar as z
	where  (z.chov like @CHOV+'%' or @CHOV is null)
	and z.rok = @rok and z.MESIAC = @mesiac --and (z.dekada = @DEKADA or @DEKADA is null)
	 and z.spolu_teliat <>0
	--order by chov
	

	if (select count(chov) from  plis.dbo.CR_Zoznam_teliat_za_mesiac_sumar
		where substring(@chov,1,6) = substring(chov,1,6)
			and @rok = rok
			and @mesiac = mesiac) > 1
		begin
			insert into @sumar_teliat_P 
			
			select distinct substring(chov,1,6) as P_chov, sum(preukazany) as  P_preukazany, sum(duplicitny) as P_duplicitny, sum(nepreukazany) as P_nepreukazany,
				sum(dodatocne_urceny) as  P_dodatocne_urceny, sum(neznamy) as P_neznamy, sum(spolu_teliat) as P_spolu_teliat, 
				@mesiac as P_mesiac, @rok as P_rok
			from plis.dbo.CR_Zoznam_teliat_za_mesiac_sumar
			where substring(@chov,1,6) = substring(chov,1,6)
				and @rok = rok
				and @mesiac = mesiac
				group by substring(chov,1,6)
		end

		--select * from @sumar_teliat
		--select * from @sumar_teliat_P
		select * from @sumar_teliat as ch
		left outer join @sumar_teliat_P as p on ch.mesiac = p.P_mesiac and ch.rok = p.P_rok and substring(ch.chov,1,6) = p.P_chov
		where ch.rok= @rok 
			and ch.mesiac = @mesiac 
			and ch.chov = @CHOV

end
go

-- =============================================
----pre rocenku MLHD 
----udaje sa zobrazuju na stranke plis v hodnotiacich prehladoch krav mlieka v tab 6B
---- prepocty sa ukladju do tabulky CP_ROCVYS
---- M. Holesova
-- =============================================

Create PROCEDURE [dbo].[Roc_MLHD_ROCVYS_prepocet] 
@datumOd date,
@datumDo date

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_Rocvys @chov, @datumOd, @datumDo
			

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MLHD_Rocvys @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
								EXEC Roc_MLHD_Rocvys @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
							EXEC Roc_MLHD_Rocvys @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

---- prepocet za SR
--set @chov=null
--	PRINT 'Prepocitavam Slovensko'
--	EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
--	EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

delete from CP_ROCVYS where PNLT1 is null and SMLKT1  is null and STUK1 is null and PNLB1 is null and  SMLKB1 is null and SBLK1 is null and 
      PNLV1 is null and SMLKV1 is null and SLD1 is null and PVEK1 is null and SVEK1 is null and PNLT2 is null and 
      SMLKT2 is null and  STUK2 is null and PNLB2 is null and SMLKB2 is null and SBLK2 is null and PNLV2 is null and 
	  SMLKV2 is null and SLD2 is null and  PMEDZ2 is null and  SMEDZ2 is null
END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.06.2016
-- Description:	Priprava dat pre zostavu - Prehľad vyradených kráv - Hodnotiace prehľady v KÚ mlieka - podla dni v dojeni
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_VyrKravyPodlaDniVDojeni_oprava]
	@chov varchar(9)
AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
	case when l.LAKTDNI between 0 and 29	and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s51_0,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s51_1,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s51_2,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s51_3,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s51_4,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s51_5,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s51_6,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s51_7,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s51_8,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s51_9,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s51_10,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s51_11,
	case when l.LAKTDNI between 0 and 29 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek51,
	case when l.LAKTDNI between 0 and 29 then MLIEKOPR else 0 end as ml51,
	case when l.LAKTDNI between 0 and 29 then 1 else 0 end as poc51,

	case when l.LAKTDNI between 30 and 59												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s52_0,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s52_1,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s52_2,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s52_3,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s52_4,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s52_5,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s52_6,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s52_7,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s52_8,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s52_9,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s52_10,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s52_11,
	case when l.LAKTDNI between 30 and 59 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek52,
	case when l.LAKTDNI between 30 and 59 then MLIEKOPR else 0 end as ml52,
	case when l.LAKTDNI between 30 and 59 then 1 else 0 end as poc52,

	case when l.LAKTDNI between 60 and 89												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s53_0,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s53_1,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s53_2,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s53_3,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s53_4,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s53_5,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s53_6,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s53_7,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s53_8,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s53_9,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s53_10,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s53_11,
	case when l.LAKTDNI between 60 and 89 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek53,
	case when l.LAKTDNI between 60 and 89 then MLIEKOPR else 0 end as ml53,
	case when l.LAKTDNI between 60 and 89 then 1 else 0 end as poc53,

	case when l.LAKTDNI between 90 and 119												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s54_0,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s54_1,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s54_2,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s54_3,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s54_4,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s54_5,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s54_6,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s54_7,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s54_8,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s54_9,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s54_10,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s54_11,
	case when l.LAKTDNI between 90 and 119 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek54,
	case when l.LAKTDNI between 90 and 119 then MLIEKOPR else 0 end as ml54,
	case when l.LAKTDNI between 90 and 119 then 1 else 0 end as poc54,

	case when l.LAKTDNI between 120 and 149												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s55_0,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s55_1,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s55_2,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s55_3,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s55_4,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s55_5,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s55_6,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s55_7,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s55_8,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s55_9,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s55_10,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s55_11,
	case when l.LAKTDNI between 120 and 149 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek55,
	case when l.LAKTDNI between 120 and 149 then MLIEKOPR else 0 end as ml55,
	case when l.LAKTDNI between 120 and 149 then 1 else 0 end as poc55,

	case when l.LAKTDNI between 150 and 179												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s56_0,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s56_1,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s56_2,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s56_3,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s56_4,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s56_5,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s56_6,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s56_7,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s56_8,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s56_9,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s56_10,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s56_11,
	case when l.LAKTDNI between 150 and 179 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek56,
	case when l.LAKTDNI between 150 and 179 then MLIEKOPR else 0 end as ml56,
	case when l.LAKTDNI between 150 and 179 then 1 else 0 end as poc56,

	case when l.LAKTDNI between 180 and 209												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s57_0,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s57_1,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s57_2,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s57_3,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s57_4,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s57_5,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s57_6,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s57_7,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s57_8,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s57_9,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s57_10,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s57_11,
	case when l.LAKTDNI between 180 and 209 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek57,
	case when l.LAKTDNI between 180 and 209 then MLIEKOPR else 0 end as ml57,
	case when l.LAKTDNI between 180 and 209 then 1 else 0 end as poc57,

	case when l.LAKTDNI between 210 and 239												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s58_0,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s58_1,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s58_2,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s58_3,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s58_4,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s58_5,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s58_6,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s58_7,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s58_8,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s58_9,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s58_10,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s58_11,
	case when l.LAKTDNI between 210 and 239 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek58,
	case when l.LAKTDNI between 210 and 239 then MLIEKOPR else 0 end as ml58,
	case when l.LAKTDNI between 210 and 239 then 1 else 0 end as poc58,

	case when l.LAKTDNI between 240 and 269												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s59_0,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s59_1,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s59_2,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s59_3,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s59_4,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s59_5,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s59_6,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s59_7,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s59_8,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s59_9,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s59_10,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s59_11,
	case when l.LAKTDNI between 240 and 269 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek59,
	case when l.LAKTDNI between 240 and 269 then MLIEKOPR else 0 end as ml59,
	case when l.LAKTDNI between 240 and 269 then 1 else 0 end as poc59,

	case when l.LAKTDNI between 270 and 299												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s60_0,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s60_1,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s60_2,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s60_3,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s60_4,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s60_5,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s60_6,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s60_7,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s60_8,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s60_9,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s60_10,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s60_11,
	case when l.LAKTDNI between 270 and 299 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek60,
	case when l.LAKTDNI between 270 and 299 then MLIEKOPR else 0 end as ml60,
	case when l.LAKTDNI between 270 and 299 then 1 else 0 end as poc60,

	case when l.LAKTDNI > 300												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s61_0,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s61_1,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s61_2,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s61_3,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s61_4,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s61_5,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s61_6,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s61_7,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s61_8,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s61_9,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s61_10,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s61_11,
	case when l.LAKTDNI > 300 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek61,
	case when l.LAKTDNI > 300 then MLIEKOPR else 0 end as ml61,
	case when l.LAKTDNI > 300 then 1 else 0 end as poc61

	into #temp_vyrad_podla_dni
	  FROM CM_Krava as k
	  LEFT JOIN CM_Naplak as l
		ON k.CISKRAVY = l.CISKRAVY
	  where k.CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)

	select poradie, kod, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, poc, priemvek, priemml
		 into #temp2_vyrad_podla_dni_ from
	(select
	1 as poradie, '0 - 29 dní' as kod, sum(s51_0) as m0, sum(s51_1) as m1,sum(s51_2) as m2,sum(s51_3) as m3, sum(s51_4) as m4, sum(s51_5) as m5, sum(s51_6) as m6, sum(s51_7) as m7, sum(s51_8) as m8, sum(s51_9) as m9, sum(s51_10) as m10, sum(s51_11) as m11, sum(poc51) as poc, sum(vek51)/nullif(sum(poc51), 0) as priemvek, sum(ml51)/nullif(sum(poc51), 0) as priemml
	 from #temp_vyrad_podla_dni
	union
	select
	2, '30 - 59 dní', sum(s52_0), sum(s52_1),sum(s52_2),sum(s52_3), sum(s52_4), sum(s52_5), sum(s52_6), sum(s52_7), sum(s52_8), sum(s52_9), sum(s52_10), sum(s52_11),  sum(poc52), sum(vek52)/nullif(sum(poc52), 0), sum(ml52)/nullif(sum(poc52), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	3, '60 - 89 dní', sum(s53_0), sum(s53_1),sum(s53_2),sum(s53_3), sum(s53_4), sum(s53_5), sum(s53_6), sum(s53_7), sum(s53_8), sum(s53_9), sum(s53_10), sum(s53_11),  sum(poc53), sum(vek53)/nullif(sum(poc53), 0), sum(ml53)/nullif(sum(poc53), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	4, '90-119 dní', sum(s54_0), sum(s54_1),sum(s54_2),sum(s54_3), sum(s54_4), sum(s54_5), sum(s54_6), sum(s54_7), sum(s54_8), sum(s54_9), sum(s54_10), sum(s54_11),  sum(poc54), sum(vek54)/nullif(sum(poc54), 0), sum(ml54)/nullif(sum(poc54), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	5, '120 - 149 dní', sum(s55_0), sum(s55_1),sum(s55_2),sum(s55_3), sum(s55_4), sum(s55_5), sum(s55_6), sum(s55_7), sum(s55_8), sum(s55_9), sum(s55_10), sum(s55_11),  sum(poc55), sum(vek55)/nullif(sum(poc55), 0), sum(ml55)/nullif(sum(poc55), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	6, '150 - 179 dní', sum(s56_0), sum(s56_1),sum(s56_2),sum(s56_3), sum(s56_4), sum(s56_5), sum(s56_6), sum(s56_7), sum(s56_8), sum(s56_9), sum(s56_10), sum(s56_11),  sum(poc56), sum(vek56)/nullif(sum(poc56), 0), sum(ml56)/nullif(sum(poc56), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	7, '180 - 209 dní', sum(s57_0), sum(s57_1),sum(s57_2),sum(s57_3), sum(s57_4), sum(s57_5), sum(s57_6), sum(s57_7), sum(s57_8), sum(s57_9), sum(s57_10), sum(s57_11),  sum(poc57), sum(vek57)/nullif(sum(poc57), 0), sum(ml57)/nullif(sum(poc57), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	8, '210 - 239 dní', sum(s58_0), sum(s58_1),sum(s58_2),sum(s58_3), sum(s58_4), sum(s58_5), sum(s58_6), sum(s58_7), sum(s58_8), sum(s58_9), sum(s58_10), sum(s58_11),  sum(poc58), sum(vek58)/nullif(sum(poc58), 0), sum(ml58)/nullif(sum(poc58), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	9, '240 - 269 dní', sum(s59_0), sum(s59_1),sum(s59_2),sum(s59_3), sum(s59_4), sum(s59_5), sum(s59_6), sum(s59_7), sum(s59_8), sum(s59_9), sum(s59_10), sum(s59_11),  sum(poc59), sum(vek59)/nullif(sum(poc59), 0), sum(ml59)/nullif(sum(poc59), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	10, '270 - 299 dní', sum(s60_0), sum(s60_1),sum(s60_2),sum(s60_3), sum(s60_4), sum(s60_5), sum(s60_6), sum(s60_7), sum(s60_8), sum(s60_9), sum(s60_10), sum(s60_11),  sum(poc60), sum(vek60)/nullif(sum(poc60), 0), sum(ml60)/nullif(sum(poc60), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	11, '> 300 dní', sum(s61_0), sum(s61_1),sum(s61_2),sum(s61_3), sum(s61_4), sum(s61_5), sum(s61_6), sum(s61_7), sum(s61_8), sum(s61_9), sum(s61_10), sum(s61_11),  sum(poc61), sum(vek61)/nullif(sum(poc61), 0), sum(ml61)/nullif(sum(poc61), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	12, 'Celkom',sum(s51_0)+sum(s52_0)+sum(s53_0)+sum(s54_0)+sum(s55_0)+sum(s56_0)+sum(s57_0)+sum(s58_0)+sum(s59_0)+sum(s60_0)+sum(s61_0), 
	sum(s51_1)+sum(s52_1)+sum(s53_1)+sum(s54_1)+sum(s55_1)+sum(s56_1)+sum(s57_1)+sum(s58_1)+sum(s59_1)+sum(s60_1)+sum(s61_1),
	sum(s51_2)+sum(s52_2)+sum(s53_2)+sum(s54_2)+sum(s55_2)+sum(s56_2)+sum(s57_2)+sum(s58_2)+sum(s59_2)+sum(s60_2)+sum(s61_2),
	sum(s51_3)+sum(s52_3)+sum(s53_3)+sum(s54_3)+sum(s55_3)+sum(s56_3)+sum(s57_3)+sum(s58_3)+sum(s59_3)+sum(s60_3)+sum(s61_3),
	sum(s51_4)+sum(s52_4)+sum(s53_4)+sum(s54_4)+sum(s55_4)+sum(s56_4)+sum(s57_4)+sum(s58_4)+sum(s59_4)+sum(s60_4)+sum(s61_4),
	sum(s51_5)+sum(s52_5)+sum(s53_5)+sum(s54_5)+sum(s55_5)+sum(s56_5)+sum(s57_5)+sum(s58_5)+sum(s59_5)+sum(s60_5)+sum(s61_5),
	sum(s51_6)+sum(s52_6)+sum(s53_6)+sum(s54_6)+sum(s55_6)+sum(s56_6)+sum(s57_6)+sum(s58_6)+sum(s59_6)+sum(s60_6)+sum(s61_6),
	sum(s51_7)+sum(s52_7)+sum(s53_7)+sum(s54_7)+sum(s55_7)+sum(s56_7)+sum(s57_7)+sum(s58_7)+sum(s59_7)+sum(s60_7)+sum(s61_7),
	sum(s51_8)+sum(s52_8)+sum(s53_8)+sum(s54_8)+sum(s55_8)+sum(s56_8)+sum(s57_8)+sum(s58_8)+sum(s59_8)+sum(s60_8)+sum(s61_8),
	sum(s51_9)+sum(s52_9)+sum(s53_9)+sum(s54_9)+sum(s55_9)+sum(s56_9)+sum(s57_9)+sum(s58_9)+sum(s59_9)+sum(s60_9)+sum(s61_9),
	sum(s51_10)+sum(s52_10)+sum(s53_10)+sum(s54_10)+sum(s55_10)+sum(s56_10)+sum(s57_10)+sum(s58_10)+sum(s59_10)+sum(s60_10)+sum(s61_10),
	sum(s51_11)+sum(s52_11)+sum(s53_11)+sum(s54_11)+sum(s55_11)+sum(s56_11)+sum(s57_11)+sum(s58_11)+sum(s59_11)+sum(s60_11)+sum(s61_11),
	sum(poc51)+sum(poc52)+sum(poc53)+sum(poc54)+sum(poc55)+sum(poc56)+sum(poc57)+sum(poc58)+sum(poc59)+sum(poc60)+sum(poc60),
	(sum(vek51)+sum(vek52)+sum(vek53)+sum(vek54)+sum(vek55)+sum(vek56)+sum(vek57)+sum(vek58)+sum(vek59)+sum(vek60)+sum(vek61)) / (select count(*) FROM CM_Krava where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)),
	(sum(ml51)+sum(ml52)+sum(ml53)+sum(ml54)+sum(ml55)+sum(ml56)+sum(ml57)+sum(ml58)+sum(ml59)+sum(ml60)+sum(ml61)) / (select count(*) FROM CM_Krava  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11))
	 from #temp_vyrad_podla_dni) as s

	declare @s varchar(1000)

	set @s = 'select kod as [Dni v dojení], 
	nullif(m0, 0) as ['+convert(varchar(2), getdate(), 10)  + '.' + convert(varchar(2), getdate(), 11)+'], 
	nullif(m1, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-1), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-1), 11)+'], 
	nullif(m2, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-2), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-2), 11)+'], 
	nullif(m3, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-3), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-3), 11)+'], 
	nullif(m4, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-4), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-4), 11)+'], 
	nullif(m5, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-5), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-5), 11)+'], 
	nullif(m6, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-6), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-6), 11)+'], 
	nullif(m7, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-7), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-7), 11)+'], 
	nullif(m8, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-8), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-8), 11)+'], 
	nullif(m9, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-9), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-9), 11)+'], 
	nullif(m10, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-10), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-10), 11)+'], 
	nullif(m11, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-11), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-11), 11)+'], 
	poc as Celkom,
	convert(decimal(4,2),priemvek/365.0) as [Priem. vek (roky)], 
	convert(decimal(7,2),priemml) as [Priem. mlieko (kg)]
	from #temp2_vyrad_podla_dni_
	where priemvek is not null
	order by poradie'

	EXEC(@s)
END
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania06]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )


	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd06.BIELK, hd06.CAS, hd06.CISKRAVY, 
	hd06.CISVZORKY, hd06.DATKONTR, hd06.DATSPRAC, hd06.DATUM, hd06.DENDOBA, hd06.INTERVAL, hd06.LAKT, hd06.MLIEKO/10 as Mlieko,
	--(select MLIEKO/10 from VstupyPLIS.dbo.CP_HD06_ROZBORPROT_SPAR)as Mlieko, 
	hd06.MOCOVIN, 
	hd06.NPORVZOR, hd06.PORROZB, hd06.PRIZSPRAC, hd06.SEKCIA, hd06.SKUPINA, hd06.SOMAT, hd06.TUK, hd06.ZNKONTR	
	,(select Top 1  priezvisko from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd06log.LOGIN_M_1) as Priezvisko
	,(select Top 1 meno  from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd06log.LOGIN_M_1) AS MENO
	
	from @spracCHOVy as sch
		left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ROZBORAK as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD06_ROZBORPROT_SPAR as hd06
	on h.IDR_HLAS = hd06.IDR
	left join VstupyPLIS.dbo.CP_HD06_ROZBORPROT as hd06log 
	on hd06.IDR = hd06log.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '6' and ezk.CISCHYBY is not null --and ezk.PRIZNAKCHYBY='2'


	--	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY from @spracCHOVy as sch
	--left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	--on h.ID_SPRACCHOV = sch.IDCHOVU
	--left join CE_ROZBORAK as ezk
	--on h.IDR_HLAS = ezk.ID
	--left join CC_ChybyKU as chku
	--on ezk.CISCHYBY = chku.CISCHYBY
	--where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
	--	and h.TYP_HLAS = '6' and ezk.CISCHYBY is not null
	


	order by CHOV, CISKRAVY

end
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description: uprava a export CP_BLUP_PROOFC do DBF (plemeno S)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFC_S]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select tps from cc_blup_k95) * m305) / (m305 + (select ms from cc_blup_k95)),
			bperc = (100 * b305 - (select bps from cc_blup_k95) * m305) / (m305 + (select ms from cc_blup_k95))

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT --p.cislo 
		430 as ssms,
		15 as ssts,
		12 as ssbs,
		0.18 as sstps,
		0.10 as ssbps,      
		stdev(m305) as sm0s,
		stdev(m100) as sm1s,
		stdev(m200) as sm2s, 
		stdev(m300) as sm3s, 
		stdev(mp) as sm4s, 
		stdev(t305) as st0s, 
		stdev(t100) as st1s, 
		stdev(t200) as st2s, 
		stdev(t300) as st3s, 
		stdev(tp) as st4s, 
		stdev(b305) as sb0s, 
		stdev(b100) as sb1s, 
		stdev(b200) as sb2s, 
		stdev(b300) as sb3s, 
		stdev(bp) as sb4s, 
		stdev(tperc) as stpercs, 
		stdev(bperc) as sbpercs
		into #temp_stdevC
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31')

	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + ' ' + ISNULL(k.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + ' ' + ISNULL(k.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + ' ' + ISNULL(k.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + ' ' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		null AS ND, 
		null AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0S from CC_BLUP_K95)) / (select sm0S from #temp_stdevC)) * (select ssmS from #temp_stdevC) AS M305, 
		((p.m305 - (select M0S from CC_BLUP_K95)) / (select sm0S from #temp_stdevC) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1S from CC_BLUP_K95)) / (select sm1S from #temp_stdevC)) * (select ssmS from #temp_stdevC) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0S from CC_BLUP_K95)) / (select st0S from #temp_stdevC)) * (select sstS from #temp_stdevC) AS T305, 
		((p.t305 - (select T0S from CC_BLUP_K95)) / (select st0S from #temp_stdevC) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1S from CC_BLUP_K95)) / (select st1S from #temp_stdevC)) * (select sstS from #temp_stdevC) AS T100, 
		((p.tperc - (select TPERS from CC_BLUP_K95)) / (select stpercS from #temp_stdevC)) * (select sstpS from #temp_stdevC) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0S from CC_BLUP_K95)) / (select sb0S from #temp_stdevC)) * (select ssbS from #temp_stdevC) AS B305, 
		((p.b305 - (select B0S from CC_BLUP_K95)) / (select sb0S from #temp_stdevC) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1S from CC_BLUP_K95)) / (select sb1S from #temp_stdevC)) * (select ssbS from #temp_stdevC) AS B100, 
		((p.bperc - (select BPERS from CC_BLUP_K95)) / (select sbpercS from #temp_stdevC)) * (select ssbpS from #temp_stdevC) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo
	ORDER BY p.cislo

	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMS from CC_BLUP_K95) + t305 * (select EWTS from CC_BLUP_K95) + b305 * (select EWBS from CC_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL	
	FROM #temp_vysledny

END
go

-- =============================================
-- Author:		David Florek
-- Create date:	04.09.2017
-- Description:	Upravi riadok faktury
-- =============================================
CREATE PROCEDURE [dbo].[EC_UpravRiadokFaktury]
	@idr int,
	@pocet int,
	@produkt varchar(5),
	@suma decimal(10, 2),
	@sumaCelkom decimal(10, 2),
	@priplatok decimal(10, 2),
	@priplatokPerc decimal(10, 2),
	@komentar varchar(255) = '',
	@login varchar(255),
	@jeDotacia bit
AS
BEGIN
	declare 
		@typZmeny varchar(255);

	set @typZmeny = '';

	declare 
		@pocetO int,
		@produktO varchar(5),
		@sumaO decimal(10, 2),
		@priplatokO decimal(10, 2),
		@priplatokPercO decimal(10, 2),
		@chov varchar(9),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

		Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	select @pocetO = Pocet, @produktO = Produkt, @sumaO = Suma, @priplatokO = Priplatok, @priplatokPercO =  PriplatokPerc from EC_RiadokFaktury where IDR = @idr;

	if @pocetO <> @pocet set @typZmeny = @typZmeny + 'pocet, ';
	if @produktO <> @produkt set @typZmeny = @typZmeny + 'produkt, ';
	if @sumaO <> @suma set @typZmeny = @typZmeny + 'suma, ';
	if @priplatokO <> @priplatok set @typZmeny = @typZmeny + 'priplatok, ';
	if @priplatokPercO <> @priplatokPerc set @typZmeny = @typZmeny + 'priplatokPerc, ';

	if LEN(@typZmeny) > 2 set @typZmeny = LEFT(@typZmeny, LEN(@typZmeny) - 1);

	if LEN(@typZmeny) = 0 return;

	select @chov = CHOV from EC_RiadokFaktury where IDR = @idr;

	insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatok, @priplatokPerc, @jeDotacia;
	select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;
	set @sumaCelkom = ((@suma + @priplatok) * @pocet) * ((100 + @priplatokPerc) / 100);

	insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KomentarKZmene, KodZmeny)
	values (@idr, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @typZmeny, GETDATE(), @login, @komentar, 2);

	update EC_RiadokFaktury set Pocet = @pocet, Produkt = @produkt, Suma = @suma, SumaCelkom = @sumaCelkom, Priplatok = @priplatok,
		Dotacia = @dotacia, ZlavCel = @zlavCel, PriplatokPerc = @priplatokPerc where IDR = @idr;

END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION CP_Zaznam
(	
	@uscislo varchar(14)
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT top 1  * from CP_Kravicky
	where uscislo = @uscislo
)
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a sektora
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_sektor]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [Sektor_kod][varchar](2)null,
	  [Sektor][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]


declare @kravy table                                   
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[Sektor_kod][varchar](2)null,
		[Sektor][varchar](100)null
		--[PocZapojL1] int NULL
	)

insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,reg.Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR,	 
	 d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL)
 left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
 left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''

 --select * from  @Laktacie order by CHOVATEL

 insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,	
			k.ciskravy,
			PORPREBLAK,
			d.FSEKTOR as Sektor_kod, 
			e.NAZOV as Sektor
		from CM_Krava as k
			left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
			left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
			left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)

			where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
				and (reg.REGION=@region or @region is null)
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
 				and a.PRIZNAK=1	


declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	 )

	Insert @PocZapojL1
		select 
			@chov as CHOV, 
			@region as Region,		
			count(k.ciskravy) as PocZapojL1,
			k.Sektor_kod, 
			k.Sektor

		from @kravy as k
			where  k.PORPREBLAK ='1'
 		group by 
			case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end 
			,Sektor_kod,Sektor
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL2
		select 
			@chov as CHOV, 
			@region as Region,
			count(k.ciskravy) as PocZapojL2,
			Sektor_kod, 
			Sektor
		from @kravy as k
	
		where k.PORPREBLAK >='2'
 	
		group by 
			case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end
			,Sektor_kod,Sektor
	
		--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojLCelk
		select 
			@chov as CHOV, 
			@region as Region,
			count(k.ciskravy) as PocZapojLCelk,
			Sektor_kod, 
			Sektor
		from @kravy as k
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end
		,Sektor_kod,Sektor
	
	--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
    [Sektor][varchar](100)null
	)

	Insert @pocLAKV1
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakV1,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor

		from @Laktacie as l	where PORLAK = '1'

		group by  case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
			, l.Sektor_kod, l.Sektor 
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @pocLAKV2
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakV2,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor
	
		from @Laktacie as l	where PORLAK >= '2'

		group by case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			 l.Sektor_kod, l.Sektor 
		
	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @pocLAKVCelk
		select 
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakVCelk,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor

		from @Laktacie as l
		
		group by  case when @chov is null and @region is null then @chov	
			else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			l.Sektor_kod, l.Sektor 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, 
	Sektor_kod, Sektor)
	
		select 
		@chov as CHOV, 
		@region as Region,
		count(*)  as PocLakN1, 
		ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
		ROUND(AVG(LAKTDNI),2) as LaktdniL1,
		ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
		ROUND(AVG(TUKNOR),2)as TukNorL1,
		ROUND(AVG(BIELKNOR),2) as BielkNorL1,
		ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
		AVG(INDPER) as IPZL1,
		Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
		Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
		Sektor_kod as Sektor_kod,
		Sektor as Sektor
	
		from @Laktacie as l
			where  PORLAK = '1'
			and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
					l.Sektor_kod, l.Sektor 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,		
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null

	)
	 insert @lakt2
		select
			@chov as CHOV, 
			@region as Region,
			count(*) as PocLakN2, 
			ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
			ROUND(AVG(LAKTDNI),2)as LaktdniL2,
			ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
			ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
			ROUND(AVG(TUKNOR),2)as TukNorL2,
			ROUND(AVG(BIELKNOR),2) as BielkNorL2,
			ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
			AVG(INDPER) as IPZL2,
			Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
			Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
		from @Laktacie as l
	
		where PORLAK >= '2'
			and (l.ZMENA = '30' or l.ZMENA='40') 

		group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @laktCelkom
		select
			@chov as CHOV, 
			@region as Region,
			count(*) as PocLakCelk, 
			ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
			ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
			ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
			ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
			ROUND(AVG(TUKNOR),2) as TukNorCelk,
			ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
			ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
			AVG(INDPER) as IPZCelk,
			Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
			Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
		from @Laktacie as l
	
		where (l.ZMENA = '30' or l.ZMENA='40') 

		group by case when @chov is null and @region is null then @chov else
				case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
				l.Sektor_kod, l.Sektor 
	
	--select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @NormLak1
		select 
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
			Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where 
		l.PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
		 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		 l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @NormLak2
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
			Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where 
		l.PORLAK >= '2'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
				case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
				l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @NormLakCelk
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
			Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
			Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
			Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
			Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
			Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
			Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
			Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
			Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
			Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
			Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
			Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
			Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
			Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
			Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
			Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
			Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
			Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
			Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
			Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
			Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
			Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
			Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
 		from @Laktacie as l
	
		where (l.ZMENA = '30' or l.ZMENA='40')
	
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		 l.Sektor_kod, l.Sektor 

	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL1
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
   		from @Laktacie as l
	
		where 
		PORLAK='1'
	 
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @ZmenaL2
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
  		from @Laktacie as l
	
		where 
		PORLAK>='2'
	
		group by case when @chov is null and @region is null then @chov else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.Sektor_kod, l.Sektor 
	
	----select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @ZmenaCelk
		select
			@chov as CHOV, 
			@region as Region,
			Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
			Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
			Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
			Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
			Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
			Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
			Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
			Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
			or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
			Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
			Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
			Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
			Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
			Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
			Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
			Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
			Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
			Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
			Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
			Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
			Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
			Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
			or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
			Sektor_kod as Sektor_kod,
			Sektor as Sektor
  		from @Laktacie as l
	
		group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
			l.Sektor_kod, l.Sektor 

	--select * from @ZmenaCelk order by CHOV

insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('S'+l.Sektor_kod)as Filter,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and  ZapojL1.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.Sektor_kod=l.Sektor_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.Sektor_kod=l.Sektor_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.Sektor_kod=l.Sektor_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.Sektor_kod=l.Sektor_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.Sektor_kod=l.Sektor_kod)
	left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

	end
go

-- =============================================
-- Author:		<Author,,Machynova Anna>
-- Create date: <Create Date,,>
-- Description:	<Description,,Pre bahnice zadaneho chovu urobi sumar reprodukcie: pocet vrhov, narodenych jahniat/barankov, odchov.jahniat/bar.,jahniat nachov/baran. >
-- =============================================
CREATE FUNCTION  [dbo].[function_SP_SumReprBah] 
(	
	-- Add the parameters for the function here
 @chov varchar(9)	)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT BAHCIS, SUM(Narod) AS NarodCel, SUM(NarBar) AS NarBar, SUM(Odchov) AS OdchCel, SUM(OdchBar) AS OdchBar,
       SUM(NaChov) AS NaChovCel, SUM(NaChovBar) AS NaChovBar, COUNT(1) AS pocvrh
FROM   dbo.function_SP_SumReprBahRok(@chov)
WHERE (Narod > 0) 
GROUP BY BAHCIS
)
go

-- =============================================
-- Author:		David Florek
-- Create date:	02.08.2017
-- Description:	Prepocita riadky faktury pre KUML. Zapise jednotlive riadky do EC_RiadokFaktury.
-- Edit:			28.08.2017 Pridany kurzor a pridanie generovania do historie.
-- Edit:			13.09.2017 Pridany prepocet dotacie a zlavy.
-- =============================================
CREATE PROCEDURE [dbo].[EC_KUML_PrepocitajFakturu]
	@datum DATE = null,
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@jeDotacia bit = 0
AS
BEGIN
	if @datum is null set @datum = CAST(GETDATE() as DATE);
	if @rok is null set @rok = YEAR(@datum);
	if @mesiac is null set @mesiac = MONTH(@datum);

	If(OBJECT_ID('tempdb..#kontroly') Is Not Null)
		Drop Table #kontroly

	If(OBJECT_ID('tempdb..#kontroly2') Is Not Null)
		Drop Table #kontroly2

	If(OBJECT_ID('tempdb..#zoznam') Is Not Null)
		Drop Table #zoznam

	select distinct c.CISCHOVU as CHOV into #kontroly from CM_Kontroly c where MONTH(c.DATKONTR) = @mesiac and YEAR(c.DATKONTR) = @rok;

	select distinct c.CISCHOVU as CHOV into #kontroly2 from CM_Kontroly c where
		((MONTH(c.DATKONTR) = @mesiac and YEAR(c.DATKONTR) = @rok) or (MONTH(DATEADD(month, 1, c.DATKONTR)) = @mesiac and YEAR(DATEADD(month, 1, c.DATKONTR)) = @rok))
		and DENDOBA = '3' and INTERVAL = '3';

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Výber zoznamu chovov.';

	select distinct
		vsetky.CHOV as Chov,
		'KUML' as Typ,
		SUBSTRING(@rok, 4, 1) + '0' + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + d.PODNIK + d.KRAJ + d.OKRES as Faktura,
		vsetky.POCJEDN as Pocet,
		SUBSTRING(@rok, 3, 2) + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + dbo.Posledny_pracovny_den_mesiaca(@mesiac, @rok) as Datum,
		vsetky.KODPROD as Produkt,
		prod.JEDCENA as Suma,
		vsetky.POCJEDN * prod.JEDCENA as SumaCelkom,
		ISNULL(vsetky.PRIPLATOK, 0) as Priplatok,
		vsetky.PRIPLATOKPERC as PriplatokPerc

	into #zoznam

		from (
			select distinct
			stat.CHOV as CHOV, stat.HD_KRAVA as POCJEDN, dbo.CP_KUML_DAJPRODUKT(stat.CHOV, @datum) as KODPROD,
			d.UPRAVA as PRIPLATOK,
			case
				when d.PRIZNAK = '01' and stat.CHOV not in (select CHOV from #kontroly) then -90
				when d.PRIZNAK = '01' and (d.SPVYKON = '1' or d.SPVYKON = '6') and stat.CHOV in (select CHOV from #kontroly2) then 20 + ISNULL(CAST(REPLACE(PRIPLATOK, '+', '') as decimal(10, 2)), 0)
				when d.PRIZNAK = '01' and d.SPVYKON = '2' then ISNULL(CAST(REPLACE(PRIPLATOK, '+', '') as decimal(10, 2)), 0)
				else ISNULL(REPLACE(d.PRIPLATOK, '+', ''), 0)
			end as PRIPLATOKPERC
			from
				NE_STATISTIKY stat
				inner join NM_HDDETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where (d.SPVYKON = '1' or d.SPVYKON = '2' or d.SPVYKON = '6' or d.SPVYKON = '7')
				and stat.DATUM = @datum
				and stat.HD_KRAVA is not null
				and stat.HD_KRAVA <> 0
				and d.PRIZNAK = '01'

		union 
		select distinct
			stat.CHOV as CHOV, stat.HD_KRAVA as POCJEDN, 
			case
				when stat.HD_KRAVA < 651 then '19010'
				when stat.HD_KRAVA > 650 and stat.HD_KRAVA < 1201 then '19011'
				when stat.HD_KRAVA > 1200 and stat.HD_KRAVA < 2001 then '19012'
				when stat.HD_KRAVA > 2000 then '19013'
			end as KODPROD,
			0 as PRIPLATOK,
			0 as PRIPLATOKPERC
		from
			NE_STATISTIKY stat
			inner join NM_HDDETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		where d.PLIS = '1' and (d.SPVYKON = '1' or d.SPVYKON = '2' or d.SPVYKON = '6' or d.SPVYKON = '7')
			and stat.DATUM = @datum
			and stat.HD_KRAVA is not null
			and stat.HD_KRAVA <> 0

		union 
		select distinct
			stat.CHOV as CHOV, stat.HD_KRAVA as POCJEDN, 
			'14001' as KODPROD,
			0 as PRIPLATOK,
			0 as PRIPLATOKPERC
		from
			NE_STATISTIKY stat
			inner join NM_HDDETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		where 
			d.MLIEKOMER = '1'
			and stat.CHOV in (select #kontroly.CHOV from #kontroly)
			and stat.DATUM = @datum
			and stat.HD_KRAVA is not null
			and stat.HD_KRAVA <> 0
		) vsetky
		inner join NM_HDDETAIL d on vsetky.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = vsetky.KODPROD

	declare riadok cursor for
	select * from #zoznam;

	declare
		@id int,
		@chov varchar(9),
		@typ varchar(10),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	--Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Vkladanie riadkov faktúr.';

	declare @poc int = 0;

	open riadok;
	fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
	WHILE @@FETCH_STATUS = 0
		begin
			--insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatokPerc, @jeDotacia;

			--select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

			set @sumaCelkom = @pocet * (@suma + @priplatok) * (100 + @priplatokPerc) / 100;
			set @dotacia = 0;
			set @zlavCel = (@pocet * @suma) - (@pocet * (@suma + @priplatok)) * ((100 + @priplatokPerc) / 100);
			
			insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, oSuma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
			values (@chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

			select @id = SCOPE_IDENTITY();

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KodZmeny)
			values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Generovanie', GETDATE(), 'system', 0);

			--delete from @T;

			set @poc = @poc + 1;

			fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
		end

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec vkladania riadkov, bolo vložených ' + cast(@poc as varchar) + ' riadkov.';
	close riadok;
	deallocate riadok;

	Drop Table #zoznam;
	Drop Table #kontroly;
	Drop Table #kontroly2;

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec čistenia. Prepočet hotový.';
END
go

-- =============================================
-- Author:		David Florek
-- Create date:	09.08.2017
-- Description:	Prepocita riadky faktury pre kozy. Zapise jednotlive riadky do EC_RiadokFaktury.
-- Edit:			28.08.2017 Pridany kurzor a pridanie generovania do historie.
-- =============================================
CREATE PROCEDURE [dbo].[EC_KY_PrepocitajFakturu]
	@datum DATE = null,
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@jeDotacia bit = 0
AS
BEGIN
	if @datum is null set @datum = CAST(GETDATE() as DATE);
	if @rok is null set @rok = YEAR(@datum);
	if @mesiac is null set @mesiac = MONTH(@datum);

	If(OBJECT_ID('tempdb..#mlieka') Is Not Null)
		Drop Table #mlieka

	If(OBJECT_ID('tempdb..#zoznam') Is Not Null)
		Drop Table #zoznam

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Výber zoznamu chovov.';

	select distinct
		k.KROKR + k.PODNIK + k.STADO as CHOV, LUC, PUC into #mlieka
	from GM_KOZY k
	join NM_KODETAIL d on k.KROKR + k.PODNIK + k.STADO = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
	where
		d.VYKKU = '1'
		and d.MLIEKOMER = '1'
		and k.DODBERU BETWEEN  DATEADD(MONTH, -1, @datum) and @datum;

	select
		vsetky.CHOV as Chov,
		'KY' as Typ,
		SUBSTRING(@rok, 4, 1) + '4' + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + d.PODNIK + d.KRAJ + d.OKRES as Faktura,
		vsetky.POCJEDN as Pocet,
		SUBSTRING(@rok, 3, 2) + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + dbo.Posledny_pracovny_den_mesiaca(@mesiac, @rok) as Datum,
		vsetky.KODPROD as Produkt,
		prod.JEDCENA as Suma,
		vsetky.POCJEDN * prod.JEDCENA as SumaCelkom,
		ISNULL(vsetky.PRIPLATOK, 0) as Priplatok,
		vsetky.PRIPLATOKPERC as PriplatokPerc

	into #zoznam

		from (
			select distinct
			stat.CHOV as CHOV, stat.KY_KOZA as POCJEDN,
			dbo.KY_DAJPRODUKT(stat.CHOV, @datum) as KODPROD,
			0 as PRIPLATOK,
			0 as PRIPLATOKPERC
			from
				NE_STATISTIKY stat
				inner join NM_KODETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where /*dbo.KY_DAJPRODUKT(stat.CHOV, null) <> '46001' */  ((dbo.KY_DAJPRODUKT(stat.CHOV, @datum) <> '46001') or (dbo.KY_DAJPRODUKT(stat.CHOV, @datum) =  '46001' and (@mesiac = 6 or @mesiac = 12)))
				and stat.DATUM = @datum
				and stat.KY_KOZA is not null
				and stat.KY_KOZA <> 0
				and d.VYKKU = '1'
				and d.CISKON <> '0'
				and d.CISKON is not null

			union all
			select distinct
			stat.CHOV as CHOV,
			(select count(*) from #mlieka m where m.CHOV = stat.CHOV) as POCJEDN,
			'44001' as KODPROD,
			0 as PRIPLATOK,
			0 as PRIPLATOKPERC
			from
				NE_STATISTIKY stat
				inner join NM_KODETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where stat.DATUM = @datum
				and d.VYKKU = '1'
				and d.MLIEKOMER = '1'

		) vsetky

	inner join NM_KODETAIL d on vsetky.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
	inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = vsetky.KODPROD
	where
		vsetky.POCJEDN > 0
		and vsetky.POCJEDN is not null;

	declare riadok cursor for
	select * from #zoznam;

	declare
		@id int,
		@chov varchar(9),
		@typ varchar(10),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	--Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Vkladanie riadkov faktúr.';
	declare @poc int = 0;

	open riadok;
	fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
	WHILE @@FETCH_STATUS = 0
		begin
			--insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatokPerc, @jeDotacia;

			--select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

			set @sumaCelkom = @pocet * (@suma + @priplatok) * (100 + @priplatokPerc) / 100;
			set @dotacia = 0;
			set @zlavCel = (@pocet * @suma) - (@pocet * (@suma + @priplatok)) * ((100 + @priplatokPerc) / 100);

			insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, oSuma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
			values (@chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

			SELECT @id = SCOPE_IDENTITY();

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KodZmeny)
			values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Generovanie', GETDATE(), 'system', 0);

			--delete from @T;

			set @poc = @poc + 1;

			fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
		end

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec vkladania riadkov, bolo vložených ' + cast(@poc as varchar) + ' riadkov.';

	close riadok;
	deallocate riadok;

	Drop Table #zoznam;
	Drop Table #mlieka;

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec čistenia. Prepočet hotový.';
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Kravy_21_test_CHOV]
	@ParChov varchar(9)
AS
BEGIN
	
	--TRUNCATE TABLE [PLIS].[dbo].CP_Mlieko_Kravy_21
	delete CP_Mlieko_Kravy_21 where chovatel = substring(@ParChov,1,1)
	delete CP_Mlieko_Kravy_21 where chovatel = substring(@ParChov,1,3)
	delete CP_Mlieko_Kravy_21 where chovatel = substring(@ParChov,1,6)
	delete CP_Mlieko_Kravy_21 where chovatel = @ParChov

	declare @c varchar(9);
	/*declare @ouc as varchar(14);
	declare @o as varchar(7);
	declare @meno as varchar(50)
	declare @nazlin as varchar (30)
	declare @plemena as varchar(80)
	declare @poc12 as int;
	declare @pocnad12 as int;
	declare @po412P as float;
	declare @po4nad12P as float;
	declare @s as int
	declare @pocOtec as int;
	declare @percOtec as float;
	declare @kolko as int;
	declare @i as int
set @i=0
set @kolko=9
while @i<4
*/
begin
	declare chov cursor for
	SELECT distinct [CHOVATEL]
	FROM [View_CP_TelataPocetDO38Mes] where chovatel = substring(@ParChov,1,3) or chovatel = substring(@ParChov,1,6) or Chovatel = @ParChov

	open chov
	fetch next from chov into @c

	while @@FETCH_STATUS=0
	begin

	insert into CP_Mlieko_Kravy_21([Chovatel]
      ,[OUC]
      ,[otec]
      ,[MENO]
      ,[nazlin]
      ,[plemena]
      ,[Poc12]
      ,[PocNad12]
      ,[po4et12Perc]
      ,[po4etNad12Perc]
      ,[po4et]
      ,[preOtec]
      ,[percOtec])	
	
	(select a.CHOVATEL,  a.ouc,a.OTECLIN+'-'+ right('000'+convert(varchar(3),a.OTECREG),3) as otec,
	b.MENO,l.nazlin,

		ISNULL(b.PL1 + '-' + CONVERT (varchar, b.KR1), '') + '  ' + ISNULL(ISNULL(b.PL2, '') 
		+ '-' + CONVERT (varchar, b.KR2), '') + '  ' + ISNULL(b.PL3 + '-' + CONVERT (varchar, b.KR3), '') + '  ' 
		+ ISNULL(b.PL4 + '-' + CONVERT (varchar, b.KR4), '') + '  ' + ISNULL(b.PL5 + '-' + 
		CONVERT (varchar, 100 - (b.KR1 + b.KR2 + b.KR3 + b.KR4)), '') AS plemena,
		m12.po4et as DO12Mes,
		m38.po4et as Nad38Mes,
		convert(float,m12.po4et)*1.00000/convert(float,p12.pocet)*1.00000 as do12mespoc, 
		convert(float,m38.po4et)*1.00000/convert(float,p38.pocet)*1.00000 as nad38mespoc,
		null,
		a.po4et,
		convert(float,a.po4et)*1.00000/s.pocet as PocetPreChov


			from (
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, CHOVATEL
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							   AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							   AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY CHOVATEL, OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 6) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							   AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							   AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 6), OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 3) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') 
							   AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 3), OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 1) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') 
							   AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 1), OUC, OTECLIN, OTECREG) as a
			left join CM_Byci as b on
			a.OUC=b.USCISLO
			left join View_cp_telataPoOtecDo12m as m12
			on (a.CHOVATEL=m12.chovatel  and (a.OTECLIN=m12.OTECLIN or  (a.oteclin is null and m12.oteclin is null))and (a.OTECREG=m12.OTECREG or  (a.otecreg is null and m12.otecreg is null)))
			left join View_CP_telataPoOtcoNad12m as m38
			on (a.CHOVATEL=m38.chovatel  and (a.OTECLIN=m38.OTECLIN  or  (a.oteclin is null and m38.oteclin is null) )and (a.OTECREG=m38.OTECREG or  (a.otecreg is null and m38.otecreg is null)) )
			left join View_cp_telataDo12mes as p12
			on a.CHOVATEL=p12.CHOVATEL
			left join View_CP_TelataNad12mes as p38
			on a.CHOVATEL=p38.CHOVATEL
			left join View_CP_TelataPocetDO38Mes as s
			on a.CHOVATEL=s.CHOVATEL
				left join CC_Linie as l
			on b.LIN=l.lin


			where a.CHOVATEL=@c)

			

		
		

	fetch next from chov into @c
	end

	close chov
	deallocate chov
	
	
	
	
	end

END

go

-- =============================================
-- Author:		<Author,,Machynova Anna>
-- Create date: <Create Date,,>
-- Description:	<Description,,sumar narodenych,odchov. a jahniat na chov pre bahnicu a kontr.rok >
-- =============================================
CREATE FUNCTION [dbo].[function_SP_SumReprBahRok]  
(	
	-- Add the parameters for the function here
 @chov varchar(9)		
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT        dbo.SM_PremBah.KROKR, dbo.SM_PremBah.PODNIK, dbo.SM_PremBah.STADO, dbo.SM_PremBah.LUC, dbo.SM_PremBah.PUC, dbo.SM_PremBah.BAHCIS, 
                         dbo.SM_PremBah.ROKEV1, dbo.SM_PremBah.ROKEV2, dbo.SM_PremBah.BKROKR, dbo.SM_PremBah.BPODNIK, dbo.SM_PremBah.BSTADO, 
                         dbo.SM_PremBah.BLUC, dbo.SM_PremBah.BPUC, dbo.SM_PremBah.BARCIS, dbo.SM_PremBah.DATPRIP, dbo.SM_PremBah.DATOBAH, 
                         CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') THEN 1 ELSE 0 END AS Narod, 
                         CASE WHEN dbo.SM_PremBah.POHL1 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3
                          = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' THEN 1 ELSE 0 END AS NarBar,
                          CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END AS Odchov, CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS OdchBar, 
                         CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                         dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                         dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                         dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                         dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                         dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END AS NaChov, CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                         dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                         dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                         dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                         dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                         dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END AS NaChovBar, dbo.SM_BARAN.LUC AS OtLUC, dbo.SM_BARAN.PUC AS OTPUC, dbo.SM_BARAN.BARCIS AS BarCis2, 
                         dbo.SM_BARAN.ZVSTAT AS OTZVSTAT, dbo.SM_BARAN.JCCEHZ AS OTJCCEHZ
FROM   dbo.SM_PremBah LEFT OUTER JOIN  dbo.SM_BARAN ON dbo.SM_PremBah.BARCIS = dbo.SM_BARAN.BARCIS
                      LEFT OUTER JOIN  dbo.SM_BAHNICA ON dbo.SM_PremBah.BAHCIS = dbo.SM_BAHNICA.BAHCIS
WHERE concat(SM_BAHNICA.KROKR,SM_BAHNICA.Podnik,SM_BAHNICA.STADO)=@chov
)
go

-- =============================================
-- Author:		Ing. Vladimír Ďurech
-- Create date: 02.11.2017
-- Description:	Zostavy pre ZCHOK na Demeter
-- =============================================
CREATE PROCEDURE S_zostava_Demeter
	@rok int, --2016	
	@zameranie varchar(2), -- 'ML', 'MS'
	@plem varchar(2) --SD, ZV, C, NULL
AS
BEGIN	


	--declare @rok int = 2016
	--declare @plem varchar(2) = 'SD'--'ZV'-- 'SD'-- null-- 'C'--'ZV'

	--select * from 
	--SP_SMLZAM
	--select  * from SP_SMLSZAM_Z

	--select top 2 * from SP_SMLSZAM_Z
	--where rok = @rok
	--and PLEM = 'C'

	--SELECT ROW_NUMBER() OVER (Order by stado) AS RowNumber
	--FROM SP_SMLSZAM_Z
	--where rok = @rok
	--and PLEM = 'C'

	if (@zameranie = 'ML') 
	begin

		if (@plem  is null or @plem = 'SD' )
		begin
			select ROW_NUMBER() OVER (order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc) AS poradie,
				cast(poradieNajChov as varchar(24)) as 'Poradie NAJCHOV', 
				Nazov, 
				Krokr + ' ' + podnik + ' ' + stado as 'identifikacia stada', 
				plem as plemeno, 
				replace(cast(percplodob as varchar(24)), '.', ',') as 'perc plod na obah bahn',
				replace(cast(SMNL as varchar(24)), '.', ',') as 'prod mlieka',
				replace(cast(ukazml as varchar(24)), '.', ',') as 'vysledny index',
				BAROHOD as 'zaradene bar na r2013',
				ZBAHPK as 'poc bahnic v PK k 01.01.2013',
				replace(cast(idxProdBar  as varchar(24)), '.', ',') as 'Index produkcie bar',
				BARER as 'poc zar baranov ER',
				BarPredv as 'predv bar za rok 2013',
				replace(cast(idxPodTrER  as varchar(24)), '.', ',') as 'Index podielu tr ER',
				replace(cast(idxVysl*idxProdBar*idxPodTrER  as varchar(24)), '.', ',') as 'Vysledny Index',
				stku as 'Stupen KU',
				barcel1 as 'poc baranov nar. 2012',
				ptest1 as 'z toho poc test',
				psuhl1 as 'z toho poc so suhl povod',
				barcel2 as 'poc baranov nar. 2013',
				ptest2 as 'z toho poc test',
				psuhl2 as 'z toho poc so suhl povod'
			from 
			(	select *, poradie as poradieNajChov,
				(case when ZBAHPK > 0 then 1.0*BAROHOD/ZBAHPK else 0 end) as idxProdBar,
				(case when BarPredv > 0 then 1.0*BARER/BarPredv else 0 end) as idxPodTrER,
				ukazml as idxVysl
				from SP_SMLSZAM_Z 
				where 
				--PLEM not in ('SD', 'C', 'ZV', 'V') 
				--and 
				rok = @rok
				--and UKAZML <> 0
				--and (plem = @plem 
				and (plem = @plem or plem = (case when @plem = 'ZV' then 'V ' else 'XXXX' end)
				or (@plem is null and PLEM not in ('SD', 'C', 'ZV', 'V')  ) )

			) t
			order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc --ukazmas*  (BAROHOD*ZBAHPK)* (BARER*BarPredv)
		end
		else
			begin
			select ROW_NUMBER() OVER (order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc) AS poradie,
				cast(poradieNajChov as varchar(24)) as 'Poradie NAJCHOV', 
				Nazov, 
				Krokr + ' ' + podnik + ' ' + stado as 'identifikacia stada', 
				--plem as plemeno, 
				replace(cast(percplodob as varchar(24)), '.', ',') as 'perc plod na obah bahn',
				replace(cast(SMNL as varchar(24)), '.', ',') as 'prod mlieka',
				replace(cast(ukazml as varchar(24)), '.', ',') as 'vysledny index',
				BAROHOD as 'zaradene bar na r2013',
				ZBAHPK as 'poc bahnic v PK k 01.01.2013',
				replace(cast(idxProdBar  as varchar(24)), '.', ',') as 'Index produkcie bar',
				BARER as 'poc zar baranov ER',
				BarPredv as 'predv bar za rok 2013',
				replace(cast(idxPodTrER  as varchar(24)), '.', ',') as 'Index podielu tr ER',
				replace(cast(idxVysl*idxProdBar*idxPodTrER  as varchar(24)), '.', ',') as 'Vysledny Index',
				stku as 'Stupen KU',
				barcel1 as 'poc baranov nar. 2012',
				ptest1 as 'z toho poc test',
				psuhl1 as 'z toho poc so suhl povod',
				barcel2 as 'poc baranov nar. 2013',
				ptest2 as 'z toho poc test',
				psuhl2 as 'z toho poc so suhl povod'
			from 
			(	select *, poradie as poradieNajChov,
				(case when ZBAHPK > 0 then 1.0*BAROHOD/ZBAHPK else 0 end) as idxProdBar,
				(case when BarPredv > 0 then 1.0*BARER/BarPredv else 0 end) as idxPodTrER,
				ukazml as idxVysl
				from SP_SMLSZAM_Z 
				where 
				--PLEM not in ('SD', 'C', 'ZV', 'V') 
				--and 
				rok = @rok
				--and UKAZML <> 0
				--and (plem = @plem 
				and (plem = @plem or plem = (case when @plem = 'ZV' then 'V ' else 'XXXX' end)
				or (@plem is null and PLEM not in ('SD', 'C', 'ZV', 'V')  ) )

			) t
			order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc --ukazmas*  (BAROHOD*ZBAHPK)* (BARER*BarPredv)
		end
	end
	else
	begin

		select ROW_NUMBER() OVER (order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc) AS poradie,
		cast(poradieNajChov as varchar(24)) as 'Poradie NAJCHOV', 
		Nazov, 
		Krokr + ' ' + podnik + ' ' + stado as 'identifikacia stada', 
		plem as plemeno, 
		--pocprip, 

		replace(cast(percplodob as varchar(24)), '.', ',') as 'perc plod na obah bahn',
		--pocprir, 
		replace(cast(denprir  as varchar(24)), '.', ',') as 'priem korig den prir',
		replace(cast(ukazmas  as varchar(24)), '.', ',') as 'vysledny index',

		BAROHOD as 'zaradene bar na r2013',
		ZBAHPK as 'poc bahnic v PK k 01.01.2013',

		--'' as 'Index produkcie bar - kt sa preskakuje',
		--cast(round((case when ZBAHPK > 0 then 1.0*BAROHOD/ZBAHPK else 0 end), 3) as decimal(5,3)) as 'Index produkcie bar',
		--idxProdBar as 'Index produkcie bar',
		replace(cast(idxProdBar  as varchar(24)), '.', ',') as 'Index produkcie bar',
		BARER as 'poc zar baranov ER',
		BarPredv as 'predv bar za rok 2013',

		--'' as 'Index podielu tr ER - kt sa preskakuje',
		--idxPodTrER as 'Index podielu tr ER - kt sa preskakuje',
		replace(cast(idxPodTrER  as varchar(24)), '.', ',') as 'Index podielu tr ER',
		--'' as 'Vysledny Index - kt sa preskakuje',
		--idxVysl*idxProdBar*idxPodTrER as 'Vysledny Index - kt sa preskakuje',
		replace(cast(idxVysl*idxProdBar*idxPodTrER  as varchar(24)), '.', ',') as 'Vysledny Index',

		stku as 'Stupen KU',

		barcel1 as 'poc baranov nar. 2012',
		ptest1 as 'z toho poc test',
		psuhl1 as 'z toho poc so suhl povod',

		barcel2 as 'poc baranov nar. 2013',
		ptest2 as 'z toho poc test',
		psuhl2 as 'z toho poc so suhl povod'
		from 
		(	select *, poradie as poradieNajChov,
			--cast(round((case when ZBAHPK > 0 then 1.0*BAROHOD/ZBAHPK else 0 end), 3) as decimal(5,3)) as idxProdBar,
			(case when ZBAHPK > 0 then 1.0*BAROHOD/ZBAHPK else 0 end) as idxProdBar,
			--cast(round((case when BarPredv > 0 then 1.0*BARER/BarPredv else 0 end), 3) as decimal(5,3)) as idxPodTrER,
			(case when BarPredv > 0 then 1.0*BARER/BarPredv else 0 end) as idxPodTrER,
			ukazmas as idxVysl
			from SP_SMASZAM_Z 
			where 
			--PLEM not in ('SD', 'C', 'ZV', 'V') 
			--and 
			rok = @rok
			and UKAZMAS <> 0
		) t
		--and UKAZMAS <> 0
		order by idxVysl*idxProdBar*idxPodTrER desc, idxVysl desc --ukazmas*  (BAROHOD*ZBAHPK)* (BARER*BarPredv)
	end

		/*
		create table SP_SMASZAM_Z
		(
			PORADIE	int,
			KROKR varchar(3),
			PODNIK varchar(3),
			STADO varchar(3),
			PLEM varchar(8),	
			POCPRIR	int,
			DENPRIR  decimal(6,2),
			POCPRIP int,
			PERCPLODOB  decimal(4,1),
			POCOBAH int,
			NAZOV varchar(50),
			UKAZMAS decimal(6,2),

			BAROHOD int,
			BARER int,
			BARPREDV int,
			ZBAHPK int,
			BARCEL1 int,
			PTEST1 int,
			PSUHL1 int,
			BARCEL2 int,
			PTEST2 int,
			PSUHL2 int,
			STKU varchar(3),

			Rok int
		)
	
	
	CREATE TABLE SP_SMLSZAM_Z
	(
		PORADIE int,
		KROKR varchar (3),
		PODNIK varchar (3),
		STADO varchar (3),
		PLEM varchar (8),
		SMNL decimal (6,2),
		POCETMNL int,
		POCPRIP int,
		POCOBAH int,
		PERCPLODOB decimal (5,1),
		NAZOV varchar (50),
		UKAZML decimal (7,2),
		BAROHOD int,
		BARER int,
		BARPREDV int,
		ZBAHPK int,
		BARCEL1 int,
		PTEST1 int,
		PSUHL1 int,
		BARCEL2 int,
		PTEST2 int,
		PSUHL2 int,
		STKU varchar (3),

		Rok int
	)


	*/
END
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania07]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac-- and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )


	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd07.BIELKOVINA, 
	hd07.CISKRAVY, hd07.DATKONTR, hd07.DATSPRAC, hd07.DATUMULOZENIA, hd07.DATZAPIS, hd07.DENDOBA, hd07.DENDOBA, 
	hd07.INTERVAL, hd07.LAKTOZA, hd07.LOGIN, hd07.MLIEKO, hd07.PRIZSPRAC, hd07.SOMATBUNKY, 
	hd07.SOMATBUNKY, hd07.TUK, hd07.VERZIA
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd07.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd07.login) as Priezvisko
	 from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ROZBORAK_OPR as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD07_ROZBORPROT_OPR as hd07
	on h.IDR_HLAS = hd07.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '7' and ezk.CISCHYBY is not null

	
	order by LOGIN, CHOV, CISKRAVY

end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	pre upravu a export CP_BLUP_PROOFS do DBF (plemeno S)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFS_S]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select tpS from cc_blup_k95) * m305) / (m305 + (select mS from cc_blup_k95)),
			bperc = (100 * b305 - (select bpS from cc_blup_k95) * m305) / (m305 + (select mS from cc_blup_k95))

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT --p.cislo 
		430 as ssmS,
		15 as sstS,
		12 as ssbS,
		0.18 as sstpS,
		0.10 as ssbpS,      
		stdev(m305) as sm0S,
		stdev(m100) as sm1S,
		stdev(m200) as sm2S, 
		stdev(m300) as sm3S, 
		stdev(mp) as sm4S, 
		stdev(t305) as st0S, 
		stdev(t100) as st1S, 
		stdev(t200) as st2S, 
		stdev(t300) as st3S, 
		stdev(tp) as st4S, 
		stdev(b305) as sb0S, 
		stdev(b100) as sb1S, 
		stdev(b200) as sb2S, 
		stdev(b300) as sb3S, 
		stdev(bp) as sb4S, 
		stdev(tperc) as stpercS, 
		stdev(bperc) as sbpercS
		into #temp_stdevS
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 

	-- pocet stad kontrol krav za byka (otca)						 
	select OTEC, count(*) as POCETSTAD into #temp_byci_stada
	from
	(SELECT        OTEC, CISCHOVU
	FROM            CM_ZSTDM AS z 
	group by OTEC, CISCHOVU) as s
	group by OTEC
	
	-- laktacie za byka (otca)
	SELECT         
	k.OUSCIS, count(l.PORLAK) as N, sum(l.MLIEKNOR) as MLIEKO, sum(l.TUKNOR) as TUK, convert(decimal(3, 2), sum(l.TUKNOR)/sum(l.MLIEKNOR)*100) as TUKP, sum(BIELKNOR) as BIELK, convert(decimal(3, 2), sum(BIELKNOR)/sum(l.MLIEKNOR)*100) as BIELKP
	into #temp_byci_laktacie
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
							 CM_Krava AS k ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OUSCIS


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + ' ' + ISNULL(b.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + ' ' + ISNULL(b.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + ' ' + ISNULL(b.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + ' ' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0S from CC_BLUP_K95)) / (select sm0S from #temp_stdevS)) * (select ssmS from #temp_stdevS) AS M305, 
		((p.m305 - (select M0S from CC_BLUP_K95)) / (select sm0S from #temp_stdevS) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1S from CC_BLUP_K95)) / (select sm1S from #temp_stdevS)) * (select ssmS from #temp_stdevS) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0S from CC_BLUP_K95)) / (select st0S from #temp_stdevS)) * (select sstS from #temp_stdevS) AS T305, 
		((p.t305 - (select T0S from CC_BLUP_K95)) / (select st0S from #temp_stdevS) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1S from CC_BLUP_K95)) / (select st1S from #temp_stdevS)) * (select sstS from #temp_stdevS) AS T100, 
		((p.tperc - (select TPERS from CC_BLUP_K95)) / (select stpercS from #temp_stdevS)) * (select sstpS from #temp_stdevS) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0S from CC_BLUP_K95)) / (select sb0S from #temp_stdevS)) * (select ssbS from #temp_stdevS) AS B305, 
		((p.b305 - (select B0S from CC_BLUP_K95)) / (select sb0S from #temp_stdevS) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1S from CC_BLUP_K95)) / (select sb1S from #temp_stdevS)) * (select ssbS from #temp_stdevS) AS B100, 
		((p.bperc - (select BPERS from CC_BLUP_K95)) / (select sbpercS from #temp_stdevS)) * (select ssbpS from #temp_stdevS) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo
							LEFT OUTER JOIN #temp_byci_laktacie as tbl ON tbl.OUSCIS = p.cislo
							LEFT OUTER JOIN #temp_byci_stada as tbs ON tbs.OTEC = p.cislo
	ORDER BY p.cislo

	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMS from CC_BLUP_K95) + t305 * (select EWTS from CC_BLUP_K95) + b305 * (select EWBS from CC_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL	
	FROM #temp_vysledny


END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION CP_Rodokmen_Otec
(	
	@uscislo varchar(14)
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT top 1 c.UsCislo, c.otec, c.matka, c.ppohl as pohl, c.LinReg, c.meno, c.ppohl as pohlavie,
                                CAST(CAST(ISNULL((select koefpribuz from Ainbreeding a where a.uscislo = c.uscislo), 0)*100 as decimal(10,2)) as varchar)+' %' as KoefPribuz,
                                CONVERT(varchar(10), c.datnar, 104) as DatNar, 
                                c.PlemSkl, (select PK from CM_Byci b where b.uscislo = c.uscislo) as pk,
                                NAZF as farba, 
                                Spracovano as PH_SK,
                                SPI as SPI,
                                RPHSC as SB,
                                ROUND(REl, 0) as R,
                                MLIEKO as ML,
                                ROUND(TUK, 2) as T,
                                ROUND(TUKP, 2) as TP,
                                ROUND(BIELK, 2) as B,
                                ROUND(BIELKP, 2) as BP,
                                cery as dcery,
                                stada as stada
                            FROM CP_Kravicky c
                                LEFT OUTER JOIN  dbo.View_CP_Rodokmen_byk_mlieko v ON v.byk = c.uscislo
                            WHERE c.USCISLO = @uscislo and ppohl = 1
                                --and (tab = @tab or @tab = '')
                            order by tab asc
)
go

-- =============================================
-- Author:		David Florek
-- Create date:	09.08.2017
-- Description:	Vrati produkt pre dany chov koz
-- =============================================
CREATE FUNCTION [dbo].[KY_DAJPRODUKT]
(
	@chov varchar(9),
	@datum DATE = null
)
RETURNS varchar(5)
AS
BEGIN
	DECLARE @produkt varchar(5);
	DECLARE @uzit varchar(1);
	DECLARE @stku varchar(1);
	DECLARE @zvoz varchar(1);
	DECLARE @sb varchar(1);
	DECLARE @pocet int;

	select
	@uzit = UZITZST,
	@stku = STKU,
	@zvoz = ZVOZ,
	@sb = SB
	from NM_KODETAIL
	where KRAJ + OKRES + PODNIK + CHOV = @chov;

	if((@uzit = '2' or @uzit = '5') and @stku = '1' and @sb = '0' and @zvoz = '0') set @produkt = 450;
	if((@uzit = '2' or @uzit = '5') and @stku = '2' and @sb = '0' and @zvoz = '0') set @produkt = 451;
	if((@uzit = '2' or @uzit = '5') and @stku = '3' and @sb = '0' and @zvoz = '0') set @produkt = 452;

	if(@uzit = '4' and @stku = '1' and @sb = '0' and @zvoz = '0') set @produkt = 401;
	if(@uzit = '4' and @stku = '1' and @sb = '0' and @zvoz = '1') set @produkt = 402;
	if(@uzit = '4' and @stku = '1' and @sb = '1' and @zvoz = '0') set @produkt = 403;
	if(@uzit = '4' and @stku = '1' and @sb = '1' and @zvoz = '1') set @produkt = 404;

	if(@uzit = '4' and @stku = '2' and @sb = '0' and @zvoz = '0') set @produkt = 411;
	if(@uzit = '4' and @stku = '2' and @sb = '0' and @zvoz = '1') set @produkt = 412;
	if(@uzit = '4' and @stku = '2' and @sb = '1' and @zvoz = '0') set @produkt = 413;
	if(@uzit = '4' and @stku = '2' and @sb = '1' and @zvoz = '1') set @produkt = 414;

	if(@uzit = '4' and @stku = '3' and @sb = '0' and @zvoz = '0') set @produkt = 421;
	if(@uzit = '4' and @stku = '3' and @sb = '0' and @zvoz = '1') set @produkt = 422;
	if(@uzit = '4' and @stku = '3' and @sb = '1' and @zvoz = '0') set @produkt = 423;
	if(@uzit = '4' and @stku = '3' and @sb = '1' and @zvoz = '1') set @produkt = 424;

	if(@datum is null) set @datum = CAST(GETDATE() as date);

	declare @fak varchar(1);
	set @fak = (select FaktSkup from NM_CHOVMAS where KRAJ + OKRES + PODNIK + CHOV = @chov and TYPZV = 4)
	
	if(@fak <> '0')
	begin
		set @pocet =
			(select SUM(s.KY_KOZA) from NE_STATISTIKY s join NM_CHOVMAS ch on s.CHOV = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
			where DATUM = @datum and LEFT(s.CHOV, 6) = LEFT(@chov, 6) and ch.FaktSkup = @fak and ch.TYPZV = 4);
	end else begin
		set @pocet = (select KY_KOZA from NE_STATISTIKY where DATUM = CAST(@datum as DATE) and CHOV = @chov);
	end

	if(@pocet < 11) set @produkt = @produkt + '01';
	if(@pocet > 10 and @pocet < 21) set @produkt = @produkt + '02';
	if(@pocet > 20 and @pocet < 51) set @produkt = @produkt + '03';
	if(@pocet > 50 and @pocet < 101) set @produkt = @produkt + '04';
	if(@pocet > 100) set @produkt = @produkt + '05';
	
	return @produkt;

END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko...Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_stupenKU]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (3) null,
      [DATVYR][date] null,
	  [SPVykonu_kod][varchar](2) null,
	  [SPVykonu][varchar](100)null,
	  [EkoChov][varchar](10) NULL
	 
	  
      ) --ON [PRIMARY]
	  
insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, c.KOD, c.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
		or (Lakt.DATUKNORL > @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null and eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL


declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		  
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
		
	from CM_Krava as k


	left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK ='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	
	

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end,
		c.KOD, c.NAZOV
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	
	[PocZapojL2] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
	from CM_Krava as k

	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)


	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) and
		k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK >='2'
 		and (reg.REGION=@region or @region is null) 
		and a.PRIZNAK=1	

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end, 
		c.KOD, c.NAZOV

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu

	from CM_Krava as k

	--inner join CC_PlemTyp as pl on (case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)

 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) and
	k.DOVVYR is null and k.PRIZNAKKU='1' 
 	and (reg.REGION=@region or @region is null) 
	--and (pl.TYPS=@plem or @plem is null)
		and a.PRIZNAK=1	
	 

group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end,
	c.KOD, c.NAZOV
--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.SPVykonu_kod,l.SPVykonu
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region, 
	count(*) as PocLakV2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
		l.SPVykonu_kod,l.SPVykonu
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
		l.SPVykonu_kod,l.SPVykonu

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1,
	SPVykonu_kod, SPVykonu)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
					l.SPVykonu_kod,l.SPVykonu
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
	 l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
	l.SPVykonu_kod,l.SPVykonu

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu   

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu


insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('StKU'+l.SPVykonu_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	

		end







--USE [plis]
--GO
--/****** Object:  StoredProcedure [dbo].[CR_ZostavaLaktacie_stupenKU]    Script Date: 13.4.2017 10:33:08 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		PSSR, š.p.
---- Create date: 02.6.2016
---- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
---- =============================================
-- ALTER procedure [dbo].[CR_ZostavaLaktacie_stupenKU]
--	@chov varchar(9)='',
--	@datumOd date,
--	@datumDo date ='',
--	@region varchar(2)=''

--as	
--begin

--if @datumDo is null
--begin 
--set @datumDo = GETDATE () 
--end 

--Declare @Laktacie table(
--	  [PORLAK][int],
--      [CHOVATEL][varchar] (9) null,
--	  [Region] [varchar](2) NULL,
--	  [ZMENA][varchar] (2) null,
--      [MEDZIOBD][float] NULL,  
--      [LAKTDNI][float] NULL,
--      [LAKDNIN][float] NULL,
--      [MLIEKNOR][float] NULL,
--      [TUKNOR][float] NULL,
--      [BIELKNOR][float] NULL,
--      [LAKTOZAN] [float] NULL,
--	  [INDPER] [float] NULL,
--      [DOVVYR][varchar] (3) null,
--      [DATVYR][date] null,
--	  [SPVykonu_kod][varchar](2) null,
--	  [SPVykonu][varchar](100)null,
--	  [EkoChov][varchar](10) NULL
	 
	  
--      ) --ON [PRIMARY]

--declare @kravy table                                   ----od Vlada
--	(
--		[CHOV] [varchar](9) NULL,
--		[Region] [varchar](2) NULL,
--		ciskravy varchar(14),
--		PORPREBLAK int,
--		[SPVykonu_kod][varchar](2) null,
--		[SPVykonu][varchar](100)null
--		--[PocZapojL1] int NULL
--	)

--if (@region is null) 
--begin
--	if (len(@chov) = 1)
--	begin	  
--		insert into @Laktacie
--			 SELECT
-- 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--				 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--							else null end)as EkoChov
--			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--			-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--			 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--			 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--				--and (reg.REGION=@region or @region is null) 
--				and lakt.kraj = @chov	
--				and a.PRIZNAK=1	
--				and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--					or (Lakt.DATUKNORL > @datumOd 
--					and Lakt.DATUKNORL <= @datumDo))
--				and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 3)
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.okres = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 6)
--		begin	
--				insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.podnik = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 9)
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.CHOVATEL = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else 
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end

--		insert @kravy
--			select 
--				@chov as CHOV, 
--				@region as Region,	
--				k.ciskravy,
--				PORPREBLAK,
--				c.KOD as SPVykonu_kod, 
--				c.NAZOV as SPVykonu
--			from CM_Krava as k
--				--left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--				left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
--				 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
-- 					--and (reg.REGION=@region or @region is null) 
--						and a.PRIZNAK=1	
-- end
-- ELSE
-- begin 
--	  insert into @Laktacie
--				SELECT
-- 					PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					(select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--							else null end)as EkoChov
--				FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= lakt.okres)
--				left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--				(reg.REGION=@region or @region is null) 
--				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--				and a.PRIZNAK=1	
--				and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--					or (Lakt.DATUKNORL > @datumOd 
--					and Lakt.DATUKNORL <= @datumDo))
--				and eko.ZRUS is null AND eko.TYPZV='1'
					
--		insert @kravy
--			select 
--				@chov as CHOV, 
--				@region as Region,	
--				k.ciskravy,
--				PORPREBLAK,
--				c.KOD as SPVykonu_kod, 
--				c.NAZOV as SPVykonu
--			from CM_Krava as k
--				left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--				left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
--				 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
-- 					and (reg.REGION=@region or @region is null) 
--						and a.PRIZNAK=1	
--end

----insert into @Laktacie         ----moje povodne
---- SELECT
---- 	 PORLAK, CHOVATEL,Region,
----	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----	 DOVVYR, DATVYR, c.KOD, c.NAZOV,
----	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----				else null end)as EkoChov
---- FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
---- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
---- left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
---- left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
---- left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
----	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----	and (reg.REGION=@region or @region is null) 
----	and a.PRIZNAK=1	
----	and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
----		or (Lakt.DATUKNORL > @datumOd 
----		and Lakt.DATUKNORL <= @datumDo))
---- and eko.ZRUS is null AND eko.TYPZV='1'

 
-- --select * from  @Laktacie order by CHOVATEL


--declare @PocZapojL1 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojL1] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
		  
--	)

--	Insert @PocZapojL1
--	select 
--		@chov as CHOV, 
--		@region as Region,		
--		count(k.ciskravy) as PocZapojL1,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
--		where PORPREBLAK ='1'

--	--from CM_Krava as k
--	--left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--	--left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--	--left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--	--where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--	--	and	k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK ='1'
-- --		and (reg.REGION=@region or @region is null) 
--	--		and a.PRIZNAK=1	
	
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,
--		SPVykonu_kod, SPVykonu
		
--		--select * from @PocZapojL1 

--declare @PocZapojL2 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojL2] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert @PocZapojL2
--	select 
--		@chov as CHOV, 
--		@region as Region,
--		count(k.ciskravy) as PocZapojL2,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
--		where  k.PORPREBLAK >='2'
 		
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, 
--		SPVykonu_kod, SPVykonu

----select * from @PocZapojL2 

--declare @PocZapojLCelk table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojLCelk] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert @PocZapojLCelk
--	select 
--		@chov as CHOV, 
--		@region as Region,
--		count(k.ciskravy) as PocZapojLCelk,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
	
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,
--		SPVykonu_kod, SPVykonu
----select * from @PocZapojL1 


--declare @pocLAKV1 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,	
--	[PocLakV1] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)

--	Insert @pocLAKV1
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakV1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l	where PORLAK = '1'

--	group by  case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--		l.SPVykonu_kod,l.SPVykonu
		
--		--select * from @pocLAKV1 


--declare @pocLAKV2 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakV2] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)
--	Insert @pocLAKV2
--	select 
--	@chov as CHOV, 
--	@region as Region, 
--	count(*) as PocLakV2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l	where PORLAK >= '2'

--	group by case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--		l.SPVykonu_kod,l.SPVykonu
		

--		--select * from @pocLAKV2

--declare @pocLAKVCelk table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakVCelk] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)

--	Insert @pocLAKVCelk
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakVCelk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
		
--	group by  case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--		l.SPVykonu_kod,l.SPVykonu

--		--select * from @pocLAKVCelk 

--Declare @lakt1 table
	
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakN1] [float](4) NULL,
--	[MedziobdL1] [float](7) NULL,
--    [LakdniL1] [float](7) NULL,
--    [LakdniNL1] [float](7) NULL,	
--    [MliekNorL1] [float](9) NULL,
--    [TukNorL1] [float](7) NULL,
--    [BielkNorL1] [float](7) NULL,
--    [LaktozaNL1] [float](7) NULL, 
--	[IPZL1] [float](5) NULL,
--	[VyrZootechL1] [varchar](4) NULL,
--	[VyrZdravDovL1] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert into @lakt1
--	(CHOV,Region,
--	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
--	VyrZootechL1,VyrZdravDovL1,
--	SPVykonu_kod, SPVykonu)
	
--select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*)  as PocLakN1, 
--	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
--	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
--	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
--	ROUND(AVG(TUKNOR),2)as TukNorL1,
--	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
--	AVG(INDPER) as IPZL1,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
--		where  PORLAK = '1'
--		and (l.ZMENA = '30' or l.ZMENA='40') 

--	group by  case when @chov is null and @region is null then @chov	
--				   else
--					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--					l.SPVykonu_kod,l.SPVykonu
--	--select * from @lakt1  
	
--  Declare @lakt2 table
--  ( [CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakN2] [float](4) NULL,
--	[MedziobdL2] [float](7) NULL,
--    [LaktDniL2] [float](7) NULL,
--    [LakDniNL2] [float](7) NULL,	
--    [MliekNorL2] [float](9) NULL,
--    [TukNorL2] [float](7) NULL,
--    [BielkNorL2] [float](7) NULL,
--    [LaktozaNL2] [float](7) NULL,
--	[IPZL2] [float](5) NULL,
--	[VyrZootechL2] [varchar](4) NULL,
--	[VyrZdravDovL2] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
-- insert @lakt2
-- select
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakN2, 
--	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
--	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
--	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
--	ROUND(AVG(TUKNOR),2)as TukNorL2,
--	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
--	AVG(INDPER) as IPZL2,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
--	where 
--	PORLAK >= '2'
--	and (l.ZMENA = '30' or l.ZMENA='40') 

--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
-- --select * from @lakt2 order by CHOV

--  Declare @laktCelkom table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakNcelk] [float] NULL,
--	[MedziobdCelk] [float] NULL,
--    [LaktDniCelk] [float] NULL,
--    [LakDniNCelk] [float] NULL,	
--    [MliekNorCelk] [float] NULL,
--    [TukNorCelk] [float] NULL,
--    [BielkNorCelk] [float] NULL,
--    [LaktozaNCelk] [float] NULL,
--	[IPZCelk] [float](5) NULL,
--	[VyrZootechCelk] [varchar](4) NULL,
--	[VyrZdravDovCelk] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--insert @laktCelkom
--select
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakCelk, 
--	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
--	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
--	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
--	ROUND(AVG(TUKNOR),2) as TukNorCelk,
--	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
--	AVG(INDPER) as IPZCelk,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
	
--	where (l.ZMENA = '30' or l.ZMENA='40') 

--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
-- --select * from @laktCelkom order by CHOV
  
--  Declare @NormLak1 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
----	[PlemTyp] [varchar] (10) Null,
--	[Do3500L1] [float](4) NULL,
--	[Do4000L1] [float](4) NULL,
--	[Do4500L1] [float](4) NULL,
--	[Do5000L1] [float](4) NULL,
--	[Do5500L1] [float](4) NULL,
--	[Do6000L1] [float](4) NULL,
--	[Do6500L1] [float](4) NULL,
--	[Do7000L1] [float](4) NULL,
--	[Do7500L1] [float](4) NULL,
--	[Do8000L1] [float](4) NULL,
--	[Do8500L1] [float](4) NULL,
--	[Do9000L1] [float](4) NULL,
--	[Do9500L1] [float](4) NULL,
--	[Do10000L1] [float](4) NULL,
--	[Do10500L1] [float](4) NULL,
--	[Do11000L1] [float](4) NULL,
--	[Do11500L1] [float](4) NULL,
--	[Do12000L1] [float](4) NULL,
--	[Do12500L1] [float](4) NULL,
--	[Do13000L1] [float](4) NULL,
--	[Do13500L1] [float](4) NULL,
--	[Do14000L1] [float](4) NULL,
--	[Od14000L1] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
	
--	insert @NormLak1
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
----	l.PLEM as PlemTyp,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
--	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
	
--	from @Laktacie as l
	
--	where 
--	l.PORLAK = '1'
--	and (l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--	 l.SPVykonu_kod,l.SPVykonu
	
--	--select * from @NormLak1 order by CHOV

--	Declare @NormLak2 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[Do3500L2] [float](4) NULL,
--	[Do4000L2] [float](4) NULL,
--	[Do4500L2] [float](4) NULL,
--	[Do5000L2] [float](4) NULL,
--	[Do5500L2] [float](4) NULL,
--	[Do6000L2] [float](4) NULL,
--	[Do6500L2] [float](4) NULL,
--	[Do7000L2] [float](4) NULL,
--	[Do7500L2] [float](4) NULL,
--	[Do8000L2] [float](4) NULL,
--	[Do8500L2] [float](4) NULL,
--	[Do9000L2] [float](4) NULL,
--	[Do9500L2] [float](4) NULL,
--	[Do10000L2] [float](4) NULL,
--	[Do10500L2] [float](4) NULL,
--	[Do11000L2] [float](4) NULL,
--	[Do11500L2] [float](4) NULL,
--	[Do12000L2] [float](4) NULL,
--	[Do12500L2] [float](4) NULL,
--	[Do13000L2] [float](4) NULL,
--	[Do13500L2] [float](4) NULL,
--	[Do14000L2] [float](4) NULL,
--	[Od14000L2] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @NormLak2
--	select
--	@chov as CHOV, 
--	@region as Region,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
--	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
	
--	where 
--	l.PORLAK >= '2'
--	and (l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
--	--select * from @NormLak2 order by CHOV
	
--	Declare @NormLakCelk table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[Do3500Celk] [float](4) NULL,
--	[Do4000Celk] [float](4) NULL,
--	[Do4500Celk] [float](4) NULL,
--	[Do5000Celk] [float](4) NULL,
--	[Do5500Celk] [float](4) NULL,
--	[Do6000Celk] [float](4) NULL,
--	[Do6500Celk] [float](4) NULL,
--	[Do7000Celk] [float](4) NULL,
--	[Do7500Celk] [float](4) NULL,
--	[Do8000Celk] [float](4) NULL,
--	[Do8500Celk] [float](4) NULL,
--	[Do9000Celk] [float](4) NULL,
--	[Do9500Celk] [float](4) NULL,
--	[Do10000Celk] [float](4) NULL,
--	[Do10500Celk] [float](4) NULL,
--	[Do11000Celk] [float](4) NULL,
--	[Do11500Celk] [float](4) NULL,
--	[Do12000Celk] [float](4) NULL,
--	[Do12500Celk] [float](4) NULL,
--	[Do13000Celk] [float](4) NULL,
--	[Do13500Celk] [float](4) NULL,
--	[Do14000Celk] [float](4) NULL,
--	[Od14000Celk] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	insert @NormLakCelk
--	select
--	@chov as CHOV, 
--	@region as Region,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
--	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu  
	
--	from @Laktacie as l
	
--	where 
--	(l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--	l.SPVykonu_kod,l.SPVykonu

--	Declare @ZmenaL1 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10L1] [float](4) NULL,
--	[Zmena30L1] [float](4) NULL,
--	[Zmena31L1] [float](4) NULL,
--	[Zmena40L1] [float](4) NULL,
--	[Zmena41L1] [float](4) NULL,
--	[Zmena42L1] [float](4) NULL,
--	[Zmena43L1] [float](4) NULL,
--	[ZmenaCelk1L1] [float](4) NULL,
--	[Zmena51L1] [float](4) NULL,
--	[Zmena52L1] [float](4) NULL,
--	[Zmena53L1] [float](4) NULL,
--	[Zmena54L1] [float](4) NULL,
--	[Zmena55L1] [float](4) NULL,
--	[Zmena56L1] [float](4) NULL,
--	[Zmena57L1] [float](4) NULL,
--	[Zmena58L1] [float](4) NULL,
--	[Zmena59L1] [float](4) NULL,
--	[Zmena60L1] [float](4) NULL,
--	[Zmena61L1] [float](4) NULL,
--	[Zmena62L1] [float](4) NULL,
--	[ZmenaCelk2L1] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @ZmenaL1
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,
--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu  

--	from @Laktacie as l
	
--	where 
--	PORLAK='1'
	 
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaL1 order by CHOV
	
--	Declare @ZmenaL2 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10L2] [float](4) NULL,
--	[Zmena30L2] [float](4) NULL,
--	[Zmena31L2] [float](4) NULL,
--	[Zmena40L2] [float](4) NULL,
--	[Zmena41L2] [float](4) NULL,
--	[Zmena42L2] [float](4) NULL,
--	[Zmena43L2] [float](4) NULL,
--	[ZmenaCelk1L2] [float](4) NULL,
--	[Zmena51L2] [float](4) NULL,
--	[Zmena52L2] [float](4) NULL,
--	[Zmena53L2] [float](4) NULL,
--	[Zmena54L2] [float](4) NULL,
--	[Zmena55L2] [float](4) NULL,
--	[Zmena56L2] [float](4) NULL,
--	[Zmena57L2] [float](4) NULL,
--	[Zmena58L2] [float](4) NULL,
--	[Zmena59L2] [float](4) NULL,
--	[Zmena60L2] [float](4) NULL,
--	[Zmena61L2] [float](4) NULL,
--	[Zmena62L2] [float](4) NULL,
--	[ZmenaCelk2L2] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @ZmenaL2
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,

--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
	
--	where 
--	PORLAK>='2'
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
--	--case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaL2 order by CHOV

--	Declare @ZmenaCelk table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10Celk] [float](4) NULL,
--	[Zmena30Celk] [float](4) NULL,
--	[Zmena31Celk] [float](4) NULL,
--	[Zmena40Celk] [float](4) NULL,
--	[Zmena41Celk] [float](4) NULL,
--	[Zmena42Celk] [float](4) NULL,
--	[Zmena43Celk] [float](4) NULL,
--	[ZmenaCelk1Celk] [float](4) NULL,
--	[Zmena51Celk] [float](4) NULL,
--	[Zmena52Celk] [float](4) NULL,
--	[Zmena53Celk] [float](4) NULL,
--	[Zmena54Celk] [float](4) NULL,
--	[Zmena55Celk] [float](4) NULL,
--	[Zmena56Celk] [float](4) NULL,
--	[Zmena57Celk] [float](4) NULL,
--	[Zmena58Celk] [float](4) NULL,
--	[Zmena59Celk] [float](4) NULL,
--	[Zmena60Celk] [float](4) NULL,
--	[Zmena61Celk] [float](4) NULL,
--	[Zmena62Celk] [float](4) NULL,
--	[ZmenaCelk2Celk] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	insert @ZmenaCelk
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,
--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu   

--	from @Laktacie as l
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----, l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaCelk order by CHOV

----------create table CR_LaktacneZostavy 
----------		(
----------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
----------		[Region] [varchar](2) NULL,
----------		[PlemTyp] [varchar] (10) null,

----------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
----------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
----------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
----------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
----------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

----------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
----------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
----------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
----------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
----------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
----------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
----------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
----------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
----------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
----------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
----------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

----------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
----------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
----------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
----------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

----------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
----------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
----------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
----------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
----------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
----------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

----------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
----------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
----------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
----------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
----------	)

--------IF EXISTS(
--------SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--------WHERE 
--------	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--------	and DatumOd = @datumOd and DatumDo = @datumDo
--------)
--------BEGIN
--------	DELETE FROM CR_LaktacneZostavy  WHERE 
--------	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--------	--(chov like @chov+'%' or @chov is null) 
--------	and DatumOd = @datumOd and DatumDo = @datumDo
--------END

--insert dbo.CR_LaktacneZostavy 
--	(
--	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

--	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
--	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

--	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

--	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
--	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
--	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
--	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
--	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
--	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

--	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
--	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

--	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
--	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
--	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
--	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
--	)

--	select distinct
--	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
--	(Select distinct case when @chov is null and @region is null then ('SR') else
--	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
--	@datumOd as DatumOd,
--	@datumDo as DatumDo,
--	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
--	(Select distinct case when @chov is null and @region is null then ('SR') else
--	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('StKU'+l.SPVykonu_kod) as Filer,
--	getdate() as datumGenerovania,
--	@region as Region,
--	--@plem as PlemTyp,
--	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
--	null as PlemTyp,
--	l.EkoChov as EkoChov,
--	ZapojL1.PocZapojL1 as PocZapojL1,
--	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
--	ROUND(L1.PocLakN1,2) as PocLakN1, 
--	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
--	ROUND(L1.LakdniL1,2) as LakdniL1,
--	ROUND(L1.LakdniNL1,2) as LakdniNL1,
--	ROUND(L1.MliekNorL1,2) as MliekNorL1,
--	ROUND(L1.TukNorL1,2) as TukNorL1,
--	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
--	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
--	ROUND(L1.IPZL1,2) as IPZL1,
--	L1.VyrZootechL1 as VyrZootechL1,
--	L1.VyrZdravDovL1 as VyrZdravDovL1,

--	ZapojL2.PocZapojL2 as PocZapojL2, 
--	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
--	ROUND(L2.PocLakN2,2) as PocLakN2,
--	ROUND(L2.MedziobdL2,2) as MedziobdL2,
--	ROUND(L2.LaktDniL2,2) as LaktDniL2,
--	ROUND(L2.LakDniNL2,2) as LakDniNL2,
--	ROUND(L2.MliekNorL2,2) as MliekNorL2,
--	ROUND(L2.TukNorL2,2) as TukNorL2,
--	ROUND(L2.BielkNorL2,2) as BielkNorL2,
--	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
--	ROUND(L2.IPZL2,2) as IPZL2,
--	L2.VyrZootechL2 as VyrZootechL2,
--	L2.VyrZdravDovL2 as VyrZdravDovL2,

--	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
--	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
--	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
--	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
--	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
--	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
--	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
--	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
--	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
--	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
--	ROUND(lCelk.IPZCelk,2) as IPZCelk,
--	lCelk.VyrZootechCelk as VyrZootechCelk,
--	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

--	NL1.Do3500L1 AS Do3500L1,
--	NL1.Do4000L1 as Do4000L1,
--	NL1.Do4500L1 as Do4500L1,
--	NL1.Do5000L1 as Do5000L1,
--	NL1.Do5500L1 as Do5500L1,
--	NL1.Do6000L1 as Do6000L1,
--	NL1.Do6500L1 as Do6500L1,
--	NL1.Do7000L1 as Do7000L1,
--	NL1.Do7500L1 as Do7500L1,
--	NL1.Do8000L1 as Do8000L1,
--	NL1.Do8500L1 as Do8500L1,
--	NL1.Do9000L1 as Do9000L1,
--	NL1.Do9500L1 as Do9500L1,
--	NL1.Do10000L1 as Do10000L1,
--	NL1.Do10500L1 as Do10500L1,
--	NL1.Do11000L1 as Do11000L1,
--	NL1.Do11500L1 as Do11500L1,
--	NL1.Do12000L1 as Do12000L1,
--	NL1.Do12500L1 as Do12500L1,
--	NL1.Do13000L1 as Do13000L1,
--	NL1.Do13500L1 as Do13500L1,
--	NL1.Do14000L1 as Do14000L1,
--	NL1.Od14000L1 as Od14000L1,
	 
--	NL2.Do3500L2 AS Do3500L2,
--	NL2.Do4000L2 as Do4000L2,
--	NL2.Do4500L2 as Do4500L2,
--	NL2.Do5000L2 as Do5000L2,
--	NL2.Do5500L2 as Do5500L2,
--	NL2.Do6000L2 as Do6000L2,
--	NL2.Do6500L2 as Do6500L2,
--	NL2.Do7000L2 as Do7000L2,
--	NL2.Do7500L2 as Do7500L2,
--	NL2.Do8000L2 as Do8000L2,
--	NL2.Do8500L2 as Do8500L2,
--	NL2.Do9000L2 as Do9000L2,
--	NL2.Do9500L2 as Do9500L2,
--	NL2.Do10000L2 as Do10000L2,
--	NL2.Do10500L2 as Do10500L2,
--	NL2.Do11000L2 as Do11000L2,
--	NL2.Do11500L2 as Do11500L2,
--	NL2.Do12000L2 as Do12000L2,
--	NL2.Do12500L2 as Do12500L2,
--	NL2.Do13000L2 as Do13000L2,
--	NL2.Do13500L2 as Do13500L2,
--	NL2.Do14000L2 as Do14000L2,
--	NL2.Od14000L2 as Od14000L2,
	 
--	NlCelk.Do3500Celk AS Do3500Celk,
--	NlCelk.Do4000Celk as Do4000Celk,
--	NlCelk.Do4500Celk as Do4500Celk,
--	NlCelk.Do5000Celk as Do5000Celk,
--	NlCelk.Do5500Celk as Do5500Celk,
--	NlCelk.Do6000Celk as Do6000Celk,
--	NlCelk.Do6500Celk as Do6500Celk,
--	NlCelk.Do7000Celk as Do7000Celk,
--	NlCelk.Do7500Celk as Do7500Celk,
--	NlCelk.Do8000Celk as Do8000Celk,
--	NlCelk.Do8500Celk as Do8500Celk,
--	NlCelk.Do9000Celk as Do9000Celk,
--	NlCelk.Do9500Celk as Do9500Celk,
--	NlCelk.Do10000Celk as Do10000Celk,
--	NlCelk.Do10500Celk as Do10500Celk,
--	NlCelk.Do11000Celk as Do11000Celk,
--	NlCelk.Do11500Celk as Do11500Celk,
--	NlCelk.Do12000Celk as Do12000Celk,
--	NlCelk.Do12500Celk as Do12500Celk,
--	NlCelk.Do13000Celk as Do13000Celk,
--	NlCelk.Do13500Celk as Do13500Celk,
--	NlCelk.Do14000Celk as Do14000Celk,
--	NlCelk.Od14000Celk as Od14000Celk, 

--	ZL1.Zmena10L1 as Zmena10L1, 
--	ZL1.Zmena30L1 as Zmena30L1,
--	ZL1.Zmena31L1 as Zmena31L1,
--	ZL1.Zmena40L1 as Zmena40L1,
--	ZL1.Zmena41L1 as Zmena41L1,	
--	ZL1.Zmena42L1 as Zmena42L1,
--	ZL1.Zmena43L1 as Zmena43L1,
--	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
--	ZL1.Zmena51L1 as Zmena51L1,
--	ZL1.Zmena52L1 as Zmena52L1,
--	ZL1.Zmena53L1 as Zmena53L1,
--	ZL1.Zmena54L1 as Zmena54L1,
--	ZL1.Zmena55L1 as Zmena55L1,
--	ZL1.Zmena56L1 as Zmena56L1,
--	ZL1.Zmena57L1 as Zmena57L1,
--	ZL1.Zmena58L1 as Zmena58L1,
--	ZL1.Zmena59L1 as Zmena59L1,
--	ZL1.Zmena60L1 as Zmena60L1,
--	ZL1.Zmena61L1 as Zmena61L1,
--	ZL1.Zmena62L1 as Zmena62L1,
--	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

--	ZL2.Zmena10L2 as Zmena10L2, 
--	ZL2.Zmena30L2 as Zmena30L2,
--	ZL2.Zmena31L2 as Zmena31L2,
--	ZL2.Zmena40L2 as Zmena40L2,
--	ZL2.Zmena41L2 as Zmena41L2,	
--	ZL2.Zmena42L2 as Zmena42L2,
--	ZL2.Zmena43L2 as Zmena43L2,
--	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
--	ZL2.Zmena51L2 as Zmena51L2,
--	ZL2.Zmena52L2 as Zmena52L2,
--	ZL2.Zmena53L2 as Zmena53L2,
--	ZL2.Zmena54L2 as Zmena54L2,
--	ZL2.Zmena55L2 as Zmena55L2,
--	ZL2.Zmena56L2 as Zmena56L2,
--	ZL2.Zmena57L2 as Zmena57L2,
--	ZL2.Zmena58L2 as Zmena58L2,
--	ZL2.Zmena59L2 as Zmena59L2,
--	ZL2.Zmena60L2 as Zmena60L2,
--	ZL2.Zmena61L2 as Zmena61L2,
--	ZL2.Zmena62L2 as Zmena62L2,
--	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

--	ZCelk.Zmena10Celk as Zmena10Celk, 
--	ZCelk.Zmena30Celk as Zmena30Celk,
--	ZCelk.Zmena31Celk as Zmena31Celk,
--	ZCelk.Zmena40Celk as Zmena40Celk,
--	ZCelk.Zmena41Celk as Zmena41Celk,	
--	ZCelk.Zmena42Celk as Zmena42Celk,
--	ZCelk.Zmena43Celk as Zmena43Celk,
--	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
--	ZCelk.Zmena51Celk as Zmena51Celk,
--	ZCelk.Zmena52Celk as Zmena52Celk,
--	ZCelk.Zmena53Celk as Zmena53Celk,
--	ZCelk.Zmena54Celk as Zmena54Celk,
--	ZCelk.Zmena55Celk as Zmena55Celk,
--	ZCelk.Zmena56Celk as Zmena56Celk,
--	ZCelk.Zmena57Celk as Zmena57Celk,
--	ZCelk.Zmena58Celk as Zmena58Celk,
--	ZCelk.Zmena59Celk as Zmena59Celk,
--	ZCelk.Zmena60Celk as Zmena60Celk,
--	ZCelk.Zmena61Celk as Zmena61Celk,
--	ZCelk.Zmena62Celk as Zmena62Celk,
--	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
--	from @Laktacie as l

--	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
--	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	
--	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
--	--where (Oznacenie= @chov or @chov is null )
--	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

--		end
go




create PROCEDURE [dbo].[C_ZZ_Mlieko_KodSomBunky_CHOV]
	@ParChov varchar(9)
	
AS
BEGIN

/**********************************************
	used table:CM_Kontroly,CM_ArchKon,CC_LDintervaly,CC_SBintervaly

	changing table:CM_Kontroly (KodIntSB,KodIntLD),CM_ArchKon (KodIntSB,KodIntLD,JeKontroly)

	used for: Updating colomns in 2 tables,affter that used for (10) Prehľad o somatických bunkách 
******************************************/

declare @od int;
declare @do int;
declare @kod as int;

declare hranica cursor for
select OdSB,DoSB,KodIntSB
from plis.dbo.CC_SBintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update plis.dbo.CM_Kontroly
	set KodIntSB=@kod
	where BUNECELEM between @od and @do and CISCHOVU = @ParChov
	
	
	update plis.dbo.CM_ArchKon
	set KodIntSB=@kod
	where BUNECELEM between @od and @do and CISCHOVU = @ParChov
	fetch next from hranica into @od,@do,@kod;
end	

close hranica
deallocate hranica


declare hranica cursor for
select OdLD,DoLD,KodIntLD
from plis.dbo.CC_LDintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update plis.dbo.CM_Kontroly
	set KodIntLD=@kod
	where LAKTDNI between @od and @do and CISCHOVU = @ParChov
	
	
	update plis.dbo.CM_ArchKon
	set KodIntLD=@kod
	where LAKTDNI between @od and @do and CISCHOVU = @ParChov

	update plis.dbo.CM_Kontroly
	set KodIntSB=null
	where BUNECELEM is null and CISCHOVU = @ParChov

	update plis.dbo.CM_ArchKon
	set KodIntSB=null
	where BUNECELEM is null and CISCHOVU = @ParChov

	fetch next from hranica into @od,@do,@kod;
end	

close hranica
deallocate hranica

update a
set a.JeKontroly=1
from PLIS.dbo.CM_ArchKon a
inner join PLIS.dbo.CM_Kontroly b
on a.CISKRAVY=b.CISKRAVY
	and a.DATKONTR=b.DATKONTR and b.CISCHOVU = @ParChov

update PLIS.dbo.CM_ArchKon
set JeKontroly=0
where  JeKontroly is null and CISCHOVU = @ParChov

END


go



-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.04.2017
-- Description:	Prevedie nulu na NULL, inak vrati povod hodn.
-- =============================================
CREATE FUNCTION [dbo].[S_ZeroNULL]
(
	@zero varchar(14)
)
RETURNS varchar(14)
AS
BEGIN	
	if (SELECT CASE WHEN @zero LIKE '%[a-z]%' then 1 else 0 end) = 1 
		return @zero
	if (cast(@zero as float) <> 0)
		return @zero;
	
	return NULL;
END


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION stringToTable
(	
	@vyber varchar(max)
)
RETURNS @tab table(uscislo varchar(14))
AS
begin 
	declare @oznacenie varchar(20)
	if (@vyber<>'') 
		begin
			WHILE LEN(@vyber) > 0
				BEGIN
					IF PATINDEX('%;%',@vyber) > 0
						BEGIN
							SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
							insert into @tab
							SELECT @oznacenie

							SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
																		 LEN(@vyber))
						END
					ELSE
						BEGIN
							SET @oznacenie = @vyber
							SET @vyber = NULL
							insert into @tab
							SELECT @oznacenie
							
						end 
				end
		end
	return
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION CP_Rodokmen_Matka
(	
	@uscislo varchar(14)
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT top 1 c.UsCislo, c.otec, c.matka, c.ppohl as pohl, c.LinReg, c.meno, c.ppohl as pohlavie,
                                CAST(CAST(ISNULL((select koefpribuz from Ainbreeding a where a.uscislo = c.uscislo), 0)*100 as decimal(10,2)) as varchar)+' %' as KoefPribuz,
                                CONVERT(varchar(10), c.datnar, 104) as DatNar, 
                                c.PlemSkl, (select PK from CM_Krava k where k.CISKRAVY = c.uscislo) as pk,
                                K_farbaText as Farba,
                                v.PORLAKMAX as PL_max, v.POCVSETLAK as PL1_priem, v.POCNORLAK as PL2_priem,
                                v.MLIEKOMAX as ML_max, v.MLIEKOPR as ML_priem,
                                v.TUKMAX as T_max, v.TUKPRKG as T_priem,
                                ROUND(K_TukMaxP, 2) as TP_max, ROUND(v.TUKPRPER, 2) as TP_priem,
                                v.BIELMAX as B_max, v.BIELPRKG as B_priem,
                                ROUND(K_bielkP, 2) as BP_max, ROUND(v.BIELPRPER, 2) as BP_priem,
                                K_SPI as SPI,
                                ROUND(K_REl, 0) as R,
                                K_M305 as ML,
                                K_T305 as T,
                                K_B305 as B
                            FROM CP_Kravicky c 
                                LEFT OUTER JOIN dbo.View_CP_Rodokmen_Krava_mlieko v ON v.k = c.uscislo
                            WHERE c.uscislo = @uscislo and ppohl = 2
--								and (tab = @tab or @tab = '')
                            order by tab asc
)
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-04-06
-- Description:	Znovuotvorenie laktacie (zmazanie vyradenim uz uzavretej laktacie z CM_Laktacie)
-- =============================================
CREATE PROCEDURE C_aktual_znovuotv_lakt
	@ParCISKRAVY varchar(14) 
AS
BEGIN
	declare @N_PORLAK int
	declare @N_LAKTDNI int

	select @N_PORLAK = PORLAK, @N_LAKTDNI = LAKTDNI from CM_NAPLAK where CISKRAVY = @ParCISKRAVY		
	if ((select max(PORLAK) from CM_Laktacie where CISKRAVY = @ParCISKRAVY) = @N_PORLAK) and (@N_LAKTDNI < 305)
		delete from CM_Laktacie where CISKRAVY = @ParCISKRAVY and PORLAK = @N_PORLAK
END
go

-- =============================================
----pre rocenku MLHD 
----procedura -prepocet procedur Roc_MLHD_ZostavaLaktacie_zvaz, 
								--Roc_MLHD_ZostavaLaktacie_zvaz_sektor,
								--Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU,
								--Roc_MLHD_ZostavaLaktacie_sektor,
								--Roc_MLHD_ZostavaLaktacie_stupenKU 
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy_Opr
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[Roc_MLHD_ZostavaLaktacie_zvaz_sektor_stupenKU_prepocet_region]
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                            EXEC Roc_MLHD_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC Roc_MLHD_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC Roc_MLHD_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC Roc_MLHD_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go




CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA_chov_CHOV] 
	@ParChov varchar(9)
AS
BEGIN
	/**********************************************

	! please run affter C_Aktual_KodDojKodMedzi !

		using table:CM_Naplak,CM_Krava,CM_Laktacie

		canging table:CP_MedziobdZostavaA

		used for:(9.A) Rozbor medziobdobia podľa prebiehajúcej laktácie 

	*********************************************/

	declare @c as varchar(9)
	

	/*create table #aTable  
	(
	[chovatel] varchar(9)
      ,[groupNazov]  varchar(30)
      ,[l1] int
      ,[pl1] float
      ,[l2] int
      ,[pl2] float
      ,[l3] int
      ,[pl3] float
      ,[l4] int
      ,[pl4] float
      ,[l5] int
      ,[pl5] float
      ,[l6] int
      ,[pl6] float
      ,[l7] int
      ,[pl7] float
      ,[l8] int
      ,[pl8] float
      ,[l9] int
      ,[pl9] float
      ,[Spolu] int
      ,[pSpolu] float
      ,[Pmedziobd] int
      ,[SpoluChov] int
      ,[znakLakt] varchar(1)
	)*/
	
	--TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaA_CopyTest
	delete CP_MedziobdZostavaA_CopyTest where chovatel = substring(@ParChov,1,1)
	delete CP_MedziobdZostavaA_CopyTest where chovatel = substring(@ParChov,1,3)
	delete CP_MedziobdZostavaA_CopyTest where chovatel = substring(@ParChov,1,6)
	delete CP_MedziobdZostavaA_CopyTest where chovatel = @ParChov
	
	declare @t1 as datetime;
	set @t1=datediff(SECOND,getdate(),GETDATE());
	
	declare @t2 as datetime;
	declare @t3 as datetime;

	declare @kod as int;
	declare @nazov as varchar(20);
	--declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

	declare chovatel cursor for
	select distinct chovatel
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov
	
	union
	
	select distinct substring(chovatel,1,6)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov	
	
	union
	
	select distinct substring(chovatel,1,3)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov
	
	union
	
	select distinct substring(chovatel,1,1)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_table')
		begin
			DROP TABLE TEMPTABLE_table			
		end
		select l.PORLAK, KOD_MEDZ, l.MEDZIOBD into TEMPTABLE_table from CM_Naplak as l inner join CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and PRIZNAKKU = '1'
		--CREATE INDEX IDX_TEMPTABLE_table ON PLIS.dbo.TEMPTABLE_table(KOD_MEDZ)

		IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_tableL')
		begin
			DROP TABLE TEMPTABLE_tableL	
		end
		select MEDZIOBD, KOD_MEDZ into TEMPTABLE_tableL from CM_Laktacie where CHOVATEL like @c +'%'
		--CREATE INDEX IDX_TEMPTABLE_tableL ON PLIS.dbo.TEMPTABLE_tableL(KOD_MEDZ)

		declare hran cursor for
		select kod,nazov
		from  CC_Medziobd

		open hran
		fetch next from hran into @kod,@nazov
		
	
		IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
			DROP TABLE TEMPTABLE_s			
		select PORLAK into TEMPTABLE_s from TEMPTABLE_table where KOD_MEDZ is not null and KOD_MEDZ!=1

	
		while @@FETCH_STATUS=0
		begin
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE TEMPTABLE
			select PORLAK, KOD_MEDZ into TEMPTABLE from TEMPTABLE_table where KOD_MEDZ=@kod
		
		begin
				set @l1=(select COUNT(*) from TEMPTABLE where PORLAK=1 );
				set @l2=(select COUNT(*) from TEMPTABLE where PORLAK=2 );
				set @l3=(select COUNT(*) from TEMPTABLE where PORLAK=3 );
				set @l4=(select COUNT(*) from TEMPTABLE where PORLAK=4 );
				set @l5=(select COUNT(*) from TEMPTABLE where PORLAK=5 );
				set @l6=(select COUNT(*) from TEMPTABLE where PORLAK=6 );
				set @l7=(select COUNT(*) from TEMPTABLE where PORLAK=7 );
				set @l8=(select COUNT(*) from TEMPTABLE where PORLAK=8 );
				set @l9=(select COUNT(*) from TEMPTABLE where PORLAK>=9);
				set @spolu= @l2+@l3+@l4+@l5+@l6+@l7+@l8+@l9;
				set @s=(select COUNT(*)	from TEMPTABLE_s);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from TEMPTABLE_tableL where KOD_MEDZ=@kod)
			insert into CP_MedziobdZostavaA_CopyTest  values  (@c ,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);
		end

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
		
		
		begin
			set @l1=(select COUNT(*) from TEMPTABLE_s where PORLAK=1 );
																																																					
			set @l2=(select COUNT(*) from TEMPTABLE_s where PORLAK=2 );
																																																						
			set @l3=(select COUNT(*) from TEMPTABLE_s where PORLAK=3 );
																																																						
			set @l4=(select COUNT(*) from TEMPTABLE_s where PORLAK=4 );
																																																						
			set @l5=(select COUNT(*) from TEMPTABLE_s where PORLAK=5 );
																																																						
			set @l6=(select COUNT(*) from TEMPTABLE_s where PORLAK=6 );
																																																						
			set @l7=(select COUNT(*) from TEMPTABLE_s where PORLAK=7 );
																																																						
			set @l8=(select COUNT(*) from TEMPTABLE_s where PORLAK=8 );
																																																						
			set @l9=(select COUNT(*) from TEMPTABLE_s where PORLAK>=9 );
		
			set @spolu=(select COUNT(*) from TEMPTABLE_s);
		
			set @s=@spolu
	
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
				
			insert into CP_MedziobdZostavaA_CopyTest  values(@c ,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)
			
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE TEMPTABLE
				
			select PORLAK, MEDZIOBD into TEMPTABLE from TEMPTABLE_table where KOD_MEDZ is not null and KOD_MEDZ!=1
			
			set @l1=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=1);
			set @l2=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=2);
			set @l3=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=3);
			set @l4=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=4);
			set @l5=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=5);
			set @l6=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=6);
			set @l7=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=7);
			set @l8=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=8);
			set @l9=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK>=9);
			set @spolu=(select avg(MEDZIOBD) from TEMPTABLE);
			
			insert into CP_MedziobdZostavaA_CopyTest  values(@c ,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)
			
end

fetch next from chovatel into @C;
end

close chovatel
deallocate chovatel

IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
	DROP TABLE PLIS.dbo.TEMPTABLE
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
	DROP TABLE PLIS.dbo.TEMPTABLE_s			
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_table')
	DROP TABLE TEMPTABLE_table			
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_tableL')
	DROP TABLE TEMPTABLE_tableL	
END
go

CREATE FUNCTION [PM_DajKraj] (@kraj int)  
RETURNS varchar(2)  
AS  
BEGIN  
     IF (@kraj=0) RETURN ('00')
     RETURN ('2'+CONVERT(varchar(1), @kraj));  
END;
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Vyber udajov 1.laktacie, 2.lakt. a viac do reportu k laktaciam...stvrtrocna a rocna zostava
 --uplne rozbitie retazca a filtra...na zvaz, sektor, stupenKU, popripade plemeno
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_Oznacenie_retazec]
	@datumOd varchar(10),
	@datumDo varchar(10),
	@vyber varchar(max)=''
as	
begin
declare @chovy table (
		[Filter][varchar](50)null,
		[Oznacenie] [varchar](max) NULL, [DatumOd][date] null, [DatumDo][date] null,[datumGenerovania][date]null,Plem_Zvaz VARCHAR(50)null ,
		 Sektor_StupenKU VARCHAR(50)null,
	SR VARCHAR(50)null,
	kraj_nazov VARCHAR(50)null,
	okres_nazov VARCHAR(50)null,
	Region_nazov VARCHAR(50)null,
	podnik_nazov VARCHAR(50)null,
	chov_nazov VARCHAR(50)null,
	obec_nazov VARCHAR(50)null,
	chov_zvaz VARCHAR(50)null,
	sektor_nazov VARCHAR(50)null,
	stupenKU_nazov VARCHAR(50)null,
	[Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,[EkoChov] [varchar] (1) null,
		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,
		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
	 	[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,
		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,
		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,
		[Zmena56Celk] [float](4) NULL,
		[Zmena57Celk] [float](4) NULL,
		[Zmena58Celk] [float](4) NULL,
		[Zmena59Celk] [float](4) NULL,
		[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,
		[Zmena62Celk] [float](4) NULL,
		[ZmenaCelk2Celk] [float](4) NULL
		--[chov_nazov][varchar](50)null,[podnik_nazov,][varchar](50)null,[kraj_nazov,][varchar](50)null,[okres_nazov][varchar](50)null,[obec_nazov][varchar](50)null,
		--[regiom_nazov][varchar](50)null
		)
		
Declare @oznacenie varchar(20) = null
WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        --SELECT @oznacenie		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
        --SELECT @oznacenie
	end
	if (PATINDEX('%,%',@oznacenie))	>0
	begin
		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,Plem_Zvaz ,
			Sektor_StupenKU ,
			SR ,
			kraj_nazov ,
			okres_nazov,
			Region_nazov,
			podnik_nazov ,
			chov_nazov ,
			obec_nazov ,
			chov_zvaz ,
			sektor_nazov ,
			stupenKU_nazov ,Region, l.PlemTyp,l.EkoChov,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			--(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
			--(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
			--(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			--e.NAZOV as region_nazov
		from plis.dbo.CR_LaktacneZostavy as l

 		--	LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			--LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			--LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			----LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
			--LEFT JOIN NC_REGION e ON (e.REG = l.REGION)
			--LEFT outer JOIN --cross apply 
			cross apply  CR_ZostavaLaktacie_RozbitieFiltra2 (@oznacenie) as r-- on r.oznacenie = l.filter

		where (Filter = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo
	end 

	else 

	begin


		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,null as Plem_Zvaz ,
			null as Sektor_StupenKU ,
			null as SR ,
			(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
	
			(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			e.NAZOV as region_nazov,
			case when len((select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))) < 50
				then (select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))
			else (select nazovskr FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))
				end
			  as  podnik_nazov,
			(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and a.TYPZV=1 and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and a.TYPZV=1 and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			null as chov_zvaz ,
			null as sektor_nazov ,
			null as stupenKU_nazov ,
			l.Region, l.PlemTyp,l.EkoChov,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
	
		from plis.dbo.CR_LaktacneZostavy as l

 			LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
			LEFT JOIN NC_REGION e ON (e.REG = l.REGION)
			--LEFT outer JOIN --cross apply 
	

		where ((Oznacenie = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo and PlemTyp is not null) or ((Oznacenie=Filter and Oznacenie = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo and PlemTyp is null)

	end
end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end 


--		CR_ZostavaLaktacie_Oznacenie_plemeno '2015-09-15','2016-05-15','1,ChZ0,S00'

go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 05.06.2015 
-- Update:		15.06.2015
--				-- Opravene pocty teliat a krav - vid detail na chove
-- Description:	Zoznam chovov
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_ZoznamChovov]	

AS
BEGIN
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CP_ZoznamChovov]') AND TYPE IN (N'U'))
		DELETE FROM [dbo].CP_ZoznamChovov
	ELSE
		CREATE TABLE [dbo].[CP_ZoznamChovov](
			[chov] [varchar](9) NOT NULL,
			[Nazov] [varchar](25) NULL,
			[typKU] [varchar](4) NULL,
			[pocetKrav] [int] NULL,
			[pocetTeliat] [int] NULL,
			[zootechnik] [varchar](30) NULL,
			[konzulent] [varchar](30) NULL
		) ON [PRIMARY]


	
DECLARE 
		@chovatel as varchar(9),	
		@kraj as varchar(1),
		@okres as varchar(2),
		@podnik as varchar(3),
		@chov as varchar(3),

		@typKU as varchar(4),
		@pocTel as int, @pocTelFakt as int,
		@pocKrav as int, @pocKravFakt as int, @pocTMHD as int,
		@zootechnik as varchar(30),
		@konzulent as varchar(30),
		@nazov as varchar(25)

	declare zviera cursor  for

	SELECT ch.kraj, ch.okres, ch.podnik, ch.chov
	FROM NM_CHOVMAS AS ch
    inner join NM_HDDETAIL as mimo on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = mimo.kraj+mimo.okres+mimo.podnik+mimo.chov 
    where ch.ZRUS is null and mimo.PRIZNAK = '01' --and ch.TYPZV = '1' and mimo.SPVYKON = '4' 

	open zviera	
	fetch next from zviera into @kraj, @okres, @podnik, @chov;
	WHILE @@FETCH_STATUS = 0 
		begin
			SET @chovatel = @kraj + @okres + @podnik + @chov;

			SET @nazov = (SELECT NAZOVSKR FROM NM_PODNIK p
							WHERE p.KRAJ = @kraj 
								and p.OKRES = @okres
								and p.PODNIK = @podnik)

			SET @typKU = (SELECT 
				CASE 
				WHEN (NOT(SPVYKON IN ('0', '4', '5'))) AND (PRIZNAK = '01') AND TECHUSMD = '00' THEN 'ML' 
				WHEN (SPVYKON IN ('4', '5')) AND (PRIZNAK = '01') THEN 'MP'
				WHEN (SPVYKON = '0') AND (PRIZNAK = '01') AND TECHUSMD != '00' THEN 'TMHD'
				ELSE 'X' 
				END AS TypKU 
				FROM NM_HDDETAIL hd 
				WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)

			SET @pocTel = (SELECT
				CASE @typku 
				WHEN 'ML' THEN NULL
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocTel FROM CM_Telata WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL and PRIZNAKKU = '2')
				WHEN 'TMHD' THEN (SELECT COUNT(*) FROM CM_Telata AS t WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL AND (SELECT COUNT(*) CM_Vazenia WHERE CISTELATA = t.CISTELATA)> 0)
				END)

			SET @pocKrav = (SELECT
				CASE @typku 
				WHEN 'ML' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL)
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL and PRIZNAKKU = '2')
				WHEN 'TMHD' THEN NULL 
				END)

			SET @pocTelFakt = (SELECT
				CASE @typku 
				WHEN 'ML' THEN NULL
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocTel FROM CM_Telata WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL and CISTELATA not in (select ciskravy from CM_Krava) and PRIZNAKKU = '2')
				WHEN 'TMHD' THEN NULL
				END)

			SET @pocKravFakt = (SELECT
				CASE @typku 
				WHEN 'ML' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL) 
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL and PRIZNAKKU = '2') 
				WHEN 'TMHD' THEN NULL 
				END)

			SET @pocTMHD = (SELECT
				CASE @typku 
				WHEN 'ML' THEN NULL
				WHEN 'MP' THEN NULL
				WHEN 'TMHD' THEN (SELECT COUNT(*) FROM CM_Telata AS t WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL AND (SELECT COUNT(*) CM_Vazenia WHERE CISTELATA = t.CISTELATA)> 0) 
				END)

			if (@pocTel is NULL)
				SET @pocTel = 0;

			if (@pocKrav is NULL)
				SET @pocKrav = 0;

			if (@pocTelFakt is NULL)
				SET @pocTelFakt = 0;

			if (@pocKravFakt is NULL)
				SET @pocKravFakt = 0;

			if (@pocTMHD is NULL)
				SET @pocTMHD = 0;

			SET @zootechnik = (SELECT top 1 osoba 
	            FROM NM_PracSPU p  LEFT OUTER JOIN
		            NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		            NM_HDDETAIL hd ON (hd.OBVZOO = p.PZ AND hd.KRAJ = o.KRAJ AND hd.OKRES = o.OKRES)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)
	            
			SET @konzulent = (SELECT top 1 osoba	
	            FROM NM_PracSPU p  LEFT OUTER JOIN
		            NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		            NM_HDDETAIL hd ON (hd.KONZUL = p.KONZUL AND hd.KRAJ = o.KRAJ AND hd.OKRES = o.OKRES)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)


			 if (/*@typKU != 'X' and @typKU is not null and*/ @chovatel not in (select chov from CP_ZoznamChovov where chov = @chovatel))
			 begin
					insert into CP_ZoznamChovov					
					values ( @chovatel, @nazov, @typKU, @pocKrav, @pocTel, @zootechnik, @konzulent )					
			end

			if (@typKU != 'X' and @typKU is not null)
			 begin
					insert into NE_STATISTIKY_FAKT(chov, datum, hd_krava, hd_tela, tmhd)
					values ( @chovatel, CAST(GETDATE() AS DATE), @pocKravFakt, @pocTelFakt, @pocTMHD )
			end

			fetch next from zviera into @kraj, @okres, @podnik, @chov;
		end
	close zviera;
	deallocate zviera;




END

--exec [C_aktual_ZoznamChovov]

--drop table CP_ZoznamChovov

--select t.* from CP_ZoznamChovov t
--INNER JOIN NM_PRACCHOV AS pch  ON pch.KRAJ + pch.OKRES + pch.PODNIK + pch.CHOV = t.Chov
--INNER JOIN aspnetdb.dbo.aspnet_Users AS u 
--INNER JOIN aspnetdb.dbo.User_PRACKU AS up ON u.UserId = up.UserId 
--INNER JOIN NM_PRACKU AS p ON up.IDPRACKU = p.IDPRACKU ON pch.IDPRACKU = p.IDPRACKU 
--            AND u.UserName = 'durech'


go

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 23.5.2016, 
-- Description:	Urcenie plemennej knihy podla TYPPLEM
-- @cistelata
-- ===================================================================

CREATE FUNCTION [dbo].[C_TelaPlemennaKniha]
(@cistelata VARCHAR(14),
@matka VARCHAR(14),
@datnar date)

RETURNS VARCHAR(3)

AS
BEGIN

DECLARE @RET_PK VARCHAR(3) = '   '

RETURN
	(
	SELECT top(1)	CASE TYPPLEM
		-- holstein
		WHEN '62' THEN 'PHD'
		WHEN '66' THEN 'PHD'
		WHEN '72' THEN 'PHD'
		WHEN '76' THEN 'PHD'
		WHEN '82' THEN 'PHD'
		WHEN '86' THEN 'PHD'
		WHEN '92' THEN 'PHD'
		WHEN '96' THEN 'PHD'
		WHEN '73' THEN 'PHC'
		WHEN '77' THEN 'PHC'
		WHEN '83' THEN 'PHC'
		WHEN '87' THEN 'PHC'
		WHEN '93' THEN 'PHC'
		WHEN '97' THEN 'PHC'
		WHEN '84' THEN 'PHB'
		WHEN '88' THEN 'PHB'
		WHEN '94' THEN 'PHB'
		WHEN '98' THEN 'PHB'
		WHEN '95' THEN 'PHA'
		WHEN '99' THEN 'PHA'
		-- pinzgau
		WHEN '51' THEN 'PPA'
		WHEN '53' THEN 'PPB'
		WHEN '54' THEN 'PPC'
		-- simmental / slov.strakata
		WHEN '11' THEN 'PSA'
		WHEN '13' THEN 'PSB'
		WHEN '14' THEN 'PSC'
	ELSE ' '
	END
	FROM dbo.CM_Telata WHERE CISTELATA = @cistelata and MATKA = @matka and DATNAR = @datnar
	)
END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 17.08.2015 15:37
-- Update:		21.08.2015 
--				28.09.2015 - vyhodene CM_KRAVY
--				20.10.2015 - pridanie podmienok pre osetrenie nulovych riadkov
--				21.10.2015 - osetrenie od bazenovych vzoriek
--				02.11.2015 - CM_Kontroly nahradene View_CM_Kontroly (spaja kontroly + archiv kontrol)
--				23.08.2017 - Perc.: Tuk, Bielk., sb spravene na AVG.. miesto osetrenia null riadkov... - pre Mesacne vysledky....
--				08.09.2017 - komplet prerabka na zaklade uz spracovanych udajov z tabulky CR_KURHD_MesUzavCH_1																				-- autor: Vladimir Durech
-- Description:	Vypocet Rozborov pre analyzu kontrolenho dna - podla vazeneho priemeru  (resp. uz aritmetickeho ???)
-- =============================================
CREATE PROCEDURE [dbo].[C_Rozbory_Vypocet_Analyza]
	@CHOV [varchar](9),
	@DATKONTR [date]
AS
BEGIN
--declare @chov varchar(9) = '404020011'
--declare @DATKONTR varchar(19) = '2015-07-08'
--drop table #temp
/*
		SELECT k.CISKRAVY, DATKONTR, MLIEKO, r.MLIEKPR as MLIEKOPR, PERCTUKU, PERCBIELK, BUNECELEM, DENDOBA, INTERVAL, 
			PERCLAKTOZ, 	
			----m.DATROZB,
			--m.Mocov,
			PorPreblak = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END, LaktDni,
			PorPreblakRep = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END --LaktDni
			----,MLIEKOPR
			into #temp
		FROM plis.dbo.CM_Krava k 
			LEFT OUTER JOIN CM_Kontroly r ON (r.CISKRAVY = k.CISKRAVY and k.CHOVATEL = r.CISCHOVU and DATKONTR = @DATKONTR)
			--left outer join plis.dbo.CM_Mocovina m ON (k.CISKRAVY = m.CIS_KRAVY and k.CHOVATEL = m.CHOV and DATROZB = @DATKONTR)
		WHERE (k.CHOVATEL = @chov) 			
			AND (DATKONTR  is not null and DATKONTR = @DATKONTR)
			and len(k.CISKRAVY) = 14 and len(k.CISKRAVY) = 14
*/
	/*
		select distinct  ciskravy, tab
		into #tab_uscislo
		from (
			select ciskravy, 'K' as tab 
				from CM_Kontroly 
				WHERE CISCHOVU = @chov
						AND DATKONTR = @DATKONTR
						and (len(CISKRAVY) = 14 and len(CISKRAVY) = 14 ) 
			union all
			select cis_kravy as ciskravy, 'M' as tab 
				from CM_Mocovina 
				where chov = @chov 
						AND DATROZB = @DATKONTR 
						AND len(CIS_KRAVY) = 14 and len(CIS_KRAVY) = 14 
		) t
		--group by ciskravy
		order by tab asc
		*/
	--	select distinct ciskravy, 'K' as tab 
	--	into #tab_uscislo
	--		from View_CM_Kontroly 
	--		WHERE CISCHOVU = @chov
	--				AND DATKONTR = @DATKONTR AND DATKONTR IS NOT NULL
	--				and len(CISKRAVY) = 14
	--				AND CISKRAVY NOT BETWEEN 'SK000000000001' AND 'SK000000000099'		

	--	insert into #tab_uscislo		
	--	select distinct cis_kravy as ciskravy, 'M' as tab 
	--		from CM_Mocovina 
	--		where chov = @chov 
	--				AND DATROZB = @DATKONTR  AND DATROZB IS NOT NULL
	--				AND len(CIS_KRAVY) = 14 
	--				and cis_kravy not in (select ciskravy from #tab_uscislo)
	--				AND cis_kravy NOT BETWEEN 'SK000000000001' AND 'SK000000000099'	
		


	--	SELECT t.CISKRAVY, DATKONTR, MLIEKO, r.MLIEKPR as MLIEKOPR, PERCTUKU, PERCBIELK, BUNECELEM, DENDOBA, INTERVAL, 
	--		PERCLAKTOZ,
	--		m.mocov as Mocov,
	--		PorPreblak = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END, LaktDni,
	--		PorPreblakRep = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END --LaktDni			
	--		, 
	--		--case when  MLIEKO is null then 0 else 1 end as M,
	--		case when  r.MLIEKPR is null then 0 else 1 end as MP,
	--		case when  PERCTUKU is null then 0 else 1 end as PT,
	--		case when  PERCBIELK is null then 0 else 1 end as PB,
	--		case when  BUNECELEM is null then 0 else 1 end as B,
	--		--case when  DENDOBA is null then 0 else 1 end as DD,
	--		--case when  INTERVAL is null then 0 else 1 end as I,
	--		case when  PERCLAKTOZ is null then 0 else 1 end as PL,
	--		case when  m.mocov is null then 0 else 1 end as MO
	--		into #tab
	--	FROM #tab_uscislo t 
	--		LEFT OUTER JOIN View_CM_Kontroly r ON (r.CISKRAVY = t.CISKRAVY AND DATKONTR = @DATKONTR and CISCHOVU = @chov)
	--		LEFT OUTER JOIN CM_Mocovina m ON (t.CISKRAVY = m.CIS_KRAVY AND  DATROZB = @DATKONTR and CHOV = @chov)
	
	

	----select * from #temp

	--declare @pocet_krav int = null
	--set @pocet_krav = (select count(*) from #tab_uscislo where tab = 'K')
	----declare @zap_dojnice decimal(5,2)
	--declare @zap_dojnice int
	--declare @sb_do_6 int
	--set @zap_dojnice = ROUND((select count(*)  FROM plis.dbo.CM_Krava where CHOVATEL = @CHOV and DOVVYR is null and PRIZNAKKU = 1), 0)
	--if (@zap_dojnice = 0)
	--	set @zap_dojnice = null;
	--set @sb_do_6 = ROUND((select count(*) from View_CM_Rozbory r where ZNKONTR = 'E' and chov = @CHOV  and DATKONTR = @DATKONTR 
	--						and len(CISKRAVY) = 14 AND CISKRAVY NOT BETWEEN 'SK000000000001' AND 'SK000000000099'), 0)
	--if (@sb_do_6 = 0)
	--	set @sb_do_6 = null;

	--print '@pocet_krav'
	--print @pocet_krav

	--print '@@zap_dojnice'
	--print @zap_dojnice
		
	--select 
	--	ROUND(SUM(MLIEKOPR), 1) as nadoj_celkom,
	--	--ROUND(CAST(SUM(PorPreblak) as float) / @pocet_krav, 2) as priem_por_lakt,
	--	ROUND(AVG(CAST(PorPreblak as float)) , 2) as priem_por_lakt,
	--	ROUND(AVG(LAKTDNI), 0) as priem_lakt_den,
	--	cast(@zap_dojnice as decimal(5,0)) as zapojene_dojnice,
	--	--case when @pocet_krav != 0 then @pocet_krav else null end as kont_dojnice_ks,
	--	@pocet_krav as kont_dojnice_ks,
	--	--ROUND( cast ( ( (case when @pocet_krav != 0 then @pocet_krav else null end / @zap_dojnice) * 100) as float), 2) as kont_dojnice_perc,
	--	ROUND( cast ( ( (@pocet_krav*1.0/ @zap_dojnice*1.0) * 100.0) as float), 2) as kont_dojnice_perc,
	--	ROUND(SUM(MLIEKOPR) / @zap_dojnice, 2) as dojivost_na_zap,
	--	ROUND(AVG(MLIEKOPR), 2) as dojivost_na_kontr,
	--	--ROUND(SUM(MLIEKOPR * B) / COUNT(BUNECELEM * B), 2) as dojivost_na_kontr,

	--	--ROUND(SUM(BUNECELEM * 1.0 * MLIEKOPR) / SUM(MLIEKOPR * 1.0 * B), 2) as sb,
	--	ROUND(AVG(BUNECELEM),0) as sb,
	--	@sb_do_6 as sb_do_6,
	--	ROUND(LOG(SUM(BUNECELEM * MLIEKOPR) / SUM(MLIEKOPR * B) / 100.0, 2)+3, 2)  as skore_sb,
	--	ROUND(SUM(Mocov * MLIEKOPR) / SUM(MLIEKOPR * MO), 1) as mocovina,		
	--	ROUND((SUM(MLIEKOPR * PT) / 100) * (SUM(PERCTUKU * MLIEKOPR) / SUM(MLIEKOPR * PT)), 2) as tuk_kg,
		
	--	--ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(MLIEKOPR * PT), 2) as tuk_perc,
	--	--ROUND(AVG(PERCTUKU), 2) as tuk_perc,
	--	--ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(MLIEKOPR * PT), 2) as tuk_perc,
	--	ROUND( AVG(PERCTUKU) ,2)  as tuk_perc,
	--	ROUND((SUM(MLIEKOPR * PB) / 100) * (SUM(PERCBIELK * MLIEKOPR) / SUM(MLIEKOPR * PB)), 2) as bielkovina_kg,
	--	--ROUND(SUM(PERCBIELK * MLIEKOPR) / SUM(MLIEKOPR * PB) , 2) as bielkovina_perc
	--	ROUND(AVG(PERCBIELK) , 2) as bielkovina_perc
	--	--ROUND(AVG(PERCBIELK) , 2) as bielkovina_perc
	--from #tab 

	----select * from #tab
	--/*
	--select 
	--	SUM(MLIEKOPR) as nadoj_celkom,
	--	ROUND(AVG(PorPreblak), 2) as priem_por_lakt,
	--	ROUND(AVG(LAKTDNI), 0) as priem_lakt_den,
	--	cast(@zap_dojnice as decimal(5,0)) as zapojene_dojnice,
	--	count(*) as kont_dojnice_ks,
	--	ROUND( cast ( ( (count(*) / @zap_dojnice) * 100) as float), 2) as kont_dojnice_perc,
	--	ROUND(SUM(MLIEKOPR) / @zap_dojnice, 2) as dojivost_na_zap,
	--	ROUND(AVG(MLIEKOPR), 2) as dojivost_na_kontr,
	--	ROUND(AVG(BUNECELEM), 0) as sb,
	--	@sb_do_6 as sb_do_6,
	--	ROUND(LOG(AVG(BUNECELEM) / 100, 2)+3, 2)  as skore_sb,
	--	ROUND(AVG(Mocov), 0) as mocovina,
	--	ROUND((SUM(MLIEKOPR) / 100) * AVG(PERCTUKU), 2) as tuk_kg,
	--	ROUND(AVG(PERCTUKU), 2) as tuk_perc,
	--	ROUND((SUM(MLIEKOPR) / 100) * AVG(PERCBIELK), 2) as bielkovina_kg,
	--	ROUND(AVG(PERCBIELK), 2) as bielkovina_perc
	--from #temp
	--*/

	
	declare	@rok int = year(@datkontr)
	declare	@mesiac int = month(@datkontr)

	select 
		cast(round(sum(ml.ML), 1) as decimal(9,1)) as nadoj_celkom,
		cast(ROUND(AVG(PorPreblak*1.0) , 2) as decimal(9,2) ) as priem_por_lakt,
		avg(ml.nap_dni) as priem_lakt_den, 
		count(*) as zapojene_dojnice,
		count(ml.CISKRAVY) as kont_dojnice_ks,
		cast(ROUND( cast ( ( (count(ml.CISKRAVY)*1.0/ count(*)*1.0) * 100.0) as float), 2) as decimal(9,2))as kont_dojnice_perc,

		cast(ROUND(SUM(ml.ML) / count(*), 2) as decimal(9,2)) as dojivost_na_zap,
		--ROUND(AVG(ML1), 2) as dojivost_na_kontr,
		cast(ROUND(AVG(ml.ML), 1) as decimal(9,1)) as dojivost_na_kontr,
		cast(avg(ml.SB1*1.0) as decimal (9,0)) as SB, 
		null as sb_do_6,
		ROUND(LOG(SUM(ml.SB1 * ml.ML) / SUM(ml.ML * (case when  ml.SB1 is null then 0 else 1 end)) / 100.0, 2)+3, 2)  as skore_sb,
		ROUND(SUM(Mocov * ml.ML) / SUM(ml.ML * (case when  c.MOCOV is null then 0 else 1 end)), 1) as mocovina,		
		--null as mocovina,
		cast(ROUND((SUM(ml.ML * (case when  ml.PTUKU1 is null then 0 else 1 end)) / 100) * (SUM(ml.PTUKU1 * ml.ML)
			 / SUM(ml.ML * (case when  ml.PTUKU1 is null then 0 else 1 end))), 2) as decimal) as tuk_kg,
		CAST(avg(ml.PTUKU1) as decimal(9,2)) as TUK_Perc,
		CAST((SUM(ml.ML * (case when  ml.PBIELK1 is null then 0 else 1 end)) / 100) * (SUM(ml.PBIELK1 * ml.ML) 
			/ SUM(ml.ML * (case when  ml.PBIELK1 is null then 0 else 1 end))) as decimal(9,2)) as bielkovina_kg,
		cast(AVG(ml.PBIELK1) as decimal(9,2) ) as bielkovina_perc
	from dbo.CR_KURHD_MesUzavCH_1 m
		left join (select ciskravy, case mesiac when 1 then ML1
							when 2 then ML2
							when 3 then ML3 
							when 4 then ML4
							when 5 then ML5 
							when 6 then ML6
							when 7 then ML7 
							when 8 then ML8
							when 9 then ML9 
							when 10 then ML10
							when 11 then ML11 
							when 12 then ML12 end as ML, SB1, PTUKU1, laktdni, PBIELK1, nap_dni
				from dbo.CR_KURHD_MesUzavCH_1
				where chov = @chov
					and mesiac = @mesiac
					and rok = @rok
					and dovvyr is null 
					and kontrola is not null
					and year(kontrola) = @rok
					and month(kontrola) = @mesiac

					--group by chov, rok, mesiac, CISKRAVYsb1, 
					) ml on ml.CISKRAVY = m.CISKRAVY
		LEFT OUTER JOIN CM_Mocovina c ON (m.CISKRAVY = c.CIS_KRAVY AND  DATROZB = @DATKONTR and c.CHOV = @chov)
	where m.chov = @chov
	and m.mesiac = @mesiac
	and m.rok = @rok
	and m.dovvyr is null	--and month(kontrola) = 6
	--and kontrola is not null	
	and (kontrola is null or (kontrola is not null
		and year(kontrola) = @rok
		and month(kontrola) = @mesiac
		)
	)
	group by m.chov, m.rok, m.mesiac


END


--		exec [C_Rozbory_Vypocet_Analyza] '102501011','2015-09-04'
--		exec [C_Rozbory_Vypocet_Analyza] '501505011','2017-09-04'
--		exec [C_Rozbory_Vypocet_Analyza] '501505011','2017-06-02'
--		exec [C_Rozbory_Vypocet_Analyza] '403536011','2017-09-07'

--		exec [C_Rozbory_Vypocet_Analyza] '505530051', '2017-05-30'

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	Import dat o suboru ACCB pre upravu a export do DBF
-- =============================================
CREATE PROCEDURE [dbo].[C_blupACCB]

AS
BEGIN

	declare @fileData nvarchar(max)
	declare @filepath varchar(256) = 'e:\rozborak\data\blup\h\'
	declare @filename varchar(10) = 'accb'
	declare @dlzkariadka int = 48
	declare @exitstatus int
	declare @riadok varchar(1024)

declare
	@accbdata_h table
	(
		cislo varchar(15),
		nd decimal(6,0),
		nr decimal(6,0),
		relm decimal(7,4),
		relt decimal(7,4),
		relb decimal(7,4)
	)

	-- ACCS HOL
	-- ziskanie samotnych dat suboru
	set @fileData = (Select VstupyPLIS.dbo.CLRM_CitajSubor(@filepath,@filename))

	-- citanie a zapis dat z riadkov suboru
	while (DATALENGTH(@fileData) > 0)
	begin
		set @riadok = (select left(@fileData, @dlzkariadka))
		set @fileData = Right(@fileData, len(@fileData) - @dlzkariadka - 1)

		insert into @accbdata_h (
			cislo,
			nd,
			nr,
			relm,
			relt,
			relb)
		select 
			SUBSTRING(@riadok, 0, 15),
			SUBSTRING(@riadok, 16, 6),
			SUBSTRING(@riadok, 22, 6),
			SUBSTRING(@riadok, 28, 7),
			SUBSTRING(@riadok, 35, 7),
			SUBSTRING(@riadok, 42, 7)
	end

	select * from @accbdata_h

END
go




-- =============================================
-- Author:		PSSR,š.p.
-- Create date: januar 2019
-- Description:	Priprava Dlhovekost_MP
-- =============================================
CREATE PROCEDURE [dbo].[C_Dlhovekost_MP] 
	
AS
BEGIN
truncate table CP_Dlhovek_Kravy_MP

 insert into CP_Dlhovek_Kravy_MP
 (CISKRAVY, MAJITEL, OUSCIS, MATKA, DATNAR, HMOTNAR, HMOTODSTAV, HMOT365, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, DOVVYR, DATVYR)
 ( select k.ciskravy, k.chovatel, OUSCIS, k.MA,  k.datnar, 
 (select hmotnar from CM_Telata  where CISTELATA = k.CISKRAVY) as hmotnar,
 (select top 1 round (hmotprepoc, 0)  from CM_Vazenia  where CISTELATA = k.CISKRAVY and DNIPREPOC = 210) as hmotodstav,
 (select top 1 round(hmotprepoc,0) from CM_Vazenia  where CISTELATA = k.CISKRAVY and DNIPREPOC = 365) as hmot365,
         k.PL1, k.KR1, k.PL2, K.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.dovvyr, k.DATVYR
 
   from CM_Krava as k
    where  k.PRIZNAKKU = 2 and k.pl1 not in ( 'S', 'P', 'H', 'X', 'R','MB', 'M', 'N', 'F', 'B','G') and pl1 is not null and ouscis is not null and k.ciskravy  in (select matka from  CM_Telata where matka = k.ciskravy)
	)

truncate table CP_Dlhovek_Telata_MP

 insert into CP_Dlhovek_Telata_MP

(CISTELATA, MAJITEL, OUSCIS, MATKA, DATNAR, PORLAK, POHLAVIE, PRIEBPOR, HMOTNAR, HMOTODSTAV, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5,  DOVVYR )
(select cistelata, chovatel, OUC, matka, datnar, porlak, pohlavie, priebpor, hmotnar, (select top 1 round (hmotprepoc, 0)  from CM_Vazenia  where CISTELATA = t.CISTELATA and DNIPREPOC = 210) as hmotodstav ,
PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, DOVVYR
from CM_Telata as t
     where matka in (select ciskravy from CP_Dlhovek_Kravy_MP where ciskravy  = t.matka ) and t.CHOVATEL != '444444444' and datnar is not null and  porlak is not null )


truncate table CP_Dlhovek_Rodokmene_MP

 insert into CP_Dlhovek_Rodokmene_MP
 (O, OO, MO, OOO, MOO, OMO, MMO)
    select distinct k.ouscis as O, ob.OTUSCIS as OO, ob.MATKA as MO ,
   (select OTUSCIS FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  AS  OOO,
   (select MATKA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA)  AS  MOO,
   (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as OMO,
   (select MA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as MMO
  /* (select OTUSCIS  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as OOOO,
   (select MATKA  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as MOOO,
   (select USCISLO FROM CM_BYCI where (select IDOT FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDBYKA) as OMOO,
   (select CISKRAVY FROM CM_Krava where (select IDMA FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDKRAVY) as MMOO,
   (select OTUSCIS from CM_Byci where (select IDOT from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDBYKA )as OOMO,
   (select MATKA from CM_BYCI where (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = USCISLO )as MOMO,
   (select USCISLO FROM CM_BYCI where  (select IDOT FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDBYKA)  as OMMO,
   (select CISKRAVY FROM CM_KRAVA where  (select IDMA FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDKRAVY)  as MMMO
 */  
    from  CP_Dlhovek_Kravy_MP k
    left outer join CM_Byci as ob on k.ouscis = ob.USCISLO
    order by o
	
 
   
END
go


-- =============================================
-- Author:		Ing. Vladimir Durech
-- Create date: 02.11.2017
-- Description:	Vrati plemeno v tvare plemeno a perc. podiel krvi (ako na HD)
-- =============================================
CREATE FUNCTION [dbo].[S_plemenoSPK]
(
	@plem varchar(10)
)
RETURNS varchar(50)
AS
BEGIN
	
	--declare @plem varchar(10) = 'VFM LI  07'

	--return 
	return (	select
	--pl1 + ' ' + cast(PERCPLEM1 as varchar(10))+ '%', 
	--pl2 + ' ' + cast(PERCPLEM2 as varchar(10)) + '%', 
	--pl3 + ' ' + cast(PERCPLEM3 as varchar(10)) + '%', 
	--pl4 + ' ' + cast(PERCPLEM4 as varchar(10)) + '%', kod
	pl1 + '-' + cast(PERCPLEM1 as varchar(10))+ '%  ' + 
	case when pl2 = '  ' then '  ' else 
		pl2 + '-' + cast(PERCPLEM2 as varchar(10)) + '%  '  + 
		case when pl3 = '  ' then '  ' else 
			pl3 + '-' + cast(PERCPLEM3 as varchar(10)) + '%  ' + 
			case when pl4  = '  ' then '  ' else +
				pl4 + '-' + cast(PERCPLEM4 as varchar(10)) + '%  ' end end end as 'Plemeno s pod. krvi'
	--from dbo.S_plemeno(@plem) as s
	--left outer join SC_PodKrvi p on p.CISKOD = substring (@plem, 9, 2)
	from
	( select replace( substring(@plem, 1, 2) ,' ','')[pl1], 
			 replace( substring(@plem, 3, 2) ,' ','')[pl2], 
			 replace( substring(@plem, 5, 2) ,' ','')[pl3], 
			 replace( substring(@plem, 7, 2) ,' ','')[pl4], 
			 substring(@plem, 9, 2)[kod]
	) t
	left outer join 
	SC_PodKrvi p on  p.ciskod = substring (@plem, 9, 2)

	)
	

END

go



-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.04.2017
-- Description:	Nahrada isnull, kedy berie do uvahy aj '', 0, '0'.
-- =============================================
CREATE FUNCTION [dbo].[isZero]
(
	@text1 varchar(256),
	@text2 varchar(256)
)
RETURNS varchar(256)
AS
BEGIN	
	declare @_text1 varchar(256) = @text1

	if @text1 is null or @text1 = ''
		return @text2;

	--if (SELECT CASE WHEN @text1 LIKE '%[a-z]%' then 1 else 0 end) = 1 
	if (SELECT CASE WHEN @text1 LIKE '%[0-9.,]%' then 1 else 0 end) = 0 
		return @text1;

	
	--if (SELECT CASE WHEN @text1 LIKE '%[0-9.,]%' then 1 else 0 end) = 1  and (
	if cast(replace(@text1, ',', '.') as float) <> 0
		return @_text1;
	
	return @text2;
END


go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description: uprava a export CP_BLUP_PROOFC do DBF (PLEMENO p)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFC_P]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select tpP from cc_blup_k95) * m305) / (m305 + (select mP from cc_blup_k95)),
			bperc = (100 * b305 - (select bpP from cc_blup_k95) * m305) / (m305 + (select mP from cc_blup_k95))

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT --p.cislo 
		430 as ssmP,
		15 as sstP,
		12 as ssbP,
		0.18 as sstpP,
		0.10 as ssbpP,      
		stdev(m305) as sm0P,
		stdev(m100) as sm1P,
		stdev(m200) as sm2P, 
		stdev(m300) as sm3P, 
		stdev(mp) as sm4P, 
		stdev(t305) as st0P, 
		stdev(t100) as st1P, 
		stdev(t200) as st2P, 
		stdev(t300) as st3P, 
		stdev(tp) as st4P, 
		stdev(b305) as sb0P, 
		stdev(b100) as sb1P, 
		stdev(b200) as sb2P, 
		stdev(b300) as sb3P, 
		stdev(bp) as sb4P, 
		stdev(tperc) as stpercP, 
		stdev(bperc) as sbpercP
		into #temp_stdevC
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31')

	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + ' ' + ISNULL(k.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + ' ' + ISNULL(k.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + ' ' + ISNULL(k.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + ' ' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		null AS ND, 
		null AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0P from CC_BLUP_K95)) / (select sm0P from #temp_stdevC)) * (select ssmP from #temp_stdevC) AS M305, 
		((p.m305 - (select M0P from CC_BLUP_K95)) / (select sm0P from #temp_stdevC) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1P from CC_BLUP_K95)) / (select sm1P from #temp_stdevC)) * (select ssmP from #temp_stdevC) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0P from CC_BLUP_K95)) / (select st0P from #temp_stdevC)) * (select sstP from #temp_stdevC) AS T305, 
		((p.t305 - (select T0P from CC_BLUP_K95)) / (select st0P from #temp_stdevC) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1P from CC_BLUP_K95)) / (select st1P from #temp_stdevC)) * (select sstP from #temp_stdevC) AS T100, 
		((p.tperc - (select TPERP from CC_BLUP_K95)) / (select stpercP from #temp_stdevC)) * (select sstpP from #temp_stdevC) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0P from CC_BLUP_K95)) / (select sb0P from #temp_stdevC)) * (select ssbP from #temp_stdevC) AS B305, 
		((p.b305 - (select B0P from CC_BLUP_K95)) / (select sb0P from #temp_stdevC) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1P from CC_BLUP_K95)) / (select sb1P from #temp_stdevC)) * (select ssbP from #temp_stdevC) AS B100, 
		((p.bperc - (select BPERP from CC_BLUP_K95)) / (select sbpercP from #temp_stdevC)) * (select ssbpP from #temp_stdevC) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo
	ORDER BY p.cislo

	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMP from CC_BLUP_K95) + t305 * (select EWTP from CC_BLUP_K95) + b305 * (select EWBP from CC_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL	
	FROM #temp_vysledny

END
go

-- =============================================
----pre rocenku MLHD 
----procedura -prepocet procedur Roc_MLHD_ZostavaLaktacie_zvaz, 
								--Roc_MLHD_ZostavaLaktacie_zvaz_sektor,
								--Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU,
								--Roc_MLHD_ZostavaLaktacie_sektor,
								--Roc_MLHD_ZostavaLaktacie_stupenKU 
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy_Opr
---- M. Holesova
-- =============================================


CREATE PROCEDURE [dbo].[Roc_MLHD_ZostavaLaktacie_stupenKU_sektor_zvaz_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT	(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 
				 OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chov: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MLHD_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							 
           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MLHD_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC Roc_MLHD_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC Roc_MLHD_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC Roc_MLHD_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor



-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MLHD_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC Roc_MLHD_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC Roc_MLHD_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC Roc_MLHD_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
							 EXEC Roc_MLHD_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC Roc_MLHD_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC Roc_MLHD_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC Roc_MLHD_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC Roc_MLHD_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region


END

go



CREATE PROCEDURE [dbo].[C_ZZ_Meso_TelataPoLaktacie_CHOV]
	@ParChov varchar(9)
AS
BEGIN
	
	/******************************************
		!  please run affter C_aktual_prepocMasoveVazenia !

		using table:CM_Krava,CM_Telata,CM_Vazenia
		
		changing table: Cp_Meso_TelataPoLaktacii

		used for: writing each Krava and her data for some Otelenie.

	*****************************************/

	declare @medzi int;
	declare @chovatel varchar(9);
	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @hmot1 int;
	declare @hmot2 int;
	declare @hmot3 int;
	declare @hmot int;
	declare @t1h120 float;
	declare @t1p120 float;
	declare @t1h210 float;
	declare @t1p210 float;
	declare @t2h120 float;
	declare @t2p120 float;
	declare @t2h210 float;
	declare @t2p210 float;
	declare @t3h120 float;
	declare @t3p120 float;
	declare @t3h210 float;
	declare @t3p210 float;
	declare @t1urctel varchar(1);
	declare @t2urcetel varchar(1);
	declare @t3urcetel varchar(1);
	declare @count as int;
	declare @porlak_telata int;

	set @count=0;
	set @hmot=0;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	declare @laktpas date;
	declare @lakt int;
	declare @pohlpas int;
	set @lakt=0;
	declare @hmotOtel as int;
	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;
	set @laktpas=NULL;
	set @pohlpas = null;
	declare kravy cursor for
	select  distinct k.CISKRAVY
	from plis.dbo.CM_Krava as k
	inner join plis.dbo.CM_Telata as t
	on k.CISKRAVY=t.MATKA /*or k.CISKRAVY = t.RECIPIENTKA*/  /*ik*/
	where k.PRIZNAKKU=2 and k.CHOVATEL = @ParChov
	order by k.CISKRAVY 

	
	open kravy ;
	fetch next from kravy into @krava;

	
	
	--TRUNCATE TABLE plis.dbo.Cp_Meso_TelataPoLaktacii
	delete plis.dbo.Cp_Meso_TelataPoLaktacii where Chovatel = @ParChov
	

	while @@FETCH_STATUS=0
	begin
		set @lakt = 0;
		declare @poc int;
		set @poc = 0;
		declare @Tnar as datetime;

		declare datum cursor for
		select distinct DATNAR
		from CM_Telata
		where MATKA=@krava /*or RECIPIENTKA = @krava*/ /*ik*/

		
		open datum
		fetch next from datum into @Tnar;
		while @@FETCH_STATUS=0
		begin

		--print @Tnar;
		--print @krava;
		--print N'---------------------------'
		declare @i int;
		set @i=0;

		declare telata cursor for 
		select  t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,
		t.DATNAR,t.POHLAVIE,t.HMOTNAR,t.PORLAK,t.HMOTOT
		from plis.dbo.CM_Krava as k
		inner join plis.dbo.CM_Telata as t
		on k.CISKRAVY=t.MATKA /*or k.CISKRAVY = t.RECIPIENTKA*/ /*ik*/ 
		where  k.CISKRAVY=@krava
		and  t.DATNAR=@Tnar 
		order by t.DATNAR ASC

		declare @datumNarKrava as datetime;

		set @datumNarKrava= (select DATNAR from plis.dbo.CM_Krava where CISKRAVY=@krava)

		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot,@porlak_telata,@hmotOtel;
		set @i=1;
		while @@FETCH_STATUS=0
		begin
	--	set @Tnar=@datotel;
		print N'Krava '+@krava;
		print N'telia cislo '+convert(varchar,@i)
	--	print @Tnar;
	--	print @t
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				set @hmot1=@hmot;
				set @t1h120=(select  top 1  HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120 order by DATVAZ DESC);
				set @t1p120=(select  top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120 order by DATVAZ DESC);
				set @t1h210=(select  top 1 HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210 order by DATVAZ DESC)
				set @t1p210=(select  top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210 order by DATVAZ DESC);
				set @t1urctel=(select  top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				set @count=@count+1;
				if(@t is null)
				begin
					set @t1='bez UČ';
					set @t1Poch=@pocl;
					set @hmot1=@hmot;
					set @t2urcetel=(select top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				set @hmot2=@hmot;
				set @t2h120=(select top 1 HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2p120=(select top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2h210=(select top 1 HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t2p210=(select top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t2urcetel=(select top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t2='bez UČ';
					set @t2Poch=@pocl;
					set @hmot2=@hmot;
					set @t2urcetel=(select top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				set @hmot3=@hmot;
				set @t3h120=(select top 1 HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3p120=(select top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3h210=(select top 1 HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t3p210=(select top 1 PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t3urcetel=(select top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t3='bez UČ';
					set @t3Poch=@pocl;
					set @hmot3=@hmot;
					set @t3urcetel=(select top 1 URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			set @i=@i+1;
	
			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot,@porlak_telata,@hmotOtel;

			set @d=NULL;
		end

		close telata;
		deallocate telata;
		
		
		declare @vekRok as int;
		declare @vekDni as int;


		set @vekRok=(select ROUND(AVG(DATEDIFF(dd, @datumNarKrava, @datotel) / 30.45), 0))
		set @vekDni=(select CONVERT(int, AVG(DATEDIFF(dd, @datumNarKrava, @datotel) % 30.45)) )		

		--set @hmotOtel=(select distinct HMOTOT from plis.dbo.CM_Telata where MATKA=@krava and DATNAR=@Tnar ) 

		set @chovatel=(select top 1 CHOVATEL from plis.dbo.CM_Krava where CISKRAVY=@krava)
		
			set @poc = @poc + 1;				
			/*ak datum predchadzajuceho otelenia a aktualneho otelenia v kurzore nie je null*/
			if (@laktpas is not null and @datotel is not null)
			begin
				/*ak predchadzajuce ani terajsie nie je et alebo ak pohlavie predchadzajuceho otelenia je null a pohlavie aktualneho otelenia je null (berie sa ze to nie je et)*/
				if ((@pohlpas <> 81 and @pohlpas <> 82 and @pocl <> 81 and @pocl <> 82) or @pohlpas is null or @pocl is null)
				begin 
					set @medzi=(DATEDIFF(Day,@laktpas,@datotel));
					set @laktpas=@datotel;
					set @pohlpas = @pocl;
					
				end;
				else begin					
					set @laktpas=@datotel;
					set @pohlpas = @pocl;	
				end;						
			end;			
			else 
				begin
					set	@medzi = null;
					set @laktpas=@datotel;
					set @pohlpas = @pocl;	
				end;			
				
		
			/*
			print @count;
			print @i;						
			print @chovatel;
			print @krava;
			print 'lakt ' +cast(@laktpas as varchar(10));
			print 'mo'+cast(@medzi as varchar(2));		
			print 'pohlavie '+cast(@pohlpas as varchar(2));
			*/
		
		 
		
		 insert into plis.dbo.Cp_Meso_TelataPoLaktacii
		 values(@chovatel,@krava,@porlak_telata,@medzi,@vekRok,@vekDni,@datotel,
		 @hmotOtel,@t1,@t1Poch,@hmot1,@t1h120,@t1p120,@t1h210,@t1p210,@t1urctel,
		 @t2,@t2Poch,@hmot2,@t2h120,@t2p120,@t2h210,@t2p210,@t2urcetel,@t3,@t3Poch,
		 @hmot3,@t3h120,@t3p120,@t3h210,@t3p210,@t3urcetel,@otec,@ouc); 
				
						
						
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
						set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	
		fetch next from datum into @Tnar;				
		end

		 close datum
		deallocate datum;

		-- print N'-------------------------------------'
		 set @count=0;
		 set @laktpas=NULL;
		 set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	set @datumNarKrava=null;
	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END


go

CREATE FUNCTION [PM_DajKvartal] (@mesiac int)  
RETURNS varchar(1)  
AS  
BEGIN  
     IF (@mesiac=12 OR @mesiac=1 OR @mesiac=2) RETURN ('1')
     IF (@mesiac=3 OR @mesiac=4 OR @mesiac=5) RETURN ('2')
     IF (@mesiac=6 OR @mesiac=7 OR @mesiac=8) RETURN ('3')
     IF (@mesiac=9 OR @mesiac=10 OR @mesiac=11) RETURN ('4')
     RETURN ('0');  
END;
go

-- =============================================
-- Author:		David Florek
-- Create date: 13.07.2017
-- Description:	Vrati zoznam masovych chovov s informaciami
-- Edit:			25.07.2017 - Zobraz iba chovy, ktore ma pouzivatel pridelene.
-- =============================================
CREATE PROCEDURE [dbo].[CR_KUMP_MESACNE_VYSLEDKY_ZOZNAM]
	@rok int, 
	@mesiac int,
	@kraj varchar(1),
	@okres varchar(2),
	@login varchar(256) = null
AS
BEGIN
	IF OBJECT_ID('tempdb..#t') IS NOT NULL
		BEGIN
			DROP TABLE #t
		END

	IF OBJECT_ID('tempdb..#maily') IS NOT NULL
		BEGIN
			DROP TABLE #maily
		END

	select distinct IDR, Datum, Email
	into #maily
	from CP_SPRAC_MAIL_LOG l
	where Datum = (select MAX(Datum) from CP_SPRAC_MAIL_LOG where IDR = l.IDR);

	select
		ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV as chov,
		(select count(1) from CR_KUMP_CHK_MES_1 c1 where c1.chovatel = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV and c1.MESIAC = @mesiac and c1.ROK = @rok) as ch1,
		(select count(1) from CR_KUMP_CHMlD_MES_1 c2 where ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = c2.CHOVATEL and c2.MESIAC = @mesiac and c2.ROK = @rok) as ch2,
		(select count(1) from CR_Zoznam_nar_teliat_KUMP_1 c3 where ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = c3.CHOV and c3.MESIAC = @mesiac and c3.ROK = @rok) as ch3,
		MAX(x.IDR) as ID
	into #t
	from NM_CHOVMAS ch
	inner join VstupyPLIS.dbo.CP_SPRAC_CHOVY x on x.CHOV = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV and x.ROK = @rok and x.MESIAC = @mesiac

		where ch.KRAJ = @kraj and ch.OKRES = @okres
		and (@LOGIN is null or
		ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV in
			(select prac.KRAJ + prac.OKRES + prac.PODNIK + prac.CHOV
				from aspnetdb.dbo.aspnet_Users users
				JOIN aspnetdb.dbo.User_PRACKU uprac on uprac.UserId = users.UserId
				JOIN NM_PRACCHOV prac on uprac.IDPRACKU = prac.IDPRACKU
				where users.UserName = @LOGIN))
		and ch.TYPZV = 1 and ZRUS is null
		
		group by ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV;

	select
		ch.KRAJ as KRAJ, ch.OKRES as OKRES, ch.PODNIK as PODNIK, ch.CHOV as CHOV,
		ch.NAZOV, ch.OBEC, o.NAZOV as NAZOVOKRES, @rok as ROK, @mesiac as MESIAC,
		x.KONIEC as generovane,
		t.ch1, t.ch2, t.ch3,
		m.Datum,
		m.Email
	from NC_OKRES o
		inner join NM_CHOVMAS ch on o.KRAJ + o.OKRES = ch.KRAJ + ch.OKRES
		inner join #t t on t.CHOV = ch.KRAJ + ch.okres + ch.PODNIK + ch.CHOV
		inner join VstupyPLIS.dbo.CP_SPRAC_CHOVY x on t.id = x.IDR
		left outer join #maily m on t.ID = m.IDR
	where
		t.ch1 + t.ch2 + t.ch3 > 0
	ORDER by podnik, chov;

	drop table #t;
	drop table #maily;
END
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 27.10.2015
-- Description:	Prepocitanie hodnotu INDLAK na poslednej laktacii danej kravy
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_indlak_krave] 
	@ParCisKravy varchar(14)
AS
BEGIN	
	declare @POCVSETLAK int
	
	declare @TukBl [decimal](9,2)
	declare @PocLakB int  
	declare @PrTB [decimal](9,2)
	declare @PrStTB [decimal](9,2)
	
	declare @AkDat date
	declare @DatTmp date
	declare	@Dat date

	declare @PorLak int
	declare @Chov varchar(9)
	
	set @TukBl = 0
	set @PocLakB = 0
		
	set @AkDat = GETDATE()
	set @DatTmp = (convert(varchar(4),YEAR(@AkDat)) + '-' + convert(varchar(2),month(@AkDat)) + '-01')
	set @Dat = DATEADD(MONTH, -11, @DatTmp)	
	
	set @Chov = (select CHOVATEL from CM_Krava where CISKRAVY = @ParCisKravy)
	set @PorLak = (select max(PORLAK) from CM_Laktacie where CISKRAVY = @ParCisKravy)

	if @PorLak is not null
	begin
		-- naplnenie premennych pre vypocet Indexu laktacie
		select @TukBl = sum(convert(decimal(9,2),ISNULL(TUKNOR, 0))) + sum(convert(decimal(9,2),ISNULL(BIELKNOR, 0))), @PocLakB = COUNT(*) from CM_Laktacie
		where (ZMENA = '30' or ZMENA = '40') and DATEDIFF(day, @Dat, DATUKONL) >= 0 and DATEDIFF(day, DATUKONL, @AkDat) >= 0 
			and CHOVATEL = @Chov
		
		-- priemerny tuk, bielkovina
		set @PrTB = @TukBl / nullif(@PocLakB, 0)
		
		if @PocLakB > 10
			set @PrStTB = @PrTB
		else
			set @PrStTB = 0
			
		-- zapis do CM_Naplak
		update CM_Naplak set
			INDLAK = convert(numeric(7,2), ((TUKNOR + BIELKNOR) / nullif(@PrStTB, 0)) * 100)
			where CISKRAVY = @ParCisKravy and (ZMENA = '30' or ZMENA = '40')	

		update CM_Naplak set
			INDLAK = 0
			where CISKRAVY = @ParCisKravy and not (ZMENA = '30' or ZMENA = '40')

		-- zapis do CM_Laktacie
		update CM_Laktacie set
			INDLAK = convert(numeric(7,2), ((TUKNOR + BIELKNOR) / nullif(@PrStTB, 0)) * 100)
			where CISKRAVY = @ParCisKravy and PORLAK = @PorLak and (ZMENA = '30' or ZMENA = '40')

		update CM_Laktacie set
			INDLAK = 0
			where CISKRAVY = @ParCisKravy and PORLAK = @PorLak and not (ZMENA = '30' or ZMENA = '40')
	end
END

go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	pre upravu a export CP_BLUP_PROOFS do DBF (PLEMENO P)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFS_P]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select tpP from cc_blup_k95) * m305) / (m305 + (select mP from cc_blup_k95)),
			bperc = (100 * b305 - (select bpP from cc_blup_k95) * m305) / (m305 + (select mP from cc_blup_k95))

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT --p.cislo 
		430 as ssmP,
		15 as sstP,
		12 as ssbP,
		0.18 as sstpP,
		0.10 as ssbpP,      
		stdev(m305) as sm0P,
		stdev(m100) as sm1P,
		stdev(m200) as sm2P, 
		stdev(m300) as sm3P, 
		stdev(mp) as sm4P, 
		stdev(t305) as st0P, 
		stdev(t100) as st1P, 
		stdev(t200) as st2P, 
		stdev(t300) as st3P, 
		stdev(tp) as st4P, 
		stdev(b305) as sb0P, 
		stdev(b100) as sb1P, 
		stdev(b200) as sb2P, 
		stdev(b300) as sb3P, 
		stdev(bp) as sb4P, 
		stdev(tperc) as stpercP, 
		stdev(bperc) as sbpercP
		into #temp_stdevS
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 

	-- pocet stad kontrol krav za byka (otca)						 
	select OTEC, count(*) as POCETSTAD into #temp_byci_stada
	from
	(SELECT        OTEC, CISCHOVU
	FROM            CM_ZSTDM AS z 
	group by OTEC, CISCHOVU) as s
	group by OTEC
	
	-- laktacie za byka (otca)
	SELECT         
	k.OUSCIS, count(l.PORLAK) as N, sum(l.MLIEKNOR) as MLIEKO, sum(l.TUKNOR) as TUK, convert(decimal(3, 2), sum(l.TUKNOR)/sum(l.MLIEKNOR)*100) as TUKP, sum(BIELKNOR) as BIELK, convert(decimal(3, 2), sum(BIELKNOR)/sum(l.MLIEKNOR)*100) as BIELKP
	into #temp_byci_laktacie
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
							 CM_Krava AS k ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OUSCIS


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + ' ' + ISNULL(b.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + ' ' + ISNULL(b.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + ' ' + ISNULL(b.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + ' ' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0P from CC_BLUP_K95)) / (select sm0P from #temp_stdevS)) * (select ssmP from #temp_stdevS) AS M305, 
		((p.m305 - (select M0P from CC_BLUP_K95)) / (select sm0P from #temp_stdevS) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1P from CC_BLUP_K95)) / (select sm1P from #temp_stdevS)) * (select ssmP from #temp_stdevS) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0P from CC_BLUP_K95)) / (select st0P from #temp_stdevS)) * (select sstP from #temp_stdevS) AS T305, 
		((p.t305 - (select T0P from CC_BLUP_K95)) / (select st0P from #temp_stdevS) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1P from CC_BLUP_K95)) / (select st1P from #temp_stdevS)) * (select sstP from #temp_stdevS) AS T100, 
		((p.tperc - (select TPERP from CC_BLUP_K95)) / (select stpercP from #temp_stdevS)) * (select sstpP from #temp_stdevS) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0P from CC_BLUP_K95)) / (select sb0P from #temp_stdevS)) * (select ssbP from #temp_stdevS) AS B305, 
		((p.b305 - (select B0P from CC_BLUP_K95)) / (select sb0P from #temp_stdevS) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1P from CC_BLUP_K95)) / (select sb1P from #temp_stdevS)) * (select ssbP from #temp_stdevS) AS B100, 
		((p.bperc - (select BPERP from CC_BLUP_K95)) / (select sbpercP from #temp_stdevS)) * (select ssbpP from #temp_stdevS) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo
							LEFT OUTER JOIN #temp_byci_laktacie as tbl ON tbl.OUSCIS = p.cislo
							LEFT OUTER JOIN #temp_byci_stada as tbs ON tbs.OTEC = p.cislo
	ORDER BY p.cislo

	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMP from CC_BLUP_K95) + t305 * (select EWTP from CC_BLUP_K95) + b305 * (select EWBP from CC_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL	
	FROM #temp_vysledny


END
go


-- =============================================
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch, ktore boli spracovane v danom mesiaci.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_mes_opr1]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

DECLARE @pocetvymaz int
SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
DELETE FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)

DECLARE @idr bigint,@cistelata varchar(14)

	 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
		FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY 
		WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

		--SELECT * FROM #idrtable
		
	DECLARE @counter int
	SET @counter = 0;

		DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(distinct CISTELATA) FROM dbo.CM_Vazenia v LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR)
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)

	
	IF ( SELECT COUNT(distinct v.CISTELATA) FROM dbo.CM_Vazenia v 
							LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) /*(v.SPRACINSERT = sp.IDR ) */
							left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac 
										and t.DOVVYR is null and t.DATVYR is null
										and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
										and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA) 
									 ) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR )
						left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
									and t.DOVVYR is null and t.DATVYR is null
									and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and t.DOVVYR is null and t.DATVYR is null
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

			INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1 then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1 - @h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360 - @h1 ) * 1000 / NULLIF(@dp, 0)), @d1) 
			
			--print '@h1'
			--print @h1 
			--print '@h2n' 
			--print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor
			
			
			--CREATE TABLE CR_TMHD_pripust_mes_Opr
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int,
			--	rokPripus int
			--	)
			
			insert into CR_TMHD_pripust_mes_Opr
				select
					cistelata,
					chov,
					datnar,
					datvaz1 , 
					hmot1 ,
					rp1 ,
					datvaz2, 
					hmot2 ,
					rp2 ,
					dp ,
					DatPrip1 ,
					DatPrip2 ,
					datPr ,
					datPlanPripust ,
					ZnakPripus ,
					MesiacPripusF,
					rok , 
					mesiac ,
					generovane , 
				(case when hmot2 > 360 then DATEPART(MONTH,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360  and DatPrip1 <= DatPrip2 then DATEPART(MONTH,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as mesiacPripus,
				
				(case when hmot2 > 360  then DATEPART(YEAR,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360 and DatPrip1 <= DatPrip2 then DATEPART(YEAR,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as rokPripus
			
				from #abc1 
			
			
end
end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko--- Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 
/*
declare @chov varchar(9) = '207527051',--'1',	--'102501011',
	@datumOd date = '2016-12-01',
	@datumDo date ='2017-01-01',
	@region varchar(2) = null,
	@plem varchar(10) = null
*/
Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
) --ON [PRIMARY]

declare @kravy table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	ciskravy varchar(14),
	PORPREBLAK int
	--[PocZapojL1] int NULL
)

	 
if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.kraj = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.okres = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.podnik = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and lakt.chovatel = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			and MLIEKCEL <>''
	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 	 

 end
 ELSE
 begin 
	insert into @Laktacie
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov

	 FROM NC_OKRES as reg 
	 left outer join dbo.View_CP_LaktaciePreZostavy as Lakt on ((reg.KRAJ + reg.OKRES)= lakt.okres ) --substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	where 
	(reg.REGION=@region or @region is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (PLEM=@plem or @plem is null)
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null AND eko.TYPZV='1'
		and Lakt.MLIEKCEL <>''


	Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' --and k.PORPREBLAK ='1'
		and (reg.REGION=@region or @region is null)
end




declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)
	

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		null as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k
	 where
		k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS
		-----,case when @plem is not null then pl.TYPS end 


--select * from @PocZapojL1 
declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	where k.PORPREBLAK >='2' 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojLCelk
	from @kravy as k 
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	-----[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----	case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
----	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	null as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
					----case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	 ----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	---,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----, l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV



insert dbo.CR_LaktacneZostavy_Opr  ---do rocenky
		/*dbo.CR_LaktacneZostavy_vybery*/
 	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	@plem as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))---- and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null))----and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null))----and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null))----and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null))----and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null))----and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null))----and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null))----and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null))----and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

------ prepocet pre chov
----DECLARE prepocet_cursor CURSOR
----FOR
----SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
----				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----    OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;                    
            
----			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----			EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END



----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor


------SET @counter = 0;

------ prepocet pre podnik
----DECLARE prepocet_cursor CURSOR
----FOR
----SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----   OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;
                    
            
----                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END
----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor

----	   --SET @counter = 0;


DECLARE prepocet_cursor CURSOR	-- prepocet pre okres
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region


END

go

CREATE procedure [dbo].[Rocenka_KO_Tab_MlStr]
    @Zameranie varchar(2),
	@rok varchar(4),
	@StupenKu varchar(1)

	
	
	
	
as
begin

	
	select * ,p.NAZOVD
	from dbo.GP_Rocenka_MlKoStr as z
	left outer join dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
		where  -- z.rok = @rok and 
	 z.Zameranie = @Zameranie and z.Rok= @rok and z.StupenKU = @StupenKu
	 end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.05.2016
-- Description:	spojenie vsetkych oviec - barany, ovce a potomkov do jednej tabulky

--	update 2016.06.06 - potmomkovia s priznakom x v tried => dovod = x  (tj boli vyradene po ohodnoteni?)
--		   2016.06.30 - vsade kde je null v dovode sa nastavi ako 0 -> proste fand miesto null ma 0.. ach - Bahnice a pod maju tiez 0..
--		   2016.11.21 - pre otca aj matku doplnene LUC, PUC (pri starych chyba CEHZ)
-- =============================================
CREATE PROCEDURE [dbo].[S_napln_SP_Ovecky]
AS
BEGIN
		truncate table SP_Ovecky

		INSERT INTO SP_Ovecky
		SELECT barcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'SM_Baran', '2', Plem, Plems, OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, DOVOD, DATVYR, null
		FROM SM_Baran

		INSERT INTO SP_Ovecky
		SELECT bahcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'SM_Bahnica', '1', Plem, Plems,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, DOVOD, DATVYR, null
		FROM SM_Bahnica

		INSERT INTO SP_Ovecky
		SELECT jedcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'SM_Potomok', pohl, Plem, Plems,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, 
		CASE WHEN tried = 'x' then 'x' else null end
		, NULL, null --DOVOD, DATVYR
		FROM SM_Potomok
		where jedcis not in (select jedcis from SP_Ovecky)
		and jedcis <> '00000000'

		-- v Apotomkoch nemaju vsetci definovane id.. ale su v rodicoch...
		INSERT INTO SP_Ovecky
		SELECT jedcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'SM_APotomok', pohl, Plem, Plems,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, 
		CASE WHEN tried = 'x' then 'x' else null end, NULL, null -- DOVOD, DATVYR
		FROM SM_APotomok
		where jedcis not in (select jedcis from SP_Ovecky)
		and jedcis <> '00000000'

		update SP_Ovecky
		set dovod = '0'
		where dovod is null

		update SP_Ovecky
		set otecCis = null
		where otecCis = '00000000'

		update SP_Ovecky
		set matkaCis = null
		where matkaCis  = '00000000'
		--set dovod = null
		--where dovod = '0'
END


/*

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

--		drop table SP_Ovecky

CREATE TABLE [dbo].[SP_Ovecky](
	jedcis [varchar](8) NOT NULL,
	[CEHZ] [varchar](14) NULL,
	[chov] [varchar](9) NULL,
	[LUC] [varchar](5) NULL,
	[PUC] [varchar](5) NULL,
	[datNar] [datetime] NULL,
	[tab] [varchar](14) NULL,
	[pohl] [varchar](1) NULL,
	[plem] [varchar](10) NULL,
	[plems] [varchar](10) NULL,
	[otecCis] [varchar](8) NULL,
	[otec] [varchar](14) NULL,
	[otecLUC] [varchar](5) NULL,
	[otecPUC] [varchar](5) NULL,
	[matkaCis] [varchar](8) NULL,
	[matka] [varchar](14) NULL,
	[matkaLUC] [varchar](5) NULL,
	[matkaPUC] [varchar](5) NULL,
	[dovod] [varchar](1) NULL,
	[datVyr] [datetime] NULL,
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

SET ANSI_PADDING ON

GO

CREATE CLUSTERED INDEX [idx_CEHZ] ON [dbo].[SP_Ovecky]
(
	[CEHZ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

SET ANSI_PADDING ON

GO

CREATE NONCLUSTERED INDEX [idx_cislo] ON [dbo].[SP_Ovecky]
(
	jedcis ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

SET ANSI_PADDING ON

GO

CREATE NONCLUSTERED INDEX [idx_chov] ON [dbo].[SP_Ovecky]
(
	[chov] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

*/


--			exec [S_napln_SP_Ovecky]
go

/****** Object:  UserDefinedFunction [dbo].[string2table]    Script Date: 05. 12. 2017 14:43:46 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO

/*
*	Funkcia vrati zo stringu tabulku na zaklade oddelovnika
*   napr: text = '10/1/5/8', oddelovnik = '/'
*
*/

CREATE function [dbo].[string2table]
(
	@param nvarchar(max), 
	@delimiter char(1)
)
returns @t table (val nvarchar(max), seq int)
as
begin
	set @param += @delimiter

	;with a as
	(
		select cast(1 as bigint) f, charindex(@delimiter, @param) t, 1 seq
		union all
		select t + 1, charindex(@delimiter, @param, t + 1), seq + 1
			from a
			where charindex(@delimiter, @param, t + 1) > 0
	)
	insert @t
	select substring(@param, f, t - f), seq from a
	option (maxrecursion 0)
	return
end


---	select * from [string2table] ('10/1/5/8', '/')
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Pripravene pre rocenku HD Mlieko --Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a sektora
-- =============================================
 CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_zvaz_sektor]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (100) null,
	  [Sektor_kod][varchar](2)null,
	  [Sektor][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null,
		[Sektor_kod][varchar](2)null,
		[Sektor][varchar](100)null		
	)

insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,reg.Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
 left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
		 
 --select * from  @Laktacie order by CHOVATEL

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov,
		d.FSEKTOR as Sektor_kod, 
		e.NAZOV as Sektor
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV)
		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
		
	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1
				
declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD, CharChov, Sektor_kod, Sektor)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null

	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

--select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	----select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
  	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		----select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaCelk order by CHOV

insert dbo.CR_LaktacneZostavy_Opr
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
		(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD)+','+('S'+l.Sektor_kod)as Filter,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD and ZapojL1.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD and ZapojL2.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojLCelk.CharChov_KOD=l.CharChov_KOD and ZapojLCelk.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.CharChov_KOD=l.CharChov_KOD and LAKV1.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.CharChov_KOD=l.CharChov_KOD and LAKV2.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD and LAKVC.Sektor_kod=l.Sektor_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.CharChov_KOD=l.CharChov_KOD and L1.Sektor_kod=l.Sektor_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD and L2.Sektor_kod=l.Sektor_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD and lCelk.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD and NL1.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD and NL2.Sektor_kod=l.Sektor_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD and NlCelk.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD and ZL1.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD and ZL2.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD and ZCelk.Sektor_kod=l.Sektor_kod)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go

-- ==========================================================================================
-- Author:		Roman Rafaj
-- Create date: 20.11.2015
-- Description:	KUHD za chov, vstupny parameter = cislo chovu
-- ==========================================================================================

CREATE PROCEDURE CP_KUHD @chov VARCHAR(9), @rok INT, @mesiac INT -- CP_KUHD 106701011, 2015, 11

AS

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE, @minusrok DATE

-- SET @chov = '106701011'
-- SET @rok = 2015
-- SET @mesiac = 11
SET @aktualny_rok = year(getdate())
SET @start_day = 15
SET @end_day = 14

SELECT @start = DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4))+'-'+CAST(@mesiac AS VARCHAR(2))+'-'+CAST(@start_day AS VARCHAR(2))AS DATE))
SELECT @end = CAST(CAST(@rok AS VARCHAR(4))+'-'+CAST(@mesiac AS VARCHAR(2))+'-'+CAST(@end_day AS VARCHAR(2))AS DATE)

SELECT @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
SELECT @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia

SELECT @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
SELECT @end2 = DATEADD(dd, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)

SELECT @minusrok = DATEADD(mm, -12, @end)


IF OBJECT_ID('tempdb..#kravy') IS NOT NULL DROP TABLE #kravy
IF OBJECT_ID('tempdb..#kx') IS NOT NULL DROP TABLE #kx
IF OBJECT_ID('tempdb..#kx1') IS NOT NULL DROP TABLE #kx1
IF OBJECT_ID('tempdb..#kx2') IS NOT NULL DROP TABLE #kx2

SELECT * 
	INTO #kravy
FROM dbo.View_CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end;


DECLARE @kont_krav INT
DECLARE @kont_krav1laktacia INT
DECLARE @celkom_krav INT
DECLARE @celkom_krav1laktacia INT
DECLARE @datkontr DATE
DECLARE @datkontr1 DATE
DECLARE @datkontr2 DATE
DECLARE @1kontrola INT
DECLARE @2kontrola INT
DECLARE @1kontrola1lak INT
DECLARE @2kontrola1lak INT
DECLARE @mesiac_minus_1 AS INT
DECLARE @mesiac_minus_2 AS INT
DECLARE @rok_minus_1 AS INT
DECLARE @rok_minus_2 AS INT
DECLARE @sucet_mlieka_all AS FLOAT
DECLARE @sucet_mlieka_all_LAK1 AS FLOAT
DECLARE @priemerne_perc_tuku AS FLOAT
DECLARE @priemerne_perc_bielk AS FLOAT
DECLARE @somatika AS INT
DECLARE @pocet_TB_11 AS INT
DECLARE @pocet_TB_1115 AS INT
DECLARE @pocet_TB_15 AS INT
DECLARE @pocet_TB_11_LAK1 AS INT
DECLARE @pocet_TB_1115_LAK1 AS INT
DECLARE @pocet_TB_15_LAK1 AS INT


			-- pocet krav v kontrole
			SELECT @kont_krav = COUNT(CISKRAVY) FROM #kravy

			-- pocet krav v kontrole na 1.laktacii
			SELECT @kont_krav1laktacia = COUNT(CISKRAVY) FROM #kravy WHERE PORPREBLAK = (1)

			-- pocet krav v chove
			SELECT @celkom_krav = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov AND ISNULL(DOVVYR,'') = '' OR DOVVYR = '00'

			--pocet krav na 1 laktacii
			SELECT @celkom_krav1laktacia = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov
					AND (ISNULL(DOVVYR,'') = '' OR DOVVYR = '00')
					AND PORPREBLAK = '1'

			-- vlozim zaznamy zo zvoleneho mesiaca do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			-- vlozim zaznamy zo zvoleneho mesiaca - 1 do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx1
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start1 AND @end1

			-- vlozim zaznamy zo zvoleneho mesiaca - 2 do temper
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx2
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start2 AND @end2

			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom
			SELECT @1kontrola = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi
			SELECT @2kontrola = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL)

			
			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom / 1.laktacia
			SELECT @1kontrola1lak = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL AND a.PORPREBLAK = 1
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi / 1.laktacia
			SELECT @2kontrola1lak = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL) AND a.PORPREBLAK = 1
			
			
			
			DROP TABLE #kx
			DROP TABLE #kx1
			DROP TABLE #kx2

			-- sucet mlieka / vsetky kravy v kg
			SELECT @sucet_mlieka_all = SUM(MLIEKPR) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end

			-- sucet mlieka / vsetky kravy na 1 laktaci v kg
			SELECT @sucet_mlieka_all_LAK1 = SUM(MLIEKPR) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
					AND PORPREBLAK = 1

			-- priemerne percento tuku
			SELECT @priemerne_perc_tuku = AVG(PERCTUKU) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end


			-- priemerne percento bielkovin
			SELECT @priemerne_perc_bielk = AVG(PERCBIELK) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end

			-- priemerne percento bielkovin
			SELECT @somatika = AVG(BUNECELEM) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end

			SELECT @pocet_TB_11 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	
					AND (PERCTUKU/PERCBIELK) < 1.1

			SELECT @pocet_TB_1115 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
					AND (PERCTUKU/PERCBIELK BETWEEN 1.1 AND 1.5)

			SELECT @pocet_TB_15 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	
					AND (PERCTUKU/PERCBIELK > 1.5)

			SELECT @pocet_TB_11_LAK1 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end		
					AND (PERCTUKU/PERCBIELK) < 1.1 AND PORPREBLAK = 1

			SELECT @pocet_TB_1115_LAK1 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	
					AND (PERCTUKU/PERCBIELK BETWEEN 1.1 AND 1.5) AND PORPREBLAK = 1

			SELECT @pocet_TB_15_LAK1 = COUNT(CISKRAVY) FROM dbo.View_CM_Kontroly
					WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	
					AND (PERCTUKU/PERCBIELK > 1.5) AND PORPREBLAK = 1


			---------------------------------------------------------------------------
			DECLARE @lak_al INT
            DECLARE @lak_100 INT
			DECLARE @lak_200 INT
			DECLARE @lak_uz INT

			DECLARE @lak_100LAK1 INT
			DECLARE @lak_200LAK1 INT
			DECLARE @lak_uzLAK1 INT
			
			DECLARE @mlieko100 INT
			DECLARE @tuk100kg FLOAT
			DECLARE @tuk100per FLOAT
			DECLARE @bie100kg FLOAT
			DECLARE @bie100per FLOAT
			DECLARE @tb100kg FLOAT
			DECLARE @tb100per FLOAT

			DECLARE @mlieko200 INT
			DECLARE @tuk200kg FLOAT
			DECLARE @tuk200per FLOAT
			DECLARE @bie200kg FLOAT
			DECLARE @bie200per FLOAT
			DECLARE @tb200kg FLOAT
			DECLARE @tb200per FLOAT

			DECLARE @mliekouz INT
			DECLARE @tukuzkg FLOAT
			DECLARE @tukuzper FLOAT
			DECLARE @bieuzkg FLOAT
			DECLARE @bieuzper FLOAT
			DECLARE @tbuzkg FLOAT
			DECLARE @tbuzper FLOAT

			DECLARE @mlieko100LAK1 INT
			DECLARE @tuk100kgLAK1 FLOAT
			DECLARE @tuk100perLAK1 FLOAT
			DECLARE @bie100kgLAK1 FLOAT
			DECLARE @bie100perLAK1 FLOAT
			DECLARE @tb100kgLAK1 FLOAT
			DECLARE @tb100perLAK1 FLOAT

			DECLARE @mlieko200LAK1 INT
			DECLARE @tuk200kgLAK1 FLOAT
			DECLARE @tuk200perLAK1 FLOAT
			DECLARE @bie200kgLAK1 FLOAT
			DECLARE @bie200perLAK1 FLOAT
			DECLARE @tb200kgLAK1 FLOAT
			DECLARE @tb200perLAK1 FLOAT

			DECLARE @mliekouzLAK1 INT
			DECLARE @tukuzkgLAK1 FLOAT
			DECLARE @tukuzperLAK1 FLOAT
			DECLARE @bieuzkgLAK1 FLOAT
			DECLARE @bieuzperLAK1 FLOAT
			DECLARE @tbuzkgLAK1 FLOAT
			DECLARE @tbuzperLAK1 FLOAT


			
			SELECT @lak_al = COUNT(N.ciskravy)
						FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)
			
			--100 denne pocet
			SELECT
			@lak_100 = COUNT(N.ciskravy),
			@mlieko100 = AVG(N.MLIEKNOR),
			@tuk100kg = ROUND(AVG(N.TUKNOR),0),
			@tuk100per = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@bie100kg = ROUND(AVG(N.BIELK100),0),
			@bie100per = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@tb100kg = @tuk100kg + @bie100kg,
			@tb100per = ROUND(@tuk100per + @bie100per,2)
			
			FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)
			WHERE K.LAKTDNI BETWEEN 100 AND 199

			
			--200 denne pocet
			SELECT
			@lak_200 = COUNT(N.ciskravy),
			@mlieko200 = AVG(N.MLIEKNOR),
			@tuk200kg = ROUND(AVG(N.TUKNOR),0),
			@tuk200per = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@bie200kg = ROUND(AVG(N.BIELK200),0),
			@bie200per = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@tb200kg = @tuk200kg + @bie200kg,
			@tb200per = ROUND(@tuk200per + @bie200per,2)
			
			FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)
			WHERE K.LAKTDNI BETWEEN 200 AND 304

			-- vsetky kravy s uzavretou laktaciou
			SELECT
			@lak_uz = COUNT(N.ciskravy),
			@mliekouz = AVG(L.MLIEKNOR),
			@tukuzkg = ROUND(AVG(L.TUKNOR),0),
			@tukuzper = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@bieuzkg = ROUND(AVG(L.BIELKNOR),0),
			@bieuzper = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@tbuzkg = @tukuzkg + @bieuzkg,
			@tbuzper = ROUND(@tukuzper + @bieuzper,2)

			FROM dbo.CM_Laktacie L
					
					LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
					
					WHERE L.CHOVATEL = @chov
					AND (L.DATUKONL > @minusrok OR L.DATUKNORL > @minusrok) AND (L.ZMENA = 30 OR L.ZMENA = 40)

			
						
			--100 denne pocet / 1 laktacia
			SELECT
			@lak_100LAK1 = COUNT(N.ciskravy),
			@mlieko100LAK1 = AVG(N.MLIEKNOR),
			@tuk100kgLAK1 = ROUND(AVG(N.TUKNOR),0),
			@tuk100perLAK1 = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@bie100kgLAK1 = ROUND(AVG(N.BIELK100),0),
			@bie100perLAK1 = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@tb100kgLAK1 = @tuk100kgLAK1 + @bie100kgLAK1,
			@tb100perLAK1 = ROUND(@tuk100perLAK1 + @bie100perLAK1,2)
			
			FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)
			WHERE K.LAKTDNI BETWEEN 100 AND 199 AND N.PORLAK = 1

			
			--200 denne pocet / 1 laktacia
			SELECT
			@lak_200LAK1 = COUNT(N.ciskravy),
			@mlieko200LAK1 = AVG(N.MLIEKNOR),
			@tuk200kgLAK1 = ROUND(AVG(N.TUKNOR),0),
			@tuk200perLAK1 = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@bie200kgLAK1 = ROUND(AVG(N.BIELK200),0),
			@bie200perLAK1 = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@tb200kgLAK1 = @tuk200kgLAK1 + @bie200kgLAK1,
			@tb200perLAK1 = ROUND(@tuk200perLAK1 + @bie200perLAK1,2)
			
			FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)
			WHERE K.LAKTDNI BETWEEN 200 AND 304 AND N.PORLAK = 1

			-- vsetky kravy s uzavretou laktaciou / 1.laktacia
			SELECT
			@lak_uzLAK1 = COUNT(N.ciskravy),
			@mliekouzLAK1 = AVG(L.MLIEKNOR),
			@tukuzkgLAK1 = ROUND(AVG(L.TUKNOR),0),
			@tukuzperLAK1 = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@bieuzkgLAK1 = ROUND(AVG(L.BIELKNOR),0),
			@bieuzperLAK1 = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@tbuzkgLAK1 = @tukuzkgLAK1 + @bieuzkgLAK1,
			@tbuzperLAK1 = ROUND(@tukuzperLAK1 + @bieuzperLAK1,2)

			FROM dbo.CM_Laktacie L
					
					LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
					
					WHERE L.CHOVATEL = @chov
					AND (L.DATUKONL > @minusrok OR L.DATUKNORL > @minusrok) AND (L.ZMENA = 30 OR L.ZMENA = 40)
					AND N.PORLAK = 1

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - pocty (dni)
			----------------------------------------------------------------------------------------------


DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @counter INT;
DECLARE @count INT;
DECLARE @poradie INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @inseminacia1 INT;
DECLARE @inseminacia2 INT;
DECLARE @inseminacia3 INT;
DECLARE @inseminacia4 INT;
DECLARE @telnych_krav INT;

--SET @chov = '108506091'

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie
    SELECT  @inseminacia1 = COUNT(@krava)
    FROM    #inseminacie
    SELECT  @inseminacia2 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie = 2
    SELECT  @inseminacia3 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie = 3
    SELECT  @inseminacia4 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie >= 4
    SELECT  @telnych_krav = COUNT(@krava)
    FROM    #inseminacie
    WHERE   ivyse = 9


    --SELECT  @inseminacia1 AS inseminacia1 ,
    --        @inseminacia2 AS inseminacia2 ,
    --        @inseminacia3 AS inseminacia3 ,
    --        @inseminacia4 AS inseminacia4 ,
    --        @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / interval
			----------------------------------------------------------------------------------------------


DECLARE @odatum DATE;
DECLARE @rozdiel_dni INT;
DECLARE @interval INT;
DECLARE @servisperioda INT;


--SET @chov = '106701011'

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99

            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @interval = AVG(rozdiel_dni) FROM #interval

END

CLOSE interval_cursor
DEALLOCATE interval_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / servisperioda
			----------------------------------------------------------------------------------------------
	

BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

			--
					
            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum
                    AND IPOIN <> 99
				

            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END

	SELECT  @servisperioda = AVG(rozdiel_dni) FROM #servisperioda

END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor




SELECT	@start AS zaciatok,
		@end AS koniec,
		@start1 AS start1,
		@end1 AS end1,
		@start2 AS start2,
		@end2 AS end2,
		@minusrok AS minusrok,
		@kont_krav,
		@kont_krav1laktacia,
		@celkom_krav,
		@celkom_krav1laktacia,
		@1kontrola AS kontrola11,
		@1kontrola + @2kontrola AS kontrola12,
		@1kontrola1lak AS kontrolalak1,
		@1kontrola + @2kontrola1lak AS kontrola12lak1,


		ROUND(@sucet_mlieka_all,1) AS sucet_mlieka,
		ROUND(@sucet_mlieka_all_LAK1,1) AS sucet_mlieka_LAK1,
		ROUND(@sucet_mlieka_all / @celkom_krav ,1)  AS priemer_na_zapojenu,
		ROUND(@sucet_mlieka_all / @kont_krav, 1)  AS priemer_na_kontrolovanu,
		ROUND(@priemerne_perc_tuku, 2) AS priemerne_perc_tuku,						-- priemerne percento tuku pre vsetky zapojene kravy 
		@somatika AS priemerny_pocet_bun_elem,										-- somatika
		@pocet_TB_11 AS pocet_TB_do11,
		@pocet_TB_15 AS pocet_TB_nad115,
		@pocet_TB_1115 AS pocet_TB_1115,
		@pocet_TB_11_LAK1 AS pocet_TB_do11_LAK1,
		@pocet_TB_15_LAK1 AS pocet_TB_nad115_LAK1,
		@pocet_TB_1115_LAK1 AS pocet_TB_1115_LAK1,

		@lak_al AS vsetky,
		@lak_100 AS lak100,
		@mlieko100 AS mlieko100,
		@lak_200 AS lak200,
		@lak_uz AS lakuz,

		@mlieko100 AS mlieko100,
		@tuk100kg AS tuk100kg,
		@tuk100per AS tuk100per,
		@bie100kg AS bie100kg,
		@bie100per AS bie100per,
		@tb100kg AS tb100kg,
		@tb100per AS tb100per,

		@mlieko200 AS mlieko200,
		@tuk200kg AS tuk200kg,
		@tuk200per AS tuk200per,
		@bie200kg AS bie200kg,
		@bie200per AS bie200per,
		@tb200kg AS tb200kg,
		@tb200per AS tb200per,

		@lak_uz AS lakuz,
		@mliekouz AS mliekouz,
		@tukuzkg AS tukuzkg,
		@tukuzper AS tukuzper,
		@bieuzkg AS bieuzkg,
		@bieuzper AS bieuzper,
		@tbuzkg AS tbuzkg,
		@tbuzper AS tbuzper,


		@lak_100LAK1 AS lak_100LAK1,
		@mlieko100LAK1 AS mlieko100LAK1,
		@tuk100kgLAK1 AS tuk100kgLAK1,
		@tuk100perLAK1 AS tuk100perLAK1,
		@bie100kgLAK1 AS bie100kgLAK1,
		@bie100perLAK1 AS bie100perLAK1,
		@tb100kgLAK1 AS tb100kgLAK1,
		@tb100perLAK1 AS tb100perLAK1,

			
		@lak_200LAK1 AS lak_200LAK1,
		@mlieko200LAK1 AS mlieko200LAK1,
		@tuk200kgLAK1 AS tuk200kgLAK1,
		@tuk200perLAK1 AS tuk200perLAK1,
		@bie200kgLAK1 AS bie200kgLAK1,
		@bie200perLAK1 AS bie200perLAK1,
		@tb200kgLAK1 AS tb200kgLAK1,
		@tb200perLAK1 AS tb200perLAK1,

		@lak_uzLAK1 AS lakuzLAK1,
		@mliekouzLAK1 AS mliekouzLAK1,
		@tukuzkgLAK1 AS tukuzkgLAK1,
		@tukuzperLAK1 AS tukuzperLAK1,
		@bieuzkgLAK1 AS bieuzkgLAK1,
		@bieuzperLAK1 AS bieuzperLAK1,
		@tbuzkgLAK1 AS tbuzkgLAK1,
		@tbuzperLAK1 AS tbuzperLAK1,

		@inseminacia1 AS inseminacia1 ,
        @inseminacia2 AS inseminacia2 ,
        @inseminacia3 AS inseminacia3 ,
        @inseminacia4 AS inseminacia4 ,
        @telnych_krav AS telnych_krav,

		@interval AS interval,
		@servisperioda AS servisperioda


go



-- =============================================
-- Author:		PSSR,š.p.
-- Create date: maj 2018
-- Description:	Priprava Dlhovekost_SIM
-- =============================================
CREATE PROCEDURE [dbo].[C_Dlhovekost_SIM] 
	
AS
BEGIN
  /* vyber krav do docasnej tabulky*/

   select k.ciskravy, k.chovatel as majitel, OUSCIS, ( select kk.OUSCIS from CM_Krava as kk where kk.ciskravy = k.MA ) as OMUSCIS, datnar,
           DATEDIFF(dd, k.DATNAR, l.DATOTEL) as VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak 
   into #temp_tabsim 
   from CM_Krava as k
    left outer join CM_Laktacie as l  on k.ciskravy = l.CISKRAVY and porlak = 1
    where PL1   = 'S' and year(datnar) >= 1995 and year(datnar) <= 2011 and OUSCIS is not null and PRIZNAKKU = 1 and 
          (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) >= 600 and  (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) <= 1200

union 

  (  select kn.ciskravy, kn.chovatel as majitel, kn.OUSCIS, ( select kk.OUSCIS from CM_Krava as kk where kk.ciskravy = kn.MA ) as OMUSCIS, datnar,
           DATEDIFF(dd, kn.DATNAR, n.DATOTEL) as VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak
 
    from CM_Krava as kn
    left outer join CM_Naplak as n  on kn.ciskravy = n.CISKRAVY and n.porlak = 1
	left outer join CM_Laktacie  as l  on n.ciskravy = l.CISKRAVY 

    where PL1   = 'S' and year(datnar) >= 1995 and year(datnar) <= 2011 and OUSCIS is not null and PRIZNAKKU = 1 and 
         (DATEDIFF(dd, kn.DATNAR, n.DATOTEL)) >= 600 and  (DATEDIFF(dd, kn.DATNAR, n.DATOTEL)) <= 1200 
	     and (select COUNT(*) from PLIS.dbo.CM_Laktacie as l  where (l.CISKRAVY = n.CISKRAVY and l.porlak = n.porlak )) < 1)

/* kontrola na dni vyradenia*/

   delete from  #temp_tabsim 
   where  
     CISKRAVY in 
                 (select d.CISKRAVY from  #temp_tabsim as d
                                    inner join CM_Naplak as n on d.ciskravy = n.CISKRAVY and ((datediff (dd, n.DATOTEL, datvyr)) > 1000  or datvyr < n.DATOTEL) and datvyr is not null)  




/* naplnenie tabulky laktacii*/

  truncate table CP_Dlhovek_Lakt_SIM

  insert into CP_Dlhovek_Lakt_SIM

	(ciskravy, stado, porlak, datotel, RokOtel, MesOtel, sezona, sro, LakDniN, Mlieknor
	)

	(select l.ciskravy, substring( chovotel ,1, 8) as stado, porlak, datotel, year (datotel) as  RokOtel,   month (datotel) as MesOtel,
    (case when month (datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end) as sezona, 
    (substring( chovotel ,1, 8) +  convert(varchar, year(datotel), 4 ) +
	convert(varchar, (case when month (datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end), 1)) as sro,
	 nullif (LakDniN, 0),  convert(decimal(7,0), Mlieknor)
	
    from CM_Laktacie as l
	 inner  join #temp_tabsim  as tk on l.CISKRAVY = tk.CISKRAVY
     where porlak  <  7) 

    union

	(select n.ciskravy, substring( n.chovotel ,1, 8) as stado, n.porlak, n.datotel, year (n.datotel) as  RokOtel,   month (n.datotel) as MesOtel,
    (case when month (n.datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (n.datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end) as sezona, 
    (substring( n.chovotel ,1, 8) +  convert(varchar, year(n.datotel), 4 ) +
	convert(varchar, (case when month (n.datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (n.datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end), 1)) as sro,
	nullif (n.LakDniN, 0),  convert(decimal(7,0), n.Mlieknor)
	
    from CM_Naplak as n
		 inner  join #temp_tabsim  as tk on n.CISKRAVY = tk.CISKRAVY
   
  where n.porlak < 7 and 
      n.porlak  not in (select porlak from PLIS.dbo.CM_Laktacie where ciskravy = n.CISKRAVY) 
)
 order by CISKRAVY, PORLAK

/* naplnenie tabulky CP_Dlhovek_Kravy_SIM*/
 
 truncate table CP_Dlhovek_Kravy_SIM
 insert into  CP_Dlhovek_Kravy_SIM
 (ciskravy, majitel, OUSCIS,  OMUSCIS, datnar, VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak, 
  stado1, PORLAK1, DatOtel1, RokOtel1, MesOtel1, Sezona1, sro1, LakDniN1, MliekNor1, stado2, PORLAK2, DatOtel2, RokOtel2, MesOtel2, Sezona2, sro2, LakDniN2, MliekNor2,
  stado3, PORLAK3, DatOtel3, RokOtel3, MesOtel3, Sezona3, sro3, LakDniN3, MliekNor3, stado4, PORLAK4, DatOtel4, RokOtel4, MesOtel4, Sezona4, sro4, LakDniN4, MliekNor4,
  stado5, PORLAK5, DatOtel5, RokOtel5, MesOtel5, Sezona5, sro5, LakDniN5, MliekNor5, stado6, PORLAK6, DatOtel6, RokOtel6, MesOtel6, Sezona6, sro6, LakDniN6, MliekNor6,
  prezit1, prezit2, prezit3, prezit4, PREZIT5)

 select   k.ciskravy , majitel, OUSCIS, OMUSCIS, DATNAR, VEK1OT, DOVVYR, DATVYR, PORPREBLAK, POCVSETLAK,
                    stado1 = l1.STADO, porlak1 = l1.porlak, datotel1 = l1.datotel, rokotel1 = l1.rokotel, mesotel1 = l1.mesotel, sezona1 = l1.sezona, sro1 = l1.sro, lakdnin1 = l1.lakdnin, mlieknor1 = (convert(decimal(7,0),l1.mlieknor)),
                    stado2 = l2.stado, porlak2 = l2.porlak, datotel2 = l2.datotel, rokotel2 = l2.rokotel, mesotel2 = l2.mesotel, sezona2 = l2.sezona, sro2 = l2.sro, lakdnin2 = l2.lakdnin, mlieknor2 = (convert(decimal(7,0),l2.mlieknor)),
					stado3 = l3.stado, porlak3 = l3.porlak, datotel3 = l3.datotel, rokotel3 = l3.rokotel, mesotel3 = l3.mesotel, sezona3 = l3.sezona, sro3 = l3.sro, lakdnin3 = l3.lakdnin, mlieknor3 = (convert(decimal(7,0),l3.mlieknor)), 
					stado4 = l4.stado, porlak4 = l4.porlak, datotel4 = l4.datotel, rokotel4 = l4.rokotel, mesotel4 = l4.mesotel, sezona4 = l4.sezona, sro4 = l4.sro, lakdnin4 = l4.lakdnin, mlieknor4 = (convert(decimal(7,0),l4.mlieknor)), 
					stado5 = l5.stado, porlak5 = l5.porlak, datotel5 = l5.datotel, rokotel5 = l5.rokotel, mesotel5 = l5.mesotel, sezona5 = l5.sezona, sro5 = l5.sro, lakdnin5 = l5.lakdnin, mlieknor5 = (convert(decimal(7,0),l5.mlieknor)), 
					stado6 = l6.stado, porlak6 = l6.porlak, datotel6 = l6.datotel, rokotel6 = l6.rokotel, mesotel6 = l6.mesotel, sezona6 = l6.sezona, sro6 = l6.sro, lakdnin6 = l6.lakdnin, mlieknor6 = (convert(decimal(7,0),l6.mlieknor)) ,
					(case when l2.DATOTEL  is not null then datediff (dd, l1.DATOTEL, l2.DATOTEL) else null end) as prezit1,
					(case when l3.DATOTEL  is not null then datediff (dd, l2.DATOTEL, l3.DATOTEL) else null end) as prezit2,
					(case when l4.DATOTEL  is not null then datediff (dd, l3.DATOTEL, l4.DATOTEL) else null end) as prezit3,
					(case when l5.DATOTEL  is not null then datediff (dd, l4.DATOTEL, l5.DATOTEL) else null end) as prezit4,
					(case when l6.DATOTEL  is not null then datediff (dd, l5.DATOTEL, l6.DATOTEL) else null end) as prezit5
					from #temp_tabsim  as k
left outer join CP_Dlhovek_Lakt_SIM as l1 on k.CISKRAVY = l1.CISKRAVY and l1.porlak = 1 
left outer join CP_Dlhovek_Lakt_SIM as l2 on k.CISKRAVY = l2.CISKRAVY and l2.porlak = 2 
left outer join CP_Dlhovek_Lakt_SIM as l3 on k.CISKRAVY = l3.CISKRAVY and l3.porlak = 3 
left outer join CP_Dlhovek_Lakt_SIM as l4 on k.CISKRAVY = l4.CISKRAVY and l4.porlak = 4 
left outer join CP_Dlhovek_Lakt_SIM as l5 on k.CISKRAVY = l5.CISKRAVY and l5.porlak = 5 
left outer join CP_Dlhovek_Lakt_SIM as l6 on k.CISKRAVY = l6.CISKRAVY and l6.porlak = 6 

order by k.CISKRAVY

/* kontrola krav na MO, datum otelenia a poradie laktacie*/
   delete from  CP_Dlhovek_Kravy_SIM
   
   where  (prezit1  not  between 300 and 700 ) and (PREZIT1 is not null) or 
          (prezit2  not  between 300 and 700 ) and (PREZIT2 is not null) or
		  (prezit3  not  between 300 and 700 ) and (PREZIT3 is not null) or
		  (prezit4  not  between 300 and 700 ) and (PREZIT4 is not null) or
		  (prezit5  not  between 300 and 700 ) and (PREZIT5 is not null) or 
		  (POCVSETLAK = 0  or pocvsetlak is null) and datotel2 is not null or
		  ( datotel2 is not null and datotel1 = datotel2) or
		   ( datotel3 is not null and datotel1 = datotel3) or  
		    ( datotel4 is not null and datotel1 = datotel4) or 
			 ( datotel5 is not null and datotel1 = datotel5) or 
			  ( datotel6 is not null and datotel1 = datotel6) or 
			   ( datotel3 is not null and datotel2 = datotel3) or 
			    ( datotel4 is not null and datotel2 = datotel4) or
				 ( datotel5 is not null and datotel2 = datotel5) or 
				  ( datotel6 is not null and datotel2 = datotel6) or 
				   ( datotel4 is not null and datotel3 = datotel4) or 
				    ( datotel5 is not null and datotel3 = datotel5) or 
					 ( datotel6 is not null and datotel3 = datotel6) or 
					  ( datotel5 is not null and datotel4 = datotel5) or 
					   ( datotel6 is not null and datotel5 = datotel6) or
            (PORLAK2 is null and PORLAK3 is not null) or
			 (PORLAK3 is null and PORLAK4 is not null) or
			  (PORLAK4 is null and PORLAK5 is not null) or
			   (PORLAK5 is null and PORLAK6 is not null) 
/* kontrola tabulky CP_CP_Dlhovek_Lakt_SIM na exist. kravy v CP_Dlhovek_Kravy_SIM*/	
	
  delete  from CP_Dlhovek_Lakt_SIM 
  where CISKRAVY not in (select CISKRAVY from CP_Dlhovek_Kravy_SIM as k where k.ciskravy = ciskravy)
 

/* tabulka rodokmenov pre dlhovekost SIM */

  truncate table CP_Dlhovek_Rodokmene_SIM

  insert into CP_Dlhovek_Rodokmene_SIM
  (O, OO, MO, OOO, MOO, OMO, MMO, OOOO, MOOO, OMOO, MMOO, OOMO, MOMO, OMMO, MMMO)

    select distinct k.ouscis as O, ob.OTUSCIS as OO, ob.MATKA as MO ,
   (select OTUSCIS FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  AS  OOO,
   (select MATKA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA)  AS  MOO,
   (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as OMO,
   (select MA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as MMO,
   (select OTUSCIS  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as OOOO,
   (select MATKA  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as MOOO,
   (select USCISLO FROM CM_BYCI where (select IDOT FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDBYKA) as OMOO,
   (select CISKRAVY FROM CM_Krava where (select IDMA FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDKRAVY) as MMOO,
   (select OTUSCIS from CM_Byci where (select IDOT from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDBYKA )as OOMO,
   (select MATKA from CM_BYCI where (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = USCISLO )as MOMO,
   (select USCISLO FROM CM_BYCI where  (select IDOT FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDBYKA)  as OMMO,
   (select CISKRAVY FROM CM_KRAVA where  (select IDMA FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDKRAVY)  as MMMO
    from CP_Dlhovek_Kravy_SIM as k
    left outer join CM_Byci as ob on k.ouscis = ob.USCISLO
    order by o
	
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.1.2016
-- Description:	Vrati zoznamu teliat KUHD za mesiac (prefix chov)
-- =============================================
CREATE procedure [dbo].[CR_Zoznam_nar_teliat_KUMP]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	
	--@Vytlacil varchar(10) = null
	
as
begin

	select distinct
	  Cislo_Telata,chov, Dat_Nar,Pohlavie,Plemeno,Preukaz,Farba,URtel,HmotNar,PriebPor,Matka,O_Meno,Lin_Reg,Otec,mesiac,rok, generovane	
	  from  plis.dbo.CR_Zoznam_nar_teliat_KUMP_1 as z
	where  
	 z.DOVVYR is null and z.rok = @rok and z.MESIAC = @mesiac and (z.chov like @CHOV+'%' or @CHOV is null) and Cislo_Telata is not null
	order by chov, Cislo_Telata
end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-03-01
-- Description:	Naplnenie tabulky CP_HTD pre zaznamy s SB
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_prip_HTD_SB]
AS
BEGIN
	truncate table CP_HTD_SB

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_h
	from CM_ZSTDM--_new
	where TYP in ('H0', 'H1', 'H2', 'H3') 
	--and (SB is not null and SB > 0) 
	and (((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0) or SB is null)
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD_SB
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'H'
	from  #temp_htd_h

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_s
	from CM_ZSTDM--_new
	where TYP in ('S0', 'S1', 'S2') 
	--and (SB is not null and SB > 0) 
	and (((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0) or SB is null)
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD_SB
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'S'
	from  #temp_htd_s 

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_p
	from CM_ZSTDM--_new
	where TYP in ('P0', 'P1', 'P2') 
	--and (SB is not null and SB > 0) 
	and (((convert(decimal(4,2), case when SB > 0 then log(SB/100, 10)/log(2, 10) + 3 else 0 end)) between 1.0 and 9.0) or SB is null)
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD_SB
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'P'
	from  #temp_htd_p 
END
go

-- =============================================
---- procedura -prepocet procedur CR_ZostavaLaktacie_zvaz, 
								--CR_ZostavaLaktacie_zvaz_sektor,
								--CR_ZostavaLaktacie_zvaz_stupenKU,
								--CR_ZostavaLaktacie_sektor,
								--CR_ZostavaLaktacie_stupenKU 
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy
---- M. Holesova
-- =============================================


CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_stupenKU_sektor_zvaz_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT	(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 
				 OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chov: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  ----EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							  ---- EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							  ----  EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								 ---- EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor




---- -- prepocet pre podnik
----DECLARE prepocet_cursor CURSOR
----FOR
----SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----    OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;
                    
            
----                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
----							  EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
----							   EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
----							    EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
----								  EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END


----	   SET @counter = 0;
----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor


-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor



-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
							EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region


END

go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_TelataPoLaktacie_test]
AS
BEGIN
/****************************************
	using table:CM_Krava,CM_Laktacie,CM_Telata

	changing table: Cp_TelataPoLaktacii

	used for: view of details of Krava
*********************************************/
	TRUNCATE TABLE plis.dbo.Cp_TelataPoLaktacii


	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @help as int;
	set @help=0;
	declare @l as int;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;

	declare kravy cursor for
	select CISKRAVY
	from plis.dbo.CM_Krava
	where PRIZNAKKU=1;

	open kravy ;
	fetch next from kravy into @krava;

	while @@FETCH_STATUS=0
	begin

		declare @i int;
		set @i=0;


		declare lakt cursor for
		select PORLAK
		from plis.dbo.CM_Laktacie
		where CISKRAVY=@krava

		open lakt
		fetch next from lakt into @lakt;

		while @@FETCH_STATUS=0
		begin

		declare telata cursor for 
		select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,l.PORLAK
		from plis.dbo.CM_Krava as k
		
		inner join plis.dbo.CM_Laktacie as l
		on k.CISKRAVY=l.CISKRAVY

		left join plis.dbo.CM_Telata as t
		on k.CISKRAVY=t.MATKA and t.PORLAK=l.PORLAK
		where  k.CISKRAVY=@krava


		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
		set @i=1;
		while @@FETCH_STATUS=0
		begin
		/*print N'Ok'
		print @d;
		print @datotel;
		print N'* * * * * * '*/
		
		print N'help ' + convert(varchar(2),@help);
		print N'krava '+@krava
		
		if(@help=@l)
		begin	
		
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				if(@t is null)
				begin
				set @t1='bez UČ';
				set @t1Poch=@pocl;
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				if(@t is null)
				begin
				set @t2='bez UČ';
				set @t2Poch=@pocl;
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				if(@t is null)
				begin
				set @t3='bez UČ';
				set @t3Poch=@pocl;

				end
			end
			set @i=@i+1;
		 end
		 else 
		 begin
			if(@i=1)
					begin
						print N'Prvo tele'
						set @t1=@t;
						set @t1Poch=@pocl;
						if(@t is null)
						begin
							set @t1='bez UČ';
							set @t1Poch=@pocl;
						end
					end
				--insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l); 
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
						--set @l=null;
				set @i=1;
				set @help=@help+1;
		 end
	--		print N't - '+@t
		--	print @i
		--	print @datotel;
		--	print @d
		--	print N't1 - '+@t1;
		--	print N't2 - '+@t2;
		--	print N't3 - '+@t3;
		--	print @krava;
		--	print @datotel;

		--	

			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			--print N'-------------------------------'
			set @d=NULL;

				
		end
		--set @i=0;
		--set @t1='';
		--set @t2='';
		--set @t3='';
		

		close telata;
		 deallocate telata;

		 insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l); 
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
			fetch next from lakt into @lakt;
		 end
		 close lakt;
		 deallocate lakt;
		 				
		set @help=0;


	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END

go




-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 25.11.2011
-- Description:	zistenie otca telata, spravnosti povodu a doby nosenia prostrednictvom matky a datumu jej otelenia
-- =============================================
CREATE function [dbo].[C_aktual_zisti_povod_telata_foo] 
(
	@ParCisloKravy varchar (14),
	@ParDatumOtelenia date,
	@ParPohlavieTelata varchar (2)
)
returns varchar(20)
AS
BEGIN
	declare @IDAINZabr date 
	declare @OtecLinZabr varchar (3)
	declare @OtecRegZabr varchar (3)
	declare @Spor bit
	declare @DobaNos int
	declare @HranDol int
	declare @HranHor int
	declare @DobaDol int
	declare @DobaHor int
	declare @TypPlem varchar (3),
	@ParIDByka varchar (15),
	@ParPovod varchar (1),
	@ParDobaNos int
	
	set @ParIDByka = null
	set @ParPovod = null
	
	set @Spor = 0
	
	-- najdi inseminaciu - krava je telna
	select @IDAINZabr = IDAIN, @OtecLinZabr = IBLIN, @OtecRegZabr = IBREG from [PLIS].[dbo].[CM_Insvyk] as t1
		where t1.IPLCA = @ParCisloKravy
		and t1.IDAIN = (SELECT MAX(t2.IDAIN)
		FROM [PLIS].[dbo].[CM_Insvyk] as t2
		where t2.IPLCA = t1.IPLCA
		and (t2.IVYSE = '7' or t2.IVYSE = '8' or t2.IVYSE = '9')
		-- pridane kriterium vyberu inseminacii podla datumu (2016-02-25)
		and t2.IDAIN between DATEADD(month, -12, GETDATE()) and DATEADD(month, -6, GETDATE()))


	-- ide o reinseminaciu inym bykom
	if (select COUNT(*) from [PLIS].[dbo].[CM_Insvyk] where ABS(DATEDIFF(DAY, IDAIN, @IDAINZabr)) <= 16 and IPLCA = @ParCisloKravy and
		(@OtecLinZabr != IBLIN or @OtecRegZabr != IBREG)) > 0
	set @Spor = 1
	
	-- doba nosenia
	set @DobaNos = DATEDIFF(day, @IDAINZabr, @ParDatumOtelenia)
	
	-- urcenie dolnej hranice porovnavacieho intervalu
	set @TypPlem = (select TYPPLEM from PLIS.dbo.CM_Krava where CISKRAVY = @ParCisloKravy)
	if @TypPlem in (select '11'
					union select '12'
					union select '51'
					union select '52')
		set @HranDol = 269
	else 
	if @TypPlem in (select '60'
					union select '61'
					union select '15'
					union select '16'
					union select '17'
					union select '18'
					union select '56')
		set @HranDol = 260
	else
		set @HranDol = 263
		
	-- urcenie hornej hranice porovnavacieho intervalu	
	if @TypPlem in (select '11'
					union select '12'
					union select '51'
					union select '52')
		set @HranHor = 310
	else 
	if @TypPlem in (select '60'
					union select '61'
					union select '15'
					union select '16'
					union select '17'
					union select '18'
					union select '56')
		set @HranHor = 303
	else
		set @HranHor = 307

	-- urcenie dolnej doby	
	if @ParPohlavieTelata in (select '11'
								union select '22'
								union select '31'
								union select '32'
								union select '41'
								union select '42'
								union select '26'
								union select '51'
								union select '52'
								union select '62'
								union select '63')
		set @DobaDol = @HranDol - 6
	else
		set @DobaDol = @HranDol				

	-- urcenie hornej doby	
	if @ParPohlavieTelata in (select '11'
								union select '22'
								union select '31'
								union select '32'
								union select '41'
								union select '42'
								union select '26'
								union select '51'
								union select '52'
								union select '62'
								union select '63')
		set @DobaHor = @HranHor - 6
	else
		set @DobaHor = @HranHor			
		
	-- urcenie spravnosti povodu
	if @Spor = 1
		set @ParPovod = '2'
	else if @OtecLinZabr is null and @OtecRegZabr is null
		set @ParPovod = '5'
	else if	@DobaNos < @DobaDol or @DobaNos > @DobaHor
		set @ParPovod = '3'
	else
		set @ParPovod = '1'
	
	-- urcenie ID byka
	set @ParIDByka = (select TOP 1 IDBYKA from PLIS.dbo.CM_Byci where @OtecLinZabr = LIN and @OtecRegZabr = REG)	
	
	set @ParDobaNos = @DobaNos

	return @ParIDByka--+ '-' + @ParPovod
END


go



-- =============================================
-- Author:		PSSR,š.p.
-- Create date: maj 2018
-- Description:	Priprava tabuliek  pre vypocet PH Dlhovekost_HOL
-- =============================================
CREATE  PROCEDURE [dbo].[C_Dlhovekost_HOL] 
	
AS
BEGIN
  

   select k.ciskravy, k.chovatel as majitel, OUSCIS, ( select kk.OUSCIS from CM_Krava as kk where kk.ciskravy = k.MA ) as OMUSCIS, datnar,
           DATEDIFF(dd, k.DATNAR, l.DATOTEL) as VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak 
   into #temp_tabhol 
   from CM_Krava as k
    left outer join CM_Laktacie as l  on k.ciskravy = l.CISKRAVY and porlak = 1
    where PL1 in ( 'H', 'R', 'N', 'M')  and year(datnar) >= 1995 and year(datnar) <= 2011 and OUSCIS is not null and PRIZNAKKU = 1 and 
          (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) >= 600 and  (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) <= 1200

union 

  (  select kn.ciskravy, kn.chovatel as majitel, kn.OUSCIS, ( select kk.OUSCIS from CM_Krava as kk where kk.ciskravy = kn.MA ) as OMUSCIS, datnar,
           DATEDIFF(dd, kn.DATNAR, n.DATOTEL) as VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak
 
    from CM_Krava as kn
    left outer join CM_Naplak as n  on kn.ciskravy = n.CISKRAVY and n.porlak = 1
	left outer join CM_Laktacie  as l  on n.ciskravy = l.CISKRAVY 

    where PL1  in ( 'H', 'R', 'N', 'M')  and year(datnar) >= 1995 and year(datnar) <= 2011 and OUSCIS is not null and PRIZNAKKU = 1 and 
         (DATEDIFF(dd, kn.DATNAR, n.DATOTEL)) >= 600 and  (DATEDIFF(dd, kn.DATNAR, n.DATOTEL)) <= 1200 
	     and (select COUNT(*) from PLIS.dbo.CM_Laktacie as l  where (l.CISKRAVY = n.CISKRAVY and l.porlak = n.porlak )) < 1)

/* kontrola na dni vyradenia*/

   delete from  #temp_tabhol 
   where  
     CISKRAVY in 
                 (select d.CISKRAVY from  #temp_tabhol as d
                                    inner join CM_Naplak as n on d.ciskravy = n.CISKRAVY and ((datediff (dd, n.DATOTEL, datvyr)) > 1000  or datvyr < n.DATOTEL) and datvyr is not null)  




/* naplnenie tabulky laktacii*/
	

  truncate table CP_Dlhovek_Lakt_HOL
  insert into CP_Dlhovek_Lakt_HOL

	(ciskravy, stado, porlak, datotel, RokOtel, MesOtel, sezona, sro, LakDniN, Mlieknor
	)

	(select l.ciskravy, substring( chovotel ,1, 8) as stado, porlak, datotel, year (datotel) as  RokOtel,   month (datotel) as MesOtel,
    (case when month (datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end) as sezona, 
    (substring( chovotel ,1, 8) +  convert(varchar, year(datotel), 4 ) +
	convert(varchar, (case when month (datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end), 1)) as sro,
	nullif (LakDniN, 0), convert(decimal(7,0),Mlieknor)
	
    from CM_Laktacie as l
	 inner  join #temp_tabhol  as tk on l.CISKRAVY = tk.CISKRAVY
     where porlak  <  7) 

    union

	(select n.ciskravy, substring( n.chovotel ,1, 8) as stado, n.porlak, n.datotel, year (n.datotel) as  RokOtel,   month (n.datotel) as MesOtel,
    (case when month (n.datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (n.datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end) as sezona, 
    (substring( n.chovotel ,1, 8) +  convert(varchar, year(n.datotel), 4 ) +
	convert(varchar, (case when month (n.datotel) in ('4','5','6','7','8','9')  then '1' else
    (case when month (n.datotel) in ('10','11','12','1','2','3')  then '2' else 0 end) end), 1)) as sro,
	 nullif (n.LakDniN, 0),  convert(decimal(7,0),n.Mlieknor)
	
    from CM_Naplak as n
		 inner  join #temp_tabhol  as tk on n.CISKRAVY = tk.CISKRAVY
   
where n.porlak < 7 and 
      n.porlak  not in (select porlak from PLIS.dbo.CM_Laktacie where ciskravy = n.CISKRAVY) 
)
 order by CISKRAVY, PORLAK

/* naplnenie tabulky CP_Dlhovek_Kravy_HOL*/
 
 truncate table CP_Dlhovek_Kravy_HOL

 insert into  CP_Dlhovek_Kravy_HOL

 (ciskravy, majitel, OUSCIS,  OMUSCIS, datnar, VEK1OT,  dovvyr, datvyr,  porpreblak,  pocvsetlak, 
  stado1, PORLAK1, DatOtel1, RokOtel1, MesOtel1, Sezona1, sro1, LakDniN1, MliekNor1, stado2, PORLAK2, DatOtel2, RokOtel2, MesOtel2, Sezona2, sro2, LakDniN2, MliekNor2,
  stado3, PORLAK3, DatOtel3, RokOtel3, MesOtel3, Sezona3, sro3, LakDniN3, MliekNor3, stado4, PORLAK4, DatOtel4, RokOtel4, MesOtel4, Sezona4, sro4, LakDniN4, MliekNor4,
  stado5, PORLAK5, DatOtel5, RokOtel5, MesOtel5, Sezona5, sro5, LakDniN5, MliekNor5, stado6, PORLAK6, DatOtel6, RokOtel6, MesOtel6, Sezona6, sro6, LakDniN6, MliekNor6,
  prezit1, prezit2, prezit3, prezit4, PREZIT5)

 select   k.ciskravy , majitel, OUSCIS, OMUSCIS, DATNAR, VEK1OT, DOVVYR, DATVYR, PORPREBLAK, POCVSETLAK,
                    stado1 = l1.STADO, porlak1 = l1.porlak, datotel1 = l1.datotel, rokotel1 = l1.rokotel, mesotel1 = l1.mesotel, sezona1 = l1.sezona, sro1 = l1.sro, lakdnin1 = l1.lakdnin, mlieknor1 = (convert(decimal(7,0),l1.mlieknor)),
                    stado2 = l2.stado, porlak2 = l2.porlak, datotel2 = l2.datotel, rokotel2 = l2.rokotel, mesotel2 = l2.mesotel, sezona2 = l2.sezona, sro2 = l2.sro, lakdnin2 = l2.lakdnin, mlieknor2 = (convert(decimal(7,0),l2.mlieknor)),
					stado3 = l3.stado, porlak3 = l3.porlak, datotel3 = l3.datotel, rokotel3 = l3.rokotel, mesotel3 = l3.mesotel, sezona3 = l3.sezona, sro3 = l3.sro, lakdnin3 = l3.lakdnin, mlieknor3 = (convert(decimal(7,0),l3.mlieknor)), 
					stado4 = l4.stado, porlak4 = l4.porlak, datotel4 = l4.datotel, rokotel4 = l4.rokotel, mesotel4 = l4.mesotel, sezona4 = l4.sezona, sro4 = l4.sro, lakdnin4 = l4.lakdnin, mlieknor4 = (convert(decimal(7,0),l4.mlieknor)), 
					stado5 = l5.stado, porlak5 = l5.porlak, datotel5 = l5.datotel, rokotel5 = l5.rokotel, mesotel5 = l5.mesotel, sezona5 = l5.sezona, sro5 = l5.sro, lakdnin5 = l5.lakdnin, mlieknor5 = (convert(decimal(7,0),l5.mlieknor)), 
					stado6 = l6.stado, porlak6 = l6.porlak, datotel6 = l6.datotel, rokotel6 = l6.rokotel, mesotel6 = l6.mesotel, sezona6 = l6.sezona, sro6 = l6.sro, lakdnin6 = l6.lakdnin, mlieknor6 = (convert(decimal(7,0),l6.mlieknor)) ,
					(case when l2.DATOTEL  is not null then datediff (dd, l1.DATOTEL, l2.DATOTEL) else null end) as prezit1,
					(case when l3.DATOTEL  is not null then datediff (dd, l2.DATOTEL, l3.DATOTEL) else null end) as prezit2,
					(case when l4.DATOTEL  is not null then datediff (dd, l3.DATOTEL, l4.DATOTEL) else null end) as prezit3,
					(case when l5.DATOTEL  is not null then datediff (dd, l4.DATOTEL, l5.DATOTEL) else null end) as prezit4,
					(case when l6.DATOTEL  is not null then datediff (dd, l5.DATOTEL, l6.DATOTEL) else null end) as prezit5

					from #temp_tabhol  as k
left outer join CP_Dlhovek_Lakt_HOL as l1 on k.CISKRAVY = l1.CISKRAVY and l1.porlak = 1 
left outer join CP_Dlhovek_Lakt_HOL as l2 on k.CISKRAVY = l2.CISKRAVY and l2.porlak = 2 
left outer join CP_Dlhovek_Lakt_HOL as l3 on k.CISKRAVY = l3.CISKRAVY and l3.porlak = 3 
left outer join CP_Dlhovek_Lakt_HOL as l4 on k.CISKRAVY = l4.CISKRAVY and l4.porlak = 4 
left outer join CP_Dlhovek_Lakt_HOL as l5 on k.CISKRAVY = l5.CISKRAVY and l5.porlak = 5 
left outer join CP_Dlhovek_Lakt_HOL as l6 on k.CISKRAVY = l6.CISKRAVY and l6.porlak = 6 

order by k.CISKRAVY
/* kontrola krav na MO, datum otelenia a poradie laktacie*/

   delete from  CP_Dlhovek_Kravy_HOL
   
   where  (prezit1  not  between 300 and 700 ) and (PREZIT1 is not null) or 
          (prezit2  not  between 300 and 700 ) and (PREZIT2 is not null) or
		  (prezit3  not  between 300 and 700 ) and (PREZIT3 is not null) or
		  (prezit4  not  between 300 and 700 ) and (PREZIT4 is not null) or
		  (prezit5  not  between 300 and 700 ) and (PREZIT5 is not null) or 
		  (POCVSETLAK = 0  or pocvsetlak is null) and datotel2 is not null or
		  ( datotel2 is not null and datotel1 = datotel2) or
		   ( datotel3 is not null and datotel1 = datotel3) or  
		    ( datotel4 is not null and datotel1 = datotel4) or 
			 ( datotel5 is not null and datotel1 = datotel5) or 
			  ( datotel6 is not null and datotel1 = datotel6) or 
			   ( datotel3 is not null and datotel2 = datotel3) or 
			    ( datotel4 is not null and datotel2 = datotel4) or
				 ( datotel5 is not null and datotel2 = datotel5) or 
				  ( datotel6 is not null and datotel2 = datotel6) or 
				   ( datotel4 is not null and datotel3 = datotel4) or 
				    ( datotel5 is not null and datotel3 = datotel5) or 
					 ( datotel6 is not null and datotel3 = datotel6) or 
					  ( datotel5 is not null and datotel4 = datotel5) or 
					   ( datotel6 is not null and datotel5 = datotel6) or
            (PORLAK2 is null and PORLAK3 is not null) or
			 (PORLAK3 is null and PORLAK4 is not null) or
			  (PORLAK4 is null and PORLAK5 is not null) or
			   (PORLAK5 is null and PORLAK6 is not null) 

/* kontrola tabulky CP_CP_Dlhovek_Lakt_HOL na exist. kravy v CP_Dlhovek_Kravy_HOL*/	
	
  delete  from CP_Dlhovek_Lakt_HOL 
  where CISKRAVY not in (select CISKRAVY from CP_Dlhovek_Kravy_HOL as k where k.ciskravy = ciskravy)
 

/* tabulka rodokmenov pre dlhovekost HOL */

  truncate table CP_Dlhovek_Rodokmene_HOL

  insert into CP_Dlhovek_Rodokmene_HOL
  (O, OO, MO, OOO, MOO, OMO, MMO, OOOO, MOOO, OMOO, MMOO, OOMO, MOMO, OMMO, MMMO)

    select distinct k.ouscis as O, ob.OTUSCIS as OO, ob.MATKA as MO ,
   (select OTUSCIS FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  AS  OOO,
   (select MATKA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA)  AS  MOO,
   (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as OMO,
   (select MA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) as MMO,
   (select OTUSCIS  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as OOOO,
   (select MATKA  FROM CM_BYCI as ooob where  (select IDOT FROM CM_BYCI as oob  where ob.IDOT = OOB.IDBYKA)  = IDBYKA) as MOOO,
   (select USCISLO FROM CM_BYCI where (select IDOT FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDBYKA) as OMOO,
   (select CISKRAVY FROM CM_Krava where (select IDMA FROM CM_Krava  where  (select IDMA FROM CM_BYCI as oob  where ob.IDOT = oob.IDBYKA) = IDKRAVY) = IDKRAVY) as MMOO,
   (select OTUSCIS from CM_Byci where (select IDOT from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDBYKA )as OOMO,
   (select MATKA from CM_BYCI where (select OUSCIS from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = USCISLO )as MOMO,
   (select USCISLO FROM CM_BYCI where  (select IDOT FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDBYKA)  as OMMO,
   (select CISKRAVY FROM CM_KRAVA where  (select IDMA FROM CM_KRAVA where  (select IDMA from CM_Krava as k  where  ob.MATKA = k.CISKRAVY) = IDKRAVY) = IDKRAVY)  as MMMO

    from CP_Dlhovek_Kravy_HOL as k
    left outer join CM_Byci as ob on k.ouscis = ob.USCISLO
    order by o
	
END
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_KodSomBunky]
	
AS
BEGIN
declare @od int;
declare @do int;
declare @kod as int;

declare hranica cursor for
select OdSB,DoSB,KodIntSB
from plis.dbo.CC_SBintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update plis.dbo.CM_Kontroly
	set KodIntSB=@kod
	where BUNECELEM between @od and @do
	fetch next from hranica into @od,@do,@kod
	
	update plis.dbo.CM_ArchKon
	set KodIntSB=@kod
	where BUNECELEM between @od and @do
	fetch next from hranica into @od,@do,@kod
end	

close hranica
deallocate hranica


declare hranica cursor for
select OdLD,DoLD,KodIntLD
from plis.dbo.CC_LDintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update plis.dbo.CM_Kontroly
	set KodIntSB=@kod
	where LAKTDNI between @od and @do
	fetch next from hranica into @od,@do,@kod
	
	update plis.dbo.CM_ArchKon
	set KodIntSB=@kod
	where LAKTDNI between @od and @do
	fetch next from hranica into @od,@do,@kod
end	

close hranica
deallocate hranica

update plis.dbo.CM_ArchKon
	set JeKontroly=1
	where plis.dbo.CM_ArchKon.CISKRAVY in (select a.CISKRAVY
											from plis.dbo.CM_ArchKon as a
											inner join plis.dbo.CM_Kontroly as k
											on a.CISKRAVY=k.CISKRAVY and a.DATKONTR=k.DATKONTR)
and plis.dbo.CM_ArchKon.DATKONTR in (select a.DATKONTR
											from plis.dbo.CM_ArchKon as a
											inner join plis.dbo.CM_Kontroly as k
											on a.CISKRAVY=k.CISKRAVY and a.DATKONTR=k.DATKONTR)

	update plis.dbo.CM_ArchKon
	set JeKontroly=0
	where plis.dbo.CM_ArchKon.CISKRAVY NOT in (select a.CISKRAVY
											from plis.dbo.CM_ArchKon as a
											inner join plis.dbo.CM_Kontroly as k
											on a.CISKRAVY=k.CISKRAVY and a.DATKONTR=k.DATKONTR)
and plis.dbo.CM_ArchKon.DATKONTR NOT in (select a.DATKONTR
											from plis.dbo.CM_ArchKon as a
											inner join plis.dbo.CM_Kontroly as k
											on a.CISKRAVY=k.CISKRAVY and a.DATKONTR=k.DATKONTR)

END
go

-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 26.09.2012
-- Description:	Prepocet laktacie
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_laktacie] 
	@V_CISKRAVY varchar(14), 
	@V_DATOTEL date, 	
	@V_PORPREBLAK varchar(2),
	@N_DATUKNORL date output, 
	@N_LAKTDNI [decimal](6,2) output,
	@N_LAKDNIN [decimal](6,2) output,
	@N_MLIEKCEL [decimal](7,2) output,
	@N_MLIEKNOR [decimal](7,2) output,
	@N_TUKCEL [decimal](6,2) output,
	@N_TUKNOR [decimal](6,2) output,
	@N_BIELKCEL [decimal](6,2) output,
	@N_BIELKNOR [decimal](6,2) output,
	@N_LAKTOZAC [decimal](6,2) output,
	@N_LAKTOZAN [decimal](6,2) output,
	@N_INDPER [decimal](6,2) output,
	@N_BEZT [int] output,
	@N_MLIEKO100 [decimal](7,2) output,
	@N_TUK100 [decimal](6,2) output,
	@N_BIELK100 [decimal](6,2) output,
	@N_LAKT100 [decimal](6,2) output,
	@N_MLIEKO200 [decimal](7,2) output,
	@N_TUK200 [decimal](6,2) output,
	@N_BIELK200 [decimal](6,2) output,
    @N_LAKT200 [decimal](6,2) output,
	@NenormalLakt bit output,
	@KR_DATPOSKONT [date] output,
	@IDParChov bigint = NULL	    
	
AS
BEGIN
    -- premenne pre vetu do kontrol (CM_Kontroly) + premenne dat z vety kontrol (pre update) + premenne kontrol pre vypocet vety do Naplaku
	declare	@K_T_CISKRAVY varchar (14)
	declare	@K_T_DATKONTR date 
	declare	@K_T_ZNKONTR varchar (1) 
	declare	@K_T_DENDOBA varchar (1) 
	declare	@K_T_INTERVAL varchar (1) 
	declare	@K_T_CISCHOVU varchar (9) 
	declare	@K_T_SKUPINA varchar (2) 
	declare	@K_T_PREPOCET bit  
	declare	@K_T_MLIEKO [decimal](7,2)  
	declare	@K_T_MLIEKPR [decimal](7,2)  
	declare	@K_T_PRT [decimal](6,2)  
	declare	@K_T_PERCTUKU [decimal](5,2)  
	declare	@K_T_PERCBIELK [decimal](5,2)  
	declare	@K_T_PERCLAKTOZ [decimal](5,2)  
	declare	@K_T_BUNECELEM [decimal](7,2)  
	declare	@K_T_LAKTDNI [decimal](6,2)  
	declare	@K_T_PORPREBLAK varchar (2) 
	
	declare @timer datetime = GETDATE()	
	
    -- premenne pre vetu do naplaku (CM_Krava)
	declare @KR_DOVVYR varchar(2)
	declare @KR_DATVYR date
	--declare @KR_DATPOSKONT date
    declare @KR_POCVSETLAK int

	declare @counter1 int
	declare @KonPred date
	declare @KonZa date
	declare @PomMliekPr [decimal](7,2)
	declare @MlPred [decimal](7,2)
	declare @MlZa [decimal](7,2)
	declare @TukPred [decimal](6,2)
	declare @TukZa [decimal](6,2)
	declare @BielPred [decimal](6,2)
	declare @BielZa [decimal](6,2)
	declare @LaktPred [decimal](6,2)
	declare @LaktZa [decimal](6,2)
	declare @PrepocetDatum date
	declare @PrepocetMlieko [decimal](7,1)
	declare @PrepocetTuk [decimal](6,2)
	declare @PrepocetBielk [decimal](6,2)
	declare @PrepocetLakt [decimal](6,2)	
	declare @PocetPrepoctov int	
	declare @PrvyTuk bit
	declare @BezT int
	declare @DvojDopocet int
	declare @K_T_LAKTDNI_Pred [decimal](6,2)
	declare @K_T_LAKTDNI_Po [decimal](6,2)
	declare @KontrVypMl [decimal](7,2)
	declare @PRAC_INTERVAL [decimal](7,2)
	declare @SUM_INTERVAL [decimal](7,2)	
	declare @POROV_DATKONTR date
	declare @POROV_LAKTDNI [decimal](7,2)
	declare	@ChovPred varchar(9)
	declare @SkupinaPred varchar(2)
	
	declare	@CISKRAVY varchar (14)
	declare	@DATKONTR date 
	declare	@ZNKONTR varchar (1) 
	declare	@DENDOBA varchar (1) 
	declare	@INTERVAL varchar (1) 
	declare	@CISCHOVU varchar (9) 
	declare	@SKUPINA varchar (2) 
	declare	@PREPOCET bit  
	declare	@MLIEKO [decimal](7,2) 
	declare	@MLIEKPR [decimal](7,2)
	declare	@PRT [decimal](6,2)  
	declare	@PERCTUKU [decimal](5,2)
	declare	@PERCBIELK [decimal](5,2)
	declare	@PERCLAKTOZ [decimal](5,2)
	declare	@BUNECELEM [decimal](7,2)
	declare	@LAKTDNI [decimal](6,2)
	declare	@PORPREBLAK varchar (2)
	declare	@LAKTDNI_PRED [decimal](6,2)

	declare @D [decimal](6,2)
	declare @DPr [decimal](6,2)
	declare @X [decimal](6,2) 
	declare @D1 [decimal](6,2)
	declare @D2 [decimal](6,2)

	declare @PocKonNulTukPrep int
	declare @PredBolPrepocet int

	declare @pocet int = 0
	declare @spocet int
		
	-- vynulovanie premennych
	set @NenormalLakt = 0	
			
	----------------------------------	
	-- DOPOCET T,B,L U KONTROL

	-- vyber rozborov pre danu kravu a laktaciu a ich zotriedenie podla datumu vzostupne
	DECLARE db_cursor CURSOR FOR  
	select DATKONTR, MLIEKPR, PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, LAKTDNI from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK
	--and LAKTDNI <= 305 
	order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @LAKTDNI   

	set @PrvyTuk = 0
	set @KonPred = '1900-01-01'
	set @KonZa = '1900-01-02'
	set @BezT = 0
	set @DvojDopocet = 0
	set @PocKonNulTukPrep = 0
	
	print 'C_aktual_prep_laktacie ' + @V_CISKRAVY

	-- prva kontrola do 68 dni od otelenia, inac nenormalna laktacia
	if DATEDIFF(day, @V_DATOTEL, @DATKONTR) > 68
	--if DATEDIFF(day, @V_DATOTEL, @DATKONTR) > 60 -- oprava 20160518
		set @NenormalLakt = 1	
	
	WHILE @@FETCH_STATUS = 0 
	begin
		if (@PRT > 0)
			if (@LAKTDNI < 305)
				set @BezT = @BezT + 1	
		-- kontrola ma tuk
		if (@PRT < 2)
		begin
			-- nastav prvu kontrolu s nenulovym tukom
			if @KonZa > @KonPred
			begin
				select @KonPred=@DATKONTR, @MlPred=@MLIEKPR, @TukPred=@PERCTUKU, @BielPred=@PERCBIELK, @LaktPred=@PERCLAKTOZ						
				-- prve kontroly s nulovym tukom
				if @PrvyTuk = 0
					set @PrvyTuk = 1
			end else
			-- nastav druhu kontrolu s nenulovym tukom				
			begin
				select @KonZa=@DATKONTR, @MlZa=@MLIEKPR, @TukZa=@PERCTUKU, @BielZa=@PERCBIELK, @LaktZa=@PERCLAKTOZ							
				if @PocKonNulTukPrep > 0
				begin
					-- dopocty pre kontroly bez tuku medzi kontrolami s tukom
					set @D = DATEDIFF(day, @KonPred, @KonZa) 
					set @DPr = @D / 2
					set @X = @D - @DPR * 2
					set @D1 = @DPr + @X
					set @D2 = @DPr
					update CM_Kontroly set
						PERCTUKU = convert(numeric(5,2), nullif((isnull(@TukPred, 0)*@D1 + isnull(@TukZa, 0)*@D2)/(@D1 + @D2), 0)),
						PERCBIELK = convert(numeric(5,2), nullif((isnull(@BielPred, 0)*@D1 + isnull(@BielZa, 0)*@D2)/(@D1 + @D2), 0)),
						PERCLAKTOZ = convert(numeric(5,2), nullif((isnull(@LaktPred, 0)*@D1 + isnull(@LaktZa, 0)*@D2)/(@D1 + @D2), 0)),
						PRT = 1, SPRACUPDATE = @IDParChov
					where CISKRAVY = @V_CISKRAVY and DATKONTR > @KonPred and DATKONTR < @KonZa and PORPREBLAK = @V_PORPREBLAK
						and LAKTDNI < 305 -- prepocitavame len to 305 dni 
					set @PocKonNulTukPrep = 0	
				end
				
				set @KonPred = @KonZa
				--set @MlPred = @MlZa
				set @TukPred = @TukZa
				set @BielPred = @BielZa
				set @LaktPred = @LaktZa
			end
		end else
		-- kontrola nema hlaseny tuk
		begin		
			if (@PrvyTuk = 1)
				set @PocKonNulTukPrep = @PocKonNulTukPrep + 1				
		end
	
		FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @LAKTDNI 		
	end
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 	
	
	update CM_Kontroly set PRT = 2
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK and PRT > 1

	-- vacsi pocet dopoctov - nenormalna laktacia
	if @BezT > 5 
		set @NenormalLakt = 1		
	
---------------------------	
	-- PREPOCET KONTROL
	set @pocet = 0
	set @spocet = (select count(*) from CM_Kontroly where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK)

	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne
	DECLARE db_cursor CURSOR FOR  
	select DATKONTR, MLIEKPR, PERCTUKU, PERCBIELK, PERCLAKTOZ, CISCHOVU, SKUPINA from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @CISCHOVU, @SKUPINA

	WHILE @@FETCH_STATUS = 0 
	begin
	    set @pocet = @pocet + 1
		-- kontrola pred		
		select @ChovPred=@CISCHOVU, @SkupinaPred=@SKUPINA, @KonPred=@DATKONTR, @MlPred=@MLIEKPR, @TukPred=@PERCTUKU, @BielPred=@PERCBIELK, @LaktPred=@PERCLAKTOZ 
		-- kontrola za
		FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @CISCHOVU, @SKUPINA 
		select @KonZa=@DATKONTR, @MlZa=@MLIEKPR, @TukZa=@PERCTUKU, @BielZa=@PERCBIELK, @LaktZa=@PERCLAKTOZ 
		
		-- treba prepocet?
		if DATEDIFF(day, @KonPred, @KonZa) > 50 
		begin
			if (@pocet = @spocet - 1)
			begin

				set @D = DATEDIFF(day, @KonPred, @KonZa) 
				set @DPr = @D / 2
				set @X = @D - @DPR * 2
				set @D1 = @DPr + @X
				set @D2 = @DPr

				set @PrepocetMlieko = nullif((@MlPred*@D1 + @MlZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetTuk = nullif((@TukPred*@D1 + @TukZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetBielk =  nullif((@BielPred*@D1 + @BielZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetLakt = nullif((@LaktPred*@D1 + @LaktZa*@D2)/(@D1 + @D2), 0)


				-- treba prave 1 prepocet?
				if DATEDIFF(day, @KonPred, @KonZa) <= 75
				begin
					-- vypocet poloziek pre prepocet
					set @PrepocetDatum = DATEADD(day, CEILING(DATEDIFF(day, @KonPred, @KonZa)/2.0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST, SPRACINSERT, SPRACUPDATE)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST, @IDParChov, @IDParChov	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa
	

				end else
				-- treba 2 alebo viac prepoctov
				begin
					-- vypocet poloziek pre 1. prepocet
					set @PrepocetDatum = DATEADD(day, ROUND(DATEDIFF(day, @KonPred, @KonZa)/3.0, 0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST, SPRACINSERT, SPRACUPDATE)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST, @IDParChov, @IDParChov	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa					
		
					-- vypocet poloziek pre 2. prepocet
					set @PrepocetDatum = DATEADD(day, ROUND(2*DATEDIFF(day, @KonPred, @KonZa)/3.0, 0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST, SPRACINSERT, SPRACUPDATE)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST, @IDParChov, @IDParChov	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa		

				end		
			end	
		end
	end
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 			

-----------------------------------------------		
	-- TVORBA vety do NAPLAK-u (CM_Naplak)
	
	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne	
	DECLARE db_cursor CURSOR FOR  
	select CISKRAVY, DATKONTR, ZNKONTR, DENDOBA, INTERVAL, CISCHOVU, SKUPINA, PREPOCET, MLIEKO, MLIEKPR, 
		   PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, BUNECELEM, LAKTDNI, PORPREBLAK from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @CISKRAVY, @DATKONTR, @ZNKONTR, @DENDOBA, @INTERVAL, @CISCHOVU, @SKUPINA, @PREPOCET, @MLIEKO, @MLIEKPR, 
								   @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @BUNECELEM, @LAKTDNI, @PORPREBLAK
	
	set @counter1 = (select 1)
	if (@PREPOCET = 1)
	begin
		set @PocetPrepoctov = 1
		set @PredBolPrepocet = 1
	end else
	begin
		set @PredBolPrepocet = 0	
		set @PocetPrepoctov = 0
	end

	-- vynulovanie hodnot
	set @N_MLIEKCEL	= 0
	set @N_BIELKCEL	= 0
	set @N_TUKCEL	= 0
	set @N_LAKTOZAC	= 0		
	set @SUM_INTERVAL = 0		
	
	-- cyklus cez vsetky kontroly danej kravy
	while @@FETCH_STATUS = 0 
	begin
		-- nacitanie kontroly
		select @K_T_CISKRAVY =		@CISKRAVY,
			   @K_T_DATKONTR =		@DATKONTR,
			   @K_T_ZNKONTR =		@ZNKONTR,
			   @K_T_DENDOBA =		@DENDOBA, 
			   @K_T_INTERVAL =		@INTERVAL,
			   @K_T_CISCHOVU =		@CISCHOVU,
			   @K_T_SKUPINA =		@SKUPINA, 
			   @K_T_PREPOCET =		@PREPOCET,
			   @K_T_MLIEKO =		isnull(@MLIEKO,0),
			   @K_T_MLIEKPR =		isnull(@MLIEKPR,0),
			   @K_T_PRT =			@PRT,
			   @K_T_PERCTUKU =		isnull(@PERCTUKU,0),
			   @K_T_PERCBIELK =		isnull(@PERCBIELK,0),
			   @K_T_PERCLAKTOZ =	isnull(@PERCLAKTOZ,0),
			   @K_T_BUNECELEM =		isnull(@BUNECELEM,0), 
			   @K_T_LAKTDNI =		@LAKTDNI,
			   @K_T_PORPREBLAK =	@PORPREBLAK
		
		-- riesenie prvej kontroly
		if @counter1 = 1
			set @K_T_LAKTDNI_Pred = (-@K_T_LAKTDNI)
		else
			set @K_T_LAKTDNI_Pred = @LAKTDNI_PRED
						
			
		set @LAKTDNI_PRED = @LAKTDNI			
		
		FETCH NEXT FROM db_cursor INTO @CISKRAVY, @DATKONTR, @ZNKONTR, @DENDOBA, @INTERVAL, @CISCHOVU, @SKUPINA, @PREPOCET, @MLIEKO, @MLIEKPR, 
										@PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @BUNECELEM, @LAKTDNI, @PORPREBLAK
											
		if (@PREPOCET = 1 and @LAKTDNI < 305)
		begin
			if @PredBolPrepocet = 1
				set @NenormalLakt = 1

			set @PocetPrepoctov =  @PocetPrepoctov + 1
			set @PredBolPrepocet = 1
		end
		else
			set @PredBolPrepocet = 0

		-- riesenie poslednej kontroly
		if @@FETCH_STATUS = -1
		begin
--		    if @O_DATVYR is not null
--			-- bolo pridane pre dopocet v pripade, ze ide o vyradenie z otelenia		    
--			begin
--				set @K_T_LAKTDNI_Po = @K_T_LAKTDNI + (2 * datediff(day, @K_T_DATKONTR, @O_DATVYR))
--				-- nastavenie laktacnych dni v CM_Naplak-u
--				set @N_LAKTDNI = @K_T_LAKTDNI + datediff(day, @K_T_DATKONTR, @O_DATVYR)
--			end else
--			begin
				set @K_T_LAKTDNI_Po = @K_T_LAKTDNI + 30 
				-- nastavenie laktacnych dni v CM_Naplak-u
				set @N_LAKTDNI = @K_T_LAKTDNI + 15
--			end

			-- nastavenie datumu poslednej kontroly v CM_Krava
			set @KR_DATPOSKONT = @K_T_DATKONTR
		end	else
			set @K_T_LAKTDNI_Po = @LAKTDNI
		
		-- vypocet intervalu dni
		set @PRAC_INTERVAL = ROUND((@K_T_LAKTDNI - @K_T_LAKTDNI_Pred)/2.0, 0) + FLOOR((@K_T_LAKTDNI_Po - @K_T_LAKTDNI)/2.0) 
		set @SUM_INTERVAL = @SUM_INTERVAL + @PRAC_INTERVAL
		
		if @counter1 > 1
		begin
			-- nastavenie poloziek vety do CM_Naplak-u
			if @SUM_INTERVAL >= 100 and @SUM_INTERVAL - @PRAC_INTERVAL < 100
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 100))
				set @N_MLIEKO100 = @N_MLIEKCEL + @KontrVypMl
				set @N_TUK100 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELK100 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKT100 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
				set @N_LAKDNIN = 100
				-- pridanie dat zo 100 dnoveho intervalu do normovanych zloziek
				set @N_MLIEKNOR = @N_MLIEKO100
				set @N_TUKNOR =	@N_TUK100
				set @N_BIELKNOR = @N_BIELK100 
				set @N_LAKTOZAN = @N_LAKT100
			end else
			if @SUM_INTERVAL >= 200 and @SUM_INTERVAL - @PRAC_INTERVAL < 200
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 200))
				set @N_MLIEKO200 = @N_MLIEKCEL + @KontrVypMl
				set @N_TUK200 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELK200 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKT200 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
				set @N_LAKDNIN = 200
				-- index perzistencie
				set @N_INDPER = ((@N_MLIEKO200 - @N_MLIEKO100) * 100) / nullif(@N_MLIEKO100, 0)
				-- pridanie dat z 200 dnoveho intervalu do normovanych zloziek
				set @N_MLIEKNOR = @N_MLIEKO200
				set @N_TUKNOR =	@N_TUK200
				set @N_BIELKNOR = @N_BIELK200 
				set @N_LAKTOZAN = @N_LAKT200
			end else
			if @SUM_INTERVAL >= 305 and @SUM_INTERVAL - @PRAC_INTERVAL < 305
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 305))

				-- posun o 15 dni skor
				set @N_DATUKNORL = DATEADD(day, 305, (DATEADD(day, -(@K_T_LAKTDNI + 15), @K_T_DATKONTR)))
				--set @N_DATUKNORL = DATEADD(day, 305, (DATEADD(day, -@K_T_LAKTDNI, @K_T_DATKONTR)))

				set @N_LAKDNIN = 305
				set @N_MLIEKNOR = @N_MLIEKCEL + @KontrVypMl
				set @N_TUKNOR =	@N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELKNOR = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKTOZAN = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
			end
		end

		-- vypocet kumulativnych hodnot
		set @KontrVypMl = @K_T_MLIEKPR * @PRAC_INTERVAL
		
		set @N_MLIEKCEL	= @N_MLIEKCEL + @KontrVypMl
		set @N_BIELKCEL	= @N_BIELKCEL + @K_T_PERCBIELK * @KontrVypMl/100.0
		set @N_TUKCEL	= @N_TUKCEL + @K_T_PERCTUKU * @KontrVypMl/100.0
		set @N_LAKTOZAC	= @N_LAKTOZAC + @K_T_PERCLAKTOZ * @KontrVypMl/100.0	
		
		set @counter1 = @counter1 + 1
	-- koniec cyklu
	end			
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 		
	
	-- vacsi pocet prepoctov - nenormalna laktacia
	if @PocetPrepoctov > 2 
		set @NenormalLakt = 1		

	set @N_BEZT = @BezT
end

go


CREATE PROCEDURE [dbo].[CR_KUHD_mesacne_vyvoj]
		@chov VARCHAR(9) ,
		@rok INT ,
		@mesiac INT--,
		--@dekada INT

AS

SET NOCOUNT ON -- vypnutie message riadkov
SET ANSI_WARNINGS OFF --vyputie message chyb pri agregacii

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE, @minusrok2 DATE, @minusrok3 DATE
declare @chovyPodniku as table
(
	chov varchar(9)	
)
-- Mesacna zostava KUHD mlieko
-- vstupne parametre: chov, rok, mesiac, dekada

-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc


--			1.1: 29.01.2016, doplnenie stlpcov, smerodajnej ochylky podla FANDu
--			1.2: 2.2.2016, doplnenie stlpcov MKO1KSL1, MKO1MLL1, MKO12KSL1, MKO12MLL1
--			1.3: 2.2.2016, doplnenie stlpcov MLIEKOPRIEMERZL1, MLIEKOPRIEMERKL1
--			1.4: 3.3.2016, doplnenie RKO12KS, zmeny vypoctov podla FAND
--			1.5: 22.3.2016, pridany datum kontroly, skupiny
--			1.6: 22.6.2016, opraveny datum DKON300 pre vypocet laktacii
--		    1.7: 19.7.2016, oprava mlieka pre prve a druhe kontroly
--			1.8: 21.7.2016, pridany datum kontroly
--			1.9: 22.7.2016, uprava proc na ratanie prodnikov a chovov
--			2.0: 25.7.2017, zrusenie dekad 
-- VS		update0179.sql
-- Redmine	#1902


BEGIN
				
		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

		insert into @chovyPodniku
		SELECT distinct CHOV FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV LIKE LEFT(@chov,6) + '%' AND ROK = @rok AND MESIAC = @mesiac --AND DEKADA = @dekada

        -- nastavenie startovacieho  a koncoveho datumu podla dekady
		-- ak dekada = 1, startovaci den dekady je 15 (15-30 v mesiaci)
		-- ak dekada = 9, startovaci den dekady je 1 (1-14 v mesiaci)
		
		/*IF (@dekada = 1)
			BEGIN
			SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			END
		ELSE
			BEGIN*/
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
			/*END*/
		
		/*IF (@dekada = 1)
			BEGIN*/
			SET @end = CAST(eomonth(@start) AS date)
			/*END
		ELSE
			BEGIN
			SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
			END*/

        SELECT  @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
        SELECT  @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia
        SELECT  @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
        SELECT  @end2 = DATEADD(dd, -1, @start1)	-- koniec predchadzajuceho obdobia (minus 2 mesiace)
		SELECT	@minusrok = DATEADD(dd, -350, @start)
		SELECT	@minusrok2 = DATEADD(mm, -1, @minusrok) -- pre potreby druhych kontrol
		SELECT	@minusrok3 = DATEADD(mm, -13, @start) -- pre potreby druhych kontrol

		-----------------------------------------------
		-- prve a druhe kontroly
		-----------------------------------------------


DECLARE @DatPKon DATE
DECLARE @DatPRok DATE
DECLARE @startdekady DATE
DECLARE @datum2 DATE

	-- nastavenie pociatocneho datumu podla cisla dekady, mesiaca a roka
	SELECT @startdekady = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/

	-- nastavenie konca mesiaca
	SELECT @end = EOMONTH(@startdekady)
	SET @datum2  = DATEADD(MONTH,-2,@startdekady)

	--DECLARE @den int			
    --SET @startdekady = CAST(CAST(DATEPART(year, @DatPKon) AS varchar) + '-' + CAST(DATEPART(month, @DatPKon) AS varchar) + '-' + CAST(@den AS varchar) AS DATETIME)
	
	SELECT @DatPRok = /*CASE @dekada
		--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
		WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
		WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END	*/
	
	-- nastavenie datumu minus rok

	
	SELECT @DatPRok = /*CASE @dekada
	WHEN 1 THEN*/ DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	--WHEN 9 THEN DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	/*WHEN 9 THEN DATEADD(MM, -1, DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE)))
	END*/


	PRINT 'Nastavenie startu dekady v kontrole ' + CONVERT(VARCHAR, @startdekady);
	PRINT "-------------------------------------------------"
	PRINT 'Datum pre vypocet rocneho zoznamu: ' + CONVERT(VARCHAR, @DatPRok);
	PRINT "-------------------------------------------------"
	
	DECLARE @counter INT

			IF OBJECT_ID('tempdb..#kontrola1') IS NOT NULL
			BEGIN
            	DROP TABLE #kontrola1
			END
	
			IF OBJECT_ID('tempdb..#prvekontroly') IS NOT NULL
			BEGIN
            	DROP TABLE #prvekontroly
			END

		SELECT ciskravy, COUNT(ciskravy) AS pocetkontrol, MIN(DATKONTR) AS K1, MAX(DATKONTR) AS KP, AVG(MLIEKPR) as mliekopr
		INTO #prvekontroly FROM dbo.CM_Kontroly WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) GROUP  BY CISKRAVY

		DECLARE @d_pocet1 int
		SELECT @d_pocet1 = COUNT(CISKRAVY) FROM #prvekontroly

		
		PRINT "@chov: " + CONVERT(VARCHAR, @chov)
		PRINT "-------------------------------------------------"
		PRINT 'Do temp tbl #prve kontroly som natiahol ks: ' + CONVERT(VARCHAR, @d_pocet1)
		PRINT "-------------------------------------------------"

		-- debug info -- 
		--SELECT * FROM #prvekontroly WHERE K1=KP ORDER BY KP desc


		-- datum poslednej kontroly
		DECLARE @poslednakontrola DATE, @predposlednakontrola DATE
		DECLARE @RKO1KS INT, @RKO1KSL1 INT, @RKO1ML DECIMAL(7,2), @RKO12ML DECIMAL(7,2), @MKO1ML DECIMAL(7,2), @MKO12ML DECIMAL(7,2)
		DECLARE @MKO1KS INT, @MKO12KS INT, @MKO1KSL1 INT, @MKO1MLL1 DECIMAL(7,2), @MKO12KSL1 INT, @MKO12MLL1 DECIMAL (7,2), @RKO12KS INT
		DECLARE @RKO1MLL1 DECIMAL (4,2), @RKO12MLL1 DECIMAL (4,2), @RKO12KSL1 INT


        SELECT @poslednakontrola = MAX(K1) FROM #prvekontroly
		SELECT TOP 1 @predposlednakontrola = K1 FROM #prvekontroly WHERE K1 < (SELECT  MAX(K1) FROM #prvekontroly) ORDER BY K1 desc         
		


		-- stlpce:
		-- cislo kravy, pocet kontrol, prva kontrola, posledna kontrola

		SELECT pk.*, naplak.PORLAK, naplak.lakdnin, pk.mliekopr AS mlieknor --, kontroly.MLIEKPR AS mliekopr1
		INTO #kontrola1 FROM #prvekontroly pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
		WHERE pk.K1 >= @minusrok AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00'


			--SELECT @MKO1KS = COUNT(*), @MKO1ML = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND KP = @poslednakontrola
			SELECT @MKO1KS = COUNT(*), @MKO1ML = AVG(mliekopr) FROM #kontrola1 WHERE K1 = KP AND K1 BETWEEN @start AND @end

			PRINT "1 kontrola / mesiac: " + CONVERT(varchar, @MKO1KS)
			PRINT "-------------------------------------------------"

	SELECT @MKO1KSL1 = COUNT(*), @MKO1MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND PORLAK = 1 AND KP = @poslednakontrola
	
	PRINT "Posledna kontrola: " + convert(varchar, @poslednakontrola)
	PRINT "-------------------------------------------------"	
	
	--SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 OR pocetkontrol = 2
	SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol <= 2 AND PORLAK = 1 AND KP BETWEEN @start AND @end


		IF OBJECT_ID('tempdb.dbo.#temp_pocet', 'U') IS NOT NULL
		DROP TABLE #temp_pocet;

		SELECT k1.CISKRAVY, COUNT(k1.CISKRAVY) AS pocet INTO #temp_pocet FROM #kontrola1 k1
		LEFT JOIN dbo.CM_Kontroly ko ON (k1.CISKRAVY = ko.CISKRAVY)
		WHERE ko.DATKONTR <= @end GROUP BY k1.CISKRAVY ORDER BY pocet

		SELECT @MKO12KS = COUNT(*), @MKO12ML = AVG(ko.MLIEKPR) FROM #temp_pocet p
		LEFT JOIN dbo.CM_Kontroly ko ON (ko.CISKRAVY = p.CISKRAVY)
		WHERE pocet BETWEEN 1 AND 2 AND ko.DATKONTR BETWEEN @start AND @end

	PRINT "1 a 2 kontrola kus/mesiac: " + convert(varchar, @MKO12KS)
	PRINT "1 a 2 kontrola mlieko/mesiac: " + convert(varchar, @MKO12ML)
	PRINT "-------------------------------------------------"		


BEGIN
		
		IF OBJECT_ID('tempdb..#kontroly01') IS NOT NULL
			BEGIN DROP TABLE #kontroly01 END

	    CREATE TABLE #kontroly01 (ciskravy VARCHAR(14), pocet INT, prva DATE, druha DATE, mliekopr DECIMAL(7,2), mliekopr2 DECIMAL(7,2),  lak INT)
	
		DECLARE @ciskravy VARCHAR(14), @pocet INT, @poradie INT, @prva DATE, @posledna DATE, @druha DATE, @mliekopr DECIMAL(7,2), @mliekopr2 DECIMAL(7,2), @lak INT
			
			SET @counter = 0;
		DECLARE kontroly_cursor CURSOR
		FOR
			SELECT COUNT(CISKRAVY) AS pocet, CISKRAVY  FROM dbo.CM_Kontroly WHERE DATKONTR > @DatPRok AND CISCHOVU IN (SELECT CHOV FROM @chovyPodniku)
				GROUP BY CISKRAVY
	
    OPEN kontroly_cursor
    FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
						SELECT TOP 1 @ciskravy = ko.CISKRAVY, @prva = ko.DATKONTR,  @mliekopr = MLIEKPR, @lak = n.PORLAK  FROM dbo.CM_Kontroly ko
						LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = ko.CISKRAVY)
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND ko.CISKRAVY = @ciskravy ORDER BY ko.DATKONTR ASC

						SELECT @pocet = COUNT(ko.ciskravy) FROM dbo.CM_Kontroly ko
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND ko.CISKRAVY = @ciskravy
						GROUP BY ko.ciskravy

						SELECT TOP 1 @druha = dva.DATKONTR, @mliekopr2 = dva.MLIEKPR  FROM
						(SELECT TOP 2 CISKRAVY, DATKONTR, MLIEKPR FROM dbo.CM_Kontroly
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND CISKRAVY = @ciskravy ORDER BY DATKONTR ASC) AS dva
						ORDER BY datkontr DESC
				
						INSERT  INTO #kontroly01 ( ciskravy, pocet, prva, druha, mliekopr, mliekopr2, lak) VALUES  ( @ciskravy, @pocet, @prva, @druha,  @mliekopr, @mliekopr2, @lak)


            FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

        END
END

CLOSE kontroly_cursor
DEALLOCATE kontroly_cursor

--debug info
SELECT * FROM #kontroly01


SELECT		@RKO1KS = COUNT(ko.ciskravy), @RKO1ML = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL
			--GROUP BY ko.ciskravy

			PRINT "1 kontrola / rok: " + CONVERT(varchar, @RKO1KS)
			PRINT "-------------------------------------------------"

SELECT		@RKO1KSL1 = COUNT(ko.ciskravy), @RKO1MLL1 = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL AND ko.lak = 1

SELECT		@RKO12KS = COUNT(ko.ciskravy), @RKO12ML = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha)

SELECT		@RKO12KSL1 = COUNT(ko.ciskravy), @RKO12MLL1 = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha) AND ko.lak = 1

			



		-----------------------------------------------

		IF OBJECT_ID('tempdb..#kravy') IS NOT NULL DROP TABLE #kravy
		IF OBJECT_ID('tempdb..#kx') IS NOT NULL DROP TABLE #kx
		IF OBJECT_ID('tempdb..#kx1') IS NOT NULL DROP TABLE #kx1
		IF OBJECT_ID('tempdb..#kx2') IS NOT NULL DROP TABLE #kx2

		SELECT ko.* INTO #kravy
		FROM dbo.CM_Kontroly ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		--WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')
		WHERE (ko.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku)) AND (ko.DATKONTR BETWEEN @start AND @end) AND ISNULL(kr.DOVVYR, '') = '' OR kr.DOVVYR = '00'


		DECLARE @POCKRAVZAP INT, @POCKRAVKONT INT, @POCKRAVKONT1LAK INT, @POCKRAVZAP1LAK INT
        DECLARE @POCKRAVKONTR1L INT, @2kontrol INT, @2kontrola INT, @1kontrola1lak INT, @2kontrola1lak INT

			-- pocet krav v kontrole
			SELECT @POCKRAVKONT = COUNT(CISKRAVY) FROM #kravy

			-- pocet krav v kontrole na 1.laktacii
			SELECT @POCKRAVKONT1LAK = COUNT(CISKRAVY) FROM #kravy WHERE PORPREBLAK = (1)

			-- pocet krav v chove
			--SELECT @POCKRAVZAP = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND ISNULL(DOVVYR,'') = '' OR DOVVYR = '00'
			SELECT @POCKRAVZAP = COUNT(k.CISKRAVY) FROM dbo.CM_Krava k
					LEFT JOIN dbo.NM_HDDETAIL a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV) = k.chovatel
			WHERE a.PRIZNAK = '01' AND k.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND ISNULL(k.DOVVYR,'') = '' OR k.DOVVYR = '00'



			--pocet krav na 1 laktacii
			SELECT @POCKRAVZAP1LAK = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL IN (SELECT CHOV FROM @chovyPodniku)
					AND (ISNULL(DOVVYR,'') = '' OR DOVVYR = '00')
					AND PORPREBLAK = '1'

			-- vlozim zaznamy zo zvoleneho mesiaca do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end
			
			-- vlozim zaznamy zo zvoleneho mesiaca - 1 do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx1
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start1 AND @end1

			-- vlozim zaznamy zo zvoleneho mesiaca - 2 do temper
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx2
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start2 AND @end2

			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom
			SELECT @POCKRAVKONTR1L = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi
			SELECT @2kontrola = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL)

			
			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom / 1.laktacia
			SELECT @1kontrola1lak = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL AND a.PORPREBLAK = 1
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi / 1.laktacia
			SELECT @2kontrola1lak = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL) AND a.PORPREBLAK = 1
			
			
			
			DROP TABLE #kx
			DROP TABLE #kx1
			DROP TABLE #kx2

			
			DECLARE @mesiac_minus_1 INT, @mesiac_minus_2 INT, @rok_minus_1 INT
			DECLARE @rok_minus_2 AS INT
			DECLARE @MLIEKOCELKOM	AS DECIMAL(10,2)
			DECLARE @MLIEKOCELKOML1	AS DECIMAL(10,2)
			DECLARE @TUKPER AS DECIMAL (7,2)
			DECLARE @BIELKPER AS DECIMAL(7,2)
			DECLARE @SB AS FLOAT 
			DECLARE @pocet_TB_11 AS INT
			DECLARE @pocet_TB_1115 AS INT
			DECLARE @pocet_TB_15 AS INT
			DECLARE @pocet_TB_11_LAK1 AS INT
			DECLARE @pocet_TB_1115_LAK1 AS INT
			DECLARE @pocet_TB_15_LAK1 AS INT

			-- sucet mlieka / vsetky kravy v kg
			
			SELECT @MLIEKOCELKOM	= SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end
			SELECT @MLIEKOCELKOML1	= SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end	AND PORPREBLAK = 1
	
			-- priemerne percento tuku

			SELECT @TUKPER = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end
			DECLARE @TUKPERL1 DECIMAL(4,2)
			SELECT @TUKPERL1 = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			

			-- priemerne percento bielkovin
			SELECT @BIELKPER = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end
			DECLARE @BIELKPERL1 DECIMAL(4,2)
			SELECT @BIELKPERL1 = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @SB = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end
			DECLARE @SBL1 INT
			SELECT @SBL1 = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			-----------------------------------------------------------------------------------------------------
			-- pomery tuk / bielkovina
			-----------------------------------------------------------------------------------------------------

			DECLARE @POMERTB11V INT
			SELECT	@POMERTB11V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	 AND (k.PERCTUKU / k.PERCBIELK) < 1.1

			DECLARE @POMERTB15V INT
			SELECT @POMERTB15V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) > 1.5

			DECLARE @POMERTBOKV INT
			SELECT @POMERTBOKV = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) BETWEEN 1.1 AND 1.5

			DECLARE @POMERTB11VL1 INT
			SELECT @POMERTB11VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) < 1.1 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1

			DECLARE @POMERTB15VL1 INT
			SELECT @POMERTB15VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) > 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
			
			DECLARE @POMERTBOKVL1 INT
			SELECT @POMERTBOKVL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) BETWEEN 1.1 AND 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
							

		----------------------------------------------------------------------------------------------------------------------------


			DECLARE @lak_al INT
            DECLARE @POCKRAV100 INT
			DECLARE @POCKRAV200 INT
			DECLARE @POCKRAV300 INT

			DECLARE @POCKRAV100L1 INT
			DECLARE @POCKRAV200L1 INT
			DECLARE @POCKRAV300L1 INT
			
			DECLARE @MLIEKO100 INT
			DECLARE @TUK100 FLOAT
			DECLARE @TUK100PER FLOAT
			DECLARE @BIELK100 FLOAT
			DECLARE @BIELK100PER FLOAT
			DECLARE @TB100 FLOAT
			DECLARE @TB100PER FLOAT

			DECLARE @MLIEKO200 INT
			DECLARE @TUK200 FLOAT
			DECLARE @TUK200PER FLOAT
			DECLARE @BIELK200 FLOAT
			DECLARE @BIELK200PER FLOAT
			DECLARE @TB200 FLOAT
			DECLARE @TB200PER FLOAT

			DECLARE @MLIEKO300 INT
			DECLARE @TUK300 FLOAT
			DECLARE @TUK300PER FLOAT
			DECLARE @BIELK300 FLOAT
			DECLARE @BIELK300PER FLOAT
			DECLARE @TB300 FLOAT
			DECLARE @TB300PER FLOAT

			DECLARE @MLIEKO100L1 INT
			DECLARE @TUK100L1 FLOAT
			DECLARE @TUK100PERL1 FLOAT
			DECLARE @BIELK100L1 FLOAT
			DECLARE @BIELK100PERL1 FLOAT
			DECLARE @TB100L1 FLOAT
			DECLARE @TB100L1PER FLOAT

			DECLARE @MLIEKO200L1 INT
			DECLARE @TUK200L1 FLOAT
			DECLARE @TUK200PERL1 FLOAT
			DECLARE @BIELK200L1 FLOAT
			DECLARE @BIELK200PERL1 FLOAT
			DECLARE @TB200L1 FLOAT
			DECLARE @TB200PERL1 FLOAT

			DECLARE @MLIEKO300L1 INT
			DECLARE @TUK300L1 FLOAT
			DECLARE @TUK300PERL1 FLOAT
			DECLARE @BIELK300L1 FLOAT
			DECLARE @BIELK300PERL1 FLOAT
			DECLARE @TB300L1 FLOAT
			DECLARE @TB300PERL1 FLOAT


			
			SELECT @lak_al = COUNT(N.ciskravy)
						FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)

			SELECT DISTINCT ciskravy, DATKONTR INTO #kontrola FROM dbo.CM_Kontroly WHERE CISCHOVU IN (SELECT CHOV FROM @chovyPodniku) AND DATKONTR BETWEEN @start AND @end

			DECLARE @datum_kontroly DATE
			SELECT @datum_kontroly = MAX(DATKONTR) FROM #kontrola
			
			--100 denne pocet
			SELECT
			@POCKRAV100 = COUNT(N.ciskravy),
			@MLIEKO100 = AVG(N.MLIEKNOR),
			@TUK100 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PER = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PER = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100 = @TUK100 + @BIELK100,
			@TB100PER = ROUND(@TUK100PER + @BIELK100PER,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND n.LAKDNIN = '100' AND krava.DOVVYR IS NULL

			PRINT "Pocet 100 dni laktacie: " + CONVERT(varchar, @POCKRAV100)
			PRINT "-------------------------------------------------"


			--200 denne pocet
			SELECT
			@POCKRAV200 = COUNT(N.ciskravy),
			@MLIEKO200 = AVG(N.MLIEKNOR),
			@TUK200 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PER = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PER = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200 = @TUK200 + @BIELK200,
			@TB200PER = ROUND(@TUK200PER + @BIELK200PER,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND n.LAKDNIN = '200' AND krava.DOVVYR IS NULL

			PRINT "Pocet 200 dni laktacie: " + CONVERT(varchar, @POCKRAV200)
			PRINT "-------------------------------------------------"

			----------------------------------------------------------------------------------
			DECLARE @dkon300 DATE, @d_start INT 
			/*IF (@dekada = 1) BEGIN SET @d_start =  '15' END	ELSE  BEGIN*/ SET @d_start = '1' /*END*/
			--SET @dkon300 = DATEADD(mm, 0, CAST(CAST(@rok-1 AS VARCHAR(4)) + '-' + CAST(@mesiac-1 AS VARCHAR(2)) + '-' + CAST(@d_start AS VARCHAR(2)) AS DATE))
			SET @dkon300 = DATEADD(mm, -1, CAST(CAST(@rok-1 AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST(@d_start AS VARCHAR(2)) AS DATE))
			-- 28.7.2016 - miesto premennej @dkon300 je pouzita @DatProk
			----------------------------------------------------------------------------------

			PRINT "Vypocet obdobia pre uzavrete laktacie: " + CONVERT(varchar, @dkon300)
			PRINT "-------------------------------------------------"

			-- vsetky kravy s uzavretou laktaciou
			SELECT
			@POCKRAV300 = COUNT(L.CISKRAVY),
			@MLIEKO300 = AVG(L.MLIEKNOR),
			@TUK300 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PER = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PER = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300 = @TUK300 + @BIELK300,
			@TB300PER = ROUND(@TUK300PER + @BIELK300PER,2)

			FROM dbo.CM_Laktacie L
			WHERE  L.chovatel IN (SELECT CHOV FROM @chovyPodniku) and (zmena = '30' or zmena = '40' )  and ((DatUkonl > @DatPRok and Datuknorl is null )  or   DatUknorl > @DatPRok)
			--GROUP by L.CHOVATEL

			PRINT "Pocet uzavretych laktacii: " + CONVERT(varchar, @POCKRAV300)
			PRINT "-------------------------------------------------"

			--100 denne pocet / 1 laktacia
			SELECT
			@POCKRAV100L1 = COUNT(N.ciskravy),
			@MLIEKO100L1 = AVG(N.MLIEKNOR),
			@TUK100L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PERL1 = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100L1 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PERL1 = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100L1 = @TUK100L1 + @BIELK100L1,
			@TB100L1PER = ROUND(@TUK100PERL1 + @BIELK100PERL1,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND n.LAKDNIN = '100' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			PRINT "Pocet 100 L1 dni laktacie: " + CONVERT(varchar, @POCKRAV100L1)
			PRINT "-------------------------------------------------"

			
			--200 denne pocet / 1 laktacia
			SELECT
			@POCKRAV200L1 = COUNT(N.ciskravy),
			@MLIEKO200L1 = AVG(N.MLIEKNOR),
			@TUK200L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PERL1 = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200L1 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PERL1 = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200L1 = @TUK200L1 + @BIELK200L1,
			@TB200PERL1 = ROUND(@TUK200PERL1 + @BIELK200PERL1,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND n.LAKDNIN = '200' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			PRINT "Pocet 200 L1 dni laktacie: " + CONVERT(varchar, @POCKRAV200L1)
			PRINT "-------------------------------------------------"

			-- vsetky kravy s uzavretou laktaciou / 1.laktacia


			SELECT
			@POCKRAV300L1 = COUNT(N.ciskravy),
			@MLIEKO300L1 = AVG(L.MLIEKNOR),
			@TUK300L1 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PERL1 = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300L1 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PERL1 = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300L1 = @TUK300L1 + @BIELK300L1,
			@TB300PERL1 = ROUND(@TUK300PERL1 + @BIELK300PERL1,2)
			FROM dbo.CM_Laktacie L
		
			LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
			WHERE  L.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND L.PORLAK = 1 AND (L.ZMENA = '30' or L.ZMENA = '40' )  and ((L.DatUkonl > @dkon300 and L.Datuknorl is null )  or   L.DatUknorl > @dkon300)

			PRINT "Pocet uzavretych L1: " + CONVERT(varchar, @POCKRAV300L1)
			PRINT "-------------------------------------------------"
	

			-----------------------------------------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - pocty (dni)
			----------------------------------------------------------------------------------------------


DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @count INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @POCINS1 INT;
DECLARE @POCINS2 INT;
DECLARE @POCINS3 INT;
DECLARE @POCINS4VIAC INT;
DECLARE @POCTELNYCH INT;


BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                LEFT JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                LEFT JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku)
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie

    SELECT  @POCINS1 = COUNT(@krava) FROM   #inseminacie
    SELECT  @POCINS2 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 2
	SELECT  @POCINS3 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 3
    SELECT  @POCINS4VIAC = COUNT(@krava) FROM   #inseminacie WHERE   poradie >= 4
    SELECT  @POCTELNYCH = COUNT(@krava) FROM   #inseminacie WHERE   ivyse = 9


    --SELECT  @inseminacia1 AS inseminacia1 ,  @inseminacia2 AS inseminacia2 ,  @inseminacia3 AS inseminacia3 , @inseminacia4 AS inseminacia4 , @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / interval
			----------------------------------------------------------------------------------------------


DECLARE @odatum DATE;
DECLARE @rozdiel_dni INT;
DECLARE @POCINTR INT;
DECLARE @POCSERV INT;


BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku)
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99

            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / servisperioda
			----------------------------------------------------------------------------------------------
	
	PRINT "debug info"

BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )
	

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku)
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
			
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	
	OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum


    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
						
            SELECT  
                    @pdatum = MAX(IDAIN) ,
					@ivyse = MAX(IVYSE),
				--	@ivyse = CONVERT(INT, CASE WHEN IsNumeric(CONVERT(VARCHAR(12), MAX(IVYSE))) = 1 then CONVERT(VARCHAR(12), MAX(IVYSE)) else 0 End),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)

            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
			
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
			
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum
        END

		
		SELECT  @POCSERV = AVG(rozdiel_dni) FROM #servisperioda

		END

		CLOSE servisperioda_cursor
		DEALLOCATE servisperioda_cursor
		PRINT 'servisperioda'

		----------------------------------------------------------------------------------------------
		-- Medziobdobie
		----------------------------------------------------------------------------------------------


		PRINT 'zaciatok medziobdobie'
		DECLARE @POCMEDZ INT
		SELECT @POCMEDZ =  AVG(n.MEDZIOBD) FROM dbo.CM_Krava k 
				LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY) WHERE k.CHOVATEL IN (SELECT CHOV FROM @chovyPodniku) AND (n.MEDZIOBD IS NOT NULL) AND ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00'
		PRINT 'koniec medziobdobie - hodnota je:' + CONVERT(VARCHAR, @POCMEDZ)

		-- SKUP
		DECLARE @SKUP VARCHAR(2)
		SELECT @SKUP = SKUPINA FROM dbo.CM_Krava WHERE CISKRAVY = @ciskravy

	
		DELETE FROM dbo.CR_KUHD_MesUzavCH_1x WHERE   chovatel LIKE @chov AND mesiac = @mesiac AND rok = @rok --AND dekada = @dekada
		PRINT 'vymazal som stare data:'
		PRINT 'chovatel: '+ CONVERT(VARCHAR, @chov);
		PRINT 'rok: '+ CONVERT(VARCHAR, @rok);
		PRINT 'mesiac: '+ CONVERT(VARCHAR, @mesiac);
		--PRINT 'dekada: '+ CONVERT(VARCHAR, @dekada);
		INSERT  INTO dbo.CR_KUHD_MesUzavCH_1x

			(	chovatel,
                mesiac,
                rok ,
				--dekada,	
				RKO1ML,				-- rok - 1.kontroly - mlieko
				RKO1KS,				-- rok - 1.kontroly - kusy
				RKO12ML,			-- rok - 1. - 2. kontroly - mlieko
				RKO12KS,			-- rok - 1. - 2. kontroly - kusy
				RKO1KSL1,			-- rok - 1.kontroly - mlieko - 1.laktacia
				RKO1MLL1,			-- rok - 1.kontroly - kusy - 1.laktacia
				RKO12KSL1,			-- rok - 1. - 2. kontroly - kusy - 1.laktacia
				RKO12MLL1,			-- rok - 1. - 2. kontroly - mlieko - 1.laktacia
				MKO1KS,				-- mesiac - 1.kontroly - kusy
				MKO1ML,				-- mesiac - 1.kontroly - mlieko
				MKO12KS,			-- mesiac - 1.- 2. kontroly - kusy
				MKO12ML,			-- mesiac - 1.- 2. kontroly - mlieko
				POCKRAVZAP,
				POCKRAVKONT,
				POCKRAVKONTL1,
				POCKRAVZAPL1,
				MLIEKOCELKOM,	
				MLIEKOCELKOML1,	
				MLIEKOPRIEMERZ,	
				MLIEKOPRIEMERK,	
				TUKPER,			
				TUKPERL1,		
				BIELKPER,		
				BIELKPERL1,
				SB,
				SBL1,
				POMERTB11V,
				POMERTB15V,
				POMERTBOKV,
				POMERTB11VL1,
				POMERTB15VL1,
				POMERTBOKVL1,
				POCKRAV100,
				MLIEKO100,
				TUK100,
				TUK100PER,
				BIELK100,
				BIELK100PER,
				TB100,
				TB100PER,
				POCKRAV200,
				MLIEKO200,
				TUK200,
				TUK200PER,
				BIELK200,
				BIELK200PER,
				TB200,
				TB200PER,
				POCKRAV300,
				MLIEKO300,
				TUK300,
				TUK300PER,
				BIELK300,
				BIELK300PER,
				TB300,
				TB300PER,
				POCKRAV100L1,
				MLIEKO100L1,
				TUK100L1,
				TUK100PERL1,
				BIELK100L1,
				BIELK100PERL1,
				TB100L1,
				TB100L1PER,
				POCKRAV200L1,
				MLIEKO200L1,
				TUK200L1,
				TUK200PERL1,
				BIELK200L1,
				BIELK200PERL1,
				TB200L1,
				TB200PERL1,
				POCKARV300L1,
				MLIEKO300L1,
				TUK300L1,
				TUK300PERL1,
				BIELK300L1,
				BIELK300PERL1,
				TB300L1,
				TB300PERL1,
				POCINS1,
				POCINS2,
				POCINS3,
				POCINS4VIAC,
				POCTELNYCH,
				POCINTR,
				POCSERV,
				POCMEDZ,
				MKO1KSL1,
				MKO1MLL1,
				MKO12KSL1,
				MKO12MLL1,
				MLIEKOPRIEMERZL1,	
				MLIEKOPRIEMERKL1,
				generovane,
				datkon,
				SKUP,
				datum_kontroly

			)
			VALUES

			(	@chov ,
                @mesiac ,
                @rok,
				--@dekada,
				@RKO1ML,
				@RKO1KS,
				ROUND(((@RKO12ML+@RKO1ML)/2),1), --@RKO12ML,
				@RKO1KS + @RKO12KS,
				@RKO1KSL1,
				@RKO1MLL1,
				@RKO1KSL1 + @RKO12KSL1,
				ROUND(((@RKO12MLL1+@RKO1MLL1)/2),1), --@RKO12MLL1,
				@MKO1KS,
				@MKO1ML,
				@MKO12KS,
				@MKO12ML,
				@POCKRAVZAP,
				@POCKRAVKONT,
				@POCKRAVKONT1LAK,
				@POCKRAVZAP1LAK,
				ROUND(@MLIEKOCELKOM,1),
				ROUND(@MLIEKOCELKOML1,1),
				ROUND(@MLIEKOCELKOM / @POCKRAVZAP,2),
				ROUND(@MLIEKOCELKOM / @POCKRAVKONT,2),
				ROUND(@TUKPER, 2),
				ROUND(@TUKPERL1, 2),
				ROUND(@BIELKPER, 2),
				ROUND(@BIELKPERL1, 2),
				@SB,
				@SBL1,
				@POMERTB11V,
				@POMERTB15V,
				@POMERTBOKV,
				@POMERTB11VL1,
				@POMERTB15VL1,
				@POMERTBOKVL1,
				@POCKRAV100,
				@MLIEKO100,
				@TUK100,
				@TUK100PER,
				@BIELK100,
				@BIELK100PER,
				@TB100,
				@TB100PER,
				@POCKRAV200,
				@MLIEKO200,
				@TUK200,
				@TUK200PER,
				@BIELK200,
				@BIELK200PER,
				@TB200,
				@TB200PER,
				@POCKRAV300,
				@MLIEKO300,
				@TUK300,
				@TUK300PER,
				@BIELK300,
				@BIELK300PER,
				@TB300,
				@TB300PER,
				@POCKRAV100L1,
				@MLIEKO100L1,
				@TUK100L1,
				@TUK100PERL1,
				@BIELK100L1,
				@BIELK100PERL1,
				@TB100L1,
				@TB100L1PER,
				@POCKRAV200L1,
				@MLIEKO200L1,
				@TUK200L1,
				@TUK200PERL1,
				@BIELK200L1,
				@BIELK200PERL1,
				@TB200L1,
				@TB200PERL1,
				@POCKRAV300L1,
				@MLIEKO300L1,
				@TUK300L1,
				@TUK300PERL1,
				@BIELK300L1,
				@BIELK300PERL1,
				@TB300L1,
				@TB300PERL1,
				@POCINS1,
				@POCINS2,
				@POCINS3,
				@POCINS4VIAC,
				@POCTELNYCH,
				@POCINTR,
				@POCSERV,
				@POCMEDZ,
				@MKO1KSL1,
				@MKO1MLL1,
				@MKO12KSL1,
				@MKO12MLL1,
				ROUND(@MLIEKOCELKOML1 / @POCKRAVZAP1LAK,2),
				ROUND(@MLIEKOCELKOML1 / @POCKRAVKONT1LAK,2),
				GETDATE(),
				@DatPKon,
				@SKUP,
				@datum_kontroly
			)


		EXEC CR_KUHD_selekcne @chov, @rok, @mesiac--, @dekada

END


go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16,10,2014>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PotPlem]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  p.plem, 
REPLACE (SUBSTRING(p.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(p.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(p.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(p.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) THEN 1 ELSE 0 END) AS pocmkoz, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) THEN 1 ELSE 0 END) AS pocmcap
FROM dbo.GM_POTOMOK AS p LEFT OUTER JOIN
     dbo.View_GP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar 
LEFT OUTER JOIN GC_SubLin s ON p.cislin=s.cislin     
LEFT OUTER JOIN plis.dbo.SC_PodKrvi k
ON SUBSTRING(p.plem,9,2) = k.CISKOD
WHERE p.krokr+p.podnik+p.stado = @chovatel
GROUP BY p.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go

-- =============================================
-- Author:		David Florek
-- Create date:	24.08.2017
-- Description:	Vrati data pre detail riadku faktury
-- Edit:			28.08.2017 Upraveny select aby nasiel jeden riadok pri potvrdenych / zrusenych
-- =============================================
CREATE PROCEDURE [dbo].[EC_RiadokFakturyDetail]
	@id int
AS
BEGIN
	select TOP 1
		fak.IDR as IDR,
		case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
			 when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '21'
			 when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
			 when fak.Typ = 'OV' or fak.Typ = 'KY' then (select s.STRED from NM_PracSPU s, NM_KONTAKT k where s.IDPAM = k.IDPAM and k.ID = d.IDKON)
		else p.REGION end as REGION,
		fak.Faktura as FAKTURA,
		fak.Datum as DATUM,
		p.NAZOV as ZAKAZNIK,
		p.ICO as ICO,
		fak.CHOV as CHOV,
		zoo.MENO as MENZOO,
		kon.MENO as MENKON,
		d.IDZOO as CISZOO,
		d.IDKON as CISKON,
		prod.SKUPINA as NAZPROD,
		fak.Produkt as KODPROD,
		prod.MERJED as MERJEDN,
		fak.Pocet as POCJEDN,
		fak.Suma as JEDNCENA,
		fak.Priplatok as PRIPLATOK,
		fak.PriplatokPerc as PRIPLATOKPERC,
		fak.SumaCelkom as CENASPOL,
		fak.Typ as TYP,
		fak.Potvrdeny as POTVRDENA,
		fak.Potvrdil as POTVRDIL,
		histPotvrdil.DatumPotvrdenia as DATUMPOTVRDENIA,
		fak.Zruseny as ZRUSENA,
		fak.Zrusil as ZRUSIL,
		fak.Exportovany as EXPORTOVANA,
		histZrusil.DatumZrusenia as DATUMZRUSENIA
	from EC_RiadokFaktury fak
		inner join (
			select KRAJ, OKRES, PODNIK, CHOV, IDZOO, IDKON from NM_HDDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_OVDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_KODETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, null as IDZOO, null as IDKON from NM_CHOVMAS where TYPZV = '5'
			union all select KRAJ, OKRES, PODNIK, CHOV, PLEMENAR as IDZOO, PLEMENAR as IDKON from NM_OSDETAIL
			) d on fak.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		inner join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
		left outer join (
			select ID, UPPER(PRIEZVISKO) + ' ' + UPPER(MENO) as MENO from NM_KONTAKT
			union all select IDPAM as ID, OSOBA as MENO from NM_PracSPU
		) zoo on d.IDZOO = zoo.ID
		left outer join (
			select ID, UPPER(PRIEZVISKO) + ' ' + UPPER(MENO) as MENO from NM_KONTAKT
			union all select IDPAM as ID, OSOBA as MENO from NM_PracSPU
		) kon on d.IDKON = kon.ID
		inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = fak.Produkt
		left outer join EC_RiadokFaktury_Hist histPotvrdil on fak.IDR = histPotvrdil.IDR and histPotvrdil.DatumPotvrdenia is not null
		left outer join EC_RiadokFaktury_Hist histZrusil on fak.IDR = histZrusil.IDR and histZrusil.DatumZrusenia is not null
	where
		fak.IDR = @id
	;
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_plemeno]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[PlemTyp] [varchar] (10) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				--(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')
					THEN 'OSTA' else PLEM end end)as Plem, 					
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.kraj = @chov	
					
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and (PLEM=@plem or @plem is null)
					and MLIEKCEL <>''

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where-- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.okres = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when  PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')  --and PLEM is not null
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where -- (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.podnik = @chov	
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem, 
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.chovatel = @chov
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem,
				 (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')-- and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
				 DOVVYR, DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
		(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
											
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
				and (pl.TYPS=@plem or @plem is null)	


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 --(case when PLEM is null then 'BEZ' else PLEM end)as Plem, 
		  (case when PLEM is null then 'BEZ' 
					else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					THEN 'OSTA' else PLEM end end)as Plem,  
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		and (PLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
			(Select distinct case when pl.TYPS is null then 'BEZ' 
					else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
					THEN 'OSTA' else pl.TYPS end end), 

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					and (pl.TYPS=@plem or @plem is null)	
end


--select * from @kravy

--select * from @Laktacie

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MaximalnaLaktPodlaMlieko]
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_DojvostPodlaMaxLaktacia
	declare @c varchar(14)

	declare @kod as int
	declare @nazov as varchar(20)
	declare @p1 as int;
	declare @p2 as int;
	declare @pn as int;
	declare @spolu1 int;
	declare @spolu2 int;
	declare @spolu3 int;

	declare @spolu1n int;
	declare @spolu2n int;
	declare @spolu3n int;

	declare @spolu1c int;
	declare @spolu2c int;
	declare @spolu3c int;

	declare chov cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	group by CHOVATEL
	having count(*)>=1 

	open chov
	fetch next from chov into @c;

	while @@FETCH_STATUS=0
	begin
		
		declare hranica cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open hranica
		fetch next from hranica into @nazov,@kod

		while @@FETCH_STATUS=0
		begin
			
			
			
			set @p1=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as n
				on k.CISKRAVY=n.CISKRAVY and k.porlakmax=n.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and n.PORLAK=1
			and n.KOD_DOJ=@kod)

			set @p2=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as l
				on k.CISKRAVY=l.CISKRAVY and k.porlakmax=l.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and l.PORLAK>=2
			and l.KOD_DOJ=@kod )

			set @pn=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as l
				on k.CISKRAVY=l.CISKRAVY and k.porlakmax=l.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and l.KOD_DOJ=@kod)

				set @spolu1=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.PORLAK=1
			)

			set @spolu2=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.PORLAK>=2
			)

			set @spolu3=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			)

			if(@spolu1=0) set @spolu1=NULL;
			if(@spolu2=0) set @spolu2=NULL;
			if(@spolu3=0) set @spolu3=NULL;

			

			insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3,@c,NULL);


			
			
			
			
			fetch next from hranica into @nazov,@kod;
		end

		close hranica;
		deallocate hranica;

		--insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1n,(@spolu1n*100)/@spolu1n,@spolu2n,(@spolu2n*100)/@spolu2n,@spolu3n,(@spolu3n*100)/@spolu3n,@c,'N')
		insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1,(@spolu1*100)/@spolu1,@spolu2,(@spolu2*100)/@spolu2,@spolu3,(@spolu3*100)/@spolu3,@c,Null)
		--insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1c,(@spolu1c*100)/@spolu1c,@spolu2c,(@spolu2c*100)/@spolu2c,@spolu3c,(@spolu3c*100)/@spolu3c,@c,'C')

		fetch next from chov into @c;
	end

	close chov;
	deallocate chov;


END
go

-- =============================================
-- Author:		David Florek
-- Create date:	03.11.2017
-- Description:	Exportuje csv subor pripraveny na tvorbu PDF s ketolatkami.
-- =============================================
CREATE PROCEDURE [dbo].[C_Export_ketolatky_csv]
	@chov varchar(9),
	@datum date
AS
BEGIN
	if(OBJECT_ID('tempdb..#rozbory') is not null)
		drop table #rozbory;

	declare @servername varchar(200) = '192.168.200.111';
	declare @dbname varchar(100) = 'plis';
	declare @file varchar(200) = 'E:\KETOLATKY\data\' + @chov + '.csv';
	
	declare @query varchar(2000);

	set @query =
	'select ''Index'', ''BatchID'', ''Barcode'', ''Sequence'', ''Date'', ''Time'', ''Fat'', ''Protein'', ''Lactose'', ''MUN'', ''SCC'','
	+ ' ''OA %'', ''F/P'', ''F/S'', ''F/SNF'', ''F/L'', ''Ac1 mg/l'', ''Ac2 mg/l'', ''Ac3 mg/l'', ''BHB A mg/l'', ''BHB B mg/l'', ''BHB GC mg/l'','
	+ ' ''ID dojnice'', ''datum provedeni kontroly'', ''poradi laktace'', ''laktacni den'', ''dojivost'''
	+ ' union select [Index], [BatchID], [Barcode], [Sequence], [Date], [Time], [Fat], [Protein], [Lactose], [MUN], [SCC],'
	+ ' [OA %], [F/P], [F/S], [F/SNF], [F/L], [Ac1 mg/l], [Ac2 mg/l], [Ac3 mg/l], [BHB A mg/l], [BHB B mg/l], [BHB GC mg/l],'
	+ ' [ID dojnice], [datum provedeni kontroly], [poradi laktace], [laktacni den], [dojivost]'
	+ ' from view_Ketolatky_Export where CHOV = ' + @chov + ' and'
	+ ' CAST([datum provedeni kontroly] as DATE) = ''' + cast(@datum as varchar(20)) + ''' and [OA %] is not null and [dojivost] is not null;';

	declare @sql varchar(8000);
	select @sql = 'sqlcmd -S ' + @servername + ' -d ' + @dbname +' -E -Q "' + @query + '" -o ' + @file + ' -s"," -w 700 -W -h-1';
	exec master..xp_cmdshell @sql;
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 22.10.2014
-- Description:	zisti, ci ide o duplicitne hlasenie v zmysle dvojica odosielatel - prijimatel (kazdy z nich posiela hlasenie)
-- =============================================
CREATE function [dbo].[C_aktual_Presuny_dupl_kontr] 
	-- Add the parameters for the stored procedure here
      (@CISKRAVY varchar(14)
      ,@CHOVOD varchar(9)
      ,@CHOVDO varchar(9)
      ,@CHOVHLAS varchar(9))

returns int

As
BEGIN
	declare @CHOVHLAS_PRESUNY varchar(9) = null
	declare @retval int = 0

	select top (1) @CHOVHLAS_PRESUNY = CHOVHLAS from VstupyPLIS.dbo.CP_HD05_PRESUNY where (CHOVOD = @CHOVOD and CHOVDO = @CHOVDO and PRIZSPRAC = 2 and CISKRAVY = @CISKRAVY) order by idr desc

	if (@CHOVHLAS_PRESUNY is not null)
	begin
		if ((@CHOVHLAS_PRESUNY = @CHOVDO and @CHOVHLAS = @CHOVOD) or (@CHOVHLAS_PRESUNY = @CHOVOD and @CHOVHLAS = @CHOVDO))
		begin
			if (@CISKRAVY != 'SK999999999999')
			begin
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY and CHOVATEL = @CHOVDO)) = 1  
					set @retval = 1
			end 
			else
			begin
				if ((select COUNT(*) from PLIS.dbo.CM_Krava where CHOVATEL = @CHOVDO and DOVVYR is null) > 0 and (select COUNT(*) from PLIS.dbo.CM_Krava where CHOVATEL = @CHOVOD and DOVVYR is null) = 0)
					set @retval = 1
			end
		end
	end
	
	return @retval
END

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 28.7.2016
-- Description:	Vyber udajov 1.laktacie, 2.lakt. a viac do reportu k laktaciam...stvrtrocna a rocna zostava na zalkade stringu
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_Oznacenie]
	@datumOd date,
	@datumDo date,
	@vyber varchar(max)
	
as	
begin
--Declare @vyber varchar(max) = '1;20;3;343;44;6;8765'
Declare @oznacenie varchar(20) = null

WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        SELECT @oznacenie
		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
       -- SELECT @oznacenie

	end

	declare @chovy table (
		[Oznacenie] [varchar](10),[Filter] [varchar](50), [DatumOd][date] null, [DatumDo][date] null, [Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,

		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,

	 
		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
		)

insert @chovy
select  Oznacenie,Filter, DatumOd,DatumDo,Region, PlemTyp,
	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
	VyrZootechCelk, VyrZdravDovCelk,
	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk

	  
 from plis.dbo.CR_LaktacneZostavy  
where Filter = @oznacenie and DatumOd= @datumOd and DatumDo= @datumDo

end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end
go

CREATE PROCEDURE CR_prepocet_chovu

@chov AS VARCHAR(9),
@rok AS INT,
@mesiac AS INT,
@dekada AS INT

AS

BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 22.7.2016, 
-- Description:	Prepocet zostav denneho spracovania
-- @chov, @rok, @mesiac, @dekada
-- ===================================================================


EXEC CR_KUHD_mesacne @chov, @rok,@mesiac,@dekada
EXEC dbo.CR_KUHD_MesVys @chov, @rok,@mesiac,@dekada
EXEC C_Zoznam_teliat_za_mesiac @chov, @rok,@mesiac,@dekada
EXEC CR_KUARHD_mesacne @chov, @rok,@mesiac,@dekada

END
go




-- =============================================
-- Author:		David Florek, zmena 10.7.2018 Kobrtkova
-- Create date:	08.03.2018
-- Description:	Export dat calving pre Simental do Nemecka
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_calv22]
AS
BEGIN

	declare @datum date = '2018-06-15';

	select (select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = LEFT(lakt.CISKRAVY, 2))
		+ RIGHT(lakt.CISKRAVY, 12)
		+ RIGHT('00' + cast(lakt.PORLAK as varchar(2)), 2)
		+ ISNULL(FORMAT((select TOP 1 IDAIN from CM_Insvyk where (IPLCA = lakt.CISKRAVY and IVYSE in ('7', '8', '9') and IDAIN between lakt.DATOTEL and laktplus.DATOTEL)
		                                                        or (IPLCA = lakt.CISKRAVY and IVYSE in ('7', '8', '9') and IDAIN > lakt.DATOTEL   and  laktplus.DATOTEL is null)  order by IDAIN desc), 'yyyyMMdd'), '00000000')
		+ ISNULL(FORMAT(lakt.DATOTEL, 'yyyyMMdd'), '00000000')
		+ CASE	WHEN lakt.PORLAK = 1 THEN '000'
				ELSE CASE WHEN LEN(lakt.MEDZIOBD) > 3 THEN '999'
				ELSE ISNULL(RIGHT('000' + cast((select MEDZIOBD from CM_Laktacie where CISKRAVY = lakt.CISKRAVY and PORLAK = lakt.PORLAK) as varchar(10)), 3), '000') END END
		+ IIF(lakt.ZMENA = '10', '1', '0')
		as veta
	into temp_polozky_calv22
	from dbo.View_CP_LaktacieNaplak lakt
	left outer join dbo.View_CP_LaktacieNaplak laktplus on lakt.CISKRAVY = laktplus.CISKRAVY and lakt.PORLAK + 1 = laktplus.PORLAK
	where lakt.CISKRAVY in (select distinct CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))
	and lakt.DATOTEL < @datum
	order by lakt.CISKRAVY, lakt.PORLAK
	

	EXEC xp_cmdshell 'bcp "select veta from plis.dbo.temp_polozky_calv22" queryout "e:\ROZBORAK\Data\svk.06.txt" -T -c -t,'

	drop table temp_polozky_calv22
END


go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 30.11.2011
-- Description:	Zisti plemenny typ zvierata z jeho plemena a farby
-- =============================================
create FUNCTION [dbo].[C_aktual_zisti_plemenny_typ]
(
	@PL1 [varchar](2),
	@KR1 [decimal](5,2),
	@PL2 [varchar](2),
	@KR2 [decimal](5,2),
	@PL3 [varchar](2),
	@KR3 [decimal](5,2),
	@PL4 [varchar](2),
	@KR4 [decimal](5,2),
	@PL5 [varchar](2),

	@FARBA [varchar](2)
)	

RETURNS [varchar](3)
	
AS	
BEGIN
	declare @plemena table 
	(
		PL [varchar](2),
		KR [decimal](5,2),
		HLAVNEPL [varchar](2),
		ZOSLPL [varchar](2),
		id [int] identity(1,1)
	)

	declare @HLPLKR [decimal](5,2)
	declare @HLAVNEPL [varchar](2)
	declare @ZOSPLKR [decimal](5,2)
	declare @ZOSPL [varchar](2)
	
	declare @PlemennyTypC [varchar](3)	
	declare @por [int] = 0
	
	-- naplnenie docasnej tabulky s priradenim podielov krvi 
	insert @plemena 
		select @PL1 as PL, @KR1 as KR, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL1), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL1)
	insert @plemena 
		select @PL2, @KR2, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL2), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL2)
	insert @plemena  
		select @PL3, @KR3, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL3), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL3)
	insert @plemena  
		select @PL4, @KR4, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL4), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL4)	
	insert @plemena  
		select @PL5, 100-(@KR1+@KR2+@KR3+@KR4), (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL5), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL5)
		
	-- najdenie najzastupenejsieho hlavneho plemena
	select TOP 1 @HLPLKR=k.SUMKRV, @HLAVNEPL=k.HLAVNEPL from
	(select SUM(KR) as SUMKRV, HLAVNEPL, (case when HLAVNEPL='99' then 0 else 1 end) as nezn, MIN(id) as id from @plemena
		where HLAVNEPL is not null
		group by HLAVNEPL) as k
	order by k.SUMKRV desc, nezn desc, id asc	
	
	select TOP 1 @ZOSPLKR=k.SUMKRV, @ZOSPL=k.ZOSLPL from
	(select SUM(KR) as SUMKRV, ZOSLPL from @plemena
		where ZOSLPL is not null
		group by ZOSLPL) as k
	order by k.SUMKRV desc	
	
	if @HLPLKR is null
	set @HLPLKR = 0

	if @ZOSPLKR is null
	set @ZOSPLKR = 0
		
	if @HLPLKR >= @ZOSPLKR
	begin
		set @ZOSPLKR = 0
		set @ZOSPL = null
		select TOP 1 @ZOSPLKR=k.SUMKRV, @ZOSPL=k.ZOSLPL from
		(select SUM(KR) as SUMKRV, ZOSLPL from @plemena
			where ZOSLPL = @HLAVNEPL
			group by ZOSLPL) as k
		order by k.SUMKRV desc	
		set @ZOSPLKR = isnull(@ZOSPLKR, 0) 		
	end
	else
	begin
		set @HLPLKR = 0
		set @HLAVNEPL = null
		select TOP 1 @HLPLKR=k.SUMKRV, @HLAVNEPL=k.HLAVNEPL from
		(select SUM(KR) as SUMKRV, HLAVNEPL from @plemena
			where HLAVNEPL = @ZOSPL
			group by HLAVNEPL) as k
		order by k.SUMKRV desc	
		set @HLPLKR = isnull(@HLPLKR, 0) 
	end	
	
	if @ZOSPLKR = 0
		-- staci hladat podla hlavneho plemena
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp where HLAVNE = @HLAVNEPL and OD <= @HLPLKR and DO+0.01 > @HLPLKR)																	 
		
	else if @HLPLKR >= @ZOSPLKR 
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp 
								where (HLAVNE = @HLAVNEPL and OD <= @HLPLKR and DO+0.01 > @HLPLKR and
									  HLAVNE = @ZOSPL and ODZOS <= @ZOSPLKR and DOZOS+0.01 > @ZOSPLKR and
									  FARBA = @FARBA))
									  
	else if @HLPLKR < @ZOSPLKR									  
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp 
								where (OD <= @HLPLKR and DO+0.01 > @HLPLKR and
									  HLAVNE = @ZOSPL and ODZOS <= @ZOSPLKR and DOZOS+0.01 > @ZOSPLKR and
									  FARBA = @FARBA))

	return @PlemennyTypC
END

go

CREATE procedure  [dbo].[Roc_MLHD_7]
	
	@datumOd date,
	@datumDo date

	as 
	begin
		
		delete from Roc_MLHD_Tab_7 where ROK = DATEPART(YEAR, @datumOd);

	--declare @datumOd date, @datumDo date
	--set @datumOd = '2017-01-01'
	--set @datumDo = '2017-11-30'

	--create table Roc_MLHD_Tab_7
	--	(
	--	KRAJ varchar (35),
	--	CISKRAVY varchar(14),
	--	OKRES varchar(35),
	--	PODNIK varchar(35),
	--	CHOV varchar(35),
	--	OTEC varchar (8),
	--	PLEM varchar(50),
	--	PORLAK int,
	--	MLIEKNOR int,
	--	TUKPERC float,
	--	TUKNOR float,
	--	BIELKPERC float,
	--	BIELKNOR float,
	--	CHOVATEL varchar(9),
	--	ROK varchar(4),
	--	)
	
	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Bratislavský' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1) ='1'
		order by lakt.MLIEKNOR desc

	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Trnavský' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='2'
		order by lakt.MLIEKNOR desc
		
	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Trenčiansky' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='3'
		order by lakt.MLIEKNOR desc

	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Nitriansky' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='4'
		order by lakt.MLIEKNOR desc

	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Žilinský' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='5'
		order by lakt.MLIEKNOR desc

	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Banskobystrický' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='6'
		order by lakt.MLIEKNOR desc

	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Prešovský' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='7'
		order by lakt.MLIEKNOR desc
	
	insert into Roc_MLHD_Tab_7
		SELECT top 1 
			'Košický' as Kraj
			,lakt.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
			,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') /*+ '  ' + ISNULL(k.PL2, '')
			  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')*/  AS PLEM
			,PORLAK
			--,MLIEKCEL
			,MLIEKNOR
			,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
			,TUKNOR
			,round(((lakt.BIELKNOR*100)/lakt.MLIEKNOR),2) as BIELKPERC
			,BIELKNOR
			,lakt.CHOVATEL
			,DATEPART(YEAR, @datumOd) as Rok    
	
		  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
		  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
		  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
		  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

		  where BIELKNOR > 0
				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.ZMENA in ('30','40')
				--and k.PL1 in ('H','R')
				--and Lakt.MLIEKCEL <>''
				and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
				and ((lakt.BIELKNOR*100)/lakt.MLIEKNOR) < 5
				and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
					and ch.TYPZV='1'
--				and DATEPART(year,k.DATPOSKONT) = DATEPART(YEAR, @datumOd)
				and SUBSTRING(lakt.CHOVATEL,1,1)='8'
		order by lakt.MLIEKNOR desc

end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.05.2016
-- Description:	spojenie vsetkych koz - capy, kozy a potomkov do jednej tabulky
--	Update:
--			2016.07.12 - doplnene dovodvyr a datum vyradenia
--		    2016.07.12 - vsade kde je null v dovode sa nastavi ako 0 -> proste fand miesto null ma 0.. ach - Bahnice a pod maju tiez 0..
--		    2016.11.21 - pre otca aj matku doplnene LUC, PUC (pri starych chyba CEHZ)
--			2017.01.31 - Fix GP_Kozicky miesto SP_Ovecky :(
-- =============================================
CREATE PROCEDURE [dbo].[G_napln_GP_Kozicky]
AS
BEGIN
		truncate table GP_Kozicky

		INSERT INTO GP_Kozicky
		SELECT capcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'GM_Cap', '2', Plem, OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, DOVOD, DATVYR
		FROM GM_Cap


		INSERT INTO GP_Kozicky
		SELECT kozcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'GM_Koza', '1', Plem,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, DOVOD, DATVYR
		FROM GM_Koza

		INSERT INTO GP_Kozicky
		SELECT jedcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'GM_Potomok', pohl, Plem,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, NULL, NULL     
		FROM GM_Potomok
		where jedcis not in (select jedcis from GP_Kozicky)
		and jedcis <> '00000000'

		-- v Apotomkoch nemaju vsetci definovane id.. ale su v rodicoch...
		INSERT INTO GP_Kozicky
		SELECT jedcis, ZVSTAT + JCCEHZ, KROKR + PODNIK + STADO, LUC, PUC, DatNar, 'GM_APotomok', pohl, Plem,  OTCIS, OTZVSTAT + OTJCCEHZ, OTLUC, OTPUC, MACIS, MAZVSTAT + MAJCCEHZ, MALUC, MAPUC, NULL, NULL     
		FROM GM_APotomok
		where jedcis not in (select jedcis from GP_Kozicky)
		and jedcis <> '00000000'

		update GP_Kozicky
		set dovod = '0'
		where dovod is null

		update GP_Kozicky
		set otecCis = null
		where otecCis = '00000000'

		update GP_Kozicky
		set matkaCis = null
		where matkaCis  = '00000000'


END




/*
	Vytvorenie tabulky GP_Kozicky
*/


/*

--	drop table GP_Kozicky

CREATE TABLE [dbo].[GP_Kozicky](
	[jedCis] [varchar](8) NOT NULL,
	[CEHZ] [varchar](14) NULL,
	[chov] [varchar](9) NULL,
	[LUC] [varchar](5) NULL,
	[PUC] [varchar](5) NULL,
	[datNar] [datetime] NULL,
	[tab] [varchar](14) NULL,
	[pohl] [varchar](1) NULL,
	[plem] [varchar](10) NULL,
	[otecCis] [varchar](8) NULL,
	[otec] [varchar](14) NULL,
	[otecLUC] [varchar](5) NULL,
	[otecPUC] [varchar](5) NULL,
	[matkaCis] [varchar](8) NULL,
	[matka] [varchar](14) NULL,
	[matkaLUC] [varchar](5) NULL,
	[matkaPUC] [varchar](5) NULL,
	[dovod] [varchar](1) NULL,
	[datVyr] [datetime] NULL
) ON [PRIMARY]


CREATE CLUSTERED INDEX [idx_CEHZ] ON [dbo].[GP_Kozicky]
(
	[CEHZ] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

SET ANSI_PADDING ON

GO

CREATE NONCLUSTERED INDEX [idx_cislo] ON [dbo].[GP_Kozicky]
(
	[jedcis] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

SET ANSI_PADDING ON

GO


CREATE NONCLUSTERED INDEX [idx_chov] ON [dbo].[GP_Kozicky]
(
	[chov] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

*/
go

Create PROCEDURE [dbo].[CR_KUMP_kravy_1_prepocet] 

	@rok int,
	@mesiac int

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'MP' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_KUMP_kravy_1 @chov, @rok,@mesiac

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

end
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_TelataPoLaktacie_old]
AS
BEGIN
/****************************************
	using table:CM_Krava,CM_Laktacie,CM_Telata

	changing table: Cp_TelataPoLaktacii

	used for: view of details of Krava
*********************************************/
	TRUNCATE TABLE plis.dbo.Cp_TelataPoLaktacii


	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @help as int;
	set @help=0;
	declare @l as int;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;

	declare kravy cursor for
	select CISKRAVY
	from plis.dbo.CM_Krava
	where PRIZNAKKU=1;

	open kravy ;
	fetch next from kravy into @krava;

	while @@FETCH_STATUS=0
	begin

		declare @i int;
		set @i=0;


		declare lakt cursor for
		select PORLAK
		from plis.dbo.CM_Laktacie
		where CISKRAVY=@krava

		open lakt
		fetch next from lakt into @lakt;

		while @@FETCH_STATUS=0
		begin

		declare telata cursor for 
		select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,l.PORLAK
		from plis.dbo.CM_Krava as k
		
		inner join plis.dbo.CM_Laktacie as l
		on k.CISKRAVY=l.CISKRAVY

		left join plis.dbo.CM_Telata as t
		on k.CISKRAVY=t.MATKA and t.PORLAK=l.PORLAK
		where  k.CISKRAVY=@krava


		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
		set @i=1;
		while @@FETCH_STATUS=0
		begin
		/*print N'Ok'
		print @d;
		print @datotel;
		print N'* * * * * * '*/
		
		print N'help ' + convert(varchar(2),@help);
		print N'krava '+@krava
		
		if(@help=@l)
		begin	
		
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				if(@t is null)
				begin
				set @t1='bez UČ';
				set @t1Poch=@pocl;
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				if(@t is null)
				begin
				set @t2='bez UČ';
				set @t2Poch=@pocl;
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				if(@t is null)
				begin
				set @t3='bez UČ';
				set @t3Poch=@pocl;

				end
			end
			set @i=@i+1;
		 end
		 else 
		 begin
			if(@i=1)
					begin
						print N'Prvo tele'
						set @t1=@t;
						set @t1Poch=@pocl;
						if(@t is null)
						begin
							set @t1='bez UČ';
							set @t1Poch=@pocl;
						end
					end
				--insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l); 
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
						--set @l=null;
				set @i=1;
				set @help=@help+1;
		 end
	--		print N't - '+@t
		--	print @i
		--	print @datotel;
		--	print @d
		--	print N't1 - '+@t1;
		--	print N't2 - '+@t2;
		--	print N't3 - '+@t3;
		--	print @krava;
		--	print @datotel;

		--	

			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			--print N'-------------------------------'
			set @d=NULL;

				
		end
		--set @i=0;
		--set @t1='';
		--set @t2='';
		--set @t3='';
		

		close telata;
		 deallocate telata;

		 insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l); 
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
			fetch next from lakt into @lakt;
		 end
		 close lakt;
		 deallocate lakt;
		 				
		set @help=0;


	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	pre upravu a export CP_BLUP_PROOFS do DBF (PLEMENO H)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFS_H]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select tph from CP_BLUP_K95) * m305) / (m305 + (select mh from CP_BLUP_K95)),
			bperc = (100 * b305 - (select bph from CP_BLUP_K95) * m305) / (m305 + (select mh from CP_BLUP_K95))
	where plem = 'H'

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT --p.cislo   
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'H'

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95B SET
		M0H = (select m305 from #temp_stdevS_1),
		M1H = (select m100 from #temp_stdevS_1),
		M2H = (select m200 from #temp_stdevS_1),
		M3H = (select m300 from #temp_stdevS_1),
		M4H = (select mp from #temp_stdevS_1),
		T0H = (select t305 from #temp_stdevS_1),
		T1H = (select t100 from #temp_stdevS_1),
		T2H = (select t200 from #temp_stdevS_1),
		T3H = (select t300 from #temp_stdevS_1),
		T4H = (select tp from #temp_stdevS_1),
		B0H = (select b305 from #temp_stdevS_1),
		B1H = (select b100 from #temp_stdevS_1),
		B2H = (select b200 from #temp_stdevS_1),
		B3H = (select b300 from #temp_stdevS_1),
		B4H = (select bp from #temp_stdevS_1),
		TPERH = (select tperc from #temp_stdevS_1),
		BPERH = (select bperc from #temp_stdevS_1)

	SELECT --p.cislo 
		430 as ssmh,
		15 as ssth,
		12 as ssbh,
		0.18 as sstph,
		0.10 as ssbph,      
		stdev(m305) as sm0h,
		stdev(m100) as sm1h,
		stdev(m200) as sm2h, 
		stdev(m300) as sm3h, 
		stdev(mp) as sm4h, 
		stdev(t305) as st0h, 
		stdev(t100) as st1h, 
		stdev(t200) as st2h, 
		stdev(t300) as st3h, 
		stdev(tp) as st4h, 
		stdev(b305) as sb0h, 
		stdev(b100) as sb1h, 
		stdev(b200) as sb2h, 
		stdev(b300) as sb3h, 
		stdev(bp) as sb4h, 
		stdev(tperc) as stperch, 
		stdev(bperc) as sbperch
		into #temp_stdevS
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'H'

	-- pocet stad kontrol krav za byka (otca)						 
	select OTEC, count(*) as POCETSTAD into #temp_byci_stada
	from
	(SELECT        OTEC, CISCHOVU
	FROM            CM_ZSTDM AS z 
	group by OTEC, CISCHOVU) as s
	group by OTEC
	
	-- laktacie za byka (otca)
	SELECT         
	k.OUSCIS, count(l.PORLAK) as N, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
							 CM_Krava AS k ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OUSCIS


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + ' ' + ISNULL(b.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + ' ' + ISNULL(b.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + ' ' + ISNULL(b.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + ' ' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevS)) * (select ssmh from #temp_stdevS) AS M305, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevS) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1H from CP_BLUP_K95)) / (select sm1h from #temp_stdevS)) * (select ssmh from #temp_stdevS) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevS)) * (select ssth from #temp_stdevS) AS T305, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevS) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1H from CP_BLUP_K95)) / (select st1h from #temp_stdevS)) * (select ssth from #temp_stdevS) AS T100, 
		((p.tperc - (select TPERH from CP_BLUP_K95)) / (select stperch from #temp_stdevS)) * (select sstph from #temp_stdevS) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevS)) * (select ssbh from #temp_stdevS) AS B305, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevS) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1H from CP_BLUP_K95)) / (select sb1h from #temp_stdevS)) * (select ssbh from #temp_stdevS) AS B100, 
		((p.bperc - (select BPERH from CP_BLUP_K95)) / (select sbperch from #temp_stdevS)) * (select ssbph from #temp_stdevS) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo
							LEFT OUTER JOIN #temp_byci_laktacie as tbl ON tbl.OUSCIS = p.cislo
							LEFT OUTER JOIN #temp_byci_stada as tbs ON tbs.OTEC = p.cislo
	where p.plem = 'H'
	ORDER BY p.cislo

	DELETE FROM CP_BLUP_BYKYTDM 
	WHERE plem = 'H'

	INSERT into CP_BLUP_BYKYTDM
	SELECT 
		BYK, 
		b.LIN as BLIN,
		(SELECT RIGHT('000'+CAST(b.REG AS VARCHAR(3)),3)) as BREG,
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		s.LIN as SLIN,
		(SELECT RIGHT('000'+CAST(s.REG AS VARCHAR(3)),3)) as SREG,
		DAM, 
		BREEDING,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		m305 * (select EWMH from CP_BLUP_K95) + t305 * (select EWTH from CP_BLUP_K95) + b305 * (select EWBH from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		b.MENO,
		'H'
	FROM #temp_vysledny as v 
		left join CM_BYCI as b on v.BYK = b.USCISLO
		left join CM_BYCI as s on v.SIRE = s.USCISLO
	
	update CP_BLUP_KPLEM
		SET m0h_pr_k = (select m0h from CP_BLUP_K95),
			t0h_pr_k = (select t0h from CP_BLUP_K95),
			tperh_pr_k = (select tperh from CP_BLUP_K95),
			b0h_pr_k = (select b0h from CP_BLUP_K95),
			bperh_pr_k = (select bperh from CP_BLUP_K95),
			m0h_pr_b = (select m0h from CP_BLUP_K95B),
			t0h_pr_b = (select t0h from CP_BLUP_K95B),
			tperh_pr_b = (select tperh from CP_BLUP_K95B),
			b0h_pr_b = (select b0h from CP_BLUP_K95B),
			bperh_pr_b = (select bperh from CP_BLUP_K95B),
			ssmh_st = (select ssmh from #temp_stdevS),
			ssth_st = (select ssth from #temp_stdevS),
			ssbh_st = (select ssbh from #temp_stdevS),
			sstph_st = (select sstph from #temp_stdevS),
			ssbph_st = (select ssbph from #temp_stdevS),
			sm0h_so_b = (select sm0h from #temp_stdevS),	
			st0h_so_b = (select st0h from #temp_stdevS),
			stperch_so_b = (select stperch from #temp_stdevS),
			sb0h_so_b = (select sb0h from #temp_stdevS),
			sbperch_so_b = (select sbperch from #temp_stdevS)
	WHERE plem = 'H'

END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 26.02.2016
-- Update		23.08.2016 - zoradenie podla CEHZ na zaklade poziadavky --neplati od 26.08.
--				26.08.2016 - zoradenie podla zadania (CEHZ, VISAC)
--				07.03.2017 - zoradenie podla lubovolneho, Visacka fix '0' na 4 miesta
--							 ak visac je null alebo 0 nezobrazi sa nic
--				08.03.2017 - doplneny OtCEHZ, Hmot Ods. nepotrebne..., LUC a CEHZ fix s .... - ak je prazny vrat NULL 
--				13.03.2017 - doplnene stlpce PH VV a pod pre zoradenie
--				14.03.2017 - TypZamerania @TypZam sa ziskava z funkcie [S_zisti_TypZam] - a vlastne nam ho nie je ani treba xD - delete /**/
-- Description:	Zozstava k tetovaniu Jahniat
-- =============================================
CREATE PROCEDURE [dbo].[S_Zostava_k_tetovaniu_jahniat]
(
	@KrOkres [varchar](3),
	@Podnik [varchar](3),
	@Stado [varchar] (3),
	@RokEv1 [varchar] (4),
	@RokEv2 [varchar] (3),
	@Zorad [varchar] (20)
)	
AS
BEGIN



--drop table #ZostavaKTetovaniu
--exec S_Vypocet_plemena_potomka


	declare @kraj varchar(1) = substring(@KrOkres, 1, 2)
	declare @okres varchar(2) = substring(@KrOkres, 2, 3)
	/*
	declare @UzitZSt varchar(1)
	declare @PlemSt varchar(2)


  -- Uzitkove zameranie stada a plemeno stada z menovky
	(select @UzitZSt = uzitzst,  @PlemSt = substring(plem, 1, 2) 
		from NM_OVDETAIL 
		where KRAJ = @kraj
			and OKRES = @okres
			and PODNIK = @podnik
			and chov = @stado
	)

	
	declare @UzitZam varchar(1) = (
		select UZITZAM 
		from SC_Plemena
		where KODPL2 = @PlemSt
	)
	
	print @UzitZam

	/* Typ zamerania stada */
	declare @TypZam varchar(1) = (
	select 
	case when (@PlemSt in ('M ', 'AM', 'FM', 'BG', 'RM', 'NC', 'VR', 'OD', 'CH', 'T ', 'R ', 'V ')) then '3'
		when @PlemSt in ('AF','VF') then '4'
		when @UzitZam = '1' and @UzitZSt = '4' or @UzitZam = '4' then '1'
		when @UzitZam = '1' and @UzitZSt <> '4' or @UzitZam = '2' then '2'
	--begin
	end
	)
	*/
	/*declare @TypZam varchar(1) = (dbo.[S_zisti_TypZam] (@KrOkres, @podnik, @stado))

	print 'typ zameranie=' + str(@TypZam)
	*/
	--		drop table @ZostavaKTetovaniu

	declare @ZostavaKTetovaniu  TABLE
	(	
		[VISAC] [varchar](4) NULL,
		[Plemeno] [varchar](10) NULL,
		[MaLUC] [varchar](5) NULL,
		[MaCEHZ] [varchar](14) NULL,
		[MaKP] [varchar](1) NULL,
		[MaMR] [varchar](4) NULL,
		[OtLUC] [varchar](5) NULL,
		[OtCEHZ] [varchar](14) NULL,
		[OtKP] [varchar](1) NULL,
		[OtMR] [varchar](4) NULL,	
		--[PH_ml] [decimal](5,2) NULL,
		--[PH_vv] [decimal](5,4) NULL,
		[PH_ml] [varchar](10) NULL,
		[PH_vv] [varchar](10) NULL,
		[PH_ho] [varchar](10) NULL,
		[KP] [varchar](1) NULL,
		[Surv] [varchar](1) NULL,
		[POHL] [varchar](1) NULL,
		[LUC] [varchar](5) NULL,
		[CEHZ] [varchar](14) NULL,
		[DATNAR] [date] NULL,
		[HMNAROD] [decimal](5,2) NULL,
		--,[NAZOVP] [varchar](25) NULL
		--,[UzitZam] varchar (1) NOT NULL
		[ID] bigint NOT NULL,
		[PH_ml2] [decimal](7,4) NULL,
		[PH_vv2] [decimal](7,4) NULL,
		[PH_ho2] [decimal](7,4) NULL

	)


	declare @id bigint;
	declare @ID_KonZap bigint;
	declare @BahCis varchar(8);
	declare @BarCis varchar(8);

	declare @plemeno varchar(10);

	--declare @PH_ml decimal(5,2)
	--declare @PH_vv decimal(5,4)
	--declare @PH_ho decimal(5,4) 

	declare @PH_ml varchar(10)
	declare @PH_vv varchar(10)
	declare @PH_ho varchar(10)


	declare @PH_ml2 decimal(7,4)
	declare @PH_vv2 decimal(7,4)
	declare @PH_ho2 decimal(7,4)

	declare @ma_mr varchar(4);
	declare @ot_mr varchar(4);

	declare @kp varchar(1);
	declare @surv varchar(1);

	declare @ma_surv varchar(1);
	declare @ot_surv varchar(1);



	declare zostava cursor  for	
	
	select
		p.ID,	
		kz.Bahcis,
		kzb.BarCis,
		p.ID_KonZap
	from SM_KonZapPotomok p
		left outer join SM_KonZap KZ on KZ.id = p.ID_KonZap
		left outer join SM_KonZapBaran KZB on KZB.id = kz.ID_KonZapBaran
	where kz.KROKR + kz.PODNIK + kz.STADO --= @KrOkres + @PODNIK + @STADO
				in (select spchov from SM_SpoJChov where chov = @KrOkres + @PODNIK + @STADO)
		AND kz.ROKEV1 + kz.ROKEV2 = @RokEv1 + @RokEv2

	open zostava	
	fetch next from zostava into @id, @BahCis, @BarCis, @ID_KonZap;
	WHILE @@FETCH_STATUS = 0 
		begin
		
			--print @id
			--print @BahCis
			--print @BarCis

			--set @PH_ml = --'' + 
				(select @PH_ml = (zn+ho+mo), @PH_ml2 = ho  from
				(
				select 
					(case when  (ISNULL(bh_ml.PHMLIEKO, 0) + ISNULL(br_ml.PHMLIEKO, 0))*1.0 > 0 then '+' else '' end) as zn, 
					CAST(
					CAST(((ISNULL(bh_ml.PHMLIEKO, 0) + ISNULL(br_ml.PHMLIEKO, 0)) /
					case when bh_ml.PHMLIEKO is not null and br_ml.PHMLIEKO is not null then 2 else 1 end)  as  decimal (5,2) )as varchar(10)) as ho,
					
					(case when bh_ml.PHMLIEKO is not null and br_ml.PHMLIEKO is null then 'm' 
							when bh_ml.PHMLIEKO is null and br_ml.PHMLIEKO is not null then 'o' else '' end) as mo
				--) as PH_ml

					from SM_BLPHML bh_ml 
						left outer join SM_BLPHML br_ml on br_ml.JEDCIS = @BarCis
					where bh_ml.JEDCIS = @bahCis) as t
				)

					
			--set @PH_vv = --'' + 
				(select @PH_vv = (zn+ho+mo), @PH_vv2 = ho  from
				(
				select
					(case when  (ISNULL(bh_vv.PHVELVRH, 0) + ISNULL(br_vv.PHVELVRH, 0))*1.0 > 0 then '+' else '' end) as zn, 
					CAST(
					CAST(((ISNULL(bh_vv.PHVELVRH, 0) + ISNULL(br_vv.PHVELVRH, 0)) /
					case when bh_vv.PHVELVRH is not null and br_vv.PHVELVRH is not null then 2 else 1 end) as  decimal (5,4) ) as varchar(10)) as ho,					
					(case when bh_vv.PHVELVRH is not null and br_vv.PHVELVRH is null then 'm' 
							when bh_vv.PHVELVRH is null and br_vv.PHVELVRH is not null then 'o' else '' end) as mo

					from SM_BLPHVV bh_vv
						left outer join SM_BLPHVV br_vv on br_vv.JEDCIS = @BarCis
					where bh_vv.JEDCIS = @bahCis) as t
				)

			--set @PH_ho = --'' + 
				(select @PH_ho = (zn+ho+mo), @PH_ho2 = ho  from
				(
				select				
				--(case when  (cast(ISNULL(bh_ho.PHHMODS, 0) as decimal(5,4)) + cast(ISNULL(br_ho.PHHMODS, 0) as decimal(5,4)) > 0) then '+' else '' end) + 
				(case when  (convert(decimal(5,4), ISNULL(bh_ho.PHHMODS, 0) ) + convert(decimal(5,4), ISNULL(br_ho.PHHMODS, 0)) > 0.0000) then '+' else '' end) as zn,
					CAST(
					CAST(((ISNULL(bh_ho.PHHMODS, 0) + ISNULL(br_ho.PHHMODS, 0)) /
					case when bh_ho.PHHMODS is not null and br_ho.PHHMODS is not null then 2 else 1 end) as decimal(5,4))
					as varchar(10)) as ho,					
					(case when bh_ho.PHHMODS is not null and br_ho.PHHMODS is null then 'm' 
							when bh_ho.PHHMODS is null and br_ho.PHHMODS is not null then 'o' else '' end) as mo							
					from SM_BLPHHO bh_ho 
						left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
					where bh_ho.JEDCIS = @bahCis) as t
				)


			declare @brb decimal(5,4) =  (select ((ISNULL(bh_ho.PHHMODS, 0) + ISNULL(br_ho.PHHMODS, 0)) /
					case when bh_ho.PHHMODS is not null and br_ho.PHHMODS is not null then 2 else 1 end) from SM_BLPHHO bh_ho 
						left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
					where bh_ho.JEDCIS = @bahCis)


			declare @brb2 decimal(5,4) =  (select (cast(ISNULL(bh_ho.PHHMODS, 0) as decimal(5,4)) + cast(ISNULL(br_ho.PHHMODS, 0) as decimal(5,4))) from SM_BLPHHO bh_ho 
						left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
					where bh_ho.JEDCIS = @bahCis)


			declare @ph1 decimal(5,4) =  (select bh_ho.PHHMODS from SM_BLPHHO bh_ho 
						left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
					where bh_ho.JEDCIS = @bahCis)

			declare @ph2 decimal(5,4) =  (select br_ho.PHHMODS from SM_BLPHHO bh_ho 
						left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
					where bh_ho.JEDCIS = @bahCis)

			--print '---------'
			--print @PH_ho
			--print @brb
			--print @brb2
			--print '--'
			--print @ph1
			--print @ph2
		  --if ( 
				
			--set @PH_vv = '' + 
			--	(select (ISNULL(bh_vv.PHVELVRH, 0) + ISNULL(br_vv.PHVELVRH, 0) /
			--		case when bh_vv.PHVELVRH is not null and br_vv.PHVELVRH is not null then 2 else 1 end)			
			--		from SM_BLPHVV bh_vv
			--			left outer join SM_BLPHVV br_vv on br_vv.JEDCIS = @BarCis
			--		where bh_vv.JEDCIS = @bahCis)

			--set @PH_ho = '' + 
			--	(select (ISNULL(bh_ho.PHHMODS, 0) + ISNULL(br_ho.PHHMODS, 0) /
			--		case when bh_ho.PHHMODS is not null and br_ho.PHHMODS is not null then 2 else 1 end)			
			--		from SM_BLPHHO bh_ho 
			--			left outer join SM_BLPHHO br_ho on br_ho.JEDCIS = @BarCis
			--		where bh_ho.JEDCIS = @bahCis)
			

			set  @plemeno = 
			(
			  select dbo.S_vypocet_plem_potomok_funkcia (@BarCis, @BahCis)
			  --, @KrOkres + @PODNIK + @STADO)
			)
			
			print @plemeno
			
			set @ma_mr = (select top 1 HVPORML from [SM_MaxMl]
						where BAHCIS = @BahCis )
			
			if (@ma_mr is not null)
				set @ma_mr = 'M' + @ma_mr
			else
				set @ma_mr = 'R' + isnull((select top 1 HvPorPr from SM_BAHNICA where BAHCIS = @BahCis), '')

				
			set @ot_mr = (select HVPORML from [SM_MaxMl]
						where BAhCIS = (select top 1 MaCis from SM_BARAN where BARCIS = @BarCis )
						)
			
			if (@ot_mr is not null)
				set @ot_mr = 'M' + @ot_mr
			else
				set @ot_mr = 'R' + isnull((select top 1 HvPorPr from SM_BARAN where BARCIS = @BarCis), '')


			set @kp = '1'
			set @surv = (select COUNT(*) from SM_KonZapPotomok where ID_KonZap = @ID_KonZap)


			
			set @ot_surv = (select surv from SM_BARAN where BARCIS = @barcis)
			set @ma_surv = (select surv from SM_BAHNICA where BAHCIS = @bahcis)

			--Kod plodnosti
			set @kp = (
				select 
				case when @surv > '1' then 
						case when @ot_surv > '1' and  @ma_surv > '1' then '5'
							when @ot_surv > '1' or  @ma_surv > '1' then '4' 
							else '3' end
					when @surv = '1' then
						case when @ot_surv > '1' and  @ma_surv > '1' then '2'
							when @ot_surv > '1' or  @ma_surv > '1' then '1' 
							else '0' end
				end			
			)
			
			/*
			print 'kp = '
			print @kp
			*/
			insert into @ZostavaKTetovaniu
			select		
			

				case when isnull(p.Visac, 0) <> 0 then (RIGHT('0000', 4-len(p.VISAC)) + p.VISAC) end as VISAC,
				@plemeno as Plemeno,
				KZ.LUC as MaLUC,
				KZ.CEHZ as MaCEHZ,
				bh.KODPLOD  as MaKP,
				@ma_mr as MaMR,
				KZB.BLUC as OtLUC,
				KZB.BCEHZ as OtCEHZ,				
				b.KODPLOD  as OtKP,
				@ot_mr as OtMR,
				@PH_ml as PH_ml,
				@PH_vv as PH_vv,
				@PH_ho as PH_ho,				
				@kp as KP,
				@surv as Surv,				
				p.POHL as Pohl,
				p.LUC,
				p.CEHZ,
				KZ.DATOBAH as DatNar,
				case when p.HMNAROD = 0 then NULL else p.HMNAROD end as HmNarod
				--,np.NAZOV
				--,(select NAZOV from NM_PODNIK where KRAJ = @kraj and OKRES = @okres and PODNIK = @podnik) as NAZOVP
				--,@UzitZam
				, p.ID,
				@PH_ml2 as PH_ml2,
				@PH_vv2 as PH_vv2,
				@PH_ho2 as PH_ho2
			from SM_KonZapPotomok p
			left outer join SM_KonZap KZ on KZ.id = p.ID_KonZap
			left outer join SM_KonZapBaran KZB on KZB.id = KZ.ID_KonZapBaran
			left outer join SM_BAHNICA bh on bh.BAHCIS = @BahCis
			left outer join SM_BARAN b on b.BARCIS = @BarCis
			--left outer join NM_PODNIK np on np.KRAJ+np.OKRES+np.PODNIK = b.KROKR+b.PODNIK
			 where 
				p.id = @id

		fetch next from zostava into @id, @BahCis, @BarCis, @ID_KonZap
	end
	close zostava;
	deallocate zostava;


	-- vrati stlpece podla uzitkoveho zamerania
	-- tj. nepotrebne sa dropnu
	/*
	if (@UzitZam = 1)
	begin
		ALTER TABLE @ZostavaKTetovaniu
		DROP COLUMN PH_ho, KP, Surv
	end 
	else if (@UzitZam = 2)
	begin
		ALTER TABLE @ZostavaKTetovaniu
		DROP COLUMN PH_ml, KP, Surv
	end 
	else
	begin
		ALTER TABLE @ZostavaKTetovaniu
		DROP COLUMN PH_ho, PH_ml
	end 
	*/
	

	/*
		maly update pre vystup polda predlohy
		- v CEHZ sa 0 nahradia . atd
	*/
	update @ZostavaKTetovaniu
	set MaCEHZ = dbo.S_uprav_CEHZ(MaCEHZ),
			----(select (substring(MaCEHZ, 1, 2) + RIGHT('              ', 12-len(cislo)) + cislo) as cislo
			--(select (substring(MaCEHZ, 1, 2) + RIGHT('..............', 12-len(cislo)) + cislo) as cislo
			--	from 
			--	(select 
			--		substring(MaCEHZ, 
			--		patindex('%[^0]%',substring(MaCEHZ, 3, 14))+2, 14) as cislo
			--	) as t 
			--),
	OtCEHZ = dbo.S_uprav_CEHZ(OtCEHZ),
			--(select (substring(MaCEHZ, 1, 2) + RIGHT('              ', 12-len(cislo)) + cislo) as cislo
			--(select (substring(OtCEHZ, 1, 2) + RIGHT('..............', 12-len(cislo)) + cislo) as cislo
			--	from 
			--	(select 
			--		substring(OtCEHZ, 
			--		patindex('%[^0]%',substring(OtCEHZ, 3, 14))+2, 14) as cislo
			--	) as t 
			--),		
	Plemeno = replace(Plemeno, ' ', '.'),
	LUC = dbo.S_uprav_LUC(LUC),	-- replace(LUC, ' ', '.'),
	MaLUC = dbo.S_uprav_LUC(MaLUC),	--replace(MaLUC, ' ', '.'),
	OtLUC = dbo.S_uprav_LUC(OtLUC),	--replace(OtLUC, ' ', '.'),
	CEHZ = case when len(CEHZ) <> 14 then LEFT('SK............', 14-len(CEHZ)) + CEHZ
				else dbo.S_uprav_CEHZ(CEHZ) end
			----(select (substring(MaCEHZ, 1, 2) + RIGHT('              ', 12-len(cislo)) + cislo) as cislo
			--(select case when CEHZ is not null then (substring(CEHZ, 1, 2) + RIGHT('..............', 12-len(cislo)) + cislo) end as cislo
			--	from 
			--	(select 
			--		substring(CEHZ, 
			--		patindex('%[^0]%',substring(CEHZ, 3, 14))+2, 14) as cislo
			--	) as t 
			--)


		
	if (@Zorad = 'VISAC' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by VISAC
	end	
	if (@Zorad = 'MaCEHZ' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by MaCEHZ
	end
	if (@Zorad = 'MaLUC' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by MaLUC
	end
	if (@Zorad = 'LUC' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by LUC
	end
	if (@Zorad = 'CEHZ' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by CEHZ
	end
	if (@Zorad = 'ID' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by ID
	end
	if (@Zorad = 'OtCEHZ' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by OtCEHZ
	end

	if (@Zorad = 'PH_ml' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by PH_ml2 desc
	end
	if (@Zorad = 'PH_vv' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by PH_vv2 desc
	end
	if (@Zorad = 'PH_ho' )
	begin
		select VISAC, Plemeno, MaLUC, MaCEHZ, MaKP, MaMR, OtLUC, OtCEHZ, OtKP, OtMR, PH_ml, PH_vv, PH_ho, KP, Surv, POHL, LUC, CEHZ, DATNAR, HMNAROD, ID 
		from @ZostavaKTetovaniu
		order by PH_ho2 desc
	end

	
	
	/*
	select * from @ZostavaKTetovaniu
	--order by MaCEHZ
	order by case @Zorad 
						 when VISAC then VISAC 
						 when MaLUC then MaLUC 
						 when MaCEHZ then MaCEHZ
						 when LUC then LUC 
						 when CEHZ then CEHZ 
						 when 'id' then id end;

	*/
	

END

--		exec S_Zostava_k_tetovaniu_jahniat '309', '481', '002', '2014', '15'

--		exec S_Zostava_k_tetovaniu_jahniat '309', '481', '002', '2015', '16'

--		exec S_Zostava_k_tetovaniu_jahniat '708', '517', '053', '2015', '16', 'CEHZ'

--		exec S_Zostava_k_tetovaniu_jahniat '309', '481', '002', '2015', '16', 'PH_ml'
--		exec S_Zostava_k_tetovaniu_jahniat '309', '481', '002', '2015', '16', 'PH_vv'
--		exec S_Zostava_k_tetovaniu_jahniat '309', '481', '002', '2015', '16', 'PH_ho'
go

------ =============================================
------ Author:		PSSR, š.p.
------ Create date: 16.12.2017
------ Vysledky kontroly uzitkovosti za slachtitelske  chovy vyberie udaje z tabuliek plis.dbo.CR_LaktacneZostavy (za slachtitelske chovy
------ a plis.dbo.CR_LaktacneZostavy_rocenka (za plemeno, ktore je na chove uznane ako slachtitelske)
------ Do tabulky Roc_MLHD_Tab_19A

CREATE procedure [dbo].[Rocenka_MLHD_Tab_19]
	@chov varchar(9),
	@datumOd date,
	@datumDo date
	

as	
begin
delete from Roc_MLHD_Tab_19A where @chov = KRAJ + OKRES + PODNIK + CHOV

----declare 
----@chov varchar(10),
----@datumOd date,
----@datumDo date

----set @chov = 'SR'
----set @datumOd ='2017-01-01'
----set @datumDo ='2017-12-14' 


declare @zvaz varchar(30) = (select filter from dbo.CR_LaktacneZostavy_Opr
								where datumDO= @datumDo 
									and DatumOd= @datumOd
									and substring(Filter,1,13) = @chov + ',ChZ')
declare @plem varchar(1) = (select case when SUBSTRING(@zvaz,14,1)=1 then 'S'
									when SUBSTRING(@zvaz,14,1)=2 then 'P'
									when SUBSTRING(@zvaz,14,1)=3 then 'H'
									when SUBSTRING(@zvaz,14,1)=5 then 'B' end )

declare @plemTyp varchar(6) = (select case when SUBSTRING(@zvaz,14,1)=1 then 'SLst'
									when SUBSTRING(@zvaz,14,1)=2 then 'Pin'
									when SUBSTRING(@zvaz,14,1)=3 then 'Hol'
									when SUBSTRING(@zvaz,14,1)=5 then 'Brau' end )

insert into Roc_MLHD_Tab_19A
  ( por,KRAJ,OKRES,PODNIK,CHOV,stpec_1,stpec_2,stpec_3,stpec_4,stpec_5,stpec_6,stpec_7
      ,stpec_8,stpec_9,stpec_10,stpec_11,stpec_12,stpec_13,stpec_14Mesiac,stpec_14Den,stpec_15,stpec_16,stpec_17,stpec_18
      ,stpec_19,stpec_20,stpec_21,stpec_22,stpec_23,stpec_24,stpec_25,stpec_26,stpec_27,stpec_28,stpec_29,rok,Plem_typ)
	  
select 
		'1' as por
		,SUBSTRING(@chov,1,1) as kraj
		,SUBSTRING(@chov,2,2) as okres
		,SUBSTRING(@chov,4,3) as podnik
		,SUBSTRING(@chov,7,3) as chov
		,h.SPVYKON as stpec_1--SPVYKON,
		,(CASE WHEN h.CHARCHOV = '0' THEN 'O'
			WHEN h.CHARCHOV = '1' THEN 'S'
			WHEN h.CHARCHOV = '2' THEN 'P'
			WHEN h.CHARCHOV = '3' THEN 'H'
			WHEN h.CHARCHOV = '4' THEN 'M'
			WHEN h.CHARCHOV = '5' THEN 'B'
			END) AS stpec_2--CHARCHOV_kod,
		--ChCh.NAZOV as CHARCHOV,
		,(case when h.VYROBL = '1' then 'H'
				when h.VYROBL = '2' then 'N'
				else '' end) as stpec_3--VYROBL, 
		,h.CHARUS as stpec_4--CHARUS
		,@plem as stpec_5
		,ch.NAZOV as stpec_6
		,z.PocLakN1 as stpec_7
		,z.LakdniNL1 as stpec_8
		,z.MliekNorL1 as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,z.TukNorL1 as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,z.BielkNorL1 as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,z.LakDniNL2 as stpec_16
		,z.MliekNorL2 as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,z.TukNorL2 as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,z.BielkNorL2 as stpec_21
		,z.MedziobdL2 as stpec_22
		,z.PocLakNcelk as stpec_23
		,z.LakDniNCelk as stpec_24
		,z.MliekNorCelk as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,z.TukNorCelk as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,z.BielkNorCelk as stpec_29 
		,datepart (year, @datumOd) as rok
		,@plemTyp as Plem_typ

	 from /*dbo.CR_LaktacneZostavy*/ dbo.CR_LaktacneZostavy_Opr as z
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @chov
		left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
		left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
		left outer join NM_CHOVMAS as ch on ch.kraj+ch.okres+ch.podnik+ch.chov= @chov
				where datumDO= @datumDo 
					and DatumOd= @datumOd
					and @zvaz = Filter
					and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
union 
	select '2' as por
		,SUBSTRING(@chov,1,1) as kraj
		,SUBSTRING(@chov,2,2) as okres
		,SUBSTRING(@chov,4,3) as podnik
		,SUBSTRING(@chov,7,3) as chov
		,h.SPVYKON as stpec_1--SPVYKON,
		,(CASE WHEN h.CHARCHOV = '0' THEN 'O'
					WHEN h.CHARCHOV = '1' THEN 'S'
					WHEN h.CHARCHOV = '2' THEN 'P'
					WHEN h.CHARCHOV = '3' THEN 'H'
					WHEN h.CHARCHOV = '4' THEN 'M'
					WHEN h.CHARCHOV = '5' THEN 'B'
					END) AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,(case when h.VYROBL = '1' then 'H'
				when h.VYROBL = '2' then 'N'
				else '' end) as stpec_3--VYROBL, 
		,h.CHARUS as stpec_4--CHARUS
		,@plem as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,z.LakdniNL1 as stpec_8
		,z.MliekNorL1 as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,z.TukNorL1 as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,z.BielkNorL1 as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,z.LakDniNL2 as stpec_16
		,z.MliekNorL2 as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,z.TukNorL2 as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,z.BielkNorL2 as stpec_21
		,z.MedziobdL2 as stpec_22
		,z.PocLakNcelk as stpec_23
		,z.LakDniNCelk as stpec_24
		,z.MliekNorCelk as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,z.TukNorCelk as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,z.BielkNorCelk as stpec_29
		,datepart (year, @datumOd) as rok
		,@plemTyp as Plem_typ
	 from /*dbo.CR_LaktacneZostavy_rocenka */ dbo.CR_LaktacneZostavy_Opr as z
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @chov
		left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
		left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
		where @plem = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and oznacenie=@chov
				


end


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[SumarMladehoDobytkaJalovice] (@chovatel varchar(9))
AS
BEGIN
	 

	CREATE TABLE sumarmladydobytok
	(
	CISTELATA varchar(14),
	vekMes int,
	vekDni int,
	CHOVATEL varchar(9),
	raspas varchar(1),
	HMOT float,
	PRIRPREPOC float,
	zivpriras float,
	ZnakPrip varchar(12),
	ZnakTelnost varchar(5),
	IDAIN date,
	POHLAVIE varchar(2),
	DATNAR date
	)
/*
vekmesiacov = poslednevazenie - datnar 

*/
                         
INSERT INTO sumarmladydobytok
      /*View_CP_SumarMladyDobytokJal*/                                  
SELECT     CISTELATA, vekMes, vekDni, CHOVATEL, raspas, HMOT, PRIRPREPOC, zivpriras, ZnakPrip, ZnakTelnost, IDAIN, POHLAVIE, DATNAR
FROM      /*View_CP_SumarMladyDobytokJal koniec*/   

    /*View_CP_poslednoVazeneTeliatZoznam*/                                 
  (SELECT     v.CISTELATA, v.DATVAZ, v.HMOT, v.RASTPAS AS raspas, v.PRIRPREPOC, v.HMOTPREPOC, 
  v.DNIPREPOC, v.DNIVAZ, v.TURNUS, tt.DATNAR, tt.CHOVATEL, tt.POHLAVIE, tt.PRIZNAKKU, tt.DOVVYR, 
                      tt.HMOTNAR, tt.MATKA, tt.OUC, tt.OTECREG, tt.OTECLIN, (v.HMOTPREPOC - (CASE WHEN tt.HMOTNAR IS NULL OR
                      tt.HMOTNAR = 0 THEN 35 ELSE tt.HMOTNAR END)) / v.DNIPREPOC * 1000 AS zivpriras, 
                      DATEDIFF(day, tt.DATNAR, t.datvaz) / 30.42 AS vek, CONVERT(int, DATEDIFF(day, tt.DATNAR, t.datvaz) / 30.42) 
                      AS vekMes, CONVERT(int, CONVERT(float, DATEDIFF(day, tt.DATNAR, t.datvaz) % 30.42)) AS vekDni, i.IDAIN, 
                      i.IPOIN, i.IPOREIN, i.byk, i.IVYSE, i.IDAOT, CASE WHEN i.idain IS NOT NULL 
                      THEN 'pripustena' ELSE 'nepripustena' END AS ZnakPrip, 
                      CASE WHEN i.ivyse IN ('9', '8', '7') THEN 'telna' ELSE NULL END AS ZnakTelnost
FROM         dbo.CM_Vazenia AS v INNER JOIN/*View_CP_poslednoVazeneTeliatZoznam koniec*/
							/*View_CP_poslednoVazeneTeliatZoznam*/
                          (SELECT     CISTELATA, MAX(DATVAZ) AS datvaz
                            FROM          dbo.CM_Vazenia
                            GROUP BY CISTELATA) AS t ON v.CISTELATA = t.CISTELATA AND v.DATVAZ = t.datvaz LEFT OUTER JOIN
                      dbo.CM_Telata AS tt ON v.CISTELATA = tt.CISTELATA LEFT OUTER JOIN
                      
                      /*View_CP_poslednaINseminaciq*/
                      (SELECT TOP (100) PERCENT i.IPLCA, i.IDAIN, i.IPOIN, i.IPOREIN, i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) AS byk, 
	i.IVYSE, i.IDAOT, CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END AS ocakotel,
	t.chovatel
	FROM dbo.CM_Insvyk AS i INNER JOIN
                          (SELECT IPLCA, MAX(IDAIN) AS dat_insem
                            FROM dbo.CM_Insvyk AS i
                            GROUP BY IPLCA) AS i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.dat_insem
                           INNER JOIN CM_Telata as t on i.IPLCA = t.CISTELATA where t.CHOVATEL = @chovatel)  /*View_CP_poslednaINseminaciq koniec*/ 
                           /*View_CP_poslednoVazeneTeliatZoznam*/AS i ON v.CISTELATA = i.IPLCA/*View_CP_poslednoVazeneTeliatZoznam koniec*/
                           /*View_CP_SumarMladyDobytokJal*/where tt.CHOVATEL = @chovatel ) as a
                           
                           WHERE     (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2' AND POHLAVIE <> '62' OR
                      POHLAVIE IS NULL) AND (DOVVYR IS NULL) and  CHOVATEL = @chovatel order by vekMes/*View_CP_SumarMladyDobytokJal koniec*/


CREATE TABLE sumarmladydobytok_next1
(
   ID int,
   vek varchar(40),
   po4et float,
   hmotnost float,
   pripprepoc float,
   zivpriras float,
   chovatel varchar(9)
)






/*SELECT * FROM sumarmladydobytok*/

INSERT INTO sumarmladydobytok_next1  SELECT 1 AS ID, 'do 1 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, 
                      AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 0 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 1 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 2 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

 INSERT INTO sumarmladydobytok_next1  SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 3 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 4 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 5 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 0 AND 5 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 6 AND 12 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     CONVERT(varchar(2), vekmes) + '.' + CONVERT(varchar(2), vekdni) BETWEEN '11.15' AND '12.15' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 24 AND [ZnakTelnost] IS NOT NULL AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     17 AS ID, 'celkom jalovice za mastal' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     POHLAVIE IS NOT NULL or DATNAR is not null
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     18 AS ID, 'bez povodu' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     pohlavie IS NULL OR
                      datnar IS NULL
GROUP BY a.chovatel

INSERT INTO sumarmladydobytok_next1  SELECT     19 AS ID, 'priemerny prirastok za mastal' AS vek, AVG(prirprepoc) AS po4et
/*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ , null, null, null, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
GROUP BY a.chovatel




/**/







CREATE TABLE sumarmladydobytok_next2
(
   ID int,
   vek varchar(40),
   po4et float,
   hmotnost float,
   pripprepoc float,
   zivpriras float,
   raspas varchar(1),
   chovatel varchar(9)
)

/**/

INSERT INTO sumarmladydobytok_next2 SELECT 1 AS ID, 'do 1 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, 
                      AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 0 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     2 AS ID, '1 - 2 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 1 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     3 AS ID, '2 - 3 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 2 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     4 AS ID, '3 - 4 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 3 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     5 AS ID, '4 - 5 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 4 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     6 AS ID, '5 - 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes = 5 and vekDni between 0 and 31 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas



INSERT INTO sumarmladydobytok_next2 SELECT     7 AS ID, 'do 6 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 0 AND 5 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     8 AS ID, '6 - 12 mes.' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 6 AND 12 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     9 AS ID, '12 mes. (+-15 dní)' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     CONVERT(varchar(2), vekmes) + '.' + CONVERT(varchar(2), vekdni) BETWEEN '11.15' AND '12.15' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     10 AS ID, '12 - 18 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     10 AS ID, '12 - 18 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 18 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     11 AS ID, '18 - 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     11 AS ID, '18 - 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 19 AND 24 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     12 AS ID, '12 - 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 24 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     12 AS ID, '12 - 24 mes. telne' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes BETWEEN 13 AND 24 AND [ZnakTelnost] IS NOT NULL AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     13 AS ID, 'nad 24 mes. pripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND ZnakPrip = 'pripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     14 AS ID, 'nad 24 mes. nepripustene' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND ZnakPrip = 'nepripustena' AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     15 AS ID, 'nad 24 mes. celkom' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     16 AS ID, 'nad 24 mes. telne 7 mes' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     16 AS ID, 'nad 24 mes. telne 8 a viac' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     vekmes > 24 and vekMes <= 38 AND [ZnakTelnost] IS NOT NULL AND DATEDIFF(DAY, a.idain, GETDATE()) / 30.42 >= 8.000 AND POHLAVIE IS NOT NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     17 AS ID, 'celkom jalovice za mastal' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, 
AVG(prirprepoc) AS pripprepoc, AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     POHLAVIE IS NOT NULL or DATNAR is not null
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     18 AS ID, 'bez povodu' AS vek, COUNT(*) AS po4et, AVG(Hmot) AS hmotnost, AVG(prirprepoc) AS pripprepoc, 
AVG(zivpriras) AS zivpriras, a.raspas, a.chovatel
FROM         [PLIS].[dbo].sumarmladydobytok AS a
WHERE     pohlavie IS NULL OR
                      datnar IS NULL
GROUP BY a.chovatel, a.raspas

INSERT INTO sumarmladydobytok_next2 SELECT     19 AS ID, 'priemerny prirastok za mastal' AS vek, AVG(prirprepoc) 
AS po4et/*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ , null, null, null, null,   a.chovatel 
FROM         [PLIS].[dbo].sumarmladydobytok AS a
GROUP BY a.chovatel 

/*
INSERT INTO sumarmladydobytok_next2 SELECT     19 AS ID, 'priemerny prirastok za mastal' AS vek, AVG(prirprepoc) 
AS po4et/*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ , NULL AS hmotnost, NULL AS pripprepoc, NULL 
                      AS zivpriras, null as raspas,   a.chovatel 
FROM         [PLIS].[dbo].sumarmladydobytok AS a
GROUP BY a.chovatel 
*/


SELECT  a.[ID]
      ,a.[vek]
      ,a.[po4et]
      ,a.[hmotnost]
      ,a.[pripprepoc]
      ,a.[zivpriras]
      ,b.po4et as raspasA
      ,(b.po4et*100)/(a.po4et*1.00) as percentA
      ,b.hmotnost as hmotA
      
      ,c.po4et as raspasB
      ,(c.po4et*100)/(a.po4et*1.00) as percentB
      ,c.hmotnost as hmotB
      
      ,d.po4et as raspasC
      ,(d.po4et*100)/(a.po4et*1.00) as percentC
      ,d.hmotnost as hmotC
      
  FROM [PLIS].[dbo].sumarmladydobytok_next1 as a
  left join PLIS.dbo.sumarmladydobytok_next2 as b
  on a.chovatel=b.chovatel and a.vek=b.vek and b.raspas='A'
    left join PLIS.dbo.sumarmladydobytok_next2 as c
  on a.chovatel=c.chovatel and a.vek=c.vek and c.raspas='B'
    left join PLIS.dbo.sumarmladydobytok_next2 as d
  on a.chovatel=d.chovatel and a.vek=d.vek and d.raspas='C'
  
  where a.chovatel= @chovatel









DROP TABLE sumarmladydobytok_next1
DROP TABLE sumarmladydobytok_next2
DROP TABLE sumarmladydobytok



/*
select * from sumarmladydobytok_next1
select * from sumarmladydobytok_next2
*/

/*
declare @chovatel varchar(9);
set @chovatel = '709351901';
exec SumarMladehoDobytkaJalovice @chovatel;	
*/

/*


*******************************************************
SELECT NA VYBER JALOVIC, KTORE PATRIA DO TEJTO ZOSTAVY!
*******************************************************

1. zakomentuj DROPY tabuliek na konci PROCEDURY
2. aktualizuj PROCEDURU
3. pusti PROCEDURU
3. select * from sumarmladydobytok
5. vymaz tabulky
4. daj PROCEDURU do povodneho stavu
*/


	
END
go

CREATE procedure  [dbo].[Roc_MLHD_20]
	@datumOd date,
	@datumDo date,
	--@datumPolRok date, /*='2017-09-30'*/  --- kvoli priemernemu veku k 30.9. 
	@datumFakturOd date,  /*'2017-12-13'*/
	@datumFakturDo date		 /*'2018-01-04'*/

	as 
	begin
	delete from Roc_MLHD_Tab_20 where rok = DATEPART(YEAR, @datumOd)

-- !!!!!!!!!!!!!!!! 
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31', @datumPolRok date ='2017-09-30'
--!!!!!!!!!!!!!!!!!!

declare @tab1 table
(
	[Por] bigint ,
	[kod] [varchar](3) NULL,
	[Oznacenie] [varchar](3) NULL,
	[stlpec_6] [varchar](30) NULL,
	[stlpec_7] [int] NULL,
	[stlpec_8] [int] NULL,
	[stlpec_9] [int] NULL,
	[stlpec_10] [float] NULL,
	[stlpec_11] [int] NULL,
	[stlpec_12] [float] NULL,
	[stlpec_13] [int] NULL,
	[stlpec_14Mesiac] [int] NULL,
	[stlpec_14Den] [int] NULL,
	[stlpec_15] [int] NULL,
	[stlpec_16] [int] NULL,
	[stlpec_17] [int] NULL,
	[stlpec_18] [float] NULL,
	[stlpec_19] [int] NULL,
	[stlpec_20] [float] NULL,
	[stlpec_21] [int] NULL,
	[stlpec_22] [int] NULL,
	[stlpec_23] [int] NULL,
	[stlpec_24] [int] NULL,
	[stlpec_25] [int] NULL,
	[stlpec_26] [float] NULL,
	[stlpec_27] [int] NULL,
	[stlpec_28] [float] NULL,
	[stlpec_29] [int] NULL,
	[stlpec_30] [int] NULL,
	[stlpec_31] [float] NULL,
	[stlpec_32_1] [int] NULL,
	[stlpec_32_2] [int] NULL,
	[rok] [varchar](4) NULL,
	[stlpec_14] [varchar](8) NULL,
	[stlpec_32] [varchar](8) NULL
)

insert into @tab1
	(kod, Oznacenie,stlpec_6,stlpec_7,stlpec_8,stlpec_9,stlpec_10,stlpec_11,stlpec_12,stlpec_13,stlpec_14Den, stlpec_14Mesiac, stlpec_15,stlpec_16,stlpec_17 ,stlpec_18,stlpec_19 ,stlpec_20,stlpec_21 ,stlpec_22,stlpec_23,stlpec_24
      ,stlpec_25 ,stlpec_26,stlpec_27,stlpec_28 ,stlpec_29, stlpec_32_1, stlpec_32_2, rok 
	)
select 
	(case when len(l.oznacenie)=1 then l.oznacenie+'99'
		else l.oznacenie end) as kod,
	l.oznacenie as Oznacenie,
	(case when len(l.oznacenie)=3 then o.NAZOV 
		when l.Oznacenie= '1' then 'Bratislavský kraj'
		when l.Oznacenie= '2' then 'Trnavský kraj'
		when l.Oznacenie= '3' then 'Trenčiansky kraj'
		when l.Oznacenie= '4' then 'Nitriansky kraj'
		when l.Oznacenie= '5' then 'Žilinský kraj'
		when l.Oznacenie= '6' then 'Banskobystrický kraj'
		when l.Oznacenie= '7' then 'Prešovský kraj'
		when l.Oznacenie= '8' then 'Košický kraj'
		when l.oznacenie='SR' then 'SR' end) as stlpec_6
	,l.PocLakN1 as stlpec_7
	,round(l.LakdniNL1,0) as stlpec_8
	,round(l.MliekNorL1,0) as stlpec_9
	,round((l.TukNorL1*100)/l.MliekNorL1,2) as stlpec_10
	,round(l.TukNorL1,0) as stlpec_11
	,round((l.BielkNorL1*100)/l.MliekNorL1,2) as stlpec_12
	,round(l.BielkNorL1,0) as stlpec_13
	--,l.MedziobdL1 as stlpec_14
	,(select val from string2table (l.MedziobdL1,'/') where seq = 1) as stpec_14Den
	,(select val from string2table (l.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
	,l.PocLakN2 as stlpec_15
	,round(l.LakDniNL2,0) as stlpec_16
	,round(l.MliekNorL2,0) as stlpec_17
	,round((l.TukNorL2*100)/l.MliekNorL2,2) as stlpec_18
	,round(l.TukNorL2,0) as stlpec_19
	,round((l.BielkNorL2*100)/l.MliekNorL2,2) as stlpec_20
	,round(l.BielkNorL2,0) as stlpec_21
	,round(l.MedziobdL2,0) as stlpec_22
	,l.PocLakNcelk as stlpec_23
	,round(l.LakDniNCelk,0) as stlpec_24
	,round(l.MliekNorCelk,0) as stlpec_25
	,round((l.TukNorCelk*100)/l.MliekNorCelk,2) as stlpec_26
	,round(l.TukNorCelk,0) as stlpec_27
	,round((l.BielkNorCelk*100)/l.MliekNorCelk,2) as stlpec_28
	,round(l.BielkNorCelk,0) as stpec_29
	,convert(varchar, round(l.MedziobdCelk / 30.42, 0)) as stlpec_32_1
	,convert(varchar, convert(decimal(5,0), ROUND( convert(int, l.MedziobdCelk) % 30.42, 0)) ) AS  stlpec_32_2
	,datepart(year,@datumOd) as rok

		from CR_LaktacneZostavy_Opr as l
			left outer join NC_Okres as o on o.kraj+o.okres = l.oznacenie
			left outer join NC_Kraj as k on k.kraj = l.oznacenie
		where l.datumOd=@datumOd and l.datumDo= @datumDo
			and ((len(l.filter)=3 and l.oznacenie =l.filter) or (len(l.filter)=1 and l.oznacenie =l.filter) or Filter='SR')
			and l.Region is null

		order by Oznacenie
	--select * from @tab1
	--order by kod

----------------------------------------------------------------------------------------------------------------------------------------
	/***vypocet prisposobeny fakturacii...aby sedeli pocty***/
	declare @stavKrav table
		(
		oznacenie varchar(3), 
		pocet_krav int
		) 
		insert into @stavKrav
			select distinct c.KRAJ as oznacenie, count( distinct k.ciskravy ) as pocet_krav---kraje
				from NM_CHOVMAS as c
					inner join NM_HDDETAIL as h on h.kraj+h.OKRES+h.PODNIK+h.CHOV=c.kraj+c.OKRES+ c.PODNIK+c.CHOV and h.PRIZNAK='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
	  				inner join CM_Krava as k on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and k.datzar <=@datumFakturDo /*'2018-01-04'*/ 
				where  c.TYPZV='1'
					and c.ZRUS is null
				group by c.kraj
				
		union 
			select distinct c.KRAJ+c.OKRES as oznacenie, count( distinct k.ciskravy ) as pocet_krav---kraje
				from NM_CHOVMAS as c
					inner join NM_HDDETAIL as h on h.kraj+h.OKRES+h.PODNIK+h.CHOV=c.kraj+c.OKRES+ c.PODNIK+c.CHOV and h.PRIZNAK='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
	  				inner join CM_Krava as k on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and k.datzar <= @datumFakturDo /*'2018-01-04'*/ 
				where  c.TYPZV='1'
					and c.ZRUS is null
				group by c.KRAJ+c.OKRES
		union 
			select 'SR' as oznacenie, count( distinct k.ciskravy ) as pocet_krav---SLOVENSKO
				from NM_CHOVMAS as c
					inner join NM_HDDETAIL as h on h.kraj+h.OKRES+h.PODNIK+h.CHOV=c.kraj+c.OKRES+ c.PODNIK+c.CHOV and h.PRIZNAK='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
	  				inner join CM_Krava as k on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and k.datzar <= @datumFakturDo /*'2018-01-04'*/ 
				where  c.TYPZV='1'
					and c.ZRUS is null
					
	--select * from @stavKrav
	---------------------------------------------------------------------------------------------------------------
--/**--priem poradie laktacie**/
	declare @porlak table
	(
	oznacenie varchar(3), 
	porlak float
	)
	insert into @porlak
		select SUBSTRING(CHOVATEL,1,3) as oznacenie , convert(decimal(5,2),AVG(PORLAK *1.0)) as porlak 
			from View_CP_LaktaciePreZostavy	
				where ZMENA in ('30','40') 
				and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
							or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
				group by SUBSTRING(CHOVATEL,1,3)
	union 
		select SUBSTRING(CHOVATEL,1,1) as oznacenie , convert(decimal(5,2),AVG(PORLAK *1.0)) as porlak 
			from View_CP_LaktaciePreZostavy	
				where ZMENA in ('30','40') 
				and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
							or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
				group by SUBSTRING(CHOVATEL,1,1)
	union
		select 'SR' as oznacenie , convert(decimal(5,2),AVG(PORLAK *1.0)) as porlak 
			from View_CP_LaktaciePreZostavy	
				where ZMENA in ('30','40') 
				and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
							or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
	--select * from @porlak 
	--order by oznacenie

	insert into Roc_MLHD_Tab_20
	(
	Por,stlpec_6,stlpec_7,stlpec_8,stlpec_9,stlpec_10,stlpec_11,stlpec_12,stlpec_13,stlpec_14Mesiac ,stlpec_14Den, stlpec_15,stlpec_16,stlpec_17 ,stlpec_18,stlpec_19 ,stlpec_20,stlpec_21 ,stlpec_22,stlpec_23,stlpec_24
      ,stlpec_25 ,stlpec_26,stlpec_27,stlpec_28 ,stlpec_29,stlpec_30,stlpec_31, stlpec_32_1, stlpec_32_2, rok 
	)
	select 
	 ROW_NUMBER() OVER(ORDER BY t.kod asc) AS Por,
		upper(t.stlpec_6) as stlpec_6,t.stlpec_7 as stlpec_7,t.stlpec_8 as stlpec_8,t.stlpec_9 as stlpec_9,t.stlpec_10 as stlpec_10,t.stlpec_11 as stlpec_11,
		t.stlpec_12 as stlpec_12,t.stlpec_13 as stlpec_13, t.stlpec_14Den  as stlpec_14Den, t.stlpec_14Mesiac as stlpec_14Mesiac, t.stlpec_15 as stlpec_15,t.stlpec_16 as stlpec_16,t.stlpec_17  as stlpec_17,t.stlpec_18 as stlpec_18,
		t.stlpec_19 as stlpec_19 ,t.stlpec_20 as stlpec_20,t.stlpec_21  as stlpec_21 ,
		t.stlpec_22 as stlpec_22,t.stlpec_23 as stlpec_23,t.stlpec_24 as stlpec_24
		,t.stlpec_25 as stlpec_25 ,t.stlpec_26 as stlpec_26,t.stlpec_27 as stlpec_27,t.stlpec_28 as stlpec_28 ,t.stlpec_29 as stlpec_29,
		k.pocet_krav as stlpec_30,
		p.porlak as  stlpec_31,
		t.stlpec_32_1  as stlpec_32_1,  
		t.stlpec_32_2  as stlpec_32_2,  
		t.rok as rok
		
		
		from @tab1 as t
		left outer join @porlak as p on t.Oznacenie = p.oznacenie
		left outer join @stavKrav as k on t.Oznacenie = k.oznacenie
		--left outer join CR_LaktacneZostavy as l on l.filter = t.Oznacenie
				--where l.datumOd=@datumOd and l.datumDo= @datumPolRok
	end
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_PoslednaUzavretaPodlaMlieko]
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_DojvostPodlaPoslednaLaktacia
	declare @c varchar(14)

	declare @kod as int
	declare @nazov as varchar(20)
	declare @p1 as int;
	declare @p2 as int;
	declare @pn as int;
	declare @spolu1 int;
	declare @spolu2 int;
	declare @spolu3 int;

	declare @spolu1n int;
	declare @spolu2n int;
	declare @spolu3n int;

	declare @spolu1c int;
	declare @spolu2c int;
	declare @spolu3c int;

	declare chov cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	group by CHOVATEL
	having count(*)>=1 

	open chov
	fetch next from chov into @c;

	while @@FETCH_STATUS=0
	begin
		
		declare hranica cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open hranica
		fetch next from hranica into @nazov,@kod

		while @@FETCH_STATUS=0
		begin
			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @spolu1n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.zmena in (30,40))

			set @spolu2n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.zmena in (30,40))


			set @spolu3n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena in (30,40))


			if(@spolu1n=0) set @spolu1n=NULL;
			if(@spolu2n=0) set @spolu2n=NULL;
			if(@spolu3n=0) set @spolu3n=NULL;

			if(@p1=0) set @p1=NULL;
			if(@p2=0) set @p2=NULL
			if(@pn=0) set @pn=NULL


			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,(@p1*100)/@spolu1n,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2n,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3n,@c,'N');
			
			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod and p.zmena not in (30,40))

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod and p.zmena not in (30,40))

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod and p.zmena  not in (30,40))

						set @spolu1c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.zmena not in (30,40))

			set @spolu2c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.zmena not in (30,40))


			set @spolu3c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena  not in (30,40))


			if(@spolu1c=0) begin set @spolu1c=NULL; end
			if(@spolu2c=0) set @spolu2c=NULL;
			if(@spolu3c=0) set @spolu3c=NULL;

			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1c,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2c,@pn,
																			convert(float,(@pn*100)*1.00)/@spolu3c,@c,'C');

			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod)

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod )

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod)

			set @spolu1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			)

			set @spolu2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
		)


			set @spolu3=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena is not null
			)


			

			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3,@c,NULL);


			
			
			
			fetch next from hranica into @nazov,@kod;
		end

		close hranica;
		deallocate hranica;


		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1n,(@spolu1n*100)/@spolu1n,@spolu2n,(@spolu2n*100)/@spolu2n,@spolu3n,(@spolu3n*100)/@spolu3n,@c,'N')
		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1,(@spolu1*100)/@spolu1,@spolu2,(@spolu2*100)/@spolu2,@spolu3,(@spolu3*100)/@spolu3,@c,Null)
		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1c,(@spolu1c*100)/@spolu1c,@spolu2c,(@spolu2c*100)/@spolu2c,@spolu3c,(@spolu3c*100)/@spolu3c,@c,'C')
					
			
		fetch next from chov into @c;
	end

	close chov;
	deallocate chov;


END
go


-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 02.06.2015
-- Last update: 01.07.2015 -- osetrenie chyby pri duplicitnom plemene
--				02.07.2015 -- vracaju sa aj NULL spravnePS - nastava v pripade, kedy sa neda vypocitat, pretoze je chyba v rodicovi
								-- tj. ma neznameho rodica, rodic nema PS, rodic ma chybny sucet PS
-- Description:	Vypocet chybnych Plemennych skladieb
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_VypocNespravnaPlemennaSkladba_TEST]
--	@CHOVATEL [varchar] (9)
AS
BEGIN
	--DELETE FROM Ainbreeding2 where IB_verifikacia='U';
	--DELETE FROM CP_VypocNespravnaPlemennaSkladba 

	DECLARE 
		@chovatel as varchar(9),
		@uscislo as varchar(14),
		@otec as varchar(14),
		@matka as varchar(14),
		@kategoria as int,

		@PL1 [varchar](2),
		@KR1 [decimal](5,2),
		@PL2 [varchar](2),
		@KR2 [decimal](5,2),
		@PL3 [varchar](2),
		@KR3 [decimal](5,2),
		@PL4 [varchar](2),
		@KR4 [decimal](5,2),
		@PL5 [varchar](2),	

		@skladba as varchar(50),
		@pocet as int,
		@pocet_zmeny as int,
		@i as int;

	set @i = 1;
	set @pocet_zmeny = 0;

	set @pocet = (select count(*) from cm_krava
	where DOVVYR IS NULL 
	--AND CISKRAVY is not null --AND CHOVATEL = @chovatel
	and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
	and (OUSCIS is not null and MA is not null) )
	+
	(select count(*) from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null --AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null) )
	and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) )

	declare krava cursor  for	

	SELECT CISKRAVY, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUSCIS, MA, CHOVATEL, 1 as kategoria
	from cm_krava 
	where DOVVYR IS NULL 
	--AND CISKRAVY is not null 
-- AND CHOVATEL = @chovatel
		and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
		and (OUSCIS is not null and MA is not null)
	UNION
	SELECT CISTELATA, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUC, MATKA, CHOVATEL, 2 as kategoria
	from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null 
--	AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null)
		and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) 

	declare @stav2 varchar(50);

	open krava	
	fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;	
	WHILE @@FETCH_STATUS = 0 
		begin
			set @i = @i + 1;
			if (@i % 1000 = 0)
				print CAST(@i as varchar) + ' z ' + CAST(@pocet as varchar)
			--set @skladba = (select ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
			set @skladba = null
			set @stav2 = 'zhoda'
			select @skladba = case when p.PL1  is not null then
								ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
								+ ISNULL(p.PL2 + '-' + CONVERT(varchar, p.KR2), '') + '  ' 
								+ ISNULL(p.PL3 + '-' + CONVERT(varchar, p.KR3), '') + '  ' 
								+ ISNULL(p.PL4 + '-' + CONVERT(varchar, p.KR4), '') + '  ' 
								+ ISNULL(p.PL5, '') 
								end,--else '---' end,
								@stav2 = stav
							from C_aktual_plem_potomok_funkcia (@otec, @matka, @chovatel) as p
							where
								(
								--@PL1 <> p.PL1 OR
								--p.KR1 NOT BETWEEN @KR1 - 0.1 AND @KR1 + 0.1 OR
								----@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								--@PL2 <> p.PL2 OR
								--p.KR2 NOT BETWEEN @KR2 - 0.1 AND @KR2 + 0.1 OR
								----@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								--@PL3 <> p.PL3 OR
								----@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								--p.KR3 NOT BETWEEN @KR3 - 0.1 AND @KR3 + 0.1 OR
								--@PL4 <> p.PL4 OR
								----@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--p.KR4 NOT BETWEEN @KR4 - 0.1 AND @KR4 + 0.1 OR
								----@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								--@PL5 is not null
								--)
								@PL1 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								@PL2 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								@PL3 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								@PL4 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								@PL5 is not null
								)
								--podmienky pre osetrenie duplicity plemena
								OR
								(@PL1 in (@PL2, @PL3, @PL4, @PL5)
								or @PL2 in (@PL1, @PL3, @PL4, @PL5)
								or @PL3 in (@PL2, @PL1, @PL4, @PL5)
								or @PL4 in (@PL2, @PL3, @PL1, @PL5)
								or @PL5 in (@PL2, @PL3, @PL4, @PL1)
								)
								--(p.PL1 in (p.PL2, p.PL3, p.PL4, p.PL5)
								--or p.PL2 in (p.PL1, p.PL3, p.PL4, p.PL5)
								--or p.PL3 in (p.PL2, p.PL1, p.PL4, p.PL5)
								--or p.PL4 in (p.PL2, p.PL3, p.PL1, p.PL5)
								--or p.PL5 in (p.PL2, p.PL3, p.PL4, p.PL1))
							

			 print ('u: ' + @uscislo + 
					'    ch: ' + ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
								ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
								ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
								ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
								ISNULL(@PL5, '') + 
					'    s: ' + isNULL(@skladba, 'NULL') +
					'    stav: ' + isNULL(@stav2, 'NULL') )

			 --if (@skladba is not null and @stav2 = 'ok')
			 --if (@skladba is not null and @stav2 <> 'zhoda')

			 if (@stav2 <> 'zhoda')
			 --if (@skladba is not null)
			 begin
					set @pocet_zmeny = @pocet_zmeny + 1;

					--insert into CP_VypocNespravnaPlemennaSkladba
					--values ( @uscislo
					--		, @kategoria
					--		, ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
					--			ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
					--			ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
					--			ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
					--			ISNULL(@PL5, '')
					--		, @skladba	 )
			end
			fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;
		end
	close krava;
	deallocate krava;

	print 'najdenych rozdielov: ' + CAST(@pocet_zmeny as varchar)
END


--		exec [C_aktual_VypocNespravnaPlemennaSkladba] '810529011'


-- select * from CP_VypocNespravnaPlemennaSkladba

--	exec [C_aktual_VypocNespravnaPlemennaSkladba] 708711011
go

-- =============================================
-- Author:		<PSSR, š.p>
-- Create date: 
-- Description:	Priprava podkladov pre vypocet PH obtiaznosti porodov
-- =============================================
CREATE PROCEDURE [dbo].[C_Vybery_PORODY_PH]


AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	--SET NOCOUNT ON;
TRUNCATE TABLE [plis].[dbo].[CP_PORODY_PH]
 /* naplnenie tabulky CP_PORODY_PH*/

  insert into plis.dbo.CP_PORODY_PH
 (CHOVATEL,  CISKRAVY, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, DATOTEL, PORLAK, PRIEBPOROD, PRPORTEXT, CISTELATA, OTEC_TEL_LIN, OTEC_TEL_REG, POHLAVIE, POHLTEXT)


 select  l.chovatel, l.ciskravy, k.PL1, format(CONVERT(decimal(5, 2), k.KR1), 'g15') as KR1, k.PL2,format(CONVERT(decimal(5, 2), k.KR2), 'g15') as  KR2, k.pl3, 
       format(CONVERT(decimal(5, 2), k.KR3), 'g15') as KR3, k.pl4, format(CONVERT(decimal(5, 2), k.KR4), 'g15') as KR4,  k.pl5, datotel, l.porlak, PRIEBPOROD, po.TEXT , t.cistelata,
        t.OTECLIN, t.otecreg, t.POHLAVIE, cp.POPIS from CM_Laktacie as l
left outer join CM_Krava as k on l.CISKRAVY  = k.CISKRAVY
left outer join CC_Porody as po on l.PRIEBPOROD  = po.KOD
left outer join CM_Telata as t on l.CISKRAVY = t.MATKA and l.datotel = t.DATNAR
left outer join CC_Pohlavie as cp on t.POHLAVIE = cp.KOD

where k.PRIZNAKKU = '1' and k.pl1  in ( 'H','R', 'N' , 'M', 'S','MB','F') 


UNION
select  na.chovatel, na.ciskravy, k.PL1, format(CONVERT(decimal(5, 2), k.KR1), 'g15') as KR1,  k.PL2, format(CONVERT(decimal(5, 2), k.KR2), 'g15') as KR2,  k.pl3, format(CONVERT(decimal(5, 2), k.KR3), 'g15') as KR3, k.pl4, format(CONVERT(decimal(5, 2), k.KR4), 'g15') as KR4,  k.pl5, datotel, na.porlak, PRIEBPOROD, po.TEXT , t.cistelata,
        t.OTECLIN, t.otecreg, t.POHLAVIE, cp.POPIS from CM_Naplak as na
left outer join CM_Krava as k on na.CISKRAVY  = k.CISKRAVY
left outer join CC_Porody as po on na.PRIEBPOROD  = po.KOD
left outer join CM_Telata as t on na.CISKRAVY = t.MATKA and na.datotel = t.DATNAR
left outer join CC_Pohlavie as cp on t.POHLAVIE = cp.KOD

where k.PRIZNAKKU = '1' and k.pl1  in ( 'H','R', 'N' , 'M', 'S','MB','F') and 
 ( not exists (select  1 from CM_Laktacie as la where na.CISKRAVY = la.CISKRAVY  and na.PORLAK = la.PORLAK)
 )

  
 

END


go



CREATE PROCEDURE [dbo].[C_ZZ_Meso_KravyPodlaRokovALakt_CHOV]	
	@ParChov varchar(9)
AS
BEGIN
	/*********************************************

		using table:CM_Krava,

		changing table:CP_Meso_StadaPodlaVeku

		used for: Mesova krava -> (4) Zloženie stáda podľa veku a prebiehajúcej laktácie  report results

	********************************************/
	--TRUNCATE TABLE [PLIS].[dbo].CP_Meso_StadaPodlaVeku
	delete [PLIS].[dbo].CP_Meso_StadaPodlaVeku where chovatel = @ParChov

	SET NOCOUNT ON;
	declare @chov varchar(9);
	set @chov='';
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=0;
	set @pocet=0;
	

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;

	declare  chovately cursor 
	for SELECT  DISTINCT     CHOVATEL
		FROM    plis.dbo.CM_Krava AS k
		WHERE    (PRIZNAKKU = '2') AND (DOVVYR IS NULL) and chovatel = @ParChov
		GROUP BY CHOVATEL

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					print @chov;
				
						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
						
							set @count=@count+@pocet;
							
							
							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt1 into @pocet,@l
						end
						set @rok=1;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=2;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt2 into @pocet,@l
						end
						set @rok=2;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and porpreblak is not null
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.999999999999999)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							if(@l is not NULL)
							begin
							set @count=@count+@pocet;
							end

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt3 into @pocet,@l
						end
						set @rok=3;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt4 
						fetch next from lakt4 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt4 into @pocet,@l
						end
						set @rok=4;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;
						
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.99999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt5 
						fetch next from lakt5 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=5;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt5 into @pocet,@l
						end
						set @rok=5;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt6 
						fetch next from lakt6 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt6 into @pocet,@l
						end
						set @rok=6;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.99999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt7 into @pocet,@l
						end
						set @rok=7;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.99999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
								
							fetch next from lakt8 into @pocet,@l
						end
						set @rok=8;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt9 into @pocet,@l
						end
						set @rok=9;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.999999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt10 into @pocet,@l
						end
						set @rok=10;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.999999999999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
								print @l10;
							fetch next from lakt11 into @pocet,@l
						end
						set @rok=11;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt12 into @pocet,@l
						end
						set @rok=12;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.9999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							
							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt13 into @pocet,@l
						end
						set @rok=13;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))>= 14)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
							print @l
							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_Meso_StadaPodlaVeku values('14 a viac',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))is null)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_Meso_StadaPodlaVeku values('Bez dát. nar.',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					FETCH NEXT FROM chovately INTO @chov;
			end

			print @count;

			close chovately;
			deallocate chovately;
			
		update  PLIS.dbo.CP_Meso_StadaPodlaVeku
		set l10=null
		where l10=0;
END


go

CREATE PROCEDURE [dbo].[CR_KUMP_MlDobytka_1_prepocet] 

	@rok int,
	@mesiac int

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'MP' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_KUMP_MlDobytka_1 @chov, @rok,@mesiac

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Funkcnost:
-- pomocou jedineho query: select @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;
-- (funkcia max je tam vlozena, aby tento query vratil null, aj ked neexistuju rodicia daneho usneho cisla, 
-- ak by tam max nebolo, vrati ziadne riadky pri neznamych rodicoch (je potrebne aby vratilo NULL))
-- funkcia hlada otcov a matky, ktorych jednak vklada do @tab, funkcia vracia tabulku @tab, a takisto vklada rodicov aj do retazca,
-- z ktoreho vybera nasledujuceho otca alebo matku, a zistuje jeho otca a matku atd...(nesiaha sa selectom do @tab)
-- podmienka vonkajsieho cyklu @h<=3 urcuje hlbku generacie (@h<=3 je do hlbky 3, t.j. 15 predkov, zacina sa od otca a matky ako 1. gen.)
-- (@h<=5 by bola do hlbky generacie 5, t.j. 62 predkov)
-- v pripade, ak ma byk usne cislo dlzku mensiu ako 14 znakov, doplni $ do 14 znakov. 
-- pri vyhladavani rodicov so znakom $, ho zmeni na usne cislo bez $, t.j. take, ake je v databaze.
-- v pripade ak nema usne cislo rodicov, namiesto nich ulozi do pola 14 prazdnych medzier.
-- v @pole su jednotlive usne cisla oddelene ciarkou.
-- pri zmene hlbky rodokmena, treba nastavit @h<=3, inu hodnotu a zvysit dlzku @pole.
-- jednotlivi rodicia idu za radom v @tab nasledovne: 
-- O,M,OO,MO,OM,MM,OOO,MOO,OMO,MMO,OOM,MOM,OMM,MMM,OOOO,MOOO,OMOO,MMOO,OOMO,MOMO,OMMO,MMMO,
-- OOOM, MOOM, OMOM, MMOM, OOMM, MOMM, OMMM, MMMM atd. vzdy od otca


--upravene pre osobne a testovacie ucely
-- =============================================
CREATE FUNCTION [dbo].[ZistiRodokmenTabulkaVladik](@usnecislo varchar(14))
RETURNS @tab table(rodokmen varchar(14))
AS
begin 

declare @otec varchar(14)
set @otec = ''

declare @matka varchar(14)
set @matka = ''

declare @i int;
set @i = 1;

declare @j int;
set @j = 1;

declare @h int;
set @h = 1;

declare @counter int;
set @counter = 1;

declare @pole varchar(500)
set @pole = '';


insert into @tab values (@usnecislo); --otec 1 generacia

while @h<=10 --3 generacie
	begin
	set @i = 1;
		while @i <= @j
			begin
				set @usnecislo = REPLACE(@usnecislo,'$','');
				select    @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;			
				if (@usnecislo = '              ') begin set @otec = null; set @matka = null; end; /*aby sa neprenasali cisla predosle do pola na nespravne miesto*/
				if (@otec is not null and @matka is not null)	
					begin	
						set @pole = @pole+@otec+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(@otec),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is null and @matka is not null)	
					begin				
						set @pole = @pole+'              '+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(null),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is not null and @matka is null)	
					begin				
						set @pole = @pole+@otec+','+'              '+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(@otec),(null)	
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
				if (@otec is null and @matka is null) 
					begin
						set @pole = @pole+'              '+','+'              '+','; 		
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(null),(null)		
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
			end;	
		set @j = POWER(2,@h);
	set @h = @h + 1;
	end;
return 

end;


/*
declare  @tab table(rodokmen  varchar(500))
insert into @tab values('John'),('Sarah'),('George')

select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))

select rodokmen from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))
use plis
select rodokmen from dbo.ZistiRodokmenTabulka('SK000800389967')
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')

select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')
group by rodokmen having count(rodokmen) >= 2

SELECT count(rodokmen) FROM dbo.ZistiRodokmenTabulka('SK000800389967') 
as tab where (select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800389967') where rodokmen = tab.rodokmen) > 1

*/
go

-- =============================================
-- Author:		Vladimir Durch
-- Create date: 11.01.2016
--		Update: 14.11.2017 - opravy - vid druha funkcia
--				20.11.2017 - zjednotenie vypoctov -> hl. fcia na vypocet plemena [S_vypocet_plem_potomok_funkcia2]
-- Description:	Vypocet plemena potomka na zaklade rodicov (barana a bahnice)
-- =============================================
CREATE FUNCTION [dbo].[S_vypocet_plem_potomok_funkcia]
(
	/*@otec char(10),
	@matka char(10),
	@plemeno_menovka char(8)
	*/
	@BarCis char(8),
	@BahCis char(8)
	--,
	--@Chov char(9)
)
RETURNS varchar(10)
AS
BEGIN
			-- Ak je viac plemien ako 4? podla coho ich spocitat a zoradit?
		-- plemeno pod 11 sa pripocita k tym ostatnym plemenam nad 11...
		--use durech_db

		--drop table @table_podiel
		--drop table @table_podiel2


		--declare @menovka varchar(8) = 'C '

		declare @otec char(10)
		declare @matka char(10)
		declare @menovka varchar(8) --= 'A B C '
		declare @chov char(9)

		--PLEM ci PLEMS <<<< ???? tak PLEM
		--set @otec = (select PLEMs as @otec from SM_BARAN where BARCIS = @BarCis)
		select @otec = PLEM from SM_BARAN where BARCIS = @BarCis
		--set @matka = (select PLEMs from SM_BAHNICA where BAHCIS = @BahCis)
		select @matka = PLEM, @chov = KROKR + PODNIK + STADO from SM_BAHNICA where BAHCIS = @BahCis

		return dbo.[S_vypocet_plem_potomok_funkcia2] (@otec, @matka)

		/*
		--plemeno menovky
		set @menovka = (select plem from NM_OVDETAIL where 
				--KRAJ = substring(@chov, 1,1)
				--and OKRES = substring(@chov, 2,2)
				--and PODNIK = substring(@chov, 4,3)
				--and chov = substring(@chov, 7,3)
				KRAJ = substring(@chov, 1,1)
				and OKRES = substring(@chov, 2,2)
				and PODNIK = substring(@chov, 4,3)
				and chov = substring(@chov, 7,3)
		)

		declare  @table_podiel table
		(
			plemeno char(2),
			podiel decimal(5,2),
			menovka decimal(1,0),	-- ak je v plemene na menovke chovu tak =1, inak =0
			rodic decimal(1,0),		-- ak je v plemene otca tak =2, inak je v plemene matky =1
			priorita decimal(2,0)
		)

		declare @table_podiel2 table
		(
			plemeno char(2),
			podiel decimal(5,2),
			menovka decimal(1,0),	-- ak je v plemene na menovke chovu tak =1, inak =0
			rodic decimal(1,0),		-- ak je v plemene otca tak =2, inak je v plemene matky =1, ak obaja tak =3
			priorita decimal(2,0)
		)

		--declare @matka varchar(10) = 'AMC     02'
		--declare @otec varchar(10) = 'C       00'
		--declare @matka varchar(10) = 'AMC A B 14'
		--declare @otec varchar(10) = 'C A E D 14'

		declare @perc1 decimal(5,2)
		declare @perc2 decimal(5,2)
		declare @perc3 decimal(5,2)
		declare @perc4 decimal(5,2)

		select @perc1 = percplem1,
				@perc2 = percplem2,
				@perc3 = percplem3,
				@perc4 = percplem4 from SC_PodKrvi where CISKOD = SUBSTRING(@matka, 9, 10)



		insert into @table_podiel 
		values (SUBSTRING(@matka, 1, 2), @perc1, 0, 2, 5),
				(SUBSTRING(@matka, 3, 2), @perc2, 0, 2, 6),
				(SUBSTRING(@matka, 5, 2), @perc3, 0, 2, 7),
				(SUBSTRING(@matka, 7, 2), @perc4, 0, 2, 8)


		select @perc1 = percplem1,
				@perc2 = percplem2,
				@perc3 = percplem3,
				@perc4 = percplem4 from SC_PodKrvi where CISKOD = SUBSTRING(@otec, 9, 10)

		insert into @table_podiel 
		values (SUBSTRING(@otec, 1, 2), @perc1, 0, 1, 1),
				(SUBSTRING(@otec, 3, 2), @perc2, 0, 1, 2),
				(SUBSTRING(@otec, 5, 2), @perc3, 0, 1, 3),
				(SUBSTRING(@otec, 7, 2), @perc4, 0, 1, 4)

		update @table_podiel 
		set menovka = 0

		--nastavenie menovky podla plemena v menovke
		update @table_podiel 
		set menovka = 1
		where CHARINDEX(plemeno, @menovka) <> 0 


		delete from @table_podiel
		where plemeno = '  '


		--Spojenie rovnakych plemien a ich zotriedenie 
		insert into @table_podiel2
		select * from (
		select plemeno, sum(podiel) /2 as podiel, sum(menovka) as menovka, sum(rodic) as  rodic, min(priorita) as priorita
		from @table_podiel
		group by plemeno
		) as t
		order by podiel desc, menovka desc, rodic desc, priorita asc


		--select * from @table_podiel
		--select * from @table_podiel2

		delete from @table_podiel2
		where plemeno not in (select top(4) plemeno from @table_podiel2)

		declare @podiel int = 12;

		declare @pocet decimal(5,2) = (select count(*) from @table_podiel2 where podiel >= @podiel)
		declare @sum_podiel decimal(5,2) = (select sum(podiel) from @table_podiel2 where podiel >= @podiel)

		declare @zvysok decimal(5,2) = (100 - @sum_podiel) / @pocet

		--print @zvysok

		update @table_podiel2
		set podiel = 0
		where podiel < @podiel

		update @table_podiel2
		set podiel = podiel + (@zvysok)
		where podiel <> 0


		--select * from @table_podiel2

		--declare @test float = 57	--31.25

		--select p.* from SC_PodKrvi p
		--left join SC_PodKrvi k on p.CISKOD = (k.CISKOD + 1)
		--where @test between p.percplem1 and k.percplem1 
		--and (p.percplem1


		set @pocet = (select count(*) from @table_podiel2)

		declare @kod varchar(2)

		declare @podiel1 decimal(5,2) = (select top 1 podiel from @table_podiel2)
		declare @podiel2 decimal(5,2) = (select top 1 podiel from @table_podiel2 where podiel not in (select top 1 podiel from @table_podiel2))

		if(@pocet = 1)
		begin
			set @kod = '00'
		end
		if (@pocet = 2)
		begin
				 if (@podiel1 > 81) set @kod = '01'
			else if (@podiel1 > 69) set @kod = '02'
			else if (@podiel1 > 56) set @kod = '03'
			else set @kod = '04'
		end
		else if(@pocet = 3)
		begin
				 if (@podiel1 > 69) set @kod = '05'
			else if (@podiel1 > 56) set @kod = '06'
			else if (@podiel1 > 44 and @podiel2 > 31) set @kod = '07'
			else if (@podiel1 > 44 and @podiel2 <= 31 ) set @kod = '08'
			else set @kod = '09'

		end
		else if(@pocet = 4)
		begin
				 if (@podiel1 > 56) set @kod = '10'
			else if (@podiel1 > 44) set @kod = '11'
			else if (@podiel1 > 31 and @podiel2 > 31) set @kod = '12'
			else if (@podiel1 > 31 and @podiel2 <= 31 ) set @kod = '13'
			else set @kod = '14'

		end



		DECLARE @vysledok VARCHAR(10)

		SELECT @vysledok = COALESCE(@vysledok + '', '') + plemeno
		FROM @table_podiel2
		--WHERE plemeno = @OrderNumber

		--set @vysledok = (select @vysledok + RIGHT('        ', 8-len(@vysledok)) + @kod )
		set @vysledok = (select @vysledok + RIGHT('        ', 8-datalength(@vysledok)) + @kod )	--fix 14.11.2017 - len nahradeny datalength, vid problem s medzerami v len...
		--set @vysledok += @kod


		return @vysledok;

		*/
		
END

--		o='ZVVFLC  06' m= 'ZVVF    04'
--		select  dbo.[S_vypocet_plem_potomok_funkcia] ('00432518', '00497903')
go

CREATE procedure [dbo].[Roc_MLHD_21]
	@chov varchar(3),
	@datumOd date,
	@datumDo date
	  --use plis --Declare @datumOd date, @datumDo date, @chov varchar(9),  --  set @datumOd ='2017-01-01' -- set @datumDo ='2017-10-15' -- set @chov = '301701031'
as 
begin
Declare @tab21 TABLE
	  (
	  KRAJ VARCHAR(1)NULL,
	  OKRES VARCHAR(2)NULL,
	  OKRES_NAZOV VARCHAR(30)NULL,
	  Por_v_okrese varchar(2)null,
	  NAZOV VARCHAR(50)NULL,
	  ROK VARCHAR(4),
	   stpec_7 [int] NULL,
		[stpec_8] [int] NULL,
		[stpec_9] [int] NULL,
		[stpec_10] [float] NULL,
		[stpec_11] [int] NULL,
		[stpec_12] [float] NULL,
		[stpec_13] [int] NULL,
		[stpec_14Mesiac] [int] NULL,
		[stpec_14Den] [int] NULL,
		[stpec_15] [int] NULL,
		[stpec_16] [int] NULL,
		[stpec_17] [int] NULL,
		[stpec_18] [float] NULL,
		[stpec_19] [int] NULL,
		[stpec_20] [float] NULL,
		[stpec_21] [int] NULL,
		[stpec_22] [int] NULL,
		[stpec_23] [int] NULL,
		[stpec_24] [int] NULL,
		[stpec_25] [int] NULL,
		[stpec_26] [float] NULL,
		[stpec_27] [int] NULL,
		[stpec_28] [float] NULL,
		[stpec_29] [int] NULL
	   )

   INSERT INTO @tab21   -----vyber chovov
	   (kraj, okres, OKRES_NAZOV, Por_v_okrese, NAZOV, ROK,
		stpec_7,stpec_8, stpec_9, stpec_10, stpec_11, stpec_12, stpec_13,stpec_14Den, stpec_14Mesiac, stpec_15, stpec_16, stpec_17, stpec_18, stpec_19, stpec_20,
		stpec_21,
		 stpec_22, stpec_23 , 
		stpec_24, stpec_25, 
		stpec_26, stpec_27, stpec_28, stpec_29
		)
   
	select o.kraj, o.okres, o.NAZOV, 
		'1' as Por_v_okrese,
		'Výsledky za okres'+ ' ' +o.NAZOV as NAZOV,
		datepart (year, @datumOd) as rok,
		z.PocLakN1 as stpec_7
		,z.LakdniNL1 as stpec_8
		,z.MliekNorL1 as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,z.TukNorL1 as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,z.BielkNorL1 as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,z.LakDniNL2 as stpec_16
		,z.MliekNorL2 as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,z.TukNorL2 as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,z.BielkNorL2 as stpec_21
		,z.MedziobdL2 as stpec_22
		,z.PocLakNcelk as stpec_23
		,z.LakDniNCelk as stpec_24
		,z.MliekNorCelk as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,z.TukNorCelk as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,z.BielkNorCelk as stpec_29
	from  NC_OKRES as o 
		  left join CR_LaktacneZostavy_Opr as z on z.filter = o.kraj + o.okres and @datumOd = z.DatumOd and @datumDo = z.DatumDo
	where o.kraj + o.okres = @chov  --  SUBSTRING(@chov,1,3)

	union 

		select o.kraj, o.okres, o.NAZOV, 
			'2' as Por_v_okrese,
			'Výsledky za predchádzajúci rok' as NAZOV,
			datepart (year, @datumOd) as rok,
			  a.stpec_7 as stpec_7 ,a.stpec_8 as stpec_8 ,a.stpec_9 as stpec_9 ,a.stpec_10 as stpec_10 ,a.stpec_11 as stpec_11 ,a.stpec_12 as stpec_12 ,a.stpec_13 as stpec_13
			   ,a.stpec_14Den as stpec_14Den, a.stpec_14Mesiac as stpec_14Mesiac ,a.stpec_15 as stpec_15 ,a.stpec_16 as stpec_16,a.stpec_17 as stpec_17 ,a.stpec_18 as stpec_18
			   ,a.stpec_19 as stpec_19 ,a.stpec_20 as stpec_20,a.stpec_21 as stpec_21,
			   a.stpec_22 as stpec_22 ,a.stpec_23 as stpec_23 ,
			   a.stpec_24 as stpec_24
			   ,a.stpec_25 as stpec_25,
			   a.stpec_26 as stpec_26 ,a.stpec_27 as stpec_27,a.stpec_28 as stpec_28 ,a.stpec_29 as stpec_29
		from  NC_OKRES as o 
			  left outer join  Roc_MLHD_Tab_21A as a on  a.kraj+ a.okres = o.KRAJ + o.okres
															and a.Nazov ='Výsledky za okres' + ' ' + o.NAZOV 
															and a.rok = datepart(year,DATEADD(year,-1,@datumDo))
		where o.kraj + o.okres = @chov -- SUBSTRING(@chov,1,3)

	union
		select o.kraj, o.okres, o.NAZOV, 
		('1'+ convert(varchar,right(s.ID,1))) as Por_v_okrese,
		s.NAZOV as NAZOV,
		datepart (year, @datumOd) as rok,
		z.PocLakN1 as stpec_7
		,z.LakdniNL1 as stpec_8
		,z.MliekNorL1 as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,z.TukNorL1 as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,z.BielkNorL1 as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,z.LakDniNL2 as stpec_16
		,z.MliekNorL2 as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,z.TukNorL2 as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,z.BielkNorL2 as stpec_21
		,z.MedziobdL2 as stpec_22
		,z.PocLakNcelk as stpec_23
		,z.LakDniNCelk as stpec_24
		,z.MliekNorCelk as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,z.TukNorCelk as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,z.BielkNorCelk as stpec_29
	from  NC_OKRES as o 
			
		  left join CR_LaktacneZostavy_Opr as z on z.filter = o.kraj + o.okres + ', ,' + ('S'+(select id from NC_Sektor where id in (select SUBSTRING(z.Filter,8,2)))) and @datumOd = z.DatumOd and @datumDo = z.DatumDo
		  left outer join NC_Sektor as s on s.ID = SUBSTRING(z.Filter,8,2)
	where o.kraj + o.okres = @chov-- SUBSTRING(@chov,1,3)

	--select * from @tab21

	insert into Roc_MLHD_Tab_21A
		(
		kraj ,okres,Okres_nazov,Por_v_okrese,Nazov,stpec_7, stpec_8 ,stpec_9, stpec_10 ,stpec_11, stpec_12 ,stpec_13, stpec_14Den ,stpec_14Mesiac , stpec_15 ,stpec_16 , stpec_17, stpec_18
		,stpec_19 , stpec_20,
		stpec_21, stpec_22 ,stpec_23, stpec_24,
		stpec_25,stpec_26, stpec_27,stpec_28 , stpec_29,rok
		)
	select 
	kraj ,okres,
	Okres_nazov ,Por_v_okrese,Nazov,       
    stpec_7, stpec_8 ,stpec_9, stpec_10 ,stpec_11, stpec_12 ,stpec_13, stpec_14Den ,stpec_14Mesiac , stpec_15 ,stpec_16 , stpec_17, stpec_18
	,stpec_19 , stpec_20,stpec_21, 
	stpec_22 ,stpec_23, stpec_24,stpec_25, 
	stpec_26, stpec_27,stpec_28 , stpec_29,rok

	  from  @tab21

	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description: mliekova zostava
-- =============================================
CREATE PROCEDURE [dbo].[Zostava_9C2] (@chovatel varchar(9))
AS
BEGIN

   declare @pocet_do320 float;
   declare @pocet_od321az365 float;
   declare @pocet_od366az385 float;
   declare @pocet_od386az400 float;
   declare @pocet_od401az420 float;
   declare @pocet_od421az440 float;
   declare @pocet_od441az460 float;
   declare @pocet_od461 float;
   declare @pocet_spolu float;
   
   set @pocet_do320 = 0;
   set @pocet_od321az365 = 0;
   set @pocet_od366az385 = 0;
   set @pocet_od386az400 = 0;
   set @pocet_od401az420 = 0;
   set @pocet_od421az440 = 0;
   set @pocet_od441az460 = 0;
   set @pocet_od461 = 0;
   set @pocet_spolu = 0;
   
   declare @v_ciskravy varchar(14);
   declare @v_priemerMOzaUk_aj_PrebzaKravu float;
   
   /*declare @v_celkovePriemerneMO float;
   set @v_celkovePriemerneMO = 0;*/
   
   declare krava_cursor1 cursor for 
   
/*
  select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from (   
   select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l, CM_Krava k     
   where l.CISKRAVY = k.CISKRAVY and l.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1'   
   union
   select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n, CM_Krava k     
   where n.CISKRAVY = k.CISKRAVY and n.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1'  ) as tab 
   group by tab.CISKRAVY
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 
*/
select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.ciskravy, AVG(MEDZIOBD) as priemerMOzaUk_aj_Preb from (   
   select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   where l.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null     
   union
   select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV    
   where n.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null  ) 
   as tab 
   group by tab.CISKRAVY
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 

	OPEN krava_cursor1   
	FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu

		WHILE @@FETCH_STATUS = 0   
		BEGIN   
				set @v_priemerMOzaUk_aj_PrebzaKravu =  round(@v_priemerMOzaUk_aj_PrebzaKravu,0);
				/*set @v_celkovePriemerneMO = @v_celkovePriemerneMO + @v_priemerMOzaUk_aj_PrebzaKravu;*/
				if (@v_priemerMOzaUk_aj_PrebzaKravu <=320)
					begin
						set @pocet_do320 = @pocet_do320 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 321 and @v_priemerMOzaUk_aj_PrebzaKravu <= 365)
					begin
						set @pocet_od321az365 = @pocet_od321az365 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 366 and @v_priemerMOzaUk_aj_PrebzaKravu <= 385)
					begin
						set @pocet_od366az385 = @pocet_od366az385 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 386 and @v_priemerMOzaUk_aj_PrebzaKravu <= 400)
					begin
						set @pocet_od386az400 = @pocet_od386az400 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 401 and @v_priemerMOzaUk_aj_PrebzaKravu <= 420)
					begin
						set @pocet_od401az420 = @pocet_od401az420 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 421 and @v_priemerMOzaUk_aj_PrebzaKravu <= 440)
					begin
						set @pocet_od421az440 = @pocet_od421az440 + 1;
					end
					
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 441 and @v_priemerMOzaUk_aj_PrebzaKravu <= 460)
					begin
						set @pocet_od441az460 = @pocet_od441az460 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 461)
					begin
						set @pocet_od461 = @pocet_od461 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu is not null) /*prvostky sa neberu do uvahy*/
					begin
						set @pocet_spolu = @pocet_spolu + 1;
					end
			
				
					  
		FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu
		END
	/*if (@pocet_spolu!=0)
	begin	
	set @v_celkovePriemerneMO = round(@v_celkovePriemerneMO / @pocet_spolu,0)			
	end */
	
	declare @v_percento_do320 float;
	declare @v_percento_od321az365 float;
	declare @v_percento_od366az385 float;
	declare @v_percento_od386az400 float;
	declare @v_percento_od401az420 float;
	declare @v_percento_od421az440 float;
	declare @v_percento_od441az460 float;
	declare @v_percento_od461 float;
	declare @v_percento_spolu float;
	
	set @v_percento_do320 = 0;
	set @v_percento_od321az365 = 0;
	set @v_percento_od366az385 = 0;
	set @v_percento_od386az400 = 0;
	set @v_percento_od401az420 = 0;
	set @v_percento_od421az440 = 0;
	set @v_percento_od441az460 = 0;
	set @v_percento_od461 = 0;
	set @v_percento_spolu = 0;
	
	if (@pocet_spolu != 0)
	begin
	set @v_percento_do320 =  round(@pocet_do320 * 100 / @pocet_spolu, 1)
	set @v_percento_od321az365 = round(@pocet_od321az365 * 100 / @pocet_spolu,1)
	set @v_percento_od366az385 = round(@pocet_od366az385 * 100 / @pocet_spolu,1)
	set @v_percento_od386az400 = round(@pocet_od386az400 * 100 / @pocet_spolu,1)
	set @v_percento_od401az420 = round(@pocet_od401az420 * 100 / @pocet_spolu,1)
	set @v_percento_od421az440 = round(@pocet_od421az440 * 100 / @pocet_spolu,1)
	set @v_percento_od441az460 = round(@pocet_od441az460 * 100 / @pocet_spolu,1)
	set @v_percento_od461 = round(@pocet_od461 * 100 / @pocet_spolu,1)


	set @v_percento_spolu = round(((@pocet_do320 + @pocet_od321az365 + 
	@pocet_od366az385 + @pocet_od386az400 + @pocet_od401az420 + @pocet_od421az440 + @pocet_od441az460 + @pocet_od461) * 100) / @pocet_spolu,1)
	end;
	
	select 1 as poradie ,	'do 320 dní ' as dni, @pocet_do320 as pocet,  @v_percento_do320 as percento
	union 
	select 2 as poradie,	'321-365 dní ' as dni,	@pocet_od321az365 as pocet,  @v_percento_od321az365 as percento
	union 
	select 3 as poradie,	'366-385 dní ' as dni,	@pocet_od366az385 as pocet,  @v_percento_od366az385 as percento
	union 
	select 4 as poradie,	'386-400 dní ' as dni,	@pocet_od386az400 as pocet ,  @v_percento_od386az400 as percento
	union 
	select 5 as poradie,	'401-420 dní ' as dni,	@pocet_od401az420 as pocet,  @v_percento_od401az420 as percento
	union 
	select 6 as poradie,	'421-440 dní ' as dni,	@pocet_od421az440 as pocet,  @v_percento_od421az440 as percento
	union 
	select 7 as poradie,	'441-460 dní ' as dni,	@pocet_od441az460 as pocet,  @v_percento_od441az460 as percento
	union 
	select 8 as poradie,	'nad 461 dní ' as dni,	@pocet_od461 as pocet,  @v_percento_od461 as percento
	union 
	select 9 as poradie,	'spolu ' as dni, @pocet_spolu as pocet, @v_percento_spolu as percento
	/*union 
	select 10 as poradie,	'priemerné MO ' as dni, @v_celkovePriemerneMO as pocet, null as percento*/
	order by poradie
	
	CLOSE krava_cursor1   
	DEALLOCATE krava_cursor1
END
go

CREATE PROCEDURE [dbo].[CR_Evid_karta_KUMP_potomkovia]
@chov VARCHAR(9),
@rok INT,
@mesiac INT,
@vyber varchar(max)

AS

BEGIN
--set @vyber='''' + @vyber + ''''
set @vyber=''


	IF OBJECT_ID('tempdb..#potomok') IS NOT NULL DROP TABLE #potomok
	IF OBJECT_ID('tempdb..#potomok2') IS NOT NULL DROP TABLE #potomok2

--DECLARE @idr bigint

-----

-- set @idr=( SELECT /*TOP 1*/ IDR
-- FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
-- WHERE @CHOV = chov and @rok=rok and @mesiac=MESIAC
-- )

 declare @IRDtable table
 (
 IDR bigint, 
 chov varchar(9),
 mesiac int,
 rok int
 )
  insert into @IRDtable
   SELECT DISTINCT IDR,CHOV,MESIAC,ROK 
	FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
	 WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC


 --select * from @IRDtable
--SELECT IDR INTO #temp FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @chov AND ROK = @rok AND MESIAC = @mesiac

 declare @zoznamKrav table
		 (
		 chov varchar(9),
		 ciskravy varchar(14)
		 )
	insert into @zoznamKrav
		select  CHOV, k.ciskravy
		from  @IRDtable as i
		left join CM_Krava as k on k.SPRACINSERT = i.IDR or k.SPRACUPDATE = i.IDR
		WHERE i.CHOV = @chov and @rok=i.rok and @mesiac=i.MESIAC and k.PORPREBLAK is not null
	union 
		select  CHOV, t.MATKA
		from  @IRDtable as i
		left join CM_Telata as t on t.SPRACINSERT=i.IDR or t.SPRACUPDATE= i.IDR
		WHERE i.CHOV = @chov and @rok=i.rok and @mesiac=i.MESIAC

			
if (@vyber<>'') 
	begin
		select x.uscislo as MATKA,
                t.PORLAK as PORLAK,
				t.CISTELATA as CISTELATA,
				t.OTECLIN+'-'+convert(varchar,t.OTECREG) as LINREG_BYK,
				t.OUC AS OUC,
				t.DATNAR AS DATNAR,
                t.POHLAVIE AS POHLAVIE,
				t.URCTEL AS URCTEL,
				t.HMOTNAR AS HMOTNAR,
				v.vaha120 AS VAHA_120,
				v.vaha210 AS VAHA_210,
                convert(varchar,convert(int,ROUND(AVG(DATEDIFF(MM, k.DATNAR, t.DATNAR) / 12), 0)))+'-'+
                substring(convert(varchar,CONVERT(decimal(10),round( (AVG(DATEDIFF(MM, k.DATNAR, t.DATNAR) % 12)),0))),1,2) as VEK,
                p.Medziobd AS MEDZIOBD,
                t.HMOTOT AS HMOTOT,
                t.PRIEBPOR AS PRIEBPOR
		into #potomok
               			
				 from stringToTable (@vyber) x
							  left outer join  @zoznamKrav as z on x.uscislo = z.ciskravy
				left outer join  plis.dbo.CM_Telata as t on t.MATKA = z.ciskravy
                left join plis.dbo.CP_Meso_TelataVahy as v
                on t.CISTELATA=v.cistelata
                left join plis.dbo.CM_Krava as k
                on k.CISKRAVY=t.MATKA
                left join plis.dbo.Cp_Meso_TelataPoLaktacii as p
                on (k.CISKRAVY=p.Ciskrava)

                --where z.ciskravy = @oznacenie

                where t.DATNAR=p.DATOTEL

                group by t.PORLAK,t.CISTELATA,t.OTECLIN,t.OTECREG,t.OUC,t.DATNAR,t.POHLAVIE,t.URCTEL,t.HMOTNAR,v.vaha120,
                v.vaha210,p.Medziobd,t.HMOTOT,t.PRIEBPOR,x.uscislo

                order by x.uscislo ,t.DATNAR

				select * from #potomok
	end 
else
	begin

		select t.matka as MATKA,
                t.PORLAK as PORLAK,
				t.IDTELATA as Idtelata,
				t.CISTELATA as CISTELATA,
				t.OTECLIN+'-'+convert(varchar,t.OTECREG) as LINREG_BYK,
				t.OUC AS OUC,
				t.DATNAR AS DATNAR,
                t.POHLAVIE AS POHLAVIE,
				t.URCTEL AS URCTEL,
				t.HMOTNAR AS HMOTNAR,
				v.vaha120 AS VAHA_120,
				v.vaha210 AS VAHA_210,
                convert(varchar,convert(int,ROUND(AVG(DATEDIFF(MM, k.DATNAR, t.DATNAR) / 12), 0)))+'-'+
                substring(convert(varchar,CONVERT(decimal(10),round( (AVG(DATEDIFF(MM, k.DATNAR, t.DATNAR) % 12)),0))),1,2) as VEK,
                p.Medziobd AS MEDZIOBD,
                t.HMOTOT AS HMOTOT,
                t.PRIEBPOR AS PRIEBPOR

			into #potomok2
                from  @zoznamKrav as z
				left outer join  plis.dbo.CM_Telata as t on t.MATKA = z.ciskravy
                left join plis.dbo.CP_Meso_TelataVahy as v
                on t.CISTELATA=v.cistelata
                left join plis.dbo.CM_Krava as k
                on k.CISKRAVY=t.MATKA
                left join plis.dbo.Cp_Meso_TelataPoLaktacii as p
                on (k.CISKRAVY=p.Ciskrava)

               where t.DATNAR=p.DATOTEL

                group by t.IDTELATA, t.matka,t.PORLAK,t.CISTELATA,t.OTECLIN,t.OTECREG,t.OUC,t.DATNAR,t.POHLAVIE,t.URCTEL,
				t.HMOTNAR,v.vaha120, v.vaha210,p.Medziobd,t.HMOTOT,t.PRIEBPOR

                order by t.MATKA, t.DATNAR

				select * from #potomok2

				
		end
end
go

CREATE FUNCTION [dbo].[function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat]
(	
	@p_chovnar varchar(9)
)
RETURNS TABLE 
AS
RETURN 
(
	SELECT     IDTELATA, CISTELATA, CHOVNAR, OTECLIN, OTECREG, OUC, MATKA, HMOTOT, DATNAR, HMOTNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, TYPPLEM, 
                      CASE WHEN t .farba = '01' THEN 'červená' WHEN t .farba = '00' THEN 'čierna' WHEN t .farba = '02' THEN 'žltostrakatá' WHEN t .farba = '03' THEN 'hnedá' WHEN t .farba IS NULL 
                      THEN 'bez' ELSE 'iná' END AS nfarba, PORLAK, POHLAVIE, ZNAKET, PREUKAZ, DOBANOS, CHOVATEL, PRIZNAKKU, PRIEBPOR, URCTEL, PRICOBTPOR, PRICUHYN, DOVVYR, DATVYR, IDMA, IDOT,
                       DONORKA, IDDONOR
FROM         dbo.CM_Telata AS t
WHERE     (PRIZNAKKU = '1') AND (POHLAVIE NOT IN ('16', '26', '61', '62', '63', '71')) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PORLAK IS NOT NULL) and chovnar like @p_chovnar + '%'
)
go

CREATE procedure  [dbo].[Roc_MLHD_15]
	@datumOd date,
	@datumDo date

	as 
	begin

    delete from Roc_MLHD_Tab_15 where rok = datepart(year,@datumOd);
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @kravy table
	(
	ciskravy varchar(14),
	CHOVATEL varchar (9),
	MLIEKNOR float,
	PLEM_TYP varchar(10)
		)
	insert into @kravy
	select distinct CISKRAVY as ciskravy,
			CHOVATEL as CHOVATEL,
			MAX(MLIEKNOR) as MLIEKNOR,
			PLEM as PLEM_TYP
	from  dbo.View_CP_LaktaciePreZostavy
		where  ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
						or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
					and MLIEKCEL <>''
					and ZMENA in ('30','40')
		Group by CISKRAVY, CHOVATEL, PLEM
		ORDER BY ciskravy
	--select * from @kravy order by ciskravy
	
declare @SR table
	(
	ciskravy varchar(14),
	Por_SR bigint,
	MLIEKNOR float,
	CHOVATEL varchar (9)
	)
	
	insert into @SR
		select distinct CISKRAVY as ciskravy,
			ROW_NUMBER() OVER(ORDER BY MLIEKNOR desc) AS Por_SR,
			MLIEKNOR as MLIEKNOR,
			CHOVATEL as CHOVATEL
		from  @kravy
		ORDER BY MLIEKNOR
		--select * from @SR order by ciskravy

	declare @Kraje table				
			(
			Kraj varchar (3),
			ciskravy varchar(14),
			Por bigint,
			Mlieknor float
			)
			
	declare @counterK int,  @kraj varchar(3)
		
	DECLARE poradie_cursorK CURSOR LOCAL
		FOR
			SELECT distinct substring(CHOVATEL,1,1) FROM @kravy
						
		OPEN poradie_cursorK
		FETCH NEXT FROM poradie_cursorK INTO @kraj
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
						
				insert into @Kraje
					(Kraj,ciskravy,Por,  Mlieknor )
					select distinct 
							substring(CHOVATEL,1,1) as Kraj,
							CISKRAVY as ciskravy,
							ROW_NUMBER() OVER(ORDER BY MLIEKNOR desc) AS Por,
							MLIEKNOR as Mlieknor
					from @kravy
						where substring(CHOVATEL,1,1) = @kraj
					ORDER BY  MLIEKNOR
				
				FETCH NEXT FROM poradie_cursorK INTO @kraj
			END

		CLOSE poradie_cursorK
		DEALLOCATE poradie_cursorK
	--select* from @Kraje order by Kraj,Por  


	declare @Okresy table				
			(
			Okres varchar (3),
			ciskravy varchar(14),
			Por bigint,
			Mlieknor float
			)

	declare @counter int,  @okres varchar(3)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT distinct substring(CHOVATEL,1,3) FROM @kravy
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @okres
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				insert into @Okresy
					(Okres,ciskravy,Por,  Mlieknor )
					select distinct 
							substring(CHOVATEL,1,3) as okres,
							CISKRAVY as ciskravy,
							ROW_NUMBER() OVER(ORDER BY MLIEKNOR desc) AS Por,
							 MLIEKNOR as Mlieknor
					from @kravy
						where substring(CHOVATEL,1,3) = @okres
				ORDER BY  MLIEKNOR

				FETCH NEXT FROM poradie_cursor INTO @okres
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor
		--select* from @Okresy order by okres,Por  

		declare @Chovy table				-----PL1 a ich podiel v chove
			(
			Chov varchar (9),
			ciskravy varchar(14),
			Por bigint,
			Por_lakt int,
			mlieko float, 
			tuk_P float, 
			tuk_KG int, 
			bielk_P float, 
			bielk_KG int
			)

	declare @counterCH int,  @chov varchar(9)
		
	DECLARE poradie_cursorCH CURSOR LOCAL
		FOR
			SELECT distinct CHOVATEL FROM @kravy
						
		OPEN poradie_cursorCH
		FETCH NEXT FROM poradie_cursorCH INTO @chov
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
						
				insert into @Chovy
					(Chov, ciskravy, Por,Por_lakt,mlieko, tuk_P, tuk_KG, bielk_P, bielk_KG)
					select distinct Top 1 
							k.CHOVATEL as Chov,
							k.CISKRAVY as ciskravy,
							ROW_NUMBER() OVER(ORDER BY k.MLIEKNOR desc) AS Por,
							Lakt.PORLAK as Por_lakt,
							 k.MLIEKNOR as mlieko,
							Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as tuk_P,
							round(Lakt.TUKNOR,0) as tuk_KG, 
							round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as bielk_P,
						  round(Lakt.BIELKNOR,0) as bielk_KG
						from  @kravy as k
							left outer join dbo.View_CP_LaktaciePreZostavy as Lakt on k.ciskravy=Lakt.ciskravy 
							where  k.CHOVATEL = @chov
									and k.MLIEKNOR = Lakt.MLIEKNOR
						
						ORDER BY k.MLIEKNOR desc
				
				FETCH NEXT FROM poradie_cursorCH INTO @chov
			END

		CLOSE poradie_cursorCH
		DEALLOCATE poradie_cursorCH
		--select* from @Chovy order by Chov,Por  

	declare @Plem_typ table				
			(
			plem varchar (3),
			ciskravy varchar(14),
			Por bigint,
			Mlieknor float
			)

	declare @counterP int,  @plemeno varchar(3)
		
	DECLARE poradie_cursorP CURSOR LOCAL
		FOR
			SELECT distinct PLEM_TYP FROM @kravy
						
		OPEN poradie_cursorP
		FETCH NEXT FROM poradie_cursorP INTO @plemeno
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
						
				insert into @Plem_typ
					(plem, ciskravy, Por, Mlieknor )
					select distinct 
							PLEM_TYP as plem,
							CISKRAVY as ciskravy,
							ROW_NUMBER() OVER(ORDER BY MLIEKNOR desc) AS Por,
							MLIEKNOR as Mlieknor
						from  @kravy
							where PLEM_TYP = @plemeno
						ORDER BY MLIEKNOR
				
				FETCH NEXT FROM poradie_cursorP INTO @plemeno
			END

		CLOSE poradie_cursorP
		DEALLOCATE poradie_cursorP

		--select* from @Plem_typ order by Plem,Por  

	insert into Roc_MLHD_Tab_15
		(chovatel, Okres ,PorOkres ,PorKraj,PorSR ,PorPlemTyp ,Ciskravy ,PlemTyp,Podnik,Chov ,OLinReg ,Plemeno,Por_lakt
		,mlieko ,tuk_P ,tuk_KG ,bielk_P,bielk_KG,rok)
	select distinct
			c.chov as chovatel,
			ok.NAZOV as Okres
		  ,o.Por as PorOkres
		  ,k.por as PorKraj
		  ,s.Por_SR as PorSR
		  ,p.Por as PorPlemTyp 
		  ,c.ciskravy as Ciskravy
		  ,p.plem as PlemTyp
		  ,pd.NAZOVSKR as Podnik
		  ,ch.NAZOV as  Chov
		  ,(case when ka.Oteclin is null then substring(b.MENO,1,15)
				 else ka.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,ka.otecreg), 3)end) as OLinReg
		  ,ISNULL(ka.PL1 + CONVERT(varchar, ka.KR1), '') 
						+  ISNULL(ka.PL2, '')+  ISNULL(ka.PL3, '')+  ISNULL(ka.PL4, '')+  ISNULL(ka.PL5, '') as Plemeno
		  ,c.Por_lakt as Por_lakt
		  ,convert(int,c.mlieko) as mlieko
		  ,c.tuk_P as tuk_P
		  ,c.tuk_KG as tuk_KG
		  ,c.bielk_P as bielk_P
		  ,c.bielk_KG as bielk_KG
		  ,datepart(year,@datumOd) as rok
			
		
		from @Chovy as c
		left outer join CM_Krava as ka on ka.ciskravy = c.ciskravy
		left outer join CM_Byci as b on b.USCISLO = ka.OUSCIS
		left outer join @Kraje as k on k.ciskravy = c.ciskravy
		left outer join @Okresy as o on o.ciskravy = c.ciskravy 
		left outer join @SR as s on s.ciskravy = c.ciskravy  
		left outer join @Plem_typ  as p on p.ciskravy = c.ciskravy  
		left outer join NC_OKRES as ok on ok.KRAJ + ok.OKRES = o.Okres 
		left outer join NM_PODNIK as pd on pd.kraj + pd.okres + pd.podnik = SUBSTRING(c.Chov,1,6)
		left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = c.Chov
		where ch.zrus is null 
			and pd.ZRUS is null
	
	order by chovatel
	

	End
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MedziObdobZostavaB]
AS
BEGIN

TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaB
	
	declare @c as varchar(9)
	declare @kod1 as int --medziobdobie
	declare @kod2 as int --mlieko
	declare @nazovml as varchar(20)
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @ls as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @ps as float;
	declare @s as int;

	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		
		declare mleko cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open mleko
		fetch next from mleko into @nazovml,@kod2
		
		while @@FETCH_STATUS=0
		begin
			declare hran cursor for
			select kod
			from plis.dbo.CC_Medziobd

			open hran
			fetch next from hran into @kod1

			while @@FETCH_STATUS=0
			begin
				
				set @s=(select count(*)
				 from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
				inner join PLIS.dbo.CM_Krava as k 
				on k.CISKRAVY=l.cislokrava  
				 where k.CHOVATEL=@C and k.DOVVYR is null and l.Kod_Medz is not null
				and l.Kod_Medz!=1
				and l.Kod_Doj is not null)
				
				if(@s=0) begin set @s=NULL; end
				
				if(@kod1=1)
				begin
					set @l1=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL=@C 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=1 )
					set @p1=(convert(float,@l1*100)*1.00)/@s;
				end

				if(@kod1=2)
				begin
					set @l2=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL=@C 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=2 )
					set @p2=(convert(float,@l2*100)*1.00)/@s;
				end

				if(@kod1=3)
				begin
					set @l3=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL=@C 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=3 )
					set @p3=(convert(float,@l3*100)*1.00)/@s;
				end

				if(@kod1=4)
				begin
					set @l4=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL=@C 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=4 )
					set @p4=(convert(float,@l4*100)*1.00)/@s;
				end

				if(@kod1=5)
				begin
					set @l5=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							 where k.CHOVATEL=@C 
							 and k.DOVVYR is null 
							 and l.KOD_DOJ=@kod2 
							 and l.KOD_MEDZ=5 )
					set @p5=(convert(float,@l5*100)*1.00)/@s;
				end

				if(@kod1=6)
				begin
					set @l6=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava  
							where k.CHOVATEL=@C 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=6 )
					set @p6=(convert(float,@l6*100)*1.00)/@s;
				end


				set @ls=(select count(*) 
						from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
						inner join PLIS.dbo.CM_Krava as k 
						on k.CISKRAVY=l.cislokrava 
						where k.CHOVATEL=@C 
						and k.DOVVYR is null 
						and l.KOD_DOJ=@kod2 
						and l.KOD_MEDZ is not null 
						and KOD_MEDZ!=1 )
				set @ps=(convert(float,@ls*100)*1.00)/@s;
					
				
				fetch next from hran into @kod1
			end
			close hran
			deallocate hran;

			print N'mlieko je'
			print @kod2
			print @nazovml

			insert into plis.dbo.CP_MedziobdZostavaB values(@c,@nazovml,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@ls,@ps,NULL,@s); 



			fetch next from mleko into @nazovml,@kod2
		end
		
		close mleko;
		deallocate mleko;


		fetch next from chovatel into @C;
	end

	close chovatel
	deallocate chovatel;
END
go

-- =============================================
-- Author:		<Author,,Machynová>
-- Create date: <Create Date,,10.6.2015>
-- Description:	<Description,,vyberie jedinecne
--          cislo bahnic zadaneho chovu, ktore su nevyradene a zapisane v PK
--           a zaroven spocita % podiel krvi fylog.pribuznych plemien >
-- =============================================
CREATE FUNCTION  [dbo].[function_SP_PotenMa1] 
(	
	-- Add the parameters for the function here
@chovatel varchar(9))
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.bahcis,b.BPOVOD, 
case when substring(b.plem,1,2) in ('M ','AM','FM','SM','KM') then p.PERCPLEM1 else 0 end +
case when substring(b.plem,3,2) in ('M ','AM','FM','SM','KM') then p.PERCPLEM2 else 0 end +
case when substring(b.plem,5,2) in ('M ','AM','FM','SM','KM') then p.PERCPLEM3 else 0 end +
case when substring(b.plem,7,2) in ('M ','AM','FM','SM','KM') then p.PERCPLEM4 else 0 end  as cistper1,
case when substring(b.plem,1,2) in ('ZV','ZU','V ') then p.PERCPLEM1 else 0 end +
case when substring(b.plem,3,2) in ('ZV','ZU','V ') then p.PERCPLEM2 else 0 end +
case when substring(b.plem,5,2) in ('ZV','ZU','V ') then p.PERCPLEM3 else 0 end +
case when substring(b.plem,7,2) in ('ZV','ZU','V ') then p.PERCPLEM4 else 0 end  as cistper2,
m.uzitzst,m.plem1 as plem1st,pl.UZITZAM,substring(b.plem,1,2) as plem1,substring(b.plem,3,2) as plem2,
substring(b.plem,5,2) plem3, substring(b.plem,7,2) as plem4, substring(b.plem,9,2) as pkrvi,b.zplem1
FROM dbo.SM_BAHNICA b 
LEFT OUTER JOIN View_NM_MenStadOv m on b.krokr=m.krokr AND b.Podnik=m.Podnik AND b.stado=m.chov
LEFT OUTER JOIN SM_MaxMl ml on b.BahCis=ml.Bahcis
LEFT OUTER JOIN SC_PodKrvi p on substring(b.Plem,9,2)=p.CISKOD
LEFT OUTER JOIN SC_Plemena pl on m.Plem1=pl.KODPL2
 WHERE  (b.KrOkr+b.Podnik+b.stado= @chovatel) AND (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND 
 ltrim(b.KodPK)<>'' and m.CisKon<>'00000' and m.stku in ('1','2')

)
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_17]
    @rok varchar(4),
	@Plem_typ varchar(6)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_17 as z
	where   z.rok = @rok and z. Plem_typ=@Plem_typ 
	order by CONVERT(INT, por)
end
go

Create PROCEDURE [dbo].[CR_KUMP_kravy_1_sumar_prepocet] 

	@rok int,
	@mesiac int

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOVATEL) FROM  dbo.CR_KUMP_CHK_MES_1  WHERE mesiac=@mesiac and rok=@rok

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_KUMP_kravy_1_sumar @chov, @rok,@mesiac

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BahRokNar] 
(
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, 
SUM(1) AS pocet,CASE WHEN Roknar = 0 THEN 0 ELSE sum(datediff(month,DatNar,getdate())) end as Svekmes
FROM    dbo.SM_BAHNICA
WHERE     (DOVOD = '0') AND (DATVYR IS NULL) AND (KrOkr+Podnik+stado= @chovatel)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar)
go


CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA]
AS
BEGIN
	

	TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaA


	declare @kod as int;
	declare @nazov as varchar(20);
	declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		declare hran cursor for
		select kod,nazov
		from plis.dbo.CC_Medziobd

		open hran
		fetch next from hran into @kod,@nazov

		while @@FETCH_STATUS=0
		begin
			
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod);
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod);
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod);
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod);
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod);
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod);
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod);
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod);
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod);
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ=@kod and KOD_MEDZ is not null and KOD_MEDZ!=1);
			set @s=(select COUNT(*)
					from PLIS.dbo.CM_Naplak as l
					inner join PLIS.dbo.CM_Krava as k
					on k.CISKRAVY=l.CISKRAVY
					where k.CHOVATEL=@C
					and k.DOVVYR is null);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*1.00)/@s;
			set @p2=(convert(float,@l2)*1.00)/@s;
			set @p3=(convert(float,@l3)*1.00)/@s;
			set @p4=(convert(float,@l4)*1.00)/@s;
			set @p5=(convert(float,@l5)*1.00)/@s;
			set @p6=(convert(float,@l6)*1.00)/@s;
			set @p7=(convert(float,@l7)*1.00)/@s;
			set @p8=(convert(float,@l8)*1.00)/@s;
			set @p9=(convert(float,@l9)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu)*1.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);

			------------------------------------------------------
		
					set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena in (30,40));
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_DOJ=@kod and zmena in (30,40));
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and zmena in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*1.00)/@s;
			set @p2=(convert(float,@l2)*1.00)/@s;
			set @p3=(convert(float,@l3)*1.00)/@s;
			set @p4=(convert(float,@l4)*1.00)/@s;
			set @p5=(convert(float,@l5)*1.00)/@s;
			set @p6=(convert(float,@l6)*1.00)/@s;
			set @p7=(convert(float,@l7)*1.00)/@s;
			set @p8=(convert(float,@l8)*1.00)/@s;
			set @p9=(convert(float,@l9)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu)*1.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'N');

----------------------------------------------------------------
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena not in (30,40) );
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and kod_medz=@kod and zmena not in (30,40));
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and zmena not in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*1.00)/@s;
			set @p2=(convert(float,@l2)*1.00)/@s;
			set @p3=(convert(float,@l3)*1.00)/@s;
			set @p4=(convert(float,@l4)*1.00)/@s;
			set @p5=(convert(float,@l5)*1.00)/@s;
			set @p6=(convert(float,@l6)*1.00)/@s;
			set @p7=(convert(float,@l7)*1.00)/@s;
			set @p8=(convert(float,@l8)*1.00)/@s;
			set @p9=(convert(float,@l9)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu)*1.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'C');
	


--------------------------------------------------------------------------------------

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
			
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null  and KOD_MEDZ is not null and KOD_MEDZ!=1);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*1.00)/@s;
			set @p2=(convert(float,@l2)*1.00)/@s;
			set @p3=(convert(float,@l3)*1.00)/@s;
			set @p4=(convert(float,@l4)*1.00)/@s;
			set @p5=(convert(float,@l5)*1.00)/@s;
			set @p6=(convert(float,@l6)*1.00)/@s;
			set @p7=(convert(float,@l7)*1.00)/@s;
			set @p8=(convert(float,@l8)*1.00)/@s;
			set @p9=(convert(float,@l9)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu)*1.00)/@s;

			insert into plis.dbo.cp_medziobdZostavaA values(@c,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)

			set @l1=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l2=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l3=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l4=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l5=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l6=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l7=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l8=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l9=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @spolu=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			insert into plis.dbo.cp_medziobdZostavaA values(@c,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)

		fetch next from chovatel into @C;
	end

	close chovatel;
	deallocate chovatel;


END
go

/******
Rocenka KU Mlieka ... od str. 80 Vysledky kontrolu uzitkovosti hovadzieho dobytka
jedna z procedur, ktore sa spustaju do tejto tabulky
*******/
 CREATE procedure [dbo].[Roc_MLHD_22]
	@chov varchar(6),
	@datumOd date,
	@datumDo date

  --use plis

 --Declare @datumOd date  ='2018-01-01', @datumDo date ='2018-09-30', @chov varchar(9)  = '108520'
  -- set @datumOd ='2018-01-01'
  --set @datumDo ='2018-09-30'
  --set @chov = '102501011'

as 
begin
Declare @tab22 TABLE
	  (
	  KRAJ VARCHAR(1)NULL,
	  OKRES VARCHAR(2)NULL,
	  PODNIK VARCHAR(3)NULL,
	  OKRES_NAZOV VARCHAR(30)NULL,
	  chov varchar(3)null, 
	  chov_nazov varchar(100),
	  ROK VARCHAR(4)
	   )

   INSERT INTO @tab22   -----vyber chovov
   (kraj, okres, podnik, OKRES_NAZOV, chov, chov_nazov, ROK)
   
	select n.kraj, n.okres, n.podnik, o.NAZOV, ch.chov, ch.NAZOV,  
	 	datepart (year, @datumOd) as rok
	from NM_PODNIK as n
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK = n.KRAJ + n.OKRES + n.PODNIK
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = n.KRAJ + n.OKRES
	where n.kraj + n.okres + n.PODNIK =  @chov
		and ch.KRAJ + ch.OKRES + ch.PODNIK = @chov
		and ch.TYPZV=1 
		and ch.chov not in ('010','700', '699') 
		and left(ch.chov,1) not in ('7','8','9')
		and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumDo))
		and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
											 where (NOT(SPVYKON IN ('0', '4', '5'))) AND (PRIZNAK = '01') AND TECHUSMD = '00' or (PRIZNAK='99' and SPVYKON<>'0'))
	
	
	--select * from @tab22

	 Declare @tab22N TABLE 
	  (
	  KRAJ VARCHAR(1)NULL,
	  OKRES VARCHAR(2)NULL,
	  PODNIK VARCHAR(3)NULL,
	  OKRES_NAZOV VARCHAR(30)NULL,
	  chov varchar(3)null, 
	  chov_nazov varchar(100),
	  ROK VARCHAR(4)	   
	   )

	 INSERT INTO @tab22N   ----doplnenie mastali
		(kraj, okres, podnik, OKRES_NAZOV, chov, chov_nazov, ROK)
	 select * from @tab22
	 	union
	 select kraj, okres, podnik, OKRES_NAZOV, SUBSTRING(chov, 1,2) as chov, 'Chov spolu' as chov_nazov, rok
			from @tab22 
			group by SUBSTRING(chov, 1,2), kraj, okres, podnik, OKRES_NAZOV, rok 
			having count(chov)>1
	--select * from @tab22N
	
	 Declare @tab22A TABLE
	  (
		  KRAJ VARCHAR(1)NULL,
		  OKRES VARCHAR(2)NULL,
		  PODNIK VARCHAR(3)NULL,
		  OKRES_NAZOV VARCHAR(30)NULL,
		  chov varchar(3)null, 
		  chov_nazov varchar(100),
		  ROK VARCHAR(4), 
		  SPVYKON varchar(1)null, 
		  CHARCHOV_kod varchar(1)null, 
		  CHARCHOV VARCHAR(30)NULL,
		  VYROBL varchar(1)null, 
		  CHARUS varchar(1)null,
		  PL1 varchar(10),
		  [stpec_7] [int] NULL,
		[stpec_8] [float] NULL,
		[stpec_9] [float] NULL,
		[stpec_10] [float] NULL,
		[stpec_11] [float] NULL,
		[stpec_12] [float] NULL,
		[stpec_13] [float] NULL,
		[stpec_14Mesiac] [int] NULL,
		[stpec_14Den] [int] NULL,
		[stpec_15] [float] NULL,
		[stpec_16] [float] NULL,
		[stpec_17] [float] NULL,
		[stpec_18] [float] NULL,
		[stpec_19] [float] NULL,
		[stpec_20] [float] NULL,
		[stpec_21] [float] NULL,
		[stpec_22] [float] NULL,
		[stpec_23] [float] NULL,
		[stpec_24] [float] NULL,
		[stpec_25] [float] NULL,
		[stpec_26] [float] NULL,
		[stpec_27] [float] NULL,
		[stpec_28] [float] NULL,
		[stpec_29] [float] NULL
	     )
	   insert into @tab22A
		   (KRAJ, OKRES, PODNIK, OKRES_NAZOV, chov, chov_nazov, ROK, SPVYKON, CHARCHOV_kod, CHARCHOV, VYROBL, CHARUS, 
			stpec_7,stpec_8, stpec_9, stpec_10, stpec_11, stpec_12, stpec_13, stpec_14Mesiac, stpec_14Den, stpec_15, stpec_16, stpec_17, stpec_18, stpec_19, stpec_20,
			stpec_21, stpec_22, stpec_23 , stpec_24, stpec_25, stpec_26, stpec_27, stpec_28, stpec_29)
			--h.CHARCHOV AS CHARCHOV_kod,/*, PL1, KR1*/
	   select n.kraj, n.okres, n.podnik, n.OKRES_NAZOV, n.chov, n.chov_nazov, n.ROK,
				h.SPVYKON as SPVYKON,
				(CASE WHEN h.CHARCHOV = '0' THEN 'O'
					WHEN h.CHARCHOV = '1' THEN 'S'
					WHEN h.CHARCHOV = '2' THEN 'P'
					WHEN h.CHARCHOV = '3' THEN 'H'
					WHEN h.CHARCHOV = '4' THEN 'M'
					WHEN h.CHARCHOV = '5' THEN 'B'
					END) AS CHARCHOV_kod,
				ChCh.NAZOV as CHARCHOV,
				(case when h.VYROBL = '1' then 'H'
					when h.VYROBL = '2' then 'N'
					else '' end) as VYROBL, 
				h.CHARUS as CHARUS,
				PocLakN1 as stpec_7
				,LakdniNL1 as stpec_8
				,MliekNorL1 as stpec_9
				, round((TukNorL1*100)/MliekNorL1,2) as stpec_10
				,TukNorL1 as stpec_11
				,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
				,BielkNorL1 as stpec_13
				,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Mesiac
			  ,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Den
				,PocLakN2 as stpec_15
				,LakDniNL2 as stpec_16
				,MliekNorL2 as stpec_17
				,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
				,TukNorL2 as stpec_19
				,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
				,BielkNorL2 as stpec_21
				,MedziobdL2 as stpec_22
				,PocLakNcelk as stpec_23
				,LakDniNCelk as stpec_24
				,MliekNorCelk as stpec_25
				,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
				,TukNorCelk as stpec_27
				,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
				,BielkNorCelk as stpec_29
			
	    from @tab22N as n 
			left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = n.KRAJ + n.OKRES + n.PODNIK + n.chov
			left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
			left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
			left join CR_LaktacneZostavy_Opr as z on z.filter = n.kraj + n.okres + n.podnik + n.chov and @datumOd = z.DatumOd and @datumDo = z.DatumDo
		--select * from @tab22A
		
		declare @podiely table				-----PL1 a ich podiel v chove
			(
			CHOVATEL varchar (9),
			PL1 varchar(3),
			KR1 float,
			PodielPerc float--
			)
		
	declare @chovy int = (select count(chov) from  @tab22A )
	 print 'chovy'
	 print @chovy
	
	if @chovy >0
	begin 
		Insert into @podiely
		 (PL1, CHOVATEL,  KR1, PodielPerc)

		select distinct	 k.pl1 as PL1, 
			k.chovatel as chovatel,
			sum(k.KR1)as KR1,
			(sum(k.KR1)/(select sum(k1.KR1)from CM_Krava as k1 
										where k1.CHOVATEL = k.chovatel
											and PRIZNAKKU = 1 
											and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR>=@datumOd))))*100 as PodielPerc 
		from @tab22A as a --CM_Krava
			left outer join CM_Krava as k on k.CHOVATEL = a.KRAJ + a.OKRES + a.PODNIK + a.chov
			where  k.CHOVATEL =  a.kraj+a.okres+a.podnik+a.chov
				and k.PRIZNAKKU = 1 
				and (k.dovvyr is null or (k.dovvyr is not null and k.DATVYR>=@datumOd))
			group by k.PL1, k.CHOVATEL

	end
	--select * from @podiely
		
	declare @counter int,  @chovatelia varchar(9)
	declare @plemena table
		(
		PL1 varchar(3),
		KR1 float,
		PodielPerc float,
		CHOVATEL varchar (9),
		por int
		)

	declare @ZoznamPL1 table
		(
		CHOVATEL VARCHAR(9),
		plem varchar(10)
		)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT CHOVATEL FROM @podiely group by CHOVATEL
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @chovatelia
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
				delete from  @plemena			
				insert into @plemena
					(PL1, KR1, PodielPerc, CHOVATEL, por)
					select PL1,KR1, PodielPerc, CHOVATEL,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and CHOVATEL = @chovatelia
			
				declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'') 
		
				insert into @ZoznamPL1
				select @chovatelia,@PL1
						
				FETCH NEXT FROM poradie_cursor INTO @chovatelia
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor

		--select * from  @ZoznamPL1

	UPDATE @tab22A SET 
	PL1 = plem FROM @ZoznamPL1 WHERE  KRAJ+okres+podnik+chov = CHOVATEL
	

	Declare @tab22X TABLE
	  (
	 KRAJ VARCHAR(1)NULL,
		  OKRES VARCHAR(2)NULL,
		  PODNIK VARCHAR(3)NULL,
		  OKRES_NAZOV VARCHAR(30)NULL,
		  chov varchar(3)null, 
		  chov_nazov varchar(100),
		  ROK VARCHAR(4), 
		  SPVYKON varchar(1)null, 
		  CHARCHOV_kod varchar(1)null, 
		  CHARCHOV VARCHAR(30)NULL,
		  VYROBL varchar(1)null, 
		  CHARUS varchar(1)null,
		  PL1 varchar(10),
		[stpec_7] [int] NULL,
		[stpec_8] [float] NULL,
		[stpec_9] [float] NULL,
		[stpec_10] [float] NULL,
		[stpec_11] [float] NULL,
		[stpec_12] [float] NULL,
		[stpec_13] [float] NULL,
		[stpec_14Mesiac] [int] NULL,
		[stpec_14Den] [int] NULL,
		[stpec_15] [float] NULL,
		[stpec_16] [float] NULL,
		[stpec_17] [float] NULL,
		[stpec_18] [float] NULL,
		[stpec_19] [float] NULL,
		[stpec_20] [float] NULL,
		[stpec_21] [float] NULL,
		[stpec_22] [float] NULL,
		[stpec_23] [float] NULL,
		[stpec_24] [float] NULL,
		[stpec_25] [float] NULL,
		[stpec_26] [float] NULL,
		[stpec_27] [float] NULL,
		[stpec_28] [float] NULL,
		[stpec_29] [float] NULL
	   )


	INSERT INTO @tab22X 
		( KRAJ , OKRES ,PODNIK, OKRES_NAZOV, chov, chov_nazov, ROK, SPVYKON, CHARCHOV_kod, CHARCHOV, VYROBL, CHARUS, PL1
		,stpec_7,stpec_8, stpec_9, stpec_10, stpec_11, stpec_12, stpec_13,stpec_14Mesiac, stpec_14Den, stpec_15, stpec_16, stpec_17, stpec_18, stpec_19, stpec_20,
		 stpec_21, stpec_22, stpec_23 , stpec_24, stpec_25, stpec_26, stpec_27, stpec_28, stpec_29)
	
	SELECT  KRAJ , OKRES ,PODNIK, OKRES_NAZOV, chov, chov_nazov, ROK, SPVYKON, CHARCHOV_kod, CHARCHOV, VYROBL, CHARUS, PL1
		,stpec_7,stpec_8, stpec_9, stpec_10, stpec_11, stpec_12, stpec_13,stpec_14Mesiac, stpec_14Den, stpec_15, stpec_16, stpec_17, stpec_18, stpec_19, stpec_20,
		 stpec_21, stpec_22, stpec_23 , stpec_24, stpec_25, stpec_26, stpec_27, stpec_28, stpec_29
	from @tab22A 
----	  left join CR_LaktacneZostavy as z on z.filter = a.kraj + a.okres + a.podnik + a.chov and @datumOd = z.DatumOd and @datumDo = z.DatumDo
	  
	  union 
		  select 
		   n.KRAJ , 
		   n.OKRES, n.PODNIK, n.OKRES_NAZOV, '999' as chov,  'Výsledky za predchádzajúci kontrolný rok' as chov_nazov, 
		   n.rok, 
		   '' as SPVYKON, '' as CHARCHOV_kod, '' as CHARCHOV, '' as VYROBL, '' as CHARUS, '' as PL1,
		   a.stpec_7 as stpec_7 ,a.stpec_8 as stpec_8 ,a.stpec_9 as stpec_9 ,a.stpec_10 as stpec_10 ,a.stpec_11 as stpec_11 ,a.stpec_12 as stpec_12 ,a.stpec_13 as stpec_13
		   ,a.stpec_14Mesiac as stpec_14Mesiac ,a.stpec_14Den as stpec_14Den ,a.stpec_15 as stpec_15 ,a.stpec_16 as stpec_16,a.stpec_17 as stpec_17 ,a.stpec_18 as stpec_18
		   ,a.stpec_19 as stpec_19 ,a.stpec_20 as stpec_20,a.stpec_21 as stpec_21,a.stpec_22 as stpec_22 ,a.stpec_23 as stpec_23 ,a.stpec_24 as stpec_24
		   ,a.stpec_25 as stpec_25,a.stpec_26 as stpec_26 ,a.stpec_27 as stpec_27,a.stpec_28 as stpec_28 ,a.stpec_29 as stpec_29
		 from @tab22A as n
		 left outer join  Roc_MLHD_Tab_22A as a 
					/*on  a.kraj+ a.okres + a.podnik  = n.KRAJ + n.okres + n.podnik + '' --platilo pre rocenku 2017
						and a.stpec_6 <>'Výsledky za predchádzajúci kontrolný rok' 
						and a.rok = datepart(year,DATEADD(year,-1,@datumDo))*/
					on  a.kraj+ a.okres + a.podnik  = n.KRAJ + n.okres + n.podnik + '' --platilo od rocenky 2018
						and a.stlpec_6c = '199'
						and a.rok = datepart(year,DATEADD(year,-1,@datumDo))

	union 
		select 
		   n.KRAJ , 
		   n.OKRES, n.PODNIK, n.OKRES_NAZOV, '199' as chov, k.NAZOVSKR as chov_nazov, 
		   n.rok, 
		   '' as SPVYKON, '' as CHARCHOV_kod, '' as CHARCHOV, '' as VYROBL, '' as CHARUS, '' as PL1,
		   PocLakN1 as stpec_7
		  ,LakdniNL1 as stpec_8
		  ,MliekNorL1 as stpec_9
		  , round((TukNorL1*100)/MliekNorL1,2) as stpec_10
		  ,TukNorL1 as stpec_11
		  ,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
		  ,BielkNorL1 as stpec_13
			,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Mesiac
		  ,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Den
		  ,PocLakN2 as stpec_15
		  ,LakDniNL2 as stpec_16
		  ,MliekNorL2 as stpec_17
		  ,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
	  	  ,TukNorL2 as stpec_19
		  ,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
		  ,BielkNorL2 as stpec_21
		  ,MedziobdL2 as stpec_22
		  ,PocLakNcelk as stpec_23      
		  ,LakDniNCelk as stpec_24
		  ,MliekNorCelk as stpec_25
		  ,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
		  ,TukNorCelk as stpec_27
		  ,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
		  ,BielkNorCelk as stpec_29
		 from @tab22A as n
		 left outer join CR_LaktacneZostavy_Opr as z on z.filter = n.KRAJ + n.OKRES + n.PODNIK and @datumOd = z.DatumOd and @datumDo = z.DatumDo
		 left outer join NM_PODNIK as k on k.KRAJ + k.OKRES + k.PODNIK = n.KRAJ + n.OKRES + n.PODNIK

  --select * from @tab22X

  insert into Roc_MLHD_Tab_22A 
  ( KRAJ,OKRES,PODNIK,Okres_nazov,stpec_1,stpec_2,stpec_3,stpec_4,stpec_5,stpec_6,stlpec_6c,stpec_7
      ,stpec_8,stpec_9,stpec_10,stpec_11,stpec_12,stpec_13,stpec_14Mesiac,stpec_14Den,stpec_15,stpec_16,stpec_17,stpec_18
      ,stpec_19,stpec_20,stpec_21,stpec_22,stpec_23,stpec_24,stpec_25,stpec_26,stpec_27,stpec_28,stpec_29,rok)

	  select KRAJ , OKRES ,PODNIK, OKRES_NAZOV,  
	  SPVYKON as stpec_1, 
	  CHARCHOV_kod as stpec_2, 
	  VYROBL as stpec_3, 
	  CHARUS as stpec_4,
	  PL1 as stpec_5,
	  chov_nazov as stpec_6,
	  chov as stlpec_6c,
	  stpec_7,stpec_8, stpec_9, stpec_10, stpec_11, stpec_12, stpec_13,stpec_14Mesiac, stpec_14Den, stpec_15, stpec_16, stpec_17, stpec_18, stpec_19, stpec_20,
	  stpec_21, stpec_22, stpec_23 , stpec_24, stpec_25, stpec_26, stpec_27, stpec_28, stpec_29, ROK
		 
		 from @tab22X 
	end
go

Create PROCEDURE [dbo].[CR_KUMP_MlDobytka_sumar_prepocet] 

	@rok int,
	@mesiac int

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOVATEL) FROM  dbo.CR_KUMP_CHMlD_MES_1  WHERE mesiac=@mesiac and rok=@rok

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_KUMP_MlDobytka_sumar @chov, @rok,@mesiac

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

end
go

-- =============================================
-- Author:		David Florek
-- Create date:	03.04.2018
-- Description:	Upravi dotaciu a ulozi do historie
-- =============================================
CREATE PROCEDURE EC_UpravDotaciu
	@suma decimal(12, 2),
	@ucet varchar(10),
	@rok int,
	@maxPercDot decimal(5,2),
	@ostMesiace int,
	@login varchar(255)
AS
BEGIN
	SET NOCOUNT ON;

	declare @id int;
	select @id = MAX(ID) from EC_UctyDotacie where Ucet = @ucet and Rok = @rok;
	if @id is null
		return 1;

	declare @typ varchar(255) = '';
	declare @oSuma decimal(12,2);
	declare @oMaxPercDot decimal(5,2);
	declare @oOstMesiace int;

	select @oSuma = suma, @oOstMesiace = OstMesiace, @oMaxPercDot = MaxPercDot from EC_UctyDotacie where ID = @id;

	if(@oSuma <> @suma)
		set @typ = @typ + 'suma, ';
	if(@oOstMesiace <> @ostMesiace)
		set @typ = @typ + 'ost mesiace, ';
	if(@oMaxPercDot <> @maxPercDot)
		set @typ = @typ + 'max % dotacie, ';

	if(LEN(@typ) = 0)
		return 2;

	set @typ = LEFT(@typ, LEN(@typ) - 1);

	update EC_UctyDotacie set Suma = @suma, OstMesiace = @ostMesiace, MaxPercDot = @maxPercDot, PoslednaZmena = GETDATE() where ID = @id;
	insert into EC_UctyDotacie_Hist (ID, Suma, OstMesiace, MaxPercDot, TypZmeny, Zmenil, DatumZmeny)
	values (@id, @suma, @ostMesiace, @maxPercDot, @typ, @login, GETDATE());

	return 0;
END
go


-- =============================================
-- Author:		David Florek
-- Create date:	08.03.2018
-- Description:	Export dat calving pre Simental do Nemecka
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_calv3]
AS
BEGIN

	declare @datum date = '2018-06-15';

	select (select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = LEFT(lakt.CISKRAVY, 2))
		+ RIGHT(lakt.CISKRAVY, 12)
		+ RIGHT('00' + cast(lakt.PORLAK as varchar(2)), 2)
		+ ISNULL(FORMAT((select TOP 1 IDAIN from CM_Insvyk where IPLCA = lakt.CISKRAVY and IVYSE in ('7', '8', '9') and IDAIN between lakt.DATOTEL and laktplus.DATOTEL order by IDAIN desc), 'yyyyMMdd'), '00000000')
		+ ISNULL(FORMAT(lakt.DATOTEL, 'yyyyMMdd'), '00000000')
		+ CASE	WHEN lakt.PORLAK = 1 THEN '000'
				ELSE CASE WHEN LEN(lakt.MEDZIOBD) > 3 THEN '999'
				ELSE ISNULL(RIGHT('000' + cast((select MEDZIOBD from CM_Laktacie where CISKRAVY = lakt.CISKRAVY and PORLAK = lakt.PORLAK) as varchar(10)), 3), '000') END END
		+ IIF(lakt.ZMENA = '10', '1', '0')
		as veta
	into temp_polozky_calv2
	from CM_Laktacie lakt
	left outer join CM_Laktacie laktplus on lakt.CISKRAVY = laktplus.CISKRAVY and lakt.PORLAK + 1 = laktplus.PORLAK
	where lakt.CISKRAVY in (select distinct CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))
	and lakt.DATOTEL < @datum
	
	union select (select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = LEFT(naplak.CISKRAVY, 2))
		+ RIGHT(naplak.CISKRAVY, 12)
		+ RIGHT('00' + cast(naplak.PORLAK as varchar(2)), 2)
		+ ISNULL(FORMAT((select TOP 1 IDAIN from CM_Insvyk where IPLCA = naplak.CISKRAVY and IVYSE in ('7', '8', '9') and DATEDIFF(day, IDAIN, naplak.DATOTEL) > 0 order by IDAIN desc), 'yyyyMMdd'), '00000000')
		+ ISNULL(FORMAT(naplak.DATOTEL, 'yyyyMMdd'), '00000000')
		+ CASE	WHEN naplak.PORLAK = 1 THEN '000'
				ELSE CASE WHEN LEN(naplak.MEDZIOBD) > 3 THEN '999'
				ELSE ISNULL(RIGHT('000' + cast((select MEDZIOBD from CM_Laktacie where CISKRAVY = naplak.CISKRAVY and PORLAK = naplak.PORLAK) as varchar(10)), 3), '000') END END
		+ IIF(naplak.ZMENA = '10', '1', '0') as veta
	from CM_Naplak naplak
	where naplak.CISKRAVY in (select distinct CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))
	and naplak.CISKRAVY  not in (select ciskravy from CM_Laktacie where ciskravy  = naplak.ciskravy and porlak = naplak.PORLAK)
	and naplak.DATOTEL < @datum

	EXEC xp_cmdshell 'bcp "select veta from plis.dbo.temp_polozky_calv2" queryout "e:\ROZBORAK\Data\svk.06.txt" -T -c -t,'

	drop table temp_polozky_calv2
END

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.1.2016
-- Description:	Vrati zoznamu teliat za mesiac (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[CR_Zoznam_Teliat_Za_mesiac_2]
    @rok varchar(4),
	@mesiac varchar(2),
	--@DEKADA varchar(1) = '', 
	@CHOV varchar(9) = ''
	
	--@Vytlacil varchar(10) = null
	
as
begin

	
	select chov,Cislo_Telata,Dat_Nar,Pohlavie,ET,PK,Plemeno,Preukaz,Farba,Matka,Por_Lakt,teln,M_PK,MM,OM,MO,OO,O_Meno,O_PK,
	Lin_Reg,Otec,OM_Lin_Reg,OO_Lin_Reg,
	typ_vlozenia as ID, 
	mesiac,rok--,dekada 
	from plis.dbo.CR_Zoznam_teliat_za_mesiac as z
	where  (z.chov like @CHOV+'%' or @CHOV is null)
	and z.rok = @rok and z.MESIAC = @mesiac --and (z.dekada = @DEKADA or @DEKADA is null)
	order by chov
end
go

---pre vypocet podnikov v SR 
CREATE procedure [dbo].[Roc_MLHD_NAJCHOV_podnik]
	@datumOd date,
	@datumDo date,
	@podnik varchar(6)=''


as
 begin
 
 --declare @datumOd date = '2017-01-01', @podnik varchar(6) = '102501'
if @podnik is null
	begin
		declare @priem_lakt float
		set @priem_lakt = (	select convert(decimal(5,2),AVG(PORLAK *1.0)) from CM_Laktacie				--priem poradie laktacie
							 where ZMENA in ('30','40') 
								and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
										or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
								and chovatel in (select distinct oznacenie from CR_LaktacneZostavy_Opr
																			where len(oznacenie)=9 and Oznacenie = Filter 
																				and DatumOd= @datumOd and DatumDo = @datumDo))
		--select @priem_lakt
		--select MedziobdL2 as Medziobd -- stpec_22
		--			,PocLakNcelk as Pocet_lakt-- stpec_23
		--			,MliekNorCelk as Mlieko -- stpec_25
		--			,round((TukNorCelk*100)/MliekNorCelk,2) as TukPrec -- stpec_26
		--			,TukNorCelk as TukKG --stpec_27
		--			,round((BielkNorCelk*100)/MliekNorCelk,2) as BielkPerc --stpec_28
		--			,BielkNorCelk as BielkKG -- stpec_29
		--			,TukNorCelk + BielkNorCelk as Tuk_Bielk
		--			,round( (TukNorCelk + BielkNorCelk)*365/ MedziobdL2 * @priem_lakt,2) as indx
		--			from CR_LaktacneZostavy_Opr where oznacenie = 'SR' and Oznacenie = Filter and DatumOd= @datumOd and DatumDo = @datumDo


		insert into Roc_MLHD_Tab_NAJCHOV 
		(KrajOkr, Podnik, Podnik_nazov, Prev_pl, PocLakt, Mlieko, Tuk_kg, Tuk_p, Bielk_kg, Bielk_p, Tuk_Bielk, Priem_lakt, Medziobd, Indx, Rok )
		Select distinct
		'SR' as KrajOkr ,
		null as	PODNIK ,
		null as	Podnik_nazov,
		null as	Prev_pl,
		PocLakNcelk as	PocLakt,
		MliekNorCelk as	Mlieko,
		TukNorCelk as	Tuk_kg,
		round((TukNorCelk*100)/MliekNorCelk,2) as	Tuk_p,
		BielkNorCelk as	Bielk_kg,
		round((BielkNorCelk*100)/MliekNorCelk,2) as	Bielk_p,
		TukNorCelk + BielkNorCelk as Tuk_Bielk,
		@priem_lakt as	priem_lakt,
		MedziobdL2 as	Medziobd,
		round( (TukNorCelk + BielkNorCelk)*365/ MedziobdL2 * @priem_lakt,2) as indx,
		DATEPART(YEAR,@datumOd) as	ROK
		from CR_LaktacneZostavy_Opr where oznacenie = 'SR' and Oznacenie = Filter and DatumOd= @datumOd and DatumDo = @datumDo
	end
else
	begin
	 Declare @najchov TABLE
		  (
			KRAJ VARCHAR(1)NULL,
			OKRES VARCHAR(2)NULL,
			PODNIK VARCHAR(3)NULL,
			OKRES_NAZOV VARCHAR(30)NULL,
			plem varchar(7) null,
			stpec_6 VARCHAR(30)NULL,
			stpec_23 [float] NULL,
			stpec_25 float NULL,
			stpec_26 float NULL,
			stpec_27 float NULL,
			stpec_28 float NULL,
			stpec_29 float NULL,
			priem_lakt float null,
			stpec_22 float NULL,
			ROK int
		   )

		insert into @najchov
			(KRAJ,OKRES ,PODNIK ,OKRES_NAZOV,stpec_6,stpec_23,stpec_25 ,
			stpec_26 ,stpec_27 ,
			stpec_28 ,stpec_29 ,priem_lakt,stpec_22,ROK )
		SELECT o.KRAJ
			  ,o.OKRES
			  ,o.PODNIK
			  ,o.Okres_nazov
			  ,o.stpec_6
			  ,o.stpec_23
			  ,o.stpec_25
			  ,o.stpec_26
			  ,o.stpec_27
			  ,o.stpec_28
			  ,o.stpec_29
			  ,l.priem_lakt
			  ,o.stpec_22
			  ,o.rok
		FROM dbo.Roc_MLHD_Tab_22A as o 
			left outer join Roc_MLHD_Tab_23A as l on l.KRAJ+l.OKRES+l.PODNIK = o.kraj + o.OKRES + o.PODNIK 
			where o.stlpec_6c ='199'
			and o.rok = datepart(YEAR,@datumOd)
			and o.rok = l.rok
			and o.KRAJ + o.OKRES + o.PODNIK = @podnik

			--select * from @najchov
			--order by kraj, okres, PODNIK



	declare @podiely table				-----PL1 a ich podiel v chove
		(
		podnik varchar (6),
		PL1 varchar(3),
		KR1 float,
		PodielPerc float--
		)
		
		declare @podniky int = (select count(*) from  @najchov )
		 print 'podniky'
		 print @podniky
	
		if @podniky >0
		begin 
			Insert into @podiely
			 (PL1, podnik,  KR1, PodielPerc)

			select distinct	 k.pl1 as PL1, 
				 substring(k.CHOVATEL,1,6) as podnik,
				sum(k.KR1)as KR1,
				(sum(k.KR1)/(select sum(k1.KR1)from CM_Krava as k1 
											where substring(k1.CHOVATEL,1,6)  = substring(k.chovatel,1,6) 
												and PRIZNAKKU = 1 
												and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR>=@datumOd))))*100 as PodielPerc 
			from @najchov as a --CM_Krava
				left outer join CM_Krava as k on substring(k.CHOVATEL,1,6) = a.KRAJ + a.OKRES + a.PODNIK
				where  substring(k.CHOVATEL,1,6) =  a.kraj+a.okres+a.podnik
					and k.PRIZNAKKU = 1 
					and (k.dovvyr is null or (k.dovvyr is not null and k.DATVYR>=@datumOd))
				group by k.PL1,substring(k.CHOVATEL,1,6) 

		end
		--select * from @podiely
		
		declare @counter int,  @pd varchar(9)
		declare @plemena table
			(
			PL1 varchar(3),
			KR1 float,
			PodielPerc float,
			podnik varchar (6),
			por int
			)

		declare @ZoznamPL1 table
			(
			pod VARCHAR(6),
			PL varchar(10)
			)
		
		DECLARE poradie_cursor CURSOR LOCAL
			FOR
				SELECT podnik FROM @podiely group by podnik
						
			OPEN poradie_cursor
			FETCH NEXT FROM poradie_cursor INTO @pd
			WHILE @@FETCH_STATUS = 0
				BEGIN 			
					--print @chovatelia			
					delete from  @plemena			
					insert into @plemena
						(PL1, KR1, PodielPerc, podnik, por)
						select PL1,KR1, PodielPerc, podnik,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and podnik = @pd
			
					declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'') 
		
					insert into @ZoznamPL1
					select @podnik,@PL1
						
					FETCH NEXT FROM poradie_cursor INTO @pd
				END

			CLOSE poradie_cursor
			DEALLOCATE poradie_cursor

			--select * from  @ZoznamPL1

		UPDATE @najchov SET 
		plem = PL FROM @ZoznamPL1  WHERE  KRAJ+okres+podnik = pod

		--create table Roc_MLHD_Tab_NAJCHOV
		--(
		--	KrajOkr VARCHAR(3)NULL,
		--	Podnik VARCHAR(3)NULL,
		--  Chov Varchar(3) null,
		--  Podnik_nazov VARCHAR(30)NULL,
		--  Chov_nazov VARCHAR(30)NULL,
		--	Prev_pl varchar(7) null,
		--	PocLakt [float] NULL,
		--	Mlieko float NULL,
		--	Tuk_kg float NULL,
		--	Tuk_p float NULL,
		--	Bielk_kg float NULL,
		--	Bielk_p float NULL,
		--	Tuk_Bielk float null,
		--	Priem_lakt float null,
		--	Medziobd float NULL,
		--	Indx float null,
		--	Rok int
		--	)

		insert into Roc_MLHD_Tab_NAJCHOV 
		(KrajOkr, Podnik, Podnik_nazov, Prev_pl, PocLakt, Mlieko, Tuk_kg, Tuk_p, Bielk_kg, Bielk_p, Tuk_Bielk, Priem_lakt, Medziobd, Indx, Rok )
		Select distinct
		(kraj + okres) as KrajOkr ,
		podnik as	PODNIK ,
		stpec_6 as	Podnik_nazov,
		plem as	Prev_pl,
		stpec_23 as	PocLakt,
		stpec_25 as	Mlieko,
		stpec_27 as	Tuk_kg,
		stpec_26 as	Tuk_p,
		stpec_29 as	Bielk_kg,
		stpec_28 as	Bielk_p,
		(stpec_27 + stpec_29) as	Tuk_Bielk,
		priem_lakt as	priem_lakt,
		stpec_22 as	Medziobd,
		round( (stpec_27 + stpec_29)*365/ stpec_22*priem_lakt,2) as indx,
		rok as	ROK
		from @najchov
		order by PODNIK
	
	end
end
go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[C_VZ_ChovMesovePlemena_test](@param1 int)
AS
BEGIN

/**************************************************************

! PLEASE RUN AFFTER C_VZ_MEDZIOBDOBIEMESOVE AND C_AKTUAL_PREPOCMASOVEVAZENIA PROCEDURE !

using table:NM_Register,CM_Krava,NM_CHOVMAS,CM_Telata,NM_Podnik,NC_KRAJ,NC_OKRES

using views:View_CP_MedziObdMeso,View_CP_Telata210_full

changing table:CP_ChovatelMesoPlemena

used for: creating table used for results in report : volna zona -> Kontrola úžitkovosti mäsových plemien 

**************************************************************/

DECLARE @chov_id VARCHAR(9);

DECLARE @GLperc float;
DECLARE @Aperc float;
DECLARE @Bperc float;
DECLARE @Dperc float;
DECLARE @Fperc float;
DECLARE @Gperc float;
DECLARE @Hperc float;
DECLARE @Jperc float;
DECLARE @Lperc float;
DECLARE @Mperc float;
DECLARE @Nperc float;
DECLARE @Pperc float;
DECLARE @Rperc float;
DECLARE @Sperc float;
DECLARE @Tperc float;
DECLARE @Xperc float;
DECLARE @AAperc float;
DECLARE @ARperc float;
DECLARE @BAperc float;
DECLARE @BBperc float;
DECLARE @BRperc float;
DECLARE @BSperc float;
DECLARE @CIperc float;
DECLARE @GAperc float;
DECLARE @HEperc float;
DECLARE @HLperc float;
DECLARE @CHperc float;
DECLARE @MAperc float;
DECLARE @MBperc float;
DECLARE @PIperc float;
DECLARE @SBperc float;
DECLARE @SDperc float;
DECLARE @SGperc float;
DECLARE @SHperc float;
DECLARE @SLperc float;
DECLARE @SMperc float;
DECLARE @SVperc float;
DECLARE @WGperc float;
DECLARE @ZBperc float;

declare @pl1 varchar(2);
declare @pl2 varchar(2);
declare @pl3 varchar(2);
declare @pl4 varchar(2);
declare @pl5 varchar(2);

declare @kr1 float;
declare @kr2 float;
declare @kr3 float;
declare @kr4 float;
declare @kr5 float;

DECLARE @UCISLO VARCHAR(14);

declare @celkPoc int;
declare @aktPoc int;
declare @plmax1 float;
declare @plmax1Pismeno varchar(2);
declare @plmax2 float;
declare @plmax2Pismeno varchar(2);
declare @plmax3 float;
declare @plmax3Pismeno varchar(2);
DECLARE @CIS_KRAVA VARCHAR(14);
DECLARE @MEDZI INT;
DECLARE @prznakku INT;
declare @dovvyr INT;
DECLARE @KRAVI_MATKI INT;
DECLARE @MEDZI2 INT;

SET @MEDZI2 =0;

SET @KRAVI_MATKI=0;
/*TRUNCATE TABLE [PLIS].[dbo].[CP_ChovatelMesoPlemena]*/		

DECLARE cur_Chovatel CURSOR FOR 
select distinct K.CHOVATEL
from CM_Krava AS K
inner join NM_CHOVMAS AS C
ON K.CHOVATEL=(C.KRAJ+C.OKRES+C.PODNIK+C.CHOV)
and (C.ZRUS IS NULL or c.ZRUS='A')
AND K.PRIZNAKKU='2' and K.CHOVATEL='108520701' ;

select  @celkPoc=count(*) from plis.dbo.NM_Register;
set @aktPoc = 0;
SET @plmax1 =0;
SET @plmax1Pismeno ='';
SET @plmax2 =0;
SET @plmax2Pismeno ='';
SET @plmax3 =0;
SET @plmax3Pismeno ='';
SET @CIS_KRAVA='';
SET @MEDZI=0;

OPEN cur_Chovatel  
FETCH NEXT FROM cur_Chovatel INTO @chov_id 

WHILE @@FETCH_STATUS = 0 
BEGIN  
--print @chov_id;

       SET @MEDZI=0;
	   SET @KRAVI_MATKI=0;
	   SET @GLperc = 0;
       set @Aperc = 0;
	   set @Bperc = 0;
	   SET @Dperc = 0;
	   SET @Fperc = 0;
	   SET @Gperc = 0;
	   SET @Hperc = 0;
	   SET @Jperc = 0;
	   SET @Lperc = 0;
	   SET @Mperc = 0;
	   SET @Nperc = 0;
	   SET @Pperc = 0;
	   SET @Rperc = 0;
	   SET @Sperc = 0;
	   SET @Tperc = 0;
	   SET @Xperc = 0;
	   SET @AAperc = 0;
	   SET @ARperc = 0;
	   SET @BAperc = 0;
	   SET @BBperc = 0;
	   SET @BRperc = 0;
	   SET @BSperc = 0;
	   SET @CIperc = 0;
	   SET @GAperc = 0;
	   SET @HEperc = 0;
	   SET @HLperc = 0;
	   SET @CHperc = 0;
	   SET @MAperc = 0;
	   SET @MBperc = 0;
	   SET @PIperc = 0;
	   SET @SBperc = 0;
	   SET @SDperc = 0;
	   SET @SGperc = 0;
	   SET @SHperc = 0;
	   SET @SLperc = 0;
	   SET @SMperc = 0;
	   SET @SVperc = 0;
	   SET @WGperc = 0;
	   SET @ZBperc = 0;
	    set @aktPoc = @aktPoc + 1;

------------------------- vibera kravy pre kazdy chovatel


		SET @plmax1 =0;
		SET @plmax1Pismeno ='';
		SET @plmax2 =0;
		SET @plmax2Pismeno ='';
		SET @plmax3 =0;
		SET @plmax3Pismeno ='';
	
				DECLARE cur_kravy CURSOR FOR  
				SELECT pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5,CISKRAVY
				FROM plis.dbo.CM_Krava
				where CHOVATEL = @chov_id
				and PRIZNAKKU='2'
				--and DOVVYR IS NULL;

	   open cur_kravy;
	   FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	   WHILE @@FETCH_STATUS = 0 
	    BEGIN 
		 SET @kr5=100-(@kr1+@kr2+@kr3+@kr4);
	
				if @pl1 ='GL'SET @GLperc= @GLperc+@kr1;
				if @pl1 ='A' set @Aperc = @Aperc+@kr1;
				if @pl1 ='B' set @Bperc = @Bperc+@kr1;
				if @pl1 ='D' set @Dperc = @Dperc+@kr1;
				if @pl1 ='F' set @Fperc = @Fperc+@kr1;
				if @pl1 ='G' set @Gperc = @Gperc+@kr1;
				if @pl1 ='H' set @Hperc = @Hperc+@kr1;
				if @pl1 ='J' set @Jperc = @Jperc+@kr1;
				if @pl1 ='M' set @Mperc = @Mperc+@kr1;
				if @pl1 ='L' set @Lperc = @Lperc+@kr1;
				if @pl1 ='N' set @Nperc = @Nperc+@kr1;
				if @pl1 ='P' set @Pperc = @Pperc+@kr1;
				if @pl1 ='R' set @Rperc = @Rperc+@kr1;
				if @pl1 ='S' set @Sperc = @Sperc+@kr1;
				if @pl1 ='T' set @Tperc = @Tperc+@kr1;
				if @pl1 ='X' set @Xperc = @Xperc+@kr1;
				if @pl1='AA' set @AAperc= @AAperc+@kr1;
				if @pl1='AR' set @ARperc= @ARperc+@kr1;
				if @pl1='BA' set @BAperc= @BAperc+@kr1;
				if @pl1='BB' set @BBperc= @BBperc+@kr1;
				if @pl1='BR' set @BRperc= @BRperc+@kr1;
				if @pl1='BS' set @BSperc= @BSperc+@kr1;
				if @pl1='CI' set @CIperc= @CIperc+@kr1;
				if @pl1='GA' set @GAperc= @GAperc+@kr1;
				if @pl1='HE' set @HEperc= @HEperc+@kr1;
				if @pl1='HL' set @HLperc= @HLperc+@kr1;
				if @pl1='CH' set @CHperc= @CHperc+@kr1;
				if @pl1='MA' set @MAperc= @MAperc+@kr1;
				if @pl1='MB' set @MBperc= @MBperc+@kr1;
				if @pl1='PI' set @PIperc=@PIperc+@kr1;
				if @pl1='SB' set @SBperc=@SBperc+@kr1;
				if @pl1='SD' set @SDperc=@SDperc+@kr1;
				if @pl1='SG' set @SGperc=@SGperc+@kr1;
				if @pl1='SH' set @SHperc=@SHperc+@kr1;
				if @pl1='SL' set @SLperc=@SLperc+@kr1;
				if @pl1='SM' set @SMperc=@SMperc+@kr1;
				if @pl1='SV' set @SVperc=@SVperc+@kr1;
				if @pl1='WG' set @WGperc=@WGperc+@kr1;
				if @pl1='ZB' set @ZBperc=@ZBperc+@kr1;
-------------------------------------------------------------
				if @pl2 = 'GL' set @GLperc =  @GLperc+@kr2;
				if @pl2 = 'A' set @Aperc =  @Aperc+@kr2;
				if @pl2 = 'B' set @Bperc =  @Bperc+@kr2;
				if @pl2 = 'D' set @Dperc =  @Dperc+@kr2;
				if @pl2 = 'F' set @Fperc =  @Fperc+@kr2;
				if @pl2 = 'G' set @Gperc =  @Gperc+@kr2;
				if @pl2 = 'H' set @Hperc =  @Hperc+@kr2;
				if @pl2 = 'J' set @Jperc =  @Jperc+@kr2;
				if @pl2 = 'L' set @Lperc =  @Lperc+@kr2;
				if @pl2 = 'M' set @Mperc =  @Mperc+@kr2;
				if @pl2 = 'N' set @Nperc =  @Nperc+@kr2;
				if @pl2 = 'P' set @Pperc =  @Pperc+@kr2;
				if @pl2 = 'R' set @Rperc =  @Rperc+@kr2;
				if @pl2 = 'S' set @Sperc =  @Sperc+@kr2;
				if @pl2 = 'T' set @Tperc =  @Tperc+@kr2;
				if @pl2 = 'X' set @Xperc =  @Xperc+@kr2;
				if @pl2= 'AA' set @AAperc=@AAperc+@kr2;
				if @pl2='AR' set   @ARperc=@ARperc+@kr2;
				if @pl2='BA' set   @BAperc=@BAperc+@kr2;
				if @pl2='BB' set   @BBperc=@BBperc+@kr2;
				if @pl2='BR' set   @BRperc=@BRperc+@kr2;
				if @pl2='BS' set   @BSperc=@BSperc+@kr2;
				if @pl2='CI' set   @CIperc=@CIperc+@kr2;
				if @pl2='GA' set   @GAperc=@GAperc+@kr2;
				if @pl2='HE' set   @HEperc=@HEperc+@kr2;
				if @pl2='HL' set   @HLperc=@HLperc+@kr2;
				if @pl2='CH' set   @CHperc=@CHperc+@kr2;
				if @pl2='MA' set   @MAperc=@MAperc+@kr2;
				if @pl2='MB' set   @MBperc=@MBperc+@kr2;
				if @pl2='PI' set   @PIperc=@PIperc+@kr2;
				if @pl2='SB' set   @SBperc=@SBperc+@kr2;
				if @pl2='SD' set   @SDperc=@SDperc+@kr2;
				if @pl2='SG' set   @SGperc=@SGperc+@kr2;
				if @pl2='SH' set   @SHperc=@SHperc+@kr2;
				if @pl2='SL' set   @SLperc=@SLperc+@kr2;
				if @pl2='SM' set   @SMperc=@SMperc+@kr2;
				if @pl2='SV' set   @SVperc=@SVperc+@kr2;
				if @pl2='WG' set   @WGperc=@WGperc+@kr2;
				if @pl2='ZB' set   @ZBperc=@ZBperc+@kr2;
-------------------------------------------------------------
				if @pl3 = 'GL' set @GLperc =  @GLperc+@kr3;
				if @pl3 = 'A' set @Aperc =  @Aperc+@kr3;
				if @pl3 = 'B' set @Bperc =  @Bperc+@kr3;
				if @pl3 = 'D' set @Dperc =  @Dperc+@kr3;
				if @pl3 = 'F' set @Fperc =  @Fperc+@kr3;
				if @pl3 = 'G' set @Gperc =  @Gperc+@kr3;
				if @pl3 = 'H' set @Hperc =  @Hperc+@kr3;
				if @pl3 = 'J' set @Jperc =  @Jperc+@kr3;
				if @pl3 = 'M' set @Mperc =  @Mperc+@kr3;
				if @pl3 = 'N' set @Nperc =  @Nperc+@kr3;
				if @pl3 = 'P' set @Pperc =  @Pperc+@kr3;
				if @pl3 = 'R' set @Rperc =  @Rperc+@kr3;
				if @pl3 = 'S' set @Sperc =  @Sperc+@kr3;
				if @pl3 = 'T' set @Tperc =  @Tperc+@kr3;
				if @pl3 = 'X' set @Xperc =  @Xperc+@kr3;
				if @pl3= 'AA' set @AAperc=@AAperc+@kr3;
				if @pl3='AR' set   @ARperc=@ARperc+@kr3;
				if @pl3='BA' set   @BAperc=@BAperc+@kr3;
				if @pl3='BB' set   @BBperc=@BBperc+@kr3;
				if @pl3='BR' set   @BRperc=@BRperc+@kr3;
				if @pl3='BS' set   @BSperc=@BSperc+@kr3;
				if @pl3='CI' set   @CIperc=@CIperc+@kr3;
				if @pl3='GA' set   @GAperc=@GAperc+@kr3;
				if @pl3='HE' set   @HEperc=@HEperc+@kr3;
				if @pl3='HL' set   @HLperc=@HLperc+@kr3;
				if @pl3='CH' set   @CHperc=@CHperc+@kr3;
				if @pl3='MA' set   @MAperc=@MAperc+@kr3;
				if @pl3='MB' set   @MBperc=@MBperc+@kr3;
				if @pl3='PI' set   @PIperc=@PIperc+@kr3;
				if @pl3='SB' set   @SBperc=@SBperc+@kr3;
				if @pl3='SD' set   @SDperc=@SDperc+@kr3;
				if @pl3='SG' set   @SGperc=@SGperc+@kr3;
				if @pl3='SH' set   @SHperc=@SHperc+@kr3;
				if @pl3='SL' set   @SLperc=@SLperc+@kr3;
				if @pl3='SM' set   @SMperc=@SMperc+@kr3;
				if @pl3='SV' set   @SVperc=@SVperc+@kr3;
				if @pl3='WG' set   @WGperc=@WGperc+@kr3;
				if @pl3='ZB' set   @ZBperc=@ZBperc+@kr3;
				if @pl3='L' set   @Lperc=@Lperc+@kr3;
-------------------------------------------------------------
				if @pl4 = 'GL' set @GLperc =  @GLperc+@kr4;
				if @pl4 = 'A' set @Aperc =  @Aperc+@kr4;
				if @pl4 = 'B' set @Bperc =  @Bperc+@kr4;
				if @pl4 = 'D' set @Dperc =  @Dperc+@kr4;
				if @pl4 = 'F' set @Fperc =  @Fperc+@kr4;
				if @pl4 = 'G' set @Gperc =  @Gperc+@kr4;
				if @pl4 = 'H' set @Hperc =  @Hperc+@kr4;
				if @pl4 = 'J' set @Jperc =  @Jperc+@kr4;
				if @pl4 = 'M' set @Mperc =  @Mperc+@kr4;
				if @pl4 = 'N' set @Nperc =  @Nperc+@kr4;
				if @pl4 = 'P' set @Pperc =  @Pperc+@kr4;
				if @pl4 = 'R' set @Rperc =  @Rperc+@kr4;
				if @pl4 = 'S' set @Sperc =  @Sperc+@kr4;
				if @pl4 = 'T' set @Tperc =  @Tperc+@kr4;
				if @pl4 = 'X' set @Xperc =  @Xperc+@kr4;
				if @pl4= 'AA' set @AAperc=@AAperc+@kr4;
				if @pl4='AR' set   @ARperc=@ARperc+@kr4;
				if @pl4='BA' set   @BAperc=@BAperc+@kr4;
				if @pl4='BB' set   @BBperc=@BBperc+@kr4;
				if @pl4='BR' set   @BRperc=@BRperc+@kr4;
				if @pl4='BS' set   @BSperc=@BSperc+@kr4;
				if @pl4='CI' set   @CIperc=@CIperc+@kr4;
				if @pl4='GA' set   @GAperc=@GAperc+@kr4;
				if @pl4='HE' set   @HEperc=@HEperc+@kr4;
				if @pl4='HL' set   @HLperc=@HLperc+@kr4;
				if @pl4='CH' set   @CHperc=@CHperc+@kr4;
				if @pl4='MA' set   @MAperc=@MAperc+@kr4;
				if @pl4='MB' set   @MBperc=@MBperc+@kr4;
				if @pl4='PI' set   @PIperc=@PIperc+@kr4;
				if @pl4='SB' set   @SBperc=@SBperc+@kr4;
				if @pl4='SD' set   @SDperc=@SDperc+@kr4;
				if @pl4='SG' set   @SGperc=@SGperc+@kr4;
				if @pl4='SH' set   @SHperc=@SHperc+@kr4;
				if @pl4='SL' set   @SLperc=@SLperc+@kr4;
				if @pl4='SM' set   @SMperc=@SMperc+@kr4;
				if @pl4='SV' set   @SVperc=@SVperc+@kr4;
				if @pl4='WG' set   @WGperc=@WGperc+@kr4;
				if @pl4='ZB' set   @ZBperc=@ZBperc+@kr4;
				if @pl4='L' set   @Lperc=@Lperc+@kr4;
-------------------------------------------------------------
				if @pl5 = 'GL' set @GLperc =  @GLperc+@kr5;
				if @pl5 = 'A' set @Aperc =  @Aperc+@kr5;
				if @pl5 = 'B' set @Bperc =  @Bperc+@kr5;
				if @pl5 = 'D' set @Dperc =  @Dperc+@kr5;
				if @pl5 = 'F' set @Fperc =  @Fperc+@kr5;
				if @pl5 = 'G' set @Gperc =  @Gperc+@kr5;
				if @pl5 = 'H' set @Hperc =  @Hperc+@kr5;
				if @pl5 = 'J' set @Jperc =  @Jperc+@kr5;
				if @pl5 = 'M' set @Mperc =  @Mperc+@kr5;
				if @pl5 = 'N' set @Nperc =  @Nperc+@kr5;
				if @pl5 = 'P' set @Pperc =  @Pperc+@kr5;
				if @pl5 = 'R' set @Rperc =  @Rperc+@kr5;
				if @pl5 = 'S' set @Sperc =  @Sperc+@kr5;
				if @pl5 = 'T' set @Tperc =  @Tperc+@kr5;
				if @pl5 = 'X' set @Xperc =  @Xperc+@kr5;
				if @pl5= 'AA' set @AAperc=@AAperc+@kr5;
				if @pl5='AR' set   @ARperc=@ARperc+@kr5;
				if @pl5='BA' set   @BAperc=@BAperc+@kr5;
				if @pl5='BB' set   @BBperc=@BBperc+@kr5;
				if @pl5='BR' set   @BRperc=@BRperc+@kr5;
				if @pl5='BS' set   @BSperc=@BSperc+@kr5;
				if @pl5='CI' set   @CIperc=@CIperc+@kr5;
				if @pl5='GA' set   @GAperc=@GAperc+@kr5;
				if @pl5='HE' set   @HEperc=@HEperc+@kr5;
				if @pl5='HL' set   @HLperc=@HLperc+@kr5;
				if @pl5='CH' set   @CHperc=@CHperc+@kr5;
				if @pl5='MA' set   @MAperc=@MAperc+@kr5;
				if @pl5='MB' set   @MBperc=@MBperc+@kr5;
				if @pl5='PI' set   @PIperc=@PIperc+@kr5;
				if @pl5='SB' set   @SBperc=@SBperc+@kr5;
				if @pl5='SD' set   @SDperc=@SDperc+@kr5;
				if @pl5='SG' set   @SGperc=@SGperc+@kr5;
				if @pl5='SH' set   @SHperc=@SHperc+@kr5;
				if @pl5='SL' set   @SLperc=@SLperc+@kr5;
				if @pl5='SM' set   @SMperc=@SMperc+@kr5;
				if @pl5='SV' set   @SVperc=@SVperc+@kr5;
				if @pl5='WG' set   @WGperc=@WGperc+@kr5;
				if @pl5='ZB' set   @ZBperc=@ZBperc+@kr5;
				if @pl5='L' set   @Lperc=@Lperc+@kr5;
-------------------------------------------------------------


		FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	END
	  
			set @MEDZI2= (select priemMedzi  from plis.dbo.View_CP_MedziObdMeso where chovatel=@chov_id);
	
	close cur_kravy;
	Deallocate cur_kravy
	
	    IF  @GLperc>@plmax1 BEGIN Set @plmax1=@GLperc; Set @plmax1Pismeno='GL'  END
		IF  @Aperc>@plmax1 BEGIN Set @plmax1=@Aperc; Set @plmax1Pismeno='A'  END
		IF  @Bperc>@plmax1 BEGIN Set @plmax1=@Bperc; Set @plmax1Pismeno='B'  END
		IF  @Dperc>@plmax1 BEGIN Set @plmax1=@Dperc; Set @plmax1Pismeno='D'  END
		IF  @Fperc>@plmax1 BEGIN Set @plmax1=@Fperc; Set @plmax1Pismeno='F'  END
		IF  @Gperc>@plmax1 BEGIN Set @plmax1=@Gperc; Set @plmax1Pismeno='G'  END
		IF  @Hperc>@plmax1 BEGIN Set @plmax1=@Hperc; Set @plmax1Pismeno='H'  END
		IF  @Jperc>@plmax1 BEGIN Set @plmax1=@Jperc; Set @plmax1Pismeno='J'  END
		IF  @Lperc>@plmax1 BEGIN Set @plmax1=@Lperc; Set @plmax1Pismeno='L'  END
		IF  @Mperc>@plmax1 BEGIN Set @plmax1=@Mperc; Set @plmax1Pismeno='M'  END
		IF  @Nperc>@plmax1 BEGIN Set @plmax1=@Nperc; Set @plmax1Pismeno='N'  END
		IF  @Pperc>@plmax1 BEGIN Set @plmax1=@Pperc; Set @plmax1Pismeno='P'  END
		IF  @Rperc>@plmax1 BEGIN Set @plmax1=@Rperc; Set @plmax1Pismeno='R'  END
		IF  @Sperc>@plmax1 BEGIN Set @plmax1=@Sperc; Set @plmax1Pismeno='S'  END
		IF  @Tperc>@plmax1 BEGIN Set @plmax1=@Tperc; Set @plmax1Pismeno='T'  END
		IF  @Xperc>@plmax1 BEGIN Set @plmax1=@Xperc; Set @plmax1Pismeno='X'  END
		IF  @AAperc>@plmax1 BEGIN Set @plmax1=@AAperc; Set @plmax1Pismeno='AA'  END
		IF  @ARperc>@plmax1 BEGIN Set @plmax1=@ARperc; Set @plmax1Pismeno='AR'  END
		IF  @BAperc>@plmax1 BEGIN Set @plmax1=@BAperc; Set @plmax1Pismeno='BA'  END
		IF  @BBperc>@plmax1 BEGIN Set @plmax1=@BBperc; Set @plmax1Pismeno='BB'  END
		IF  @BRperc>@plmax1 BEGIN Set @plmax1=@BRperc; Set @plmax1Pismeno='BR'  END
		IF  @BSperc>@plmax1 BEGIN Set @plmax1=@BSperc; Set @plmax1Pismeno='BS'  END
		IF  @CIperc>@plmax1 BEGIN Set @plmax1=@CIperc; Set @plmax1Pismeno='CI'  END
		IF  @GAperc>@plmax1 BEGIN Set @plmax1=@GAperc; Set @plmax1Pismeno='GA'  END
		IF  @HEperc>@plmax1 BEGIN Set @plmax1=@HEperc; Set @plmax1Pismeno='HE'  END
		IF  @HLperc>@plmax1 BEGIN Set @plmax1=@HLperc; Set @plmax1Pismeno='HL'  END
		IF  @CHperc>@plmax1 BEGIN Set @plmax1=@CHperc; Set @plmax1Pismeno='CH'  END
		IF  @MAperc>@plmax1 BEGIN Set @plmax1=@MAperc; Set @plmax1Pismeno='MA'  END
		IF  @MBperc>@plmax1 BEGIN Set @plmax1=@MBperc; Set @plmax1Pismeno='MB'  END
		IF  @PIperc>@plmax1 BEGIN Set @plmax1=@PIperc; Set @plmax1Pismeno='PI'  END
		IF  @SBperc>@plmax1 BEGIN Set @plmax1=@SBperc; Set @plmax1Pismeno='SB'  END
		IF  @SDperc>@plmax1 BEGIN Set @plmax1=@SDperc; Set @plmax1Pismeno='SD'  END
		IF  @SGperc>@plmax1 BEGIN Set @plmax1=@SGperc; Set @plmax1Pismeno='SG'  END
		IF  @SHperc>@plmax1 BEGIN Set @plmax1=@SHperc; Set @plmax1Pismeno='SH'  END
		IF  @SLperc>@plmax1 BEGIN Set @plmax1=@SLperc; Set @plmax1Pismeno='SL'  END
		IF  @SMperc>@plmax1 BEGIN Set @plmax1=@SMperc; Set @plmax1Pismeno='SM'  END
		IF  @SVperc>@plmax1 BEGIN Set @plmax1=@SVperc; Set @plmax1Pismeno='SV'  END
		IF  @WGperc>@plmax1 BEGIN Set @plmax1=@WGperc; Set @plmax1Pismeno='WG'  END
		IF  @ZBperc>@plmax1 BEGIN Set @plmax1=@ZBperc; Set @plmax1Pismeno='ZB'  END
----------------------------------------------------------------------------
-----------------------MAX KRV 2---------------------
  
		IF  (@GLperc>@plmax2 AND @plmax1Pismeno !='GL') BEGIN Set @plmax2=@GLperc; Set @plmax2Pismeno='GL'  END
		IF  (@Aperc>@plmax2 AND @plmax1Pismeno !='A') BEGIN Set @plmax2=@Aperc; Set @plmax2Pismeno='A'  END
		IF  (@Bperc>@plmax2 AND @plmax1Pismeno !='B') BEGIN Set @plmax2=@Bperc; Set @plmax2Pismeno='B'  END
		IF  (@Dperc>@plmax2 AND @plmax1Pismeno !='D') BEGIN Set @plmax2=@Dperc; Set @plmax2Pismeno='D'  END
		IF  (@Fperc>@plmax2 AND @plmax1Pismeno !='F') BEGIN Set @plmax2=@Fperc; Set @plmax2Pismeno='F'  END
		IF  (@Gperc>@plmax2 AND @plmax1Pismeno !='G') BEGIN Set @plmax2=@Gperc; Set @plmax2Pismeno='G'  END
		IF  (@Hperc>@plmax2 AND @plmax1Pismeno !='H') BEGIN Set @plmax2=@Hperc; Set @plmax2Pismeno='H'  END
		IF  (@Jperc>@plmax2 AND @plmax1Pismeno !='J') BEGIN Set @plmax2=@Jperc; Set @plmax2Pismeno='J'  END
		IF  (@Lperc>@plmax2 AND @plmax1Pismeno !='L') BEGIN Set @plmax2=@Lperc; Set @plmax2Pismeno='L'  END
		IF  (@Mperc>@plmax2 AND @plmax1Pismeno !='M') BEGIN Set @plmax2=@Mperc; Set @plmax2Pismeno='M'  END
		IF  (@Nperc>@plmax2 AND @plmax1Pismeno !='N') BEGIN Set @plmax2=@Nperc; Set @plmax2Pismeno='N'  END
		IF  (@Pperc>@plmax2 AND @plmax1Pismeno !='P') BEGIN Set @plmax2=@Pperc; Set @plmax2Pismeno='P'  END
		IF  (@Rperc>@plmax2 AND @plmax1Pismeno !='R') BEGIN Set @plmax2=@Rperc; Set @plmax2Pismeno='R'  END
		IF  (@Sperc>@plmax2 AND @plmax1Pismeno !='S') BEGIN Set @plmax2=@Sperc; Set @plmax2Pismeno='S'  END
		IF  (@Tperc>@plmax2 AND @plmax1Pismeno !='T') BEGIN Set @plmax2=@Tperc; Set @plmax2Pismeno='T'  END
		IF  (@Xperc>@plmax2 AND @plmax1Pismeno !='X') BEGIN Set @plmax2=@Xperc; Set @plmax2Pismeno='X'  END
		IF  (@AAperc>@plmax2 AND @plmax1Pismeno !='AA') BEGIN Set @plmax2=@AAperc; Set @plmax2Pismeno='AA'  END
		IF  (@ARperc>@plmax2 AND @plmax1Pismeno !='AR') BEGIN Set @plmax2=@ARperc; Set @plmax2Pismeno='AR'  END
		IF  (@BAperc>@plmax2 AND @plmax1Pismeno !='BA') BEGIN Set @plmax2=@BAperc; Set @plmax2Pismeno='BA'  END
		IF  (@BBperc>@plmax2 AND @plmax1Pismeno !='BB') BEGIN Set @plmax2=@BBperc; Set @plmax2Pismeno='BB'  END
		IF  (@BRperc>@plmax2 AND @plmax1Pismeno !='BR') BEGIN Set @plmax2=@BRperc; Set @plmax2Pismeno='BR'  END
		IF  (@BSperc>@plmax2 AND @plmax1Pismeno !='BS') BEGIN Set @plmax2=@BSperc; Set @plmax2Pismeno='BS'  END
		IF  (@CIperc>@plmax2 AND @plmax1Pismeno !='CI') BEGIN Set @plmax2=@CIperc; Set @plmax2Pismeno='CI'  END
		IF  (@GAperc>@plmax2 AND @plmax1Pismeno !='GA') BEGIN Set @plmax2=@GAperc; Set @plmax2Pismeno='GA'  END
		IF  (@HEperc>@plmax2 AND @plmax1Pismeno !='HE') BEGIN Set @plmax2=@HEperc; Set @plmax2Pismeno='HE'  END
		IF  (@HLperc>@plmax2 AND @plmax1Pismeno !='HL') BEGIN Set @plmax2=@HLperc; Set @plmax2Pismeno='HL'  END
		IF  (@CHperc>@plmax2 AND @plmax1Pismeno !='CH') BEGIN Set @plmax2=@CHperc; Set @plmax2Pismeno='CH'  END
		IF  (@MAperc>@plmax2 AND @plmax1Pismeno !='MA') BEGIN Set @plmax2=@MAperc; Set @plmax2Pismeno='MA'  END
		IF  (@MBperc>@plmax2 AND @plmax1Pismeno !='MB') BEGIN Set @plmax2=@MBperc; Set @plmax2Pismeno='MB'  END
		IF  (@PIperc>@plmax2 AND @plmax1Pismeno !='PI') BEGIN Set @plmax2=@PIperc; Set @plmax2Pismeno='PI'  END
		IF  (@SBperc>@plmax2 AND @plmax1Pismeno !='SB') BEGIN Set @plmax2=@SBperc; Set @plmax2Pismeno='SB'  END
		IF  (@SDperc>@plmax2 AND @plmax1Pismeno !='SD') BEGIN Set @plmax2=@SDperc; Set @plmax2Pismeno='SD'  END
		IF  (@SGperc>@plmax2 AND @plmax1Pismeno !='SG') BEGIN Set @plmax2=@SGperc; Set @plmax2Pismeno='SG'  END
		IF  (@SHperc>@plmax2 AND @plmax1Pismeno !='SH') BEGIN Set @plmax2=@SHperc; Set @plmax2Pismeno='SH'  END
		IF  (@SLperc>@plmax2 AND @plmax1Pismeno !='SL') BEGIN Set @plmax2=@SLperc; Set @plmax2Pismeno='SL'  END
		IF  (@SMperc>@plmax2 AND @plmax1Pismeno !='SM') BEGIN Set @plmax2=@SMperc; Set @plmax2Pismeno='SM'  END
		IF  (@SVperc>@plmax2 AND @plmax1Pismeno !='SV') BEGIN Set @plmax2=@SVperc; Set @plmax2Pismeno='SV'  END
		IF  (@WGperc>@plmax2 AND @plmax1Pismeno !='WG') BEGIN Set @plmax2=@WGperc; Set @plmax2Pismeno='WG'  END
		IF  (@ZBperc>@plmax2 AND @plmax1Pismeno !='ZB') BEGIN Set @plmax2=@ZBperc; Set @plmax2Pismeno='ZB'  END
--------------------KONEC-------------------------------------------------------------------------------------------------------
----------------MAX KRV3 -------------------------------------------------------------------------------------------------------
		IF  (@GLperc>@plmax3 AND @plmax1Pismeno !='GL' AND @plmax2Pismeno !='GL') BEGIN Set @plmax3=@GLperc; Set @plmax3Pismeno='GL'  END
		IF  (@Aperc>@plmax3 AND @plmax1Pismeno !='A' AND @plmax2Pismeno !='A') BEGIN Set @plmax3=@Aperc; Set @plmax3Pismeno='A'  END
		IF  (@Bperc>@plmax3 AND @plmax1Pismeno !='B' AND @plmax2Pismeno !='B') BEGIN Set @plmax3=@Bperc; Set @plmax3Pismeno='B'  END
		IF  (@Dperc>@plmax3 AND @plmax1Pismeno !='D' AND @plmax2Pismeno !='D') BEGIN Set @plmax3=@Dperc; Set @plmax3Pismeno='D'  END
		IF  (@Fperc>@plmax3 AND @plmax1Pismeno !='F' AND @plmax2Pismeno !='F') BEGIN Set @plmax3=@Fperc; Set @plmax3Pismeno='F'  END
		IF  (@Gperc>@plmax3 AND @plmax1Pismeno !='G' AND @plmax2Pismeno !='G') BEGIN Set @plmax3=@Gperc; Set @plmax3Pismeno='G'  END
		IF  (@Hperc>@plmax3 AND @plmax1Pismeno !='H' AND @plmax2Pismeno !='H') BEGIN Set @plmax3=@Hperc; Set @plmax3Pismeno='H'  END
		IF  (@Jperc>@plmax3 AND @plmax1Pismeno !='J' AND @plmax2Pismeno !='J') BEGIN Set @plmax3=@Jperc; Set @plmax3Pismeno='J'  END
		IF  (@Lperc>@plmax3 AND @plmax1Pismeno !='L' AND @plmax2Pismeno !='L') BEGIN Set @plmax3=@Lperc; Set @plmax3Pismeno='L'  END
		IF  (@Mperc>@plmax3 AND @plmax1Pismeno !='M' AND @plmax2Pismeno !='M') BEGIN Set @plmax3=@Mperc; Set @plmax3Pismeno='M'  END
		IF  (@Nperc>@plmax3 AND @plmax1Pismeno !='N' AND @plmax2Pismeno !='N') BEGIN Set @plmax3=@Nperc; Set @plmax3Pismeno='N'  END
		IF  (@Pperc>@plmax3 AND @plmax1Pismeno !='P' AND @plmax2Pismeno !='P') BEGIN Set @plmax3=@Pperc; Set @plmax3Pismeno='P'  END
		IF  (@Rperc>@plmax3 AND @plmax1Pismeno !='R' AND @plmax2Pismeno !='R') BEGIN Set @plmax3=@Rperc; Set @plmax3Pismeno='R'  END
		IF  (@Sperc>@plmax3 AND @plmax1Pismeno !='S' AND @plmax2Pismeno !='S') BEGIN Set @plmax3=@Sperc; Set @plmax3Pismeno='S'  END
		IF  (@Tperc>@plmax3 AND @plmax1Pismeno !='T' AND @plmax2Pismeno !='T') BEGIN Set @plmax3=@Tperc; Set @plmax3Pismeno='T'  END
		IF  (@Xperc>@plmax3 AND @plmax1Pismeno !='X' AND @plmax2Pismeno !='X') BEGIN Set @plmax3=@Xperc; Set @plmax3Pismeno='X'  END
		IF  (@AAperc>@plmax3 AND @plmax1Pismeno !='AA' AND @plmax2Pismeno !='AA') BEGIN Set @plmax3=@AAperc; Set @plmax3Pismeno='AA'  END
		IF  (@ARperc>@plmax3 AND @plmax1Pismeno !='AR' AND @plmax2Pismeno !='AR') BEGIN Set @plmax3=@ARperc; Set @plmax3Pismeno='AR'  END
		IF  (@BAperc>@plmax3 AND @plmax1Pismeno !='BA' AND @plmax2Pismeno !='BA') BEGIN Set @plmax3=@BAperc; Set @plmax3Pismeno='BA'  END
		IF  (@BBperc>@plmax3 AND @plmax1Pismeno !='BB' AND @plmax2Pismeno !='BB') BEGIN Set @plmax3=@BBperc; Set @plmax3Pismeno='BB'  END
		IF  (@BRperc>@plmax3 AND @plmax1Pismeno !='BR' AND @plmax2Pismeno !='BR') BEGIN Set @plmax3=@BRperc; Set @plmax3Pismeno='BR'  END
		IF  (@BSperc>@plmax3 AND @plmax1Pismeno !='BS' AND @plmax2Pismeno !='BS') BEGIN Set @plmax3=@BSperc; Set @plmax3Pismeno='BS'  END
		IF  (@CIperc>@plmax3 AND @plmax1Pismeno !='CI' AND @plmax2Pismeno !='CI') BEGIN Set @plmax3=@CIperc; Set @plmax3Pismeno='CI'  END
		IF  (@GAperc>@plmax3 AND @plmax1Pismeno !='GA' AND @plmax2Pismeno !='GA') BEGIN Set @plmax3=@GAperc; Set @plmax3Pismeno='GA'  END
		IF  (@HEperc>@plmax3 AND @plmax1Pismeno !='HE' AND @plmax2Pismeno !='HE') BEGIN Set @plmax3=@HEperc; Set @plmax3Pismeno='HE'  END
		IF  (@HLperc>@plmax3 AND @plmax1Pismeno !='HL' AND @plmax2Pismeno !='HL') BEGIN Set @plmax3=@HLperc; Set @plmax3Pismeno='HL'  END
		IF  (@CHperc>@plmax3 AND @plmax1Pismeno !='CH' AND @plmax2Pismeno !='CH') BEGIN Set @plmax3=@CHperc; Set @plmax3Pismeno='CH'  END
		IF  (@MAperc>@plmax3 AND @plmax1Pismeno !='MA' AND @plmax2Pismeno !='MA') BEGIN Set @plmax3=@MAperc; Set @plmax3Pismeno='MA'  END
		IF  (@MBperc>@plmax3 AND @plmax1Pismeno !='MB' AND @plmax2Pismeno !='MB') BEGIN Set @plmax3=@MBperc; Set @plmax3Pismeno='MB'  END
		IF  (@PIperc>@plmax3 AND @plmax1Pismeno !='PI' AND @plmax2Pismeno !='PI') BEGIN Set @plmax3=@PIperc; Set @plmax3Pismeno='PI'  END
		IF  (@SBperc>@plmax3 AND @plmax1Pismeno !='SB' AND @plmax2Pismeno !='SB') BEGIN Set @plmax3=@SBperc; Set @plmax3Pismeno='SB'  END
		IF  (@SDperc>@plmax3 AND @plmax1Pismeno !='SD' AND @plmax2Pismeno !='SD') BEGIN Set @plmax3=@SDperc; Set @plmax3Pismeno='SD'  END
		IF  (@SGperc>@plmax3 AND @plmax1Pismeno !='SG' AND @plmax2Pismeno !='SG') BEGIN Set @plmax3=@SGperc; Set @plmax3Pismeno='SG'  END
		IF  (@SHperc>@plmax3 AND @plmax1Pismeno !='SH' AND @plmax2Pismeno !='SH') BEGIN Set @plmax3=@SHperc; Set @plmax3Pismeno='SH'  END
		IF  (@SLperc>@plmax3 AND @plmax1Pismeno !='SL' AND @plmax2Pismeno !='SL') BEGIN Set @plmax3=@SLperc; Set @plmax3Pismeno='SL'  END
		IF  (@SMperc>@plmax3 AND @plmax1Pismeno !='SM' AND @plmax2Pismeno !='SM') BEGIN Set @plmax3=@SMperc; Set @plmax3Pismeno='SM'  END
		IF  (@SVperc>@plmax3 AND @plmax1Pismeno !='SV' AND @plmax2Pismeno !='SV') BEGIN Set @plmax3=@SVperc; Set @plmax3Pismeno='SV'  END
		IF  (@WGperc>@plmax3 AND @plmax1Pismeno !='WG' AND @plmax2Pismeno !='WG') BEGIN Set @plmax3=@WGperc; Set @plmax3Pismeno='WG'  END
		IF  (@ZBperc>@plmax3 AND @plmax1Pismeno !='ZB' AND @plmax2Pismeno !='ZB') BEGIN Set @plmax3=@ZBperc; Set @plmax3Pismeno='ZB'  END
 declare @okres varchar(3);
 set @okres=SUBSTRING(@chov_id,2,2);
	  -- print N' ------------ ';
	   declare @vaj int;
	   set @vaj=(SELECT PocVazeny from plis.dbo.View_CP_Telata210_full where chovatel=@chov_id) ;

 declare @hmot int;
 set @hmot=(SELECT avr from plis.dbo.View_CP_Telata210_full where chovatel=@chov_id)

 declare @index float
 IF(@VAJ>0 and @MEDZI2>0)
	BEGIN
		set @index= (@HMOT*365)/@MEDZI2;
	END
	ELSE SET @INDEX=0;
 --print @hmot;
 --print @vaj;
 --print @index
	   

	   declare @kravStav int;
	   declare @MDStav int;
	   set @kravStav=(SELECT count(*)
  FROM [PLIS].[dbo].[CM_Krava]
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null))

  set @MDStav=(SELECT count(*)
  FROM [PLIS].[dbo].CM_Telata
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null))

  declare @nazovPod varchar(50);
  set @nazovPod=(select NAZOVSKR from NM_Podnik where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2) and podnik=SUBSTRING(@chov_id,4,3));

  declare @kraj varchar(20);
  set @kraj=(select nazov from plis.dbo.NC_KRAJ where kraj=SUBSTRING(@chov_id,1,1));
  set @kraj=SUBSTRING(@chov_id,1,1)+'-'+@kraj;

  declare @okres11 varchar(20);
  set @okres11=(select NAZOV from plis.dbo.NC_OKRES where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2));
  set @okres11 = SUBSTRING(@chov_id,2,2)+'-'+@okres11

	    /*insert into dbo.CP_ChovatelMesoPlemena ([kraj],[okres],[podnik],[chov],[chovatel],[pl1],[pl2],[pl3],[nazov],[MEDZI],[POCET_VAZENI],[HMOTNOST],[HODN_INDEX],[stav_kravy],[stav_MD],[nazovPodnik]) 
		      values (@kraj,@okres11,SUBSTRING(@chov_id,4,3),SUBSTRING(@chov_id,7,3),@chov_id,@plmax1Pismeno,@plmax2Pismeno,@plmax3Pismeno,(select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3)),@MEDZI2,@VAJ,@hmot,@index,@kravStav,@MDStav,@nazovPod);
			*/
		--insert into dbo.CP_ChovatelMesoPlemena() select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3);
select @chov_id as chov,(select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) 
and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3)) as nazov,@MEDZI2 as medzi, 
@kravStav as pocet_krav, @MDStav as pocet_md;

       FETCH NEXT FROM cur_Chovatel INTO @chov_id;  
END   

close cur_chovatel
Deallocate cur_chovatel
--PRINT 'KONIEC';
RETURN
/*
exec [C_VZ_ChovMesovePlemena_test] 2


select priemMedzi  from plis.dbo.View_CP_MedziObdMeso where chovatel='108520701'

/*View_CP_MedziObdMeso*/
SELECT     chovatel, SUM(medziobd) AS medzi2, SUM(medziobd) / COUNT(*) AS priemMedzi
FROM         dbo.CP_MedziObdMesove
WHERE     (medziobd BETWEEN 200 AND 1000) and  chovatel='108520701'
GROUP BY chovatel


select * from cm_krava where ciskravy = 'FR004240969345'

*/
END
go

-- =============================================
-- Author:		David Florek
-- Create date: 24.05.2017
-- Description:	Zoznam chovov Osipane
-- =============================================
CREATE PROCEDURE [dbo].[P_aktual_ZoznamChovov]
AS
BEGIN
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[PP_ZoznamChovov]') AND TYPE IN (N'U'))
		DELETE FROM [dbo].PP_ZoznamChovov
	ELSE
		CREATE TABLE [dbo].[PP_ZoznamChovov](
			[Chov] [varchar](9) NOT NULL,
			[Nazov] [varchar](25) NULL,
			[StKU] [varchar](5) NULL,
			[PlemSt] [varchar](4) NULL,
			[UzitZSt] [varchar](30) NULL,
			[PocetPrasnic] [int] NULL,
			[PocetKancov] [int] NULL,
			[PocetPotomkov] [int] NULL,
			[Plemenar] [varchar](30) NULL,
			VykKU varchar(1) NULL
		) ON [PRIMARY]

	DECLARE 
		@chovatel as varchar(9),
		@kraj as varchar(1),
		@okres as varchar(2),
		@podnik as varchar(3),
		@chov as varchar(3),
		@STKU as varchar(5),
		@pocPras as int,
		@pocKan as int,
		@pocPot as int,
		@plemenar as varchar(30),
		@nazov as varchar(25),

		@UzitZSt varchar(30),
		@PlemSt varchar(2),
		@UzitZam varchar(1),
		@VykKu varchar(1);

	declare zviera cursor for
		SELECT ch.kraj, ch.okres, ch.podnik, ch.chov
		FROM NM_CHOVMAS AS ch
		inner join NM_OSDETAIL as mimo on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = mimo.kraj + mimo.okres + mimo.podnik + mimo.chov
		where ch.ZRUS is null and datumZrusenia is null and ch.TYPZV = '2';

		open zviera	
		fetch next from zviera into @kraj, @okres, @podnik, @chov;
		WHILE @@FETCH_STATUS = 0 
		begin
			SET @chovatel = @kraj + @okres + @podnik + @chov;

			SET @nazov = (SELECT NAZOVSKR FROM NM_PODNIK p
							WHERE p.KRAJ = @kraj 
								and p.OKRES = @okres
								and p.PODNIK = @podnik);

			set @STKU = case
				when CAST(SUBSTRING(@chov, 2,2) as INT) < 10 then 'SCH'
				when CAST(SUBSTRING(@chov, 2,2) as INT) > 9 and CAST(SUBSTRING(@chov, 2,2) as INT) < 19 then 'RCH'
				when CAST(SUBSTRING(@chov, 2,2) as INT) = 19 then 'KCH'
				when CAST(SUBSTRING(@chov, 2,2) as INT) > 19 then 'ÚCH'
				end;

			--Uzitkove zameranie stada a plemeno stada z menovky
			(select @UzitZSt = null, --(select popis from [NC_UzitZam] u where u.UZITZST = n.uzitzst),
			@PlemSt = null, --substring(plem, 1, 2),
			@VYKKU = VYKKU from NM_OSDETAIL n
				where KRAJ = @kraj
				and OKRES = @okres
				and PODNIK = @podnik
				and chov = @chov
			);
			
			--Treba doriesit
			--SET @pocPot = (SELECT count (*) 
			--				from SP_Ovecky where chov = @chovatel 
			--				and datVyr is null and dovod = '0'
			--				and tab in ('SM_Potomok','SM_APotomok') )

			SET @pocPras = (SELECT count (*) 
							from PM_PrasnicePev where Chovatel_kraj + Chovatel_okres + Chovatel_podnik + Chovatel_chov = @chovatel
							and Datum_vyradeniaKU is null and Kod_vyrKU = '00');

			SET @pocKan = (SELECT count (*) 
							from PM_Kance where Chovatel_kraj + Chovatel_okres + Chovatel_podnik + Chovatel_chov = @chovatel
							and Datum_vyradeniaKU is null and Kod_vyrKU = '00');

			--Treba doriesit
			--if (@pocPot is NULL)
				SET @pocPot = 0;

			if (@pocPras is NULL)
				SET @pocPras = 0;

			if (@pocKan is NULL)
				SET @pocKan = 0;

			--Plemenar
			SET @plemenar = 
			(
				SELECT Priezvisko + ' ' + Meno +
					(case when TITULPRED is not null then ', ' + TITULPRED else '' end) +
					(case when TITULZA is not null then ' ' + TITULZA else '' end)
				FROM NM_Kontakt k
				join NM_OSDETAIL ch on k.IDPAM = ch.PLEMENAR
				and ch.kraj + ch.okres + ch.podnik + ch.chov = @chovatel
				where IDPAM <> '00000'
			);

			if (@chovatel not in (select chov from PP_ZoznamChovov where chov = @chovatel))
			begin
				insert into PP_ZoznamChovov
				values (@chovatel, @nazov, @STKU, @PlemSt, @UzitZSt, @pocPras, @pocKan, @pocPot, @plemenar, @VykKu)
			end
			fetch next from zviera into @kraj, @okres, @podnik, @chov;
		end
	close zviera;
	deallocate zviera;

END
go

CREATE procedure [dbo].[Rocenka_OV_Tab_RuKraje]
    @rok varchar(4),
	@PlemTyp varchar (1)
	
as
begin

	
	select * 
	from dbo.SP_Rocenka_RuKraje as z
	
		where  z.rok = @rok and z.TypPlem = @PlemTyp
	
end
go


CREATE PROCEDURE [dbo].[C_ZZ_MLIEKO_Naj_kravy]

AS
BEGIN

TRUNCATE TABLE plis.dbo.CP_Mlieko_NajKrava

declare @C varchar(9);
declare @K varchar (14);
	
	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;
	while @@FETCH_STATUS=0
	begin
		
		declare krava cursor for
		select ciskravy
		from plis.dbo.cm_krava
		where CHOVATEL=@c
		and PRIZNAKKU='1'
		and DOVVYR is NULL;

		open krava
		fetch next from krava into @k;

		while @@FETCH_STATUS=0
		begin
			insert into plis.dbo.CP_Mlieko_NajKrava values(@K,
															@C,
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K),
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K
																and zmena in (30,40)),
															(select sum(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
																(select avg(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40))
																
															);
			fetch next from krava into @k;
		end
		close krava
		deallocate krava


		fetch next from chovatel into @C;
	end
	close chovatel;
	deallocate chovatel;

END
go

CREATE PROCEDURE [dbo].[CR_doklad_o_vazeni_teliat_mlieko]

	
	@Rok int,
	@Mesiac INT,
	@CHOV [varchar](9) =''

as	
Begin
	declare  @dokladOvazMLteliat table
	(
	CHOV varchar(9),
	IDCHOVU bigint
	)

	insert into @dokladOvazMLteliat (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as v
	where (v.CHOV like @CHOV+'%' or @CHOV is null) and v.ROK = @rok and v.MESIAC = @mesiac
	
		

SELECT distinct
		doml.CHOV,	
		vaz.CISTELATA,	
		--(select distinct max (HMOT) from CM_Vazenia as vaz where vaz.CHOVVAZ = doml.CHOV), 
		--vaz.HMOT,
		(select max (HMOT) from CM_Vazenia as vaz where vaz.CISTELATA = e.CISTELATA and vaz.CHOVVAZ=doml.chov) as hmotnost,
		vaz.PRIZNAKKU,		
		@mesiac AS mesiac,
		@rok AS rok
		
		
		from  @dokladOvazMLteliat as doml
		left join CM_Vazenia as vaz ON vaz.CHOVVAZ = doml.CHOV	--and vaz.hmot= max(vaz.hmot)	
		left join CM_Telata as e on e.CISTELATA = vaz.CISTELATA and e.CHOVATEL = vaz.CHOVVAZ
		
		
		
	WHERE
	
		   --vaz.SPRACINSERT in (select IDCHOVU from @dokladOvazMLteliat ) and
		  vaz.PRIZNAKKU='1' and e.PRIZNAKKU='1'
		   and  e.DOVVYR is null and DATVYR is null
		   and e.CISTELATA is not null 
		   and (doml.chov like @chov+'%' or @chov is null) 
		   --and vaz.HMOT= (select max (HMOT) from CM_Vazenia as vaz where vaz.CISTELATA = e.CISTELATA)
		  
	
	Order by CHOV, CISTELATA

	End
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a sektora
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_zvaz_sektor]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (100) null,
	  [Sektor_kod][varchar](2)null,
	  [Sektor][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null,
		[Sektor_kod][varchar](2)null,
		[Sektor][varchar](100)null		
	)

----if (@region is null) 
----begin
----	if (len(@chov) = 1)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----			(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----			--and (reg.REGION=@region or @region is null) 
----			and lakt.kraj = @chov
----			and a.PRIZNAK=1	
----			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----				or (Lakt.DATUKNORL >= @datumOd 
----				and Lakt.DATUKNORL <= @datumDo))
----			and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 3)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.okres = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 6)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.podnik = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 9)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.CHOVATEL = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----	end

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov,
----		d.FSEKTOR as Sektor_kod, 
----		e.NAZOV as Sektor
----	from CM_Krava as k
----		--left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV)
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
		
----	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		--and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end
---- ELSE
---- begin
---- 	insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
----		left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(reg.REGION=@region or @region is null)
----				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov,
----		d.FSEKTOR as Sektor_kod, 
----		e.NAZOV as Sektor
----	from CM_Krava as k
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV)
----		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
----		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
		
----	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end


insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,reg.Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
 left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
		 
 --select * from  @Laktacie order by CHOVATEL

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov,
		d.FSEKTOR as Sektor_kod, 
		e.NAZOV as Sektor
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV)
		left outer join NM_PODNIK as d on (d.KRAJ+d.OKRES+d.PODNIK=substring(CHOVATEL, 1, 6))
		left outer join NC_Sektor as e on (e.ID=d.FSEKTOR)
		
	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1
				
declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov,
		Sektor_kod, 
		Sektor
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,Sektor_kod, Sektor	


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
		

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
    CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD, CharChov, Sektor_kod, Sektor)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null

	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor


	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

--select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	----select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
  	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 

		----select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
	[CharChov][varchar] (50) null,
	[Sektor_kod][varchar](2)null,
	[Sektor][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov,
	Sektor_kod as Sektor_kod,
	Sektor as Sektor
  

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD, l.CharChov, l.Sektor_kod, l.Sektor 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

--IF EXISTS(
--SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--WHERE 
--	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--	and DatumOd = @datumOd and DatumDo = @datumDo
--)
--BEGIN
--	DELETE FROM CR_LaktacneZostavy  WHERE 
--	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--	--(chov like @chov+'%' or @chov is null) 
--	and DatumOd = @datumOd and DatumDo = @datumDo
--END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
		(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD)+','+('S'+l.Sektor_kod)as Filter,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD and ZapojL1.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD and ZapojL2.Sektor_kod=l.Sektor_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojLCelk.CharChov_KOD=l.CharChov_KOD and ZapojLCelk.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.CharChov_KOD=l.CharChov_KOD and LAKV1.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.CharChov_KOD=l.CharChov_KOD and LAKV2.Sektor_kod=l.Sektor_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD and LAKVC.Sektor_kod=l.Sektor_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.CharChov_KOD=l.CharChov_KOD and L1.Sektor_kod=l.Sektor_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD and L2.Sektor_kod=l.Sektor_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD and lCelk.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD and NL1.Sektor_kod=l.Sektor_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD and NL2.Sektor_kod=l.Sektor_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD and NlCelk.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD and ZL1.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD and ZL2.Sektor_kod=l.Sektor_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD and ZCelk.Sektor_kod=l.Sektor_kod)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru fenotypov pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_phenotypic2]
AS
BEGIN
    

	delete from CP_LAKT_VYSL_PDC_SIM_NEMECKO

	-- 1 lakt 100 dni
	SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, 100 as dni, v1.MLIEKO100 as MLIEKO,  v1.TUK100 as TUK, v1.BIELK100  as BIELK into #temp_1_100
	  FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '01' and v1.mlieko100 is not null and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, 
	      (SELECT avg(MLIEKO100) FROM View_CP_LaktacieNaplak  where mlieko100 is not null and chovatel = mt. CHOVATEL and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))) as priemml                
	FROM #temp_1_100 mt 

/*	-- 1 lakt 200 dni
	SELECT * into #temp_1_200
	  FROM CM_ZSTDM
	where porlak = '01' and DATEDIFF(day, DATOTEL, DATKONTR) >= 200 and DATEDIFF(day, DATOTEL, DATKONTR) < 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_1_200 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_1_200
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays*/
    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, 200 as dni, v1.MLIEKO200 as MLIEKO,  v1.TUK200 as TUK, v1.BIELK200  as BIELK into #temp_1_200
	  FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '01' and v1.mlieko200 is not null and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, 
	      (SELECT avg(MLIEKO200) FROM View_CP_LaktacieNaplak  where mlieko200 is not null and chovatel = mt. CHOVATEL and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))) as priemml                
	FROM #temp_1_200 mt

 	-- 1 lakt 305 dni
/*	SELECT * into #temp_1_305
	  FROM CM_ZSTDM
	where porlak = '01' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_1_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_1_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays*/
    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, 305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_1_305
	  FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '01' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, 
	      (SELECT avg(MLIEKNOR) FROM View_CP_LaktacieNaplak  where MLIEKNOR is not null and LAKDNIN = 305 and chovatel = mt. CHOVATEL and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))) as priemml                
	FROM #temp_1_305 mt

/*	-- 2 lakt 305 dni
	SELECT * into #temp_2_305
	  FROM CM_ZSTDM
	where porlak = '02' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_2_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_2_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays*/
    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, 305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_2_305
	  FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '02' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, 
	      (SELECT avg(MLIEKNOR) FROM View_CP_LaktacieNaplak  where MLIEKNOR is not null and LAKDNIN = 305 and chovatel = mt. CHOVATEL and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))) as priemml                
	FROM #temp_2_305 mt


/*	-- 3 lakt 305 dni
	SELECT * into #temp_3_305
	  FROM CM_ZSTDM
	where porlak = '03' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_3_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_3_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays

*/
    SELECT v1.CISKRAVY, v1.CHOVATEL,  v1.PORLAK, 305 as dni, v1.MLIEKNOR as MLIEKO,  v1.TUKNOR as TUK, v1.BIELKNOR  as BIELK into #temp_3_305
	FROM View_CP_LaktacieNaplak as v1
	 
	where v1.porlak = '03' and v1.MLIEKNOR is not null  and v1.LAKDNIN = 305 and zmena in (30, 40, 11)
	and v1.CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, 
	      (SELECT avg(MLIEKNOR) FROM View_CP_LaktacieNaplak  where MLIEKNOR is not null and LAKDNIN = 305 and chovatel = mt. CHOVATEL and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))) as priemml                
	FROM #temp_3_305 mt

	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00'+convert(varchar(2), PORLAK), 2) as PORLAK
		,RIGHT('000'+convert(varchar(3), DNI), 3) as DNI
		,RIGHT('00000'+convert(varchar(5), convert(numeric (5,0), MLIEKO)), 5) as MLIEKO
	--	,RIGHT('0000'+convert(varchar(4),  convert(numeric(4,0), TUK*10)), 4) as TUK
         ,case when tuk is not null and tuk  > 0 then (RIGHT('0000'+convert(varchar(4),  convert(decimal(4,0) , tuk*10)), 4) )
	                               else '0000' end as TUK
   
	--	,RIGHT('0000'+convert(varchar(4),  convert(numeric(4,0), BIELK*10)), 4) as BIELK
	    ,case when bielk is not null and bielk  > 0 then (RIGHT('0000'+convert(varchar(4),  convert(decimal(4,0) , BIELK*10)), 4) )
	                               else '0000' end  as BIELK
    
		,RIGHT('00000'+convert(varchar(5), convert(numeric (5,0), PRMLIEKO)), 5) as PRIEMML
		into temp_polozky_pdc
	FROM CP_LAKT_VYSL_PDC_SIM_NEMECKO

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +PORLAK +DNI +MLIEKO +TUK +BIELK +PRIEMML as VETA from plis.dbo.temp_polozky_pdc" queryout "e:\ROZBORAK\Data\svk.08.txt" -T -c -t,'

	drop table temp_polozky_pdc

END

go

---pre vypocet do najchovu za pleno v SR 
CREATE procedure [dbo].[Roc_MLHD_NAJCHOV_plemeno]
	@datumOd date,
	@datumDo date

as 
begin

	--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30'

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null
	   )

	  insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when TYPPLEM in('62','66','60','70','80','90','61','71','81','91', '72','73','74','75','76','77','78','79',
										'82','83','84','85','86','87','88','89','92','93','94','95','96','97','98','99') then 'Hol+K'
					when TYPPLEM in('11', '12','13','14') then 'SS+K'
						when TYPPLEM in('51','52','53','54') then 'Pin+K'
						when TYPPLEM in('21','22','23') then 'Brau'
						when PL1 = 'MB' and TYPPLEM in ('11', '12','13','14') then 'MB'
						else null
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR
			FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				where ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
						and MLIEKCEL <>''
		union 
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when TYPPLEM in('95','99') then 'Hol'
					when TYPPLEM in('11', '12') then 'SS'
						when TYPPLEM in('51','52') then 'Pin'
						else null
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR
			FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				where ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
						and MLIEKCEL <>''
		union 
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when PL1 = 'MB' and TYPPLEM in ('11', '12','13','14') then 'MB'
					else null
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR
			FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				where ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
						and MLIEKCEL <>''

	delete from @Laktacie where typPlem is null

	--select * from @Laktacie


	Declare @laktCelkom table
  ( 
	 [typPlem] [varchar] (5) null,
	[PocLakNcelk] [float] NULL,
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
	[PorLakt] [float] NULL 
	)

insert @laktCelkom
select
	l.typPlem as typPlem,
	count(*) as PocLakNcelk, 
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	convert(decimal(5,2),AVG(PORLAK *1.0)) as Porlakt
	from @Laktacie as l
		where (l.ZMENA = '30' or l.ZMENA='40') 
	group by l.typPlem

declare @Medziobd table
	(
	 [typPlem] [varchar] (5) null,
	 [Medziobdobie] int
	)

	insert @Medziobd
		select typPlem, 
				ROUND(AVG(MEDZIOBD),2)
		from @Laktacie as l
			where PORLAK >= '2'
				and (l.ZMENA = '30' or l.ZMENA='40') 
		group by typPlem


insert into Roc_MLHD_Tab_NAJCHOV 
		(KrajOkr, Podnik, Podnik_nazov, Prev_pl, PocLakt, Mlieko, Tuk_kg, Tuk_p, Bielk_kg, Bielk_p, Tuk_Bielk, Priem_lakt, Medziobd, Indx, Rok )
		Select distinct
		'SR' as KrajOkr ,
		null as	PODNIK ,
		null as	Podnik_nazov,
		l.typPlem as Prev_pl,
		l.PocLakNcelk as PocLakt,
		l.MliekNorCelk as Mlieko,
		l.TukNorCelk as	Tuk_kg,
		round((l.TukNorCelk*100)/l.MliekNorCelk,2) as Tuk_p,
		l.BielkNorCelk as Bielk_kg,
		round((l.BielkNorCelk*100)/l.MliekNorCelk,2) as	Bielk_p,
		l.TukNorCelk + BielkNorCelk as Tuk_Bielk,
		l.PorLakt as priem_lakt,
		m.Medziobdobie as Medziobd,
		round( (TukNorCelk + BielkNorCelk)*365/ Medziobdobie * PorLakt,2) as indx,
		DATEPART(YEAR,@datumOd) as	ROK
		from @laktCelkom as l
		left outer join @Medziobd as m on m.typPlem = l.typPlem
		

end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Pripravy subor s datami rodokemnov za SIM populaciu pre gen. hodnotenie v DE
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_pedigree]

AS
BEGIN
	
	-- 0-ta generacia
	truncate table CP_POVODY_SIM_PH_NEMECKO_0
	insert into CP_POVODY_SIM_PH_NEMECKO_0 
	SELECT USCISLO
		  ,DATNAR
		  ,1 as PLEMENO
		  ,1 as POHLAVIE
		  ,dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) as PODIELCK
		  ,OTUSCIS as OTEC
		  ,MATKA
		  ,left(MENO, 12) as MENO
	  FROM CM_Byci
	WHERE LIN is not null and REG is not null and pl1 in ('S', 'MB')

	SELECT distinct CISKRAVY as ciskravy into #temp_cisla_kontrol
	  FROM CM_ArchKon
	union
	SELECT distinct CISKRAVY
	  FROM CM_Kontroly

	select CISKRAVY as ciskravy into #temp_cisla_krav
		FROM #temp_cisla_kontrol
	except select ANIMAL FROM CP_POVODY_SIM_PH_NEMECKO_0

	insert into CP_POVODY_SIM_PH_NEMECKO_0 
	SELECT c.CISKRAVY
		  ,k.DATNAR
		  ,1 as PLEMENO
		  ,2 as POHLAVIE
		  ,dbo.SIMSucetCudzejKrvi (k.PL1,k.KR1,k.PL2,k.KR2,k.PL3,k.KR3,k.PL4,k.KR4,k.PL5) as PODIELCK
		  ,k.OUSCIS
		  ,k.MA
		  ,null as MENO
	  FROM #temp_cisla_krav as c
	  inner join (select CISKRAVY, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, OUSCIS, MA from CM_KRAVA where pl1 in ('S', 'MB')) as k
	  on c.CISKRAVY = k.CISKRAVY

	SELECT CISKRAVY, max(DATKONTR) as DATKONTR into #temp_cisla_krav1
	  FROM CM_ZSTDM
	  where LEFT(TYP, 1) = 'S'
	  group by CISKRAVY

	insert into CP_POVODY_SIM_PH_NEMECKO_0 
	SELECT c.CISKRAVY
		  ,k.DATUMN
		  ,1 as PLEMENO
		  ,2 as POHLAVIE
		  ,dbo.SIMSucetCudzejKrvi (k.PL1,k.KR1,k.PL2,k.KR2,k.PL3,k.KR3,k.PL4,k.KR4,k.PL5) as PODIELCK
		  ,case k.OTEC when '000000000000000' then null else k.OTEC end
		  ,case k.MATKA when '000000000000000' then null else k.MATKA end
		  ,null as MENO
	  FROM #temp_cisla_krav1 as c
	  left join CM_ZSTDM as k
	  on c.CISKRAVY = k.CISKRAVY and c.DATKONTR = k.DATKONTR
	  and LEFT(TYP, 1) = 'S'
	  ---
	  where c.CISKRAVY not in (select ANIMAL from CP_POVODY_SIM_PH_NEMECKO_0)
	  and LEFT(k.TYP, 1) = 'S'

	  --1-va generacia
	truncate table CP_POVODY_SIM_PH_NEMECKO_1
	insert into CP_POVODY_SIM_PH_NEMECKO_1
	select ciskravy
		,datnar
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,2 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OUSCIS as OTEC
		,MA as MATKA
		,left(BB_NAME, 12) as MENO
		from cm_krava 
	where ciskravy in
	(SELECT MATKA
	  FROM CP_POVODY_SIM_PH_NEMECKO_0)    

	insert into CP_POVODY_SIM_PH_NEMECKO_1
	select USCISLO
		,DATNAR
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,1 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OTUSCIS as OTEC
		,MATKA
		,left(MENO, 12) as MENO
		from cm_byci 
	where USCISLO in
	(SELECT OTEC
	  FROM CP_POVODY_SIM_PH_NEMECKO_0)
	and uscislo not in (select animal from CP_POVODY_SIM_PH_NEMECKO_1)

	-- 2-ha generacia
	truncate table CP_POVODY_SIM_PH_NEMECKO_2
	insert into CP_POVODY_SIM_PH_NEMECKO_2
	select USCISLO
		,DATNAR
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,1 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OTUSCIS as OTEC
		,MATKA
		,left(MENO, 12) as MENO
		from cm_byci 
	where USCISLO in
	(SELECT OTEC
	  FROM CP_POVODY_SIM_PH_NEMECKO_1)

	insert into CP_POVODY_SIM_PH_NEMECKO_2
	select ciskravy
		,datnar
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,2 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OUSCIS as OTEC
		,MA as MATKA
		,left(BB_NAME, 12) as MENO
		from cm_krava 
	where ciskravy in
	(SELECT MATKA
	  FROM CP_POVODY_SIM_PH_NEMECKO_1)
	and ciskravy not in (select animal from CP_POVODY_SIM_PH_NEMECKO_2)

	-- 3-tia generacia
	truncate table CP_POVODY_SIM_PH_NEMECKO_3
	insert into CP_POVODY_SIM_PH_NEMECKO_3
	select USCISLO
		,DATNAR
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,1 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OTUSCIS as OTEC
		,MATKA
		,left(MENO, 12) as MENO
		from cm_byci 
	where USCISLO in
	(SELECT OTEC
	  FROM CP_POVODY_SIM_PH_NEMECKO_2)

	insert into CP_POVODY_SIM_PH_NEMECKO_3
	select ciskravy
		,datnar
		,case when pl1 in ('S', 'MB') then 1 else 0 end as PLEMENO
		,2 as POHLAVIE
		,case when pl1 in ('S', 'MB') then dbo.SIMSucetCudzejKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) else 0 end as PODIELCK 
		,OUSCIS as OTEC
		,MA as MATKA
		,left(BB_NAME, 12) as MENO
		from cm_krava 
	where ciskravy in
	(SELECT MATKA
	  FROM CP_POVODY_SIM_PH_NEMECKO_2)
	and CISKRAVY not in (select animal from CP_POVODY_SIM_PH_NEMECKO_3)

	-- zjednotenie generacii povodov
	truncate table CP_POVODY_SIM_PH_NEMECKO_CELE
	insert into CP_POVODY_SIM_PH_NEMECKO_CELE
	SELECT ANIMAL
		  ,DATNAR
		  ,PLEMENO
		  ,POHLAVIE
		  ,PODIELCK
		  ,OTEC
		  ,MATKA
		  ,MENO
	  FROM CP_POVODY_SIM_PH_NEMECKO_0
	  where ANIMAL not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)

	insert into CP_POVODY_SIM_PH_NEMECKO_CELE
	SELECT ANIMAL
		  ,DATNAR
		  ,PLEMENO
		  ,POHLAVIE
		  ,PODIELCK
		  ,OTEC
		  ,MATKA
		  ,MENO
	  FROM CP_POVODY_SIM_PH_NEMECKO_1
	  where ANIMAL not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)

	insert into CP_POVODY_SIM_PH_NEMECKO_CELE
	SELECT ANIMAL
		  ,DATNAR
		  ,PLEMENO
		  ,POHLAVIE
		  ,PODIELCK
		  ,OTEC
		  ,MATKA
		  ,MENO
	  FROM CP_POVODY_SIM_PH_NEMECKO_2
	  where ANIMAL not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)

	insert into CP_POVODY_SIM_PH_NEMECKO_CELE
	SELECT ANIMAL
		  ,DATNAR
		  ,PLEMENO
		  ,POHLAVIE
		  ,PODIELCK
		  ,OTEC
		  ,MATKA
		  ,MENO
	  FROM CP_POVODY_SIM_PH_NEMECKO_3
	  where ANIMAL not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)

	  -- upravy
	delete
	  FROM CP_POVODY_SIM_PH_NEMECKO_CELE
	  where left(animal, 2) not in (select KODKRAJINYKRATKY from NC_CiselnikKrajin)
	  or isnumeric(right(ANIMAL, 12)) = 0 or len(ANIMAL) != 14 
	  or animal is null or ANIMAL = 'SK777777777777'

	delete
	 FROM CP_POVODY_SIM_PH_NEMECKO_CELE
	  where animal = otec or ANIMAL = MATKA or OTEC = MATKA

	update CP_POVODY_SIM_PH_NEMECKO_CELE
		set OTEC = null
	  where (left(OTEC, 2) not in (select KODKRAJINYKRATKY from NC_CiselnikKrajin)
	  or isnumeric(right(OTEC, 12)) = 0 or len(OTEC) != 14 
	  or OTEC = 'SK777777777777') and OTEC is not null

	update CP_POVODY_SIM_PH_NEMECKO_CELE
		set MATKA = null
	  where (left(MATKA, 2) not in (select KODKRAJINYKRATKY from NC_CiselnikKrajin)
	  or isnumeric(right(MATKA, 12)) = 0 or len(MATKA) != 14 
	  or MATKA = 'SK777777777777') and MATKA is not null

	update CP_POVODY_SIM_PH_NEMECKO_CELE
		set OTEC = null
	  where OTEC not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)

	update CP_POVODY_SIM_PH_NEMECKO_CELE
		set MATKA = null
	  where MATKA not in (select animal from CP_POVODY_SIM_PH_NEMECKO_CELE)


	-- export do txt suboru
	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(ANIMAL, 2)) as CISLOKRAJINY
		,right(ANIMAL, 12) as CISLOZVIERATA
		,isnull(convert(varchar(8), DATNAR, 112), '00000000') as DATNAR
		,RIGHT('00'+convert(varchar(2), PLEMENO), 2) as PLEMENO
		,convert(varchar(1), POHLAVIE) as POHLAVIE
		,RIGHT('0000'+convert(varchar(4), PODIELCK), 4) as PODIELCK
		,' ' as KODVYRADENIA
		,isnull((SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(OTEC, 2)), '000') as OTECCISLOKRAJINY
		,isnull(right(OTEC, 12), '000000000000') as OTECCISLOZVIERATA
		,isnull((SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(MATKA, 2)), '000') as MATKACISLOKRAJINY
		,isnull(right(MATKA, 12), '000000000000') as MATKACISLOZVIERATA
		,'703' as KRAJINAPOVODU
		,'00' as REGIONPOVODU
		,'          ' as PK
		,(select left(isnull(MENO, '') + '            ', 12) collate SQL_Latin1_General_Cp1251_CS_AS) as MENO
		into temp_polozky_povodov
	FROM CP_POVODY_SIM_PH_NEMECKO_CELE

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +DATNAR +PLEMENO +POHLAVIE +PODIELCK +KODVYRADENIA +OTECCISLOKRAJINY +OTECCISLOZVIERATA +MATKACISLOKRAJINY +MATKACISLOZVIERATA +KRAJINAPOVODU +REGIONPOVODU +PK +(SELECT MENO collate Slovak_CI_AS) as VETA from plis.dbo.temp_polozky_povodov" queryout "e:\ROZBORAK\Data\svk.01.txt" -T -c -t,'

	drop table temp_polozky_povodov
END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 19.02.2018
-- Description:	Vysledky rerodukcie za plemena - Sumarna tabulka (roc 2017), bez ohladu na stupenKU
-- SR - Ovce Rocenka
-- =============================================
CREATE PROCEDURE [dbo].[SR_Roc_VyslReprodZaPlem]	
	@rok int
AS
BEGIN

	declare @tab as table
	(
		Pocet_Stad int,
		PocBah_Prip int, 
		PocBah_PredVyrad int, 
		PocBah_Jal int, 
		PocBah_Obah int, 
		PocNarJahn int, 	
		PercOplod float,
		PercPlod float,
		PercPlodNaBahn float,	
		StupenKU int,
		rok int
	)
	insert into @tab
	select  
		  --SUM(TypPlem) as       
		  --PlemenoStada
		  count(*) as Pocet_Stad
		  , SUM(PocBah_Prip) as PocBah_Prip
		  ,SUM(PocBah_PredVyrad) as PocBah_PredVyrad
		  ,SUM(PocBah_Jal) as PocBah_Jal
		  ,SUM(PocBah_Obah) as PocBah_Obah
		  ,SUM(PocNarJahn) as PocNarJahn
		  ,100 * (SUM(PocBah_Obah*1.0) / SUM(PredOplod*1.0)) as PercOplod	  
		  ,100 * (SUM(PocNarJahn*1.0) / SUM(PredOplod*1.0)) as PercPlod
		  ,100 * (SUM(PocNarJahn*1.0) / SUM(PocBah_Obah * 1.0)) as PercPlodNaBahn      
		  ,StupenKU
		  ,Rok
		  from (
			  select PocBah_Prip, PocBah_PredVyrad, PocBah_Jal, PocBah_Obah, PocNarJahn, 
			  PercOplod, PercPlod, PercPlodNaBahn, 
			  PocBah_Prip - PocBah_PredVyrad  as PredOplod,
			  StupenKU, krokr+podnik+stado as chov, rok
				from plis.dbo.[SP_Rocenka_VKUSt]
				--where krokr is null and 
				where krokr is not null and 
			--	rok  = 2017  and 
				NazovStada <> 'výsledky za predchádzajúci rok :'
		) a
	group by 
	StupenKU, 
	Rok

	insert into @tab
	select  
		  --SUM(TypPlem) as       
		  --PlemenoStada
		  count(*) as Pocet_Stad
		  ,SUM(PocBah_Prip) as PocBah_Prip
		  ,SUM(PocBah_PredVyrad) as PocBah_PredVyrad
		  ,SUM(PocBah_Jal) as PocBah_Jal
		  ,SUM(PocBah_Obah) as PocBah_Obah
		  ,SUM(PocNarJahn) as PocNarJahn
		  ,100 * (SUM(PocBah_Obah*1.0) / SUM(PredOplod*1.0)) as PercOplod	  
		  ,100 * (SUM(PocNarJahn*1.0) / SUM(PredOplod*1.0)) as PercPlod
		  ,100 * (SUM(PocNarJahn*1.0) / SUM(PocBah_Obah * 1.0)) as PercPlodNaBahn      
		  ,4 as StupenKU
		  ,Rok
		  from (
			  select PocBah_Prip, PocBah_PredVyrad, PocBah_Jal, PocBah_Obah, PocNarJahn, 
			  PercOplod, PercPlod, PercPlodNaBahn, 
			  PocBah_Prip - PocBah_PredVyrad  as PredOplod,
			  --StupenKU, krokr+podnik+stado as chov, 
			  rok
				from plis.dbo.[SP_Rocenka_VKUSt]
				--where krokr is null and 
				where krokr is not null and 
			--	rok  = 2017  and 
				NazovStada <> 'výsledky za predchádzajúci rok :'
				and StupenKU in (1, 2)
		) a
	group by 
	Rok


	select rok,
	case stupenKU when 1 then 'ŠCH' 
				when 2 then 'RCH'
				when 3 then 'ÚCH' 
				when 4 then 'ŠCH+RCH' end as stupenKU,
	Pocet_Stad,
	PocBah_Prip, PocBah_PredVyrad, PocBah_Jal, PocBah_Obah, PocNarJahn, 
	PercOplod, PercPlod, PercPlodNaBahn 

	from (
		select * , 1 as id from @tab where rok = @rok and StupenKU = 1
		union
		select * , 2 as id from @tab where rok = @rok-1 and StupenKU = 1
		union
		select * , 3 as id from @tab where rok = @rok and StupenKU = 2
		union
		select * , 4 as id from @tab where rok = @rok-1 and StupenKU = 2
		union
		select * , 5 as id from @tab where rok = @rok and StupenKU = 4
		union
		select * , 6 as id from @tab where rok = @rok-1 and StupenKU = 4
		union
		select * , 7 as id from @tab where rok = @rok and StupenKU = 3
		union
		select * , 8 as id from @tab where rok = @rok-1 and StupenKU = 3
	) t
	order by id

--	select * from @tab

END

--	exec [SR_Roc_VyslReprodZaPlem] '2017'
go

-- =============================================

-- =============================================
CREATE PROCEDURE [dbo].[CR_TMHD_sumar_mesacne]
	@chov [varchar] (9), 
	@rok int, 
	@mesiac int
	--,@r [int]
AS
BEGIN

	declare @r int = len(@chov)
	declare @IDR bigint

	DECLARE @pocetvymaz int
				SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_TMHD_sumar_mesiac WHERE chovatel = @chov AND rok = @rok AND mesiac = @mesiac
				DELETE FROM CR_TMHD_sumar_mesiac WHERE chovatel = @chov AND rok = @rok AND mesiac = @mesiac
				PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)

	/*
		Najprv sa vypisu vsetky chovy podla zadania a zisti sa ich typ zaradenia
	*/
	select *, dbo.HDchov_typ_KU (chovatel) as typ  
	into #chov
	from(
		select chovatel from [dbo].[View_CP_SumarMladyDobytokJal_new] AS a
		WHERE 
			(@r = 9 and chovatel = @chov)
			OR	((@r = 6 OR @r = 3) AND chovatel LIKE @chov + '%')
		group by chovatel
	) t

	 
	 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
	 FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
	 WHERE chov in (select chovatel from #Chov where typ = 'TMHD')  and @rok=rok and @mesiac=MESIAC and TYPKU = 4

	 declare @chovy int = (select count(chov) from  VstupyPLIS.dbo.CP_SPRAC_CHOVY where CHOV=@chov and rok=@rok and mesiac = @mesiac and TYPKU = 4)
	 print 'chovy'
	 print @chovy
	--if @chov in (select chov from  VstupyPLIS.dbo.CP_SPRAC_CHOVY where CHOV=@chovatel and rok=@rok and mesiac = @mesiac and TYPKU = 4)
	if @chovy >0
	begin 
		Insert into CR_TMHD_sumar_mesiac
		 (ID, vek,pocet, hmotnost,dennpriras, zivpriras , chovatel ,pocetA ,percentA ,hmotnostA ,pocetB ,percentB ,hmotnostB ,pocetC ,percentC ,hmotnostC)

		exec dbo.C_TMHD_sumar @chov 
	end

	update CR_TMHD_sumar_mesiac 
	set rok = @rok, mesiac = @mesiac, generovane = getdate(), chovatel=@chov where /*chovatel=@chov and */generovane is null


END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_19A]
	@rok varchar(4),
	@plem_typ varchar(4)

as	
begin
select * from Roc_MLHD_Tab_19A
where rok=@rok and Plem_typ = @plem_typ
ORDER BY KRAJ, OKRES, PODNIK, CHOV, Por
end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 19.02.2018
-- Description:	Vysledky KMU oviec za normovanu dojnu periodu za plemena - Sumarna tabulka (roc 2017), bez ohladu na stupenKU
-- SR - Ovce Rocenka
-- =============================================
create PROCEDURE [dbo].[SR_Roc_VyslKMUOviecZaPlem]	
	@rok int
AS
BEGIN
	declare @tab as table
	(
		--Pocet_Stad int,
		Vsetky_Lakt int, 
		NormLakt_Mlieko int, 
		Mlieko float,
		Tuk_kg float,
		Tuk_perc float,
		Bielk_kg float,
		Bielk_perc float,
		Lakt_kg float,
		Lakt_perc float,
		StupenKU int,
		rok int
	)
		insert into @tab
		select --count(*) as Pocet_Stad
		 SUM(Vsetky_Lakt) as Vsetky_Lakt
		, SUM(NormLakt_Mlieko) as NormLakt_Mlieko
		, SUM(MliekoSpolu) / SUM(NormLakt_Mlieko) as 'Mlieko [l]'
		, SUM(Tuk_kg2) / SUM(NormLakt_Tuk) as 'Tuk [kg]'
		, SUM(Tuk_perc2) / SUM(NormLakt_Tuk) as 'Tuk [%]'
		, SUM(Bielk_kg2) / SUM(NormLakt_Biel) as 'Bielk [kg]'
		, SUM(Bielk_perc2) / SUM(NormLakt_Biel) as 'Bielk [%]'
		, SUM(Lakt_kg2) / SUM(NormLakt_Lakt) as 'Lakt [kg]'
		, SUM(Lakt_perc2) / SUM(NormLakt_Lakt) as 'Lakt [%]',
		StupenKU,
		 rok
		from (
		select 
			Vsetky_Lakt, 
			Mlieko_lit, NormLakt_Mlieko, Mlieko_lit*NormLakt_Mlieko as MliekoSpolu, 

			NormLakt_Tuk, Tuk_kg * NormLakt_Tuk as Tuk_kg2, Tuk_perc * NormLakt_Tuk as Tuk_perc2,
			NormLakt_Biel, Bielk_kg * NormLakt_Biel as Bielk_kg2, Bielk_perc * NormLakt_Biel as Bielk_perc2,
			NormLakt_Lakt, Lakt_kg * NormLakt_Lakt as Lakt_kg2, Lakt_perc * NormLakt_Lakt as Lakt_perc2,

			StupenKU, krokr+podnik+stado as chov, rok
			from plis.dbo.SP_Rocenka_MlSt 
			where --rok = 2017 and 	 
			krokr is not null and NazovStada <> 'výsledky za predchádzajúci rok :'
		--group by StupenKU
		) t
		group by 
		StupenKU,
		 rok

		insert into @tab
		select --count(*) as Pocet_Stad
		 SUM(Vsetky_Lakt) as Vsetky_Lakt
		, SUM(NormLakt_Mlieko) as NormLakt_Mlieko
		, SUM(MliekoSpolu) / SUM(NormLakt_Mlieko) as 'Mlieko [l]'
		, SUM(Tuk_kg2) / SUM(NormLakt_Tuk) as 'Tuk [kg]'
		, SUM(Tuk_perc2) / SUM(NormLakt_Tuk) as 'Tuk [%]'
		, SUM(Bielk_kg2) / SUM(NormLakt_Biel) as 'Bielk [kg]'
		, SUM(Bielk_perc2) / SUM(NormLakt_Biel) as 'Bielk [%]'
		, SUM(Lakt_kg2) / SUM(NormLakt_Lakt) as 'Lakt [kg]'
		, SUM(Lakt_perc2) / SUM(NormLakt_Lakt) as 'Lakt [%]',
		4 as StupenKU,
		 rok
		from (
		select 
			Vsetky_Lakt, 
			Mlieko_lit, NormLakt_Mlieko, Mlieko_lit*NormLakt_Mlieko as MliekoSpolu, 

			NormLakt_Tuk, Tuk_kg * NormLakt_Tuk as Tuk_kg2, Tuk_perc * NormLakt_Tuk as Tuk_perc2,
			NormLakt_Biel, Bielk_kg * NormLakt_Biel as Bielk_kg2, Bielk_perc * NormLakt_Biel as Bielk_perc2,
			NormLakt_Lakt, Lakt_kg * NormLakt_Lakt as Lakt_kg2, Lakt_perc * NormLakt_Lakt as Lakt_perc2,

			StupenKU, krokr+podnik+stado as chov, rok
			from plis.dbo.SP_Rocenka_MlSt 
			where --rok = 2017 and 	 
			krokr is not null and NazovStada <> 'výsledky za predchádzajúci rok :'
			and StupenKU in (1, 2)
		--group by StupenKU
		) t
		group by rok

	select rok,
	case stupenKU when 1 then 'ŠCH' 
				when 2 then 'RCH'
				when 3 then 'ÚCH' 
				when 4 then 'ŠCH+RCH' end as stupenKU,
	Vsetky_Lakt, NormLakt_Mlieko, Mlieko, Tuk_kg, Tuk_perc, Bielk_kg, Bielk_perc, Lakt_kg, Lakt_perc
	from (
		select * , 1 as id from @tab where rok = @rok and StupenKU = 1
		union
		select * , 2 as id from @tab where rok = @rok-1 and StupenKU = 1
		union
		select * , 3 as id from @tab where rok = @rok and StupenKU = 2
		union
		select * , 4 as id from @tab where rok = @rok-1 and StupenKU = 2
		union
		select * , 5 as id from @tab where rok = @rok and StupenKU = 4
		union
		select * , 6 as id from @tab where rok = @rok-1 and StupenKU = 4
		union
		select * , 7 as id from @tab where rok = @rok and StupenKU = 3
		union
		select * , 8 as id from @tab where rok = @rok-1 and StupenKU = 3
	) t
	order by id

--	select * from @tab

END

--	exec [SR_Roc_VyslKMUOviecZaPlem] '2017'
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[CP_Rodokmene]
	@uscislo varchar(14)
AS
BEGIN

	select distinct v.USCISLO as USCISLO,-- v.otec, v.matka, 

	o.meno as otec, m.meno as matka, o.UsCislo as O_USCISLO, o.datnar as O_DATNAR
	, m.USCISLO as M_USCISLO, m.datNar as M_DATNAR

	, oo.USCISLO as OO_USCISLO, oo.datNar as OO_DATNAR
	, mo.USCISLO as MO_USCISLO, mo.datNar as MO_DATNAR
	, om.USCISLO as OM_USCISLO, om.datNar as OM_DATNAR
	, mm.USCISLO as MM_USCISLO, mm.datNar as MM_DATNAR

	, ooo.USCISLO as OOO_USCISLO, ooo.datNar as OOO_DATNAR
	, moo.USCISLO as MOO_USCISLO, moo.datNar as MOO_DATNAR
	, omo.USCISLO as OMO_USCISLO, omo.datNar as OMO_DATNAR
	, mmo.USCISLO as MMO_USCISLO, mmo.datNar as MMO_DATNAR
	, oom.USCISLO as OOM_USCISLO, oom.datNar as OOM_DATNAR
	, mom.USCISLO as MOM_USCISLO, mom.datNar as MOM_DATNAR
	, omm.USCISLO as OMM_USCISLO, omm.datNar as OMM_DATNAR
	, mmm.USCISLO as MMM_USCISLO, mmm.datNar as MMM_DATNAR

	, oooo.USCISLO as OOOO_USCISLO,  oooo.datNar as OOOO_DATNAR
	, mooo.USCISLO as MOOO_USCISLO,  mooo.datNar as MOOO_DATNAR
	, omoo.USCISLO as OMOO_USCISLO, omoo.datNar as OMOO_DATNAR
	, mmoo.USCISLO as MMOO_USCISLO, mmoo.datNar as MMOO_DATNAR
	, oomo.USCISLO as OOMO_USCISLO,  oomo.datNar as OOMO_DATNAR
	, momo.USCISLO as MOMO_USCISLO, momo.datNar as MOMO_DATNAR
	, ommo.USCISLO as OMMO_USCISLO,  ommo.datNar as OMMO_DATNAR
	, mmmo.USCISLO as MMMO_USCISLO,  mmmo.datNar as MMMO_DATNAR
	, ooom.USCISLO as OOOM_USCISLO,  ooom.datNar as OOOM_DATNAR
	, moom.USCISLO as MOOM_USCISLO, moom.datNar as MOOM_DATNAR
	, omom.USCISLO as OMOM_USCISLO, omom.datNar as OMOM_DATNAR
	, mmom.USCISLO as MMOM_USCISLO,  mmom.datNar as MMOM_DATNAR
	, oomm.USCISLO as OOMM_USCISLO, oomm.datNar as OOMM_DATNAR
	, momm.USCISLO as MOMM_USCISLO, momm.datNar as MOMM_DATNAR
	, ommm.USCISLO as OMMM_USCISLO,  ommm.datNar as OMMM_DATNAR
	, mmmm.USCISLO as MMMM_USCISLO,  mmmm.datNar as MMMM_DATNAR


	from CP_Kravicky v

	Outer apply CP_Rodokmen_Otec (v.otec) o
	Outer apply CP_Rodokmen_Matka (v.matka) m

	Outer apply CP_Rodokmen_Otec (o.otec) oo
	Outer apply CP_Rodokmen_Matka (o.matka) mo
	Outer apply CP_Rodokmen_Otec (m.otec) om
	Outer apply CP_Rodokmen_Matka (m.matka) mm

	Outer apply CP_Rodokmen_Otec (oo.otec) ooo
	Outer apply CP_Rodokmen_Matka (oo.matka) moo
	Outer apply CP_Rodokmen_Otec (mo.otec) omo
	Outer apply CP_Rodokmen_Matka (mo.matka) mmo
	Outer apply CP_Rodokmen_Otec (om.otec) oom
	Outer apply CP_Rodokmen_Matka (om.matka) mom
	Outer apply CP_Rodokmen_Otec (mm.otec) omm
	Outer apply CP_Rodokmen_Matka (mm.matka) mmm


	Outer apply CP_Rodokmen_Otec (ooo.otec) oooo
	Outer apply CP_Rodokmen_Matka (ooo.matka) mooo
	Outer apply CP_Rodokmen_Otec (moo.otec) omoo
	Outer apply CP_Rodokmen_Matka (moo.matka) mmoo
	Outer apply CP_Rodokmen_Otec (omo.otec) oomo
	Outer apply CP_Rodokmen_Matka (omo.matka) momo
	Outer apply CP_Rodokmen_Otec (mmo.otec) ommo
	Outer apply CP_Rodokmen_Matka (mmo.matka) mmmo
	Outer apply CP_Rodokmen_Otec (oom.otec) ooom
	Outer apply CP_Rodokmen_Matka (oom.matka) moom
	Outer apply CP_Rodokmen_Otec (mom.otec) omom
	Outer apply CP_Rodokmen_Matka (mom.matka) mmom
	Outer apply CP_Rodokmen_Otec (omm.otec) oomm
	Outer apply CP_Rodokmen_Matka (omm.matka) momm
	Outer apply CP_Rodokmen_Otec (mmm.otec) ommm
	Outer apply CP_Rodokmen_Matka (mmm.matka) mmmm

	where v.uscislo = @uscislo
END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_22AA]
    @rok varchar(4)
as
begin

	
	select distinct Kraj, Okres, PODNIK

	from dbo.Roc_MLHD_Tab_22A as z
	--left outer join plis.dbo.Roc_MLHD_Tab_22 t on z.Okres=t.Okres 
	where z.rok = @rok order by kraj, Okres, podnik
	end
go


	CREATE PROCEDURE dbo.sp_upgraddiagrams
	AS
	BEGIN
		IF OBJECT_ID(N'dbo.sysdiagrams') IS NOT NULL
			return 0;
	
		CREATE TABLE dbo.sysdiagrams
		(
			name sysname NOT NULL,
			principal_id int NOT NULL,	-- we may change it to varbinary(85)
			diagram_id int PRIMARY KEY IDENTITY,
			version int,
	
			definition varbinary(max)
			CONSTRAINT UK_principal_name UNIQUE
			(
				principal_id,
				name
			)
		);


		/* Add this if we need to have some form of extended properties for diagrams */
		/*
		IF OBJECT_ID(N'dbo.sysdiagram_properties') IS NULL
		BEGIN
			CREATE TABLE dbo.sysdiagram_properties
			(
				diagram_id int,
				name sysname,
				value varbinary(max) NOT NULL
			)
		END
		*/

		IF OBJECT_ID(N'dbo.dtproperties') IS NOT NULL
		begin
			insert into dbo.sysdiagrams
			(
				[name],
				[principal_id],
				[version],
				[definition]
			)
			select	 
				convert(sysname, dgnm.[uvalue]),
				DATABASE_PRINCIPAL_ID(N'dbo'),			-- will change to the sid of sa
				0,							-- zero for old format, dgdef.[version],
				dgdef.[lvalue]
			from dbo.[dtproperties] dgnm
				inner join dbo.[dtproperties] dggd on dggd.[property] = 'DtgSchemaGUID' and dggd.[objectid] = dgnm.[objectid]	
				inner join dbo.[dtproperties] dgdef on dgdef.[property] = 'DtgSchemaDATA' and dgdef.[objectid] = dgnm.[objectid]
				
			where dgnm.[property] = 'DtgSchemaNAME' and dggd.[uvalue] like N'_EA3E6268-D998-11CE-9454-00AA00A3F36E_' 
			return 2;
		end
		return 1;
	END

  
go

---pre vypocet chovov v SR podla plemena 
CREATE procedure [dbo].[Roc_MLHD_NAJCHOV_chov]
	@datumOd date,
	@datumDo date
	


as
 begin
 
 --declare @datumOd date = '2017-01-01',	@datumDo date = '2017-12-31'


 Declare @najchov TABLE
	  (
		KRAJ VARCHAR(1)NULL,
		OKRES VARCHAR(2)NULL,
		PODNIK VARCHAR(3)NULL,
		CHOV VARCHAR(3)NULL,
		OKRES_NAZOV VARCHAR(30)NULL,
		plem varchar(7) null,
		Podnik_nazov VARCHAR(30)NULL,
		Chov_nazov VARCHAR(30)NULL,
		stpec_23 float NULL,
		stpec_25 float NULL,
		stpec_26 float NULL,
		stpec_27 float NULL,
		stpec_28 float NULL,
		stpec_29 float NULL,
		priem_lakt float null,
		stpec_22 float NULL,
		ROK VARCHAR(4)
	   )

	insert into @najchov
		(KRAJ,OKRES ,PODNIK,CHOV ,OKRES_NAZOV,plem,Chov_nazov,stpec_23,stpec_25 ,
		stpec_26 ,stpec_27 ,
		stpec_28 ,stpec_29,stpec_22,ROK )
	SELECT o.KRAJ
		  ,o.OKRES
		  ,o.PODNIK,
		  o.stlpec_6c
		  ,o.Okres_nazov
		  ,o.stpec_5
		  ,o.stpec_6
		  ,o.stpec_23
		  ,o.stpec_25
		  ,o.stpec_26
		  ,o.stpec_27
		  ,o.stpec_28
		  ,o.stpec_29
		  ,o.stpec_22
		  ,o.rok
	FROM dbo.Roc_MLHD_Tab_22A as o 
		left outer join Roc_MLHD_Tab_23A as l on l.KRAJ+l.OKRES+l.PODNIK = o.kraj + o.OKRES + o.PODNIK 
		where substring(o.stpec_5,1,1) in ('R','H','M','N','P','B','S')
			and o.rok = datepart(YEAR,@datumOd)
			and o.rok = l.rok
			--and o.KRAJ + o.OKRES + o.PODNIK = @podnik

		--select * from @najchov
		--order by kraj, okres, PODNIK

	declare @priem_lakt table			--priem poradie laktacie
		(
		CHOVATEL varchar (9),
		lakt float
		)
	
	Insert into @priem_lakt
		 (CHOVATEL,lakt)
		select distinct	n.kraj+n.OKRES+n.PODNIK+n.chov as chovatel,
			 convert(decimal(5,2),AVG(PORLAK *1.0))  as lakt
			 from CM_Laktacie	as l			
					left outer join @najchov as n on l.CHOVATEL = n.KRAJ+n.OKRES+n.PODNIK+n.CHOV
					where l.ZMENA in ('30','40') 
					and ((l.DATUKONL >= @datumOd and l.DATUKONL <= @datumDo) and (l.DATUKNORL is null or l.DATUKNORL >= @datumOd) 
							or (l.DATUKNORL >= @datumOd and l.DATUKNORL <= @datumDo))
			group by n.kraj+n.OKRES+n.PODNIK+n.chov

	declare @podnik table			--podnik nazov
		(
		podnik varchar (6),
		podnik_n varchar (30)
		)
	
	Insert into @podnik
		 (podnik,podnik_n)
		select distinct	n.kraj+n.OKRES+n.PODNIK as podnik,
				a.stpec_6 as podnik_n
			 from dbo.Roc_MLHD_Tab_22A as a			
					left outer join @najchov as n on a.KRAJ+a.OKRES+a.PODNIK = n.KRAJ+n.OKRES+n.PODNIK
				where a.stlpec_6c='199'
				and a.rok = n.ROK
			group by n.kraj+n.OKRES+n.PODNIK, stpec_6 

	
	
	--select * from @priem_lakt

	--select * from @najchov

	--select * from @podnik

	
	--create table Roc_MLHD_Tab_NAJCHOV
	--(
	--	KrajOkr VARCHAR(3)NULL,
	--	Podnik VARCHAR(3)NULL,
	--  Chov Varchar(3) null,
	--  Podnik_nazov VARCHAR(30)NULL,
	--  Chov_nazov VARCHAR(30)NULL,
	--	Prev_pl varchar(7) null,
	--	PocLakt [float] NULL,
	--	Mlieko float NULL,
	--	Tuk_kg float NULL,
	--	Tuk_p float NULL,
	--	Bielk_kg float NULL,
	--	Bielk_p float NULL,
	--	Tuk_Bielk float null,
	--	Priem_lakt float null,
	--	Medziobd float NULL,
	--	Indx float null,
	--	Rok int
	--	)


	insert into Roc_MLHD_Tab_NAJCHOV
	(KrajOkr, PODNIK,Chov, Podnik_nazov,Chov_nazov, Prev_pl, PocLakt, Mlieko, Tuk_kg, Tuk_p, Bielk_kg, Bielk_p, Tuk_Bielk, priem_lakt, Medziobd, indx, ROK )
	Select distinct
	(n.kraj + n.okres) as KrajOkr ,
	n.podnik as	PODNIK ,
	n.Chov as Chov,
	p.podnik_n as	Podnik_nazov,
	n.Chov_nazov as Chov_nazov,
	n.plem as	Prev_pl,
	n.stpec_23 as	PocLakt,
	n.stpec_25 as	Mlieko,
	n.stpec_27 as	Tuk_kg,
	n.stpec_26 as	Tuk_p,
	n.stpec_29 as	Bielk_kg,
	n.stpec_28 as	Bielk_p,
	(n.stpec_27 + n.stpec_29) as	Tuk_Bielk,
	l.lakt as	priem_lakt,
	n.stpec_22 as	Medziobd,
	round( (n.stpec_27 + n.stpec_29)*365/ n.stpec_22*l.lakt,2) as indx,
	n.rok as	ROK
	from @najchov as n 
	left outer join @podnik as p on p.podnik = n.KRAJ+n.OKRES+n.PODNIK
	left outer join @priem_lakt as l on l.CHOVATEL = n.KRAJ+n.OKRES+n.PODNIK+n.CHOV

   end
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_18]
    @rok varchar(4)
	
as
begin

	
	select ChovZvaz
      ,(case when Oddiel is null then 'XXX' else Oddiel end) as Oddiel
      ,Lakt
      ,Uzav_lakt
      ,Lakt_dni
      ,mlieko
      ,tuk_KG
      ,tuk_P
      ,bielk_KG
      ,bielk_P
      ,medziobd
      ,rok
	from plis.dbo.Roc_MLHD_Tab_18 as z
	where   z.rok = @rok 
end
go

CREATE PROCEDURE [dbo].[Roc_MLHD_NAJCHOV_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN

delete from Roc_MLHD_Tab_NAJCHOV where rok = DATEPART(YEAR, @datumOd)

DECLARE @counter INT
DECLARE @podnik VARCHAR(6)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT kraj+okres+podnik  from Roc_MLHD_Tab_22A where stlpec_6c ='199' and rok = datepart(YEAR,@datumOd)
		
    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @podnik

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @podnik
			EXEC Roc_MLHD_NAJCHOV_podnik @datumOd, @datumDo, @podnik

           FETCH NEXT FROM prepocet_cursor INTO @podnik

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

delete from Roc_MLHD_Tab_NAJCHOV where Poclakt is null and Mlieko is null and Tuk_kg is null and Bielk_kg is null

set @podnik = null
EXEC Roc_MLHD_NAJCHOV_podnik @datumOd,@datumDo,@podnik
Exec Roc_MLHD_NAJCHOV_chov @datumOd,@datumDo
EXEC Roc_MLHD_NAJCHOV_plemeno @datumOd,@datumDo

END

go



CREATE PROCEDURE [dbo].[C_VZ_MedziobdobieMesove_test] 
		
AS
BEGIN

/******************************


******************************/
	
	SET NOCOUNT ON;
	declare @chov_id varchar(9);
	declare @ucislo varchar(14)
	set @chov_id='';
	declare @porlakt as int;
	DECLARE @W INT;
	declare @pohlavie_posledne as int;
	declare @pohlavie_predosle as int;
	declare @datnar_predosle date; /*vytiahnutie datumov vo vonkajsom kurzore kvoli dvojickam, trojickam.., aby mo medzi nimi nebolo 0*/
	declare @datnar_posledne date;

/**/	TRUNCATE TABLE [PLIS].[dbo].tttt 


	DECLARE cur_Chovatel CURSOR FOR 
		select  distinct K.CISKRAVY, k.CHOVATEL
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and
		(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DATVYR is null);
	  -- select distinct matka from plis.dbo.CM_Telata where PRIZNAKKU='2'


	  SET @W= (select  distinct COUNT( K.CISKRAVY)
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null)

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO @ucislo, @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			declare @medzi int
			set @medzi=0;
			declare @d int;
			set @d=0;
							declare c cursor for SELECT  TOP 1  DATEDIFF(DAY,T.DATNAR,T2.DATNAR)AS MEDZ,T2.PORLAK, T.pohlavie, T2.pohlavie, t.datnar, t2.datnar
							FROM DBO.CM_Telata AS T
							INNER JOIN (SELECT TOP 1 * FROM CM_Telata WHERE MATKA=@ucislo ORDER BY DATNAR DESC) AS T2 
							ON T.MATKA=T2.MATKA
							and t.DATNAR not in (SELECT top 1  v.DATNAR
  FROM [PLIS].[dbo].[CM_Krava] as k
  inner join plis.dbo.CM_Telata as v on k.CISKRAVY=v.MATKA
  where (DATEDIFF(day,k.datvyr,getdate())<=365 or k.DATVYR is null)
  and k.PRIZNAKKU='2'
  and v.MATKA=@ucislo  order by v.DATNAR desc)
							order by t.DATNAR desc;

							open c;
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne, @datnar_predosle, @datnar_posledne;
							WHILE @@FETCH_STATUS = 0
							begin
							
								
									begin 
										SET @MEDZI=@MEDZI+@d ;
										/*ak su posledne dve otelenia ine ako 81 a 82 a tieto datumy oteleni su rozne (nie dvojicky) alebo je pohlavie posledne alebo predposledne null (berie sa to ako otelenie bez et)  vloz mo do tabulky*/
										if ((@pohlavie_predosle <> '81' and @pohlavie_predosle <> '82' and @pohlavie_posledne <> '81' and @pohlavie_posledne <> '82' and @datnar_posledne <> @datnar_predosle) or @pohlavie_posledne is null or @pohlavie_predosle is null)
/**/										begin
												insert into dbo.tttt([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@d,@porlakt);
											end
										else /*inak zacni hladat posledne medziobdobie kravy kde su dve pohlavia za sebou 01,02.. (nie et)*/
											begin
												declare @datnarod date;
												declare @pohlavie int;
												declare @porlaktacie int;

												declare @datnarod_predosle date;
												declare @pohlavie_predosle2 int;
												declare @poradielaktacie int;

												declare @mo int;
												declare @exit_cursor bit;
												set @exit_cursor = 0;
												
												declare @continue_if bit;
												set @continue_if = 1;


												declare curs cursor for select DATNAR, POHLAVIE, porlak from CM_Telata where MATKA = @ucislo order by DATNAR desc /*zoradenie od poslednych oteleni*/

												open curs;
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
														WHILE @@FETCH_STATUS = 0 and @exit_cursor = 0
														begin
																begin 
																print cast(@datnarod as varchar(12))  + ' pohlavie: '+cast(@pohlavie as varchar(2))+ ' '+ 'poradie :' + cast(@porlaktacie as varchar(2))
																/*poradie laktacie bude jej posledne (pohl. ine ako 81,82), bez ohladu na to z kt. sa pocitalo MO*/
																if(@continue_if = 1)
																begin
																	if (@pohlavie<>'81' and @pohlavie<>'82' or @pohlavie is null) /*hladame poslednu laktaciu*/
																	begin
																		set @poradielaktacie = @porlaktacie;
																		set @continue_if = 0; /*ak si sa dostal sem uz nepokracuj v hladani posledneho poradia laktacie*/
																	end																	
																end;
																if (@pohlavie <> '81' and @pohlavie <> '82' and @pohlavie_predosle2 <> '81' and @pohlavie_predosle2 <> '82' and @datnarod <> @datnarod_predosle)
																	begin
																		set @mo =  DATEDIFF(DAY ,@datnarod, @datnarod_predosle);
																		insert into dbo.tttt([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@mo,@poradielaktacie);
																		print cast(@mo as varchar(3)) +' '+ cast(@poradielaktacie as varchar(2)); /*chceme posledne poradie laktacie - v kurzore je teda predosle (v kurzore je zoradene od posledneho otelenia)*/
																		set @exit_cursor = 1;
																		print 'kurzor sa ukoncuje'
																	end;
									
																set @datnarod_predosle = @datnarod;
																set @pohlavie_predosle2 = @pohlavie;																
																end
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
												END
												close curs;
												Deallocate curs;
											end;
									end

								
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne,@datnar_predosle, @datnar_posledne;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @ucislo,@chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;

/*
exec [C_VZ_MedziobdobieMesove_test]

*/
END
go

CREATE PROCEDURE [dbo].[CR_prirastky_teliat_maso]

	@PRIZSPRAC varchar,
	@Rok int = null,
	@Mesiac INT = null,
	@den int = null,
	@CHOV [varchar](9) = null

as	
Begin
		
	SELECT distinct
		dokvaz.CHOV,	
		dokvaz.CISTELATA, 
		e.DATNAR, e.POHLAVIE, e.MATKA, e.OUC ,e.OTECLIN + '-' + RIGHT(1000 + e.OTECREG, 3) AS LIN_REG,

		 e.PL1 + '-' + CONVERT(VARCHAR, ISNULL(e.KR1, 0)) 
		 + ' ' + ISNULL(e.PL2 + '-'
         + CONVERT(VARCHAR, ISNULL(e.KR2,
         0)) + ' '
         + ISNULL(e.PL3+ '-'
         + CONVERT(VARCHAR, ISNULL(e.KR3,
         0)) + ' '
         + ISNULL(e.PL4 + '-'
         + CONVERT(VARCHAR, ISNULL(e.KR4,
         0)) + ' '
         + ISNULL(e.PL5,''), ''), ''),'') AS Plemeno ,
		e.HMOTNAR,
		dokvaz.PRIZSPRAC , 
		
		(select max (convert(DATE,dokvaz.DATVAZ,104)) from VstupyPLIS.dbo.View_CP_HD15_DOKVAZ as dokvaz where dokvaz.CISTELATA = e.CISTELATA and dokvaz.PRIZSPRAC= '2' and dokvaz.HMOT <>'') as DATVAZ,
	    (select max (HMOT) from VstupyPLIS.dbo.View_CP_HD15_DOKVAZ as dokvaz where dokvaz.CISTELATA = e.CISTELATA and dokvaz.PRIZSPRAC= '2' and dokvaz.HMOT <>'') as PoslHmot,
		dokvaz.DATVAZ as AktualDATVAZ,
		dokvaz.HMOT as AktualHmot,
		dokvaz.ODPOSLPRIR as ODPOSLPRIR,	
		dokvaz.ODNARPRIR as ODNARPRIR,	
		@mesiac AS mesiac,
		@rok AS rok,
		@den as den
		
		from  VstupyPLIS.dbo.View_CP_HD15_DOKVAZ as dokvaz
				
	
		left join CM_Telata as e on e.CISTELATA = dokvaz.CISTELATA
		left join CM_Vazenia as v on v.CISTELATA = dokvaz.CISTELATA
	
	WHERE
		e.DOVVYR is null
		and e.CISTELATA <>''
		and dokvaz.DATVAZ <>''
		--and dokvaz.HMOT <>''
		and dokvaz.ZAVER=''
		and (CHOV = @chov or @chov is null) 
		and dokvaz.PRIZSPRAC= @PRIZSPRAC 
		
		Order by CHOV, CISTELATA, AktualDATVAZ

	End
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru bykov pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE C_GENHOD_S_BYCI
AS
BEGIN

	select distinct dbo.C_aktual_zisti_USCISBYKA(IBLIN, IBREG) as cislobyka
	into #temp_uscisla_bykov
	from CM_Insvyk

	CREATE INDEX IDX_temp_uscisla_bykov ON #temp_uscisla_bykov(cislobyka)

	select distinct USCISLO 
	into #temp_usicla_bykov_final
	from CM_Byci as b
	where USCISLO in (SELECT distinct ANIMAL FROM CP_POVODY_SIM_PH_NEMECKO_CELE where POHLAVIE = 1)
	and USCISLO in (select cislobyka from #temp_uscisla_bykov)

	CREATE INDEX IDX_temp_usicla_bykov_final ON #temp_usicla_bykov_final(USCISLO)

	select
	USCISLO
	,DATNAR
	,PL1 as PLEMENO
	,'1' as POHL
	,dbo.HRPodielKrvi (PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5) as PODIELCK
	,' ' as PRIZPORAZ
	,OTUSCIS as OTEC
	,MATKA 
	,(select CISLOKRAJINY from NC_CiselnikKrajin where KODKRAJINYKRATKY = BB_COUNTRYCODE) as KODKRAJINY
	,BB_HERDBOOK_NUMBER as CISLOPLEMKNIHY
	,left(MENO, 12) as MENO
	,BB_INSEM_COMPANY as AI
	,(select top 1 PL1 from CP_POVODY_SIM_PH_NEMECKO_CELE as t where t.ANIMAL = b.MATKA) as PLEMMATKY
	,(select top 1 PL1 from CM_Byci as s where s.OTUSCIS = b.USCISLO) as PLEMOTCA
	,(select top 1 OTEC from CP_POVODY_SIM_PH_NEMECKO_CELE as t where t.ANIMAL = b.MATKA) as OTECMATKY
	,(select MENO from CM_Byci as s where s.USCISLO = (select top 1 OTEC from CP_POVODY_SIM_PH_NEMECKO_CELE as tt where tt.ANIMAL = b.MATKA)) as OTECMATKYMENO 
	into #temp_byci_data
	from CM_Byci as b
	where USCISLO in (select USCISLO from #temp_usicla_bykov_final)
	
	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(USCISLO, 2)) as CISLOKRAJINY
		,right(USCISLO, 12) as CISLOZVIERATA
		,isnull(convert(varchar(8), DATNAR, 112), '00000000') as DATNAR
		,isnull((select kodmedzinar from CC_Plemena where kodpl = PLEMENO), '00') as KODPLEM
		,POHL
		,RIGHT('0000'+convert(varchar(4), isnull(PODIELCK, 0)*10), 4) as PODIELCK
		,PRIZPORAZ
		,isnull((SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(OTEC, 2)), '   ') as OCISLOKRAJINY
		,isnull(right(OTEC, 12), '            ') as OCISLOZVIERATA
		,isnull((SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(MATKA, 2)), '   ') as MCISLOKRAJINY
		,isnull(right(MATKA, 12), '            ') as MCISLOZVIERATA
		,isnull(KODKRAJINY, '000') as KODKRAJINY
		,'00' as REGION
		,'          ' as CISLOPLEMKNIHY
		,RIGHT('            '+convert(varchar(12), isnull(MENO, '')), 12) as MENO
		,RIGHT('000'+convert(varchar(3), isnull(AI, 0)), 3) as AI
		,isnull((select kodmedzinar from CC_Plemena where kodpl = PLEMMATKY), '00') as PLEMMATKY
		,isnull((select kodmedzinar from CC_Plemena where kodpl = PLEMOTCA), '00') as PLEMOTCA
		,isnull((SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(OTECMATKY, 2)), '   ') as OMCISLOKRAJINY
		,isnull(right(OTECMATKY, 12), '            ') as OMCISLOZVIERATA
		,RIGHT('            '+convert(varchar(12), isnull(OTECMATKYMENO, '')), 12) as OMMENO
		,'0000000000' as DEFECTS
		into temp_byci_data
	FROM #temp_byci_data

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +DATNAR +KODPLEM +POHL +PODIELCK +PRIZPORAZ +OCISLOKRAJINY +OCISLOZVIERATA +MCISLOKRAJINY +MCISLOZVIERATA +KODKRAJINY +REGION +CISLOPLEMKNIHY +MENO +AI +PLEMMATKY +PLEMOTCA +OMCISLOKRAJINY +OMCISLOZVIERATA +OMMENO +DEFECTS from plis.dbo.temp_byci_data" queryout "e:\ROZBORAK\Data\svk.04.txt" -T -c -t,'

	drop table temp_byci_data

END
go

CREATE procedure [dbo].[Rocenka_OV_Tab_BahMlRoc]
    @rok varchar(4)
	
	
as
begin

	
	select * 
	from dbo.SP_Rocenka_BahMlRoc as z
	
		where  z.rok = @rok
			order by idchov, id
	
end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.12.2017
-- Description:	Udaje do rocenky za plemeno S/P/H/B kvoli tabulke: VYSLEDKY KONTROLY UZISTKOVOSTI ZA SLACHTITELSKE CHOVY - PODLA PLEMIEN 
--				nasledne sa pouziju data z tabulky CR_LaktacneZostavy_rocenka do tabulky Roc_MLHD_Tab_19A
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_plemeno_rocenka]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[PlemTyp] [varchar] (10) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 (case when k.TYPPLEM in('11','13','14') then 'S'  
					else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem, 
				  lakt.DOVVYR, lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
			 left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel

				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					----and (reg.REGION=@region or @region is null) 
					and lakt.kraj = @chov	
					
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					----and (PLEM=@plem or @plem is null)
					and (k.TYPPLEM=@plem or @plem is null)
					and MLIEKCEL <>''
					and h.CHARCHOV in ('1','2','3','4','5')

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
					 (case when k.TYPPLEM in('11','13','14') then 'S'  
					else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem,  
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
			  left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel

				where(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and lakt.okres = @chov	
					and (k.TYPPLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
					and h.CHARCHOV in ('1','2','3','4','5')
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 (case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem,  
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
			  left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
				where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and lakt.podnik = @chov	
					and (k.TYPPLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
					and h.CHARCHOV in ('1','2','3','4','5')
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem,  
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
			  left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
				where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and lakt.chovatel = @chov
					and (k.TYPPLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
					and h.CHARCHOV in ('1','2','3','4','5')
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 (case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem,  
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
			  left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
				where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and (k.TYPPLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
					and h.CHARCHOV in ('1','2','3','4','5')

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		(Select distinct case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end), 
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.chovatel								
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
				and (k.TYPPLEM=@plem or @plem is null)	
				and h.CHARCHOV in ('1','2','3','4','5')


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, Lakt.CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 (case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end) as Plem,  
				Lakt.DOVVYR, Lakt.DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
	 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
	  left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		and (k.TYPPLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''
		and h.CHARCHOV in ('1','2','3','4','5')


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			(Select distinct case when k.TYPPLEM in('11','13','14') then 'S'  
					 else case when k.TYPPLEM in('51','52','53','54') then 'P'
					 else case when k.TYPPLEM in('62','66','72','73','76','77','82','83','84','86','87','88','92','93','94','95','96','97','98','99') then 'H'
					 else case when k.TYPPLEM in('21','22','23')  then 'B' end end end end), 

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.chovatel
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					and (k.TYPPLEM=@plem or @plem is null)	
					and h.CHARCHOV in ('1','2','3','4','5')
end


--select * from @kravy

--select * from @Laktacie

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
		where PORLAK >= '2'
			and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
	( 
	[CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where l.PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where l.PORLAK >= '2'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.PLEM,
			case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


insert CR_LaktacneZostavy_Opr
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	----delete from CR_LaktacneZostavy_Opr where Oznacenie = @chov and datumOd = @datumOd and DatumDo = @datumDo and filter is null

		end

		----CR_ZostavaLaktacie_plemeno_opr 203504011, '2017-01-01','2017-12-14', null, null
go

/****** Script for SelectTopNRows command from SSMS  ******/
----Krava s najvyssou uzitkovostou (KG mlieka) ---str 11
--use plis
CREATE procedure  [dbo].[Roc_MLHD_3]
	
	@datumOd date,
	@datumDo date

	as 
	begin

--set @datumOd = '2017-01-01'
--set @datumDo = '2017-11-30'

--create table Roc_MLHD_Tab_3
--	(
--	PLEMENO varchar(35),
--	CISKRAVY varchar(14),
--	OKRES varchar(35),
--	PODNIK varchar(35),
--	CHOV varchar(35),
--	OTEC varchar (8),
--	PLEM varchar(50),
--	PORLAK int,
--	MLIEKNOR int,
--	TUKPERC float,
--	TUKNOR float,
--	BIELKPERC float,
--	BIELKNOR float,
--	CHOVATEL varchar(9),
--	ROK varchar(4),
--	)
	
insert into Roc_MLHD_Tab_3
	SELECT top 1 
		'Holsteinské' as PLEMENO
		,lakt.CISKRAVY
		,o.NAZOV as OKRES
		,p.NAZOVSKR as PODNIK
		,ch.NAZOV as Chov
		,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
		,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(k.PL2, '')
		  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')  AS PLEM
		,PORLAK
		--,MLIEKCEL
		,MLIEKNOR
		,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
		,TUKNOR
		,round(((lakt.BIELKNOR*100)/lakt.MLIEKCEL),2) as BIELKPERC
		,BIELKNOR
		,lakt.CHOVATEL
		,DATEPART(YEAR, @datumOd) as Rok    
	
	  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
	  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
	  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

	  where BIELKNOR > 0
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and Lakt.ZMENA in ('30','40')
			and k.PL1 in ('H','R')
			and Lakt.MLIEKCEL <>''
			and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
			and ((lakt.BIELKNOR*100)/lakt.MLIEKCEL) < 5
			and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and ch.TYPZV='1'
	order by lakt.MLIEKNOR desc


insert into Roc_MLHD_Tab_3
	SELECT top 1 
		'Slovenské strakaté' as PLEMENO
		,lakt.CISKRAVY
		,o.NAZOV as OKRES
		,p.NAZOVSKR as PODNIK
		,ch.NAZOV as Chov
		,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
		,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(k.PL2, '')
		  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')  AS PLEM
		,PORLAK
		--,MLIEKCEL
		,MLIEKNOR
		,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
		,TUKNOR
		,round(((lakt.BIELKNOR*100)/lakt.MLIEKCEL),2) as BIELKPERC
		,BIELKNOR
		,lakt.CHOVATEL
		,DATEPART(YEAR, @datumOd) as Rok    
	
	  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
	  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
	  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

	  where BIELKNOR > 0
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and Lakt.ZMENA in ('30','40')
			and k.PL1 in ('S','MB')
			and Lakt.MLIEKCEL <>''
			and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
			and ((lakt.BIELKNOR*100)/lakt.MLIEKCEL) < 5
			and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and ch.TYPZV='1'
	order by lakt.MLIEKNOR desc



insert into Roc_MLHD_Tab_3
		SELECT top 1 
		'Pinzgauské' as PLEMENO
		,lakt.CISKRAVY
		,o.NAZOV as OKRES
		,p.NAZOVSKR as PODNIK
		,ch.NAZOV as Chov
		,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
		,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(k.PL2, '')
		  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')  AS PLEM
		,PORLAK
		--,MLIEKCEL
		,MLIEKNOR
		,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
		,TUKNOR
		,round(((lakt.BIELKNOR*100)/lakt.MLIEKCEL),2) as BIELKPERC
		,BIELKNOR
		,lakt.CHOVATEL
		,DATEPART(YEAR, @datumOd) as Rok    
	
	  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
	  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
	  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

	  where BIELKNOR > 0
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and Lakt.ZMENA in ('30','40')
			and k.PL1 in ('P')
			and Lakt.MLIEKCEL <>''
			and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
			and ((lakt.BIELKNOR*100)/lakt.MLIEKCEL) < 5
			and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and ch.TYPZV='1'
	order by lakt.MLIEKNOR desc

insert into Roc_MLHD_Tab_3
		SELECT top 1 
		'Braunvieh' as PLEMENO
		,lakt.CISKRAVY
		,o.NAZOV as OKRES
		,p.NAZOVSKR as PODNIK
		,ch.NAZOV as Chov
		,(k.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, k.OTECREG), 3)) AS Otec
		,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(k.PL2, '')
		  + ISNULL(k.PL3,'') + ISNULL(k.PL4,'') + ISNULL(k.PL5,'')  AS PLEM
		,PORLAK
		--,MLIEKCEL
		,MLIEKNOR
		,round((lakt.TUKNOR*100)/lakt.MLIEKNOR,2) as TUKPERC
		,TUKNOR
		,round(((lakt.BIELKNOR*100)/lakt.MLIEKCEL),2) as BIELKPERC
		,BIELKNOR
		,lakt.CHOVATEL
		,DATEPART(YEAR, @datumOd) as Rok    
	
	  FROM [dbo].[View_CP_LaktaciePreZostavy] as Lakt
	  left outer join CM_Krava as k on Lakt.CISKRAVY = k.CISKRAVY
	  left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = lakt.podnik
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = Lakt.okres
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = Lakt.CHOVATEL

	  where BIELKNOR > 0
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and Lakt.ZMENA in ('30','40')
			and k.PL1 in ('B')
			and Lakt.MLIEKCEL <>''
			and ((lakt.TUKNOR*100)/lakt.MLIEKNOR ) < 6
			and ((lakt.BIELKNOR*100)/lakt.MLIEKCEL) < 5
			and (ch.ZRUS is null or (ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and ch.TYPZV='1'
	order by lakt.MLIEKNOR desc


	end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-22
-- Description:	Export dat do textovych suborov pre BLUP do LINUX-behu
-- Input:		interval novych kontrol na pridanie do kumulativneho archivu kontrol pre BLUP - datum od, do	(14.02.2017 - 14.06.2017)			
-- Output:		datafile.sdf, pedbull.sdf a pedcow.sdf
-- =============================================
CREATE PROCEDURE C_blup_LINUX_TXT
	@startdate date,
	@enddate date 	
AS
BEGIN

	DECLARE @RC int

	EXECUTE @RC = [dbo].[C_blup_prip_kontr] 
	   @startdate
	  ,@enddate

	EXECUTE @RC = [dbo].[C_blup_prip_HTD] 

	EXECUTE @RC = [dbo].[C_blup_prip_HTD_SB] 

	EXECUTE @RC = [dbo].[C_blup_rodokmeneTXT] 

	EXECUTE @RC = [dbo].[C_blup_denNadTXT] 
END
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 30.11.2011
-- Description:	Zisti plemenny typ zvierata z jeho plemena a farby
-- =============================================
CREATE FUNCTION [dbo].[zisti_plemenny_typ]
(
	@PL1 [varchar](2),
	@KR1 [float],
	@PL2 [varchar](2),
	@KR2 [float],
	@PL3 [varchar](2),
	@KR3 [float],
	@PL4 [varchar](2),
	@KR4 [float],
	@PL5 [varchar](2),

	@FARBA [varchar](2)
)	

RETURNS [varchar](3)
	
AS	
BEGIN
	declare @plemena table 
	(
		PL [varchar](2),
		KR [float],
		HLAVNEPL [varchar](2),
		ZOSLPL [varchar](2),
		id [int] identity(1,1)
	)

	declare @HLPLKR [float]
	declare @HLAVNEPL [varchar](2)
	declare @ZOSPLKR [float]
	declare @ZOSPL [varchar](2)
	
	declare @PlemennyTypC [varchar](3)	
	declare @por [int] = 0
	
	-- naplnenie docasnej tabulky s priradenim podielov krvi 
	insert @plemena 
		select @PL1 as PL, @KR1 as KR, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL1), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL1)
	insert @plemena 
		select @PL2, @KR2, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL2), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL2)
	insert @plemena  
		select @PL3, @KR3, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL3), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL3)
	insert @plemena  
		select @PL4, @KR4, (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL4), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL4)	
	insert @plemena  
		select @PL5, 100-(@KR1+@KR2+@KR3+@KR4), (select hlavne from PLIS.dbo.CC_Plemena where kodpl = @PL5), (select zoslachtujuce from PLIS.dbo.CC_Plemena where kodpl = @PL5)
		
	-- najdenie najzastupenejsieho hlavneho plemena
	select TOP 1 @HLPLKR=k.SUMKRV, @HLAVNEPL=k.HLAVNEPL from
	(select SUM(KR) as SUMKRV, HLAVNEPL, (case when HLAVNEPL='99' then 0 else 1 end) as nezn, MIN(id) as id from @plemena
		where HLAVNEPL is not null
		group by HLAVNEPL) as k
	order by k.SUMKRV desc, nezn desc, id asc	
	
	select TOP 1 @ZOSPLKR=k.SUMKRV, @ZOSPL=k.ZOSLPL from
	(select SUM(KR) as SUMKRV, ZOSLPL from @plemena
		where ZOSLPL is not null
		group by ZOSLPL) as k
	order by k.SUMKRV desc	
	
	if @HLPLKR is null
	set @HLPLKR = 0

	if @ZOSPLKR is null
	set @ZOSPLKR = 0
		
	if @HLPLKR >= @ZOSPLKR
	begin
		set @ZOSPLKR = 0
		set @ZOSPL = null
		select TOP 1 @ZOSPLKR=k.SUMKRV, @ZOSPL=k.ZOSLPL from
		(select SUM(KR) as SUMKRV, ZOSLPL from @plemena
			where ZOSLPL = @HLAVNEPL
			group by ZOSLPL) as k
		order by k.SUMKRV desc	
		set @ZOSPLKR = isnull(@ZOSPLKR, 0) 		
	end
	else
	begin
		set @HLPLKR = 0
		set @HLAVNEPL = null
		select TOP 1 @HLPLKR=k.SUMKRV, @HLAVNEPL=k.HLAVNEPL from
		(select SUM(KR) as SUMKRV, HLAVNEPL from @plemena
			where HLAVNEPL = @ZOSPL
			group by HLAVNEPL) as k
		order by k.SUMKRV desc	
		set @HLPLKR = isnull(@HLPLKR, 0) 
	end	
	
	if @ZOSPLKR = 0
		-- staci hladat podla hlavneho plemena
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp where HLAVNE = @HLAVNEPL and OD <= @HLPLKR and DO+0.01 > @HLPLKR)																	 
		
	else if @HLPLKR >= @ZOSPLKR 
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp 
								where (HLAVNE = @HLAVNEPL and OD <= @HLPLKR and DO+0.01 > @HLPLKR and
									  HLAVNE = @ZOSPL and ODZOS <= @ZOSPLKR and DOZOS+0.01 > @ZOSPLKR and
									  FARBA = @FARBA))
									  
	else if @HLPLKR < @ZOSPLKR									  
		set @PlemennyTypC = (select TOP 1 TYPC from PLIS.dbo.CC_PlemTyp 
								where (OD <= @HLPLKR and DO+0.01 > @HLPLKR and
									  HLAVNE = @ZOSPL and ODZOS <= @ZOSPLKR and DOZOS+0.01 > @ZOSPLKR and
									  FARBA = @FARBA))

	return @PlemennyTypC
END


go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_telata_1B]
AS
BEGIN
		TRUNCATE TABLE [CP_Meso_telata_1B] 

	declare @chov as varchar(9)
	declare @ouc as varchar(14)
	declare @omeno as varchar(50)
	declare @otec as varchar (10)

	declare @pBn as int;
	declare @hBn as float;

	declare @pJn as int;
	declare @hJn as float;
	 
	declare @pB120 as int;
	declare @hB120 as float;
	declare @prB120 as float;
	declare @pJ120 as int;
	declare @hJ120 as float;
	declare @prJ120 as float;

	declare @pB210 as int;
	declare @hB210 as float;
	declare @prB210 as float;
	declare @pJ210 as int;
	declare @hJ210 as float;
	declare @prJ210 as float;

	declare @pB365 as int;
	declare @hB365 as float;
	declare @prB365 as float;
	declare @pJ365 as int;
	declare @hJ365 as float;
	declare @prJ365 as float;

	declare @pB700 as int;
	declare @hB700 as float;
	declare @prB700 as float;
	declare @pJ700 as int;
	declare @hJ700 as float;
	declare @prJ700 as float;


	declare chov cursor for
	select chovatel,USCISLO,MENO,Otec
	from [View_CP_Meso_ZoznamOtciPodlaChov]

	open chov
	fetch next from chov into @chov,@ouc,@omeno,@otec

	while @@FETCH_STATUS=0
	begin 
			
			

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and OUC=@ouc
			group by OUC

			open v1
			fetch next from v1 into @pBn,@hBn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and OUC=@ouc
			group by OUC

			open v2
			fetch next from v2 into @pB120,@hB120,@prB120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and OUC=@ouc
			group by OUC

			open v3
			fetch next from v3 into @pB210,@hB210,@prB210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and OUC=@ouc
			group by OUC

			open v4
			fetch next from v4 into @pB365,@hB365,@prB365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and OUC=@ouc
			group by OUC

			open v5
			fetch next from v5 into @pB700,@hB700,@prB700
			close v5
			deallocate v5
		-------------------------------------------------------------------------------------

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and OUC=@ouc
			group by OUC

			open v1
			fetch next from v1 into @pJn,@hJn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and OUC=@ouc
			group by OUC

			open v2
			fetch next from v2 into @pJ120,@hJ120,@prJ120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and OUC=@ouc
			group by OUC

			open v3
			fetch next from v3 into @pJ210,@hJ210,@prJ210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and OUC=@ouc
			group by OUC

			open v4
			fetch next from v4 into @pJ365,@hJ365,@prJ365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and OUC=@ouc
			group by OUC

			open v5
			fetch next from v5 into @pJ700,@hJ700,@prJ700
			close v5
			deallocate v5


			insert into [CP_Meso_telata_1B] values (
														@chov,
														@ouc,
														@omeno,
														@otec,
														@pBn,
														@hBn,
														@pJn ,
														@hJn,
														@pB120 ,
														@hB120 ,
														@prB120 ,
														@pJ120 ,
														@hJ120 ,
														@prJ120 ,
														@pB210 ,
														@hB210 ,
														@prB210 ,
														@pJ210 ,
														@hJ210 ,
														@prJ210 ,
														@pB365 ,
														@hB365 ,
														@prB365 ,
														@pJ365 ,
														@hJ365 ,
														@prJ365 ,
														@pB700 ,
														@hB700 ,
														@prB700 ,
														@pJ700 ,
														@hJ700 ,
														@prJ700 
													)


													set	@pBn=0;
														set @hBn=0;
														set @pJn=0 
														set @hJn=0
														set @pB120 =0
														set @hB120 =0
														set @prB120 =0
														set @pJ120 =0
														set @hJ120 =0
														set @prJ120 =0
														set @pB210 =0
														set @hB210 =0
														set @prB210 =0
														set @pJ210 =0
														set @hJ210 =0
														set @prJ210 =0
														set @pB365 =0
														set @hB365 =0
														set @prB365 =0
														set @pJ365 =0
														set @hJ365 =0
														set @prJ365 =0
														set @pB700 =0
														set @hB700 =0
														set @prB700 =0
														set @pJ700 =0
														set @hJ700 =0
														set @prJ700=0 
		fetch next from chov into @chov,@ouc,@omeno,@otec;
	end

	close chov;
	deallocate chov;

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru oteleni pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE C_GENHOD_S_OTEL
AS
BEGIN
	SELECT s.CISKRAVY, s.PORLAK, 
	(select max(IDAIN) from CM_Insvyk where IPLCA = s.CISKRAVY and IVYSE in ('7', '8', '9') and DATEDIFF(day, IDAIN, s.DATOTEL) > 0) as DATINS,
	s.DATOTEL, 
	case when PORLAK = 1 then DATEDIFF(day, (select top(1) datumn from CM_TDMSIM as t where t.ciskravy = s.CISKRAVY), DATOTEL) 
		else (select l.MEDZIOBD from CM_Laktacie as l where l.CISKRAVY = s.CISKRAVY and l.PORLAK = s.PORLAK) end as MEDZIOBD,
	case when (select l.DATUKONL from CM_Laktacie as l where l.CISKRAVY = s.CISKRAVY and l.PORLAK = s.PORLAK) is not null then 1 else null end as UKONLAK
	into #temp_calvings
	FROM
	(SELECT tdm.CISKRAVY, (select top(1) tt.porlak from CM_TDMSIM as tt where tt.ciskravy = tdm.CISKRAVY and tt.DATOTEL = tdm.datotel) as PORLAK, 
	tdm.DATOTEL
	from CM_TDMSIM as tdm 
	group by CISKRAVY, DATOTEL) as s


	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00'+convert(varchar(2), PORLAK), 2) as PORLAK
		,isnull(convert(varchar(8), DATINS, 112), '00000000') as DATINS
		,isnull(convert(varchar(8), DATOTEL, 112), '00000000') as DATOTEL
		,case when MEDZIOBD > 999 then '000' else RIGHT('000'+convert(varchar(3), isnull(MEDZIOBD, 0)), 3) end as MEDZIOBD
		,RIGHT('0'+convert(varchar(1), isnull(UKONLAK,0)), 1) as UKONLAK
		into temp_polozky_calv
	FROM #temp_calvings

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +PORLAK +DATINS +DATOTEL +MEDZIOBD +UKONLAK from plis.dbo.temp_polozky_calv" queryout "e:\ROZBORAK\Data\svk.06.txt" -T -c -t,'

	drop table temp_polozky_calv
END
go

CREATE PROCEDURE [dbo].[CR_Zostava_Laktacie_LaktPlem_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
			EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 
			

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							 EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							 EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
	EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 


END

go

CREATE procedure [dbo].[Rocenka_MPHD_17_predch_rok]
	--@chov varchar(9),
	@datumOd date

	as 
	begin


    select
      akt.kraj,
      akt.okres,
      akt.podnik,
      CASE
      WHEN len(akt.podnik) > 0 and len(akt.chov) = 0
        THEN '99'
      ELSE akt.chov
      END as chov,
      CASE
      WHEN len(akt.podnik) > 0 and len(akt.mastal) = 0
        THEN '9'
      ELSE akt.mastal
      END as mastal,
      predch.K2_poc,
      predch.K2_poc_120,
      predch.K2_perc_120,
      predch.K2_poc_210,
      predch.K2_perc_210,
      predch.K2_poc_365,
      predch.K2_perc_365,
      predch.K2_poc_500,
      nullif(predch.K2_Priem_Hm_120, 0) as K2_Priem_Hm_120,
      nullif(predch.K2_Priem_Hm_210, 0) as K2_Priem_Hm_210,
      nullif(predch.K2_Priem_Hm_365, 0) as K2_Priem_Hm_365,
      nullif(predch.K2_Priem_Hm_500, 0) as K2_Priem_Hm_500,
      predch.K2_perc_500,
      nullif(predch.K2_priem_ziv_prirastok_120,0) as K2_priem_ziv_prirastok_120,
      nullif(predch.K2_priem_ziv_prirastok_210,0) as K2_priem_ziv_prirastok_210,
      nullif(predch.K2_priem_ziv_prirastok_365,0) as K2_priem_ziv_prirastok_365,
      nullif(predch.K2_priem_ziv_prirastok_500,0) as K2_priem_ziv_prirastok_500,
      nullif(predch.K2_medziobd,0) as K2_medziobd,
      nullif(predch.K2_vek_1_otel, ' 0  0') as K2_vek_1_otel,
      predch.K2_priem_lakt,
      predch.K2_vyradene,
      predch.MD2_poc,
      predch.MD2_poc_vaz_120,
      predch.MD2_perc_120,
      predch.MD2_poc_vaz_210,
      predch.MD2_perc_210,
      predch.MD2_poc_vaz_365,
      predch.MD2_perc_365,
      predch.MD2_poc_vaz_500,
      predch.MD2_perc_500,
      nullif(predch.MD2_Priem_Hm_120,0) as MD2_Priem_Hm_120,
      nullif(predch.MD2_Priem_Hm_210,0) as MD2_Priem_Hm_210,
      nullif(predch.MD2_Priem_Hm_365,0) as MD2_Priem_Hm_365,
      nullif(predch.MD2_Priem_Hm_500,0) as MD2_Priem_Hm_500,
      nullif(predch.MD2_priem_ziv_prirastok_chov_120,0) as MD2_priem_ziv_prirastok_chov_120,
      nullif(predch.MD2_priem_ziv_prirastok_chov_210,0) as MD2_priem_ziv_prirastok_chov_210,
      nullif(predch.MD2_priem_ziv_prirastok_chov_365,0) as MD2_priem_ziv_prirastok_chov_365,
      nullif(predch.MD2_priem_ziv_prirastok_chov_500,0) as MD2_priem_ziv_prirastok_chov_500,
      predch.MD2_vyradene,
      predch.rok
    from Roc_MPHD_Tab_17 as akt
      left outer join (select  kraj,
                         okres,
                         podnik,
                         chov,
                         mastal,
                         K1_poc,
                         K1_poc_120,
                         K1_perc_120,
                         K1_poc_210,
                         K1_perc_210,
                         K1_poc_365,
                         K1_perc_365,
                         K1_poc_500,
                         K1_perc_500,
                         K1_Priem_Hm_120,
                         K1_Priem_Hm_210,
                         K1_Priem_Hm_365,
                         K1_Priem_Hm_500,
                         K1_priem_ziv_prir_120,
                         K1_priem_ziv_prir_210,
                         K1_priem_ziv_prir_365,
                         K1_priem_ziv_prir_500,
                         K1_medziobd,
                         K1_vek_1_otel,
                         K1_priem_lakt,
                         MD1_poc,
                         MD1_poc_vaz_120,
                         MD1_perc_120,
                         MD1_poc_vaz_210,
                         MD1_perc_210,
                         MD1_poc_vaz_365,
                         MD1_perc_365,
                         MD1_poc_vaz_500,
                         MD1_perc_500,
                         MD1_Priem_Hm_120,
                         MD1_Priem_Hm_210,
                         MD1_Priem_Hm_365,
                         MD1_Priem_Hm_500,
                         MD1_priem_ziv_prirastok_chov_120,
                         MD1_priem_ziv_prirastok_chov_210,
                         MD1_priem_ziv_prirastok_chov_365,
                         MD1_priem_ziv_prirastok_chov_500,
                         K2_poc,
                         K2_poc_120,
                         K2_perc_120,
                         K2_poc_210,
                         K2_perc_210,
                         K2_poc_365,
                         K2_perc_365,
                         K2_poc_500,
                         K2_perc_500,
                         K2_Priem_Hm_120,
                         K2_Priem_Hm_210,
                         K2_Priem_Hm_365,
                         K2_Priem_Hm_500,
                         K2_priem_ziv_prirastok_120,
                         K2_priem_ziv_prirastok_210,
                         K2_priem_ziv_prirastok_365,
                         K2_priem_ziv_prirastok_500,
                         K2_medziobd,
                         K2_vek_1_otel,
                         K2_priem_lakt,
                         K2_vyradene,
                         J_poc,
                         J_poc_vaz_120,
                         J_perc_120,
                         J_poc_vaz_210,
                         J_perc_210,
                         J_poc_vaz_365,
                         J_perc_365,
                         J_poc_vaz_500,
                         J_perc_500,
                         J_Priem_Hm_120,
                         J_Priem_Hm_210,
                         J_Priem_Hm_365,
                         J_Priem_Hm_500,
                         J_priem_ziv_prirastok_chov_120,
                         J_priem_ziv_prirastok_chov_210,
                         J_priem_ziv_prirastok_chov_365,
                         J_priem_ziv_prirastok_chov_500,
                         B_poc,
                         B_poc_vaz_120,
                         B_perc_120,
                         B_poc_vaz_210,
                         B_perc_210,
                         B_poc_vaz_365,
                         B_perc_365,
                         B_poc_vaz_500,
                         B_perc_500,
                         B_Priem_Hm_120,
                         B_Priem_Hm_210,
                         B_Priem_Hm_365,
                         B_Priem_Hm_500,
                         B_priem_ziv_prirastok_chov_120,
                         B_priem_ziv_prirastok_chov_210,
                         B_priem_ziv_prirastok_chov_365,
                         B_priem_ziv_prirastok_chov_500,
                         MD2_poc,
                         MD2_poc_vaz_120,
                         MD2_perc_120,
                         MD2_poc_vaz_210,
                         MD2_perc_210,
                         MD2_poc_vaz_365,
                         MD2_perc_365,
                         MD2_poc_vaz_500,
                         MD2_perc_500,
                         MD2_Priem_Hm_120,
                         MD2_Priem_Hm_210,
                         MD2_Priem_Hm_365,
                         MD2_Priem_Hm_500,
                         MD2_priem_ziv_prirastok_chov_120,
                         MD2_priem_ziv_prirastok_chov_210,
                         MD2_priem_ziv_prirastok_chov_365,
                         MD2_priem_ziv_prirastok_chov_500,
                         MD2_vyradene,
                         rok,
                         plem_podiel,
                         EKOCHOV
                       from Roc_MPHD_Tab_17
                       where rok = year(@datumOd) - 1
                       union --ak mal podnik iba jeden chov, zoberie sa ako data za podnik
                       select  kraj,
                         okres,
                         podnik,
                         '' as chov,
                         '' as mastal,
                         K1_poc,
                         K1_poc_120,
                         K1_perc_120,
                         K1_poc_210,
                         K1_perc_210,
                         K1_poc_365,
                         K1_perc_365,
                         K1_poc_500,
                         K1_perc_500,
                         K1_Priem_Hm_120,
                         K1_Priem_Hm_210,
                         K1_Priem_Hm_365,
                         K1_Priem_Hm_500,
                         K1_priem_ziv_prir_120,
                         K1_priem_ziv_prir_210,
                         K1_priem_ziv_prir_365,
                         K1_priem_ziv_prir_500,
                         K1_medziobd,
                         K1_vek_1_otel,
                         K1_priem_lakt,
                         MD1_poc,
                         MD1_poc_vaz_120,
                         MD1_perc_120,
                         MD1_poc_vaz_210,
                         MD1_perc_210,
                         MD1_poc_vaz_365,
                         MD1_perc_365,
                         MD1_poc_vaz_500,
                         MD1_perc_500,
                         MD1_Priem_Hm_120,
                         MD1_Priem_Hm_210,
                         MD1_Priem_Hm_365,
                         MD1_Priem_Hm_500,
                         MD1_priem_ziv_prirastok_chov_120,
                         MD1_priem_ziv_prirastok_chov_210,
                         MD1_priem_ziv_prirastok_chov_365,
                         MD1_priem_ziv_prirastok_chov_500,
                         K2_poc,
                         K2_poc_120,
                         K2_perc_120,
                         K2_poc_210,
                         K2_perc_210,
                         K2_poc_365,
                         K2_perc_365,
                         K2_poc_500,
                         K2_perc_500,
                         K2_Priem_Hm_120,
                         K2_Priem_Hm_210,
                         K2_Priem_Hm_365,
                         K2_Priem_Hm_500,
                         K2_priem_ziv_prirastok_120,
                         K2_priem_ziv_prirastok_210,
                         K2_priem_ziv_prirastok_365,
                         K2_priem_ziv_prirastok_500,
                         K2_medziobd,
                         K2_vek_1_otel,
                         K2_priem_lakt,
                         K2_vyradene,
                         J_poc,
                         J_poc_vaz_120,
                         J_perc_120,
                         J_poc_vaz_210,
                         J_perc_210,
                         J_poc_vaz_365,
                         J_perc_365,
                         J_poc_vaz_500,
                         J_perc_500,
                         J_Priem_Hm_120,
                         J_Priem_Hm_210,
                         J_Priem_Hm_365,
                         J_Priem_Hm_500,
                         J_priem_ziv_prirastok_chov_120,
                         J_priem_ziv_prirastok_chov_210,
                         J_priem_ziv_prirastok_chov_365,
                         J_priem_ziv_prirastok_chov_500,
                         B_poc,
                         B_poc_vaz_120,
                         B_perc_120,
                         B_poc_vaz_210,
                         B_perc_210,
                         B_poc_vaz_365,
                         B_perc_365,
                         B_poc_vaz_500,
                         B_perc_500,
                         B_Priem_Hm_120,
                         B_Priem_Hm_210,
                         B_Priem_Hm_365,
                         B_Priem_Hm_500,
                         B_priem_ziv_prirastok_chov_120,
                         B_priem_ziv_prirastok_chov_210,
                         B_priem_ziv_prirastok_chov_365,
                         B_priem_ziv_prirastok_chov_500,
                         MD2_poc,
                         MD2_poc_vaz_120,
                         MD2_perc_120,
                         MD2_poc_vaz_210,
                         MD2_perc_210,
                         MD2_poc_vaz_365,
                         MD2_perc_365,
                         MD2_poc_vaz_500,
                         MD2_perc_500,
                         MD2_Priem_Hm_120,
                         MD2_Priem_Hm_210,
                         MD2_Priem_Hm_365,
                         MD2_Priem_Hm_500,
                         MD2_priem_ziv_prirastok_chov_120,
                         MD2_priem_ziv_prirastok_chov_210,
                         MD2_priem_ziv_prirastok_chov_365,
                         MD2_priem_ziv_prirastok_chov_500,
                         MD2_vyradene,
                         rok,
                         plem_podiel,
                         EKOCHOV
                       from Roc_MPHD_Tab_17
                       where rok = year(@datumOd) - 1
                             and kraj+okres+podnik in (select kraj+okres++podnik from Roc_MPHD_Tab_17 where rok = year(@datumOd) - 1 and len(chov) > 0 and len(mastal) > 0 group by kraj, okres, podnik having count(*) = 1)
                             and kraj+okres+podnik not in (select kraj+okres++podnik from Roc_MPHD_Tab_17 where rok = year(@datumOd) - 1 and len(chov) = 0 and len(mastal) = 0 )
                      ) as predch
        on akt.kraj = predch.kraj and akt.okres = predch.okres and akt.podnik = predch.podnik and akt.chov = predch.chov and
           akt.mastal = predch.mastal
    where akt.rok = year(@datumOd)
    order by akt.kraj, akt.okres, akt.podnik, akt.chov, akt.mastal
	end
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_sektor_stupenKU_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                            EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region
							  EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region
							   EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region
							    EXEC CR_ZostavaLaktacie_sektor @chov, @datumOd, @datumDo, @region
								  EXEC CR_ZostavaLaktacie_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

---pre vypocet podnikov v SR 
create procedure [dbo].[Roc_MLHD_NAJCHOV]
	@datumOd date,
	@podnik varchar(6)


as
 begin
 
 --declare @datumOd date = '2017-01-01', @podnik varchar(6) = '102501'

 Declare @najchov TABLE
	  (
		KRAJ VARCHAR(1)NULL,
		OKRES VARCHAR(2)NULL,
		PODNIK VARCHAR(3)NULL,
		OKRES_NAZOV VARCHAR(30)NULL,
		plem varchar(7) null,
		stpec_6 VARCHAR(30)NULL,
		stpec_23 [float] NULL,
		stpec_25 float NULL,
		stpec_26 float NULL,
		stpec_27 float NULL,
		stpec_28 float NULL,
		stpec_29 float NULL,
		priem_lakt float null,
		stpec_22 float NULL,
		ROK int
	   )

	insert into @najchov
		(KRAJ,OKRES ,PODNIK ,OKRES_NAZOV,stpec_6,stpec_23,stpec_25 ,
		stpec_26 ,stpec_27 ,
		stpec_28 ,stpec_29 ,priem_lakt,stpec_22,ROK )
	SELECT o.KRAJ
		  ,o.OKRES
		  ,o.PODNIK
		  ,o.Okres_nazov
		  ,o.stpec_6
		  ,o.stpec_23
		  ,o.stpec_25
		  ,o.stpec_26
		  ,o.stpec_27
		  ,o.stpec_28
		  ,o.stpec_29
		  ,l.priem_lakt
		  ,o.stpec_22
		  ,o.rok
	FROM dbo.Roc_MLHD_Tab_22A as o 
		left outer join Roc_MLHD_Tab_23A as l on l.KRAJ+l.OKRES+l.PODNIK = o.kraj + o.OKRES + o.PODNIK 
		where o.stlpec_6c ='199'
		and o.rok = datepart(YEAR,@datumOd)
		and o.rok = l.rok
		and o.KRAJ + o.OKRES + o.PODNIK = @podnik

		--select * from @najchov
		--order by kraj, okres, PODNIK



declare @podiely table				-----PL1 a ich podiel v chove
	(
	podnik varchar (6),
	PL1 varchar(3),
	KR1 float,
	PodielPerc float--
	)
		
	declare @podniky int = (select count(*) from  @najchov )
	 print 'podniky'
	 print @podniky
	
	if @podniky >0
	begin 
		Insert into @podiely
		 (PL1, podnik,  KR1, PodielPerc)

		select distinct	 k.pl1 as PL1, 
			 substring(k.CHOVATEL,1,6) as podnik,
			sum(k.KR1)as KR1,
			(sum(k.KR1)/(select sum(k1.KR1)from CM_Krava as k1 
										where substring(k1.CHOVATEL,1,6)  = substring(k.chovatel,1,6) 
											and PRIZNAKKU = 1 
											and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR>=@datumOd))))*100 as PodielPerc 
		from @najchov as a --CM_Krava
			left outer join CM_Krava as k on substring(k.CHOVATEL,1,6) = a.KRAJ + a.OKRES + a.PODNIK
			where  substring(k.CHOVATEL,1,6) =  a.kraj+a.okres+a.podnik
				and k.PRIZNAKKU = 1 
				and (k.dovvyr is null or (k.dovvyr is not null and k.DATVYR>=@datumOd))
			group by k.PL1,substring(k.CHOVATEL,1,6) 

	end
	--select * from @podiely
		
	declare @counter int,  @pd varchar(9)
	declare @plemena table
		(
		PL1 varchar(3),
		KR1 float,
		PodielPerc float,
		podnik varchar (6),
		por int
		)

	declare @ZoznamPL1 table
		(
		pod VARCHAR(6),
		PL varchar(10)
		)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT podnik FROM @podiely group by podnik
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @pd
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
				delete from  @plemena			
				insert into @plemena
					(PL1, KR1, PodielPerc, podnik, por)
					select PL1,KR1, PodielPerc, podnik,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and podnik = @pd
			
				declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'') 
		
				insert into @ZoznamPL1
				select @podnik,@PL1
						
				FETCH NEXT FROM poradie_cursor INTO @pd
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor

		--select * from  @ZoznamPL1

	UPDATE @najchov SET 
	plem = PL FROM @ZoznamPL1  WHERE  KRAJ+okres+podnik = pod

	--create table Roc_MLHD_Tab_NAJCHOV
	--(
	--	KrajOkr VARCHAR(3)NULL,
	--	Podnik VARCHAR(3)NULL,
	--  Chov Varchar(3) null,
	--  Podnik_nazov VARCHAR(30)NULL,
	--  Chov_nazov VARCHAR(30)NULL,
	--	Prev_pl varchar(7) null,
	--	PocLakt [float] NULL,
	--	Mlieko float NULL,
	--	Tuk_kg float NULL,
	--	Tuk_p float NULL,
	--	Bielk_kg float NULL,
	--	Bielk_p float NULL,
	--	Tuk_Bielk float null,
	--	Priem_lakt float null,
	--	Medziobd float NULL,
	--	Indx float null,
	--	Rok int
	--	)

	insert into Roc_MLHD_Tab_NAJCHOV 
	(KrajOkr, Podnik, Podnik_nazov, Prev_pl, PocLakt, Mlieko, Tuk_kg, Tuk_p, Bielk_kg, Bielk_p, Tuk_Bielk, Priem_lakt, Medziobd, Indx, Rok )
	Select distinct
	(kraj + okres) as KrajOkr ,
	podnik as	PODNIK ,
	stpec_6 as	Podnik_nazov,
	plem as	Prev_pl,
	stpec_23 as	PocLakt,
	stpec_25 as	Mlieko,
	stpec_27 as	Tuk_kg,
	stpec_26 as	Tuk_p,
	stpec_29 as	Bielk_kg,
	stpec_28 as	Bielk_p,
	(stpec_27 + stpec_29) as	Tuk_Bielk,
	priem_lakt as	priem_lakt,
	stpec_22 as	Medziobd,
	round( (stpec_27 + stpec_29)*365/ stpec_22*priem_lakt,2) as indx,
	rok as	ROK
	from @najchov
	order by PODNIK

   end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-16
-- Description:	vrati plemenny typ podla potreby pocitania BLUP
-- =============================================
CREATE FUNCTION [dbo].[C_blup_PLTyp]
(
	@PL1 [varchar](2),
	@KR1 decimal(5,2),
	@PL2 [varchar](2),
	@KR2 decimal(5,2),
	@PL3 [varchar](2),
	@KR3 decimal(5,2),
	@PL4 [varchar](2),
	@KR4 decimal(5,2)
)
RETURNS varchar(2)
AS
BEGIN

declare	@P1 varchar(1),
	@P2 varchar(1),
	@P3 varchar(1),
	@P4 varchar(1),

	@HK decimal(4,1),
	@P varchar(2)

	set @PL2 = isnull(@PL2, '')
	set @KR2 = isnull(@KR2, 0)
	set @PL3 = isnull(@PL3, '')
	set @KR3 = isnull(@KR3, 0)
	set @PL4 = isnull(@PL4, '')
	set @KR4 = isnull(@KR4, 0)



		set	@P1 = case when @PL1 = 'MB' then 'S'
					   when @PL1 = 'CH' then ' '
					   else @PL1 end

		set @p2 = @PL2
		set @p3 = @PL3
		set @p4 = @PL4

		set @HK = case when @PL1 in ('H', 'R', 'N', 'F') and (@KR1 = 0) then 100
					   else case when @PL1 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR1 + 
							case when @PL2 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR2 + 
							case when @PL3 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR3 + 
							case when @PL4 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR4 end

		set @P = case when @P1 in ('P', 'S') then
					  case when (@KR1 >= 87.5 OR @KR1 = 0) then @P1 + '0'
						   when (@KR1 between 75 AND 87.49) then @P1 + '1'
						   when (@KR1 between 50 AND 74.9) then @P1 + '2'
						   else @P1 + 'X' end
					  when @HK >= 93.75 then 'H0'
					  when @HK between 87.5 AND 93.74 then 'H1'
					  when @HK between 75 AND 87.49 then 'H2'
					  when @HK between 50 AND 74.9 then 'H3'
					  when @P1 = 'A' AND @KR1 = 50 AND @P2 = 'P' AND @KR2 = 50 then 'P3' end

		return @P 
END
go


CREATE PROCEDURE [dbo].[ZZ_C_PoslednohodnotenieByciSB]
AS
BEGIN
	TRUNCATE TABLE [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB]

	declare @b as varchar(15)

	declare c cursor for
					SELECT BYK 
					FROM [View_cp_testhodnotbycy2SB]				
					GROUP BY BYK
					HAVING COUNT(*)=1
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_cp_testhodnotbycy2SB] where BYK=@b  and [chekmeout]='ANO';

		fetch next from c into @b
		end

		close c
		deallocate c

		declare c cursor for
					SELECT BYK 
					FROM [View_cp_testhodnotbycy2SB]				
					GROUP BY BYK
					HAVING COUNT(*)=2
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_cp_testhodnotbycy2SB] where BYK=@b  and [chekmeout]='ANO' ;

		fetch next from c into @b
		end

		close c
		deallocate c


		declare c cursor for
					SELECT BYK 
					FROM [View_cp_testhodnotbycy2SB]				
					GROUP BY BYK
					HAVING COUNT(*)=3
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemenaSB] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_cp_testhodnotbycy2SB] where BYK=@b  and [chekmeout]='ANO' ;

		fetch next from c into @b
		end

		close c
		deallocate c

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	pre upravu a export CP_BLUP_PROOFS do DBF
--				pozor! Spusta najprv proceduru C_blup_PROOFC
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFS]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select TPH from CP_BLUP_K95) * m305) / (m305 + (select MH from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPH from CP_BLUP_K95) * m305) / (m305 + (select MH from CP_BLUP_K95))
	where plem = 'H'

	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select TPS from CP_BLUP_K95) * m305) / (m305 + (select MS from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPS from CP_BLUP_K95) * m305) / (m305 + (select MS from CP_BLUP_K95))
	where plem = 'S'

	update CP_BLUP_PROOFS
		set tperc = (100 * t305 - (select TPP from CP_BLUP_K95) * m305) / (m305 + (select MP from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPP from CP_BLUP_K95) * m305) / (m305 + (select MP from CP_BLUP_K95))
	where plem = 'P'

	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_H
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'H'

	SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_S
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'S'

	SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_P
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'P'

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95B SET
		M0H = (select m305 from #temp_stdevS_1_H),
		M1H = (select m100 from #temp_stdevS_1_H),
		M2H = (select m200 from #temp_stdevS_1_H),
		M3H = (select m300 from #temp_stdevS_1_H),
		M4H = (select mp from #temp_stdevS_1_H),
		T0H = (select t305 from #temp_stdevS_1_H),
		T1H = (select t100 from #temp_stdevS_1_H),
		T2H = (select t200 from #temp_stdevS_1_H),
		T3H = (select t300 from #temp_stdevS_1_H),
		T4H = (select tp from #temp_stdevS_1_H),
		B0H = (select b305 from #temp_stdevS_1_H),
		B1H = (select b100 from #temp_stdevS_1_H),
		B2H = (select b200 from #temp_stdevS_1_H),
		B3H = (select b300 from #temp_stdevS_1_H),
		B4H = (select bp from #temp_stdevS_1_H),
		TPERH = (select tperc from #temp_stdevS_1_H),
		BPERH = (select bperc from #temp_stdevS_1_H)

	UPDATE CP_BLUP_K95B SET
		M0S = (select m305 from #temp_stdevS_1_S),
		M1S = (select m100 from #temp_stdevS_1_S),
		M2S = (select m200 from #temp_stdevS_1_S),
		M3S = (select m300 from #temp_stdevS_1_S),
		M4S = (select mp from #temp_stdevS_1_S),
		T0S = (select t305 from #temp_stdevS_1_S),
		T1S = (select t100 from #temp_stdevS_1_S),
		T2S = (select t200 from #temp_stdevS_1_S),
		T3S = (select t300 from #temp_stdevS_1_S),
		T4S = (select tp from #temp_stdevS_1_S),
		B0S = (select b305 from #temp_stdevS_1_S),
		B1S = (select b100 from #temp_stdevS_1_S),
		B2S = (select b200 from #temp_stdevS_1_S),
		B3S = (select b300 from #temp_stdevS_1_S),
		B4S = (select bp from #temp_stdevS_1_S),
		TPERS = (select tperc from #temp_stdevS_1_S),
		BPERS = (select bperc from #temp_stdevS_1_S)

	UPDATE CP_BLUP_K95B SET
		M0P = (select m305 from #temp_stdevS_1_P),
		M1P = (select m100 from #temp_stdevS_1_P),
		M2P = (select m200 from #temp_stdevS_1_P),
		M3P = (select m300 from #temp_stdevS_1_P),
		M4P = (select mp from #temp_stdevS_1_P),
		T0P = (select t305 from #temp_stdevS_1_P),
		T1P = (select t100 from #temp_stdevS_1_P),
		T2P = (select t200 from #temp_stdevS_1_P),
		T3P = (select t300 from #temp_stdevS_1_P),
		T4P = (select tp from #temp_stdevS_1_P),
		B0P = (select b305 from #temp_stdevS_1_P),
		B1P = (select b100 from #temp_stdevS_1_P),
		B2P = (select b200 from #temp_stdevS_1_P),
		B3P = (select b300 from #temp_stdevS_1_P),
		B4P = (select bp from #temp_stdevS_1_P),
		TPERP = (select tperc from #temp_stdevS_1_P),
		BPERP = (select bperc from #temp_stdevS_1_P)


	SELECT 
		430 as ssmh,
		15 as ssth,
		12 as ssbh,
		0.18 as sstph,
		0.10 as ssbph,      
		stdev(m305) as sm0h,
		stdev(m100) as sm1h,
		stdev(m200) as sm2h, 
		stdev(m300) as sm3h, 
		stdev(mp) as sm4h, 
		stdev(t305) as st0h, 
		stdev(t100) as st1h, 
		stdev(t200) as st2h, 
		stdev(t300) as st3h, 
		stdev(tp) as st4h, 
		stdev(b305) as sb0h, 
		stdev(b100) as sb1h, 
		stdev(b200) as sb2h, 
		stdev(b300) as sb3h, 
		stdev(bp) as sb4h, 
		stdev(tperc) as stperch, 
		stdev(bperc) as sbperch
		into #temp_stdevS_H
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'H'

	SELECT 
		310 as ssms,
		12 as ssts,
		9 as ssbs,
		0.14 as sstps,
		0.10 as ssbps,      
		stdev(m305) as sm0s,
		stdev(m100) as sm1s,
		stdev(m200) as sm2s, 
		stdev(m300) as sm3s, 
		stdev(mp) as sm4s, 
		stdev(t305) as st0s, 
		stdev(t100) as st1s, 
		stdev(t200) as st2s, 
		stdev(t300) as st3s, 
		stdev(tp) as st4s, 
		stdev(b305) as sb0s, 
		stdev(b100) as sb1s, 
		stdev(b200) as sb2s, 
		stdev(b300) as sb3s, 
		stdev(bp) as sb4s, 
		stdev(tperc) as stpercs, 
		stdev(bperc) as sbpercs
		into #temp_stdevS_S
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'S'

	SELECT 
		250 as ssmp,
		10 as sstp,
		8 as ssbp,
		0.12 as sstpp,
		0.09 as ssbpp,      
		stdev(m305) as sm0p,
		stdev(m100) as sm1p,
		stdev(m200) as sm2p, 
		stdev(m300) as sm3p, 
		stdev(mp) as sm4p, 
		stdev(t305) as st0p, 
		stdev(t100) as st1p, 
		stdev(t200) as st2p, 
		stdev(t300) as st3p, 
		stdev(tp) as st4p, 
		stdev(b305) as sb0p, 
		stdev(b100) as sb1p, 
		stdev(b200) as sb2p, 
		stdev(b300) as sb3p, 
		stdev(bp) as sb4p, 
		stdev(tperc) as stpercp, 
		stdev(bperc) as sbpercp
		into #temp_stdevS_P
	FROM CP_BLUP_PROOFS
	WHERE nd > 0 and plem = 'P'


	-- pocet stad kontrol krav za byka (otca)	
	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_H
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
	and ht.PLEM = 'H' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec

	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_S
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('S0', 'S1', 'S2')
	and ht.PLEM = 'S' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec

	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_P
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('P0', 'P1', 'P2')
	and ht.PLEM = 'P' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec


	-- laktacie za byka (otca)
	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_H
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
						and ht.PLEM = 'H'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC

	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_S
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('S0', 'S1', 'S2')
						and ht.PLEM = 'S'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC

	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_P
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('P0', 'P1', 'P2')
						and ht.PLEM = 'P'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevS_H)) * (select ssmh from #temp_stdevS_H) AS M305, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevS_H) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1H from CP_BLUP_K95)) / (select sm1h from #temp_stdevS_H)) * (select ssmh from #temp_stdevS_H) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevS_H)) * (select ssth from #temp_stdevS_H) AS T305, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevS_H) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1H from CP_BLUP_K95)) / (select st1h from #temp_stdevS_H)) * (select ssth from #temp_stdevS_H) AS T100, 
		((p.tperc - (select TPERH from CP_BLUP_K95)) / (select stperch from #temp_stdevS_H)) * (select sstph from #temp_stdevS_H) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevS_H)) * (select ssbh from #temp_stdevS_H) AS B305, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevS_H) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1H from CP_BLUP_K95)) / (select sb1h from #temp_stdevS_H)) * (select ssbh from #temp_stdevS_H) AS B100, 
		((p.bperc - (select BPERH from CP_BLUP_K95)) / (select sbperch from #temp_stdevS_H)) * (select ssbph from #temp_stdevS_H) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_H
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo and ab.plem = 'H'
							LEFT OUTER JOIN #temp_byci_laktacie_H as tbl ON tbl.OTEC = p.cislo
							LEFT OUTER JOIN #temp_byci_stada_H as tbs ON tbs.OTEC = p.cislo
	where p.plem = 'H'
	ORDER BY p.cislo


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0S from CP_BLUP_K95)) / (select sm0s from #temp_stdevS_S)) * (select ssms from #temp_stdevS_S) AS M305, 
		((p.m305 - (select M0S from CP_BLUP_K95)) / (select sm0s from #temp_stdevS_S) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1S from CP_BLUP_K95)) / (select sm1s from #temp_stdevS_S)) * (select ssms from #temp_stdevS_S) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0S from CP_BLUP_K95)) / (select st0s from #temp_stdevS_S)) * (select ssts from #temp_stdevS_S) AS T305, 
		((p.t305 - (select T0S from CP_BLUP_K95)) / (select st0s from #temp_stdevS_S) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1S from CP_BLUP_K95)) / (select st1s from #temp_stdevS_S)) * (select ssts from #temp_stdevS_S) AS T100, 
		((p.tperc - (select TPERS from CP_BLUP_K95)) / (select stpercs from #temp_stdevS_S)) * (select sstps from #temp_stdevS_S) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0S from CP_BLUP_K95)) / (select sb0s from #temp_stdevS_S)) * (select ssbs from #temp_stdevS_S) AS B305, 
		((p.b305 - (select B0S from CP_BLUP_K95)) / (select sb0s from #temp_stdevS_S) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1S from CP_BLUP_K95)) / (select sb1s from #temp_stdevS_S)) * (select ssbs from #temp_stdevS_S) AS B100, 
		((p.bperc - (select BPERS from CP_BLUP_K95)) / (select sbpercs from #temp_stdevS_S)) * (select ssbps from #temp_stdevS_S) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_S
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo and ab.plem = 'S'
							LEFT OUTER JOIN #temp_byci_laktacie_S as tbl ON tbl.OTEC = p.cislo 
							LEFT OUTER JOIN #temp_byci_stada_S as tbs ON tbs.OTEC = p.cislo
	where p.plem = 'S'
	ORDER BY p.cislo


	SELECT        
		p.cislo AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDING, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		null AS SPI, 
		((p.m305 - (select M0P from CP_BLUP_K95)) / (select sm0p from #temp_stdevS_P)) * (select ssmp from #temp_stdevS_P) AS M305, 
		((p.m305 - (select M0P from CP_BLUP_K95)) / (select sm0p from #temp_stdevS_P) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1P from CP_BLUP_K95)) / (select sm1p from #temp_stdevS_P)) * (select ssmp from #temp_stdevS_P) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0P from CP_BLUP_K95)) / (select st0p from #temp_stdevS_P)) * (select sstp from #temp_stdevS_P) AS T305, 
		((p.t305 - (select T0P from CP_BLUP_K95)) / (select st0p from #temp_stdevS_P) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1P from CP_BLUP_K95)) / (select st1p from #temp_stdevS_P)) * (select sstp from #temp_stdevS_P) AS T100, 
		((p.tperc - (select TPERP from CP_BLUP_K95)) / (select stpercp from #temp_stdevS_P)) * (select sstpp from #temp_stdevS_P) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0P from CP_BLUP_K95)) / (select sb0p from #temp_stdevS_P)) * (select ssbp from #temp_stdevS_P) AS B305, 
		((p.b305 - (select B0P from CP_BLUP_K95)) / (select sb0p from #temp_stdevS_P) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1P from CP_BLUP_K95)) / (select sb1p from #temp_stdevS_P)) * (select ssbp from #temp_stdevS_P) AS B100, 
		((p.bperc - (select BPERP from CP_BLUP_K95)) / (select sbpercp from #temp_stdevS_P)) * (select ssbpp from #temp_stdevS_P) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_P
	FROM CP_BLUP_PROOFS AS p LEFT OUTER JOIN CM_Byci AS b ON p.cislo = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB AS ab ON p.cislo = ab.cislo and ab.plem = 'P'
							LEFT OUTER JOIN #temp_byci_laktacie_P as tbl ON tbl.OTEC = p.cislo
							LEFT OUTER JOIN #temp_byci_stada_P as tbs ON tbs.OTEC = p.cislo
	where p.plem = 'P'
	ORDER BY p.cislo


	DELETE FROM CP_BLUP_BYKYTDM 

	INSERT into CP_BLUP_BYKYTDM
	SELECT 
		BYK, 
		b.LIN as BLIN,
		(SELECT RIGHT('000'+CAST(b.REG AS VARCHAR(3)),3)) as BREG,
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		s.LIN as SLIN,
		(SELECT RIGHT('000'+CAST(s.REG AS VARCHAR(3)),3)) as SREG,
		DAM, 
		BREEDING,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		m305 * (select EWMH from CP_BLUP_K95) + t305 * (select EWTH from CP_BLUP_K95) + b305 * (select EWBH from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		b.MENO,
		'H'
	FROM #temp_vysledny_H as v 
		left join CM_BYCI as b on v.BYK = b.USCISLO
		left join CM_BYCI as s on v.SIRE = s.USCISLO

	INSERT into CP_BLUP_BYKYTDM
	SELECT 
		BYK, 
		b.LIN as BLIN,
		(SELECT RIGHT('000'+CAST(b.REG AS VARCHAR(3)),3)) as BREG,
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		s.LIN as SLIN,
		(SELECT RIGHT('000'+CAST(s.REG AS VARCHAR(3)),3)) as SREG,
		DAM, 
		BREEDING,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		m305 * (select EWMS from CP_BLUP_K95) + t305 * (select EWTS from CP_BLUP_K95) + b305 * (select EWBS from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		b.MENO,
		'S'
	FROM #temp_vysledny_S as v 
		left join CM_BYCI as b on v.BYK = b.USCISLO
		left join CM_BYCI as s on v.SIRE = s.USCISLO

	INSERT into CP_BLUP_BYKYTDM
	SELECT 
		BYK, 
		b.LIN as BLIN,
		(SELECT RIGHT('000'+CAST(b.REG AS VARCHAR(3)),3)) as BREG,
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		s.LIN as SLIN,
		(SELECT RIGHT('000'+CAST(s.REG AS VARCHAR(3)),3)) as SREG,
		DAM, 
		BREEDING,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		m305 * (select EWMP from CP_BLUP_K95) + t305 * (select EWTP from CP_BLUP_K95) + b305 * (select EWBP from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		b.MENO,
		'P'
	FROM #temp_vysledny_P as v 
		left join CM_BYCI as b on v.BYK = b.USCISLO
		left join CM_BYCI as s on v.SIRE = s.USCISLO
	
	update CP_BLUP_KPLEM
		SET m0h_pr_b = (select m0h from CP_BLUP_K95B),
			t0h_pr_b = (select t0h from CP_BLUP_K95B),
			tperh_pr_b = (select tperh from CP_BLUP_K95B),
			b0h_pr_b = (select b0h from CP_BLUP_K95B),
			bperh_pr_b = (select bperh from CP_BLUP_K95B),
			sm0h_so_b = (select sm0h from #temp_stdevS_H),	
			st0h_so_b = (select st0h from #temp_stdevS_H),
			stperch_so_b = (select stperch from #temp_stdevS_H),
			sb0h_so_b = (select sb0h from #temp_stdevS_H),
			sbperch_so_b = (select sbperch from #temp_stdevS_H),

			m0s_pr_B = (select M0S from CP_BLUP_K95B),
			t0s_pr_B = (select T0S from CP_BLUP_K95B),
			tpers_pr_B = (select TPERS from CP_BLUP_K95B),
			b0s_pr_B = (select B0S from CP_BLUP_K95B),
			bpers_pr_B = (select BPERS from CP_BLUP_K95B),
			sm0s_so_b = (select sm0s from #temp_stdevS_S),	
			st0s_so_b = (select st0s from #temp_stdevS_S),
			stpercs_so_b = (select stpercs from #temp_stdevS_S),
			sb0s_so_b = (select sb0s from #temp_stdevS_S),
			sbpercs_so_b = (select sbpercs from #temp_stdevS_S),

			m0p_pr_B = (select M0P from CP_BLUP_K95B),
			t0p_pr_B = (select T0P from CP_BLUP_K95B),
			tperp_pr_B = (select TPERP from CP_BLUP_K95B),
			b0p_pr_B = (select B0P from CP_BLUP_K95B),
			bperp_pr_B = (select BPERP from CP_BLUP_K95B),
			sm0p_so_b = (select sm0p from #temp_stdevS_P),	
			st0p_so_b = (select st0p from #temp_stdevS_P),
			stpercp_so_b = (select stpercp from #temp_stdevS_P),
			sb0p_so_b = (select sb0p from #temp_stdevS_P),
			sbpercp_so_b = (select sbpercp from #temp_stdevS_P)

END
go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_telata_1A]
AS
BEGIN
		TRUNCATE TABLE [CP_Meso_1AReportTelata] 

	declare @chov as varchar(9)
	declare @n as varchar(30)

	declare @pBn as int;
	declare @hBn as float;

	declare @pJn as int;
	declare @hJn as float;
	 
	declare @pB120 as int;
	declare @hB120 as float;
	declare @prB120 as float;
	declare @pJ120 as int;
	declare @hJ120 as float;
	declare @prJ120 as float;

	declare @pB210 as int;
	declare @hB210 as float;
	declare @prB210 as float;
	declare @pJ210 as int;
	declare @hJ210 as float;
	declare @prJ210 as float;

	declare @pB365 as int;
	declare @hB365 as float;
	declare @prB365 as float;
	declare @pJ365 as int;
	declare @hJ365 as float;
	declare @prJ365 as float;

	declare @pB700 as int;
	declare @hB700 as float;
	declare @prB700 as float;
	declare @pJ700 as int;
	declare @hJ700 as float;
	declare @prJ700 as float;


	declare chov cursor for
	select chovatel,NAZTYP
	from [View_CP_Meso_Chovatel_NazovPlemen]

	open chov
	fetch next from chov into @chov,@n

	while @@FETCH_STATUS=0
	begin 
			
			

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and NAZTYP=@n
			group by NAZTYP

			open v1
			fetch next from v1 into @pBn,@hBn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v2
			fetch next from v2 into @pB120,@hB120,@prB120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v3
			fetch next from v3 into @pB210,@hB210,@prB210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v4
			fetch next from v4 into @pB365,@hB365,@prB365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [View_CP_Meso_Zoznam_Bycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v5
			fetch next from v5 into @pB700,@hB700,@prB700
			close v5
			deallocate v5
		-------------------------------------------------------------------------------------

			declare v1 cursor for
			SELECT count(*) as pocet, avg(HMOTNAR) as v 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and HMOTNAR is not null
			and NAZTYP=@n
			group by NAZTYP

			open v1
			fetch next from v1 into @pJn,@hJn
			close v1
			deallocate v1

			declare v2 cursor for
			SELECT count(*) as pocet, avg(vaha120) as v,avg(zpriras120) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha120 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v2
			fetch next from v2 into @pJ120,@hJ120,@prJ120
			close v2
			deallocate v2

			declare v3 cursor for
			SELECT count(*) as pocet, avg(vaha210) as v,avg(zproras210) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha210 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v3
			fetch next from v3 into @pJ210,@hJ210,@prJ210
			close v3
			deallocate v3

			declare v4 cursor for
			SELECT count(*) as pocet, avg(vaha365) as v,avg(zpriras365) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha365 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v4
			fetch next from v4 into @pJ365,@hJ365,@prJ365
			close v4
			deallocate v4

			declare v5 cursor for
			SELECT count(*) as pocet, avg(vaha500) as v,avg(zpriras500) as pr 
			FROM [View_CP_Meso_Zoznam_Jalovycky]
			where chovatel=@chov
			and dovvyr is null
			and vaha500 is not null
			and NAZTYP=@n
			group by NAZTYP

			open v5
			fetch next from v5 into @pJ700,@hJ700,@prJ700
			close v5
			deallocate v5


			insert into [CP_Meso_1AReportTelata] values (
														@chov,
														 @n,
														@pBn,
														@hBn,
														@pJn ,
														@hJn,
														@pB120 ,
														@hB120 ,
														@prB120 ,
														@pJ120 ,
														@hJ120 ,
														@prJ120 ,
														@pB210 ,
														@hB210 ,
														@prB210 ,
														@pJ210 ,
														@hJ210 ,
														@prJ210 ,
														@pB365 ,
														@hB365 ,
														@prB365 ,
														@pJ365 ,
														@hJ365 ,
														@prJ365 ,
														@pB700 ,
														@hB700 ,
														@prB700 ,
														@pJ700 ,
														@hJ700 ,
														@prJ700 
													)
			set	@pBn=0;
														set @hBn=0;
														set @pJn=0 
														set @hJn=0
														set @pB120 =0
														set @hB120 =0
														set @prB120 =0
														set @pJ120 =0
														set @hJ120 =0
														set @prJ120 =0
														set @pB210 =0
														set @hB210 =0
														set @prB210 =0
														set @pJ210 =0
														set @hJ210 =0
														set @prJ210 =0
														set @pB365 =0
														set @hB365 =0
														set @prB365 =0
														set @pJ365 =0
														set @hJ365 =0
														set @prJ365 =0
														set @pB700 =0
														set @hB700 =0
														set @prB700 =0
														set @pJ700 =0
														set @hJ700 =0
														set @prJ700=0 
		fetch next from chov into @chov,@n;
	end

	close chov;
	deallocate chov;

END
go


CREATE PROC [dbo].[ns_txt_file_read]  
    @os_file_name NVARCHAR(256) 
   ,@text_file VARCHAR(MAX) OUTPUT  
/* Reads a text file into @text_file 
* 
* Transactions: may be in a transaction but is not affected 
* by the transaction. 
* 
* Error Handling: Errors are not trapped and are thrown to 
* the caller. 
* 
* Example: 
    declare @t varchar(max) 
    exec ns_txt_file_read 'c:\temp\SampleTextDoc.txt', @t output 
    select @t as [SampleTextDoc.txt] 
* 
* History: 
* WHEN       WHO        WHAT 
* ---------- ---------- --------------------------------------- 
* 2007-02-06 anovick    Initial coding 
**************************************************************/  
AS  
DECLARE @sql NVARCHAR(MAX) 
      , @parmsdeclare NVARCHAR(4000)  

SET NOCOUNT ON  

SET @sql = 'select @text_file=(select * from openrowset ( 
           bulk ''' + @os_file_name + ''' 
           ,SINGLE_CLOB) x 
           )' 

SET @parmsdeclare = '@text_file varchar(max) OUTPUT'  

EXEC sp_executesql @stmt = @sql 
                 , @params = @parmsdeclare 
                 , @text_file = @text_file OUTPUT
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru fenotypov pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_phenotypic]
AS
BEGIN

	delete from CP_LAKT_VYSL_PDC_SIM_NEMECKO

	-- 1 lakt 100 dni
	SELECT * into #temp_1_100
	  FROM CM_ZSTDM
	where porlak = '01' and DATEDIFF(day, DATOTEL, DATKONTR) >= 100 and DATEDIFF(day, DATOTEL, DATKONTR) < 200
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_1_100 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_1_100
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays

	-- 1 lakt 200 dni
	SELECT * into #temp_1_200
	  FROM CM_ZSTDM
	where porlak = '01' and DATEDIFF(day, DATOTEL, DATKONTR) >= 200 and DATEDIFF(day, DATOTEL, DATKONTR) < 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_1_200 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_1_200
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays

	-- 1 lakt 305 dni
	SELECT * into #temp_1_305
	  FROM CM_ZSTDM
	where porlak = '01' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_1_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_1_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays

	-- 2 lakt 305 dni
	SELECT * into #temp_2_305
	  FROM CM_ZSTDM
	where porlak = '02' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_2_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_2_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays

	-- 3 lakt 305 dni
	SELECT * into #temp_3_305
	  FROM CM_ZSTDM
	where porlak = '03' and DATEDIFF(day, DATOTEL, DATKONTR) >= 305
	and LEFT(TYP, 1) = 'S'

	insert into CP_LAKT_VYSL_PDC_SIM_NEMECKO
	SELECT mt.ciskravy, mt. porlak, mt.dni, mt.mlieko, mt.tuk, mt.bielk, (SELECT avg(MLIEKO) FROM CM_ZSTDM as tdm where tdm.datkontr = mt.datkontr and tdm.cischovu = mt.cischovu and LEFT(TYP, 1) = 'S') as priemml
	FROM #temp_3_305 mt INNER JOIN
		(
			SELECT ciskravy, MIN(dni) mindays
			FROM #temp_3_305
			GROUP BY ciskravy
		) t ON mt.ciskravy = t.ciskravy AND mt.dni = t.mindays


	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00'+convert(varchar(2), PORLAK), 2) as PORLAK
		,RIGHT('000'+convert(varchar(3), DNI), 3) as DNI
		,RIGHT('00000'+convert(varchar(5), convert(numeric(4,1), MLIEKO)), 5) as MLIEKO
		,RIGHT('0000'+convert(varchar(4), convert(numeric(4,1), TUK*10)), 4) as TUK
		,RIGHT('0000'+convert(varchar(4),convert(numeric(4,1), BIELK*10)), 4) as BIELK
		,RIGHT('00000'+convert(varchar(5), convert(numeric(4,1), PRMLIEKO)), 5) as PRIEMML
		into temp_polozky_pdc
	FROM CP_LAKT_VYSL_PDC_SIM_NEMECKO

	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +PORLAK +DNI +MLIEKO +TUK +BIELK +PRIEMML as VETA from plis.dbo.temp_polozky_pdc" queryout "e:\ROZBORAK\Data\svk.08.txt" -T -c -t,'

	drop table temp_polozky_pdc

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 19.04.2017
-- Description: uprava pre export CP_BLUP_PROOFC_SC do DBF
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFC_SC]

AS
BEGIN
	-- vypocet smerodajnych odchylok (zakladna rok 2010)
	SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as	sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*)	as	scp
		into #temp_stdevS_1_H
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'H'

		SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as	sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*)	as	scp
		into #temp_stdevS_1_S
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'S'

		SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as	sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*)	as	scp
		into #temp_stdevS_1_P
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'P'

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95 SET
		SC0H = (select sc305 from #temp_stdevS_1_H),
		SC1H = (select sc100 from #temp_stdevS_1_H),
		SC2H = (select sc200 from #temp_stdevS_1_H),
		SC3H = (select sc300 from #temp_stdevS_1_H),
		SC4H = (select scp from #temp_stdevS_1_H)

	UPDATE CP_BLUP_K95 SET
		SC0S = (select sc305 from #temp_stdevS_1_S),
		SC1S = (select sc100 from #temp_stdevS_1_S),
		SC2S = (select sc200 from #temp_stdevS_1_S),
		SC3S = (select sc300 from #temp_stdevS_1_S),
		SC4S = (select scp from #temp_stdevS_1_S)

	UPDATE CP_BLUP_K95 SET
		SC0P = (select sc305 from #temp_stdevS_1_P),
		SC1P = (select sc100 from #temp_stdevS_1_P),
		SC2P = (select sc200 from #temp_stdevS_1_P),
		SC3P = (select sc300 from #temp_stdevS_1_P),
		SC4P = (select scp from #temp_stdevS_1_P)

	-- vypocet smerodajnych odchylok na zakladnu - rok 2010
	SELECT 
		--430 as ssmh,
		--15 as ssth,
		--12 as ssbh,
		--0.18 as sstph,
		--0.10 as ssbph,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0h,
		stdev(convert(decimal(7,2), sc100v)) as ssc1h,
		stdev(convert(decimal(7,2), sc200v)) as ssc2h, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3h, 
		stdev(convert(decimal(7,2), scpv)) as ssc4h
		into #temp_stdevC_H
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'H'

	SELECT 
		--430 as ssms,
		--15 as ssts,
		--12 as ssbs,
		--0.18 as sstps,
		--0.10 as ssbps,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0s,
		stdev(convert(decimal(7,2), sc100v)) as ssc1s,
		stdev(convert(decimal(7,2), sc200v)) as ssc2s, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3s, 
		stdev(convert(decimal(7,2), scpv)) as ssc4s
		into #temp_stdevC_S
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'S'

	SELECT 
		--430 as ssmp,
		--15 as sstp,
		--12 as ssbp,
		--0.18 as sstpp,
		--0.10 as ssbpp,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0p,
		stdev(convert(decimal(7,2), sc100v)) as ssc1p,
		stdev(convert(decimal(7,2), sc200v)) as ssc2p, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3p, 
		stdev(convert(decimal(7,2), scpv)) as ssc4p
		into #temp_stdevC_P
	FROM            CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'P'

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		null AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0H from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0H from CP_BLUP_K95)) / (select ssc0h from #temp_stdevC_H) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,2), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_H
	FROM CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC_SC AS ab ON p.cislo = ab.krava
	where p.plem = 'H'
	ORDER BY p.cislo

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		null AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0S from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0S from CP_BLUP_K95)) / (select ssc0s from #temp_stdevC_S) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,2), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_S
	FROM CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC_SC AS ab ON p.cislo = ab.krava
	where p.plem = 'S'
	ORDER BY p.cislo

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		null AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0P from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0P from CP_BLUP_K95)) / (select ssc0p from #temp_stdevC_P) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,2), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_P
	FROM CP_BLUP_PROOFC_SC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC_SC AS ab ON p.cislo = ab.krava
	where p.plem = 'P'
	ORDER BY p.cislo


	DELETE FROM CP_BLUP_KRAVYTDM_SC


	INSERT INTO CP_BLUP_KRAVYTDM_SC
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		null as NARSIRE,
		DAM, 
		null as NARDAM,
		BREEDING,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'H'
	FROM #temp_vysledny_H

	INSERT INTO CP_BLUP_KRAVYTDM_SC
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		null as NARSIRE,
		DAM, 
		null as NARDAM,
		BREEDING,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'S'
	FROM #temp_vysledny_S
	
	INSERT INTO CP_BLUP_KRAVYTDM_SC
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		null as NARSIRE,
		DAM, 
		null as NARDAM,
		BREEDING,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'P'
	FROM #temp_vysledny_P

	update CP_BLUP_KPLEMSC
		SET sc305h_pr_k = (select SC0H from CP_BLUP_K95),
			sc305h_so_k = (select ssc0h from #temp_stdevC_H),

			sc305s_pr_k = (select SC0S from CP_BLUP_K95),
			sc305s_so_k = (select ssc0s from #temp_stdevC_S),

			sc305p_pr_k = (select SC0P from CP_BLUP_K95),
			sc305p_so_k = (select ssc0p from #temp_stdevC_P)
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 06.03.2014
-- Description:	Zisti, ci na chove je KUMP
-- =============================================
CREATE FUNCTION [dbo].[HDchov_ma_typ_KU] 
(
	@Parchov varchar(9),
	@ParKU varchar(4)
)
RETURNS bit
AS
BEGIN
	declare @spvykon varchar(1) = null
	declare @priznak varchar(2) = null
	declare @techusmd varchar(2) = null
	DECLARE @Result bit = 0

	SELECT @spvykon = NM_HDDETAIL.SPVYKON, @priznak = NM_HDDETAIL.PRIZNAK, @techusmd = NM_HDDETAIL.TECHUSMD
	FROM NM_CHOVMAS INNER JOIN
	NM_HDDETAIL ON NM_CHOVMAS.KRAJ = NM_HDDETAIL.KRAJ AND NM_CHOVMAS.OKRES = NM_HDDETAIL.OKRES AND 
	NM_CHOVMAS.PODNIK = NM_HDDETAIL.PODNIK AND NM_CHOVMAS.CHOV = NM_HDDETAIL.CHOV
	WHERE ZRUS IS NULL AND NM_CHOVMAS.TYPZV = '1' AND
		NM_CHOVMAS.KRAJ + NM_CHOVMAS.OKRES + NM_CHOVMAS.PODNIK + NM_CHOVMAS.CHOV = @Parchov

	if (@ParKU = 'ML' AND 
		NOT(@spvykon = '0' OR @spvykon= '4' OR @spvykon = '5') AND @priznak = '01' AND @techusmd = '00')
		set @Result = 1
	else if (@ParKU = 'MP' AND 
		(@spvykon= '4' OR @spvykon = '5') AND @priznak = '01')
		set @Result = 1
	else if (@ParKU = 'TMHD' AND 
		@spvykon= '0' AND @priznak = '01' AND @techusmd != '00')
		set @Result = 1	
	
	RETURN @Result

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru kontrol pre gen. hodnotenie SIM populacie v DE
-- EDIT:			2018-04-20 - David Florek - Zmenene aby vyberalo zo ZSTDM namiesto TDMSIM
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_testdays]
AS
BEGIN
	select * into #temp_recordings from (
	SELECT  
	 CISKRAVY
	, CISCHOVU
	, DATKONTR
	, MLIEKO
	, TUKP
	, BIELKP
	, t.SB
	, case when detail.MLIEKOMER = 2 then 'R' else (select k.INTERVAL from CM_Kontroly as k where k.CISKRAVY = t.CISKRAVY and k.DATKONTR = t.DATKONTR) end as FREKV
	  FROM [plis].[dbo].[CM_ZSTDM] as t
	  left outer join NM_HDDETAIL detail on t.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where LEFT(t.TYP, 1) = 'S'
	  and CISCHOVU is not null
	  and t.SB is not null


	  union select
	  kon.CISKRAVY,
	  CISCHOVU,
	  DATKONTR,
	  MLIEKPR as MLIEKO,
	  isnull(PERCTUKU, 0) as TUKP,
	  isnull(PERCBIELK, 0) as BIELKP,
	  isnull(BUNECELEM, 0) as SB,
	  case when detail.MLIEKOMER = 2 then 'R' else INTERVAL end as FREKV
	  from CM_Kontroly kon
	  join CM_Krava krav on kon.CISKRAVY = krav.CISKRAVY
	  left outer join NM_HDDETAIL detail on kon.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where CISCHOVU is not null
	  and MLIEKPR is not null
	  and INTERVAL is not null
	  and TYPPLEM in (11, 13, 14)

	  union select
	  arch.CISKRAVY,
	  CISCHOVU,
	  DATKONTR,
	  MLIEKPR as MLIEKO,
	  isnull(PERCTUKU, 0) as TUKP,
	  isnull(PERCBIELK, 0) as BIELKP,
	  isnull(BUNECELEM, 0) as SB,
	  case when detail.MLIEKOMER = 2 then 'R' else INTERVAL end as FREKV
	  from CM_ArchKon arch
	  join CM_Krava krav on arch.CISKRAVY = krav.CISKRAVY
	  left outer join NM_HDDETAIL detail on arch.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where CISCHOVU is not null
	  and MLIEKPR is not null
	  and INTERVAL is not null
	  and TYPPLEM in (11, 13, 14)
	  ) as tab;

	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00000000000'+convert(varchar(11), CISCHOVU), 11) as CISCHOVU
		,'00' as REGIONPOVODU
		,isnull(convert(varchar(8), DATKONTR, 112), '00000000') as DATKONTR
		,RIGHT('0000'+convert(varchar(4), MLIEKO*10), 4) as MLIEKO
		,RIGHT('0000'+convert(varchar(4), TUKP*100), 4) as TUKP
		,RIGHT('0000'+convert(varchar(4), BIELKP*100), 4) as BIELKP
		,RIGHT('00000'+convert(varchar(5), SB), 5) as SB
		, 'C' as METHOD
		, case (SELECT SPVYKON from NM_HDDETAIL where kraj+okres+podnik+chov = CISCHOVU) 
			when 1 then 'S' when 2 then 'T' when 6 then 'M' when 7 then 'M' else ' ' end as SCHEME
		, '4' as TESTINT
		,convert(varchar(1), isnull(FREKV, 1)) as FREKV
		, '0' as T1
		, '000' as T2
		, '0' as T3
		into temp_polozky_recordings
	FROM #temp_recordings
	--where DATKONTR < '2018-06-15'
	--and FREKV is not null;
	
	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +CISCHOVU +REGIONPOVODU +DATKONTR +MLIEKO +TUKP +BIELKP +SB +METHOD +SCHEME +TESTINT +FREKV +T1 +T2 +T3 from plis.dbo.temp_polozky_recordings" queryout "e:\ROZBORAK\Data\svk.05.txt" -T -c -t,'

	drop table temp_polozky_recordings
END
go

Create PROCEDURE [dbo].[CR_Zostava_Laktacie_LaktPlem_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
						   EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Export potrebnych dat do genetickeho hodnotenia vo forme prislusnych TXT suborov
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_s_exportTXTAll]
AS
BEGIN

	DECLARE @RC int

	EXECUTE @RC = [dbo].C_gen_S_pedigree
	EXECUTE @RC = [dbo].C_gen_S_bulls 
	--EXECUTE @RC = [dbo].C_gen_S_calv 
	--EXECUTE @RC = [dbo].C_gen_S_calv2
	EXECUTE @RC = [dbo].C_gen_S_calv22
	--EXECUTE @RC = [dbo].C_gen_S_phenotypic 
	EXECUTE @RC = [dbo].C_gen_S_phenotypic0 
	EXECUTE @RC = [dbo].C_gen_S_phenotypic4 
	--EXECUTE @RC = [dbo].C_gen_S_testdays 
    EXECUTE @RC = [dbo].C_gen_S_testdays2 
END
go

-- =============================================
-- Author:		David Florek
-- Create date:	03.10.2017
-- Description:	Prida novy riadok faktury.
-- =============================================
CREATE PROCEDURE [dbo].[EC_PridajRiadokFaktury]
	@chov varchar(9),
	@typ varchar(10),
	@faktura varchar(10),
	@pocet int,
	@datum varchar(6),
	@produkt varchar(5),
	@suma decimal(10, 2),
	@sumaCelkom decimal(10, 2),
	@priplatok decimal(10, 2),
	@priplatokPerc decimal(10, 2),
	@login varchar(255),
	@typZmeny varchar(255),
	@komentar varchar(255),
	@jeDotacia bit
AS
BEGIN
	declare @dotacia decimal(10, 2), @zlavCel decimal(10, 2), @id int;

	declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatok, @priplatokPerc, @jeDotacia;

	select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

	set @sumaCelkom = @suma * @pocet;
			
	insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
	values (@chov, @typ, @faktura, @pocet, @datum, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

	select @id = SCOPE_IDENTITY();

	insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, KomentarKZmene, DatumZmeny, Zmenil, KodZmeny)
	values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @typZmeny, @komentar, GETDATE(), @login, 0);
END
go

CREATE procedure [dbo].[CR_KUMP_kravy_1_sumar_Opr]
    
	@CHOV varchar(9) = '',
	@rok int,
	@mesiac int	
--	@Vytlacil varchar(10) = null
	
as
begin

DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHK_MES_sumar  WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHK_MES_sumar WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac
	END

--Create table CR_KUMP_CHK_MES_sumar_Opr 
--		(
--		chov varchar(9),
--		krav_spolu int,
--		Nad420odOtel int,
--		vek_krav_rok varchar(10),
--		vek_1_otel varchar(10),
--		medziobdobie varchar(5),
--		porLakt varchar(3),
--		tel_nar varchar(10),
--		tel_mrt_nar varchar(3),
--		tel_zmetanie varchar(3),
--		dni_zp120 varchar(6),
--		dni_zp210 varchar(6),
--		dni_zp365 varchar(6),
--		dni_zp500 varchar(10),
--		rok_tel_nar varchar(10),
--		rok_tel_mrt_nar varchar(3),
--		rok_tel_zmetanie varchar(3),
--		CUK_medziobodie varchar(5),
--		CUK_tel_nar varchar(10),
--		CUK_tel_mrt_nar varchar(3),
--		CUK_tel_zmetanie varchar(3),
--		CUK_120dni varchar(10),
--		CUK_210dni varchar(10),
--		CUK_365dni varchar(10),
--		CUK_500dni varchar(10),
--		mesiac int,
--		rok int, 
--		generovane date,
--		standart_potomok_ZN int
--		)

-- vek pri prvom oteleni
	declare  @1otel table
		(
		[chov] varchar(9),
		[rok] int,
		[mesiac] int,
		[vek_1_otel] varchar(9) null
		)

		insert into @1otel 
			select @chov, @rok, @mesiac,
				(convert(varchar(20), round(convert(int,(AVG(vek_krav_vdnoch)/30.42)),0))+' / '+convert(varchar(20), ROUND(convert(int,(AVG(vek_krav_vdnoch) % 30.42)), 0))) as vek_1_otel
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
						and t.rok=@rok 
						and t.mesiac=@mesiac
						and krav_porlakt=1
		--select * from @1otel

--vek krav v rokoch
	declare  @vekKrav table
			(
			[vek_krav] decimal(5, 2)
			)
			insert into @vekKrav
				select 
				 round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE())))*1.0/365, 2) as vek_krav
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @vekKrav

--priemerne poradie laktacie na chove
	declare @porlakt table
			(
				[porlakt] decimal(3, 1)
			)
			insert into @porlakt
				select round(AVG(krav_porlakt*1.00), 1) as porlakt
			from CR_KUMP_CHK_MES_1 t 
				where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @porlakt

--medziobdobie
	declare @kravy table
		(
			[CISKRAVY] varchar(14)
			,[chov] varchar(9)
			,[rok] int
			,[mesiac] int
			,[tela1] date
			,[telaX]date
			,[CUK_medziobd_pocetDni] int
			,[CUK_medziobd_pocLakt] int
			,[mesiac_medziobd] int
		)
		insert into @kravy
			select distinct k.CISKRAVY, k.CHOVATEL, k.rok, k.mesiac,
			(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR) as tela1,
			(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR)as telaX,
			datediff(DAY,(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR),
					(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR )) as CUK_medziobd_pocetDni,
			(select count(distinct DATNAR) from CM_Telata as t where t.MATKA = k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR ) as CUK_medziobd_pocLakt,
			m.medziobd as mesiac_medziobd

		from CR_KUMP_CHK_MES_1 as k
				left outer join CM_Telata as t on t.MATKA=k.CISKRAVY
				left outer join CP_MedziObdMesove as m on k.CISKRAVY = m.kravcislo and k.krav_porlakt = m.porpreblak
						where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						and k.krav_porlakt>'1'
		--select * from @kravy

--vahy krav za obdobia
	declare @vahy_kravy table
		(
			[CISKRAVY] varchar(14),
			[CISTELATA] varchar(14),
			[chovK] varchar(9),
			[chovT] varchar(9),
			[pohl] varchar(3),
			[rok] int,
			[mesiac] int,
			[vaha_120] int,
			[vaha_210] int,
			[vaha_365] int,
			[vaha_500] int,
			[datnar] date
		)
		insert into @vahy_kravy
		select  k.CISKRAVY,t.cistelata, k.CHOVATEL,t.CHOVATEL,t.POHLAVIE, k.rok, k.mesiac,
					
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '120' and k.DOVVYR is null and k.DATVYR is null  and v.ZIVPRIR >0  ORDER BY v.DATVAZ desc) AS vaha_120,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '210' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_210,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '365' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_365,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '500' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_500,
					t.DATNAR
		from CR_KUMP_CHK_MES_1 as k
			LEFT JOIN CM_Telata as t on t.MATKA=k.CISKRAVY and t.CHOVATEL=k.CHOVATEL and t.CHOVNAR=k.CHOVATEL
			where k.CHOVATEL=@CHOV
					and k.mesiac=@mesiac
					and k.rok=@rok
					and k.DOVVYR is null and k.DATVYR is null


	--select * from  @vahy_kravy

	declare @CUK_vahy_kravy table
		(
			[CUK_vaha_120] varchar(4),
			[CUK_vaha_210] varchar(4),
			[CUK_vaha_365] varchar(4),
			[CUK_vaha_500] varchar(4)
		)
		insert into @CUK_vahy_kravy
			select AVG(vaha_120) as CUK_vaha_120,
			AVG(vaha_210) as CUK_vaha_210,
			AVG(vaha_365) as CUK_vaha_365,
			AVG(vaha_500) as CUK_vaha_500
		from @vahy_kravy
		select * from  @CUK_vahy_kravy
			

			declare @CUK120D varchar(10)= (select cast(round(sum(v.vaha_120 * 1.00)/count(v.vaha_120 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
			declare @CUK210D varchar(10)= (select cast(round(sum(v.vaha_210 * 1.00)/count(v.vaha_210 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
			declare @CUK365D varchar(10)= (select cast(round(sum(v.vaha_365 * 1.00)/count(v.vaha_365 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
			declare @CUK500D varchar(10)= (select cast(round(sum(v.vaha_500 * 1.00)/count(v.vaha_500 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
		


--CUK pocet potomkov za cely zivot vsetkych krav v chove 	
	declare @CUK_potomok table
		(
			 [CUK_ZN_potomok] varchar(10)
			,[CUK_MN_potomok] varchar(3)
			,[CUK_ZM_potomok] varchar(3)
		)
		insert into @CUK_potomok
			select distinct  (select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY where
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok
																												and t.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as CUK_ZN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																												and t.POHLAVIE in('16','61','62','63')) as CUK_MN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																											and t.POHLAVIE in('71')) as CUK_ZM_potomok
		from CR_KUMP_CHK_MES_1 as k 
			 where k.CHOVATEL=@chov 
				and k.rok=@rok 
				and k.mesiac=@mesiac
	--select * from @CUK_potomok

	declare @standartPotomok table
		(
		[potomok_standart] int
		)
		insert into @standartPotomok
		select DATEDIFF(day,(select DATEADD(MONTH,32,l.DATNAR) from CM_Krava as l where l.CISKRAVY=k.CISKRAVY),getdate())as potomok_standart
		 from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						--and k.krav_porlakt>'1'

		--select * from @standartPotomok

----Insert into CR_KUMP_CHK_MES_sumar_Opr 
---- 		(chov,
----		krav_spolu,
----		krav_vyr,
----		Nad420odOtel,
----		vek_krav_rok,
----		vek_1_otel,
----		medziobdobie,
----		porLakt,
----		tel_nar,
----		tel_mrt_nar,
----		tel_zmetanie,
----		dni_zp120,
----		dni_zp210,
----		dni_zp365,
----		dni_zp500,
----		rok_tel_nar,
----		rok_tel_mrt_nar,
----		rok_tel_zmetanie,
----		CUK_medziobodie,
----		CUK_tel_nar,--( CUK_ZN_potomok0,
----		CUK_tel_mrt_nar,
----		CUK_tel_zmetanie,
----		CUK_120dni,
----		CUK_210dni,
----		CUK_365dni,
----		CUK_500dni,
----		mesiac,
----		rok, 
----		generovane,
----		standart_potomok_ZN 
----		 )

	select @CHOV as chov,
		count(distinct t.CISKRAVY) as krav_spolu,
		(select SUM(case when znak_vyr = 'V' then 1 else 0 end)from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac) as krav_vyr,
		
		(select SUM(case when krav_dniodot > 420 then 1 else 0 end) from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac and DOVVYR is null and DATVYR is null) as Nad420odOtel,
				
		cast(round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE()))*1.0/365), 2) as decimal(9, 2)) as vek_krav_rok,
		
		(select (cast(cast(round((AVG(vek_krav_vdnoch * 1.00)/30.42), 0) as int) as varchar) +' / '+ cast(cast(ROUND((AVG(vek_krav_vdnoch * 1.00) % 30.42), 0) as int) as varchar))
						from CR_KUMP_CHK_MES_1 t where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac	and krav_porlakt=1 and DOVVYR is null and DATVYR is null) as vek_1_otel,
		 cast(avg(kravy.mesiac_medziobd) as varchar(5)) as medziobdobie,
		 round(AVG(krav_porlakt*1.00), 1)as porlakt,
		 (select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV 
																		and k.mesiac=@mesiac and k.rok=@rok
																		and datepart(year,k.tel_datnar) = @rok
																		and datepart(MONTH,k.tel_datnar) = @mesiac
																		and k.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) 
																										as tel_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
																and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('16','61','62','63')) as tel_mrt_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 												and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('71'))				as tel_zmetanie,
		(select cast(AVG(k.tel_zp120) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='120'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp120,
	
		(select cast(AVG(k.tel_zp210) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='210'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp210,
		
		(select cast(AVG(k.tel_zp365) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='365'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp365,
		
		(select cast(AVG(k.tel_zp500) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='500'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp500,
		
		cast(sum(case when t.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_nar, 
		cast(sum(case when t.tel_pohl in('16','61','62','63')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_mrt_nar, 
		
		cast(sum(case when t.tel_pohl='71'
								and datepart(year,t.tel_datnar) = @rok
								and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_zmetanie,
	
		sum(kravy.CUK_medziobd_pocetDni)/sum (kravy.CUK_medziobd_pocLakt) as CUK_medziobodie,
		
		cast((select distinct count(t1.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
											left outer join CM_Telata as t1 on t1.MATKA=k.CISKRAVY  
													where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok
														and k.DOVVYR is null and k.DATVYR is null
														and t1.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as varchar)
																										as  CUK_tel_nar,--CUK_ZN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('16','61','62','63')) as varchar)
																				as CUK_tel_mrt_nar, --CUK_MN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('71')) as varchar)
																				 as CUK_tel_zmetanie, --CUK_ZM_potomok
			--cast(round(sum(v.vaha_120 * 1.00)/count(v.vaha_120 * 1.00), 2) as decimal(9, 2)) as CUK_120dni,
			--cast(round(sum(v.vaha_210 * 1.00)/count(v.vaha_210 * 1.00), 2) as decimal(9, 2)) as CUK_210dni,
			--cast(round(sum(v.vaha_365 * 1.00)/count(v.vaha_365 * 1.00), 2) as decimal(9, 2)) as CUK_365dni,
			--cast(round(sum(v.vaha_500 * 1.00)/count(v.vaha_500 * 1.00), 2) as decimal(9, 2)) as CUK_500dni,
			@CUK120D as CUK_120dni,
			@CUK210D as CUK_210dni,
			@CUK365D as CUK_365dni,
			@CUK500D as CUK_500dni,

		 @mesiac, 
		 @rok, 
		 GETDATE() as generovane,
		 (select sum(potomok_standart)/380 from @standartPotomok) as standart_potomok_ZN
		
 from CR_KUMP_CHK_MES_1 as t 
 --left outer join @vahy_kravy as v on v.CISKRAVY = t.ciskravy
 left outer join @kravy as kravy on kravy.CISKRAVY = t.ciskravy
 where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac and t.DOVVYR is null and t.DATVYR is null

 end

 --exec [CR_KUMP_kravy_1_sumar_Opr] '106704701',2017,12
go

CREATE PROCEDURE [dbo].[Roc_MLHD_21_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN
delete from Roc_MLHD_Tab_21A where rok=Datepart(year,@DatumOd)
DECLARE @counter INT
DECLARE @chov VARCHAR(3)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(KRAJ + OKRES) FROM NM_CHOVMAS 
						where (ZRUS is null or(ZRUS is not null and datumZrusenia > @datumOd))
						and TYPZV = 1

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_21 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


END

go

-- =============================================

-- =============================================
CREATE PROCEDURE [dbo].[CR_TMHD_sumar_1]
	@chov varchar(9) = '',
	@rok int,
	@mesiac int
	
	as
	begin 

	select np.NAZOV as podnik, nch.NAZOV as NazovChov,
	t.ID, t.vek,t.pocet, t.hmotnost,t.dennpriras, t.zivpriras , t.chovatel ,t.pocetA ,t.percentA ,t.hmotnostA ,t.pocetB ,t.percentB ,t.hmotnostB ,t.pocetC ,t.percentC ,t.hmotnostC, t.rok, t.mesiac, t.generovane
	
	 from CR_TMHD_sumar_mesiac as t
	
		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(t.chovatel,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = t.chovatel
		where (t.chovatel like @chov+'%' or @chov is null) and t.rok = @rok and t.mesiac = @mesiac
	
		



END

go


	CREATE PROCEDURE dbo.sp_helpdiagrams
	(
		@diagramname sysname = NULL,
		@owner_id int = NULL
	)
	WITH EXECUTE AS N'dbo'
	AS
	BEGIN
		DECLARE @user sysname
		DECLARE @dboLogin bit
		EXECUTE AS CALLER;
			SET @user = USER_NAME();
			SET @dboLogin = CONVERT(bit,IS_MEMBER('db_owner'));
		REVERT;
		SELECT
			[Database] = DB_NAME(),
			[Name] = name,
			[ID] = diagram_id,
			[Owner] = USER_NAME(principal_id),
			[OwnerID] = principal_id
		FROM
			sysdiagrams
		WHERE
			(@dboLogin = 1 OR USER_NAME(principal_id) = @user) AND
			(@diagramname IS NULL OR name = @diagramname) AND
			(@owner_id IS NULL OR principal_id = @owner_id)
		ORDER BY
			4, 5, 1
	END

  
go

CREATE PROCEDURE [dbo].[Roc_MLHD_22_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN
delete from Roc_MLHD_Tab_22A where rok = datepart(year,@DatumOd)
DECLARE @counter INT
DECLARE @chov VARCHAR(6)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT ch.kraj+ch.okres+ch.podnik  
		FROM NM_CHOVMAS as ch
		left outer join  NM_HDDETAIL as n on n.kraj+n.okres+n.podnik =ch.kraj+ch.okres+ch.podnik 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) not in ('7','8','9')
			and ch.chov not in('010','699')
			  and (((NOT(SPVYKON IN ('0', '4', '5'))) AND (PRIZNAK = '01') AND TECHUSMD = '00') or (PRIZNAK='99' and SPVYKON<>'0'))
				--(KRAJ + OKRES + PODNIK) FROM NM_CHOVMAS 
				--		where (ZRUS is null or(ZRUS is not null and datumZrusenia > @datumOd))
				--		and TYPZV = 1

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_22 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	/*****vymazanie nullovych chovov***/
	delete from Roc_MLHD_Tab_22A 
	where rok = datepart(year,@DatumOd)
		and stpec_7 is null and stpec_8 is null and stpec_9 is null and stpec_10 is null
		and stpec_11 is null and stpec_12 is null and stpec_13 is null and stpec_14Den is null 
		and stpec_14Mesiac is null and stpec_15 is null and stpec_16 is null and stpec_17 is null 
		and stpec_18 is null and stpec_19 is null and stpec_20 is null and stpec_21 is null 
		and stpec_22 is null and stpec_23 is null and stpec_24 is null and stpec_25 is null 
		and stpec_26 is null and stpec_27 is null and stpec_28 is null and stpec_29 is null 
		and stlpec_6c not in ('199','999')
		and stpec_6 <> 'Chov spolu'

	
	delete from Roc_MLHD_Tab_22A 
		where rok = datepart(year,@DatumOd)
				and kraj + okres + PODNIK in (select t.podnik 
													from ( select kraj + okres + PODNIK as podnik , count(stlpec_6c) as pocet from Roc_MLHD_Tab_22A 
															where rok = 2018 
															group by kraj + okres + PODNIK 
															) t where t.pocet=2	)


END

go

-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 26.09.2012
-- Description:	Prepocet laktacie
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_laktacie_migr] 
	@V_CISKRAVY varchar(14), 
	@V_DATOTEL date, 	
	@V_PORPREBLAK varchar(2),
	@N_DATUKNORL date output, 
	@N_LAKTDNI [decimal](6,2) output,
	@N_LAKDNIN [decimal](6,2) output,
	@N_MLIEKCEL [decimal](7,2) output,
	@N_MLIEKNOR [decimal](7,2) output,
	@N_TUKCEL [decimal](6,2) output,
	@N_TUKNOR [decimal](6,2) output,
	@N_BIELKCEL [decimal](6,2) output,
	@N_BIELKNOR [decimal](6,2) output,
	@N_LAKTOZAC [decimal](6,2) output,
	@N_LAKTOZAN [decimal](6,2) output,
	@N_INDPER [decimal](6,2) output,
	@N_BEZT [int] output,
	@N_MLIEKO100 [decimal](7,2) output,
	@N_TUK100 [decimal](6,2) output,
	@N_BIELK100 [decimal](6,2) output,
	@N_LAKT100 [decimal](6,2) output,
	@N_MLIEKO200 [decimal](7,2) output,
	@N_TUK200 [decimal](6,2) output,
	@N_BIELK200 [decimal](6,2) output,
    @N_LAKT200 [decimal](6,2) output,
	@NenormalLakt bit output    
	
AS
BEGIN
    -- premenne pre vetu do kontrol (CM_Kontroly) + premenne dat z vety kontrol (pre update) + premenne kontrol pre vypocet vety do Naplaku
	declare	@K_T_CISKRAVY varchar (14)
	declare	@K_T_DATKONTR date 
	declare	@K_T_ZNKONTR varchar (1) 
	declare	@K_T_DENDOBA varchar (1) 
	declare	@K_T_INTERVAL varchar (1) 
	declare	@K_T_CISCHOVU varchar (9) 
	declare	@K_T_SKUPINA varchar (2) 
	declare	@K_T_PREPOCET bit  
	declare	@K_T_MLIEKO [decimal](7,2)  
	declare	@K_T_MLIEKPR [decimal](7,2)  
	declare	@K_T_PRT [decimal](6,2)  
	declare	@K_T_PERCTUKU [decimal](5,2)  
	declare	@K_T_PERCBIELK [decimal](5,2)  
	declare	@K_T_PERCLAKTOZ [decimal](5,2)  
	declare	@K_T_BUNECELEM [decimal](7,2)  
	declare	@K_T_LAKTDNI [decimal](6,2)  
	declare	@K_T_PORPREBLAK varchar (2) 
	
	declare @timer datetime = GETDATE()	
	
    -- premenne pre vetu do naplaku (CM_Krava)
	declare @KR_DOVVYR varchar(2)
	declare @KR_DATVYR date
	declare @KR_DATPOSKONT date
    declare @KR_POCVSETLAK int

	declare @counter1 int
	declare @KonPred date
	declare @KonZa date
	declare @PomMliekPr [decimal](7,2)
	declare @MlPred [decimal](7,2)
	declare @MlZa [decimal](7,2)
	declare @TukPred [decimal](6,2)
	declare @TukZa [decimal](6,2)
	declare @BielPred [decimal](6,2)
	declare @BielZa [decimal](6,2)
	declare @LaktPred [decimal](6,2)
	declare @LaktZa [decimal](6,2)
	declare @PrepocetDatum date
	declare @PrepocetMlieko [decimal](7,1)
	declare @PrepocetTuk [decimal](6,2)
	declare @PrepocetBielk [decimal](6,2)
	declare @PrepocetLakt [decimal](6,2)	
	declare @PocetPrepoctov int	
	declare @PrvyTuk bit
	declare @BezT int
	declare @DvojDopocet int
	declare @K_T_LAKTDNI_Pred [decimal](6,2)
	declare @K_T_LAKTDNI_Po [decimal](6,2)
	declare @KontrVypMl [decimal](7,2)
	declare @PRAC_INTERVAL [decimal](7,2)
	declare @SUM_INTERVAL [decimal](7,2)	
	declare @POROV_DATKONTR date
	declare @POROV_LAKTDNI [decimal](7,2)
	declare	@ChovPred varchar(9)
	declare @SkupinaPred varchar(2)
	
	declare	@CISKRAVY varchar (14)
	declare	@DATKONTR date 
	declare	@ZNKONTR varchar (1) 
	declare	@DENDOBA varchar (1) 
	declare	@INTERVAL varchar (1) 
	declare	@CISCHOVU varchar (9) 
	declare	@SKUPINA varchar (2) 
	declare	@PREPOCET bit  
	declare	@MLIEKO [decimal](7,2) 
	declare	@MLIEKPR [decimal](7,2)
	declare	@PRT [decimal](6,2)  
	declare	@PERCTUKU [decimal](5,2)
	declare	@PERCBIELK [decimal](5,2)
	declare	@PERCLAKTOZ [decimal](5,2)
	declare	@BUNECELEM [decimal](7,2)
	declare	@LAKTDNI [decimal](6,2)
	declare	@PORPREBLAK varchar (2)
	declare	@LAKTDNI_PRED [decimal](6,2)

	declare @D [decimal](6,2)
	declare @DPr [decimal](6,2)
	declare @X [decimal](6,2) 
	declare @D1 [decimal](6,2)
	declare @D2 [decimal](6,2)

	declare @PocKonNulTukPrep int
	declare @PredBolPrepocet int

	declare @pocet int = 0
	declare @spocet int
		
	-- vynulovanie premennych
	set @NenormalLakt = 0	
			
	----------------------------------	
	-- DOPOCET T,B,L U KONTROL

	-- vyber rozborov pre danu kravu a laktaciu a ich zotriedenie podla datumu vzostupne
	DECLARE db_cursor CURSOR FOR  
	select DATKONTR, MLIEKPR, PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, LAKTDNI from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK
	--and LAKTDNI <= 305 
	order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @LAKTDNI   

	set @PrvyTuk = 0
	set @KonPred = '1900-01-01'
	set @KonZa = '1900-01-02'
	set @BezT = 0
	set @DvojDopocet = 0
	set @PocKonNulTukPrep = 0
	
	print 'C_aktual_prep_laktacie ' + @V_CISKRAVY

	-- prva kontrola do 68 dni od otelenia, inac nenormalna laktacia
	if DATEDIFF(day, @V_DATOTEL, @DATKONTR) > 68
	--if DATEDIFF(day, @V_DATOTEL, @DATKONTR) > 60 -- oprava 20160518
		set @NenormalLakt = 1	
	
	WHILE @@FETCH_STATUS = 0 
	begin
		if (@PRT > 0)
			if (@LAKTDNI < 305)
				set @BezT = @BezT + 1	
		-- kontrola ma tuk
		if (@PRT < 2)
		begin
			-- nastav prvu kontrolu s nenulovym tukom
			if @KonZa > @KonPred
			begin
				select @KonPred=@DATKONTR, @MlPred=@MLIEKPR, @TukPred=@PERCTUKU, @BielPred=@PERCBIELK, @LaktPred=@PERCLAKTOZ						
				-- prve kontroly s nulovym tukom
				if @PrvyTuk = 0
					set @PrvyTuk = 1
			end else
			-- nastav druhu kontrolu s nenulovym tukom				
			begin
				select @KonZa=@DATKONTR, @MlZa=@MLIEKPR, @TukZa=@PERCTUKU, @BielZa=@PERCBIELK, @LaktZa=@PERCLAKTOZ							
				if @PocKonNulTukPrep > 0
				begin
					-- dopocty pre kontroly bez tuku medzi kontrolami s tukom
					set @D = DATEDIFF(day, @KonPred, @KonZa) 
					set @DPr = @D / 2
					set @X = @D - @DPR * 2
					set @D1 = @DPr + @X
					set @D2 = @DPr
					update CM_Kontroly set
						PERCTUKU = convert(numeric(5,2), nullif((isnull(@TukPred, 0)*@D1 + isnull(@TukZa, 0)*@D2)/(@D1 + @D2), 0)),
						PERCBIELK = convert(numeric(5,2), nullif((isnull(@BielPred, 0)*@D1 + isnull(@BielZa, 0)*@D2)/(@D1 + @D2), 0)),
						PERCLAKTOZ = convert(numeric(5,2), nullif((isnull(@LaktPred, 0)*@D1 + isnull(@LaktZa, 0)*@D2)/(@D1 + @D2), 0)),
						PRT = 1
					where CISKRAVY = @V_CISKRAVY and DATKONTR > @KonPred and DATKONTR < @KonZa and PORPREBLAK = @V_PORPREBLAK
						and LAKTDNI < 305 -- prepocitavame len to 305 dni 
					set @PocKonNulTukPrep = 0	
				end
				
				set @KonPred = @KonZa
				--set @MlPred = @MlZa
				set @TukPred = @TukZa
				set @BielPred = @BielZa
				set @LaktPred = @LaktZa
			end
		end else
		-- kontrola nema hlaseny tuk
		begin		
			if (@PrvyTuk = 1)
				set @PocKonNulTukPrep = @PocKonNulTukPrep + 1				
		end
	
		FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @LAKTDNI 		
	end
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 	
	
	update CM_Kontroly set PRT = 2
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK and PRT > 1

	-- vacsi pocet dopoctov - nenormalna laktacia
	if @BezT > 5 
		set @NenormalLakt = 1		
	
---------------------------	
	-- PREPOCET KONTROL
	set @pocet = 0
	set @spocet = (select count(*) from CM_Kontroly where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK)

	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne
	DECLARE db_cursor CURSOR FOR  
	select DATKONTR, MLIEKPR, PERCTUKU, PERCBIELK, PERCLAKTOZ, CISCHOVU, SKUPINA from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @CISCHOVU, @SKUPINA

	WHILE @@FETCH_STATUS = 0 
	begin
	    set @pocet = @pocet + 1
		-- kontrola pred		
		select @ChovPred=@CISCHOVU, @SkupinaPred=@SKUPINA, @KonPred=@DATKONTR, @MlPred=@MLIEKPR, @TukPred=@PERCTUKU, @BielPred=@PERCBIELK, @LaktPred=@PERCLAKTOZ 
		-- kontrola za
		FETCH NEXT FROM db_cursor INTO @DATKONTR, @MLIEKPR, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @CISCHOVU, @SKUPINA 
		select @KonZa=@DATKONTR, @MlZa=@MLIEKPR, @TukZa=@PERCTUKU, @BielZa=@PERCBIELK, @LaktZa=@PERCLAKTOZ 
		
		-- treba prepocet?
		if DATEDIFF(day, @KonPred, @KonZa) > 50 
		begin
			if (@pocet = @spocet - 1)
			begin

				set @D = DATEDIFF(day, @KonPred, @KonZa) 
				set @DPr = @D / 2
				set @X = @D - @DPR * 2
				set @D1 = @DPr + @X
				set @D2 = @DPr

				set @PrepocetMlieko = nullif((@MlPred*@D1 + @MlZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetTuk = nullif((@TukPred*@D1 + @TukZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetBielk =  nullif((@BielPred*@D1 + @BielZa*@D2)/(@D1 + @D2), 0)
				set @PrepocetLakt = nullif((@LaktPred*@D1 + @LaktZa*@D2)/(@D1 + @D2), 0)


				-- treba prave 1 prepocet?
				if DATEDIFF(day, @KonPred, @KonZa) <= 75
				begin
					-- vypocet poloziek pre prepocet
					set @PrepocetDatum = DATEADD(day, CEILING(DATEDIFF(day, @KonPred, @KonZa)/2.0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa
	

				end else
				-- treba 2 alebo viac prepoctov
				begin
					-- vypocet poloziek pre 1. prepocet
					set @PrepocetDatum = DATEADD(day, ROUND(DATEDIFF(day, @KonPred, @KonZa)/3.0, 0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa					
		
					-- vypocet poloziek pre 2. prepocet
					set @PrepocetDatum = DATEADD(day, ROUND(2*DATEDIFF(day, @KonPred, @KonZa)/3.0, 0), @KonPred)

					if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) >= 305
					begin
						-- nad 305 dni uz nedopocitavame zlozky T,B,L
						set @PrepocetTuk = NULL
						set @PrepocetBielk = NULL
						set @PrepocetLakt = NULL
					end

					-- vlozenie prepoctu do kontrol
					insert CM_Kontroly (CISKRAVY,DATKONTR,CISCHOVU,SKUPINA,PREPOCET,MLIEKPR,PRT,
							PERCTUKU,PERCBIELK,PERCLAKTOZ,LAKTDNI,PORPREBLAK,PLATNOST)
					select TOP 1 CISKRAVY, @PrepocetDatum, CISCHOVU, SKUPINA, 1, @PrepocetMlieko, PRT,
							@PrepocetTuk,@PrepocetBielk,@PrepocetLakt, DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), PORPREBLAK, PLATNOST	  
						from CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @KonZa		

				end		
			end	
		end
	end
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 			

-----------------------------------------------		
	-- TVORBA vety do NAPLAK-u (CM_Naplak)
	
	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne	
	DECLARE db_cursor CURSOR FOR  
	select CISKRAVY, DATKONTR, ZNKONTR, DENDOBA, INTERVAL, CISCHOVU, SKUPINA, PREPOCET, MLIEKO, MLIEKPR, 
		   PRT, PERCTUKU, PERCBIELK, PERCLAKTOZ, BUNECELEM, LAKTDNI, PORPREBLAK from CM_Kontroly 
	where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc  

	OPEN db_cursor   
	FETCH NEXT FROM db_cursor INTO @CISKRAVY, @DATKONTR, @ZNKONTR, @DENDOBA, @INTERVAL, @CISCHOVU, @SKUPINA, @PREPOCET, @MLIEKO, @MLIEKPR, 
								   @PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @BUNECELEM, @LAKTDNI, @PORPREBLAK
	
	set @counter1 = (select 1)
	if (@PREPOCET = 1)
	begin
		set @PocetPrepoctov = 1
		set @PredBolPrepocet = 1
	end else
	begin
		set @PredBolPrepocet = 0	
		set @PocetPrepoctov = 0
	end

	-- vynulovanie hodnot
	set @N_MLIEKCEL	= 0
	set @N_BIELKCEL	= 0
	set @N_TUKCEL	= 0
	set @N_LAKTOZAC	= 0		
	set @SUM_INTERVAL = 0		
	
	-- cyklus cez vsetky kontroly danej kravy
	while @@FETCH_STATUS = 0 
	begin
		-- nacitanie kontroly
		select @K_T_CISKRAVY =		@CISKRAVY,
			   @K_T_DATKONTR =		@DATKONTR,
			   @K_T_ZNKONTR =		@ZNKONTR,
			   @K_T_DENDOBA =		@DENDOBA, 
			   @K_T_INTERVAL =		@INTERVAL,
			   @K_T_CISCHOVU =		@CISCHOVU,
			   @K_T_SKUPINA =		@SKUPINA, 
			   @K_T_PREPOCET =		@PREPOCET,
			   @K_T_MLIEKO =		isnull(@MLIEKO,0),
			   @K_T_MLIEKPR =		isnull(@MLIEKPR,0),
			   @K_T_PRT =			@PRT,
			   @K_T_PERCTUKU =		isnull(@PERCTUKU,0),
			   @K_T_PERCBIELK =		isnull(@PERCBIELK,0),
			   @K_T_PERCLAKTOZ =	isnull(@PERCLAKTOZ,0),
			   @K_T_BUNECELEM =		isnull(@BUNECELEM,0), 
			   @K_T_LAKTDNI =		@LAKTDNI,
			   @K_T_PORPREBLAK =	@PORPREBLAK
		
		-- riesenie prvej kontroly
		if @counter1 = 1
			set @K_T_LAKTDNI_Pred = (-@K_T_LAKTDNI)
		else
			set @K_T_LAKTDNI_Pred = @LAKTDNI_PRED
						
			
		set @LAKTDNI_PRED = @LAKTDNI			
		
		FETCH NEXT FROM db_cursor INTO @CISKRAVY, @DATKONTR, @ZNKONTR, @DENDOBA, @INTERVAL, @CISCHOVU, @SKUPINA, @PREPOCET, @MLIEKO, @MLIEKPR, 
										@PRT, @PERCTUKU, @PERCBIELK, @PERCLAKTOZ, @BUNECELEM, @LAKTDNI, @PORPREBLAK
											
		if (@PREPOCET = 1 and @LAKTDNI < 305)
		begin
			if @PredBolPrepocet = 1
				set @NenormalLakt = 1

			set @PocetPrepoctov =  @PocetPrepoctov + 1
			set @PredBolPrepocet = 1
		end
		else
			set @PredBolPrepocet = 0

		-- riesenie poslednej kontroly
		if @@FETCH_STATUS = -1
		begin
--		    if @O_DATVYR is not null
--			-- bolo pridane pre dopocet v pripade, ze ide o vyradenie z otelenia		    
--			begin
--				set @K_T_LAKTDNI_Po = @K_T_LAKTDNI + (2 * datediff(day, @K_T_DATKONTR, @O_DATVYR))
--				-- nastavenie laktacnych dni v CM_Naplak-u
--				set @N_LAKTDNI = @K_T_LAKTDNI + datediff(day, @K_T_DATKONTR, @O_DATVYR)
--			end else
--			begin
				set @K_T_LAKTDNI_Po = @K_T_LAKTDNI + 30
				-- nastavenie laktacnych dni v CM_Naplak-u
				set @N_LAKTDNI = @K_T_LAKTDNI + 15
--			end

			-- nastavenie datumu poslednej kontroly v CM_Krava
			set @KR_DATPOSKONT = @K_T_DATKONTR
		end	else
			set @K_T_LAKTDNI_Po = @LAKTDNI
		
		-- vypocet intervalu dni
		set @PRAC_INTERVAL = ROUND((@K_T_LAKTDNI - @K_T_LAKTDNI_Pred)/2.0, 0) + FLOOR((@K_T_LAKTDNI_Po - @K_T_LAKTDNI)/2.0) 
		set @SUM_INTERVAL = @SUM_INTERVAL + @PRAC_INTERVAL
		
		if @counter1 > 1
		begin
			-- nastavenie poloziek vety do CM_Naplak-u
			if @SUM_INTERVAL >= 100 and @SUM_INTERVAL - @PRAC_INTERVAL < 100
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 100))
				set @N_MLIEKO100 = @N_MLIEKCEL + @KontrVypMl
				set @N_TUK100 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELK100 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKT100 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
				set @N_LAKDNIN = 100
				-- pridanie dat zo 100 dnoveho intervalu do normovanych zloziek
				set @N_MLIEKNOR = @N_MLIEKO100
				set @N_TUKNOR =	@N_TUK100
				set @N_BIELKNOR = @N_BIELK100 
				set @N_LAKTOZAN = @N_LAKT100
			end else
			if @SUM_INTERVAL >= 200 and @SUM_INTERVAL - @PRAC_INTERVAL < 200
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 200))
				set @N_MLIEKO200 = @N_MLIEKCEL + @KontrVypMl
				set @N_TUK200 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELK200 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKT200 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
				set @N_LAKDNIN = 200
				-- index perzistencie
				set @N_INDPER = ((@N_MLIEKO200 - @N_MLIEKO100) * 100) / nullif(@N_MLIEKO100, 0)
				-- pridanie dat z 200 dnoveho intervalu do normovanych zloziek
				set @N_MLIEKNOR = @N_MLIEKO200
				set @N_TUKNOR =	@N_TUK200
				set @N_BIELKNOR = @N_BIELK200 
				set @N_LAKTOZAN = @N_LAKT200
			end else
			if @SUM_INTERVAL >= 305 and @SUM_INTERVAL - @PRAC_INTERVAL < 305
			begin
				set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 305))

				-- posun o 15 dni skor
				set @N_DATUKNORL = DATEADD(day, 305, (DATEADD(day, -(@K_T_LAKTDNI + 15), @K_T_DATKONTR)))
				--set @N_DATUKNORL = DATEADD(day, 305, (DATEADD(day, -@K_T_LAKTDNI, @K_T_DATKONTR)))

				set @N_LAKDNIN = 305
				set @N_MLIEKNOR = @N_MLIEKCEL + @KontrVypMl
				set @N_TUKNOR =	@N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100.0)
				set @N_BIELKNOR = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100.0)
				set @N_LAKTOZAN = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100.0)
			end
		end

		-- vypocet kumulativnych hodnot
		set @KontrVypMl = @K_T_MLIEKPR * @PRAC_INTERVAL
		
		set @N_MLIEKCEL	= @N_MLIEKCEL + @KontrVypMl
		set @N_BIELKCEL	= @N_BIELKCEL + @K_T_PERCBIELK * @KontrVypMl/100.0
		set @N_TUKCEL	= @N_TUKCEL + @K_T_PERCTUKU * @KontrVypMl/100.0
		set @N_LAKTOZAC	= @N_LAKTOZAC + @K_T_PERCLAKTOZ * @KontrVypMl/100.0	
		
		set @counter1 = @counter1 + 1
	-- koniec cyklu
	end			
	
	CLOSE db_cursor   
	DEALLOCATE db_cursor 		
	
	-- vacsi pocet prepoctov - nenormalna laktacia
	if @PocetPrepoctov > 2 
		set @NenormalLakt = 1		

	set @N_BEZT = @BezT
end
go


	CREATE PROCEDURE dbo.sp_helpdiagramdefinition
	(
		@diagramname 	sysname,
		@owner_id	int	= null 		
	)
	WITH EXECUTE AS N'dbo'
	AS
	BEGIN
		set nocount on

		declare @theId 		int
		declare @IsDbo 		int
		declare @DiagId		int
		declare @UIDFound	int
	
		if(@diagramname is null)
		begin
			RAISERROR (N'E_INVALIDARG', 16, 1);
			return -1
		end
	
		execute as caller;
		select @theId = DATABASE_PRINCIPAL_ID();
		select @IsDbo = IS_MEMBER(N'db_owner');
		if(@owner_id is null)
			select @owner_id = @theId;
		revert; 
	
		select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname;
		if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId ))
		begin
			RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1);
			return -3
		end

		select version, definition FROM dbo.sysdiagrams where diagram_id = @DiagId ; 
		return 0
	END

  
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
Create procedure [dbo].[CR_ZostavaLaktacie_zMirkadb]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 
/*
declare @chov varchar(9) = '207527051',--'1',	--'102501011',
	@datumOd date = '2016-12-01',
	@datumDo date ='2017-01-01',
	@region varchar(2) = null,
	@plem varchar(10) = null
*/
Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
	  [MLIEKCEL][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
) --ON [PRIMARY]

declare @kravy table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	ciskravy varchar(14),
	PORPREBLAK int
	--[PocZapojL1] int NULL
)

	 
if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''



			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.kraj = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.okres = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.podnik = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.chovatel = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else 
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

	/* upravene 6.11.2017 */

		----SELECT
 	----		 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
		----	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		----	 DOVVYR, DATVYR,
		----	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
		----				else null end)as EkoChov
		---- FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
		----	left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		---- where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		----	--and lakt.kraj = @chov			
		----	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		----		or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
		----	and eko.ZRUS is null AND eko.TYPZV='1'
		----	and (PLEM=@plem or @plem is null)
	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 	 

 end
 ELSE
 begin 
	insert into @Laktacie
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov

	 FROM NC_OKRES as reg 
	 left outer join dbo.View_CP_LaktaciePreZostavy as Lakt on ((reg.KRAJ + reg.OKRES)= lakt.okres ) --substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	where 
	(reg.REGION=@region or @region is null) 
	--and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (PLEM=@plem or @plem is null)
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		--and eko.ZRUS is null AND eko.TYPZV='1'
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

	Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' --and k.PORPREBLAK ='1'
		and (reg.REGION=@region or @region is null)
end




declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)
	

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		null as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k
	 where
		k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS
		-----,case when @plem is not null then pl.TYPS end 


--select * from @PocZapojL1 
declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	where k.PORPREBLAK >='2' 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojLCelk
	from @kravy as k 
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	-----[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----	case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
----	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	null as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
					----case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	 ----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	---,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----, l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV



------insert dbo.CR_LaktacneZostavy 
------	(
------	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

------	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
------	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

------	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

------	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
------	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
------	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
------	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
------	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
------	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

------	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
------	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

------	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
------	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
------	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
------	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
------	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	----(Select distinct case when @chov is null and @region is null then ('SR') else
	----case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))---- and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null))----and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null))----and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null))----and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null))----and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null))----and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null))----and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null))----and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null))----and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16.10.2014>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BahPlem] 
(	

	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.plem,
REPLACE (SUBSTRING(b.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(b.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(b.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(b.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(1) AS pocet
FROM dbo.SM_BAHNICA b  LEFT OUTER JOIN dbo.SC_PodKrvi k
 on SUBSTRING(b.plem,9,2) = k.CISKOD
WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado = @chovatel)
GROUP BY b.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 03.07.2014
-- Last update: 03.07.2014
-- Description:	Prepocet koeficientu pribuznosti pre dva jedince
-- Input: otec, matka
-- Output: Koeficient
-- =============================================
create FUNCTION [dbo].[Pribuznost_prepocet_priparovanieKoef2] (@otec as varchar(14), @matka as varchar(14)) RETURNS FLOAT
    
AS
BEGIN

/*predpriprava - ak su rodokmene otca s matkou uplne odlisne, vrat koeficient 0,
tym padom odpadne pocitanie koeficientu pribuznosti*/
declare @pocet_zhodnych int;
select @pocet_zhodnych = count(rodokmen) from dbo.ZistiRodokmenTable(@matka) where rodokmen 
in(select rodokmen from dbo.ZistiRodokmenTable(@otec))
if @pocet_zhodnych = 0 return 0;
/*koniec predpripravy*/

	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	
	set @pribuznost=0;
	set @pribuz=0;
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @pribuz=@pribuz+(SELECT POWER(0.50000,(@j+@k+1)));
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @pribuz=@pribuz+(SELECT POWER(0.50000,(@j+@k+1)));
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k=2 or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			return @pribuz;
END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 12.02.2016
-- Update:		08.03.2016 - Doplnene SpojChovy, fix nezaradene barany a bahnice
--				27.02.2018 - fix rok Pripustenia - 2017/18 - sa berie 2018 (ako to bolo predtym???15/16 - 15?)
-- upd/fix:		07.03.2018 - pridane stlpce tab. KonZapMen ids a idm
-- Description:	Doplnenie baranov do Kontrolnych Zapisnikov z Priparovacieho planu
-- =============================================
CREATE PROCEDURE [dbo].[S_Doplnenie_baranov_s_PripPlan]
(
	@KROKR varchar(3),
	@PODNIK varchar(3),
	@STADO varchar(3),
	@RokEv1 varchar(4),
	@RokEv2 varchar(2),
	@login varchar(40)
)
AS
BEGIN
	
/*
truncate table SM_KonZap
truncate table SM_KonZapBaran
truncate table SM_KonZapPotomok
*/
/*
delete from SM_KonZap
where KROKR = @KROKR
and PODNIK = @PODNIK
and STADO = @STADO
and ROKEV1 = @RokEv1
and ROKEV2 = @RokEv2
*/
/*
select * from SM_KonZap
where KROKR = @KROKR
and PODNIK = @PODNIK
and STADO = @STADO
and ROKEV1 = @RokEv1
and ROKEV2 = @RokEv1
and id in (select ID_KonZap from SM_KonZapPotomok)
/*
select KROKR, PODNIK, STADO, BARCIS1, BJCCEHZ1, BZVSTAT1, CISBAR1
from SM_PripPlan
where KROKR = @KROKR
and PODNIK = @PODNIK
and STADO = @STADO
and ROKPRIP = @RokEv1
group by  BJCCEHZ1, KROKR, PODNIK, STADO, BARCIS1, BZVSTAT1, CISBAR1
*/
--select * from SM_KonZapPotomok

select * from SM_KonZapPotomok
where ID_KonZap = (select top 1 id from SM_KonZap
where 
KROKR = @KROKR
and podnik = @podnik
and stado = @STADO

and 

ROKEV1 = @RokEv1
and ROKEV2 = @RokEv2
)



/*
delete from SM_KonZapPotomok
where ID_KonZap = (select top 1 id from SM_KonZap
where 
KROKR = @KROKR
and podnik = @podnik
and stado = @STADO
and 

ROKEV1 = @RokEv1
and ROKEV2 = @RokEv2
)
*/
/*
delete from SM_KonZap
where KROKR = @KROKR
and podnik = @podnik
and stado = @STADO
*/

/*
select cisbar1 from [SM_PripPlan]
--where cisbar1 = 0
group by cisbar1
*/
--where KROKR = @KROKR
--and podnik = @podnik
--and stado = @STADO


--select * from SM_KonZapBaran

--select * from SM_baran where JCCEHZ = '000084305031'
*/
/*

declare @pocetPP int;
declare @pocetKZ int;

set @pocetPP = (select count(*) from SM_PripPlan
					where KROKR = @KROKR
					and PODNIK = @PODNIK
					and STADO = @STADO
					and ROKPRIP = @RokEv1)

set @pocetKZ = (select count(*) from SM_KonZap
					where KROKR = @KROKR
					and PODNIK = @PODNIK
					and STADO = @STADO
					and ROKEV1 = @RokEv1
					and ROKEV2 = @RokEv2)

*/

--	drop table #NezaradeneBahnice
--	drop table #NezaradeneBarany

CREATE TABLE #NezaradeneBahnice
	(	
		[LUC] [varchar](5) NULL,
		[PUC] [varchar](5) NULL,
		[CEHZ] [varchar](14) NULL,
		[Chov] [varchar](9) NULL,
		--[BarCEHZ] [varchar](14) NULL,
		[BahCis] [varchar](10) NULL,
		--[BarCis] [varchar](10) NULL
		
	)


	CREATE TABLE #NezaradeneBarany
	(	
		[LUC] [varchar](5) NULL,
		[PUC] [varchar](5) NULL,
		[CEHZ] [varchar](14) NULL,
		[Chov] [varchar](9) NULL,
		--[BarCEHZ] [varchar](14) NULL,
		--[BahCis] [varchar](10) NULL,
		[BarCis] [varchar](10) NULL
		
	)



	CREATE TABLE #Zaradene
	(	
		--[LUC] [varchar](5) NULL,
		--[PUC] [varchar](5) NULL,
		--[CEHZ] [varchar](14) NULL,
		[Chov] [varchar](9) NULL,
		[BahCis] [varchar](10) NULL
	)




CREATE TABLE #SM_PripPlan(
	[KROKR] [varchar](3) NULL,
	[PODNIK] [varchar](3) NULL,
	[STADO] [varchar](3) NULL,
	[LUC] [varchar](5) NULL,
	[PUC] [varchar](5) NULL,
	[BAHCIS] [varchar](8) NULL,
	[ZVSTAT] [varchar](2) NULL,
	[JCCEHZ] [varchar](12) NULL,
	[ROKPRIP] [varchar](4) NULL,
	[CISBAR1] [varchar](3) NULL,
	[BKROKR1] [varchar](3) NULL,
	[BPODNIK1] [varchar](3) NULL,
	[BSTADO1] [varchar](3) NULL,
	[BLUC1] [varchar](5) NULL,
	[BPUC1] [varchar](5) NULL,
	[BARCIS1] [varchar](8) NULL,
	[BZVSTAT1] [varchar](2) NULL,
	[BJCCEHZ1] [varchar](12) NULL,
	[CISBAR2] [varchar](3) NULL,
	[BKROKR2] [varchar](3) NULL,
	[BPODNIK2] [varchar](3) NULL,
	[BSTADO2] [varchar](3) NULL,
	[BLUC2] [varchar](5) NULL,
	[BPUC2] [varchar](5) NULL,
	[BARCIS2] [varchar](8) NULL,
	[BZVSTAT2] [varchar](2) NULL,
	[BJCCEHZ2] [varchar](12) NULL
) ON [PRIMARY]
	
	

	-- truncate table #SM_PripPlan

	--declare @krokr varchar(256) = '505'
	--declare @podnik varchar(256) = '700'
	--declare @stado varchar(256) = '001'
	--declare @rokev1 varchar(256) = '2016'

	--	505	700	007
	
	--		select * from #SM_PripPlan pp 

	insert into #SM_PripPlan
	select * from SM_PripPlan pp
	where KROKR + PODNIK + STADO in (select spchov from SM_SpojChov where chov =  @KROKR + @PODNIK + @STADO)	
	and ROKPRIP = @RokEv1 + 1


	--update #SM_PripPlan
	--set BAHCIS = (
	--select bahcis from SM_BAHNICA b where b.JCCEHZ = #SM_PripPlan.JCCEHZ)
	--where bahcis = '00000000'


	insert into #NezaradeneBahnice
	select LUC, PUC, ZVSTAT + JCCEHZ as CEHZ, KROKR + PODNIK + STADO as chov,  BAHCIS
	from #SM_PripPlan pp
	where 
		 (bahcis not in (
		select bahcis
			from SM_Bahnica b
			where b.KROKR = pp.KROKR
				and b.PODNIK = pp.PODNIK
				and b.STADO = pp.STADO
												
				--and DATVYR is null and DOVOD = 0
		)
		or bahcis = '00000000')

/*
	Vyradenie nezaradenych baranov
	Baran je nezavisli na chove...
*/
	insert into #NezaradeneBarany
	select BLUC1, BPUC1, BZVSTAT1 + BJCCEHZ1 as CEHZ, BKROKR1 + BPODNIK1 + BSTADO1 as chov, BARCIS1
	from #SM_PripPlan pp
	where 
		 ( barcis1 not in (
			select  barcis
				from SM_BARAN b				
		)
		or barcis1 = '00000000')
/*
	Pokial nie su barany v KZB tak sa pridaju z PripPlanu
*/
--declare @krokr varchar(256) = '505'
--	declare @podnik varchar(256) = '700'
--	declare @stado varchar(256) = '001'
--declare @rokev1 varchar(455) = '2016'
--declare @rokev2 varchar(455) = '17'
--if (@pocetPP = 0)
--begin
	iNSERT INTO SM_KonZapBaran
		(
			KROKR, PODNIK, STADO, ROKEV1, ROKEV2, 
			BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM, IDM, IDS
		)
	--OUTPUT INSERTED.Barcis, inserted.BCEHZ
	SELECT 
		@KROKR, @PODNIK, @STADO, @RokEv1, @RokEv2, 
		case when BARCIS1 != 0 then BARCIS1
		else (select barcis from SM_Baran where JCCEHZ = BJCCEHZ1
		and ZVSTAT = BZVSTAT1) end 
		, CISBAR1, BKROKR1, BPODNIK1, BSTADO1, BLUC1, BPUC1, BZVSTAT1 + BJCCEHZ1,
		(select plem from SM_Baran where JCCEHZ = BJCCEHZ1 and ZVSTAT = BZVSTAT1) as BPLEM,		
		(select id from SM_KonZapMen where chov=pp.KROKR + pp.PODNIK + pp.STADO and rokev = @rokev1+@rokev2) as idm, 
		(select id from SM_KonZapMen where chov= @KROKR + @PODNIK + @STADO and rokev = @rokev1+@rokev2) as ids		

		/*(
		select count(*) from SM_KonZapBaran kzb where
			kzb.KROKR = KROKR
			and kzb.PODNIK = podnik
			and kzb.STADO = STADO
			and kzb.ROKEV1 = @RokEv1
			and kzb.ROKEV2 = @RokEv2		
		) + 1 as PORCIS	*/
	from #SM_PripPlan pp
	where 
		 BARCIS1 not in (select barcis from #NezaradeneBarany)
		--and barcis1 != '00000000'
		AND BARCIS1 NOT IN (select barcis from SM_KonZapBaran kz where KROKR + PODNIK + STADO = @KROKR + @PODNIK + @STADO
						and kz.ROKEV1 = @rokev1 --pp.ROKPRIP
						and kz.BARCIS = pp.BARCIS1)
	group by  BJCCEHZ1, BKROKR1, BPODNIK1, BSTADO1, BARCIS1, BZVSTAT1, CISBAR1, BLUC1, BPUC1
	--and BARCIS1 != 0
--end



/*
	Pokial nie su bahnice v KZ tak sa pridaju z PripPlanu
*/
--declare @login varchar(455) = 'a'
----declare @rokev1 varchar(455) = '2016'
----declare @rokev2 varchar(455) = '17'
----declare @krokr varchar(256) = '505'
----	declare @podnik varchar(256) = '549'
----	declare @stado varchar(256) = '530'
--declare @krokr varchar(256) = '505'
--	declare @podnik varchar(256) = '700'
--	declare @stado varchar(256) = '001'
--declare @rokev1 varchar(455) = '2016'
--declare @rokev2 varchar(455) = '17'
--if (@pocetKZ = 0)
--begin
	iNSERT INTO SM_KonZap
		(KROKR, PODNIK, STADO, CEHZ, LUC, PUC, 
		BAHCIS, 
		--PORCIS, 
		ROKEV1, ROKEV2, 
		--HMOTBAH, STMENB, 
		--BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BARCIS, BPORCIS, 
		ID_KonZapBaran,
		--BPLEM, DATPRIP, DATOBAH,
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ, IDM, IDS)
	SELECT 
		KROKR, PODNIK, STADO,
		--(select top 1 ZVSTAT + JCCEHZ from SM_Bahnica b where b.BAHCIS = pb.BAHCIS and ZVSTAT is not null and bahcis <> 0) as CEHZ,
		ZVSTAT + JCCEHZ as CEHZ, LUC, PUC, 
	
		BAHCIS, 
		--PORCIS, 
		@RokEv1, @RokEv2, 
		(select id from SM_KonZapBaran where JCCEHZ = BJCCEHZ1 and ZVSTAT = BZVSTAT1),
		--HMOTBAH, STMENB, 
		--BKROKR1, BPODNIK1, BSTADO1, BLUC1, BPUC1, BARCIS1, CISBAR1, 
		--BPLEM, DATPRIP, DATOBAH,
	GETDATE(), 'pp_' + @login, null, 0, 'web', 'PP',
	(select id from SM_KonZapMen where chov=pp.KROKR + pp.PODNIK + pp.STADO and rokev = @rokev1+@rokev2) as idm, 
	(select id from SM_KonZapMen where chov= @KROKR + @PODNIK + @STADO and rokev = @rokev1+@rokev2) as ids	
	from #SM_PripPlan pp
	where 
		 BAHCIS not in (select bahcis from #NezaradeneBahnice)
	AND BAHCIS NOT IN (select bahcis from SM_KonZap kz where KROKR = pp.KROKR
					and kz.PODNIK = pp.PODNIK
					and kz.STADO = pp.STADO
					and kz.ROKEV1 = @rokev1 --pp.ROKPRIP
					and kz.BAHCIS = pp.BAHCIS)



		update SM_KonZap
		set ID_KonZapBaran = (select id from SM_KonZapBaran where 
		--krokr+podnik+stado = SM_KonZap.krokr+SM_KonZap.podnik+SM_KonZap.stado and
		krokr+podnik+stado =  @KROKR + @PODNIK + @STADO and
		rokev1+rokev2 = SM_KonZap.rokev1 + SM_KonZap.rokev2 and
		barcis = (select barcis1 from #SM_PripPlan where bahcis = SM_KonZap.bahcis)
		)
		where SM_KonZap.krokr+SM_KonZap.podnik+SM_KonZap.stado  in (select spchov from SM_SpojChov where chov =  @KROKR + @PODNIK + @STADO)
		and SM_KonZap.rokev1 + SM_KonZap.rokev2 = @rokev1 + @rokev2
		and ID_KonZapBaran is null
--end


	
	

--	insert into #Nezaradene
--	select LUC, PUC, ZVSTAT + JCCEHZ as CEHZ, KROKR + PODNIK + STADO as chov, BAHCIS
--	from SM_PripPlan pp
--	where KROKR = @KROKR
--	and PODNIK = @PODNIK
--	and STADO = @STADO
--	and bahcis not in (
--	select top 1 bahcis
--                from SM_Bahnica b
--                where b.KROKR = pp.KROKR
--                    and b.PODNIK = pp.PODNIK
--                    and b.STADO = pp.STADO
												
--                    --and DATVYR is null and DOVOD = 0
--					)
--/*
--	delete from SM_KonZap
--	where bahcis in 
--		(select BAHCIS
--			from #Nezaradene)

--			*/
--	insert into #Nezaradene
--	select LUC, PUC, ZVSTAT + JCCEHZ as CEHZ, KROKR + PODNIK + STADO as chov, BARCIS1
--	from SM_PripPlan pp
--	where KROKR = @KROKR
--	and PODNIK = @PODNIK
--	and STADO = @STADO
--	and barcis1 not in (
--	select top 1 barcis
--                from SM_BARAN b
--                where b.KROKR = pp.KROKR
--                    and b.PODNIK = pp.PODNIK
--                    and b.STADO = pp.STADO
												
                    --and DATVYR is null and DOVOD = 0
					--)
/*
	delete from SM_KonZapBaran
	where barcis in 
		(select BARCIS
			from #Nezaradene)

*/

	

/*
delete from SM_KonZap
where KROKR = @KROKR
and PODNIK = @PODNIK
and STADO = @STADO
and ROKEV1 = @RokEv1
and ROKEV2 = @RokEv2
*/
/*
select * from SM_KonZap
where KROKR = @KROKR
and PODNIK = @PODNIK
and STADO = @STADO
*/


select * from #NezaradeneBahnice
--select * from #SM_PripPlan

select celkom, celkom - nezarad as zarad, nezarad from
( select 
	(select count(*) from #SM_PripPlan) as celkom,
	(select count(*) from #NezaradeneBahnice) as nezarad,
	(select count(*) from #NezaradeneBahnice) as nezaradBaran
) t
END
go




CREATE PROCEDURE [dbo].[C_VZ_MedziobdobieMesove_CHOV] 
	@ParChov varchar(9)
AS
BEGIN

/******************************
using table:CM_Krava,CM_Telata

changing table:CP_MedziObdMesove

used for: Creating medziobdobie for Mesova Krava used for View_CP_MedziObdMeso in volna zona -> CP_MedziObdMesove report


******************************/
	SET NOCOUNT ON;
	declare @chov_id varchar(9);
	declare @ucislo varchar(14)
	set @chov_id='';
	declare @porlakt as int;
	DECLARE @W INT;
	declare @pohlavie_posledne as int;
	declare @pohlavie_predosle as int;
	declare @datnar_predosle date; /*vytiahnutie datumov vo vonkajsom kurzore kvoli dvojickam, trojickam.., aby mo medzi nimi nebolo 0*/
	declare @datnar_posledne date;

	--TRUNCATE TABLE [PLIS].[dbo].CP_MedziObdMesove 
	delete PLIS.dbo.CP_MedziObdMesove where chovatel = @ParChov;

	DECLARE cur_Chovatel CURSOR FOR 
		select  distinct K.CISKRAVY, k.CHOVATEL
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and
		(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DOVVYR is null) and k.CHOVATEL = @ParChov;
	  -- select distinct matka from plis.dbo.CM_Telata where PRIZNAKKU='2'


	  SET @W= (select  distinct COUNT( K.CISKRAVY)
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null)

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO @ucislo, @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			declare @medzi int
			set @medzi=0;
			declare @d int;
			set @d=0;
							declare c cursor for SELECT  TOP 1  DATEDIFF(DAY,T.DATNAR,T2.DATNAR)AS MEDZ,T2.PORLAK, T.pohlavie, T2.pohlavie, t.datnar, t2.datnar
							FROM DBO.CM_Telata AS T
							RIGHT JOIN (SELECT TOP 1 * FROM CM_Telata WHERE MATKA=@ucislo ORDER BY DATNAR DESC) AS T2 
							ON T.MATKA=T2.MATKA
							and t.DATNAR not in (SELECT top 1  v.DATNAR
  FROM [PLIS].[dbo].[CM_Krava] as k
  inner join plis.dbo.CM_Telata as v on k.CISKRAVY=v.MATKA
  where /*(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DOVVYR is null)
  and k.PRIZNAKKU='2'
  and netreba, je to vnoreny kurzor*/
  v.MATKA=@ucislo  order by v.DATNAR desc)
							order by t.DATNAR desc;

							open c;
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne, @datnar_predosle, @datnar_posledne;
							WHILE @@FETCH_STATUS = 0
							begin
							
								
									begin 
										SET @MEDZI=@MEDZI+@d ;
										/*ak su posledne dve otelenia ine ako 81 a 82 a tieto datumy oteleni su rozne (nie dvojicky) alebo je pohlavie posledne alebo predposledne null (berie sa to ako otelenie bez et)  vloz mo do tabulky*/
										if ((@pohlavie_predosle <> '81' and @pohlavie_predosle <> '82' and @pohlavie_posledne <> '81' and @pohlavie_posledne <> '82' and @datnar_posledne <> @datnar_predosle) or @pohlavie_posledne is null or @pohlavie_predosle is null)
											begin
												insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@d,@porlakt);
											end
										else /*inak zacni hladat posledne medziobdobie kravy kde su dve pohlavia za sebou 01,02.. (nie et)*/
											begin
												declare @datnarod date;
												declare @pohlavie int;
												declare @porlaktacie int;

												declare @datnarod_predosle date;
												declare @pohlavie_predosle2 int;
												declare @poradielaktacie int;

												declare @mo int;
												declare @exit_cursor bit;
												set @exit_cursor = 0;
												
												declare @continue_if bit;
												set @continue_if = 1;


												declare curs cursor for select DATNAR, POHLAVIE, porlak from CM_Telata where MATKA = @ucislo order by DATNAR desc /*zoradenie od poslednych oteleni*/

												open curs;
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
														WHILE @@FETCH_STATUS = 0 and @exit_cursor = 0
														begin
																begin 
																print cast(@datnarod as varchar(12))  + ' pohlavie: '+cast(@pohlavie as varchar(2))+ ' '+ 'poradie :' + cast(@porlaktacie as varchar(2))
																/*poradie laktacie bude jej posledne (pohl. ine ako 81,82), bez ohladu na to z kt. sa pocitalo MO*/
																if(@continue_if = 1)
																begin
																	if (@pohlavie<>'81' and @pohlavie<>'82' or @pohlavie is null) /*hladame poslednu laktaciu*/
																	begin
																		set @poradielaktacie = @porlaktacie;
																		set @continue_if = 0; /*ak si sa dostal sem uz nepokracuj v hladani posledneho poradia laktacie*/
																	end																	
																end;
																if (@pohlavie <> '81' and @pohlavie <> '82' and @pohlavie_predosle2 <> '81' and @pohlavie_predosle2 <> '82' and @datnarod <> @datnarod_predosle)
																	begin
																		set @mo =  DATEDIFF(DAY ,@datnarod, @datnarod_predosle);
																		insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@mo,@poradielaktacie);
																		print cast(@mo as varchar(3)) +' '+ cast(@poradielaktacie as varchar(2)); 
																		set @exit_cursor = 1;
																		print 'kurzor sa ukoncuje'
																	end;
									
																set @datnarod_predosle = @datnarod;
																set @pohlavie_predosle2 = @pohlavie;																
																end
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
												END
												close curs;
												Deallocate curs;
											end;
									end

								
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne,@datnar_predosle, @datnar_posledne;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @ucislo,@chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;
 
 END

go






-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 18.10.2011
-- Description:	Vypocet 100 a 200 dnovych usekov v Naplaku
-- =============================================
CREATE PROCEDURE [dbo].[C_migracia_Naplak_Prepocet_100_200] 

AS
BEGIN
 -- premenne pre vetu do naplaku (CM_Naplak)
	declare	@N_CISKRAVY varchar(14)
	declare	@N_CHOVATEL varchar(9) 
	declare	@N_PORLAK varchar(2) 
	declare	@N_DATOTEL date 
	declare	@N_CHOVOTEL varchar(9) 
	declare	@N_CHOVLAKT varchar(9) 
	declare	@N_PRIEBPOROD varchar(1) 
	declare	@N_POHLAVIE varchar(2) 
	declare	@N_ZMENA varchar(2) 
	declare	@N_DATUKONL date 
	declare	@N_DATUKNORL date 
	declare	@N_MEDZIOBD [decimal](6,2)  
	declare	@N_HMOTKR [decimal](6,2)  
	declare	@N_LAKTDNI [decimal](6,2)  
	declare	@N_LAKDNIN [decimal](6,2)  
	declare	@N_MLIEKCEL [decimal](7,2)  
	declare	@N_MLIEKNOR [decimal](7,2)  
	declare	@N_TUKCEL [decimal](6,2)  
	declare	@N_TUKNOR [decimal](6,2)  
	declare	@N_BIELKCEL [decimal](6,2)  
	declare	@N_BIELKNOR [decimal](6,2)  
	declare	@N_LAKTOZAC [decimal](6,2)  
	declare	@N_LAKTOZAN [decimal](6,2)  
	declare	@N_INDPER [decimal](6,2)  
	declare	@N_INDLAK [decimal](6,2)  
	declare	@N_CHARUST varchar(1) 
	declare	@N_MAXLAK varchar(1) 
	declare	@N_ZNAK varchar(1) 
	declare	@N_BEZT [int]
	declare	@N_MLIEKO100 [decimal](7,2)  
	declare	@N_TUK100 [decimal](6,2)  
	declare	@N_BIELK100 [decimal](6,2)  
	declare	@N_LAKT100 [decimal](6,2)  
	declare	@N_MLIEKO200 [decimal](7,2)  
	declare	@N_TUK200 [decimal](6,2)  
	declare	@N_BIELK200 [decimal](6,2)  
    declare @N_LAKT200 [decimal](6,2)  
    -----------------------------------------------
    declare @counter int
    declare @rowcount int
    declare @id_arch bigint
    declare @V_CISKRAVY varchar(14)
    declare @NenormalLakt bit
    
    declare @timer datetime
    
    -- zmazanie docasnej tabulky nesprac_Naplak ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'nesprac_Naplak') drop table nesprac_Naplak

	-- vyber  z CM_Naplak
	select *, ROW_NUMBER() over(order by ciskravy) as rowid into nesprac_Naplak from CM_Naplak
	-- len na testovanie: where CHOVATEL = '710513011'

    CREATE UNIQUE INDEX IDX_nesprac_Naplak ON nesprac_Naplak(rowid)

	set @rowcount = (select count(*) from nesprac_Naplak)
	set @counter = (select 1)
	
	print @rowcount

	set @timer = GETDATE()

	-- cyklus cez vsetky riadky tabulky VstupyPLIS.dbo.nesprac_RP
	while @counter <= @rowcount
	begin
		print '----------------------------------------------------------------------- ' + 	convert(varchar(9),@counter)
				
	-- vynulovanie premennych
        set @N_MLIEKO100 = NULL
		set @N_TUK100 = NULL
		set @N_BIELK100 = NULL
		set @N_LAKT100 = NULL
		set @N_MLIEKO200 = NULL
		set @N_TUK200 = NULL
		set @N_BIELK200 = NULL
		set @N_LAKT200 = NULL
		
	-- nacitanie dat z CM_Naplak
		select @N_CISKRAVY = CISKRAVY,@N_PORLAK = PORLAK,@N_DATOTEL = DATOTEL from nesprac_Naplak where rowid = @counter				
				
	-- procedura, ktora prepocita kontroly a hodnoty laktacie (pre CM_Laktacie, CM_Naplak)
		exec C_aktual_prep_laktacie_migr @N_CISKRAVY, @N_DATOTEL, @N_PORLAK, 
				@N_DATUKNORL output, @N_LAKTDNI output, @N_LAKDNIN output, @N_MLIEKCEL output, @N_MLIEKNOR output,
				@N_TUKCEL output, @N_TUKNOR output, @N_BIELKCEL output,	@N_BIELKNOR output, @N_LAKTOZAC output,
				@N_LAKTOZAN output, @N_INDPER output, @N_BEZT output, @N_MLIEKO100 output, @N_TUK100 output, @N_BIELK100 output,
				@N_LAKT100 output, @N_MLIEKO200 output, @N_TUK200 output, @N_BIELK200 output, @N_LAKT200 output,
				@NenormalLakt output
		 
	-- zapis do CM_Naplak-u				
		update CM_Naplak set 
			MLIEKO100 = @N_MLIEKO100,
			TUK100 = @N_TUK100,
			BIELK100 = @N_BIELK100,
			LAKT100 = @N_LAKT100,
			MLIEKO200 = @N_MLIEKO200,
			TUK200 = @N_TUK200,
			BIELK200 = @N_BIELK200,
			LAKT200 = @N_LAKT200
			where CISKRAVY = @N_CISKRAVY
			
		set @counter = @counter + 1	
	-- print @N_CISKRAVY
	end				
end
------------------------------------------------------------------------------------------------------------------------------------


go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_zvaz_stupenKU]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (30) null,
	  [SPVykonu_kod][varchar](2) null,--sposob vykonu=stupen KU
	  [SPVykonu][varchar](100)null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	 

----if (@region is null) 
----begin
----	if (len(@chov) = 1)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----			(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----			--and (reg.REGION=@region or @region is null) 
----			and lakt.kraj = @chov
----			and a.PRIZNAK=1	
----			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----				or (Lakt.DATUKNORL >= @datumOd 
----				and Lakt.DATUKNORL <= @datumDo))
----			and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 3)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.okres = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 6)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.podnik = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 9)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.CHOVATEL = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV, c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----	end

----	Insert @kravy
----		select 
----			@chov as CHOV, 
----			@region as Region,		
----			k.ciskravy,
----			PORPREBLAK,
----			b.KOD as CharChov_KOD,
----			b.NAZOV as CharChov,
----			c.KOD as SPVykonu_kod, 
----			c.NAZOV as SPVykonu
----		from CM_Krava as k
----		--	left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
		
----		where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----			and	k.DOVVYR is null and k.PRIZNAKKU='1' 
---- 			--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----end
---- ELSE
---- begin
---- 	insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,c.KOD, c.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(reg.REGION=@region or @region is null)
----				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	
							  
----Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov,
----		c.KOD as SPVykonu_kod, 
----		c.NAZOV as SPVykonu
----	from CM_Krava as k
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----	left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----	left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----	left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
		
----	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1' 
---- 		and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end	 
		  
insert into @Laktacie		----povodne
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,c.KOD, c.NAZOV,--, d.FSEKTOR, e.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
	 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
	 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
	 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)

    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''

		 
 --select * from  @Laktacie order by CHOVATEL

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
		
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

 declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	where  k.PORPREBLAK ='1'
 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		)
	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	where k.PORPREBLAK >='2'
 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu


declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov,
		SPVykonu_kod, 
		SPVykonu
	from @kravy as k
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu
--select * from @PocZapojL1 

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
		
		--select * from @pocLAKV1 

declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV2,
    CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
    CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
		
	group by 
	case when @chov is null and @region is null then @chov	
		 when @chov is null then @region 
		 else (substring(l.CHOVATEL, 1, len(@chov))) end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu

		--select * from @pocLAKVCelk
		--print 0

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1,CharChov_KOD,CharChov,SPVykonu_kod, SPVykonu)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2,0)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

insert @laktCelkom
	select
		@chov as CHOV, 
		@region as Region,
		count(*) as PocLakCelk, 
		ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
		ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
		ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
		ROUND(AVG(TUKNOR),2) as TukNorCelk,
		ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
		ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
		AVG(INDPER) as IPZCelk,
		Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
		Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu

 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	
	insert @NormLak1
	select 
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
		Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @NormLak2
	select
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
		Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 	l.PORLAK >= '2'
		and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @NormLakCelk
	select
		@chov as CHOV, 
		@region as Region,
		Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
		Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
		Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
		Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
		Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
		Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
		Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
		Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
		Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
		Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
		Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
		Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
		Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
		Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
		Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
		Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
		Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
		Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
		Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
		Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
		Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
		Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
		Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
		CharChov_Kod as CharChov_KOD,
		CharChov as Charchov,
		SPVykonu_kod as SPVykonu_kod,
		SPVykonu as SPVykonu  
	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_Kod as CharChov_KOD,
	CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu   

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD,l.CharChov,l.SPVykonu_kod,l.SPVykonu
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

------IF EXISTS(
------SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
------WHERE 
------	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
------	and DatumOd = @datumOd and DatumDo = @datumDo
------)
------BEGIN
------	DELETE FROM CR_LaktacneZostavy  WHERE 
------	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
------	--(chov like @chov+'%' or @chov is null) 
------	and DatumOd = @datumOd and DatumDo = @datumDo
------END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD)+','+('StKU'+l.SPVykonu_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojLCelk.CharChov_KOD=l.CharChov_KOD and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV1.CharChov_KOD=l.CharChov_KOD and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.CharChov_KOD=l.CharChov_KOD and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.CharChov_KOD=l.CharChov_KOD and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.CharChov_KOD=l.CharChov_KOD and L1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.CharChov_KOD=l.CharChov_KOD and L2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.CharChov_KOD=l.CharChov_KOD and lCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.CharChov_KOD=l.CharChov_KOD and NL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.CharChov_KOD=l.CharChov_KOD and NL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.CharChov_KOD=l.CharChov_KOD and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.CharChov_KOD=l.CharChov_KOD and ZL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.CharChov_KOD=l.CharChov_KOD and ZL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.CharChov_KOD=l.CharChov_KOD and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go


	CREATE PROCEDURE dbo.sp_creatediagram
	(
		@diagramname 	sysname,
		@owner_id		int	= null, 	
		@version 		int,
		@definition 	varbinary(max)
	)
	WITH EXECUTE AS 'dbo'
	AS
	BEGIN
		set nocount on
	
		declare @theId int
		declare @retval int
		declare @IsDbo	int
		declare @userName sysname
		if(@version is null or @diagramname is null)
		begin
			RAISERROR (N'E_INVALIDARG', 16, 1);
			return -1
		end
	
		execute as caller;
		select @theId = DATABASE_PRINCIPAL_ID(); 
		select @IsDbo = IS_MEMBER(N'db_owner');
		revert; 
		
		if @owner_id is null
		begin
			select @owner_id = @theId;
		end
		else
		begin
			if @theId <> @owner_id
			begin
				if @IsDbo = 0
				begin
					RAISERROR (N'E_INVALIDARG', 16, 1);
					return -1
				end
				select @theId = @owner_id
			end
		end
		-- next 2 line only for test, will be removed after define name unique
		if EXISTS(select diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @diagramname)
		begin
			RAISERROR ('The name is already used.', 16, 1);
			return -2
		end
	
		insert into dbo.sysdiagrams(name, principal_id , version, definition)
				VALUES(@diagramname, @theId, @version, @definition) ;
		
		select @retval = @@IDENTITY 
		return @retval
	END

  
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre plemena
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_zMirka]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 
/*
declare @chov varchar(9) = '207527051',--'1',	--'102501011',
	@datumOd date = '2016-12-01',
	@datumDo date ='2017-01-01',
	@region varchar(2) = null,
	@plem varchar(10) = null
*/
Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
	  [MLIEKCEL][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
) --ON [PRIMARY]

declare @kravy table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	ciskravy varchar(14),
	PORPREBLAK int
	--[PocZapojL1] int NULL
)

	 
if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''



			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.kraj = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.okres = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.podnik = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			   (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

			---- (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
			----			else null end)as EkoChov
		 ----FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			----left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 ----where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			----and lakt.chovatel = @chov			
			----and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
			----	or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			----and eko.ZRUS is null AND eko.TYPZV='1'
			----and (PLEM=@plem or @plem is null)
	end
	else 
	begin
		insert into @Laktacie
		 SELECT
 			 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		where --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and lakt.kraj = @chov			
			 ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			and (PLEM=@plem or @plem is null)
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

	/* upravene 6.11.2017 */

		----SELECT
 	----		 PORLAK, CHOVATEL, (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
		----	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		----	 DOVVYR, DATVYR,
		----	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
		----				else null end)as EkoChov
		---- FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
		----	left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		---- where (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		----	--and lakt.kraj = @chov			
		----	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		----		or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
		----	and eko.ZRUS is null AND eko.TYPZV='1'
		----	and (PLEM=@plem or @plem is null)
	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' 	 

 end
 ELSE
 begin 
	insert into @Laktacie
	 SELECT
 		 PORLAK, CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKCEL, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
		 DOVVYR, DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov

	 FROM NC_OKRES as reg 
	 left outer join dbo.View_CP_LaktaciePreZostavy as Lakt on ((reg.KRAJ + reg.OKRES)= lakt.okres ) --substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	where 
	(reg.REGION=@region or @region is null) 
	--and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (PLEM=@plem or @plem is null)
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
		--and eko.ZRUS is null AND eko.TYPZV='1'
			and (eko.ZRUS is null or eko.datumZrusenia > @datumOd) AND eko.TYPZV='1'
			--and MLIEKNOR <>''
			and MLIEKCEL <>''

	Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' --and k.PORPREBLAK ='1'
		and (reg.REGION=@region or @region is null)
end




declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)
	

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		null as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k
	 where
		k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS
		-----,case when @plem is not null then pl.TYPS end 


--select * from @PocZapojL1 
declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	where k.PORPREBLAK >='2' 		
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end----,pl.TYPS

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojLCelk
	from @kravy as k 
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	-----[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----	case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
----	l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	----l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
		----case when @plem is not null then l.PLEM end 

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	null as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
					----case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end----,l.PLEM,
	----case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	 ----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	---,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----,l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	null as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end
	----, l.PLEM,	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV



insert dbo.CR_LaktacneZostavy_Opr
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	----(Select distinct case when @chov is null and @region is null then ('SR') else
	----case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))---- and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) ----and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null))----and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null))----and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null))----and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null))----and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null))----and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null))----and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null))----and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null))----and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go

Create PROCEDURE [dbo].[CR_EKRMD_stvrtrok_prepocet] 

	@rok INT,
	@mesiacOD INT,
	@mesiacDO INT

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'TMHD' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_EKRMD_stvrtrok @chov, @rok,@mesiacOD, @mesiacDO

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

end
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_16]
    @rok varchar(4),
	@Plem_typ varchar(6)
	
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_16 as z
	where   z.rok = @rok and z. Plem_typ=@Plem_typ 
end
go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16.10.2014>
-- Description:	<Description,vrati zoznam linii s poctom nevyradenych baranov, stado je zadane parametrom>,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BarPlem]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.plem,
REPLACE (SUBSTRING(b.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(b.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(b.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(b.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(1) AS pocet
FROM plis.dbo.SM_BARAN b  LEFT OUTER JOIN plis.dbo.SC_PodKrvi k
 on SUBSTRING(b.plem,9,2) = k.CISKOD
WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL)  AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go

CREATE procedure [dbo].[CR_EKRMD_1]
    
	@rok int,
	@mesiac int,
	@CHOV varchar(9) = ''
	
as
begin

	
	select np.NAZOV as podnik, nch.NAZOV as NazovChov,
		cistelata,
		ek.chov, mesiac, rok     
		,hd.TECHUSMD as tech_ustaj
		,us.POPIS as tech_ustaj_popis
      ,plemeno
      ,datnar
      ,p.SKRATKA as pohlavie
      ,PK
      ,ET
      ,farba
      ,matka
      ,otecLIN
      ,otecREG
	  ,otecUscislo
	  ,otecMeno
      ,datvaz1
      ,mesiac1
      ,den1
      ,hmot1
      ,rp1
      ,datvaz2
      ,mesiac2
      ,den2
      ,hmot2
      ,rp2
      ,datvaz3
      ,mesiac3
      ,den3
      ,hmot3
      ,rp3
      ,datvaz4
      ,mesiac4
      ,den4
      ,hmot4
      ,rp4
      ,datvaz5
      ,mesiac5
      ,den5
      ,hmot5
      ,rp5
      ,datvaz6
      ,mesiac6
      ,den6
      ,hmot6
      ,rp6
      ,zprir
      ,dp
      ,planprip
	  ,DatPlanPripust
      ,vekPripus
      
      ,byk
      ,datinsem
      ,ocotel
      ,ocprip
      ,porlakmax
      ,pocvsetlak
      ,pocnorlak
      ,mliekopr
      ,tukper
      ,bielkper
      ,mliekomax
      ,tukmax
      ,bielmax
      ,generovane
      ,plemskladba
	   FROM [plis].[dbo].[CR_EKRMD] as ek 

		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(ek.chov,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = ek.chov
		left join NM_HDDETAIL as hd 
			on hd.KRAJ + hd.OKRES + hd.PODNIK + hd.CHOV = ek.chov
		left join CC_TechUstMD as us 
			on us.KOD = hd.TECHUSMD
		left join CC_Pohlavie as p 
			on p.KOD = ek.pohlavie
	  
	   where (ek.chov like @CHOV+'%' or @CHOV is null)	and ek.rok = @rok and ek.mesiac =@mesiac 
	   end
go

-- =============================================
-- Author:		Vladimir Durech, pssr
-- Create date: 2017-08-23
-- Description:	Procedura vrati vystupnu zostavu z kontrolneho zapisnika
-- =============================================
CREATE procedure  [dbo].[S_KonZap_VystupZostava]
	@chov varchar(9),
	@rokev varchar(9),
	@LUC_CEHZ varchar(4)

AS
BEGIN
declare @nazov as varchar(128);
set @nazov = (select nazovskr from plis.dbo.NM_PODNIK pk where (pk.KRAJ+pk.OKRES+pk.PODNIK) = substring(@chov, 1,6 ) )

if @LUC_CEHZ ='LUC' 
begin 
	select 
	--m.chov as chov,
	k.KROKR+k.PODNIK+k.stado as chov,
	@nazov as NAZOVSKR,
	--pk.NAZOVSKR ,
	k.bahcis, dbo.S_uprav_LUC(k.LUC) as LUC, dbo.S_uprav_LUC(k.PUC) as PUC, b.TRIED as Tr, b.KODPLOD as KP, --b.KPPNT
	b.KODPK as PK, --k.CEHZ, --null as MU_IR,
	dbo.S_uprav_CEHZ(k.CEHZ) as CEHZ,
	case when mm.HVPORML is not null then 'M' + mm.HVPORML else 'R' +isnull(HvPorPr, '') end as MU_IR,
	b.HvPorPr as MlUz,
	PHMlieko, PHVelVrh, PHHmOds,
	b.DOVOD,  b.DATVYR, (select NAZLIN from SC_SubLin where CISLIN = b.CisLin) as Linia,
	k.PORCIS as b_porcis,
	k.DATPRIP, k.DATOBAH,

	p.pohl as pPOHL, 
	--p.LUC as pLUC, p.CEHZ as pCEHZ, 
	dbo.S_uprav_LUC(p.LUC) as pLUC, dbo.S_uprav_CEHZ(p.CEHZ) as pCEHZ,
	p.PRIZVYB as pUrcJahVyb,
	p.DATVAZ as pDatOdst,
	p.HMVAZ as pHmOdst, 
	k.PredChov, p.PredChov as pPredCHOV

	from SM_KonZap k
	left outer join SM_KonZapMen m on m.ID = k.IDS
	--left outer join SM_KonZapBaran kzb on k.ID_KonZapBaran = kzb.ID
	left outer join SM_KonZapPotomok p on p.ID_KonZap = k.id
	left outer join SM_BAHNICA b on b.bahcis = k.bahcis
	left outer join dbo.function_SP_PH () ph on ph.jedcis = b.bahcis
	left outer join SM_MaxMl mm on mm.BAHCIS = b.bahCis
	--Left join plis.dbo.NM_CHOVMAS a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV)=(k.KROKR+k.PODNIK+k.STADO) 
	--LEFT JOIN plis.dbo.NM_PODNIK pk ON  (pk.KRAJ+pk.OKRES+pk.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	--LEFT JOIN plis.dbo.NC_KRAJ c ON (pk.KRAJ = c.KRAJ)
	--LEFT JOIN plis.dbo.NC_OKRES d ON (pk.OKRES = d.okres AND pk.KRAJ = d.KRAJ)
	
	--left outer join (select * from dbo.function_SP_PH (k.bahcis)) ph  on ph.jedcis = k.bahcis
	--OUTER APPLY dbo.function_SP_PH (k.bahcis)
	--left outer join SM_BLPHVV bVV on bVV.JEDCIS = b.bahcis
	--left outer join SM_BLPHHO bHO on bHO.JEDCIS = b.bahcis
	--left outer join SM_BLPHML bML on bML.JEDCIS = b.bahcis
	where 
	--m.chov = '508512023'
	--and m.rokev = '201617'
	m.chov = @chov
	and 
	m.rokev = @rokev

	order by LUC
	end
else 
 begin
	select 
	--m.chov as chov,
	k.KROKR+k.PODNIK+k.stado as chov,
	@nazov as NAZOVSKR,
	--pk.NAZOVSKR ,
	k.bahcis, dbo.S_uprav_LUC(k.LUC) as LUC, dbo.S_uprav_LUC(k.PUC) as PUC, b.TRIED as Tr, b.KODPLOD as KP, --b.KPPNT
	b.KODPK as PK, --k.CEHZ, --null as MU_IR,
	dbo.S_uprav_CEHZ(k.CEHZ) as CEHZ,
	case when mm.HVPORML is not null then 'M' + mm.HVPORML else 'R' +isnull(HvPorPr, '') end as MU_IR,
	b.HvPorPr as MlUz,
	PHMlieko, PHVelVrh, PHHmOds,
	b.DOVOD,  b.DATVYR, (select NAZLIN from SC_SubLin where CISLIN = b.CisLin) as Linia,
	k.PORCIS as b_porcis,
	k.DATPRIP, k.DATOBAH,

	p.pohl as pPOHL, 
	--p.LUC as pLUC, p.CEHZ as pCEHZ, 
	dbo.S_uprav_LUC(p.LUC) as pLUC, dbo.S_uprav_CEHZ(p.CEHZ) as pCEHZ,
	p.PRIZVYB as pUrcJahVyb,
	p.DATVAZ as pDatOdst,
	p.HMVAZ as pHmOdst, 
	k.PredChov, p.PredChov as pPredCHOV

	from SM_KonZap k
	left outer join SM_KonZapMen m on m.ID = k.IDS
	--left outer join SM_KonZapBaran kzb on k.ID_KonZapBaran = kzb.ID
	left outer join SM_KonZapPotomok p on p.ID_KonZap = k.id
	left outer join SM_BAHNICA b on b.bahcis = k.bahcis
	left outer join dbo.function_SP_PH () ph on ph.jedcis = b.bahcis
	left outer join SM_MaxMl mm on mm.BAHCIS = b.bahCis
	--Left join plis.dbo.NM_CHOVMAS a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV)=(k.KROKR+k.PODNIK+k.STADO) 
	--LEFT JOIN plis.dbo.NM_PODNIK pk ON  (pk.KRAJ+pk.OKRES+pk.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	--LEFT JOIN plis.dbo.NC_KRAJ c ON (pk.KRAJ = c.KRAJ)
	--LEFT JOIN plis.dbo.NC_OKRES d ON (pk.OKRES = d.okres AND pk.KRAJ = d.KRAJ)
	
	--left outer join (select * from dbo.function_SP_PH (k.bahcis)) ph  on ph.jedcis = k.bahcis
	--OUTER APPLY dbo.function_SP_PH (k.bahcis)
	--left outer join SM_BLPHVV bVV on bVV.JEDCIS = b.bahcis
	--left outer join SM_BLPHHO bHO on bHO.JEDCIS = b.bahcis
	--left outer join SM_BLPHML bML on bML.JEDCIS = b.bahcis
	where 
	--m.chov = '508512023'
	--and m.rokev = '201617'
	m.chov = @chov
	and 
	m.rokev = @rokev


	order by CEHZ
	 end

end
go


	CREATE PROCEDURE dbo.sp_renamediagram
	(
		@diagramname 		sysname,
		@owner_id		int	= null,
		@new_diagramname	sysname
	
	)
	WITH EXECUTE AS 'dbo'
	AS
	BEGIN
		set nocount on
		declare @theId 			int
		declare @IsDbo 			int
		
		declare @UIDFound 		int
		declare @DiagId			int
		declare @DiagIdTarg		int
		declare @u_name			sysname
		if((@diagramname is null) or (@new_diagramname is null))
		begin
			RAISERROR ('Invalid value', 16, 1);
			return -1
		end
	
		EXECUTE AS CALLER;
		select @theId = DATABASE_PRINCIPAL_ID();
		select @IsDbo = IS_MEMBER(N'db_owner'); 
		if(@owner_id is null)
			select @owner_id = @theId;
		REVERT;
	
		select @u_name = USER_NAME(@owner_id)
	
		select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname 
		if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId))
		begin
			RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1)
			return -3
		end
	
		-- if((@u_name is not null) and (@new_diagramname = @diagramname))	-- nothing will change
		--	return 0;
	
		if(@u_name is null)
			select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @theId and name = @new_diagramname
		else
			select @DiagIdTarg = diagram_id from dbo.sysdiagrams where principal_id = @owner_id and name = @new_diagramname
	
		if((@DiagIdTarg is not null) and  @DiagId <> @DiagIdTarg)
		begin
			RAISERROR ('The name is already used.', 16, 1);
			return -2
		end		
	
		if(@u_name is null)
			update dbo.sysdiagrams set [name] = @new_diagramname, principal_id = @theId where diagram_id = @DiagId
		else
			update dbo.sysdiagrams set [name] = @new_diagramname where diagram_id = @DiagId
		return 0
	END

  
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_zvaz]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null
		
	)

----if (@region is null) 
----begin
----	if (len(@chov) = 1)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----			(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----			--and (reg.REGION=@region or @region is null) 
----			and lakt.kraj = @chov
----			and a.PRIZNAK=1	
----			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----				or (Lakt.DATUKNORL >= @datumOd 
----				and Lakt.DATUKNORL <= @datumDo))
----			and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 3)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.okres = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 6)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.podnik = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 9)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.CHOVATEL = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----	end

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		--left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		
----	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		--and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end
---- ELSE
---- begin
---- 	insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(reg.REGION=@region or @region is null)
----				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end

insert into @Laktacie	--moje povodme
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
	  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD,CharChov)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
   CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov   

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

--IF EXISTS(
--SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--WHERE 
--	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--	and DatumOd = @datumOd and DatumDo = @datumDo
--)
--BEGIN
--	DELETE FROM CR_LaktacneZostavy  WHERE 
--	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--	--(chov like @chov+'%' or @chov is null) 
--	and DatumOd = @datumOd and DatumDo = @datumDo
--END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.CharChov_KOD=l.CharChov_KOD )
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV2.CharChov_KOD=l.CharChov_KOD)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and L1.CharChov_KOD=l.CharChov_KOD) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16,10,2014>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PotPlem]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  p.plem, 
REPLACE (SUBSTRING(p.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(p.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(p.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(p.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonjar < v.pocjar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocjar, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocjah, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmbar < v.pocmbar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocmbar2, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocmbar1
FROM dbo.SM_POTOMOK AS p LEFT OUTER JOIN
     dbo.View_SP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar 
LEFT OUTER JOIN SC_SUBLIN s ON p.cislin=s.cislin     
LEFT OUTER JOIN plis.dbo.SC_PodKrvi k
ON SUBSTRING(p.plem,9,2) = k.CISKOD
WHERE p.krokr+p.podnik+p.stado = @chovatel
GROUP BY p.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go


	CREATE PROCEDURE dbo.sp_alterdiagram
	(
		@diagramname 	sysname,
		@owner_id	int	= null,
		@version 	int,
		@definition 	varbinary(max)
	)
	WITH EXECUTE AS 'dbo'
	AS
	BEGIN
		set nocount on
	
		declare @theId 			int
		declare @retval 		int
		declare @IsDbo 			int
		
		declare @UIDFound 		int
		declare @DiagId			int
		declare @ShouldChangeUID	int
	
		if(@diagramname is null)
		begin
			RAISERROR ('Invalid ARG', 16, 1)
			return -1
		end
	
		execute as caller;
		select @theId = DATABASE_PRINCIPAL_ID();	 
		select @IsDbo = IS_MEMBER(N'db_owner'); 
		if(@owner_id is null)
			select @owner_id = @theId;
		revert;
	
		select @ShouldChangeUID = 0
		select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname 
		
		if(@DiagId IS NULL or (@IsDbo = 0 and @theId <> @UIDFound))
		begin
			RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1);
			return -3
		end
	
		if(@IsDbo <> 0)
		begin
			if(@UIDFound is null or USER_NAME(@UIDFound) is null) -- invalid principal_id
			begin
				select @ShouldChangeUID = 1 ;
			end
		end

		-- update dds data			
		update dbo.sysdiagrams set definition = @definition where diagram_id = @DiagId ;

		-- change owner
		if(@ShouldChangeUID = 1)
			update dbo.sysdiagrams set principal_id = @theId where diagram_id = @DiagId ;

		-- update dds version
		if(@version is not null)
			update dbo.sysdiagrams set version = @version where diagram_id = @DiagId ;

		return 0
	END

  
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.06.2016
-- Description:	Vráti datum v textovej forme - prvý deň mesiaca posunutý o počet zadaný v parametrom
-- =============================================
CREATE FUNCTION [dbo].[PrvyDenMesiacaOdDnes]
(
	@PocPar int = 0
)
RETURNS date
AS
BEGIN
	declare @d date
	set @d = (SELECT DATEADD(month, @PocPar, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)))

	RETURN @d

END
go


	CREATE PROCEDURE dbo.sp_dropdiagram
	(
		@diagramname 	sysname,
		@owner_id	int	= null
	)
	WITH EXECUTE AS 'dbo'
	AS
	BEGIN
		set nocount on
		declare @theId 			int
		declare @IsDbo 			int
		
		declare @UIDFound 		int
		declare @DiagId			int
	
		if(@diagramname is null)
		begin
			RAISERROR ('Invalid value', 16, 1);
			return -1
		end
	
		EXECUTE AS CALLER;
		select @theId = DATABASE_PRINCIPAL_ID();
		select @IsDbo = IS_MEMBER(N'db_owner'); 
		if(@owner_id is null)
			select @owner_id = @theId;
		REVERT; 
		
		select @DiagId = diagram_id, @UIDFound = principal_id from dbo.sysdiagrams where principal_id = @owner_id and name = @diagramname 
		if(@DiagId IS NULL or (@IsDbo = 0 and @UIDFound <> @theId))
		begin
			RAISERROR ('Diagram does not exist or you do not have permission.', 16, 1)
			return -3
		end
	
		delete from dbo.sysdiagrams where diagram_id = @DiagId;
	
		return 0;
	END

  
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Vyber udajov 1.laktacie, 2.lakt. a viac do reportu k laktaciam...stvrtrocna a rocna zostava
 --uplne rozbitie retazca a filtra...na zvaz, sektor, stupenKU, popripade plemeno
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_Oznacenie_retazec_filter_Opr]
	@datumOd varchar(10),
	@datumDo varchar(10),
	@vyber varchar(max)=''
as	
begin
declare @chovy table (
		[Filter][varchar](50)null,
		[Oznacenie] [varchar](max) NULL, [DatumOd][date] null, [DatumDo][date] null,[datumGenerovania][date]null,Plem_Zvaz VARCHAR(100)null , Sektor_StupenKU VARCHAR(100)null,
	SR VARCHAR(50)null,
	kraj_nazov VARCHAR(50)null,
	okres_nazov VARCHAR(50)null,
	Region_nazov VARCHAR(50)null,
	podnik_nazov VARCHAR(50)null,
	chov_nazov VARCHAR(50)null,
	obec_nazov VARCHAR(50)null,
	chov_zvaz VARCHAR(100)null,
	sektor_nazov VARCHAR(100)null,
	stupenKU_nazov VARCHAR(100)null,
	[Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,[EkoChov] [varchar] (1) null,
		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,
		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
	 	[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,
		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,
		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,
		[Zmena56Celk] [float](4) NULL,
		[Zmena57Celk] [float](4) NULL,
		[Zmena58Celk] [float](4) NULL,
		[Zmena59Celk] [float](4) NULL,
		[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,
		[Zmena62Celk] [float](4) NULL,
		[ZmenaCelk2Celk] [float](4) NULL
		--[chov_nazov][varchar](50)null,[podnik_nazov,][varchar](50)null,[kraj_nazov,][varchar](50)null,[okres_nazov][varchar](50)null,[obec_nazov][varchar](50)null,
		--[regiom_nazov][varchar](50)null
		)
		
Declare @oznacenie varchar(20) = null
WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        --SELECT @oznacenie		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
        --SELECT @oznacenie
	end
	--if (PATINDEX('%,%',@oznacenie))	>0
	begin
		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,Plem_Zvaz ,
			Sektor_StupenKU ,
			SR ,
			kraj_nazov ,
			okres_nazov,
			Region_nazov,
			podnik_nazov ,
			chov_nazov ,
			obec_nazov ,
			chov_zvaz ,
			sektor_nazov ,
			stupenKU_nazov ,l.Region, l.PlemTyp,l.EkoChov,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			--(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
			--(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
			--(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			--e.NAZOV as region_nazov
		from plis.dbo.CR_LaktacneZostavy_Opr as l

 			LEFT outer JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			LEFT outer JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			LEFT outer JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			LEFT outer JOIN NC_REGION e ON (e.REG = l.REGION)
			cross apply  CR_ZostavaLaktacie_RozbitieFiltra2 (@oznacenie) as r-- on r.oznacenie = l.filter

		where (Filter = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo
	end 

end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end 


--		exec CR_ZostavaLaktacie_Oznacenie_plemeno '2015-09-15','2016-05-15','1,ChZ0,S00'

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.06.2016
-- Description:	Priprava dat pre zostavu - Prehľad vyradených kráv - Hodnotiace prehľady v KÚ mlieka - podla priciny
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_VyrKravyPodlaPriciny]
	@chov varchar(9)
AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
	case when DOVVYR = 51												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s51_0,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s51_1,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s51_2,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s51_3,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s51_4,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s51_5,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s51_6,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s51_7,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s51_8,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s51_9,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s51_10,
	case when DOVVYR = 51 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s51_11,
	case when DOVVYR = 51 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek51,
	case when DOVVYR = 51 then MLIEKOPR else 0 end as ml51,
	case when DOVVYR = 51 then 1 else 0 end as poc51,

	case when DOVVYR = 52												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s52_0,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s52_1,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s52_2,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s52_3,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s52_4,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s52_5,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s52_6,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s52_7,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s52_8,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s52_9,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s52_10,
	case when DOVVYR = 52 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s52_11,
	case when DOVVYR = 52 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek52,
	case when DOVVYR = 52 then MLIEKOPR else 0 end as ml52,
	case when DOVVYR = 52 then 1 else 0 end as poc52,

	case when DOVVYR = 53												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s53_0,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s53_1,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s53_2,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s53_3,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s53_4,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s53_5,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s53_6,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s53_7,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s53_8,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s53_9,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s53_10,
	case when DOVVYR = 53 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s53_11,
	case when DOVVYR = 53 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek53,
	case when DOVVYR = 53 then MLIEKOPR else 0 end as ml53,
	case when DOVVYR = 53 then 1 else 0 end as poc53,

	case when DOVVYR = 54												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s54_0,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s54_1,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s54_2,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s54_3,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s54_4,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s54_5,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s54_6,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s54_7,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s54_8,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s54_9,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s54_10,
	case when DOVVYR = 54 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s54_11,
	case when DOVVYR = 54 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek54,
	case when DOVVYR = 54 then MLIEKOPR else 0 end as ml54,
	case when DOVVYR = 54 then 1 else 0 end as poc54,

	case when DOVVYR = 55												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s55_0,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s55_1,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s55_2,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s55_3,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s55_4,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s55_5,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s55_6,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s55_7,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s55_8,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s55_9,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s55_10,
	case when DOVVYR = 55 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s55_11,
	case when DOVVYR = 55 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek55,
	case when DOVVYR = 55 then MLIEKOPR else 0 end as ml55,
	case when DOVVYR = 55 then 1 else 0 end as poc55,

	case when DOVVYR = 56												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s56_0,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s56_1,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s56_2,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s56_3,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s56_4,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s56_5,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s56_6,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s56_7,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s56_8,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s56_9,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s56_10,
	case when DOVVYR = 56 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s56_11,
	case when DOVVYR = 56 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek56,
	case when DOVVYR = 56 then MLIEKOPR else 0 end as ml56,
	case when DOVVYR = 56 then 1 else 0 end as poc56,

	case when DOVVYR = 57												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s57_0,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s57_1,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s57_2,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s57_3,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s57_4,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s57_5,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s57_6,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s57_7,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s57_8,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s57_9,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s57_10,
	case when DOVVYR = 57 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s57_11,
	case when DOVVYR = 57 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek57,
	case when DOVVYR = 57 then MLIEKOPR else 0 end as ml57,
	case when DOVVYR = 57 then 1 else 0 end as poc57,

	case when DOVVYR = 58												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s58_0,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s58_1,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s58_2,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s58_3,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s58_4,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s58_5,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s58_6,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s58_7,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s58_8,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s58_9,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s58_10,
	case when DOVVYR = 58 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s58_11,
	case when DOVVYR = 58 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek58,
	case when DOVVYR = 58 then MLIEKOPR else 0 end as ml58,
	case when DOVVYR = 58 then 1 else 0 end as poc58,

	case when DOVVYR = 59												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s59_0,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s59_1,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s59_2,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s59_3,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s59_4,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s59_5,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s59_6,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s59_7,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s59_8,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s59_9,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s59_10,
	case when DOVVYR = 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s59_11,
	case when DOVVYR = 59 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek59,
	case when DOVVYR = 59 then MLIEKOPR else 0 end as ml59,
	case when DOVVYR = 59 then 1 else 0 end as poc59,

	case when DOVVYR = 60												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s60_0,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s60_1,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s60_2,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s60_3,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s60_4,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s60_5,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s60_6,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s60_7,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s60_8,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s60_9,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s60_10,
	case when DOVVYR = 60 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s60_11,
	case when DOVVYR = 60 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek60,
	case when DOVVYR = 60 then MLIEKOPR else 0 end as ml60,
	case when DOVVYR = 60 then 1 else 0 end as poc60,

	case when DOVVYR = 61												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s61_0,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s61_1,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s61_2,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s61_3,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s61_4,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s61_5,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s61_6,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s61_7,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s61_8,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s61_9,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s61_10,
	case when DOVVYR = 61 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s61_11,
	case when DOVVYR = 61 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek61,
	case when DOVVYR = 61 then MLIEKOPR else 0 end as ml61,
	case when DOVVYR = 61 then 1 else 0 end as poc61,

	case when DOVVYR = 62												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s62_0,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s62_1,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s62_2,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s62_3,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s62_4,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s62_5,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s62_6,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s62_7,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s62_8,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s62_9,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s62_10,
	case when DOVVYR = 62 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s62_11,
	case when DOVVYR = 62 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek62,
	case when DOVVYR = 62 then MLIEKOPR else 0 end as ml62,
	case when DOVVYR = 62 then 1 else 0 end as poc62

	into #temp_vyrad_podla_znakov
	  FROM CM_Krava
	  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)

	select kod, dovodvyr, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, poc, priemvek, priemml
		 into #temp2_vyrad_podla_znakov_ from
	(select
	'51' as kod,(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '51') as dovodvyr, sum(s51_0) as m0, sum(s51_1) as m1,sum(s51_2) as m2,sum(s51_3) as m3, sum(s51_4) as m4, sum(s51_5) as m5, sum(s51_6) as m6, sum(s51_7) as m7, sum(s51_8) as m8, sum(s51_9) as m9, sum(s51_10) as m10, sum(s51_11) as m11, sum(poc51) as poc, sum(vek51)/nullif(sum(poc51), 0) as priemvek, sum(ml51)/nullif(sum(poc51), 0) as priemml
	 from #temp_vyrad_podla_znakov
	union
	select
	'52',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '52'), sum(s52_0), sum(s52_1),sum(s52_2),sum(s52_3), sum(s52_4), sum(s52_5), sum(s52_6), sum(s52_7), sum(s52_8), sum(s52_9), sum(s52_10), sum(s52_11),  sum(poc52), sum(vek52)/nullif(sum(poc52), 0), sum(ml52)/nullif(sum(poc52), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'53',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '53'),sum(s53_0), sum(s53_1),sum(s53_2),sum(s53_3), sum(s53_4), sum(s53_5), sum(s53_6), sum(s53_7), sum(s53_8), sum(s53_9), sum(s53_10), sum(s53_11),  sum(poc53), sum(vek53)/nullif(sum(poc53), 0), sum(ml53)/nullif(sum(poc53), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'54',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '54'),sum(s54_0), sum(s54_1),sum(s54_2),sum(s54_3), sum(s54_4), sum(s54_5), sum(s54_6), sum(s54_7), sum(s54_8), sum(s54_9), sum(s54_10), sum(s54_11),  sum(poc54), sum(vek54)/nullif(sum(poc54), 0), sum(ml54)/nullif(sum(poc54), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'55',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '55'),sum(s55_0), sum(s55_1),sum(s55_2),sum(s55_3), sum(s55_4), sum(s55_5), sum(s55_6), sum(s55_7), sum(s55_8), sum(s55_9), sum(s55_10), sum(s55_11),  sum(poc55), sum(vek55)/nullif(sum(poc55), 0), sum(ml55)/nullif(sum(poc55), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'56',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '56'),sum(s56_0), sum(s56_1),sum(s56_2),sum(s56_3), sum(s56_4), sum(s56_5), sum(s56_6), sum(s56_7), sum(s56_8), sum(s56_9), sum(s56_10), sum(s56_11),  sum(poc56), sum(vek56)/nullif(sum(poc56), 0), sum(ml56)/nullif(sum(poc56), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'57',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '57'),sum(s57_0), sum(s57_1),sum(s57_2),sum(s57_3), sum(s57_4), sum(s57_5), sum(s57_6), sum(s57_7), sum(s57_8), sum(s57_9), sum(s57_10), sum(s57_11),  sum(poc57), sum(vek57)/nullif(sum(poc57), 0), sum(ml57)/nullif(sum(poc57), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'58',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '58'),sum(s58_0), sum(s58_1),sum(s58_2),sum(s58_3), sum(s58_4), sum(s58_5), sum(s58_6), sum(s58_7), sum(s58_8), sum(s58_9), sum(s58_10), sum(s58_11),  sum(poc58), sum(vek58)/nullif(sum(poc58), 0), sum(ml58)/nullif(sum(poc58), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'59',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '59'),sum(s59_0), sum(s59_1),sum(s59_2),sum(s59_3), sum(s59_4), sum(s59_5), sum(s59_6), sum(s59_7), sum(s59_8), sum(s59_9), sum(s59_10), sum(s59_11),  sum(poc59), sum(vek59)/nullif(sum(poc59), 0), sum(ml59)/nullif(sum(poc59), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'60',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '60'),sum(s60_0), sum(s60_1),sum(s60_2),sum(s60_3), sum(s60_4), sum(s60_5), sum(s60_6), sum(s60_7), sum(s60_8), sum(s60_9), sum(s60_10), sum(s60_11),  sum(poc60), sum(vek60)/nullif(sum(poc60), 0), sum(ml60)/nullif(sum(poc60), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'61',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '61'),sum(s61_0), sum(s61_1),sum(s61_2),sum(s61_3), sum(s61_4), sum(s61_5), sum(s61_6), sum(s61_7), sum(s61_8), sum(s61_9), sum(s61_10), sum(s61_11),  sum(poc61), sum(vek61)/nullif(sum(poc61), 0), sum(ml61)/nullif(sum(poc61), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'62',(select TEXTVYR from CC_DovodyVyradenia where DOVVYR = '62'),sum(s62_0), sum(s62_1),sum(s62_2),sum(s62_3), sum(s62_4), sum(s62_5), sum(s62_6), sum(s62_7), sum(s62_8), sum(s62_9), sum(s62_10), sum(s62_11),  sum(poc62), sum(vek62)/nullif(sum(poc62), 0), sum(ml62)/nullif(sum(poc62), 0)
	 from #temp_vyrad_podla_znakov
	union
	select
	'Celkom','Celkom',sum(s51_0)+sum(s52_0)+sum(s53_0)+sum(s54_0)+sum(s55_0)+sum(s56_0)+sum(s57_0)+sum(s58_0)+sum(s59_0)+sum(s60_0)+sum(s61_0)+sum(s62_0), 
	sum(s51_1)+sum(s52_1)+sum(s53_1)+sum(s54_1)+sum(s55_1)+sum(s56_1)+sum(s57_1)+sum(s58_1)+sum(s59_1)+sum(s60_1)+sum(s61_1)+sum(s62_1),
	sum(s51_2)+sum(s52_2)+sum(s53_2)+sum(s54_2)+sum(s55_2)+sum(s56_2)+sum(s57_2)+sum(s58_2)+sum(s59_2)+sum(s60_2)+sum(s61_2)+sum(s62_2),
	sum(s51_3)+sum(s52_3)+sum(s53_3)+sum(s54_3)+sum(s55_3)+sum(s56_3)+sum(s57_3)+sum(s58_3)+sum(s59_3)+sum(s60_3)+sum(s61_3)+sum(s62_3),
	sum(s51_4)+sum(s52_4)+sum(s53_4)+sum(s54_4)+sum(s55_4)+sum(s56_4)+sum(s57_4)+sum(s58_4)+sum(s59_4)+sum(s60_4)+sum(s61_4)+sum(s62_4),
	sum(s51_5)+sum(s52_5)+sum(s53_5)+sum(s54_5)+sum(s55_5)+sum(s56_5)+sum(s57_5)+sum(s58_5)+sum(s59_5)+sum(s60_5)+sum(s61_5)+sum(s62_5),
	sum(s51_6)+sum(s52_6)+sum(s53_6)+sum(s54_6)+sum(s55_6)+sum(s56_6)+sum(s57_6)+sum(s58_6)+sum(s59_6)+sum(s60_6)+sum(s61_6)+sum(s62_6),
	sum(s51_7)+sum(s52_7)+sum(s53_7)+sum(s54_7)+sum(s55_7)+sum(s56_7)+sum(s57_7)+sum(s58_7)+sum(s59_7)+sum(s60_7)+sum(s61_7)+sum(s62_7),
	sum(s51_8)+sum(s52_8)+sum(s53_8)+sum(s54_8)+sum(s55_8)+sum(s56_8)+sum(s57_8)+sum(s58_8)+sum(s59_8)+sum(s60_8)+sum(s61_8)+sum(s62_8),
	sum(s51_9)+sum(s52_9)+sum(s53_9)+sum(s54_9)+sum(s55_9)+sum(s56_9)+sum(s57_9)+sum(s58_9)+sum(s59_9)+sum(s60_9)+sum(s61_9)+sum(s62_9),
	sum(s51_10)+sum(s52_10)+sum(s53_10)+sum(s54_10)+sum(s55_10)+sum(s56_10)+sum(s57_10)+sum(s58_10)+sum(s59_10)+sum(s60_10)+sum(s61_10)+sum(s62_10),
	sum(s51_11)+sum(s52_11)+sum(s53_11)+sum(s54_11)+sum(s55_11)+sum(s56_11)+sum(s57_11)+sum(s58_11)+sum(s59_11)+sum(s60_11)+sum(s61_11)+sum(s62_11),
	sum(poc51)+sum(poc52)+sum(poc53)+sum(poc54)+sum(poc55)+sum(poc56)+sum(poc57)+sum(poc58)+sum(poc59)+sum(poc60)+sum(poc61)+sum(poc62),
	(sum(vek51)+sum(vek52)+sum(vek53)+sum(vek54)+sum(vek55)+sum(vek56)+sum(vek57)+sum(vek58)+sum(vek59)+sum(vek60)+sum(vek61)+sum(vek62)) / (select count(*) FROM CM_Krava where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)),
	(sum(ml51)+sum(ml52)+sum(ml53)+sum(ml54)+sum(ml55)+sum(ml56)+sum(ml57)+sum(ml58)+sum(ml59)+sum(ml60)+sum(ml61)+sum(ml62)) / (select count(*) FROM CM_Krava  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11))
	 from #temp_vyrad_podla_znakov) as s

	declare @s varchar(1000)

	set @s = 'select dovodvyr as [Dôvod vyradenia], 
	nullif(m0, 0) as ['+convert(varchar(2), getdate(), 10)  + '.' + convert(varchar(2), getdate(), 11)+'], 
	nullif(m1, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-1), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-1), 11)+'], 
	nullif(m2, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-2), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-2), 11)+'], 
	nullif(m3, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-3), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-3), 11)+'], 
	nullif(m4, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-4), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-4), 11)+'], 
	nullif(m5, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-5), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-5), 11)+'], 
	nullif(m6, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-6), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-6), 11)+'], 
	nullif(m7, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-7), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-7), 11)+'], 
	nullif(m8, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-8), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-8), 11)+'], 
	nullif(m9, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-9), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-9), 11)+'], 
	nullif(m10, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-10), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-10), 11)+'], 
	nullif(m11, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-11), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-11), 11)+'], 
	poc as Celkom,
	convert(decimal(4,2),priemvek/365.0) as [Priem. vek (roky)], 
	convert(decimal(7,2),priemml) as [Priem. mlieko (kg)]
	from #temp2_vyrad_podla_znakov_
	where priemvek is not null
	order by kod'

	EXEC(@s)
END
go


	CREATE FUNCTION dbo.fn_diagramobjects() 
	RETURNS int
	WITH EXECUTE AS N'dbo'
	AS
	BEGIN
		declare @id_upgraddiagrams		int
		declare @id_sysdiagrams			int
		declare @id_helpdiagrams		int
		declare @id_helpdiagramdefinition	int
		declare @id_creatediagram	int
		declare @id_renamediagram	int
		declare @id_alterdiagram 	int 
		declare @id_dropdiagram		int
		declare @InstalledObjects	int

		select @InstalledObjects = 0

		select 	@id_upgraddiagrams = object_id(N'dbo.sp_upgraddiagrams'),
			@id_sysdiagrams = object_id(N'dbo.sysdiagrams'),
			@id_helpdiagrams = object_id(N'dbo.sp_helpdiagrams'),
			@id_helpdiagramdefinition = object_id(N'dbo.sp_helpdiagramdefinition'),
			@id_creatediagram = object_id(N'dbo.sp_creatediagram'),
			@id_renamediagram = object_id(N'dbo.sp_renamediagram'),
			@id_alterdiagram = object_id(N'dbo.sp_alterdiagram'), 
			@id_dropdiagram = object_id(N'dbo.sp_dropdiagram')

		if @id_upgraddiagrams is not null
			select @InstalledObjects = @InstalledObjects + 1
		if @id_sysdiagrams is not null
			select @InstalledObjects = @InstalledObjects + 2
		if @id_helpdiagrams is not null
			select @InstalledObjects = @InstalledObjects + 4
		if @id_helpdiagramdefinition is not null
			select @InstalledObjects = @InstalledObjects + 8
		if @id_creatediagram is not null
			select @InstalledObjects = @InstalledObjects + 16
		if @id_renamediagram is not null
			select @InstalledObjects = @InstalledObjects + 32
		if @id_alterdiagram  is not null
			select @InstalledObjects = @InstalledObjects + 64
		if @id_dropdiagram is not null
			select @InstalledObjects = @InstalledObjects + 128
		
		return @InstalledObjects 
	END

  
go

-- =============================================
-- Author:		<PSSR,š.p.>
-- Create date: <12.3.2013>
-- Description:	<Výber pre zostavu - 5. Plemenna skladba teliat (MP)>
-- =============================================
CREATE PROCEDURE dbo.C_ZZ_MP_plemskladtel
		@chov varchar(9)
AS
BEGIN
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'telata_temp') drop table PLIS.dbo.telata_temp

	SELECT TYPPLEM, COUNT(*) AS pocet into PLIS.dbo.telata_temp
	FROM PLIS.dbo.CM_Telata 
	WHERE (PRIZNAKKU = '2') AND (DOVVYR IS NULL) AND (CISTELATA NOT IN
		  (SELECT CISKRAVY FROM PLIS.dbo.CM_Krava AS k)) 
	AND (CHOVATEL = @chov)
	GROUP BY TYPPLEM

	declare @vsetky int = (select SUM(pocet) from PLIS.dbo.telata_temp)

	SELECT s.typplem, s.pocet, p.TYPC, p.NAZTYP, convert(varchar, p.OD) + ' - ' + convert(varchar, p.DO) as HLPL, convert(varchar, p.ODZOS) + ' - ' + convert(varchar, p.DOZOS) as ZOSPL, (s.pocet / convert(decimal,@vsetky)) * 100 as podiel
	FROM PLIS.dbo.telata_temp as s LEFT OUTER JOIN
		  CC_PlemTyp as p ON s.typplem = p.TYPC
	order by pocet desc

	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'telata_temp') drop table PLIS.dbo.telata_temp
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_zvaz_rocenka]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      [CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      [CharChov][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                  
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		[CharChov_KOD][varchar] (2) null,
        [CharChov][varchar] (30) null
		
	)
	
insert into @Laktacie	
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
	  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov

 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
 
 select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		b.KOD as CharChov_KOD,
		b.NAZOV as CharChov
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		CharChov_KOD,
		CharChov
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		CharChov_KOD,
		CharChov
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		CharChov_KOD,
		CharChov
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, CharChov_KOD,CharChov	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	CharChov_KOD as CharChov_KOD,
	CharChov as Charchov
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, CharChov_KOD,CharChov)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1,
    CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
   CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov   

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	[CharChov_KOD][varchar] (2) null,
    [CharChov][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	CharChov_KOD as CharChov_KOD,
    CharChov as Charchov

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.CharChov_KOD ,l.CharChov
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)


------insert dbo.CR_LaktacneZostavy 
------	(
------	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

------	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
------	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

------	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

------	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
------	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
------	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
------	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
------	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
------	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

------	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
------	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

------	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
------	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
------	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
------	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
------	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+('ChZ'+l.CharChov_KOD) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and ZapojL2.CharChov_KOD=l.CharChov_KOD )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.CharChov_KOD=l.CharChov_KOD )
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKV2.CharChov_KOD=l.CharChov_KOD)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and LAKVC.CharChov_KOD=l.CharChov_KOD )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and L1.CharChov_KOD=l.CharChov_KOD) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.CharChov_KOD=l.CharChov_KOD)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.CharChov_KOD=l.CharChov_KOD)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	

		end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 4.1.2016
-- Description:	Vrati mesacnu uzavierku chovov (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[CR_RozborakTlac]
  	@CHOV varchar(9) = '',
	@rok varchar (4),
	@mesiac  varchar(2)
	--@DEKADA varchar(1)= ''
as
begin
	select	
	   (m.KROKR + m.PODNIK + m.CHOVMAS) as chov
      ,SKUPINA
	  ,CISKRAVY
      ,DATPOSK
      ,MESSP
      ,DEKSP 
      ,MESKONN
      ,DATPREPOC1
      ,DATPREPOC2
      ,ROKKON
      ,DENDCH
      ,INTERCH
      ,DATINTD
      ,DATINTH
      ,ZMENA
	  ,ZNAK
	  
      ,DOJIVOST
	  ,LDNI
      ,ZNBREZ
      ,FARBA
      ,DATINSP
      ,DATOTOC
      ,MESIAC
      ,ROK
      --,DEKADA
      ,RESPONDER
	 , a.nazov as chov_nazov,
		b.NAZOV as podnik_nazov,
		c.NAZOV as kraj,
		d.NAZOV as okres,
		a.OBEC as obec,
		(Select case when (m.ZNAK ='V') then ('1')else ('0') end) as Filter
		
	   from plis.dbo.View_CP_TLACRP_ES as m
	   Left join plis.dbo.NM_CHOVMAS a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV)=  (m.KROKR + m.PODNIK + m.CHOVMAS) 
	   LEFT JOIN plis.dbo.NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	   LEFT JOIN plis.dbo.NC_KRAJ c ON (b.KRAJ = c.KRAJ)
	   LEFT JOIN plis.dbo.NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
	
	where
	 a.ZRUS is null --and b.ZRUS is null 
	 and a.TYPZV = 1
	 and ((m.KROKR + m.PODNIK + m.CHOVMAS )like @CHOV+'%' or @CHOV is null)
	and m.ROK=@rok and m.MESIAC = @mesiac --and (m.dekada = @DEKADA or @DEKADA is null)

	
	order by (m.KROKR + m.PODNIK + m.CHOVMAS) ,m.skupina,m.CISKRAVY,Filter
	end
go

CREATE PROCEDURE [dbo].[Roc_MLHD_23_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN
delete from Roc_MLHD_Tab_23A where rok=datepart(year, @DatumOd)
DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				kraj+okres+podnik + stlpec_6c from Roc_MLHD_Tab_22A where stlpec_6c not in ('','199','999') and stpec_6 <>'Chov spolu' and rok = DATEPART(YEAR, @datumOd)

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_23 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


END

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Vyber udajov do reportu k laktaciam...stvrtrocna a rocna zostava
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_1]
	@oznacenie varchar(9)='',
	@datumOd date,
	@datumDo date
	

as	
begin

select distinct Oznacenie, DatumOd,DatumDo,l.Region,PlemTyp,
	(select (KRAJ+OKRES+PODNIK+chov)FROM NM_CHOVMAS a where (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as chov,
	(select nazov FROM NM_CHOVMAS a where (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as chov_nazov,
	(select nazov FROM NM_PODNIK b where (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
	(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
	(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
	(select nazov FROM NM_CHOVMAS a where (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
	
	e.NAZOV as region_nazov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,
	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	from plis.dbo.CR_LaktacneZostavy as l  

	 
	LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
	LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
	--LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
	LEFT JOIN NC_REGION e ON (e.REG = l.REGION)

where (Oznacenie = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo 
order by Oznacenie
end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.06.2016
-- Description:	Priprava dat pre zostavu - Prehľad vyradených kráv - Hodnotiace prehľady v KÚ mlieka - podla veku
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_VyrKravyPodlaVeku]
	@chov varchar(9)
AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
	case when PORPREBLAK = 1 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s51_0,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s51_1,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s51_2,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s51_3,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s51_4,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s51_5,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s51_6,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s51_7,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s51_8,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s51_9,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s51_10,
	case when PORPREBLAK = 1 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s51_11,
	case when PORPREBLAK = 1 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek51,
	case when PORPREBLAK = 1 then MLIEKOPR else 0 end as ml51,
	case when PORPREBLAK = 1 then 1 else 0 end as poc51,

	case when PORPREBLAK = 2												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s52_0,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s52_1,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s52_2,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s52_3,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s52_4,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s52_5,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s52_6,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s52_7,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s52_8,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s52_9,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s52_10,
	case when PORPREBLAK = 2 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s52_11,
	case when PORPREBLAK = 2 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek52,
	case when PORPREBLAK = 2 then MLIEKOPR else 0 end as ml52,
	case when PORPREBLAK = 2 then 1 else 0 end as poc52,

	case when PORPREBLAK = 3												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s53_0,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s53_1,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s53_2,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s53_3,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s53_4,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s53_5,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s53_6,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s53_7,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s53_8,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s53_9,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s53_10,
	case when PORPREBLAK = 3 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s53_11,
	case when PORPREBLAK = 3 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek53,
	case when PORPREBLAK = 3 then MLIEKOPR else 0 end as ml53,
	case when PORPREBLAK = 3 then 1 else 0 end as poc53,

	case when PORPREBLAK = 4												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s54_0,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s54_1,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s54_2,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s54_3,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s54_4,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s54_5,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s54_6,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s54_7,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s54_8,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s54_9,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s54_10,
	case when PORPREBLAK = 4 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s54_11,
	case when PORPREBLAK = 4 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek54,
	case when PORPREBLAK = 4 then MLIEKOPR else 0 end as ml54,
	case when PORPREBLAK = 4 then 1 else 0 end as poc54,

	case when PORPREBLAK = 5												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s55_0,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s55_1,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s55_2,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s55_3,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s55_4,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s55_5,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s55_6,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s55_7,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s55_8,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s55_9,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s55_10,
	case when PORPREBLAK = 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s55_11,
	case when PORPREBLAK = 5 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek55,
	case when PORPREBLAK = 5 then MLIEKOPR else 0 end as ml55,
	case when PORPREBLAK = 5 then 1 else 0 end as poc55,

	case when PORPREBLAK > 5												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s56_0,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s56_1,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s56_2,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s56_3,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s56_4,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s56_5,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s56_6,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s56_7,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s56_8,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s56_9,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s56_10,
	case when PORPREBLAK > 5 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s56_11,
	case when PORPREBLAK > 5 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek56,
	case when PORPREBLAK > 5 then MLIEKOPR else 0 end as ml56,
	case when PORPREBLAK > 5 then 1 else 0 end as poc56

	into #temp_vyrad_podla_veku
	  FROM CM_Krava
	  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)

	select poradie, kod, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, poc, priemvek, priemml
		 into #temp2_vyrad_podla_veku_ from
	(select
	1 as poradie, 'Laktácia 1' as kod, sum(s51_0) as m0, sum(s51_1) as m1,sum(s51_2) as m2,sum(s51_3) as m3, sum(s51_4) as m4, sum(s51_5) as m5, sum(s51_6) as m6, sum(s51_7) as m7, sum(s51_8) as m8, sum(s51_9) as m9, sum(s51_10) as m10, sum(s51_11) as m11, sum(poc51) as poc, sum(vek51)/nullif(sum(poc51), 0) as priemvek, sum(ml51)/nullif(sum(poc51), 0) as priemml
	 from #temp_vyrad_podla_veku
	union
	select
	2, 'Laktácia 2', sum(s52_0), sum(s52_1),sum(s52_2),sum(s52_3), sum(s52_4), sum(s52_5), sum(s52_6), sum(s52_7), sum(s52_8), sum(s52_9), sum(s52_10), sum(s52_11),  sum(poc52), sum(vek52)/nullif(sum(poc52), 0), sum(ml52)/nullif(sum(poc52), 0)
	 from #temp_vyrad_podla_veku
	union
	select
	3, 'Laktácia 3', sum(s53_0), sum(s53_1),sum(s53_2),sum(s53_3), sum(s53_4), sum(s53_5), sum(s53_6), sum(s53_7), sum(s53_8), sum(s53_9), sum(s53_10), sum(s53_11),  sum(poc53), sum(vek53)/nullif(sum(poc53), 0), sum(ml53)/nullif(sum(poc53), 0)
	 from #temp_vyrad_podla_veku
	union
	select
	4, 'Laktácia 4', sum(s54_0), sum(s54_1),sum(s54_2),sum(s54_3), sum(s54_4), sum(s54_5), sum(s54_6), sum(s54_7), sum(s54_8), sum(s54_9), sum(s54_10), sum(s54_11),  sum(poc54), sum(vek54)/nullif(sum(poc54), 0), sum(ml54)/nullif(sum(poc54), 0)
	 from #temp_vyrad_podla_veku
	union
	select
	5, 'Laktácia 5', sum(s55_0), sum(s55_1),sum(s55_2),sum(s55_3), sum(s55_4), sum(s55_5), sum(s55_6), sum(s55_7), sum(s55_8), sum(s55_9), sum(s55_10), sum(s55_11),  sum(poc55), sum(vek55)/nullif(sum(poc55), 0), sum(ml55)/nullif(sum(poc55), 0)
	 from #temp_vyrad_podla_veku
	union
	select
	6, 'Laktácia > 5', sum(s56_0), sum(s56_1),sum(s56_2),sum(s56_3), sum(s56_4), sum(s56_5), sum(s56_6), sum(s56_7), sum(s56_8), sum(s56_9), sum(s56_10), sum(s56_11),  sum(poc56), sum(vek56)/nullif(sum(poc56), 0), sum(ml56)/nullif(sum(poc56), 0)
	 from #temp_vyrad_podla_veku
	union
	select
	11, 'Celkom',sum(s51_0)+sum(s52_0)+sum(s53_0)+sum(s54_0)+sum(s55_0)+sum(s56_0), 
	sum(s51_1)+sum(s52_1)+sum(s53_1)+sum(s54_1)+sum(s55_1)+sum(s56_1),
	sum(s51_2)+sum(s52_2)+sum(s53_2)+sum(s54_2)+sum(s55_2)+sum(s56_2),
	sum(s51_3)+sum(s52_3)+sum(s53_3)+sum(s54_3)+sum(s55_3)+sum(s56_3),
	sum(s51_4)+sum(s52_4)+sum(s53_4)+sum(s54_4)+sum(s55_4)+sum(s56_4),
	sum(s51_5)+sum(s52_5)+sum(s53_5)+sum(s54_5)+sum(s55_5)+sum(s56_5),
	sum(s51_6)+sum(s52_6)+sum(s53_6)+sum(s54_6)+sum(s55_6)+sum(s56_6),
	sum(s51_7)+sum(s52_7)+sum(s53_7)+sum(s54_7)+sum(s55_7)+sum(s56_7),
	sum(s51_8)+sum(s52_8)+sum(s53_8)+sum(s54_8)+sum(s55_8)+sum(s56_8),
	sum(s51_9)+sum(s52_9)+sum(s53_9)+sum(s54_9)+sum(s55_9)+sum(s56_9),
	sum(s51_10)+sum(s52_10)+sum(s53_10)+sum(s54_10)+sum(s55_10)+sum(s56_10),
	sum(s51_11)+sum(s52_11)+sum(s53_11)+sum(s54_11)+sum(s55_11)+sum(s56_11),
	sum(poc51)+sum(poc52)+sum(poc53)+sum(poc54)+sum(poc55)+sum(poc56),
	(sum(vek51)+sum(vek52)+sum(vek53)+sum(vek54)+sum(vek55)+sum(vek56)) / (select count(*) FROM CM_Krava where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)),
	(sum(ml51)+sum(ml52)+sum(ml53)+sum(ml54)+sum(ml55)+sum(ml56)) / (select count(*) FROM CM_Krava  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11))
	 from #temp_vyrad_podla_veku) as s

	declare @s varchar(1000)

	set @s = 'select kod as [Vek], 
	nullif(m0, 0) as ['+convert(varchar(2), getdate(), 10)  + '.' + convert(varchar(2), getdate(), 11)+'], 
	nullif(m1, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-1), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-1), 11)+'], 
	nullif(m2, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-2), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-2), 11)+'], 
	nullif(m3, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-3), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-3), 11)+'], 
	nullif(m4, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-4), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-4), 11)+'], 
	nullif(m5, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-5), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-5), 11)+'], 
	nullif(m6, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-6), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-6), 11)+'], 
	nullif(m7, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-7), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-7), 11)+'], 
	nullif(m8, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-8), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-8), 11)+'], 
	nullif(m9, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-9), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-9), 11)+'], 
	nullif(m10, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-10), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-10), 11)+'], 
	nullif(m11, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-11), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-11), 11)+'], 
	poc as Celkom,
	convert(decimal(4,2),priemvek/365.0) as [Priem. vek (roky)], 
	convert(decimal(7,2),priemml) as [Priem. mlieko (kg)]
	from #temp2_vyrad_podla_veku_
	where priemvek is not null
	order by poradie'

	EXEC(@s)
END
go


CREATE PROCEDURE [dbo].[CR_KUHD_mesacne]
		@chov VARCHAR(9) ,
		@rok INT ,
		@mesiac INT--,
		--@dekada INT

AS

SET NOCOUNT ON -- vypnutie message riadkov
SET ANSI_WARNINGS OFF --vyputie message chyb pri agregacii

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE, @minusrok2 DATE, @minusrok3 DATE

-- Mesacna zostava KUHD mlieko
-- vstupne parametre: chov, rok, mesiac

-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc


--			1.1: 29.01.2016, doplnenie stlpcov, smerodajnej ochylky podla FANDu
--			1.2: 2.2.2016, doplnenie stlpcov MKO1KSL1, MKO1MLL1, MKO12KSL1, MKO12MLL1
--			1.3: 2.2.2016, doplnenie stlpcov MLIEKOPRIEMERZL1, MLIEKOPRIEMERKL1
--			1.4: 3.3.2016, doplnenie RKO12KS, zmeny vypoctov podla FAND
--			1.5: 22.3.2016, pridany datum kontroly, skupiny
--			1.6: 22.6.2016, opraveny datum DKON300 pre vypocet laktacii
--		    1.7: 19.7.2016, oprava mlieka pre prve a druhe kontroly
--			1.8: 21.7.2016, pridany datum kontroly
--			1.9: 25.7.2017, zrusenie dekad
-- VS		update0179.sql
-- Redmine	#1902


BEGIN
				
		SET @aktualny_rok = YEAR(GETDATE())
        --SET @start_day = 15
        --SET @end_day = 14

        -- nastavenie startovacieho  a koncoveho datumu podla dekady
		-- ak dekada = 1, startovaci den dekady je 15 (15-30 v mesiaci)
		-- ak dekada = 9, startovaci den dekady je 1 (1-14 v mesiaci)
		
		--IF (@dekada = 1)
		--	BEGIN
		--	SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
		--	END
		--ELSE
		--	BEGIN
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
		--	END
		
		--IF (@dekada = 1)
		--	BEGIN
			SET @end = CAST(eomonth(@start) AS date)
		--	END
		--ELSE
		--	BEGIN
		--	SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
		--	END

        SELECT  @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
        SELECT  @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia
        SELECT  @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
        SELECT  @end2 = DATEADD(dd, -1, @start1)	-- koniec predchadzajuceho obdobia (minus 2 mesiace)
		SELECT	@minusrok = DATEADD(dd, -350, @start)
		SELECT	@minusrok2 = DATEADD(mm, -1, @minusrok) -- pre potreby druhych kontrol
		SELECT	@minusrok3 = DATEADD(mm, -13, @start) -- pre potreby druhych kontrol

		-----------------------------------------------
		-- prve a druhe kontroly
		-----------------------------------------------


DECLARE @DatPKon DATE
DECLARE @DatPRok DATE
DECLARE @startdekady DATE
DECLARE @datum2 DATE

	-- nastavenie pociatocneho datumu podla cisla dekady, mesiaca a roka
	SELECT @startdekady = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	--END

	-- nastavenie konca mesiaca
	SELECT @end = EOMONTH(@startdekady)
	SET @datum2  = DATEADD(MONTH,-2,@startdekady)

	--DECLARE @den int			
    --SET @startdekady = CAST(CAST(DATEPART(year, @DatPKon) AS varchar) + '-' + CAST(DATEPART(month, @DatPKon) AS varchar) + '-' + CAST(@den AS varchar) AS DATETIME)
	
	SELECT @DatPRok = /*CASE @dekada
	--	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
		WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
		WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	--END	
	
	-- nastavenie datumu minus rok

	
	SELECT @DatPRok = /*CASE @dekada
	WHEN 1 THEN*/ DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	--WHEN 9 THEN DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	/*WHEN 9 THEN DATEADD(MM, -1, DATEADD(yy, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE)))
	END*/


	PRINT 'Nastavenie startu dekady v kontrole ' + CONVERT(VARCHAR, @startdekady);
	PRINT "-------------------------------------------------"
	PRINT 'Datum pre vypocet rocneho zoznamu: ' + CONVERT(VARCHAR, @DatPRok);
	PRINT "-------------------------------------------------"
	
	DECLARE @counter INT

			IF OBJECT_ID('tempdb..#kontrola1') IS NOT NULL
			BEGIN
            	DROP TABLE #kontrola1
			END
	
	
			IF OBJECT_ID('tempdb..#prvekontroly') IS NOT NULL
			BEGIN
            		DROP TABLE #prvekontroly
				END

		SELECT ciskravy, COUNT(ciskravy) AS pocetkontrol, MIN(DATKONTR) AS K1, MAX(DATKONTR) AS KP, AVG(MLIEKPR) as mliekopr
				INTO #prvekontroly FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov GROUP  BY CISKRAVY

		-- debug info -- 
		--SELECT * FROM #prvekontroly WHERE K1=KP ORDER BY KP desc


		-- datum poslednej kontroly
		DECLARE @poslednakontrola DATE, @predposlednakontrola DATE
		DECLARE @RKO1KS INT, @RKO1KSL1 INT, @RKO1ML DECIMAL(7,2), @RKO12ML DECIMAL(7,2), @MKO1ML DECIMAL(7,2), @MKO12ML DECIMAL(7,2)
		DECLARE @MKO1KS INT, @MKO12KS INT, @MKO1KSL1 INT, @MKO1MLL1 DECIMAL(7,2), @MKO12KSL1 INT, @MKO12MLL1 DECIMAL (7,2), @RKO12KS INT
		DECLARE @RKO1MLL1 DECIMAL (4,2), @RKO12MLL1 DECIMAL (4,2), @RKO12KSL1 INT


        SELECT @poslednakontrola = MAX(K1) FROM #prvekontroly
		SELECT TOP 1 @predposlednakontrola = K1 FROM #prvekontroly WHERE K1 < (SELECT  MAX(K1) FROM #prvekontroly) ORDER BY K1 desc         
		


		-- stlpce:
		-- cislo kravy, pocet kontrol, prva kontrola, posledna kontrola

		SELECT pk.*, naplak.PORLAK, naplak.lakdnin, pk.mliekopr AS mlieknor --, kontroly.MLIEKPR AS mliekopr1
		INTO #kontrola1 FROM #prvekontroly pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
		WHERE pk.K1 >= @minusrok AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00'


			SELECT @MKO1KS = COUNT(*), @MKO1ML = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND KP = @poslednakontrola
			PRINT "1 kontrola / mesiac: " + CONVERT(varchar, @MKO1KS)
			PRINT "-------------------------------------------------"

	SELECT @MKO1KSL1 = COUNT(*), @MKO1MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND PORLAK = 1 AND KP = @poslednakontrola
	
	PRINT "Posledna kontrola: " + convert(varchar, @poslednakontrola)
	PRINT "-------------------------------------------------"	
	
	--SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 OR pocetkontrol = 2
	SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol <= 2 AND PORLAK = 1 AND KP BETWEEN @start AND @end


		IF OBJECT_ID('tempdb.dbo.#temp_pocet', 'U') IS NOT NULL
		DROP TABLE #temp_pocet;

		SELECT k1.CISKRAVY, COUNT(k1.CISKRAVY) AS pocet INTO #temp_pocet FROM #kontrola1 k1
		LEFT JOIN dbo.CM_Kontroly ko ON (k1.CISKRAVY = ko.CISKRAVY)
		WHERE ko.DATKONTR <= @end GROUP BY k1.CISKRAVY ORDER BY pocet

		SELECT @MKO12KS = COUNT(*), @MKO12ML = AVG(ko.MLIEKPR) FROM #temp_pocet p
		LEFT JOIN dbo.CM_Kontroly ko ON (ko.CISKRAVY = p.CISKRAVY)
		WHERE pocet BETWEEN 1 AND 2 AND ko.DATKONTR BETWEEN @start AND @end

	PRINT "1 a 2 kontrola kus/mesiac: " + convert(varchar, @MKO12KS)
	PRINT "1 a 2 kontrola mlieko/mesiac: " + convert(varchar, @MKO12ML)
	PRINT "-------------------------------------------------"		


BEGIN
		
		IF OBJECT_ID('tempdb..#kontroly01') IS NOT NULL
			BEGIN DROP TABLE #kontroly01 END

	    CREATE TABLE #kontroly01 (ciskravy VARCHAR(14), pocet INT, prva DATE, druha DATE, mliekopr DECIMAL(7,2), mliekopr2 DECIMAL(7,2),  lak INT)
	
		DECLARE @ciskravy VARCHAR(14), @pocet INT, @poradie INT, @prva DATE, @posledna DATE, @druha DATE, @mliekopr DECIMAL(7,2), @mliekopr2 DECIMAL(7,2), @lak INT
			
			SET @counter = 0;
		DECLARE kontroly_cursor CURSOR
		FOR
			SELECT COUNT(CISKRAVY) AS pocet, CISKRAVY  FROM dbo.CM_Kontroly WHERE DATKONTR > @DatPRok AND CISCHOVU = @chov
				GROUP BY CISKRAVY
	
    OPEN kontroly_cursor
    FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
						SELECT TOP 1 @ciskravy = ko.CISKRAVY, @prva = ko.DATKONTR,  @mliekopr = MLIEKPR, @lak = n.PORLAK  FROM dbo.CM_Kontroly ko
						LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = ko.CISKRAVY)
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy ORDER BY ko.DATKONTR ASC

						SELECT @pocet = COUNT(ko.ciskravy) FROM dbo.CM_Kontroly ko
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy
						GROUP BY ko.ciskravy

						SELECT TOP 1 @druha = dva.DATKONTR, @mliekopr2 = dva.MLIEKPR  FROM
						(SELECT TOP 2 CISKRAVY, DATKONTR, MLIEKPR FROM dbo.CM_Kontroly
						WHERE CISCHOVU = @chov AND CISKRAVY = @ciskravy ORDER BY DATKONTR ASC) AS dva
						ORDER BY datkontr DESC
				
						INSERT  INTO #kontroly01 ( ciskravy, pocet, prva, druha, mliekopr, mliekopr2, lak) VALUES  ( @ciskravy, @pocet, @prva, @druha,  @mliekopr, @mliekopr2, @lak)


            FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

        END
END

CLOSE kontroly_cursor
DEALLOCATE kontroly_cursor

--debug info
--SELECT * FROM #kontroly01


SELECT		@RKO1KS = COUNT(ko.ciskravy), @RKO1ML = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL
			--GROUP BY ko.ciskravy

			PRINT "1 kontrola / rok: " + CONVERT(varchar, @RKO1KS)
			PRINT "-------------------------------------------------"

SELECT		@RKO1KSL1 = COUNT(ko.ciskravy), @RKO1MLL1 = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL AND ko.lak = 1

SELECT		@RKO12KS = COUNT(ko.ciskravy), @RKO12ML = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha)

SELECT		@RKO12KSL1 = COUNT(ko.ciskravy), @RKO12MLL1 = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha) AND ko.lak = 1

			



		-----------------------------------------------

		IF OBJECT_ID('tempdb..#kravy') IS NOT NULL DROP TABLE #kravy
		IF OBJECT_ID('tempdb..#kx') IS NOT NULL DROP TABLE #kx
		IF OBJECT_ID('tempdb..#kx1') IS NOT NULL DROP TABLE #kx1
		IF OBJECT_ID('tempdb..#kx2') IS NOT NULL DROP TABLE #kx2

		SELECT ko.* INTO #kravy
		FROM dbo.CM_Kontroly ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		--WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')
		WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND ISNULL(kr.DOVVYR, '') = '' OR kr.DOVVYR = '00'


		DECLARE @POCKRAVZAP INT, @POCKRAVKONT INT, @POCKRAVKONT1LAK INT, @POCKRAVZAP1LAK INT
        DECLARE @POCKRAVKONTR1L INT, @2kontrol INT, @2kontrola INT, @1kontrola1lak INT, @2kontrola1lak INT

			-- pocet krav v kontrole
			SELECT @POCKRAVKONT = COUNT(CISKRAVY) FROM #kravy

			-- pocet krav v kontrole na 1.laktacii
			SELECT @POCKRAVKONT1LAK = COUNT(CISKRAVY) FROM #kravy WHERE PORPREBLAK = (1)

			-- pocet krav v chove
			SELECT @POCKRAVZAP = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov AND ISNULL(DOVVYR,'') = '' OR DOVVYR = '00'

			--pocet krav na 1 laktacii
			SELECT @POCKRAVZAP1LAK = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov
					AND (ISNULL(DOVVYR,'') = '' OR DOVVYR = '00')
					AND PORPREBLAK = '1'

			-- vlozim zaznamy zo zvoleneho mesiaca do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			-- vlozim zaznamy zo zvoleneho mesiaca - 1 do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx1
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start1 AND @end1

			-- vlozim zaznamy zo zvoleneho mesiaca - 2 do temper
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx2
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start2 AND @end2

			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom
			SELECT @POCKRAVKONTR1L = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi
			SELECT @2kontrola = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL)

			
			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom / 1.laktacia
			SELECT @1kontrola1lak = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL AND a.PORPREBLAK = 1
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi / 1.laktacia
			SELECT @2kontrola1lak = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL) AND a.PORPREBLAK = 1
			
			
			
			DROP TABLE #kx
			DROP TABLE #kx1
			DROP TABLE #kx2

			
			DECLARE @mesiac_minus_1 INT, @mesiac_minus_2 INT, @rok_minus_1 INT
			DECLARE @rok_minus_2 AS INT
			DECLARE @MLIEKOCELKOM	AS DECIMAL(10,2)
			DECLARE @MLIEKOCELKOML1	AS DECIMAL(10,2)
			DECLARE @TUKPER AS DECIMAL (7,2)
			DECLARE @BIELKPER AS DECIMAL(7,2)
			DECLARE @SB AS FLOAT 
			DECLARE @pocet_TB_11 AS INT
			DECLARE @pocet_TB_1115 AS INT
			DECLARE @pocet_TB_15 AS INT
			DECLARE @pocet_TB_11_LAK1 AS INT
			DECLARE @pocet_TB_1115_LAK1 AS INT
			DECLARE @pocet_TB_15_LAK1 AS INT

			-- sucet mlieka / vsetky kravy v kg
			
			SELECT @MLIEKOCELKOM	= SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			SELECT @MLIEKOCELKOML1	= SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	AND PORPREBLAK = 1
	
			-- priemerne percento tuku

			SELECT @TUKPER = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @TUKPERL1 DECIMAL(4,2)
			SELECT @TUKPERL1 = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			

			-- priemerne percento bielkovin
			SELECT @BIELKPER = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @BIELKPERL1 DECIMAL(4,2)
			SELECT @BIELKPERL1 = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @SB = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @SBL1 INT
			SELECT @SBL1 = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			-----------------------------------------------------------------------------------------------------
			-- pomery tuk / bielkovina
			-----------------------------------------------------------------------------------------------------

			DECLARE @POMERTB11V INT
			SELECT	@POMERTB11V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	 AND (k.PERCTUKU / k.PERCBIELK) < 1.1

			DECLARE @POMERTB15V INT
			SELECT @POMERTB15V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) > 1.5

			DECLARE @POMERTBOKV INT
			SELECT @POMERTBOKV = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) BETWEEN 1.1 AND 1.5

			DECLARE @POMERTB11VL1 INT
			SELECT @POMERTB11VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) < 1.1 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1

			DECLARE @POMERTB15VL1 INT
			SELECT @POMERTB15VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) > 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
			
			DECLARE @POMERTBOKVL1 INT
			SELECT @POMERTBOKVL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) BETWEEN 1.1 AND 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
							

		----------------------------------------------------------------------------------------------------------------------------


			DECLARE @lak_al INT
            DECLARE @POCKRAV100 INT
			DECLARE @POCKRAV200 INT
			DECLARE @POCKRAV300 INT

			DECLARE @POCKRAV100L1 INT
			DECLARE @POCKRAV200L1 INT
			DECLARE @POCKRAV300L1 INT
			
			DECLARE @MLIEKO100 INT
			DECLARE @TUK100 FLOAT
			DECLARE @TUK100PER FLOAT
			DECLARE @BIELK100 FLOAT
			DECLARE @BIELK100PER FLOAT
			DECLARE @TB100 FLOAT
			DECLARE @TB100PER FLOAT

			DECLARE @MLIEKO200 INT
			DECLARE @TUK200 FLOAT
			DECLARE @TUK200PER FLOAT
			DECLARE @BIELK200 FLOAT
			DECLARE @BIELK200PER FLOAT
			DECLARE @TB200 FLOAT
			DECLARE @TB200PER FLOAT

			DECLARE @MLIEKO300 INT
			DECLARE @TUK300 FLOAT
			DECLARE @TUK300PER FLOAT
			DECLARE @BIELK300 FLOAT
			DECLARE @BIELK300PER FLOAT
			DECLARE @TB300 FLOAT
			DECLARE @TB300PER FLOAT

			DECLARE @MLIEKO100L1 INT
			DECLARE @TUK100L1 FLOAT
			DECLARE @TUK100PERL1 FLOAT
			DECLARE @BIELK100L1 FLOAT
			DECLARE @BIELK100PERL1 FLOAT
			DECLARE @TB100L1 FLOAT
			DECLARE @TB100L1PER FLOAT

			DECLARE @MLIEKO200L1 INT
			DECLARE @TUK200L1 FLOAT
			DECLARE @TUK200PERL1 FLOAT
			DECLARE @BIELK200L1 FLOAT
			DECLARE @BIELK200PERL1 FLOAT
			DECLARE @TB200L1 FLOAT
			DECLARE @TB200PERL1 FLOAT

			DECLARE @MLIEKO300L1 INT
			DECLARE @TUK300L1 FLOAT
			DECLARE @TUK300PERL1 FLOAT
			DECLARE @BIELK300L1 FLOAT
			DECLARE @BIELK300PERL1 FLOAT
			DECLARE @TB300L1 FLOAT
			DECLARE @TB300PERL1 FLOAT


			
			SELECT @lak_al = COUNT(N.ciskravy)
						FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)

			SELECT DISTINCT ciskravy, DATKONTR INTO #kontrola FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end

			DECLARE @datum_kontroly DATE
			SELECT @datum_kontroly = MAX(DATKONTR) FROM #kontrola
			
			--100 denne pocet
			SELECT
			@POCKRAV100 = COUNT(N.ciskravy),
			@MLIEKO100 = AVG(N.MLIEKNOR),
			@TUK100 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PER = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PER = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100 = @TUK100 + @BIELK100,
			@TB100PER = ROUND(@TUK100PER + @BIELK100PER,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND krava.DOVVYR IS NULL

			PRINT "Pocet 100 dni laktacie: " + CONVERT(varchar, @POCKRAV100)
			PRINT "-------------------------------------------------"


			--200 denne pocet
			SELECT
			@POCKRAV200 = COUNT(N.ciskravy),
			@MLIEKO200 = AVG(N.MLIEKNOR),
			@TUK200 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PER = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PER = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200 = @TUK200 + @BIELK200,
			@TB200PER = ROUND(@TUK200PER + @BIELK200PER,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND krava.DOVVYR IS NULL

			PRINT "Pocet 200 dni laktacie: " + CONVERT(varchar, @POCKRAV200)
			PRINT "-------------------------------------------------"

			DECLARE @dkon300 DATE
			--SET @dkon300 = DATEADD(mm, 0, CAST(CAST(@rok-1 AS VARCHAR(4)) + '-' + CAST(@mesiac-1 AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			--SET @dkon300 = DATEADD(mm, -1, CAST(CAST(@rok-1 AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			SET @dkon300 = DATEADD(mm, -1, CAST(CAST(@rok-1 AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))

			PRINT "Vypocet obdobia pre uzavrete laktacie: " + CONVERT(varchar, @dkon300)
			PRINT "-------------------------------------------------"

			-- vsetky kravy s uzavretou laktaciou
			SELECT
			@POCKRAV300 = COUNT(L.CISKRAVY),
			@MLIEKO300 = AVG(L.MLIEKNOR),
			@TUK300 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PER = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PER = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300 = @TUK300 + @BIELK300,
			@TB300PER = ROUND(@TUK300PER + @BIELK300PER,2)

			FROM dbo.CM_Laktacie L
			WHERE  L.chovatel = @chov and (zmena = '30' or zmena = '40' )  and ((DatUkonl > @dkon300 and Datuknorl is null )  or   DatUknorl > @dkon300)
			GROUP by L.CHOVATEL

			PRINT "Pocet uzavretych laktacii: " + CONVERT(varchar, @POCKRAV300)
			PRINT "-------------------------------------------------"

			--100 denne pocet / 1 laktacia
			SELECT
			@POCKRAV100L1 = COUNT(N.ciskravy),
			@MLIEKO100L1 = AVG(N.MLIEKNOR),
			@TUK100L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PERL1 = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100L1 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PERL1 = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100L1 = @TUK100L1 + @BIELK100L1,
			@TB100L1PER = ROUND(@TUK100PERL1 + @BIELK100PERL1,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			PRINT "Pocet 100 L1 dni laktacie: " + CONVERT(varchar, @POCKRAV100L1)
			PRINT "-------------------------------------------------"

			
			--200 denne pocet / 1 laktacia
			SELECT
			@POCKRAV200L1 = COUNT(N.ciskravy),
			@MLIEKO200L1 = AVG(N.MLIEKNOR),
			@TUK200L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PERL1 = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200L1 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PERL1 = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200L1 = @TUK200L1 + @BIELK200L1,
			@TB200PERL1 = ROUND(@TUK200PERL1 + @BIELK200PERL1,2)
			
			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			PRINT "Pocet 200 L1 dni laktacie: " + CONVERT(varchar, @POCKRAV200L1)
			PRINT "-------------------------------------------------"

			-- vsetky kravy s uzavretou laktaciou / 1.laktacia


			SELECT
			@POCKRAV300L1 = COUNT(N.ciskravy),
			@MLIEKO300L1 = AVG(L.MLIEKNOR),
			@TUK300L1 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PERL1 = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300L1 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PERL1 = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300L1 = @TUK300L1 + @BIELK300L1,
			@TB300PERL1 = ROUND(@TUK300PERL1 + @BIELK300PERL1,2)
			FROM dbo.CM_Laktacie L
		
			LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
			WHERE  L.CHOVATEL = @chov AND L.PORLAK = 1 AND (L.ZMENA = '30' or L.ZMENA = '40' )  and ((L.DatUkonl > @dkon300 and L.Datuknorl is null )  or   L.DatUknorl > @dkon300)

			PRINT "Pocet uzavretych L1: " + CONVERT(varchar, @POCKRAV300L1)
			PRINT "-------------------------------------------------"
	

			-----------------------------------------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - pocty (dni)
			----------------------------------------------------------------------------------------------


DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @count INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @POCINS1 INT;
DECLARE @POCINS2 INT;
DECLARE @POCINS3 INT;
DECLARE @POCINS4VIAC INT;
DECLARE @POCTELNYCH INT;


BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                LEFT JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                LEFT JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie

    SELECT  @POCINS1 = COUNT(@krava) FROM   #inseminacie
    SELECT  @POCINS2 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 2
	SELECT  @POCINS3 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 3
    SELECT  @POCINS4VIAC = COUNT(@krava) FROM   #inseminacie WHERE   poradie >= 4
    SELECT  @POCTELNYCH = COUNT(@krava) FROM   #inseminacie WHERE   ivyse = 9


    --SELECT  @inseminacia1 AS inseminacia1 ,  @inseminacia2 AS inseminacia2 ,  @inseminacia3 AS inseminacia3 , @inseminacia4 AS inseminacia4 , @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / interval
			----------------------------------------------------------------------------------------------


DECLARE @odatum DATE;
DECLARE @rozdiel_dni INT;
DECLARE @POCINTR INT;
DECLARE @POCSERV INT;


BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99

            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / servisperioda
			----------------------------------------------------------------------------------------------
	
	PRINT "debug info"

BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )
	

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
			
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	
	OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum


    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
						
            SELECT  
                    @pdatum = MAX(IDAIN) ,
					@ivyse = MAX(IVYSE),
				--	@ivyse = CONVERT(INT, CASE WHEN IsNumeric(CONVERT(VARCHAR(12), MAX(IVYSE))) = 1 then CONVERT(VARCHAR(12), MAX(IVYSE)) else 0 End),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)

            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
			
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
			
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum
        END

		
		SELECT  @POCSERV = AVG(rozdiel_dni) FROM #servisperioda

		END

		CLOSE servisperioda_cursor
		DEALLOCATE servisperioda_cursor
		PRINT 'servisperioda'

		----------------------------------------------------------------------------------------------
		-- Medziobdobie
		----------------------------------------------------------------------------------------------


		PRINT 'zaciatok medziobdobie'
		DECLARE @POCMEDZ INT
		SELECT @POCMEDZ =  AVG(n.MEDZIOBD) FROM dbo.CM_Krava k 
				LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY) WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL) AND ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00'
		PRINT 'koniec medziobdobie - hodnota je:' + CONVERT(VARCHAR, @POCMEDZ)

		-- SKUP
		DECLARE @SKUP VARCHAR(2)
		SELECT @SKUP = SKUPINA FROM dbo.CM_Krava WHERE CISKRAVY = @ciskravy

	
		DELETE  FROM dbo.CR_KUHD_MesUzavCH_1x WHERE   chovatel = @chov AND mesiac = @mesiac AND rok = @rok --AND dekada = @dekada
		PRINT 'vymazal som stare data:'
		PRINT 'chovatel: '+ CONVERT(VARCHAR, @chov);
		PRINT 'rok: '+ CONVERT(VARCHAR, @rok);
		PRINT 'mesiac: '+ CONVERT(VARCHAR, @mesiac);
		--PRINT 'dekada: '+ CONVERT(VARCHAR, @dekada);
		INSERT  INTO dbo.CR_KUHD_MesUzavCH_1x

			(	chovatel,
                mesiac,
                rok ,
				--dekada,	
				RKO1ML,				-- rok - 1.kontroly - mlieko
				RKO1KS,				-- rok - 1.kontroly - kusy
				RKO12ML,			-- rok - 1. - 2. kontroly - mlieko
				RKO12KS,			-- rok - 1. - 2. kontroly - kusy
				RKO1KSL1,			-- rok - 1.kontroly - mlieko - 1.laktacia
				RKO1MLL1,			-- rok - 1.kontroly - kusy - 1.laktacia
				RKO12KSL1,			-- rok - 1. - 2. kontroly - kusy - 1.laktacia
				RKO12MLL1,			-- rok - 1. - 2. kontroly - mlieko - 1.laktacia
				MKO1KS,				-- mesiac - 1.kontroly - kusy
				MKO1ML,				-- mesiac - 1.kontroly - mlieko
				MKO12KS,			-- mesiac - 1.- 2. kontroly - kusy
				MKO12ML,			-- mesiac - 1.- 2. kontroly - mlieko
				POCKRAVZAP,
				POCKRAVKONT,
				POCKRAVKONTL1,
				POCKRAVZAPL1,
				MLIEKOCELKOM,	
				MLIEKOCELKOML1,	
				MLIEKOPRIEMERZ,	
				MLIEKOPRIEMERK,	
				TUKPER,			
				TUKPERL1,		
				BIELKPER,		
				BIELKPERL1,
				SB,
				SBL1,
				POMERTB11V,
				POMERTB15V,
				POMERTBOKV,
				POMERTB11VL1,
				POMERTB15VL1,
				POMERTBOKVL1,
				POCKRAV100,
				MLIEKO100,
				TUK100,
				TUK100PER,
				BIELK100,
				BIELK100PER,
				TB100,
				TB100PER,
				POCKRAV200,
				MLIEKO200,
				TUK200,
				TUK200PER,
				BIELK200,
				BIELK200PER,
				TB200,
				TB200PER,
				POCKRAV300,
				MLIEKO300,
				TUK300,
				TUK300PER,
				BIELK300,
				BIELK300PER,
				TB300,
				TB300PER,
				POCKRAV100L1,
				MLIEKO100L1,
				TUK100L1,
				TUK100PERL1,
				BIELK100L1,
				BIELK100PERL1,
				TB100L1,
				TB100L1PER,
				POCKRAV200L1,
				MLIEKO200L1,
				TUK200L1,
				TUK200PERL1,
				BIELK200L1,
				BIELK200PERL1,
				TB200L1,
				TB200PERL1,
				POCKARV300L1,
				MLIEKO300L1,
				TUK300L1,
				TUK300PERL1,
				BIELK300L1,
				BIELK300PERL1,
				TB300L1,
				TB300PERL1,
				POCINS1,
				POCINS2,
				POCINS3,
				POCINS4VIAC,
				POCTELNYCH,
				POCINTR,
				POCSERV,
				POCMEDZ,
				MKO1KSL1,
				MKO1MLL1,
				MKO12KSL1,
				MKO12MLL1,
				MLIEKOPRIEMERZL1,	
				MLIEKOPRIEMERKL1,
				generovane,
				datkon,
				SKUP,
				datum_kontroly

			)
			VALUES

			(	@chov ,
                @mesiac ,
                @rok,
				--@dekada,
				@RKO1ML,
				@RKO1KS,
				ROUND(((@RKO12ML+@RKO1ML)/2),1), --@RKO12ML,
				@RKO1KS + @RKO12KS,
				@RKO1KSL1,
				@RKO1MLL1,
				@RKO1KSL1 + @RKO12KSL1,
				ROUND(((@RKO12MLL1+@RKO1MLL1)/2),1), --@RKO12MLL1,
				@MKO1KS,
				@MKO1ML,
				@MKO12KS,
				@MKO12ML,
				@POCKRAVZAP,
				@POCKRAVKONT,
				@POCKRAVKONT1LAK,
				@POCKRAVZAP1LAK,
				ROUND(@MLIEKOCELKOM,1),
				ROUND(@MLIEKOCELKOML1,1),
				ROUND(@MLIEKOCELKOM / @POCKRAVZAP,2),
				ROUND(@MLIEKOCELKOM / @POCKRAVKONT,2),
				ROUND(@TUKPER, 2),
				ROUND(@TUKPERL1, 2),
				ROUND(@BIELKPER, 2),
				ROUND(@BIELKPERL1, 2),
				@SB,
				@SBL1,
				@POMERTB11V,
				@POMERTB15V,
				@POMERTBOKV,
				@POMERTB11VL1,
				@POMERTB15VL1,
				@POMERTBOKVL1,
				@POCKRAV100,
				@MLIEKO100,
				@TUK100,
				@TUK100PER,
				@BIELK100,
				@BIELK100PER,
				@TB100,
				@TB100PER,
				@POCKRAV200,
				@MLIEKO200,
				@TUK200,
				@TUK200PER,
				@BIELK200,
				@BIELK200PER,
				@TB200,
				@TB200PER,
				@POCKRAV300,
				@MLIEKO300,
				@TUK300,
				@TUK300PER,
				@BIELK300,
				@BIELK300PER,
				@TB300,
				@TB300PER,
				@POCKRAV100L1,
				@MLIEKO100L1,
				@TUK100L1,
				@TUK100PERL1,
				@BIELK100L1,
				@BIELK100PERL1,
				@TB100L1,
				@TB100L1PER,
				@POCKRAV200L1,
				@MLIEKO200L1,
				@TUK200L1,
				@TUK200PERL1,
				@BIELK200L1,
				@BIELK200PERL1,
				@TB200L1,
				@TB200PERL1,
				@POCKRAV300L1,
				@MLIEKO300L1,
				@TUK300L1,
				@TUK300PERL1,
				@BIELK300L1,
				@BIELK300PERL1,
				@TB300L1,
				@TB300PERL1,
				@POCINS1,
				@POCINS2,
				@POCINS3,
				@POCINS4VIAC,
				@POCTELNYCH,
				@POCINTR,
				@POCSERV,
				@POCMEDZ,
				@MKO1KSL1,
				@MKO1MLL1,
				@MKO12KSL1,
				@MKO12MLL1,
				ROUND(@MLIEKOCELKOML1 / @POCKRAVZAP1LAK,2),
				ROUND(@MLIEKOCELKOML1 / @POCKRAVKONT1LAK,2),
				GETDATE(),
				@DatPKon,
				@SKUP,
				@datum_kontroly
			)


		EXEC CR_KUHD_selekcne @chov, @rok, @mesiac--, @dekada

END


go

CREATE procedure [dbo].[Rocenka_OV_Tab_MlKraje]
    @rok varchar(4),
	@Zameranie varchar (1)
	
as
begin

	
	--select * 
	--from plis.dbo.SP_Rocenka_MlKraje as z
	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
	--	where  z.rok = @rok and z.Zameranie = @Zameranie

	-- 19.01.2018 oprava, zmena tabulky plemena, a nesmu byt 0 laktacie
	select z.* , p.Nazov as NazovD
	from dbo.SP_Rocenka_MlKraje as z
	left outer join plis.dbo.SC_Plemena_N as p on p.KODPL = z.Plemeno
		where  z.rok = @rok and z.Zameranie = @Zameranie and Vsetky_Lakt <> 0
	
end
go

-- =============================================
-- Author:		David Florek
-- Create date:	05.01.2017
-- Description:	Nastavi priznak, ze boli riadky exportovane do heliosu.
-- =============================================
CREATE PROCEDURE EC_ZamkniPoHeliose
	@rok varchar(4),
	@mesiac varchar(2),
	@typ varchar(10),
	@login varchar(255)
AS
BEGIN
	set nocount on;

	if(OBJECT_ID('tempdb..#idr') Is Not Null)
		drop table #idr;

	select IDR, Chov, Faktura, Pocet, Datum, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel into #idr
	from EC_RiadokFaktury
		where
		SUBSTRING(Datum, 1, 2) = RIGHT(@rok, 2)
		and SUBSTRING(Datum, 3, 2) = REPLICATE('0',2 - LEN(@mesiac)) + @mesiac
		and Typ = @typ
		and Zruseny = 0 and Exportovany = 0 and Potvrdeny = 1;

	declare riadok cursor for
		select IDR, Chov, Faktura, Pocet, Datum, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel from #idr;

	declare @idr int,
		@chov varchar(9),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	open riadok;
	fetch next from riadok into @idr, @chov, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel;
	WHILE @@FETCH_STATUS = 0
		begin
			update EC_RiadokFaktury set Exportovany = 1 where IDR = @idr;

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil)
			values (@idr, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Export do Heliosu', GETDATE(), @login);
			fetch next from riadok into @idr, @chov, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel;
		end
	close riadok;
	deallocate riadok;
END
go

-- =============================================
-- Author:		<Author,,Machynova>
-- Create date: <Create Date,,10.2.2015>
-- Description:	<Description,,pre zadaneho barana vytvori tabulku s poctom prip.a obahn.bahnic a narodenych jahniat>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_RokyBar] 
(	
	-- Add the parameters for the function here
 @pbarcis varchar(8)	)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.KrOkr,b.Podnik,b.stado,b.RokEv1,b.rokev2,sum(1) as pocprip, 
 sum( case when (b.datobah is not NULL) or (b.narod>0) then 1 else 0 end) as pocobah, SUM(b.narod) AS bnarod, sum(b.narbar) as bnarbar,
 sum(b.odchov) as bodchov, sum(b.odchBar) as bOdchBar, sum(b.NaChov) as bNaChov,
 sum(b.NaChovBar) as bNaChovBar,m.nazov
FROM View_SP_PremBah2 b LEFT OUTER JOIN dbo.View_NM_MenStadOv m
 on b.KrOkr=m.KrOkr and b.Podnik=m.podnik and b.stado=m.CHOV 
 WHERE  (b.barcis= @pbarcis)
GROUP BY b.KrOkr,b.Podnik,b.Stado,b.RokEv1,b.RokEv2,m.nazov
)
go

CREATE PROCEDURE [dbo].[Roc_MPHD_zaklad_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR

SELECT DISTINCT ch.kraj+ch.okres+ch.podnik + ch.CHOV  
		FROM NM_CHOVMAS as ch
		left outer join  NM_HDDETAIL as n on n.kraj+n.okres+n.podnik =ch.kraj+ch.okres+ch.podnik 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) = '7'
			and ch.chov not in('010','699')
			 -- and (((NOT(SPVYKON IN ('0', '4', '5'))) AND (PRIZNAK = '01') AND TECHUSMD = '00') or (PRIZNAK='99' and SPVYKON<>'0'))
			 and SPVYKON = '4'  AND PRIZNAK in ('01','99') AND TECHUSMD = '00'


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MPHD_zaklad @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


END

go

/** Rocenka MASO - prva-zakladna tabulka, z nej vychadzaju dalsie zostavy, cize Roc_MPHD_17   **/
/**--exec Roc_MPHD_zaklad '201008711','2017' **/


CREATE procedure [dbo].[Roc_MPHD_zaklad]
		@chov varchar(14),
		@DatumOd date,
		@datumDO date
as
begin 

delete from Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR,@DatumOd) and kraj + okres+Podnik+chov + mastal = @chov

declare @zaklad table 
	(
	Kraj varchar(1),
	Okres varchar(2),
	Podnik varchar(3), 
	Chov varchar(2),
	Mastal varchar(1),
	CisloZv varchar(14),
	OtecLIN varchar(3),
	OtecReg int,
	Typ varchar(3),
	Pohl varchar(2),
	KrJal varchar(2),
	Porlak int,
	Hmotnar float,
	Priebpor varchar(1),
	Vykon int,
	Dovvyr int, 
	Datvyr date,
	Datnar date,
	Datotel date,
	Hm120 int,
	Vek120 int,
	Hm210 int, 
	Vek201 int, 
	Hm365 int, 
	Vek365 int, 
	Hm500 int,
	Vek500 int,
	Vek_otel_dni int, 
	Medziobd int,
	Pocet_dni_na_chove int, 
	PL1 varchar(2),
	KR1 float
	)

insert into @zaklad 
	(Kraj ,Okres,Podnik ,Chov ,Mastal ,CisloZv ,OtecLIN ,OtecReg ,Typ ,Pohl ,KrJal ,Porlak ,Hmotnar ,Priebpor, DOVVYR, Datvyr, Datnar, Datotel,/* Vek_otel_dni,*/ Medziobd,Pocet_dni_na_chove, PL1, KR1 )
		select
				substring(t.chovatel,1,1) as Kraj,
				substring(t.chovatel,2,2) as Okres, 
				substring(t.chovatel,4,3) as Podnik, 
				substring(t.chovatel,7,2) as Chov, 
				substring(t.chovatel,9,1) as Mastal,
				t.CISTELATA as CisloZv, 
				t.OtecLIN as OtecLIN, 
				t.OTECREG as OtecREG,
				t.TYPPLEM as Typ,
				t.POHLAVIE as Pohl,
				case when t.POHLAVIE in ('02','22','32','42','52','82','92') then 'J'
					when t.POHLAVIE in ('01','11','31','41','51','81','91') then 'B'
					when t.POHLAVIE = '**' then 'MD'
					end as KrJal,
				null as Porlak, 
				t.HMOTNAR as Hmotnar, 
				t.PRIEBPOR as Priebpor,
				t.DOVVYR as Dovvyr,
				t.DATVYR as Datvyr,
				t.datnar as Datnar,
				null as Datotel,
				--null AS Vek_otel_dni,	
				null as Medziobd,
				null as Pocet_dni_na_chove,
				t.PL1 as PL1,
				t.KR1 as KR1			
			from CM_Telata  as t

			where t.CHOVATEL = @chov --'201008711'--'106704701'
				and t.CISTELATA not in (select ciskravy from CM_Krava)
				and (t.DOVVYR is null or (t.DOVVYR is not null and t.DATVYR >=  @DatumOd))
				and t.PRIZNAKKU = '2' 
				--and t.CISTELATA not in (select USCISLO from CM_Byci)
	union

	--declare @chov varchar(14)= '509708721' , @rok int = '2017'
		select
			substring(k.chovatel,1,1) as Kraj,
			substring(k.chovatel,2,2) as Okres, 
			substring(k.chovatel,4,3) as Podnik, 
			substring(k.chovatel,7,2) as Chov, 
			substring(k.chovatel,9,1) as Mastal,
			k.CISKRAVY as CisloZv, 
			k.OtecLIN as OtecLIN, 
			k.OTECREG as OtecREG,
			k.TYPPLEM as Typ,
			k.POHLAVIE as Pohl,
			'K' as KrJal,
			pp.PorLakt as Porlak, 
			t.HMOTNAR as Hmotnar, 
			t.PRIEBPOR as Priebpor,
			k.DOVVYR as Dovvyr,
			k.DATVYR as Datvyr,
			k.datnar as Datnar,
			pp.Datotel as Datotel,
			--case when pp.PorLakt = 1 and DATEDIFF(day, k.DATNAR, pp.Datotel) < 2200 then (select datediff (day, k.DATNAR, pp.Datotel))
			--else '' end	AS Vek_otel_dni,	
			case when k.PORPREBLAK > 1 and pp.Medziobd >= 100 and Medziobd <= 800 then pp.Medziobd 
			else '' end	AS Medziobd,
			case when k.DATVYR is null then 365
				when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
				end as Pocet_dni_na_chove,
			k.PL1 as PL1,
			k.KR1 as KR1
			

		from CM_Krava  as k
			left outer join CM_Telata as t on k.CISKRAVY = t.CISTELATA
			LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS pp ON k.CISKRAVY = pp.Ciskrava AND pp.Datotel=(Select TOP (1) Datotel from Cp_Meso_TelataPoLaktacii WHERE Ciskrava=k.Ciskravy order by Datotel desc )
		
        where  k.CHOVATEL = @chov
			and (k.DOVVYR is null or (k.DOVVYR is not null and k.DATVYR >=  @DatumOd ))
			and k.PRIZNAKKU = '2'

	declare @vek_otel table
	(
	ciskravy varchar(14),
	vek_otel int
	)
	insert @vek_otel
		select distinct cislozv, datediff (day, z.DATNAR, pp.Datotel) 
		from @zaklad as z 
		left outer join Cp_Meso_TelataPoLaktacii as pp on pp.Ciskrava = z.CisloZv
		where pp.PorLakt = 1 
		and pp.Datotel = (Select TOP (1) Datotel from Cp_Meso_TelataPoLaktacii WHERE Ciskrava= z.CisloZv order by Datotel )
		and datediff (day, z.DATNAR, pp.Datotel) < 2200 

	update @zaklad
	set Vek_otel_dni = ( select vek_otel from @vek_otel where ciskravy = CisloZv)
	--select * from @zaklad order by CisloZv

	declare  @porovnanie table
		(
		CisZv varchar(14),
		Dniprepoc int,
		DniVaz int,
		Rozdiel int, 
		HmotPrep float
		)

	if (select count(v.DNIVAZ) from @zaklad as z 
		left outer join CM_Vazenia as v on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 120) > 1 
	begin 
	insert into @porovnanie
		(CisZv, Dniprepoc, DniVaz, Rozdiel, HmotPrep)
	select CISTELATA as CisZv,'120' as Dniprepoc, dnivaz as DniVaz , ABS(dnivaz-dniprepoc) as Rozdiel, HMOTPREPOC as HmotPrep from @zaklad as z 
		left outer join CM_Vazenia as v on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 120 and (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd ))
		end

	if (select count(v.DNIVAZ) from CM_Vazenia as v
		left outer join @zaklad as z on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 210) > 1 
	begin 
	insert into @porovnanie
		(CisZv, Dniprepoc, DniVaz, Rozdiel, HmotPrep)
	select CISTELATA as CisZv,'210' as Dniprepoc, dnivaz as DniVaz , ABS(dnivaz-dniprepoc) as Rozdiel, HMOTPREPOC as HmotPrep from @zaklad as z 
		left outer join CM_Vazenia as v on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 210 and (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd ))
		end

	if (select count(v.DNIVAZ) from CM_Vazenia as v
		left outer join @zaklad as z on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 365) > 1 
	begin 
	insert into @porovnanie
		(CisZv, Dniprepoc, DniVaz, Rozdiel, HmotPrep)
	select CISTELATA as CisZv,'365' as Dniprepoc, dnivaz as DniVaz , ABS(dnivaz-dniprepoc) as Rozdiel, HMOTPREPOC as HmotPrep from @zaklad as z 
		left outer join CM_Vazenia as v on z.CisloZv = v.CISTELATA
		where /*CISTELATA = 'SK000801553462' and */DNIPREPOC = 365 and (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd ))
		end

	if (select count(v.DNIVAZ) from CM_Vazenia as v
		left outer join @zaklad as z on z.CisloZv = v.CISTELATA
		where (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd )) and DNIPREPOC = 500) > 1 
	begin 
	insert into @porovnanie
		(CisZv, Dniprepoc, DniVaz, Rozdiel, HmotPrep)
	select CISTELATA as CisZv,'500' as Dniprepoc, dnivaz as DniVaz , ABS(dnivaz-dniprepoc) as Rozdiel, HMOTPREPOC as HmotPrep from @zaklad as z 
		left outer join CM_Vazenia as v on z.CisloZv = v.CISTELATA
		where /*CISTELATA = 'SK000801553462' and */DNIPREPOC = 500 and (select datepart(year, v.DATVAZ)) <= (select datepart(year, @DatumOd ))
		end

		----select * from @porovnanie order by CisZv, DniVaz
	
	declare @hmotnost120 table
		(
		cistelata varchar(14),
		dnivaz120 int,
		Hmot120 float
		)

	declare @hmotnost210 table
		(
		cistelata varchar(14),
		dnivaz210 int,
		Hmot210 float
		)
	
	declare @hmotnost365 table
		(
		cistelata varchar(14),
		dnivaz365 int,
		Hmot365 float
		)

	declare @hmotnost500 table
		(
		cistelata varchar(14),
		dnivaz500 int,
		Hmot500 float
		)

	insert into @hmotnost120
		Select CisloZv as cistelata, (Select top 1 DniVaz from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '120' order by Rozdiel) as dnivaz120,
				 (Select top 1 HmotPrep from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '120' order by Rozdiel ) as Hmot120 
		from @zaklad as z
			
	insert into @hmotnost210
		Select CisloZv as cistelata, (Select top 1 DniVaz from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '210' order by Rozdiel) as dnivaz120,
				 (Select top 1 HmotPrep from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '210' order by Rozdiel ) as Hmot120 
		from @zaklad as z			

	insert into @hmotnost365
		Select CisloZv as cistelata, (Select top 1 DniVaz from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '365' order by Rozdiel) as dnivaz120,
				 (Select top 1 HmotPrep from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '365' order by Rozdiel ) as Hmot120 
		from @zaklad as z

	insert into @hmotnost500
		Select CisloZv as cistelata, (Select top 1 DniVaz from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '500' order by Rozdiel) as dnivaz120,
				 (Select top 1 HmotPrep from @porovnanie as p where p.CisZv = z.CisloZv and p.DNIPREPOC = '500' order by Rozdiel ) as Hmot120 
		from @zaklad as z

	insert into Roc_MPHD_Tab_zaklad
		(Kraj , Okres, Podnik, Chov, Mastal, CisloZv, OtecLIN, OtecReg, Typ, Pohl, KrJal, Porlak, Hmotnar, Priebpor, Hm120,  Hm210, Hm365, Hm500, Dovvyr, Datvyr, Datnar, Datotel, 
		Rok, Vek_otel_dni, 	Medziobd, Pocet_dni_na_chove, PL1, KR1 )
	select Kraj ,Okres,Podnik ,Chov ,Mastal ,CisloZv ,OtecLIN ,OtecReg ,Typ ,Pohl ,KrJal ,Porlak , (case when Hmotnar is null then '35' else hmotnar end) as Hmotnar, Priebpor, h1.Hmot120, h2.Hmot210, 
	h3.Hmot365, h5.Hmot500, z.Dovvyr, z.Datvyr, z.Datnar as Datnar, z.Datotel as Datotel, datepart(YEAR, @DatumOd) as rok, z.Vek_otel_dni, z.Medziobd, z.Pocet_dni_na_chove, z.PL1, z.KR1
	 from @zaklad as z 
		 left outer join @hmotnost120 as h1 on h1.cistelata = z.CisloZv
		 left outer join @hmotnost210 as h2 on h2.cistelata = z.CisloZv
		 left outer join @hmotnost365 as h3 on h3.cistelata = z.CisloZv
		 left outer join @hmotnost500 as h5 on h5.cistelata = z.CisloZv
	  where z.Kraj + z.Okres + z.Podnik + z.Chov + z.Mastal = @chov

end
go










-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 
-- Description:	 Vybery /BB,menovka, irodma, irodot....
-- =============================================
CREATE PROCEDURE [dbo].[C_VyberySpolocne] @rndtb varchar(20)

AS
	declare @CP_SPOL_BYCI varchar(40), @SQL varchar(max),
	@OUTPUT_TABLE varchar(40), @POCET VARCHAR(20), @CP_SPOL_MEN varchar(40)
	set @OUTPUT_TABLE = 'OUT' + @rndtb
	


BEGIN	

SELECT @SQL = 'CREATE TABLE ' + @OUTPUT_TABLE +'(
table_name varchar(255),
records_no VARCHAR(255))'
EXEC(@SQL)

/*vybery bykov */	
SELECT @SQL = 'CREATE TABLE CP_SPOL_BYCI' + @rndtb + '(
	[LIN] [varchar](3) NOT NULL,
	[REG] [int] NULL,
	[MENO] [varchar](40) NULL,
	[MENO1] [varchar](20) NULL,
	[USCISLO] [varchar](15) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[FARBA] [varchar](2) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[MAJITEL] [varchar](50) NULL,
	[DATNAR] [varchar](10) NULL,
	[DATPOR] [varchar](10) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [int] NULL,
	[OTUSCIS] [varchar](15) NULL,
	[MATKA] [varchar](15) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [int] NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [int] NULL,
	[MM] [varchar](15) NULL
)'
EXEC(@SQL)

SELECT @SQL = 'insert into CP_SPOL_BYCI' + @rndtb + '
   (LIN, REG, MENO, MENO1, USCISLO, PL1, kr1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, FARBA, CHOVATEL, MAJITEL, DATNAR, DATPOR, OtecLin, OtecReg, OTUSCIS,
	MATKA, OOLIN, OOREG, MO, OMLIN, OMREG, MM)
(select 
	LIN, REG, MENO, MENO1, USCISLO, PL1, format(convert(decimal (5,2), KR1) , ''g15'') as kr1, PL2, format(convert(decimal (5,2), KR2) , ''g15'') as KR2, PL3,
	 format(convert(decimal (5,2), KR3) , ''g15'') as KR3, PL4, format(convert(decimal (5,2), KR4) , ''g15'') as KR4,
    PL5, FARBA, CHOVATEL, MAJITEL, CONVERT(CHAR(10),DATNAR, 120), CONVERT(CHAR(10),DATPOR, 120),
	(select LIN from CM_Byci as b2  where b1.idot = b2.IDBYKA) as OtecLin,
	(select REG from CM_Byci as b2  where b1.idot = b2.IDBYKA) as OtecReg,
	OTUSCIS,
	MATKA,
	(select LIN from CM_Byci as b3 where b3.IDBYKA = ((select IDOT from CM_Byci as b2  where b1.idot = b2.IDBYKA))) as OOLIN,
	(select REG from CM_Byci as b3 where b3.IDBYKA = ((select IDOT from CM_Byci as b2  where b1.idot = b2.IDBYKA))) as OOREG,
	(select MATKA from CM_Byci as b2  where b1.idot = b2.IDBYKA) as MO,
    (select OTECLIN  FROM CM_KRAVA as k1 where b1.IDMA = k1.IDKRAVY) as OMLIN,
    (select OTECREG FROM CM_KRAVA as k1 where  b1.IDMA = k1.IDKRAVY) as OMREG, 
    (select MA  FROM CM_KRAVA as k1 where b1.IDMA = k1.IDKRAVY) AS MM
from CM_Byci b1
where lin != ''997''
)'
---PRINT @SQL
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT

SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SPOL_BYCI'', ''' + @POCET + ''')'
EXEC (@SQL)

--/*vybery menovka */	
SELECT @SQL = 'CREATE TABLE CP_SPOL_MEN' + @rndtb + '(
	[KOKR] [varchar](3) NOT NULL,
	[PODNIK] [varchar](3) NOT NULL,
	[CHOV] [varchar](2) NOT NULL,
	[MASTAL] [varchar](1) NOT NULL,
	[PRIZNAK] [varchar](2) NOT NULL,
	[NAZPOD] [varchar](50) NULL,
	[NAZCHOV] [varchar](20) NULL,
	[ULICAP] [varchar](30) NULL,
	[PCISLO] [varchar](10) NULL,
	[MIESTOPOD] [varchar](40) NULL,
	[PSCPOD] [varchar](5) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_SPOL_MEN'  + @rndtb + '
   (kokr, podnik, Chov, Mastal, Priznak, NazPod, NazChov, UlicaP, PCislo, Miestopod, PSCPod)
   (select d.kraj + d.okres as kokr, d.podnik, substring (d.chov, 1, 2 ) as Chov, substring (d.chov, 3, 1 ) as Mastal, d.Priznak,  substring(p.NAZOV, 1, 50) as NazPod,
       substring(ch.NAZOV, 1, 20) as NazChov,
       substring(p.ULica,1, 30) as ULICAP, p.PCISLO as PCislo, p.OBEC as Miestopod, p.PSC as PSCPod
   from dbo.NM_HDDETAIL as d
		left outer join
			dbo.NM_Chovmas as ch on d.kraj = ch.KRAJ and d.OKRES = ch.OKRES and d.PODNIK = ch.PODNIK and  d.CHOV = ch.CHOV and ch.typzv = 1
		left outer join 
			dbo.NM_PODNIK as p on  d.kraj = p.KRAJ and d.OKRES = p.OKRES and d.PODNIK = p.PODNIK 
   where d.priznak in (''01'' ,''99'') and d.typzv = 1
   )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SPOL_MEN'', ''' + @POCET + ''')'
EXEC (@SQL)

--/*vybery IMPMAT-importovane matky */	
SELECT @SQL = 'CREATE TABLE CP_SPOL_IMPMAT' + @rndtb + '(
	[CISKRAVY] [varchar](15) NOT NULL,
	[UC] [varchar](15) NULL,
	[MENO] [varchar](40) NULL,
	[MATKA] [varchar](15) NULL,
	[MMENO] [varchar](40) NULL,
	[MPK] [varchar](5) NULL,
	[MPLEMENO] [varchar](173) NULL,
	[MTRIEDA] [varchar](3) NULL,
	[POCHADZA] [varchar](50) NULL,
	[MMAX] [float] NULL,
	[MMAXML] [float] NULL,
	[MMAXT] [float] NULL,
	[MMAXB] [float] NULL,
	[MPERCT] [decimal](5, 2) NULL,
	[MPERCB] [decimal](5, 2) NULL,
	[MVSET] [float] NULL,
	[MNORM] [float] NULL,
	[MPRML] [float] NULL,
	[MPRT] [float] NULL,
	[MPRB] [float] NULL,
	[MPRTB] [float] NULL,
	[MPRPERCT] [decimal](5, 2) NULL,
	[MPRPERCB] [decimal](5, 2) NULL,
	[MPRPERCTB] [decimal](5, 2) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [int] NULL,
	[OMUC] [varchar](15) NULL,
	[OMMENO] [varchar](40) NULL,
	[OMMENO1] [varchar](20) NULL,
	[OMPK] [varchar](5) NULL,
	[OMPLEMENO] [varchar](173) NULL,
	[OMRPHM] [float] NULL,
	[OMRPHT] [float] NULL,
	[OMRPHB] [float] NULL,
	[MM] [varchar](15) NULL,
	[MMMENO] [varchar](40) NULL,
	[MMPK] [varchar](5) NULL,
	[MMPLEMENO] [varchar](173) NULL,
	[MMTRIEDA] [varchar](3) NULL,
	[MMMAX] [float] NULL,
	[MMMAXML] [float] NULL,
	[MMMAXT] [float] NULL,
	[MMMAXB] [float] NULL,
	[MMPERCT] [decimal](5, 2) NULL,
	[MMPERCB] [decimal](5, 2) NULL,
	[MMPRML] [float] NULL,
	[MMPRT] [float] NULL,
	[MMPRB] [float] NULL,
	[MMPRTB] [float] NULL,
	[MMPRPERCT] [decimal](5, 2) NULL,
	[MMPRPERCB] [decimal](5, 2) NULL,
	[MMPRPERCTB] [decimal](5, 2) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [int] NULL,
	[OOMUC] [varchar](15) NULL,
	[OOMMENO] [varchar](40) NULL,
	[OOMMENO1] [varchar](20) NULL,
	[OOMRPHM] [float] NULL,
	[OOMRPHT] [float] NULL,
	[OOMRPHB] [float] NULL,
	[MOM] [varchar](15) NULL,
	[MOMMENO] [varchar](40) NULL,
	[MOMTRIEDA] [varchar](3) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [int] NULL,
	[OMMUC] [varchar](15) NULL,
	[OMMMENO] [varchar](40) NULL,
	[OMMMENO1] [varchar](20) NULL,
	[OMMRPHM] [float] NULL,
	[OMMRPHT] [float] NULL,
	[OMMRPHB] [float] NULL,
	[MMM] [varchar](15) NULL,
	[MMMMENO] [varchar](40) NULL,
	[MMMTRIEDA] [varchar](3) NULL
)'
EXEC (@SQL)


SELECT @SQL = 'insert into CP_SPOL_IMPMAT' + @rndtb + '
   (CISKRAVY, UC, MENO, MATKA, MMENO, MPK, MPLEMENO, MTRIEDA, POCHADZA, MMAX, MMAXML, MMAXT, MMAXB, MPERCT, MPERCB, MVSET, MNORM, 
	MPRML, MPRT, MPRB, MPRTB, MPRPERCT, MPRPERCB, MPRPERCTB, OMLIN, OMREG, OMUC, OMMENO, OMPK, OMPLEMENO, OMRPHM, OMRPHT, OMRPHB, MM,
	MMMENO,MMPK, MMPLEMENO, MMTRIEDA, MMMAX, MMMAXML, MMMAXT,MMMAXB, MMPERCT, MMPERCB, MMPRML, MMPRT, MMPRB, MMPRTB, MMPRPERCT, MMPRPERCB, MMPRPERCTB, OOMLIN, OOMREG, OOMUC,
	OOMMENO, OOMRPHM, OOMRPHT, OOMRPHB, MOM, MOMMENO, MOMTRIEDA, OMMLIN, OMMREG, OMMUC, OMMMENO, OMMRPHM, OMMRPHT, OMMRPHB, MMM, MMMMENO, MMMTRIEDA
  ) 
(
select k.CISKRAVY, k.BB_ANIMALCODE as UC, k.BB_NAME as MENO, k.MA as MATKA, m.BB_NAME as MMENO, m.PK as MPK,
       (ISNULL(m.PL1  + CONVERT(varchar, m.KR1), '''')  + ISNULL(ISNULL(m.PL2, '''')  + CONVERT(varchar,  m.KR2), '''')  + ISNULL(m.PL3  + CONVERT(varchar, m.KR3), '''')  + ISNULL(m.PL4  + CONVERT(varchar, m.KR4), '''') 
+  ISNULL(m.PL5  + CONVERT(varchar, 100 - (m.KR1 + m.KR2 + m.KR3 + m.KR4)), '''')) AS MPLEMENO, m.TRUZIT, m.BB_OWNER as POCHADZA, m.PORLAKMAX as MMAX,
m.MLIEKOMAX as MMAXML, m.TUKMAX as MMAXT, m.BIELMAX as MMAXB,
convert(decimal (7,2), ( NULLIF (m.TUKMAX, 0) *100 )/ m.MLIEKOMAX )  as MPERCT,
 convert(decimal (7,2), ( NULLIF (m.BIELMAX, 0) *100 )/ m.MLIEKOMAX)  as MPERCB, m.POCVSETLAK as MVSET,m.POCNORLAK  as MNORM, 
 m.MLIEKOPR as  MPRML, m.TUKPRKG as MPRT, m.BIELPRKG as  MPRB, m.TUKPRKG + m.BIELPRKG as MPRTB, convert(decimal (5,2), m.TUKPRPER)  as MPRPERCT,
 convert(decimal (5,2), m.BIELPRPER) as MPRPERCB, convert(decimal(5,2),m.TUKPRPER + m.BIELPRPER)  as MPRPERCTB,
 m.OTECLIN as OMLIN, m.OTECREG as OMREG, m.OUSCIS as OMUC,
 b.MENO as OMMENO, b.PK as OMPK,
 ISNULL(b.PL1  + CONVERT(varchar, b.KR1), '''')  + ISNULL(ISNULL(b.PL2, '''')  + CONVERT(varchar,  b.KR2), '''')  + ISNULL(b.PL3  + CONVERT(varchar, b.KR3), '''')  + ISNULL(b.PL4  + CONVERT(varchar, b.KR4), '''') 
+ ISNULL(b.PL5  + CONVERT(varchar, 100 - (b.KR1 + b.KR2 + b.KR3 + b.KR4)), '''') AS OMPLEMENO, tom.RPHM as OMRPHM, tom.RPHT as OMRPHT, tom.RPHB  as OMRPHB,
m.MA  as MM, mm.BB_NAME as MMMENO, mm.PK as MMPK,
ISNULL(mm.PL1  + CONVERT(varchar, mm.KR1), '''')  + ISNULL(ISNULL(mm.PL2, '''')  + CONVERT(varchar,  mm.KR2), '''')  + ISNULL(mm.PL3  + CONVERT(varchar, mm.KR3), '''')  + ISNULL(mm.PL4 + CONVERT(varchar, mm.KR4), '''') 
+ ISNULL(mm.PL5  + CONVERT(varchar, 100 - (mm.KR1 + mm.KR2 + mm.KR3 + mm.KR4)), '''')  AS MMPLEMENO,
mm.TRUZIT as MMTRIEDA, mm.PORLAKMAX  as MMMAX,mm.MLIEKOMAX  as MMMAXML, mm.TUKMAX  as  MMMAXT,
mm.BIELMAX as MMMAXB,
convert( decimal (7,2), (NULLIF (mm.TUKMAX, 0) *100 )/ mm.MLIEKOMAX) as MMPERCT,
convert( decimal (7,2), (NULLIF (mm.BIELMAX, 0) *100) /mm.MLIEKOMAX )as MMPERCB,mm.MLIEKOPR as MMPRML,mm.TUKPRKG  as MMPRT,mm.BIELPRKG as MMPRB, mm.TUKPRKG + mm.BIELPRKG  as MMPRTB,convert(decimal (5,2),mm.TUKPRPER)  as MMPRPERCT,
convert(decimal (5,2), mm.BIELPRPER ) as MMPRPERCB, convert(decimal (5,2),mm.TUKPRPER + mm.BIELPRPER)  as MMPRPERCTB,
oom.LIN as OOMLIN, oom.REG as OOMREG, om.OTUSCIS as OOMUC, oom.MENO as OOMMENO, toom.RPHM as OOMRPHM, toom.RPHT as OMMRPHT,  toom.RPHB as OOMRPHB,

B.MATKA as MOM, mom.BB_NAME as MOMMENO, mom.TRUZIT as MOMTRIEDA,
omm.OTECLIN as OMMLIN, omm.OTECREG as OMMREG, omm.OUSCIS as OMMUC,
boom.MENO as OMMMENO, tomm.RPHM as OMMRPHM, tomm.RPHT as OMMRPHT, tomm.RPHB as OMMRPHT, 
mm.MA as MMM,mmm.BB_NAME as MMMMENO, mmm.TRUZIT as MMMTRIEDA
from CM_krava as k left outer join
     CM_Krava as m on k.IDMA  =  m.IDKRAVY  left outer join
     CM_Byci as b on m.IDOT = b.IDBYKA   left outer join
	 View_CP_poslednoHodnotenieBycy as tom on m.IDOT = tom.IDBYKA left outer join
	 CM_Krava as mm on m.IDMA  =  mm.IDKRAVY  left outer join
	 CM_Byci as om on m.IDOT = om.IDBYKA left outer join
	 CM_Krava as mom on B.IDMA = mom.IDKRAVY LEFT OUTER JOIN
	 CM_Byci as oom on om.IDOT = oom.IDBYKA left outer join
	 View_CP_poslednoHodnotenieBycy as toom on oom.IDBYKA = toom.IDBYKA left outer join
	 CM_Krava as omm on m.IDMA  =  omm.IDKRAVY  left outer join
	 CM_Byci as boom on omm.IDOT = boom.IDBYKA  left outer join
	 View_CP_poslednoHodnotenieBycy as tomm on boom.IDBYKA = tomm.IDBYKA left outer join
	 CM_Krava as mmm on mm.IDMA  =  mmm.IDKRAVY  
where k.BB_ANIMALCODE is not null and k.MA is not null and ISNUMERIC(substring(k.ciskravy,3,12)) > 0 and ISNUMERIC(substring(k.ma,3,12)) > 0 
and substring(k.ciskravy,1,2) <> ''XX'' and substring (k.ma, 1, 2 )  <> ''XX''
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SPOL_IMPMAT'', ''' + @POCET + ''')'
EXEC (@SQL)


--/*vybery IMPOT-import otcovia */	
SELECT @SQL = 'CREATE TABLE CP_SPOL_IMPOT' + @rndtb + '(
	[CISKRAVY] [varchar](15) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [int] NULL,
	[OTUSCIS] [varchar](15) NULL,
	[OMENO] [varchar](40) NULL,
	[OMENO1] [varchar](20) NULL,
	[POCHADZA] [varchar](50) NULL,
	[OPK] [varchar](5) NULL,
	[OPLEMENO] [varchar](173) NULL,
	[ORPHM] [float] NULL,
	[ORPHT] [float] NULL,
	[ORPHB] [float] NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [int] NULL,
	[OOUC] [varchar](15) NULL,
	[OOMENO] [varchar](40) NULL,
	[OOMENO1] [varchar](20) NULL,
	[OOPK] [varchar](5) NULL,
	[OOPLEMENO] [varchar](173) NULL,
	[OORPHM] [float] NULL,
	[OORPHT] [float] NULL,
	[OORPHB] [float] NULL,
	[MO] [varchar](15) NULL,
	[MOMENO] [varchar](40) NULL,
	[MOPK] [varchar](5) NULL,
	[MOPLEMENO] [varchar](173) NULL,
	[MOTRIEDA] [varchar](3) NULL,
	[MOMAX] [float] NULL,
	[MOMAXML] [float] NULL,
	[MOMAXT] [float] NULL,
	[MOMAXB] [float] NULL,
	[MOPERCT] [decimal](8, 2) NULL,
	[MOPERCB] [decimal](8, 2) NULL,
	[MOPRML] [float] NULL,
	[MOPRT] [float] NULL,
	[MOPRB] [float] NULL,
	[MOPRTB] [float] NULL,
	[MOPRPERCT] [decimal](7, 2) NULL,
	[MOPRPERCB] [decimal](7, 2) NULL,
	[MOPRPERCTB] [decimal](7, 2) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [int] NULL,
	[OOOUC] [varchar](15) NULL,
	[OOOMENO] [varchar](40) NULL,
	[OOOMENO1] [varchar](20) NULL,
	[OOORPHM] [float] NULL,
	[OOORPHT] [float] NULL,
	[OOORPHB] [float] NULL,
	[MOO] [varchar](15) NULL,
	[MOOMENO] [varchar](40) NULL,
	[MOOTRIEDA] [varchar](3) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [int] NULL,
	[OMOUC] [varchar](15) NULL,
	[OMOMENO] [varchar](40) NULL,
	[OMOMENO1] [varchar](20) NULL,
	[OMORPHM] [float] NULL,
	[OMORPHT] [float] NULL,
	[OMORPHB] [float] NULL,
	[MMO] [varchar](15) NULL,
	[MMOMENO] [varchar](40) NULL,
	[MMOPK] [varchar](5) NULL,
	[MMOTRIEDA] [varchar](3) NULL
)'
EXEC (@SQL)


SELECT @SQL = 'insert into CP_SPOL_IMPOT' + @rndtb + '
    (
  	CISKRAVY, OTECLIN, OTECREG, OTUSCIS, OMENO, OMENO1, POCHADZA, OPK,	OPLEMENO, ORPHM, ORPHT, ORPHB, OOLIN, OOREG, OOUC, OOMENO, OOMENO1,  OOPK, OOPLEMENO, OORPHM, OORPHT, OORPHB,
	MO, MOMENO,	MOPK, MOPLEMENO, MOTRIEDA, MOMAX, MOMAXML, MOMAXT, MOMAXB, MOPERCT, MOPERCB, MOPRML, MOPRT, MOPRB, MOPRTB, MOPRPERCT, MOPRPERCB, MOPRPERCTB,
    OOOLIN, OOOREG, OOOUC, OOOMENO, OOOMENO1,  OOORPHM, OOORPHT, OOORPHB, MOO, MOOMENO, MOOTRIEDA,
    OMOLIN, OMOREG, OMOUC, OMOMENO, OMOMENO1, OMORPHM, OMORPHT, OMORPHB, MMO, MMOMENO, MMOPK, MMOTRIEDA
	)
(
select k.CISKRAVY, k.OTECLIN, k.OTECREG, k.OUSCIS as OTUSCIS,
	b.MENO as OMENO, b.MENO1 as OMENO1,  b.MAJITEL AS POCHADZA, b.PK AS OPK,
	(ISNULL(b.PL1  + CONVERT(varchar, b.KR1), '''')  + ISNULL(ISNULL(b.PL2, '''')  + CONVERT(varchar,  b.KR2), '''')  + ISNULL(b.PL3  + CONVERT(varchar, b.KR3), '''')  + ISNULL(b.PL4 + CONVERT(varchar, b.KR4), '''') 
	 + ISNULL(b.PL5  + CONVERT(varchar, 100 - (b.KR1 + b.KR2 + b.KR3 + b.KR4)), '''')) AS OPLEMENO,
	 tdm.RPHM as ORPHM, tdm.RPHT as ORPHT, tdm.RPHB as ORPHB,
	bo.LIN as OOLIN, bo.REG as OOREG, bo.USCISLO as OOUC, bo.MENO as OOMENO, bo.MENO1  as OOMENO1, bo.PK as OOPK,
	(ISNULL(bo.PL1  + CONVERT(varchar, bo.KR1), '''')  + ISNULL(ISNULL(bo.PL2, '''')  + CONVERT(varchar,  bo.KR2), '''')  + ISNULL(bo.PL3  + CONVERT(varchar, bo.KR3), '''')  + ISNULL(bo.PL4  + CONVERT(varchar, bo.KR4), '''') 
	 + ISNULL(bo.PL5  + CONVERT(varchar, 100 - (bo.KR1 + bo.KR2 + bo.KR3 + bo.KR4)), '''')) AS OOPLEMENO,tdmoo.RPHM  as OORPHM, tdmoo.RPHT  as OORPHT, tdmoo.RPHB  as OORPHB,
	kmo.CISKRAVY as  MO, kmo.BB_NAME as MOMENO, kmo.PK as MOPK, 
	(ISNULL(kmo.PL1 + CONVERT(varchar, kmo.KR1), '''')  + ISNULL(ISNULL(kmo.PL2, '''')  + CONVERT(varchar,  kmo.KR2), '''')  + ISNULL(kmo.PL3  + CONVERT(varchar, kmo.KR3), '''')  + ISNULL(bo.PL4 + CONVERT(varchar, bo.KR4), '''') 
	 + ISNULL(kmo.PL5 + CONVERT(varchar, 100 - (kmo.KR1 + kmo.KR2 + kmo.KR3 + kmo.KR4)), '''')) AS MOPLEMENO,
	kmo.TRUZIT as MOTRIEDA, kmo.PORLAKMAX as MOMAX, kmo.MLIEKOMAX as MOMAXML, kmo.TUKMAX as MOMAXT, kmo.BIELMAX as MOMAXB,
	convert( decimal (8,2), (NULLIF (kmo.TUKMAX, 0) *100 / kmo.MLIEKOMAX))  as MOPERCT,
	convert( decimal (8,2), (NULLIF (kmo.BIELMAX, 0) *100 / kmo. MLIEKOMAX))  as MOPERCB, kmo.MLIEKOPR as MOPRML, kmo.TUKPRKG as MOPRT, kmo.BIELPRKG as MOPRB, kmo.TUKPRKG + kmo.BIELPRKG as MOPRTB,
	convert(decimal (7,2) ,kmo.TUKPRPER) as MOPRPERCT, convert( decimal(7,2),kmo.BIELPRPER) as MOPRPERCB,  convert(decimal(7,2),kmo.TUKPRPER + kmo.BIELPRPER) as MOPRPERCTB,
	boo.LIN as OOOLIN, boo.REG as OOOREG, boo.USCISLO as OOOUC, boo.MENO as OOOMENO, boo.MENO1 as OOOMENO1, tdmooo.RPHM as OOORPHM,  tdmooo.RPHT as OOORPHT, tdmooo.RPHB as OOORPHB,
	kmoo.CISKRAVY as MOO, kmoo.BB_NAME as MOOMENO, kmoo.TRUZIT as MOOTRIEDA,
	kmo.OTECLIN as OMOLIN, kmo.OTECREG as OMOREG, bomo.USCISLO as OMOUC, bomo.MENO as OMOMENO, bomo.MENO1 as OMOMENO1, tdmomo.RPHM as OMORPHM, tdmomo.RPHT as OMORPHT, tdmomo.RPHB as OMORPHB,
	kmmo.CISKRAVY as MMO, kmmo.BB_NAME as MMOMENO, kmmo.PK as MMOPK, kmmo.TRUZIT as MMOTRIEDA
from CM_krava as k left outer join
     CM_Byci as b on k.IDOT = b.IDBYKA   left outer join
	 View_CP_poslednoHodnotenieBycy as tdm on k.IDOT= tdm.IDBYKA left outer join
	 CM_Byci as bo on b.IDOT = bo.IDBYKA left outer join
	 View_CP_poslednoHodnotenieBycy as tdmoo on bo.IDBYKA = tdmoo.IDBYKA left outer join
	 CM_krava as kmo on b.IDMA = kmo.IDKRAVY left outer join
	 CM_BYCI as boo on bo.IDOT = boo.IDBYKA left outer join
	 View_CP_poslednoHodnotenieBycy as tdmooo on boo.IDBYKA = tdmooo.IDBYKA left outer join
	 CM_krava as kmoo on bo.IDMA = kmoo.IDKRAVY left outer join
	 CM_Byci as bomo on kmo.IDOT = bomo.IDBYKA left outer join
	 View_CP_poslednoHodnotenieBycy as tdmomo on bomo.IDBYKA = tdmomo.IDBYKA left outer join
	 CM_krava as kmmo on kmo.IDMA = kmmo.IDKRAVY
where k.BB_ANIMALCODE is not null and k.MA is not null and ISNUMERIC(substring(k.ciskravy,3,12)) > 0 and ISNUMERIC(substring(k.ma,3,12)) > 0 
	and substring(k.ciskravy,1,2) <> ''XX'' and substring (k.ma, 1, 2 )  <> ''XX''
	)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SPOL_IMPOT'', ''' + @POCET + ''')'
EXEC (@SQL)


--/*vybery IMPOT-import RodByk */
SELECT @SQL = 'CREATE TABLE CP_SPOL_RodkByk' + @rndtb + '(
	[LIN] [varchar](3) NULL,
	[REG] [varchar](3) NULL,
	[USCISLO] [varchar](15) NULL,
	[MENO] [varchar](40) NULL,
	[MENO1] [varchar](20) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OUC] [varchar](15) NULL,
	[OMENO] [varchar](40) NULL,
	[OMENO1] [varchar](20) NULL,
	[OPK] [varchar](5) NULL,
	[OPLEMENO] [varchar](30) NULL,
	[ORPHM] [varchar](4) NULL,
	[ORPHT] [varchar](4) NULL,
	[ORPHB] [varchar](4) NULL,
	[MATKA] [varchar](15) NULL,
	[MMENO] [varchar](40) NULL,
	[MMENO1] [varchar](20) NULL,
	[MPK] [varchar](5) NULL,
	[MPLEMENO] [varchar](30) NULL,
	[MTRIEDA] [varchar](3) NULL,
	[MMAX] [varchar](2) NULL,
	[MMAXML] [varchar](5) NULL,
	[MMAXT] [varchar](3) NULL,
	[MMAXB] [varchar](3) NULL,
	[MPERCT] [varchar](10) NULL,
	[MPERCB] [varchar](10) NULL,
	[MVSET] [varchar](2) NULL,
	[MNORM] [varchar](2) NULL,
	[MPRML] [varchar](5) NULL,
	[MPRT] [varchar](3) NULL,
	[MPRB] [varchar](3) NULL,
	[MPRTB] [varchar](4) NULL,
	[MPRPERCT] [varchar](6) NULL,
	[MPRPERCB] [varchar](6) NULL,
	[MPRPERCTB] [varchar](7) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[OOUC] [varchar](15) NULL,
	[OOMENO] [varchar](60) NULL,
	[OOPK] [varchar](3) NULL,
	[OOPLEMENO] [varchar](173) NULL,
	[OORPHM] [varchar](4) NULL,
	[OORPHT] [varchar](4) NULL,
	[OORPHB] [varchar](4) NULL,
	[MO] [varchar](15) NULL,
	[MOMENO] [varchar](40) NULL,
	[MOPK] [varchar](5) NULL,
	[MOPLEMENO] [varchar](173) NULL,
	[MOTRIEDA] [varchar](3) NULL,
	[MOMAX] [varchar](2) NULL,
	[MOMAXML] [varchar](5) NULL,
	[MOMAXT] [varchar](3) NULL,
	[MOMAXB] [varchar](3) NULL,
	[MOPERCT] [varchar](10) NULL,
	[MOPERCB] [varchar](9) NULL,
	[MOPRML] [varchar](5) NULL,
	[MOPRT] [varchar](3) NULL,
	[MOPRB] [varchar](3) NULL,
	[MOPRTB] [varchar](4) NULL,
	[MOPRPERCT] [varchar](6) NULL,
	[MOPRPERCB] [varchar](6) NULL,
	[MOPRPERCTB] [varchar](7) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[OMUC] [varchar](15) NULL,
	[OMMENO] [varchar](60) NULL,
	[OMPK] [varchar](5) NULL,
	[OMPLEMENO] [varchar](173) NULL,
	[OMRPHM] [varchar](4) NULL,
	[OMRPHT] [varchar](4) NULL,
	[OMRPHB] [varchar](4) NULL,
	[MM] [varchar](15) NULL,
	[MMMENO] [varchar](40) NULL,
	[MMPK] [varchar](5) NULL,
	[MMPLEMENO] [varchar](173) NULL,
	[MMTRIEDA] [varchar](3) NULL,
	[MMMAX] [varchar](2) NULL,
	[MMMAXML] [varchar](5) NULL,
	[MMMAXT] [varchar](3) NULL,
	[MMMAXB] [varchar](3) NULL,
	[MMPERCT] [varchar](10) NULL,
	[MMPERCB] [varchar](9) NULL,
	[MMPRML] [varchar](5) NULL,
	[MMPRT] [varchar](3) NULL,
	[MMPRB] [varchar](3) NULL,
	[MMPRTB] [varchar](4) NULL,
	[MMPRPERCT] [varchar](6) NULL,
	[MMPRPERCB] [varchar](6) NULL,
	[MMPRPERCTB] [varchar](7) NULL
)'
EXEC (@SQL)

--POZRIET KDE BOLA MEDZERA MEDZI '' A DAT SPAT
SELECT @SQL = 'insert into CP_SPOL_RodkByk' + @rndtb + '
       ( LIN, REG, USCISLO, MENO, MENO1,  OtecLin, OtecReg, OUC, OMENO, OMENO1,  OPK, OPLEMENO, ORPHM, ORPHT, ORPHB, MATKA, MMENO, MMENO1, MPK, MPLEMENO, MTRIEDA, MMAX, MMAXML,
         MMAXT, MMAXB, MPERCT, MPERCB, MVSET, MNORM, MPRML, MPRT, MPRB, MPRTB,  MPRPERCT, MPRPERCB, MPRPERCTB, OOLIN, OOREG, OOUC, OOMENO, OOPK, OOPLEMENO,   OORPHM, OORPHT, OORPHB,
		 MO, MOMENO, MOPK, MOPLEMENO, MOTRIEDA, MOMAX, MOMAXML, MOMAXT, MOMAXB, MOPERCT, MOPERCB, MOPRML, MOPRT, MOPRB, MOPRTB, MOPRPERCT, MOPRPERCB, MOPRPERCTB, 
		 OMLIN, OMREG, OMUC, OMMENO, OMPK, OMPLEMENO, OMRPHM, OMRPHT,  OMRPHB,	
		 MM, MMMENO, MMPK, MMPLEMENO, MMTRIEDA, MMMAX, MMMAXML, MMMAXT, MMMAXB, MMPERCT,  MMPERCB, MMPRML, MMPRT, MMPRB, MMPRTB, 
		 MMPRPERCT,  MMPRPERCB, MMPRPERCTB 	)
 
        (select rb.LIN,    convert(varchar, (convert( int, (rb.reg),0)),3) as REG, rb.uscislo, b.MENO as MENO, b.MENO1 as MENO1,  nullif(rb. OTECLIN,'' ''),   
  nullif(convert(varchar, (convert ( int, (rb.otecreg),0)),3),0) as OTECREG, nullif(rb.OTUSCIS, '''') as OUC, nullif(rb.OMENO, ''''),  nullif(rb.OMENO1, ''''), nullif( OPK, ''''), 
  nullif(OPlemeno,''''),   
  nullif(ORPHM,0),  nullif(ORPHT,0), nullif( ORPHB,0),  nullif(rb.MATKA,''''),  nullif(rb.MMENO, ''''),  nullif(rb.MMENO1, ''''),  nullif(rb.MPK, ''''),  nullif( rb.MPlemeno, ''''),  nullif(rb.MTRIEDA, '' ''), nullif(rb.MMAX, '' ''), 
  nullif( replace(rb.MMAXML, ''*'', 0), 0), nullif( replace(rb.MMAXT, ''*'', 0), 0),
  nullif(replace (rb.MMAXB, ''*'', 0),0),   nullif(rb.MPERCT,'' ''),  nullif(rb.MPERCB, '' ''),  nullif(replace(rb.MVset ,'' '', 0),0),  nullif(replace(rb.MNorm,'''',0),0),   nullif(replace(rb.MPRML, ''*'', 0),0),
  nullif(replace(rb.MPRT, ''*'',0),0),  nullif(replace( rb.MPRB,''*'',0),0), nullif( rb.MPRTB,0),
  nullif(nullif(rb.MPRPERCT,''0.00''),''''),  nullif(nullif(rb.MPRPERCB, ''0.00''),''''),  nullif(nullif( rb.MPRPERCTB,''0.00''),''''),
  nullif(rb.OOLIN, ''''), (nullif(convert(varchar, (convert (int, (rb.OOREG),0)),3), 0))  as OOREG, nullif(rb.OOUC,''''),  nullif(rb.OOMeno, ''''), 
  nullif( rb.OOPK, ''''), 
  nullif(rb.OOPLEMENO, ''''), nullif(rb.OORPHM, ''''), nullif(rb.OORPHT, ''''),  nullif( rb.OORPHB, ''''),  nullif(rb.MO,''''),  nullif(rb.MOMENO,''''), nullif(rb.MOPK, ''''), 
  nullif( rb.MOPLEMENO, ''''),  nullif(rb.MOTRIEDA, ''''),  nullif(rb.MOMAX, '' ''), nullif(nullif( rb.MOMAXML,''0''),''''),  nullif( nullif(rb.MOMAXT,''0''),''''),  nullif( nullif(rb.MOMAXB, ''0''), ''''),   nullif(rb.MOPERCT, '' ''),
  nullif(rb.MOPERCB,'' ''),  nullif(nullif(rb.MOPRML,''0''),''''),  nullif(nullif( rb.MOPRT,''0''),''''),  nullif(nullif(rb.MOPRB, ''0''), ''''), nullif( nullif( rb.MOPRTB,''0''),''''),   
  nullif(nullif(rb.MOPRPERCT,''0.00''),'''' ), nullif( nullif(rb.MOPRPERCB,''0.00''),''''), nullif( nullif( rb.MOPRPERCTB,''0.00''), ''''),  
  nullif(rb.OMLIN,''''),  
  nullif(convert(varchar, (convert( int, (rb.omreg),0)),3), ''0'')   as OMREG, nullif( rb.OMUC,''''),  
  nullif(rb.OMMENO,''''),  nullif(rb.OMPK,''''), 
  nullif(rb.OMPLEMENO,''''),  nullif(rb.OMRPHM, ''''),  nullif(rb.OMRPHT, ''''),  nullif(rb.OMRPHB,''''), 
  nullif(rb.MM,''''),  nullif(rb.MMMENO, ''''), nullif( rb.MMPK, ''''),  
  nullif( rb.MMPLEMENO, ''''), nullif(rb.MMTRIEDA,''''),  nullif(rb.MMMAX, ''''),
  nullif(nullif( rb.MMMAXML, ''0''),''''), nullif( nullif(rb.MMMAXT, ''0''),'''' ),  nullif( nullif(rb.MMMAXB,''0''),'''' ),  
 nullif( rb.MMPERCT,''''), nullif( rb.MMPERCB,''''), nullif(nullif(rb.MMPRML,''0''),''''),  nullif(nullif(rb.MMPRT,''0''),''''),   nullif(nullif(rb.MMPRB,''0''),''''), nullif( nullif( rb.MMPRTB,''0''),''''),   
 nullif(nullif(rb.MMPRPERCT, ''0.00''),''''), nullif( nullif(rb.MMPRPERCB,''0.00''),''''), nullif( nullif( rb.MMPRPERCTB, ''0.00''), '''')
 from 
dbo.BB_BULLTREE as rb
join
dbo.CM_Byci as b on rb.USCISLO =  b.USCISLO and b.LIN != ''997''
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SPOL_RodkByk'', ''' + @POCET + ''')'
EXEC (@SQL)

SELECT @SQL = 'select * from ' + @OUTPUT_TABLE

EXEC (@SQL)
END


go

-- =============================================
-- Author:		<Author,,Machynova Anna>
-- Create date: <Create Date,,>
-- Description:	<Description,,sumar narodenych,odchov. a jahniat na chov pre bahnicu a kontr.rok >
-- =============================================
CREATE FUNCTION [dbo].[function_SP_SumReprBahRok_All]  
(	
	-- Add the parameters for the function here
 --@chov varchar(9)		
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT BAHCIS, SUM(Narod) AS NarodCel, SUM(NarBar) AS NarBar, SUM(Odchov) AS OdchCel, SUM(OdchBar) AS OdchBar,
       SUM(NaChov) AS NaChovCel, SUM(NaChovBar) AS NaChovBar, COUNT(1) AS pocvrh
FROM   
(
SELECT        dbo.SM_PremBah.KROKR, dbo.SM_PremBah.PODNIK, dbo.SM_PremBah.STADO, dbo.SM_PremBah.LUC, dbo.SM_PremBah.PUC, dbo.SM_PremBah.BAHCIS, 
                         dbo.SM_PremBah.ROKEV1, dbo.SM_PremBah.ROKEV2, dbo.SM_PremBah.BKROKR, dbo.SM_PremBah.BPODNIK, dbo.SM_PremBah.BSTADO, 
                         dbo.SM_PremBah.BLUC, dbo.SM_PremBah.BPUC, dbo.SM_PremBah.BARCIS, dbo.SM_PremBah.DATPRIP, dbo.SM_PremBah.DATOBAH, 
                         CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') THEN 1 ELSE 0 END AS Narod, 
                         CASE WHEN dbo.SM_PremBah.POHL1 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3
                          = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' THEN 1 ELSE 0 END AS NarBar,
                          CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END AS Odchov, CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND dbo.SM_PremBah.PrizVyb1 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND dbo.SM_PremBah.PrizVyb2 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND dbo.SM_PremBah.PrizVyb3 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND dbo.SM_PremBah.PrizVyb4 IN ('0', '1', '2', '3', '8', '9', ' ') 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND dbo.SM_PremBah.PrizVyb5 IN ('0', '1', '2', '3', '8', '9', ' ') THEN 1 ELSE 0 END AS OdchBar, 
                         CASE WHEN dbo.SM_PremBah.POHL1 IN ('3', '4') AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                         dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 IN ('3', '4') AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                         dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 IN ('3', '4') AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                         dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 IN ('3', '4') AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                         dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 IN ('3', '4') AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                         dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END AS NaChov, CASE WHEN dbo.SM_PremBah.POHL1 = '4' AND (dbo.SM_PremBah.LUC1 <> '     ' AND dbo.SM_PremBah.LUC1 IS NOT NULL OR
                         dbo.SM_PremBah.PUC1 <> '     ' AND dbo.SM_PremBah.PUC1 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ1 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ1 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb1 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL2 = '4' AND (dbo.SM_PremBah.LUC2 <> '     ' AND dbo.SM_PremBah.LUC2 IS NOT NULL OR
                         dbo.SM_PremBah.PUC2 <> '     ' AND dbo.SM_PremBah.PUC2 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ2 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ2 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb2 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL3 = '4' AND (dbo.SM_PremBah.LUC3 <> '     ' AND dbo.SM_PremBah.LUC3 IS NOT NULL OR
                         dbo.SM_PremBah.PUC3 <> '     ' AND dbo.SM_PremBah.PUC3 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ3 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ3 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb3 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL4 = '4' AND (dbo.SM_PremBah.LUC4 <> '     ' AND dbo.SM_PremBah.LUC4 IS NOT NULL OR
                         dbo.SM_PremBah.PUC4 <> '     ' AND dbo.SM_PremBah.PUC4 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ4 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ4 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb4 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END + CASE WHEN dbo.SM_PremBah.POHL5 = '4' AND (dbo.SM_PremBah.LUC5 <> '     ' AND dbo.SM_PremBah.LUC5 IS NOT NULL OR
                         dbo.SM_PremBah.PUC5 <> '     ' AND dbo.SM_PremBah.PUC5 IS NOT NULL OR
                         dbo.SM_PremBah.JCCEHZ5 <> '000000000000' AND dbo.SM_PremBah.JCCEHZ5 IS NOT NULL) AND NOT (dbo.SM_PremBah.PrizVyb5 IN ('4', '5', '6', '7', '9')) 
                         THEN 1 ELSE 0 END AS NaChovBar, dbo.SM_BARAN.LUC AS OtLUC, dbo.SM_BARAN.PUC AS OTPUC, dbo.SM_BARAN.BARCIS AS BarCis2, 
                         dbo.SM_BARAN.ZVSTAT AS OTZVSTAT, dbo.SM_BARAN.JCCEHZ AS OTJCCEHZ
FROM   dbo.SM_PremBah LEFT OUTER JOIN  dbo.SM_BARAN ON dbo.SM_PremBah.BARCIS = dbo.SM_BARAN.BARCIS
                      LEFT OUTER JOIN  dbo.SM_BAHNICA ON dbo.SM_PremBah.BAHCIS = dbo.SM_BAHNICA.BAHCIS

--WHERE concat(SM_BAHNICA.KROKR,SM_BAHNICA.Podnik,SM_BAHNICA.STADO)=@chov
) t
WHERE (Narod > 0) 
GROUP BY BAHCIS

)
go

/** Rocenka MASO - dotvorena tabulka natalita, ak by sme ju chceli zaradit do rocenky   **/
/**--exec Roc_MPHD_natalita '2018-01-01','2018-09-30' **/


CREATE procedure [dbo].[Roc_MPHD_natalita]
		@DatumOd date,
		@datumDO date
as
begin 

delete from Roc_MPHD_TAB_natalita where rok = DATEPART(YEAR, @DatumOd)

--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30'
/***natalita za SR ****/
declare @priemerny_stav_krav int
set @priemerny_stav_krav = (select sum(Pocet_dni_na_chove)/365 /*as priemerny_stav_krav*/ from Roc_MPHD_Tab_zaklad
								where --kraj + okres + podnik + chov + mastal = @chov
									--and 
									KrJal='K'
									and rok = DATEPART(YEAR, @datumOd))

declare @pocet_nar_teliat_od_krav int
set @pocet_nar_teliat_od_krav = (select count(*) /*as pocet_nar_teliat_od_krav*/ from CM_Telata 
									where PRIZNAKKU = 2 
										and POHLAVIE not in ('61','62','63','71','81','82','91','92') 
										and PORLAK > 1
										and CHOVNAR in ( select kraj + okres + podnik + chov + mastal from Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
										and datnar >= @datumOd)
select @pocet_nar_teliat_od_krav *100.0 / @priemerny_stav_krav as zivo_nar_tel_na_100_krav

declare @pocet_nar_teliat_od_KaJ int
set @pocet_nar_teliat_od_KaJ = (select count(*) as pocet_nar_teliat_od_KaJ from CM_Telata 
								where PRIZNAKKU = 2 
									and POHLAVIE not in ('61','62','63','71','81','82','91','92') 
									and CHOVNAR in ( select kraj + okres + podnik + chov + mastal from  Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
									and datnar >= @datumOd)

select @pocet_nar_teliat_od_KaJ *100.0 / @priemerny_stav_krav as HN -- hruba_natalita

declare @pocet_uhyn_teliat_od_KaJ int
set @pocet_uhyn_teliat_od_KaJ = (select count(*) as pocet_nar_teliat_od_KaJ from CM_Telata 
								where PRIZNAKKU = 2 
									and POHLAVIE  in ('61','62','63','71') 
									and CHOVNAR in ( select kraj + okres + podnik + chov + mastal from  Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
									and datnar >= @datumOd)
select (@pocet_nar_teliat_od_KaJ - @pocet_uhyn_teliat_od_KaJ) *100.0 / @priemerny_stav_krav as CN ---cista natalita

/****** za plemena ****/
declare @Pr_stav_krav table
	(
	PLEMPRIS varchar(3),
	priemerny_stav_krav int
	)
insert @Pr_stav_krav
select p.PLEMPRIS, sum(Pocet_dni_na_chove)/365 as priemerny_stav_krav from Roc_MPHD_Tab_zaklad as z
										left outer join CC_PlemTyp as p on p.TYPC = z.Typ
								where --kraj + okres + podnik + chov + mastal = @chov
									--and 
									KrJal='K'
									and Typ in ('101','102','103','104','105',	'111','112','113','114','115',
												'121','122','123','124','125', '131','141','142','143','144','145', 
												'151', '161','162','163','164','165', '171','172','173','174','175', 
												'181','201','202','203','204','205','191','192','193','194','195', 
												'51','53','54', '11','13','14')
									and rok = DATEPART(YEAR, @datumOd)
								group by PLEMPRIS

declare @Poc_nar_tel_krav table
	(
	PLEMPRIS varchar(3),
	pocet_nar_teliat_od_krav int
	)
insert @Poc_nar_tel_krav
select p.PLEMPRIS, count(*) as pocet_nar_teliat_od_krav from CM_Telata as t
									left outer join CC_PlemTyp as p on p.TYPC = t.TYPPLEM
									where PRIZNAKKU = 2 
										and POHLAVIE not in ('61','62','63','71','81','82','91','92') 
										and t.TYPPLEM in ('101','102','103','104','105',	'111','112','113','114','115',
												'121','122','123','124','125', '131','141','142','143','144','145', 
												'151', '161','162','163','164','165', '171','172','173','174','175', 
												'181','201','202','203','204','205','191','192','193','194','195', 
												'51','53','54', '11','13','14')
										and PORLAK > 1
										and CHOVNAR in ( select kraj + okres + podnik + chov + mastal from Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
										and datnar >= @datumOd
									group by PLEMPRIS

declare @Poc_nar_tel_krJal table
	(
	PLEMPRIS varchar(3),
	pocet_nar_teliat_od_KaJ int
	)
insert @Poc_nar_tel_krJal
select p.PLEMPRIS, count(*) as pocet_nar_teliat_od_KaJ from CM_Telata as t
									left outer join CC_PlemTyp as p on p.TYPC = t.TYPPLEM
									where PRIZNAKKU = 2 
										and t.POHLAVIE not in ('61','62','63','71','81','82','91','92') 
										and t.TYPPLEM in ('101','102','103','104','105',	'111','112','113','114','115',
												'121','122','123','124','125', '131','141','142','143','144','145', 
												'151', '161','162','163','164','165', '171','172','173','174','175', 
												'181','201','202','203','204','205','191','192','193','194','195', 
												'51','53','54', '11','13','14')
										and t.CHOVNAR in ( select kraj + okres + podnik + chov + mastal from  Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
										and datnar >= @datumOd
									group by PLEMPRIS

declare @Poc_uhyn_tel_krJal table
	(
	PLEMPRIS varchar(3),
	pocet_uhyn_teliat_od_KaJ int
	)
insert @Poc_uhyn_tel_krJal
select p.PLEMPRIS, count(*) as pocet_uhyn_teliat_od_KaJ from CM_Telata as t
									left outer join CC_PlemTyp as p on p.TYPC = t.TYPPLEM
								where PRIZNAKKU = 2 
									and POHLAVIE  in ('61','62','63','71') 
									and t.TYPPLEM in ('101','102','103','104','105',	'111','112','113','114','115',
												'121','122','123','124','125', '131','141','142','143','144','145', 
												'151', '161','162','163','164','165', '171','172','173','174','175', 
												'181','201','202','203','204','205','191','192','193','194','195', 
												'51','53','54', '11','13','14')
									and CHOVNAR in ( select kraj + okres + podnik + chov + mastal from  Roc_MPHD_Tab_zaklad where rok = DATEPART(YEAR, @datumOd))
									and datnar >= @datumOd
								group by PLEMPRIS

----declare @natalita table
--create table Roc_MPHD_TAB_natalita
--	(	
--	Plemeno varchar(50),
--	PLEMPRIS varchar(3),
--	priemerny_stav_krav int,
--	pocet_nar_teliat_od_krav int,
--	pocet_nar_teliat_od_KaJ int,
--	pocet_uhyn_teliat_od_KaJ int,
--	zivo_nar_tel_na_100_krav float,
--	HN float,
--	CN float, 
--	rok int
--	)

alter table Roc_MPHD_TAB_natalita
add rok int

insert Roc_MPHD_TAB_natalita
	select case when a.PLEMPRIS ='AA' then 'Aberdeen Angus'
				when a.PLEMPRIS ='BA' then 'Blonde d´Aquitaine'
				when a.PLEMPRIS ='BB' then 'Belgické modré'
				when a.PLEMPRIS ='GL' then 'Galloway'
				when a.PLEMPRIS ='HL' then 'Highland'
				when a.PLEMPRIS ='CH' then 'Charolais'
				when a.PLEMPRIS ='LI' then 'Limousine'
				when a.PLEMPRIS ='HE' then 'Hereford'
				when a.PLEMPRIS ='SM' then 'Simentál mäsový'
				when a.PLEMPRIS ='PI' then 'Piemontese'
				when a.PLEMPRIS ='P' then 'Pinzgauské'
				when a.PLEMPRIS ='SD' then 'Maďarský stepný dobytok'
				when a.PLEMPRIS ='S' then 'Slovenské strakaté'	end as plemeno,
			--p.nazpl as plemeno,
			a.PLEMPRIS, a.priemerny_stav_krav, b.pocet_nar_teliat_od_krav, c.pocet_nar_teliat_od_KaJ, d.pocet_uhyn_teliat_od_KaJ,
			b.pocet_nar_teliat_od_krav * 100.0 / a.priemerny_stav_krav as zivo_nar_tel_na_100_krav,
			c.pocet_nar_teliat_od_KaJ *100.0 / a.priemerny_stav_krav as HN, -- hruba_natalita
			(c.pocet_nar_teliat_od_KaJ - isnull(d.pocet_uhyn_teliat_od_KaJ,0)) *100.0 / a.priemerny_stav_krav as CN,
			DATEPART(YEAR, @DatumOd) as rok
	from @Pr_stav_krav as a
		left outer join @Poc_nar_tel_krav as b on a.PLEMPRIS = b.PLEMPRIS
		left outer join @Poc_nar_tel_krJal as c on a.PLEMPRIS = c.PLEMPRIS
		left outer join @Poc_uhyn_tel_krJal as d on a.PLEMPRIS = d.PLEMPRIS
		--left outer join CC_Plemena as p on p.kodpl = a.PLEMPRIS
union 
	select 'Slovensko' as plemeno, 'SR' as PLEMPRIS, 
		@priemerny_stav_krav,
		@pocet_nar_teliat_od_krav,
		@pocet_nar_teliat_od_KaJ,
		@pocet_uhyn_teliat_od_KaJ,
		@pocet_nar_teliat_od_krav *100.0 / @priemerny_stav_krav as zivo_nar_tel_na_100_krav,
		@pocet_nar_teliat_od_KaJ *100.0 / @priemerny_stav_krav as HN,
		(@pocet_nar_teliat_od_KaJ - @pocet_uhyn_teliat_od_KaJ) *100.0 / @priemerny_stav_krav as CN,
		DATEPART(YEAR, @DatumOd) as rok 
--select * from @natalita

end
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_14]
    @rok varchar(4),
	@Plem_typ varchar(6),
	@Ml_B varchar(1)
	
as
begin

	
	select * 
	from plis.dbo.Roc_MLHD_Tab_14 as z
	where   z.rok = @rok and z. Plem_typ=@Plem_typ and z.Ml_B = @Ml_B 
  order by Por
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
	
	
CREATE FUNCTION [dbo].[Pribuznost_prepocet_priparovanieKoefTableValued_Custom2] 
(	
	@otec as varchar(14), @matka as varchar(14)
)
RETURNS @table TABLE(pribuznost float, pocet_predkov_otec int, pocet_predkov_matka int) 
AS
begin

/*predpriprava - ak su rodokmene otca s matkou uplne odlisne, vrat koeficient 0,
tym padom odpadne pocitanie koeficientu pribuznosti*/

declare @pocet_zhodnych int;
set @pocet_zhodnych =0;

select @pocet_zhodnych = count(rodokmen) from dbo.ZistiRodokmenTabulka_Custom(@matka) where rodokmen 
in(select rodokmen from dbo.ZistiRodokmenTabulka_Custom(@otec)); --kolko zhodnych predkov je medzi matkou a otcom (vratane otca a matky)

declare @pocet_predkov_o int; --pocet znamych predkov otec (max. 15)
declare @pocet_predkov_m int; --pocet znamych predkov matka (max. 15)
select @pocet_predkov_o= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@otec);
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@matka);
 
if @pocet_zhodnych = 0 begin insert into @table values (0,@pocet_predkov_o,@pocet_predkov_m); return;  end;
/*koniec predpripravy*/


	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @c_otec2 as varchar(14);	
	declare @c_matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	set @pribuznost=0;
	set @pribuz=0;
	
	declare @select as varchar (2048);
	declare @pSelect1 as varchar(2048);	
	SET @pSelect1 = N'if (@i<=4)
			begin
				set @j=1;
				set @k=1;
				set @predok1=null;
				set @generacia1=null;
				set @predok2=null;
				set @generacia2=null;
				WHILE (@j<=(SELECT COUNT(*) FROM <table1>))
				begin
					set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY <orderby> ASC) as rownumber,
						usnecislo FROM <table1>) AS foo WHERE rownumber=@j);
					set	@generacia1=(SELECT TOP (1) generacia FROM <table1> WHERE usnecislo=@predok1);	
					WHILE (@k<=(SELECT COUNT(*) FROM <table2>))
					begin
				 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY <orderby> ASC) as rownumber,
				 			usnecislo FROM <table2>) AS foo WHERE rownumber=@k);
						set @generacia2=(SELECT TOP (1) generacia FROM <table2> WHERE usnecislo=@predok2);
						if (@predok1=@predok2)
						begin
				 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
				 				VALUES (@uscislo, @predok1, @generacia1, ''<R1>'');
			 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
			 					VALUES (@uscislo, @predok2, @generacia2, ''<R2>'');
		 					set @pribuz=1;
					 	end;
					 set @k=@k+1;
					end;
					set @j=@j+1;
					set @k=1;
				end;
			end;';
			
	declare @pSelect2 as varchar(2048);	
	SET @pSelect2 = N'begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM <table1>))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM <table1>)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
						if (@otec2 is null OR @matka2 is null)
						begin
							select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
							if (@otec2 is null) begin set @otec2 = @c_otec2 end;
							if (@matka2 is null) begin set @matka2 = @c_matka2 end;
						end;
						if (@otec2 is not null)
						begin
							INSERT <table2> (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT <table2> (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;';
	
	declare @pSelect3 as varchar(2048);	
	SET @pSelect3 = 
				N'set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM <table1>))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY <orderby>) as rownumber,
							usnecislo FROM <table1>)
								AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM <table1> WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT <table2> (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM <table1>;';
					
	
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
			    
				--if (@i<=4)
				--begin
				--	set @j=1;
				--	set @k=1;
				--	set @predok1=null;
				--	set @generacia1=null;
				--	set @predok2=null;
				--	set @generacia2=null;
				--	WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
				--	begin
				--		set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
				--			usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
				--		set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
				--		WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
				--		begin
				--	 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
				--	 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
				--			set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
				--			if (@predok1=@predok2)
				--			begin
				--	 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
				--	 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				-- 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				-- 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 --					set @pribuz=1;
				--		 	end;
				--		 set @k=@k+1;
				--		end;
				--		set @j=@j+1;
				--		set @k=1;				
				--	end;
				--end;
								
				SET @select = REPLACE(@pSelect1, '<table1>', '@listrodicov_otec');
				SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
				SET @select = REPLACE(@select, '<orderby>', '@usnecislo');
				SET @select = REPLACE(@select, '<R1>', 'O');
				SET @select = REPLACE(@select, '<R2>', 'M');
				EXEC sp_executesql @select;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;				
				end;	
				
				--SET @select = REPLACE(@pSelect1, '<table1>', '@listoverovanych_otec');
				--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
				--SET @select = REPLACE(@select, '<orderby>', 'generacia');
				--SET @select = REPLACE(@select, '<R1>', 'O');
				--SET @select = REPLACE(@select, '<R2>', 'M');
				--EXEC sp_executesql @select;
				
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
				--SET @select = REPLACE(@pSelect1, '<table1>', '@listoverovanych_matka');
				--SET @select = REPLACE(@select, '<table2>', '@listrodicov_otec');
				--SET @select = REPLACE(@select, '<orderby>', 'generacia');
				--SET @select = REPLACE(@select, '<R1>', 'M');
				--SET @select = REPLACE(@select, '<R2>', 'O');
				--EXEC sp_executesql @select;
				
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
						if (@otec2 is null OR @matka2 is null)
						begin
							select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
							if (@otec2 is null) begin set @otec2 = @c_otec2 end;
							if (@matka2 is null) begin set @matka2 = @c_matka2 end;
						end;
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				
				--SET @select = REPLACE(@pSelect2, '<table1>', '@listrodicov_otec');
				--SET @select = REPLACE(@select, '<table2>', '@listtemprodicov_otec');
				--EXEC sp_executesql @select;
				
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
						if (@otec2 is null OR @matka2 is null)
						begin
							select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
							if (@otec2 is null) begin set @otec2 = @c_otec2 end;
							if (@matka2 is null) begin set @matka2 = @c_matka2 end;
						end;
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				
				--SET @select = REPLACE(@pSelect2, '<table1>', '@listrodicov_matka');
				--SET @select = REPLACE(@select, '<table2>', '@listtemprodicov_matka');
				--EXEC sp_executesql @select;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listrodicov_otec');
					--SET @select = REPLACE(@select, '<table2>', '@listoverovanych_otec');
					--SET @select = REPLACE(@select, '<orderby>', 'generacia');
					--EXEC sp_executesql @select;
					
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
								AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;		
							
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<orderby>', 'generacia');
					--EXEC sp_executesql @select;
					
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listtemprodicov_otec');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_otec');
					--SET @select = REPLACE(@select, '<orderby>', 'usnecislo');
					--EXEC sp_executesql @select;
					
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listtemprodicov_matka');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<orderby>', 'usnecislo');
					--EXEC sp_executesql @select;
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				--SET @select = REPLACE(@pSelect1, '<table1>', '@listrodicov_otec');
				--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
				--SET @select = REPLACE(@select, '<orderby>', 'usnecislo');
				--SET @select = REPLACE(@select, '<R1>', 'O');
				--SET @select = REPLACE(@select, '<R2>', 'M');
				--EXEC sp_executesql @select;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;				
				end;	
				
				--SET @select = REPLACE(@pSelect1, '<table1>', '@listoverovanych_otec');
				--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
				--SET @select = REPLACE(@select, '<orderby>', 'generacia');
				--SET @select = REPLACE(@select, '<R1>', 'O');
				--SET @select = REPLACE(@select, '<R2>', 'M');
				--EXEC sp_executesql @select;
					
				
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;		
				
				--SET @select = REPLACE(@pSelect1, '<table1>', '@listoverovanych_otec');
				--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
				--SET @select = REPLACE(@select, '<orderby>', 'generacia');
				--SET @select = REPLACE(@select, '<R1>', 'M');
				--SET @select = REPLACE(@select, '<R2>', 'O');
				--EXEC sp_executesql @select;
	
				
				
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
							if (@otec2 is null OR @matka2 is null)
							begin
								select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
								if (@otec2 is null) begin set @otec2 = @c_otec2 end;
								if (@matka2 is null) begin set @matka2 = @c_matka2 end;
							end;
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
							if (@otec2 is null OR @matka2 is null)
							begin
								select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
								if (@otec2 is null) begin set @otec2 = @c_otec2 end;
								if (@matka2 is null) begin set @matka2 = @c_matka2 end;
							end;
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	
							AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listrodicov_otec');
					--SET @select = REPLACE(@select, '<table2>', '@listoverovanych_otec');
					--SET @select = REPLACE(@select, '<orderby>', 'generacia');
					--EXEC sp_executesql @select;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<orderby>', 'generacia');
					--EXEC sp_executesql @select;
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
							 AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
					
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listtemprodicov_otec');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_otec');
					--SET @select = REPLACE(@select, '<orderby>', 'usnecislo');
					--EXEC sp_executesql @select;
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		
					 			
					--SET @select = REPLACE(@pSelect3, '<table1>', '@listtemprodicov_matka');
					--SET @select = REPLACE(@select, '<table2>', '@listrodicov_matka');
					--SET @select = REPLACE(@select, '<orderby>', 'usnecislo');
					--EXEC sp_executesql @select;
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @spolpredpribuz=0;
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));
				    if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Custom_DB]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));		
					end
					
					if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=0;					
					end
					set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @spolpredpribuz=0;
				set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Custom_DB]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				end
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=0;					
				end
				set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k=2 or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			insert into @table values (isnull(round(@pribuz*100,2),0),@pocet_predkov_o,@pocet_predkov_m)
			return;
end



/*


select pribuznost, pocet_predkov_otec, pocet_predkov_matka from dbo.Pribuznost_prepocet_priparovanieKoefTableValued_Custom2('CZ000002336031', 'CZ000076287246')

select pribuznost, pocet_predkov_otec, pocet_predkov_matka from dbo.Pribuznost_prepocet_priparovanieKoefTableValued_Custom2('CZ000002336031', 'CZ000076287246')


select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo='CZ000002336031');

select TOP (1) * from dbo.ZistiRodokmenTabulka_Custom('CZ000002	336031');


select
LAG(rodokmen) over (order by rodokmen asc) as prev,
LEAD(rodokmen) over (order by rodokmen asc) as next
from dbo.ZistiRodokmenTabulka_Custom('CZ000002336031')

declare @pocet_predkov_o int; --pocet znamych predkov otec (max. 15)
declare @pocet_predkov_m int; --pocet znamych predkov matka (max. 15)
select count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom('CZ000002336031');
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@matka);

--Pribuznost_prepocet_priparovanieKoefTableValued(@HD,CM_Krava.ciskravy)

*/
go

/** Rocenka MASO - grafy  - str 42 rocenka MPHD - Hmotnost teliat vo veku 120  a 210 dni podla obdobia narodenia   **/

CREATE procedure [dbo].[Roc_MPHD_GRAF_HmTeliat_120_210]
			@datumOd date,
			@datumDo date
as
begin 
delete from Roc_MPHD_Tab_GRAF_HmTeliat_120_210 where rok = DATEPART(YEAR, @datumOd)
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'


declare @vahy_120_210 table
(
cistelata varchar(14),
Pohl varchar(2),
mesiac_nar int,
hmotnost float,
dniprepoc int
)
insert @vahy_120_210
select t.CISTELATA, 
	(case when t.POHLAVIE in ('02','22','32','42','52','82') then 'J'
		 when t.pohlavie in ('01','11','31','41','51','81') then 'B'
					end) as Pohl,
	(case when datepart(month,t.datnar) in ('1','2','3') then '1' --januar-marec
		when datepart(month,t.datnar) in ('4','5','6') then '2'	-- april - jun
		when datepart(month,t.datnar) in ('7','8','9') then '3' -- jul - september
		when datepart(month,t.datnar) in ('10','11','12') then '4' end) as mesiac_nar, --oktober - december
	v.HMOTPREPOC as hmotnost,
	v.DNIPREPOC as dniprepoc

 from CM_Telata as t
left outer join CM_Vazenia as v on t.cistelata = v.CISTELATA
where v.DNIPREPOC in ('120','210')
	and t.PRIZNAKKU = '2'
	and (t.DOVVYR is null or (datvyr >= @datumOd and datvyr <= @datumDo))
	and DATVAZ >= @datumOd and DATVAZ <= @datumDo

	--select * from @vahy_120_210

	/*create table Roc_MPHD_Tab_GRAF_HmTeliat_120_210		
--declare @Roc_MPHD_GRAF_HmTeliat_120_210 table
	(
	B_120_1 float,
	J_120_1 float,
	B_210_1 float,
	J_210_1 float,
	B_120_2 float,
	J_120_2 float,
	B_210_2 float,
	J_210_2 float,
	B_120_3 float,
	J_120_3 float,
	B_210_3 float,
	J_210_3 float,
	B_120_4 float,
	J_120_4 float,
	B_210_4 float,
	J_210_4 float,
	rok int
	)
	*/

insert into  Roc_MPHD_Tab_GRAF_HmTeliat_120_210
(B_120_1,rok)
	select avg(hmotnost) as B_120_1, 
	datepart(year, @datumOd) as rok
	 from @vahy_120_210 where Pohl = 'B' and dniprepoc=120 and mesiac_nar = 1

update  Roc_MPHD_Tab_GRAF_HmTeliat_120_210
set J_120_1 = (select avg(hmotnost) /*as J_120_1*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=120 and mesiac_nar = 1)
	
update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_210_1 = (select avg(hmotnost) /*as B_210_1*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=210 and mesiac_nar = 1)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_210_1 = (select avg(hmotnost) /*as J_120_1*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=210 and mesiac_nar = 1)

update Roc_MPHD_Tab_GRAF_HmTeliat_120_210	
	set B_120_2 =(select avg(hmotnost) /*as B_120_2*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=120 and mesiac_nar = 2)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_120_2 = (select avg(hmotnost) /*as J_120_2*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=120 and mesiac_nar = 2)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_210_2= (select avg(hmotnost) /*as B_210_2*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=210 and mesiac_nar = 2)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_210_2 = (select avg(hmotnost) /*as J_210_2*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=210 and mesiac_nar = 2)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_120_3 = (select avg(hmotnost) /*as B_120_3*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=120 and mesiac_nar = 3)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_120_3 = (select avg(hmotnost) /*as J_120_3*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=120 and mesiac_nar = 3)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_210_3 = (select avg(hmotnost) /*as B_210_3*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=210 and mesiac_nar = 3)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210	
	set J_210_3 = (select avg(hmotnost) /*as J_210_3*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=210 and mesiac_nar = 3)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_120_4 = (select avg(hmotnost) /*as B_120_4*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=120 and mesiac_nar = 4)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_120_4 = (select avg(hmotnost) /*as J_120_4*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=120 and mesiac_nar = 4)

update 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set B_210_4 = (select avg(hmotnost) /*as B_210_4*/ from @vahy_120_210 where Pohl = 'B' and dniprepoc=210 and mesiac_nar = 4)

update Roc_MPHD_Tab_GRAF_HmTeliat_120_210
	set J_210_4 = (select avg(hmotnost) /*as J_210_4*/ from @vahy_120_210 where Pohl = 'J' and dniprepoc=210 and mesiac_nar = 4)

end


	--select * from 	Roc_MPHD_Tab_GRAF_HmTeliat_120_210
go

-- =============================================
-- Author:		<Author,,Machynova Anna>
-- Create date: <Create Date,,24.9.2015>
-- Description:	<Description,,pre vybrany chov urobi zoznam vsetkych nevyradenych bahnic s vypocitanym novym poradim laktacie>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PoslUzLak]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9))

RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
select REPLACE(b.LUC, ' ', '.') AS LU, CASE WHEN b.ZVSTAT IS NOT NULL THEN b.ZVSTAT + REPLACE(STR(CONVERT (float , b.JCCEHZ) , 12) , ' ' , '.') ELSE '              ' END AS CEHZ, b.BAHCIS ,m.RokEv,m.PorLak,
case when m.porlak is not null then m.porlak+year(getdate())-cast(m.rokev as integer) 
     else year(getdate())-cast(b.roknar as integer)-1 end as nporlak,b.roknar
FROM SM_Bahnica b
LEFT OUTER JOIN SM_MLROKY m ON m.BahCis=b.Bahcis and m.rokev=(SELECT MAX(ROKEV) AS RokEv
  FROM dbo.SM_MlRoky AS m2 WHERE (m.BAHCIS = m2.BAHCIS) AND (m2.MNL3L > 0) AND (m2.BAHCIS <> '00000000'))
where ((b.Krokr+b.Podnik+b.stado)=@chovatel) and (b.Dovod='0') and (b.DatVyr is null)
)
go

CREATE procedure [dbo].[Rocenka_MPHD_17]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

    select
      o.NAZOV                                                                                                       as Okres_nazov,
      pk.NAZOVSKR                                                                                                   as Podnik_nazov,
      ch.NAZOV                                                                                                      as Chov_nazov,
      pk.OBEC                                                                                                       as Sidlo,
      p.kraj,
      p.okres,
      p.podnik,
      p.chov,
      p.mastal,
      p.ekochov,
      p.plem_podiel,
      isnull(k.TITUL_PRED, '') + isnull(k.MENO, '') + ' ' + isnull(k.PRIEZVISKO, '') + ' ' + isnull(k.TITUL_ZA,
                                                                                                    '')             as predstavitel_1,
      isnull(k.FUNKCIA,
             '')                                                                                                    as funkcia_1,
      isnull(z.TITUL_PRED, '') + isnull(z.MENO, '') + ' ' + isnull(z.PRIEZVISKO, '') + ' ' + isnull(z.TITUL_ZA,
                                                                                                    '')             as predstavitel_2,
      isnull(z.FUNKCIA,
             '')                                                                                                    as funkcia_2,
      K1_poc,
      K1_poc_120,
      K1_perc_120,
      K1_poc_210,
      K1_perc_210,
      K1_poc_365,
      K1_perc_365,
      K1_poc_500,
      K1_perc_500,
      K1_Priem_Hm_120,
      K1_Priem_Hm_210,
      K1_Priem_Hm_365,
      K1_Priem_Hm_500,
      K1_priem_ziv_prir_120,
      K1_priem_ziv_prir_210,
      K1_priem_ziv_prir_365,
      K1_priem_ziv_prir_500,
      K1_medziobd,
      K1_vek_1_otel,
      K1_priem_lakt,
      MD1_poc,
      MD1_poc_vaz_120,
      MD1_perc_120,
      MD1_poc_vaz_210,
      MD1_perc_210,
      MD1_poc_vaz_365,
      MD1_perc_365,
      MD1_poc_vaz_500,
      MD1_perc_500,
      MD1_Priem_Hm_120,
      MD1_Priem_Hm_210,
      MD1_Priem_Hm_365,
      MD1_Priem_Hm_500,
      MD1_priem_ziv_prirastok_chov_120,
      MD1_priem_ziv_prirastok_chov_210,
      MD1_priem_ziv_prirastok_chov_365,
      MD1_priem_ziv_prirastok_chov_500,
      K2_poc,
      K2_poc_120,
      K2_perc_120,
      K2_poc_210,
      K2_perc_210,
      K2_poc_365,
      K2_perc_365,
      K2_poc_500,
      K2_Priem_Hm_120,
      K2_Priem_Hm_210,
      K2_Priem_Hm_365,
      K2_Priem_Hm_500,
      K2_perc_500,
      K2_priem_ziv_prirastok_120,
      K2_priem_ziv_prirastok_210,
      K2_priem_ziv_prirastok_365,
      K2_priem_ziv_prirastok_500,
      K2_medziobd,
      K2_vek_1_otel,
      K2_priem_lakt,
      K2_vyradene,
      J_poc,
      J_poc_vaz_120,
      nullif(J_perc_120,0) as J_perc_120,
      J_poc_vaz_210,
      nullif(J_perc_210,0) as J_perc_210,
      J_poc_vaz_365,
      nullif(J_perc_365,0) as J_perc_365,
      J_poc_vaz_500,
      nullif(J_perc_500,0) as J_perc_500,
      nullif(J_Priem_Hm_120,0) as J_Priem_Hm_120,
      nullif(J_Priem_Hm_210,0) as J_Priem_Hm_210,
      nullif(J_Priem_Hm_365,0) as J_Priem_Hm_365,
      nullif(J_Priem_Hm_500,0) as J_Priem_Hm_500,
      nullif(J_priem_ziv_prirastok_chov_120,0) as J_priem_ziv_prirastok_chov_120,
      nullif(J_priem_ziv_prirastok_chov_210,0) as J_priem_ziv_prirastok_chov_210,
      nullif(J_priem_ziv_prirastok_chov_365,0) as J_priem_ziv_prirastok_chov_365,
      nullif(J_priem_ziv_prirastok_chov_500,0) as J_priem_ziv_prirastok_chov_500,
      B_poc,
      B_poc_vaz_120,
      B_perc_120,
      B_poc_vaz_210,
      B_perc_210,
      B_poc_vaz_365,
      B_perc_365,
      B_poc_vaz_500,
      B_perc_500,
      B_Priem_Hm_120,
      B_Priem_Hm_210,
      B_Priem_Hm_365,
      B_Priem_Hm_500,
      B_priem_ziv_prirastok_chov_120,
      B_priem_ziv_prirastok_chov_210,
      B_priem_ziv_prirastok_chov_365,
      B_priem_ziv_prirastok_chov_500,
      MD2_poc,
      MD2_poc_vaz_120,
      MD2_perc_120,
      MD2_poc_vaz_210,
      MD2_perc_210,
      MD2_poc_vaz_365,
      MD2_perc_365,
      MD2_poc_vaz_500,
      MD2_perc_500,
      MD2_Priem_Hm_120,
      MD2_Priem_Hm_210,
      MD2_Priem_Hm_365,
      MD2_Priem_Hm_500,
      MD2_priem_ziv_prirastok_chov_120,
      MD2_priem_ziv_prirastok_chov_210,
      MD2_priem_ziv_prirastok_chov_365,
      MD2_priem_ziv_prirastok_chov_500,
      MD2_vyradene,
      rok


	
	from Roc_MPHD_Tab_17 as p
		  left join  NC_OKRES as o  on p.kraj+ p.okres  = o.kraj + o.okres 
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
		  left outer join NM_PODNIK as pk on pk.KRAJ + pk.OKRES + pk.PODNIK =  p.kraj + p.okres + p.podnik --LEFT(@chov,6)
		  left outer join NM_Konatel as k on k.ID = pk.ID_KONATEL
		  left outer join NM_Zootechnik as z on z.ID = ch.ID_ZOOTECHNIK
	where p.kraj + p.okres + p.podnik + p.chov + p.mastal =  ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
		  and datepart(year,@datumOd) = p.rok
		  --and ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = @chov
		and ch.TYPZV= 1
		and ch.chov not in ('010','700', '699') 
		and left(ch.chov,1) ='7'
		and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
        and ch.kraj + ch.okres + ch.podnik + ch.chov in (select kraj + okres + podnik + chov
                                                         from NM_HDDETAIL
                                                         where
                                                           SPVYKON = '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
	union
		select  o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, '' as Chov_nazov, '' as Sidlo, 
			p.kraj, p.okres, p.podnik, '99' as Chov, '9' as mastal,  p.ekochov,'' as plem_podiel,
			'' as predstavitel_1, '' as funkcia_1,
			'' as predstavitel_2, '' as funkcia_2,
			K1_poc, K1_poc_120, K1_perc_120, K1_poc_210, K1_perc_210, K1_poc_365, K1_perc_365, K1_poc_500,
			K1_perc_500, K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365,
			K1_priem_ziv_prir_500, K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
			MD1_poc, MD1_poc_vaz_120, MD1_perc_120 , MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365,
			MD1_poc_vaz_500, MD1_perc_500, MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
			MD1_priem_ziv_prirastok_chov_500,
			K2_poc, K2_poc_120,	K2_perc_120, K2_poc_210, K2_perc_210, K2_poc_365, K2_perc_365, K2_poc_500,
			K2_Priem_Hm_120, K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
			K2_perc_500, K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
			K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene, 
			J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210 , J_perc_210, J_poc_vaz_365, J_perc_365, J_poc_vaz_500,
			J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
			J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
			B_poc, B_poc_vaz_120, B_perc_120, B_poc_vaz_210, B_perc_210, B_poc_vaz_365, B_perc_365, B_poc_vaz_500,
			B_perc_500, B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
			B_priem_ziv_prirastok_chov_500 ,
			MD2_poc, MD2_poc_vaz_120 , MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
			MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene, rok
		from Roc_MPHD_Tab_17 as p
		  left join  NC_OKRES as o  on p.kraj+ p.okres  = o.kraj + o.okres 
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
		  left outer join NM_PODNIK as pk on pk.KRAJ + pk.OKRES + pk.PODNIK =  p.kraj + p.okres + p.podnik --LEFT(@chov,6)
		  left outer join NM_Konatel as k on k.ID = pk.ID_KONATEL
		  left outer join NM_Zootechnik as z on z.ID = ch.ID_ZOOTECHNIK
		
    where p.okres <> '' and p.Podnik <> '' and p.Chov = ''
          and ch.kraj + ch.okres + ch.podnik + ch.chov in (select kraj + okres + podnik + chov
                                                           from NM_HDDETAIL
                                                           where
                                                             SPVYKON = '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)






  order by kraj, okres, podnik, chov,mastal
			
	end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.12.2017
-- Description:	Udaje do rocenky za plemeno S/P/H/B kvoli tabulke: VYSLEDKY KONTROLY UZISTKOVOSTI ZA SLACHTITELSKE CHOVY - PODLA PLEMIEN 
--				nasledne sa pouziju data z tabulky CR_LaktacneZostavy_rocenka do tabulky Roc_MLHD_Tab_19A
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_plemeno_rocenka_SPOLU]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)='',
	@plem varchar(10)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[PlemTyp] [varchar] (10) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)

		
	insert into @Laktacie			
	 SELECT distinct
 		 PORLAK, Lakt.CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 (case when k.TYPPLEM in('11','13','14','51','52','53','54','62','66','72','73','76','77','82','83','84',
								'86','87','88','92','93','94','95','96','97','98','99','21','22','23')  then 'SR'
					 else '0' end) as Plem,
				Lakt.DOVVYR, Lakt.DATVYR,
		 (select distinct case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
	 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
	 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		----and (PLEM=@plem or @plem is null)
		and h.CHARCHOV in ('1','2','3','4','5')
					and (k.TYPPLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''


	insert @kravy
		select distinct
			@chov as CHOV, 
			@region as Region,
			--(Select distinct case when pl.TYPS is null then 'BEZ' else pl.TYPS end),	
			(Select distinct case when k.TYPPLEM in('11','13','14','51','52','53','54','62','66','72','73','76','77','82','83','84',
								'86','87','88','92','93','94','95','96','97','98','99','21','22','23')  then 'SR'
					 else '0' end) as PlemTyp, 

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.chovatel
			--inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					and h.CHARCHOV in ('1','2','3','4','5')
					and (k.TYPPLEM=@plem or @plem is null)	



--select * from @kravy

--select * from @Laktacie 

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp as PlemTyp, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		PlemTyp, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,PlemTyp,
		case when @plem is not null then PlemTyp end 

--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select @chov as CHOV, 
		@region as Region,
		l.PLEM as PlemTyp,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
		count(*) as PocLakV1
	from @Laktacie as l	where PORLAK = '1'
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV1 

declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL
	)

	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
		case when @plem is not null then l.PLEM end 

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,PlemTyp, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
			case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
			case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.PLEM,
	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV


insert into dbo.CR_LaktacneZostavy_Opr
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)
	
	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.Plem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.PlemTyp=l.PLEM)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.PlemTyp=l.PLEM)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.PlemTyp=l.PLEM)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.PlemTyp=l.PLEM)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.PlemTyp=l.PLEM)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.PlemTyp=l.PLEM)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.PlemTyp=l.PLEM)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.PlemTyp=l.PLEM)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.PlemTyp=l.PLEM)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.PlemTyp=l.PLEM)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.PlemTyp=l.PLEM)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.PlemTyp=l.PLEM)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.PlemTyp=l.PLEM)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.PlemTyp=l.PLEM)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.PlemTyp=l.PLEM)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	where l.PLEM <>'0'
	
	end

		--CR_ZostavaLaktacie_plemeno_opr 203504011, '2017-01-01','2017-12-14', null, null
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-04-27
-- Description:	Aktualizovanie tabulku CM_ByciTDM datami z narodneho hodnotenia
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_BykyTDM_PLIS]
	@rok varchar(4),
	@mesiac varchar(2)

AS
BEGIN
DELETE FROM CM_BykyTDM where ROKSPRAC = @rok and MESSPRAC = @mesiac

insert into CM_BykyTDM
SELECT @rok
	  ,@mesiac
	  ,[plem]
	  ,[BYK]
      ,[BLIN]
      ,[BREG]
      ,[MENBYK]
      ,[DATUMN]
      ,[ROK]
      ,[SIRE]
      ,[SLIN]
      ,[SREG]
      ,[DAM]
      ,[BREEDG]
      ,[PLEMENO]
      ,[NH]
      ,[ND]
      ,[NR]
      ,[N]
      ,[MLIEKO]
      ,[TUK]
      ,[TUKP]
      ,[BIELK]
      ,[BIELKP]
      ,[SPI]
      ,[M305]
      ,[RPHM]
      ,[M100]
      ,[MREL]
      ,[T305]
      ,[RPHT]
      ,[T100]
      ,[TP]
      ,[TREL]
      ,[B305]
      ,[RPHB]
      ,[B100]
      ,[BP]
      ,[BREL]
      ,[REL]
  FROM [CP_BLUP_BYKYTDM]
END
go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru kontrol pre gen. hodnotenie SIM populacie v DE
-- EDIT:		2018-04-20 - David Florek - Zmenene aby vyberalo zo ZSTDM namiesto TDMSIM
-- EDIT:        2018-07-12 (FREKV), link to calving data,   kontrola na poradie laktacie calvig data a testdays
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_testdays2]
AS
BEGIN
	select * into #temp_recordings from (
	(select arch.CISKRAVY,
	         CISCHOVU,
	         DATKONTR,
	         MLIEKPR as MLIEKO,
	        isnull(PERCTUKU, 0) as TUKP,
	        isnull(PERCBIELK, 0) as BIELKP,
	        isnull(BUNECELEM, 0) as SB,
	      
			(case when detail.MLIEKOMER = 2 then 'R' else 
			      (case when arch.FREKVENCIA is not null then arch.FREKVENCIA else '2'  end) end) as FREKV,
			 arch.PORPREBLAK
	from CM_ArchKon arch
	  join CM_Krava krav on arch.CISKRAVY = krav.CISKRAVY
	  left outer join NM_HDDETAIL detail on arch.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where CISCHOVU is not null
	  and MLIEKPR is not null
	  and INTERVAL is not null and arch.PORPREBLAK is not null
	  and TYPPLEM in (11, 13, 14) 

union 	SELECT  kon.CISKRAVY, kon.CISCHOVU, kon.DATKONTR, kon.MLIEKPR as MLIEKO , isnull(PERCTUKU, 0) as TUKP,
	          isnull(PERCBIELK, 0) as BIELKP,
	          isnull(BUNECELEM, 0) as SB,
	       	  (case when detail.MLIEKOMER = 2 then 'R' else 
			  (case when kon.FREKVENCIA is not null then kon.FREKVENCIA else '2'  end) end) as FREKV,
			  kon.PORPREBLAK  
FROM           dbo.CM_Kontroly as kon
			   join CM_Krava krav on kon.CISKRAVY = krav.CISKRAVY
	           left outer join NM_HDDETAIL detail on kon.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	           where CISCHOVU is not null
	           and MLIEKPR is not null
	           and INTERVAL is not null  and kon.PORPREBLAK is not null
	           and TYPPLEM in (11, 13, 14) and kon.CISKRAVY NOT IN  (SELECT CM_ArchKon.CISKRAVY FROM CM_ArchKon WHERE kon.CISKRAVY = CM_Archkon.CISKRAVY and kon.DATKONTR = CM_Archkon.DATKONTR)
union	SELECT  
	 CISKRAVY
	, CISCHOVU
	, DATKONTR
	, MLIEKO
	, TUKP
	, BIELKP
	, t.SB
	, case when detail.MLIEKOMER = 2 then 'R' else '2' end as FREKV
	, porlak as PORPREBLAK
	  FROM [plis].[dbo].[CM_ZSTDM] as t
	  left outer join NM_HDDETAIL detail on t.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where LEFT(t.TYP, 1) = 'S'
	  and CISCHOVU is not null
	  and t.SB is not null  and t.CISKRAVY NOT IN (select CM_Archkon.CISKRAVY FROM CM_ArchKon  where t.CISKRAVY = CM_Archkon.CISKRAVY and t.DATKONTR = CM_ArchKon.DATKONTR)
	 and t.CISKRAVY NOT IN 	(select CM_Kontroly.CISKRAVY FROM CM_Kontroly  where t.CISKRAVY = CM_Kontroly.CISKRAVY and t.DATKONTR = CM_Kontroly.DATKONTR)  
			   
			   
			   )
	
	  ) as tab
	  where tab.CISKRAVY  in (select CISKRAVY from  dbo.View_CP_LaktacieNaplak as ln  where tab.CISKRAVY = ln.CISKRAVY and tab.PORPREBLAK = ln.PORLAK);

	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00000000000'+convert(varchar(11), CISCHOVU), 11) as CISCHOVU
		,'00' as REGIONPOVODU
		,isnull(convert(varchar(8), DATKONTR, 112), '00000000') as DATKONTR
		,RIGHT('0000'+convert(varchar(4), MLIEKO*10), 4) as MLIEKO
		,RIGHT('0000'+convert(varchar(4), TUKP*100), 4) as TUKP
		,RIGHT('0000'+convert(varchar(4), BIELKP*100), 4) as BIELKP
		,RIGHT('00000'+convert(varchar(5), SB), 5) as SB
		, 'C' as METHOD
		, case (SELECT SPVYKON from NM_HDDETAIL where kraj+okres+podnik+chov = CISCHOVU) 
			when 1 then 'S' when 2 then 'T' when 6 then 'M' when 7 then 'M' else ' ' end as SCHEME
		, '4' as TESTINT
		,convert(varchar(1), isnull(FREKV, 1)) as FREKV
		, '0' as T1
		, '000' as T2
		, '0' as T3
		into temp_polozky_recordings
	FROM #temp_recordings
	 where DATKONTR < '2018-10-15'

	
	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +CISCHOVU +REGIONPOVODU +DATKONTR +MLIEKO +TUKP +BIELKP +SB +METHOD +SCHEME +TESTINT +FREKV +T1 +T2 +T3 from plis.dbo.temp_polozky_recordings" queryout "e:\ROZBORAK\Data\svk.05.txt" -T -c -t,'

	drop table temp_polozky_recordings
END

go

CREATE procedure [dbo].[Roc_MPHD_99_porody_graf]
	
	@datumOd date,
	@datumDo date
	
	as
	begin
--declare @datumOd date = '2018-01-01', @datumDO date = '2018-09-30'

delete from Roc_MPHD_TAB99_porody_graf where rok = year(@datumOd);

declare @pocetTeliat table
	(
	mesiac int,
	pocet int,
	PLEMPRIS varchar(3)
	)
	insert @pocetTeliat
		select
			MONTH(telata.DATNAR) as mesiac,
			COUNT(*)             as pocet,
			CASE
			WHEN plemennyTyp.PLEMPRIS = 'AA'
				then 'AA'
			WHEN plemennyTyp.PLEMPRIS = 'BA'
				then 'BA'
			WHEN plemennyTyp.PLEMPRIS = 'GL'
				then 'GL'
			WHEN plemennyTyp.PLEMPRIS = 'HE'
				then 'HE'
			WHEN plemennyTyp.PLEMPRIS = 'HL'
				then 'HL'
			WHEN plemennyTyp.PLEMPRIS = 'CH'
				then 'CH'
			WHEN plemennyTyp.PLEMPRIS = 'LI'
				then 'LI'
			WHEN plemennyTyp.PLEMPRIS = 'P'
				then 'P'
			WHEN plemennyTyp.PLEMPRIS = 'S'
				then 'S'
			WHEN plemennyTyp.PLEMPRIS = 'SM'
				then 'SM'
			WHEN plemennyTyp.PLEMPRIS is null
				then 'XX'
			ELSE 'OS' END
													 as PLEMPRIS
		from CM_Telata as telata
			left outer join CC_PlemTyp as plemennyTyp on plemennyTyp.TYPC = telata.TYPPLEM
		where telata.DATNAR between @datumOd and @datumDo
					and telata.PRIZNAKKU = 2
		group by MONTH(telata.DATNAR),
			CASE
			WHEN plemennyTyp.PLEMPRIS = 'AA'
				then 'AA'
			WHEN plemennyTyp.PLEMPRIS = 'BA'
				then 'BA'
			WHEN plemennyTyp.PLEMPRIS = 'GL'
				then 'GL'
			WHEN plemennyTyp.PLEMPRIS = 'HE'
				then 'HE'
			WHEN plemennyTyp.PLEMPRIS = 'HL'
				then 'HL'
			WHEN plemennyTyp.PLEMPRIS = 'CH'
				then 'CH'
			WHEN plemennyTyp.PLEMPRIS = 'LI'
				then 'LI'
			WHEN plemennyTyp.PLEMPRIS = 'P'
				then 'P'
			WHEN plemennyTyp.PLEMPRIS = 'S'
				then 'S'
			WHEN plemennyTyp.PLEMPRIS = 'SM'
				then 'SM'
			WHEN plemennyTyp.PLEMPRIS is null
				then 'XX'
			ELSE 'OS' END

		union 

		select MONTH(telata.DATNAR) as mesiac, COUNT(*) as pocet, 'SR' as PLEMPRIS
				from CM_Telata as telata
				where telata.DATNAR between @datumOd and @datumDo 
				and telata.PRIZNAKKU = 2
			group by MONTH(telata.DATNAR)

declare @pocetTeliat_rok table
	(
	pocet_rok int,
	PLEMPRIS_rok varchar(3)
	)
	insert @pocetTeliat_rok
		select  COUNT(*) as pocet_rok, CASE
																	 WHEN plemennyTyp.PLEMPRIS = 'AA'
																		 then 'AA'
																	 WHEN plemennyTyp.PLEMPRIS = 'BA'
																		 then 'BA'
																	 WHEN plemennyTyp.PLEMPRIS = 'GL'
																		 then 'GL'
																	 WHEN plemennyTyp.PLEMPRIS = 'HE'
																		 then 'HE'
																	 WHEN plemennyTyp.PLEMPRIS = 'HL'
																		 then 'HL'
																	 WHEN plemennyTyp.PLEMPRIS = 'CH'
																		 then 'CH'
																	 WHEN plemennyTyp.PLEMPRIS = 'LI'
																		 then 'LI'
																	 WHEN plemennyTyp.PLEMPRIS = 'P'
																		 then 'P'
																	 WHEN plemennyTyp.PLEMPRIS = 'S'
																		 then 'S'
																	 WHEN plemennyTyp.PLEMPRIS = 'SM'
																		 then 'SM'
																	 WHEN plemennyTyp.PLEMPRIS is null
																		 then 'XX'
																	 ELSE 'OS' END
			as PLEMPRIS_rok
				from CM_Telata as telata
				left outer join CC_PlemTyp as plemennyTyp on plemennyTyp.TYPC=telata.TYPPLEM
				where telata.DATNAR between @datumOd and @datumDo 
				and telata.PRIZNAKKU = 2
			group by CASE
							 WHEN plemennyTyp.PLEMPRIS = 'AA'
								 then 'AA'
							 WHEN plemennyTyp.PLEMPRIS = 'BA'
								 then 'BA'
							 WHEN plemennyTyp.PLEMPRIS = 'GL'
								 then 'GL'
							 WHEN plemennyTyp.PLEMPRIS = 'HE'
								 then 'HE'
							 WHEN plemennyTyp.PLEMPRIS = 'HL'
								 then 'HL'
							 WHEN plemennyTyp.PLEMPRIS = 'CH'
								 then 'CH'
							 WHEN plemennyTyp.PLEMPRIS = 'LI'
								 then 'LI'
							 WHEN plemennyTyp.PLEMPRIS = 'P'
								 then 'P'
							 WHEN plemennyTyp.PLEMPRIS = 'S'
								 then 'S'
							 WHEN plemennyTyp.PLEMPRIS = 'SM'
								 then 'SM'
							 WHEN plemennyTyp.PLEMPRIS is null
								 then 'XX'
							 ELSE 'OS' END
	union 
		select  COUNT(*) as pocet_rok, 'SR' as PLEMPRIS_rok
				from CM_Telata as telata
					where telata.DATNAR between @datumOd and @datumDo 
				and telata.PRIZNAKKU = 2

--select * from @pocetTeliat order by PLEMPRIS
--select * from @pocetTeliat_rok

declare @vysledna table 
(
	plemeno varchar (3),
	januar_pocet int,
	februar_pocet int,
	marec_pocet int,
	april_pocet int,
	maj_pocet int,
	jun_pocet int,
	jul_pocet int,
	august_pocet int,
	september_pocet int,
	oktober_pocet int,
	november_pocet int,
	december_pocet int,
	pocet_rok int
)

insert into @vysledna
	(plemeno, pocet_rok)
select distinct PLEMPRIS_rok as plemeno, pocet_rok
	from @pocetTeliat_rok 

update @vysledna 
set januar_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 1 and p.PLEMPRIS = plemeno )

update @vysledna 
set februar_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 2 and p.PLEMPRIS = plemeno )
update @vysledna 
set marec_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 3 and p.PLEMPRIS = plemeno )
update @vysledna 
set april_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 4 and p.PLEMPRIS = plemeno )
update @vysledna 
set maj_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 5 and p.PLEMPRIS = plemeno )
update @vysledna 
set jun_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 6 and p.PLEMPRIS = plemeno )
update @vysledna 
set jul_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 7 and p.PLEMPRIS = plemeno )
update @vysledna 
set august_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 8 and p.PLEMPRIS = plemeno )
update @vysledna 
set september_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 9 and p.PLEMPRIS = plemeno )
update @vysledna 
set oktober_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 10 and p.PLEMPRIS = plemeno )
update @vysledna 
set november_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 11 and p.PLEMPRIS = plemeno )
update @vysledna 
set december_pocet = (select p.pocet from @pocetTeliat as p
					where mesiac = 12 and p.PLEMPRIS = plemeno )

--Create table Roc_MPHD_TAB99_porody_graf
--(
--plemeno varchar (3),
--januar_pocet int,
--januar_perc float,
--februar_pocet int,
--februar__perc float,
--marec_pocet int,
--marec__perc float,
--april_pocet int,
--april__perc float,
--maj_pocet int,
--maj__perc float,
--jun_pocet int,
--jun__perc float,
--jul_pocet int,
--jul__perc float,
--august_pocet int,
--august__perc float,
--september_pocet int,
--september__perc float,
--oktober_pocet int,
--oktober__perc float,
--november_pocet int,
--november__perc float,
--december_pocet int,
--december__perc float,
--pocet_rok int,
--rok int
--)


insert  Roc_MPHD_TAB99_porody_graf
select distinct plemeno ,
ISNULL(januar_pocet, 0), ISNULL(januar_pocet,0) * 100.0 / pocet_rok as januar_perc,
ISNULL(februar_pocet, 0), ISNULL(februar_pocet,0) * 100.0 / pocet_rok as februar__perc,
ISNULL(marec_pocet, 0), ISNULL(marec_pocet,0) * 100.0 / pocet_rok as marec__perc,
ISNULL(april_pocet, 0), ISNULL(april_pocet,0) * 100.0 / pocet_rok as april__perc,
ISNULL(maj_pocet, 0), ISNULL(maj_pocet,0) * 100.0 / pocet_rok as maj__perc,
ISNULL(jun_pocet, 0), ISNULL(jun_pocet,0) * 100.0 / pocet_rok as jun__perc,
ISNULL(jul_pocet, 0), ISNULL(jul_pocet,0) * 100.0 / pocet_rok as jul__perc,
ISNULL(august_pocet, 0), ISNULL(august_pocet,0) * 100.0 / pocet_rok as august__perc,
ISNULL(september_pocet, 0), ISNULL(september_pocet,0) * 100.0 / pocet_rok as september__perc,
ISNULL(oktober_pocet, 0), ISNULL(oktober_pocet,0) * 100.0 / pocet_rok as oktober__perc,
ISNULL(november_pocet, 0), ISNULL(november_pocet,0) * 100.0 / pocet_rok as november__perc,
ISNULL(december_pocet, 0), ISNULL(december_pocet,0) * 100.0 / pocet_rok as december__perc,
pocet_rok, DATEPART(YEAR, @datumOd) as rok

from @vysledna


end
go

CREATE procedure [dbo].[Roc_MPHD_17]
	@chov varchar(9),
	@datumOd date,
	@datumDo date
	
as 
begin

delete from Roc_MPHD_Tab_17 where rok = DATEPART(year, @datumOd) and @chov = kraj + okres + podnik + chov + mastal
--declare @chov varchar(9) = '611003711'-- '201542701' -- '304152701'
--declare @datumOD date = '2018-01-01'

declare @hlavna table
(
	kraj varchar(1),
	okres varchar(2),
	podnik varchar(3),
	chov varchar(3),
	mastal varchar(1),
	ekochov varchar(4),
	K1_poc int,
	K1_poc_120 int,
	K1_poc_210 int,
	K1_poc_365 int,
	K1_poc_500 int,
	K1_Priem_Hm_120 real, 
	K1_Priem_Hm_210 real,
	K1_Priem_Hm_365 real,
	K1_Priem_Hm_500 real,
	K1_priem_ziv_prir_120 real,
	K1_priem_ziv_prir_210 real,
	K1_priem_ziv_prir_365 real,
	K1_priem_ziv_prir_500 real,
	K1_medziobd int,
	K1_vek_1_otel varchar(7),
	K1_priem_lakt real,
	MD1_poc int,
	MD1_poc_vaz_120 int,
	MD1_poc_vaz_210 int,
	MD1_poc_vaz_365 int,
	MD1_poc_vaz_500 int,
	MD1_Priem_Hm_120 real, 
	MD1_Priem_Hm_210 real,  
	MD1_Priem_Hm_365 real,  
	MD1_Priem_Hm_500 real,  
	MD1_priem_ziv_prirastok_chov_120 real,  
	MD1_priem_ziv_prirastok_chov_210 real,  
	MD1_priem_ziv_prirastok_chov_365 real,  
	MD1_priem_ziv_prirastok_chov_500 real,
	K2_poc int,   -----priemerny stav krav na chove v danom obdobi
	K2_poc_120 int,
	K2_poc_210 int,
	K2_poc_365 int,
	K2_poc_500 int,
	K2_Priem_Hm_120 real, 
	K2_Priem_Hm_210 real,
	K2_Priem_Hm_365 real,
	K2_Priem_Hm_500 real,
	K2_priem_ziv_prirastok_120 int,
	K2_priem_ziv_prirastok_210 int,
	K2_priem_ziv_prirastok_365 int,
	K2_priem_ziv_prirastok_500 int,
	K2_medziobd int,
	K2_vek_1_otel varchar(7),
	K2_priem_lakt real,
	K2_vyradene int,
	J_poc int,
	J_poc_vaz_120 int,
	J_poc_vaz_210 int,
	J_poc_vaz_365 int,
	J_poc_vaz_500 int,
	J_Priem_Hm_120 real, 
	J_Priem_Hm_210 real,  
	J_Priem_Hm_365 real,  
	J_Priem_Hm_500 real,  
	J_priem_ziv_prirastok_chov_120 real,  
	J_priem_ziv_prirastok_chov_210 real,  
	J_priem_ziv_prirastok_chov_365 real,  
	J_priem_ziv_prirastok_chov_500 real,
	B_poc int,
	B_poc_vaz_120 int,
	B_poc_vaz_210 int,
	B_poc_vaz_365 int,
	B_poc_vaz_500 int,
	B_Priem_Hm_120 real, 
	B_Priem_Hm_210 real,  
	B_Priem_Hm_365 real,  
	B_Priem_Hm_500 real,  
	B_priem_ziv_prirastok_chov_120 real,  
	B_priem_ziv_prirastok_chov_210 real,  
	B_priem_ziv_prirastok_chov_365 real,  
	B_priem_ziv_prirastok_chov_500 real,
	MD2_poc int,
	MD2_poc_vaz_120 int,
	MD2_poc_vaz_210 int,
	MD2_poc_vaz_365 int,
	MD2_poc_vaz_500 int,
	MD2_Priem_Hm_120 real, 
	MD2_Priem_Hm_210 real,  
	MD2_Priem_Hm_365 real,  
	MD2_Priem_Hm_500 real,  
	MD2_priem_ziv_prirastok_chov_120 real,  
	MD2_priem_ziv_prirastok_chov_210 real,  
	MD2_priem_ziv_prirastok_chov_365 real,  
	MD2_priem_ziv_prirastok_chov_500 real,
	MD2_vyradene int
)

/***** CHOV ****/
if (len(@chov) = 9)
	begin
	declare @eko varchar(4) -- ci je chov ekologicky alebo nie
		set @eko = (select case when EkoChov = 1 then 'eko' else ''end from NM_CHOVMAS where KRAJ + OKRES + podnik + CHOV = @chov)

	/**aktualny stav  Kravy  *****************/
	declare @poc_K1 int --pocet krav
		set @poc_K1 = (select count(*) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_120 int 
		set @poc_K1_120 = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm120 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_210 int
		set @poc_K1_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_365 int
		set @poc_K1_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_500 int
		set @poc_K1_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	

	/**  STAVY ZA KONTROLNY ROK Kravy  *******/
	declare @poc_K2 int --priemerny stav krav na chove
		set @poc_K2 = (select sum(Pocet_dni_na_chove)/365 from Roc_MPHD_Tab_zaklad
						where kraj + okres + podnik + chov + mastal = @chov
							and KrJal='K'
							and rok = DATEPART(YEAR, @datumOd))		
		
	declare @poc_K2_120 int --pocet krav
		set @poc_K2_120 = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_210 int
		set @poc_K2_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_365 int
		set @poc_K2_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_500 int
		set @poc_K2_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**aktualny stav  MD Mlady dobytok  *****************/
	declare @poc_MD1 int --pocet
		set @poc_MD1 = (select count(*) 
								from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' 
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_120 int --pocet krav
		set @poc_MD1_120 = (select count(Hm120)	from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_210 int
		set @poc_MD1_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_365 int
		set @poc_MD1_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_500 int
		set @poc_MD1_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		

 /**  STAVY ZA KONTROLNY ROK MD Mlady dobytok  *****************/
	declare @poc_MD2 int --pocet krav
			set @poc_MD2 = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_120 int --pocet krav
			set @poc_MD2_120 = (select count(Hm120)	from Roc_MPHD_Tab_zaklad 
									where kraj + okres + podnik + chov + mastal = @chov
										and KrJal <> 'K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_210 int
		set @poc_MD2_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_365 int
		set @poc_MD2_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_500 int
		set @poc_MD2_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal <> 'K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK J Jalovice  *****************/
	declare @poc_J int --pocet jalovic
		set @poc_J = (select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik + chov + mastal = @chov
							and KrJal ='J'
							and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_120 int --pocet jalovic
		set @poc_J_120 = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='J' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_210 int
		set @poc_J_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='J' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_365 int
		set @poc_J_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='J' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_500 int
		set @poc_J_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='J' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK B Bycky *********************/
	declare @poc_B int --pocet byckov
		set @poc_B = (select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik + chov + mastal = @chov
							and KrJal ='B' 
							and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_120 int --pocet byckov
		set @poc_B_120 = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='B' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_210 int
		set @poc_B_210 = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='B' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_365 int
		set @poc_B_365 = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='B' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_500 int
		set @poc_B_500 = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='B' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
	/*
	vlozenie do dočasnej hlavnej tabulky
	*/
	 insert into @hlavna
		 (kraj, okres, podnik, chov, mastal, ekochov,
		 K1_poc, K1_poc_120, /*K1_perc_120, */K1_poc_210,/*K1_perc_210,*/K1_poc_365, /*K1_perc_365,*/ K1_poc_500,/*K1_perc_500,*/ 
		 K2_poc,K2_poc_120,/* K2_perc_120,*/ K2_poc_210, /*K2_perc_210,*/ K2_poc_365, /*K2_perc_365,*/ K2_poc_500, /*K2_perc_500, */
		 MD1_poc, MD1_poc_vaz_120,/* MD1_perc_120,*/ MD1_poc_vaz_210,/* MD1_perc_210,*/ MD1_poc_vaz_365, /*MD1_perc_365,*/ MD1_poc_vaz_500, /*MD1_perc_500,*/
		 MD2_poc, MD2_poc_vaz_120, /*MD2_perc_120,*/ MD2_poc_vaz_210,/* MD2_perc_210,*/ MD2_poc_vaz_365,/* MD2_perc_365,*/ MD2_poc_vaz_500, /*MD2_perc_500, */
		 J_poc, J_poc_vaz_120,/* J_perc_120,*/ J_poc_vaz_210,/* J_perc_210,*/ J_poc_vaz_365,/* J_perc_365,*/ J_poc_vaz_500,/* J_perc_500, */
		 B_poc, B_poc_vaz_120, /*B_perc_120,*/ B_poc_vaz_210,/* B_perc_210,*/ B_poc_vaz_365,/* B_perc_365,*/ B_poc_vaz_500 /*B_perc_500*/)
	 select left(@chov,1) as kraj, substring(@chov,2,2) as okres, substring(@chov,4,3) as podnik, substring(@chov,7,2) as chov, right(@chov,1) as mastal, @eko as ekochov,
		@poc_K1 as K1_poc,
		@poc_K1_120 as K1_poc_120,
		@poc_K1_210 as K1_poc_210,
		@poc_K1_365 as K1_poc_365,
		@poc_K1_500 as K1_poc_500,
		@poc_K2 as K2_poc,
		@poc_K2_120 as K2_poc_120,
		@poc_K2_210 as K2_poc_210,
		@poc_K2_365 as K2_poc_365,
		@poc_K2_500 as K2_poc_500,
		@poc_MD1 as MD1_poc,
		@poc_MD1_120 as MD1_poc_vaz_120,
		@poc_MD1_210 as MD1_poc_vaz_210,
		@poc_MD1_365 as MD1_poc_vaz_365,
		@poc_MD1_500 as MD1_poc_vaz_500,
		@poc_MD2 as MD2_poc,
		@poc_MD2_120 as MD2_poc_vaz_120,
		@poc_MD2_210 as MD2_poc_vaz_210,
		@poc_MD2_365 as MD2_poc_vaz_365,
		@poc_MD2_500 as MD2_poc_vaz_500,
		@poc_J as J_poc,
		@poc_J_120 as J_poc_vaz_120,
		@poc_J_210 as J_poc_vaz_210,
		@poc_J_365 as J_poc_vaz_365,
		@poc_J_500 as J_poc_vaz_500,
		@poc_B as B_poc,
		@poc_B_120 as B_poc_vaz_120,
		@poc_B_210 as B_poc_vaz_210,
		@poc_B_365 as B_poc_vaz_365,
		@poc_B_500 as B_poc_vaz_500
		
	/**aktualne stavy na chove**/			
	declare @spolu_K1_hm120 float
		set @spolu_K1_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm210 float
		set @spolu_K1_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm365 float
		set @spolu_K1_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm500 float
		set @spolu_K1_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_120 float
		set @hmotnar_K1_120 = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_210 float
		set @hmotnar_K1_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_365 float
		set @hmotnar_K1_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_500 float
		set @hmotnar_K1_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_priem_ziv_prir_120 = (select ((@spolu_K1_hm120 - @hmotnar_K1_120) / (120*nullif(@poc_K1_120,0))) *1000),-- as K1_priem_ziv_prir_120
	K1_priem_ziv_prir_210 = (select ((@spolu_K1_hm210 - @hmotnar_K1_210) / (210*nullif(@poc_K1_210,0))) *1000),-- as K1_priem_ziv_prir_210
	K1_priem_ziv_prir_365 = (select ((@spolu_K1_hm365 - @hmotnar_K1_365) / (365*nullif(@poc_K1_365,0))) *1000),-- as K1_priem_ziv_prir_365
	K1_priem_ziv_prir_500 = (select ((@spolu_K1_hm500 - @hmotnar_K1_500) / (500*nullif(@poc_K1_500,0))) *1000)-- as K1_priem_ziv_prir_500

	/** vybery pre prvy a druhy riadok		**/
	/******  --kravy  ******/
	
	/****		vek 1 oteleni K1....vypocet  ***/
	declare @vek1otel_K1 float 
	set @vek1otel_K1 = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik + chov + Mastal = @chov
									/*and Porlak = '1'*/ and Porlak is not null and datvyr is null and dovvyr is null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = dbo.toMesiacDen(@vek1otel_K1)--  AS  VEK_1_Otel

	--medziobdobie
	update @hlavna 
	set K1_medziobd = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik + chov + Mastal = @chov
								and Porlak > '1' and KrJal='K' 
								and datvyr is null and dovvyr is null
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd))
	--priem.por.laktacie
	update @hlavna 
	set K1_priem_lakt = (select convert (decimal (5,2),avg(Porlak*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + Podnik + chov + Mastal = @chov 
								and Porlak is not null and KrJal='K' 
								and datvyr is null and dovvyr is null  
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal='K' 
							and Hm500 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))

	/*******	--mlady dobytok  *******/
	update @hlavna
	set MD1_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal<>'K'  
							and (Hm120 is not null or Hm120 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))	
	update @hlavna
	set MD1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
								and KrJal<>'K' 
								and (Hm210 is not null or Hm210 <>0)
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal<>'K' 
							and (Hm365 is not null or Hm365 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal<>'K' 
							and (Hm500 is not null or Hm500 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
							
/**  STAVY ZA KONTROLNY ROK J  **********************************/
	update @hlavna
		set J_Priem_Hm_120 =( select convert (decimal (5,2),avg(Hm120*1.0))	from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
								and KrJal = 'J'   
								and (Hm120 is not null or Hm120 <>0)
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_210 = ( select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'J' 
							and (Hm210 is not null or Hm210 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))	from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'J'  
							and(Hm365 is not null or Hm365 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'J' 
							and (Hm500 is not null or Hm500 <>0)
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK B  **********************/
	update @hlavna
	set B_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'B'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'B' 
							and(Hm210 is not null or Hm210 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'B'  
							and (Hm365 is not null or Hm365 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal = 'B' 
							and (Hm500 is not null or Hm500 <>0)
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK MD  **********************/	
	update @hlavna
	set MD2_vyradene =( select count(*) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal <> 'K'  
							and Datvyr >= @datumOD
							and rok = DATEPART(YEAR, @datumOd))		
	update @hlavna
	set MD2_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal <> 'K'  
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal <> 'K'
							and (Hm210 is not null or Hm210 <>0)
							and rok = DATEPART(YEAR, @datumOd))



	update @hlavna
	set MD2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal <> 'K' 
							and (Hm365 is not null or Hm365 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal <> 'K'
							and (Hm500 is not null or Hm500 <>0)
							and rok = DATEPART(YEAR, @datumOd))

/**aktualny stav  MD Mlady dobytok  *****************/	
	declare @spolu_MD1_hm120 float
		set @spolu_MD1_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm210 float
		set @spolu_MD1_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))

	declare @spolu_MD1_hm365 float
		set @spolu_MD1_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))

	declare @spolu_MD1_hm500 float
		set @spolu_MD1_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_120 float
		set @hmotnar_MD1_120 = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))		
	declare @hmotnar_MD1_210 float
		set @hmotnar_MD1_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_365 float
		set @hmotnar_MD1_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_500 float
		set @hmotnar_MD1_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD1_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD1_hm120 - @hmotnar_MD1_120) / (120*nullif(@poc_MD1_120,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_120
	 MD1_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD1_hm210 - @hmotnar_MD1_210) / (210*nullif(@poc_MD1_210,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_210
	 MD1_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD1_hm365 - @hmotnar_MD1_365) / (365*nullif(@poc_MD1_365,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_365
	 MD1_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD1_hm500 - @hmotnar_MD1_500) / (500*nullif(@poc_MD1_500,0))) *1000)-- as MD1_priem_ziv_prirastok_chov_500

	declare @spolu_J_hm120 float
		set @spolu_J_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm210 float
		set @spolu_J_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm365 float
		set @spolu_J_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm500 float
		set @spolu_J_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_120 float
		set @hmotnar_J_120 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_210 float
		set @hmotnar_J_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_365 float
		set @hmotnar_J_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_500 float
		set @hmotnar_J_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set J_priem_ziv_prirastok_chov_120 = (select ((@spolu_J_hm120 - @hmotnar_J_120) / (120*nullif(@poc_J_120,0))) *1000),
	 J_priem_ziv_prirastok_chov_210 = (select ((@spolu_J_hm210 - @hmotnar_J_210) / (210*nullif(@poc_J_210,0))) *1000),
	 J_priem_ziv_prirastok_chov_365 = (select ((@spolu_J_hm365 - @hmotnar_J_365) / (365*nullif(@poc_J_365,0))) *1000),
	 J_priem_ziv_prirastok_chov_500 = (select ((@spolu_J_hm500 - @hmotnar_J_500) / (500*nullif(@poc_J_500,0))) *1000)
	
	declare @spolu_B_hm120 float
		set @spolu_B_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm210 float
		set @spolu_B_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm365 float
		set @spolu_B_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm500 float
		set @spolu_B_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_120 float
		set @hmotnar_B_120 = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_210 float
		set @hmotnar_B_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_365 float
		set @hmotnar_B_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_500 float
		set @hmotnar_B_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set B_priem_ziv_prirastok_chov_120 = (select ((@spolu_B_hm120 - @hmotnar_B_120) / (120*nullif(@poc_B_120,0))) *1000),
	 B_priem_ziv_prirastok_chov_210 = (select ((@spolu_B_hm210 - @hmotnar_B_210) / (210*nullif(@poc_B_210,0))) *1000),
	 B_priem_ziv_prirastok_chov_365 = (select ((@spolu_B_hm365 - @hmotnar_B_365) / (365*nullif(@poc_B_365,0))) *1000),
	 B_priem_ziv_prirastok_chov_500 = (select ((@spolu_B_hm500 - @hmotnar_B_500) / (500*nullif(@poc_B_500,0))) *1000)


	declare @spolu_MD2_hm120 float
		set @spolu_MD2_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm210 float
		set @spolu_MD2_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm365 float
		set @spolu_MD2_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm500 float
		set @spolu_MD2_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_120 float
		set @hmotnar_MD2_120 = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_210 float
		set @hmotnar_MD2_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_365 float
		set @hmotnar_MD2_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_500 float
		set @hmotnar_MD2_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD2_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD2_hm120 - @hmotnar_MD2_120) / (120*nullif(@poc_MD2_120,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD2_hm210 - @hmotnar_MD2_210) / (210*nullif(@poc_MD2_210,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD2_hm365 - @hmotnar_MD2_365) / (365*nullif(@poc_MD2_365,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD2_hm500 - @hmotnar_MD2_500) / (500*nullif(@poc_MD2_500,0))) *1000)
	 
/****		vek 1 oteleni K2....vypocet  ***/
	declare @vek1otel_K2 float 
	set @vek1otel_K2 = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik + chov + Mastal = @chov
									/*and Porlak = '1'*/and Porlak is not null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd)) --and (datvyr is null or Datvyr >= @datumOD))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K2_vek_1_otel = dbo.toMesiacDen(@vek1otel_K2)--  AS  VEK_1_Otel

	update @hlavna 
	set K2_priem_lakt = ( select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + Podnik + chov + Mastal = @chov 
								and Porlak is not null and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_vyradene =( select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik + chov + mastal = @chov
						and KrJal = 'K'  
						and Datvyr >= @datumOD
						and rok = DATEPART(YEAR, @datumOd))

	--medziobdobie
	update @hlavna 
	set K2_medziobd = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik + chov + Mastal = @chov
								and Porlak > '1' and KrJal='K'
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd)) 
declare @spolu_K2_hm120 float
	set @spolu_K2_hm120 = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm210 float
	set @spolu_K2_hm210 = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm365 float
	set @spolu_K2_hm365 = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm500 float
	set @spolu_K2_hm500 = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_120 float
	set @hmotnar_K2_120 = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_210 float
	set @hmotnar_K2_210 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_365 float
	set @hmotnar_K2_365 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_500 float
	set @hmotnar_K2_500 = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
	Update @hlavna 
	set K2_priem_ziv_prirastok_120 = (select ((@spolu_K2_hm120 - @hmotnar_K2_120) / (120*nullif(@poc_K2_120,0))) *1000),-- as K2_priem_ziv_prirastok_120
	K2_priem_ziv_prirastok_210 = (select ((@spolu_K2_hm210 - @hmotnar_K2_210) / (210*nullif(@poc_K2_210,0))) *1000),--  as K2_priem_ziv_prirastok_210
	K2_priem_ziv_prirastok_365 = (select ((@spolu_K2_hm365 - @hmotnar_K2_365) / (365*nullif(@poc_K2_365,0))) *1000),--  as K2_priem_ziv_prirastok_365
	K2_priem_ziv_prirastok_500 = (select ((@spolu_K2_hm500 - @hmotnar_K2_500) / (500*nullif(@poc_K2_500,0))) *1000)--  as K2_priem_ziv_prirastok_500

	update @hlavna 
	set K2_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
									and KrJal='K' 
									and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
							and KrJal='K' 
							and Hm500 is not null 
							and rok = DATEPART(YEAR, @datumOd))
--zacata oprava 
--declare @datumOd date = '2018-01-01', @chov varchar(14) = '502101701'

/******podiel plemena na chove******/
		declare @podiely table				-----PL1 a ich podiel v chove
		(
			CHOVATEL varchar (9),
			PL1 varchar(3),
			KR1 float,
			PodielPerc float,
			spolu float
		)
		if ((select count(*) from Roc_MPHD_Tab_zaklad
		where  kraj + okres + podnik + Chov + Mastal = @chov
					 and KrJal = 'K') > 0)
			Insert into @podiely
			(PL1, CHOVATEL,  KR1, PodielPerc, spolu)

				select distinct	 z.pl1 as PL1,
													z.kraj + z.okres + z.podnik + z.Chov + z.Mastal as chovatel,
													sum(z.KR1)as KR1,
													(sum(z.KR1)/(select sum(k1.KR1)from Roc_MPHD_Tab_zaklad as k1
													where k1.kraj + k1.okres + k1.podnik + k1.Chov + k1.Mastal = z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
																and KrJal = 'K'))*100 as PodielPerc,
													((select sum(k1.KR1)from Roc_MPHD_Tab_zaklad as k1
													where k1.kraj + k1.okres + k1.podnik + k1.Chov + k1.Mastal = z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
																and KrJal = 'K')) as spolu

				from Roc_MPHD_Tab_zaklad as z
				where z.kraj + z.okres + z.podnik + z.chov + z.mastal = @chov
							and KrJal = 'K'
				group by z.PL1, z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
		ELSE
			Insert into @podiely
			(PL1, CHOVATEL,  KR1, PodielPerc, spolu)

				select distinct	 z.pl1 as PL1,
													z.kraj + z.okres + z.podnik + z.Chov + z.Mastal  as chovatel,
													sum(z.KR1)as KR1,
													(sum(z.KR1)/(select sum(k1.KR1)from Roc_MPHD_Tab_zaklad as k1
													where k1.kraj + k1.okres + k1.podnik + k1.Chov + k1.Mastal = z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
																and KrJal <> 'K'))*100 as PodielPerc,
													((select sum(k1.KR1)from Roc_MPHD_Tab_zaklad as k1
													where k1.kraj + k1.okres + k1.podnik + k1.Chov + k1.Mastal = z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
																and KrJal <> 'K')) as spolu
				from Roc_MPHD_Tab_zaklad as z
				where z.kraj + z.okres + z.podnik + z.chov + z.mastal = @chov
							and KrJal <> 'K'
				group by z.PL1, z.kraj + z.okres + z.podnik + z.Chov + z.Mastal

/******podiel plemena na chove......povodny vypocet len podla krav
	declare @podiely table				-----PL1 a ich podiel v chove
			(
			CHOVATEL varchar (9),
			PL1 varchar(3),
			KR1 float,
			PodielPerc float--
			)
	
	Insert into @podiely
	 (PL1, CHOVATEL,  KR1, PodielPerc)
	select distinct	 z.pl1 as PL1, 
			z.kraj + z.okres + z.podnik + z.Chov + z.Mastal as chovatel,
			sum(z.KR1)as KR1,
			(sum(z.KR1)/(select sum(k1.KR1)from CM_Krava as k1 
										where k1.CHOVATEL = z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
											and PRIZNAKKU = 2 
											and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR >= @datumOd))))*100 as PodielPerc 
		from Roc_MPHD_Tab_zaklad as z
			group by z.PL1, z.kraj + z.okres + z.podnik + z.Chov + z.Mastal
	--select * from @podiely order by chovatel, kr1 desc
	******/	

	declare @counter int,  @chovatelia varchar(9)
	declare @plemena table
			(
			PL1 varchar(3),
			KR1 float,
			PodielPerc float,
			CHOVATEL varchar (9),
			por int
			)

	declare @ZoznamPL1 table
		(
		CHOVATEL VARCHAR(9),
		plem varchar(10), 
		cisteplem varchar(1)
		)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT CHOVATEL FROM @podiely group by CHOVATEL
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @chovatelia
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
				delete from @plemena			
				insert into @plemena
					(PL1, KR1, PodielPerc, CHOVATEL, por)
					select PL1,KR1, PodielPerc, CHOVATEL,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and CHOVATEL = @chovatelia
			
				declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'')
				declare @cistPlem varchar(1) = (select case when max(PodielPerc) = 100 then '*' else '' end from @plemena)
		
				insert into @ZoznamPL1
				select @chovatelia,@PL1, @cistPlem
						
				FETCH NEXT FROM poradie_cursor INTO @chovatelia
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor

		----select * from @ZoznamPl1

insert into  Roc_MPHD_Tab_17
(		kraj, okres, podnik, chov, mastal,K1_poc, 
		K1_poc_120, K1_perc_120, 
		K1_poc_210, K1_perc_210, 
		K1_poc_365, K1_perc_365, 
		K1_poc_500,	K1_perc_500, 
		K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120, 
		MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365, MD1_poc_vaz_500, MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, 
		K2_poc_210, K2_perc_210, 
		K2_poc_365, K2_perc_365, 
		K2_poc_500, K2_perc_500, K2_Priem_Hm_120,K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210, J_perc_210, J_poc_vaz_365,  J_perc_365, J_poc_vaz_500, J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120,  B_perc_120, B_poc_vaz_210, 
		B_perc_210, B_poc_vaz_365, 
		B_perc_365, B_poc_vaz_500,
		B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120, MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		rok, plem_podiel, ekochov
)

Select kraj, okres, podnik, chov, mastal,
		K1_poc, 
		K1_poc_120, 
		(K1_poc_120*1.0 / nullif(K1_poc,0))* 100 as K1_perc_120, 
		K1_poc_210, 
		(K1_poc_210*1.0 / nullif(K1_poc,0))* 100 as K1_perc_210, 
		K1_poc_365, 
		(K1_poc_365*1.0 / nullif(K1_poc,0))* 100 as K1_perc_365, 
		K1_poc_500,	
		(K1_poc_500*1.0 / nullif(K1_poc,0))* 100 as K1_perc_500, 
		K1_Priem_Hm_120 as K1_Priem_Hm_120,
		K1_Priem_Hm_210 as K1_Priem_Hm_210, 
		K1_Priem_Hm_365 as K1_Priem_Hm_365, 
		K1_Priem_Hm_500 as K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, 
		(MD1_poc_vaz_120*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_120, 
		MD1_poc_vaz_210, 
		(MD1_poc_vaz_210*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_210, 
		MD1_poc_vaz_365, 
		(MD1_poc_vaz_365*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_365,
		MD1_poc_vaz_500, 
		(MD1_poc_vaz_500*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	
		(K2_poc_120*1.0 / nullif(K2_poc,0))* 100 as K2_perc_120, 
		K2_poc_210, 
		(K2_poc_210*1.0 / nullif(K2_poc,0))* 100 as K2_perc_210, 
		K2_poc_365, 
		(K2_poc_365*1.0 / nullif(K2_poc,0))* 100 as K2_perc_365, 
		K2_poc_500,
		(K2_poc_500*1.0 / nullif(K2_poc,0))* 100 as K2_perc_500, 
		K2_Priem_Hm_120 as K2_Priem_Hm_120, 
		K2_Priem_Hm_210 as K2_Priem_Hm_210, 
		K2_Priem_Hm_365 as K2_Priem_Hm_365, 
		K2_Priem_Hm_500 as K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, 
		(J_poc_vaz_120*1.0 / nullif(J_poc,0))* 100 as J_perc_120, J_poc_vaz_210, 
		(J_poc_vaz_210*1.0 / nullif(J_poc,0))* 100 as J_perc_210, J_poc_vaz_365, 
		(J_poc_vaz_365*1.0 / nullif(J_poc,0))* 100 as J_perc_365, J_poc_vaz_500,
		(J_poc_vaz_500*1.0 / nullif(J_poc,0))* 100 as J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120, 
		(B_poc_vaz_120*1.0 / nullif(B_poc,0))* 100 as B_perc_120, B_poc_vaz_210, 
		(B_poc_vaz_210*1.0 / nullif(B_poc,0))* 100 as B_perc_210, B_poc_vaz_365, 
		(B_poc_vaz_365*1.0 / nullif(B_poc,0))* 100 as B_perc_365, B_poc_vaz_500,
		(B_poc_vaz_500*1.0 / nullif(B_poc,0))* 100 as B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120 , 
		(MD2_poc_vaz_120*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_120, MD2_poc_vaz_210, 
		(MD2_poc_vaz_210*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_210, MD2_poc_vaz_365, 
		(MD2_poc_vaz_365*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_365, MD2_poc_vaz_500, 
		(MD2_poc_vaz_500*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		DATEPART(YEAR,@datumOd) as rok,
		(z.plem + z.cisteplem)  as plem_podiel,
		h.ekochov as ekochov		
	from @hlavna as h 
		left outer join  @ZoznamPL1 as z on z.CHOVATEL = h.kraj + h.okres + h.podnik + h.chov + h.mastal
	where h.kraj + h.okres + h.podnik + h.chov + h.mastal = @chov

	end

if (len(@chov) = 6)
	begin

	/**aktualny stav  Kravy  *****************/
	declare @poc_K1_podnik int --pocet krav
		set @poc_K1_podnik = (select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_120_podnik int 
		set @poc_K1_120_podnik = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm120 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_210_podnik int
		set @poc_K1_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_365_podnik int
		set @poc_K1_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_500_podnik int
		set @poc_K1_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	

	/**  STAVY ZA KONTROLNY ROK Kravy  *******/
	declare @poc_K2_podnik int --priemerny stav krav na chove
		set @poc_K2_podnik = (select sum(Pocet_dni_na_chove)/365 from Roc_MPHD_Tab_zaklad
								where kraj + okres + podnik = @chov
									and KrJal='K'
									and rok = DATEPART(YEAR, @datumOd))		
		----povodny vypocet som mala nastaveny ako pocet zijucich aj vyradenych krav na chov....no ukazalo sa, ze v rocenke tento udaj znamena priemerny pocet krav na chove
		/*(select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K'
								and rok = DATEPART(YEAR, @datumOd))*/
	declare @poc_K2_120_podnik int --pocet krav
		set @poc_K2_120_podnik = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_210_podnik int
		set @poc_K2_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_365_podnik int
		set @poc_K2_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_500_podnik int
		set @poc_K2_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**aktualny stav  MD Mlady dobytok  *****************/
	declare @poc_MD1_podnik int --pocet
		set @poc_MD1_podnik = (select count(*) 
								from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' 
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_120_podnik int --pocet krav
		set @poc_MD1_120_podnik = (select count(Hm120)	from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_210_podnik int
		set @poc_MD1_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_365_podnik int
		set @poc_MD1_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_500_podnik int
		set @poc_MD1_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		

 /**  STAVY ZA KONTROLNY ROK MD Mlady dobytok  *****************/
	declare @poc_MD2_podnik int --pocet krav
			set @poc_MD2_podnik = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_120_podnik int --pocet krav
			set @poc_MD2_120_podnik = (select count(Hm120)	from Roc_MPHD_Tab_zaklad 
									where kraj + okres + podnik = @chov
										and KrJal <> 'K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_210_podnik int
		set @poc_MD2_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_365_podnik int
		set @poc_MD2_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_500_podnik int
		set @poc_MD2_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal <> 'K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK J Jalovice  *****************/
	declare @poc_J_podnik int --pocet jalovic
		set @poc_J_podnik = (select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik = @chov
							and KrJal ='J'
							and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_120_podnik int --pocet jalovic
		set @poc_J_120_podnik = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik  = @chov
								and KrJal ='J' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_210_podnik int
		set @poc_J_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='J' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_365_podnik int
		set @poc_J_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='J' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_500_podnik int
		set @poc_J_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='J' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK B Bycky *********************/
	declare @poc_B_podnik int --pocet byckov
		set @poc_B_podnik = (select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik = @chov
							and KrJal ='B' 
							and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_120_podnik int --pocet byckov
		set @poc_B_120_podnik = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='B' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_210_podnik int
		set @poc_B_210_podnik = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik + chov + mastal = @chov
								and KrJal ='B' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_365_podnik int
		set @poc_B_365_podnik = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='B' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_500_podnik int
		set @poc_B_500_podnik = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal ='B' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
	/*
	vlozenie do dočasnej hlavnej tabulky
	*/
	 insert into @hlavna
		 (kraj, okres, podnik, chov, mastal, 
		 K1_poc, K1_poc_120, /*K1_perc_120, */K1_poc_210,/*K1_perc_210,*/K1_poc_365, /*K1_perc_365,*/ K1_poc_500,/*K1_perc_500,*/ 
		 K2_poc,K2_poc_120,/* K2_perc_120,*/ K2_poc_210, /*K2_perc_210,*/ K2_poc_365, /*K2_perc_365,*/ K2_poc_500, /*K2_perc_500, */
		 MD1_poc, MD1_poc_vaz_120,/* MD1_perc_120,*/ MD1_poc_vaz_210,/* MD1_perc_210,*/ MD1_poc_vaz_365, /*MD1_perc_365,*/ MD1_poc_vaz_500, /*MD1_perc_500,*/
		 MD2_poc, MD2_poc_vaz_120, /*MD2_perc_120,*/ MD2_poc_vaz_210,/* MD2_perc_210,*/ MD2_poc_vaz_365,/* MD2_perc_365,*/ MD2_poc_vaz_500, /*MD2_perc_500, */
		 J_poc, J_poc_vaz_120,/* J_perc_120,*/ J_poc_vaz_210,/* J_perc_210,*/ J_poc_vaz_365,/* J_perc_365,*/ J_poc_vaz_500,/* J_perc_500, */
		 B_poc, B_poc_vaz_120, /*B_perc_120,*/ B_poc_vaz_210,/* B_perc_210,*/ B_poc_vaz_365,/* B_perc_365,*/ B_poc_vaz_500 /*B_perc_500*/)
	 select left(@chov,1) as kraj, substring(@chov,2,2) as okres, substring(@chov,4,3) as podnik, '' as chov, '' as mastal,
		@poc_K1_podnik as K1_poc,
		@poc_K1_120_podnik as K1_poc_120,
		@poc_K1_210_podnik as K1_poc_210,
		@poc_K1_365_podnik as K1_poc_365,
		@poc_K1_500_podnik as K1_poc_500,
		@poc_K2_podnik as K2_poc,
		@poc_K2_120_podnik as K2_poc_120,
		@poc_K2_210_podnik as K2_poc_210,
		@poc_K2_365_podnik as K2_poc_365,
		@poc_K2_500_podnik as K2_poc_500,
		@poc_MD1_podnik as MD1_poc,
		@poc_MD1_120_podnik as MD1_poc_vaz_120,
		@poc_MD1_210_podnik as MD1_poc_vaz_210,
		@poc_MD1_365_podnik as MD1_poc_vaz_365,
		@poc_MD1_500_podnik as MD1_poc_vaz_500,
		@poc_MD2_podnik as MD2_poc,
		@poc_MD2_120_podnik as MD2_poc_vaz_120,
		@poc_MD2_210_podnik as MD2_poc_vaz_210,
		@poc_MD2_365_podnik as MD2_poc_vaz_365,
		@poc_MD2_500_podnik as MD2_poc_vaz_500,
		@poc_J_podnik as J_poc,
		@poc_J_120_podnik as J_poc_vaz_120,
		@poc_J_210_podnik as J_poc_vaz_210,
		@poc_J_365_podnik as J_poc_vaz_365,
		@poc_J_500_podnik as J_poc_vaz_500,
		@poc_B_podnik as B_poc,
		@poc_B_120_podnik as B_poc_vaz_120,
		@poc_B_210_podnik as B_poc_vaz_210,
		@poc_B_365_podnik as B_poc_vaz_365,
		@poc_B_500_podnik as B_poc_vaz_500
		
	/**aktualne stavy na chove**/			
	declare @spolu_K1_hm120_podnik float
		set @spolu_K1_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm210_podnik float
		set @spolu_K1_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm365_podnik float
		set @spolu_K1_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm500_podnik float
		set @spolu_K1_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_120_podnik float
		set @hmotnar_K1_120_podnik = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_210_podnik float
		set @hmotnar_K1_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_365_podnik float
		set @hmotnar_K1_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_500_podnik float
		set @hmotnar_K1_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_priem_ziv_prir_120 = (select ((@spolu_K1_hm120_podnik - @hmotnar_K1_120_podnik) / (120*nullif(@poc_K1_120_podnik,0))) *1000),-- as K1_priem_ziv_prir_120
	K1_priem_ziv_prir_210 = (select ((@spolu_K1_hm210_podnik - @hmotnar_K1_210_podnik) / (210*nullif(@poc_K1_210_podnik,0))) *1000),-- as K1_priem_ziv_prir_210
	K1_priem_ziv_prir_365 = (select ((@spolu_K1_hm365_podnik - @hmotnar_K1_365_podnik) / (365*nullif(@poc_K1_365_podnik,0))) *1000),-- as K1_priem_ziv_prir_365
	K1_priem_ziv_prir_500 = (select ((@spolu_K1_hm500_podnik - @hmotnar_K1_500_podnik) / (500*nullif(@poc_K1_500_podnik,0))) *1000)-- as K1_priem_ziv_prir_500

	/** vybery pre prvy a druhy riadok		**/
	/******  --kravy  ******/
	
	/****		vek 1 oteleni K1....vypocet  ***/
	declare @vek1otel_K1_podnik float 
	set @vek1otel_K1_podnik = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik = @chov
									/*and Porlak = '1'*/ and Porlak is not null and datvyr is null and dovvyr is null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = dbo.toMesiacDen(@vek1otel_K1_podnik)--  AS  VEK_1_Otel

	--medziobdobie
	update @hlavna 
	set K1_medziobd = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik = @chov
								and Porlak > '1' and KrJal='K' 
								and datvyr is null and dovvyr is null
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd))
	--priem.por.laktacie
	update @hlavna 
	set K1_priem_lakt = (select convert (decimal (5,2),avg(Porlak*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + Podnik = @chov 
								and Porlak is not null and KrJal='K' 
								and datvyr is null and dovvyr is null  
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal='K' 
							and Hm500 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))

	/*******	--mlady dobytok  *******/
	update @hlavna
	set MD1_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal<>'K'  
							and (Hm120 is not null or Hm120 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))	
	update @hlavna
	set MD1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
								and KrJal<>'K' 
								and (Hm210 is not null or Hm210 <>0)
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal<>'K' 
							and (Hm365 is not null or Hm365 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal<>'K' 
							and (Hm500 is not null or Hm500 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
							
/**  STAVY ZA KONTROLNY ROK J  **********************************/
	update @hlavna
		set J_Priem_Hm_120 =( select convert (decimal (5,2),avg(Hm120*1.0))	from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
								and KrJal = 'J'   
								and (Hm120 is not null or Hm120 <>0)
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_210 = ( select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'J' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))	from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'J'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'J' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK B  **********************/
	update @hlavna
	set B_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'B'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'B' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'B'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal = 'B' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK MD  **********************/	
	update @hlavna
	set MD2_vyradene =( select count(*) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal <> 'K'  
							and Datvyr >= @datumOD
							and rok = DATEPART(YEAR, @datumOd))		
	update @hlavna
	set MD2_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal <> 'K'  
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal <> 'K'
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal <> 'K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal <> 'K'
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**aktualny stav  MD Mlady dobytok  *****************/	
	declare @spolu_MD1_hm120_podnik float
		set @spolu_MD1_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm210_podnik float
		set @spolu_MD1_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik + chov + mastal = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm365_podnik float
		set @spolu_MD1_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm500_podnik float
		set @spolu_MD1_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_120_podnik float
		set @hmotnar_MD1_120_podnik = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))		
	declare @hmotnar_MD1_210_podnik float
		set @hmotnar_MD1_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_365_podnik float
		set @hmotnar_MD1_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_500_podnik float
		set @hmotnar_MD1_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD1_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD1_hm120_podnik - @hmotnar_MD1_120_podnik) / (120*nullif(@poc_MD1_120_podnik,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_120
	 MD1_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD1_hm210_podnik - @hmotnar_MD1_210_podnik) / (210*nullif(@poc_MD1_210_podnik,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_210
	 MD1_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD1_hm365_podnik - @hmotnar_MD1_365_podnik) / (365*nullif(@poc_MD1_365_podnik,0))) *1000),-- as MD1_priem_ziv_prirastok_chov_365
	 MD1_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD1_hm500_podnik - @hmotnar_MD1_500_podnik) / (500*nullif(@poc_MD1_500_podnik,0))) *1000)-- as MD1_priem_ziv_prirastok_chov_500

	declare @spolu_J_hm120_podnik float
		set @spolu_J_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm210_podnik float
		set @spolu_J_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm365_podnik float
		set @spolu_J_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm500_podnik float
		set @spolu_J_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_120_podnik float
		set @hmotnar_J_120_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_210_podnik float
		set @hmotnar_J_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_365_podnik float
		set @hmotnar_J_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_500_podnik float
		set @hmotnar_J_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set J_priem_ziv_prirastok_chov_120 = (select ((@spolu_J_hm120_podnik - @hmotnar_J_120_podnik) / (120*nullif(@poc_J_120_podnik,0))) *1000),
	 J_priem_ziv_prirastok_chov_210 = (select ((@spolu_J_hm210_podnik - @hmotnar_J_210_podnik) / (210*nullif(@poc_J_210_podnik,0))) *1000),
	 J_priem_ziv_prirastok_chov_365 = (select ((@spolu_J_hm365_podnik - @hmotnar_J_365_podnik) / (365*nullif(@poc_J_365_podnik,0))) *1000),
	 J_priem_ziv_prirastok_chov_500 = (select ((@spolu_J_hm500_podnik - @hmotnar_J_500_podnik) / (500*nullif(@poc_J_500_podnik,0))) *1000)
	
	declare @spolu_B_hm120_podnik float
		set @spolu_B_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm210_podnik float
		set @spolu_B_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm365_podnik float
		set @spolu_B_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm500_podnik float
		set @spolu_B_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_120_podnik float
		set @hmotnar_B_120_podnik = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_210_podnik float
		set @hmotnar_B_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_365_podnik float
		set @hmotnar_B_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_500_podnik float
		set @hmotnar_B_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set B_priem_ziv_prirastok_chov_120 = (select ((@spolu_B_hm120_podnik - @hmotnar_B_120_podnik) / (120*nullif(@poc_B_120_podnik,0))) *1000),
	 B_priem_ziv_prirastok_chov_210 = (select ((@spolu_B_hm210_podnik - @hmotnar_B_210_podnik) / (210*nullif(@poc_B_210_podnik,0))) *1000),
	 B_priem_ziv_prirastok_chov_365 = (select ((@spolu_B_hm365_podnik - @hmotnar_B_365_podnik) / (365*nullif(@poc_B_365_podnik,0))) *1000),
	 B_priem_ziv_prirastok_chov_500 = (select ((@spolu_B_hm500_podnik - @hmotnar_B_500_podnik) / (500*nullif(@poc_B_500_podnik,0))) *1000)


	declare @spolu_MD2_hm120_podnik float
		set @spolu_MD2_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm210_podnik float
		set @spolu_MD2_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm365_podnik float
		set @spolu_MD2_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm500_podnik float
		set @spolu_MD2_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_120_podnik float
		set @hmotnar_MD2_120_podnik = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_210_podnik float
		set @hmotnar_MD2_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_365_podnik float
		set @hmotnar_MD2_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_500_podnik float
		set @hmotnar_MD2_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres + podnik = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD2_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD2_hm120_podnik - @hmotnar_MD2_120_podnik) / (120*nullif(@poc_MD2_120_podnik,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD2_hm210_podnik - @hmotnar_MD2_210_podnik) / (210*nullif(@poc_MD2_210_podnik,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD2_hm365_podnik - @hmotnar_MD2_365_podnik) / (365*nullif(@poc_MD2_365_podnik,0))) *1000),
	 MD2_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD2_hm500_podnik - @hmotnar_MD2_500_podnik) / (500*nullif(@poc_MD2_500_podnik,0))) *1000)
	 
/****		vek 1 oteleni K2....vypocet  ***/
	declare @vek1otel_K2_podnik float 
	set @vek1otel_K2_podnik = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik = @chov
									/*and Porlak = '1'*/and Porlak is not null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd)) --and (datvyr is null or Datvyr >= @datumOD))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K2_vek_1_otel = dbo.toMesiacDen(@vek1otel_K2_podnik)--  AS  VEK_1_Otel

	update @hlavna 
	set K2_priem_lakt = ( select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + Podnik = @chov 
								and Porlak is not null and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_vyradene =( select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + podnik = @chov
						and KrJal = 'K'  
						and Datvyr >= @datumOD
						and rok = DATEPART(YEAR, @datumOd))

	--medziobdobie
	update @hlavna 
	set K2_medziobd = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik = @chov
								and Porlak > '1' and KrJal='K'
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd)) 
declare @spolu_K2_hm120_podnik float
	set @spolu_K2_hm120_podnik = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm210_podnik float
	set @spolu_K2_hm210_podnik = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm365_podnik float
	set @spolu_K2_hm365_podnik = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm500_podnik float
	set @spolu_K2_hm500_podnik = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_120_podnik float
	set @hmotnar_K2_120_podnik = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_210_podnik float
	set @hmotnar_K2_210_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_365_podnik float
	set @hmotnar_K2_365_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_500_podnik float
	set @hmotnar_K2_500_podnik = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
	Update @hlavna 
	set K2_priem_ziv_prirastok_120 = (select ((@spolu_K2_hm120 - @hmotnar_K2_120) / (120*nullif(@poc_K2_120,0)) *1000)),-- as K2_priem_ziv_prirastok_120
	K2_priem_ziv_prirastok_210 = (select ((@spolu_K2_hm210 - @hmotnar_K2_210) / (210*nullif(@poc_K2_210,0)) *1000)),--  as K2_priem_ziv_prirastok_210
	K2_priem_ziv_prirastok_365 = (select ((@spolu_K2_hm365 - @hmotnar_K2_365) / (365*nullif(@poc_K2_365,0)) *1000)),--  as K2_priem_ziv_prirastok_365
	K2_priem_ziv_prirastok_500 = (select ((@spolu_K2_hm500 - @hmotnar_K2_500) / (500*nullif(@poc_K2_500,0)) *1000))--  as K2_priem_ziv_prirastok_500

	update @hlavna 
	set K2_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
									and KrJal='K' 
									and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres + podnik = @chov
							and KrJal='K' 
							and Hm500 is not null 
							and rok = DATEPART(YEAR, @datumOd))

/******podiel plemena na chove******/
	declare @podiely_podnik table				-----PL1 a ich podiel v chove
			(
			CHOVATEL varchar (9),
			PL1 varchar(3),
			KR1 float,
			PodielPerc float--
			)

		Insert into @podiely_podnik
		(PL1, CHOVATEL,  KR1, PodielPerc)
			select distinct	 z.pl1 as PL1,
												z.kraj + z.okres + z.podnik as chovatel,
												sum(z.KR1)as KR1,
												(sum(z.KR1)/(select sum(k1.KR1)from Roc_MPHD_Tab_zaklad as k1
												where k1.kraj + k1.okres + k1.podnik = z.kraj + z.okres + z.podnik
															and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR >= @datumOd))))*100 as PodielPerc
			from Roc_MPHD_Tab_zaklad as z
			where z.kraj + z.okres + z.podnik = @chov
			group by z.PL1, z.kraj + z.okres + z.podnik

	--select * from @podiely order by chovatel, kr1 desc
		
	declare @counter_podnik int,  @chovatelia_podnik varchar(9)
	declare @plemena_podnik table
			(
			PL1 varchar(3),
			KR1 float,
			PodielPerc float,
			CHOVATEL varchar (9),
			por int
			)

	declare @ZoznamPL1_podnik table
		(
		CHOVATEL VARCHAR(9),
		plem varchar(10)
		)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT CHOVATEL FROM @podiely_podnik group by CHOVATEL
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @chovatelia_podnik
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
				delete from  @plemena_podnik			
				insert into @plemena_podnik
					(PL1, KR1, PodielPerc, CHOVATEL, por)
					select PL1,KR1, PodielPerc, CHOVATEL,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely_podnik as p where p.PodielPerc >12.5 and CHOVATEL = @chovatelia_podnik
			
				declare @PL1_podnik varchar(10) = ISNULL((select pl1 from @plemena_podnik where por=1),'') +' '+ isnull((select PL1 from @plemena_podnik where por=2),'') +' '+ isnull((select PL1  from @plemena_podnik where por=3),'') 
		
				insert into @ZoznamPL1_podnik
				select @chovatelia_podnik,@PL1_podnik
						
				FETCH NEXT FROM poradie_cursor INTO @chovatelia
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor

insert into  Roc_MPHD_Tab_17
(		kraj, okres, podnik, chov, mastal,K1_poc, 
		K1_poc_120, K1_perc_120, 
		K1_poc_210, K1_perc_210, 
		K1_poc_365, K1_perc_365, 
		K1_poc_500,	K1_perc_500, 
		K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120, 
		MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365, MD1_poc_vaz_500, MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, 
		K2_poc_210, K2_perc_210, 
		K2_poc_365, K2_perc_365, 
		K2_poc_500, K2_perc_500, K2_Priem_Hm_120,K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210, J_perc_210, J_poc_vaz_365,  J_perc_365, J_poc_vaz_500, J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120,  B_perc_120, B_poc_vaz_210, 
		B_perc_210, B_poc_vaz_365, 
		B_perc_365, B_poc_vaz_500,
		B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120, MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		rok, plem_podiel, ekochov
)

Select kraj, okres, podnik, chov, mastal,
		K1_poc, K1_poc_120, 
		(K1_poc_120*1.0 / nullif(K1_poc,0))* 100 as K1_perc_120, 
		K1_poc_210, 
		(K1_poc_210*1.0 / nullif(K1_poc,0))* 100 as K1_perc_210, 
		K1_poc_365, 
		(K1_poc_365*1.0 / nullif(K1_poc,0))* 100 as K1_perc_365, 
		K1_poc_500,	
		(K1_poc_500*1.0 / nullif(K1_poc,0))* 100 as K1_perc_500, 
		K1_Priem_Hm_120 as K1_Priem_Hm_120,
		K1_Priem_Hm_210 as K1_Priem_Hm_210, 
		K1_Priem_Hm_365 as K1_Priem_Hm_365, 
		K1_Priem_Hm_500 as K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, 
		(MD1_poc_vaz_120*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_120, 
		MD1_poc_vaz_210, 
		(MD1_poc_vaz_210*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_210, 
		MD1_poc_vaz_365, 
		(MD1_poc_vaz_365*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_365,
		MD1_poc_vaz_500, 
		(MD1_poc_vaz_500*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	
		(K2_poc_120*1.0 / nullif(K2_poc,0))* 100 as K2_perc_120, 
		K2_poc_210, 
		(K2_poc_210*1.0 / nullif(K2_poc,0))* 100 as K2_perc_210, 
		K2_poc_365, 
		(K2_poc_365*1.0 / nullif(K2_poc,0))* 100 as K2_perc_365, 
		K2_poc_500,
		(K2_poc_500*1.0 / nullif(K2_poc,0))* 100 as K2_perc_500, 
		K2_Priem_Hm_120 as K2_Priem_Hm_120, K2_Priem_Hm_210 as K2_Priem_Hm_210, K2_Priem_Hm_365 as K2_Priem_Hm_365, K2_Priem_Hm_500 as K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, 
		(J_poc_vaz_120*1.0 / nullif(J_poc,0))* 100 as J_perc_120, J_poc_vaz_210, 
		(J_poc_vaz_210*1.0 / nullif(J_poc,0))* 100 as J_perc_210, J_poc_vaz_365, 
		(J_poc_vaz_365*1.0 / nullif(J_poc,0))* 100 as J_perc_365, J_poc_vaz_500,
		(J_poc_vaz_500*1.0 / nullif(J_poc,0))* 100 as J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120, 
		(B_poc_vaz_120*1.0 / nullif(B_poc,0))* 100 as B_perc_120, B_poc_vaz_210, 
		(B_poc_vaz_210*1.0 / nullif(B_poc,0))* 100 as B_perc_210, B_poc_vaz_365, 
		(B_poc_vaz_365*1.0 / nullif(B_poc,0))* 100 as B_perc_365, B_poc_vaz_500,
		(B_poc_vaz_500*1.0 / nullif(B_poc,0))* 100 as B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120 , 
		(MD2_poc_vaz_120*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_120, MD2_poc_vaz_210, 
		(MD2_poc_vaz_210*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_210, MD2_poc_vaz_365, 
		(MD2_poc_vaz_365*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_365, MD2_poc_vaz_500, 
		(MD2_poc_vaz_500*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		DATEPART(YEAR,@datumOd) as rok,
		z.plem as plem_podiel,
		'' as ekochov
	from @hlavna as h 
		left outer join  @ZoznamPL1_podnik as z on z.CHOVATEL = h.kraj + h.okres + h.podnik
	where h.kraj + h.okres + h.podnik = @chov

	end

else if (len(@chov) = 3)
	begin

	/**** OKRES ****/
	/**aktualny stav  Kravy  *****************/
	declare @poc_K1_Okres int --pocet krav
		set @poc_K1_Okres = (select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_120_Okres int 
		set @poc_K1_120_Okres = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' and Hm120 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_210_Okres int
		set @poc_K1_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_365_Okres int
		set @poc_K1_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_500_Okres int
		set @poc_K1_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	
	/**  STAVY ZA KONTROLNY ROK Kravy  *******/
	declare @poc_K2_Okres int --priemerny stav krav na chove
		set @poc_K2_Okres = (select sum(Pocet_dni_na_chove)/365 from Roc_MPHD_Tab_zaklad
								where kraj + okres = @chov
									and KrJal='K'
									and rok = DATEPART(YEAR, @datumOd))		
		----povodny vypocet som mala nastaveny ako pocet zijucich aj vyradenych krav na chov....no ukazalo sa, ze v rocenke tento udaj znamena priemerny pocet krav na chove
		/*(select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
								and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))*/
	declare @poc_K2_120_Okres int --pocet krav
		set @poc_K2_120_Okres = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_210_Okres int
		set @poc_K2_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm210 is not null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_365_Okres int
		set @poc_K2_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_500_Okres int
		set @poc_K2_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	/**aktualny stav  MD Mlady dobytok  *****************/
	declare @poc_MD1_Okres int --pocet
		set @poc_MD1_Okres = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' 
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_120_Okres int --pocet krav
		set @poc_MD1_120_Okres = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_210_Okres int
		set @poc_MD1_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_365_Okres int
		set @poc_MD1_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_500_Okres int
		set @poc_MD1_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
		
	 /**  STAVY ZA KONTROLNY ROK MD Mlady dobytok  *****************/
	declare @poc_MD2_Okres int --pocet krav
			set @poc_MD2_Okres = (select count(*) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal <> 'K' 
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_120_Okres int --pocet krav
			set @poc_MD2_120_Okres = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal <> 'K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_210_Okres int
		set @poc_MD2_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_365_Okres int
		set @poc_MD2_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_500_Okres int
		set @poc_MD2_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK J Jalovice  *****************/
	declare @poc_J_Okres int --pocet jalovic
			set @poc_J_Okres = (select count(*) 
									from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal ='J' 
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_120_Okres int --pocet jalovic
			set @poc_J_120_Okres = (select count(Hm120)	from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal ='J' and Hm120 is not null
										and (datvyr is null or Datvyr >= @datumOD)
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_210_Okres int
		set @poc_J_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_365_Okres int
		set @poc_J_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_500_Okres int
		set @poc_J_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK B Bycky *********************/
	declare @poc_B_Okres int --pocet byckov
			set @poc_B_Okres = (select count(*) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal ='B' 
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_120_Okres int --pocet byckov
			set @poc_B_120_Okres = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal ='B' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_210_Okres int
		set @poc_B_210_Okres = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_365_Okres int
		set @poc_B_365_Okres = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_500_Okres int
		set @poc_B_500_Okres = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal ='B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	/*
	vlozenie do dočasnej hlavnej tabulky
	*/
	 insert into @hlavna
		 (kraj, okres, podnik, chov, mastal, 
		 K1_poc, K1_poc_120, /*K1_perc_120, */K1_poc_210,/*K1_perc_210,*/K1_poc_365, /*K1_perc_365,*/ K1_poc_500,/*K1_perc_500,*/ 
		 K2_poc,K2_poc_120,/* K2_perc_120,*/ K2_poc_210, /*K2_perc_210,*/ K2_poc_365, /*K2_perc_365,*/ K2_poc_500, /*K2_perc_500, */
		 MD1_poc, MD1_poc_vaz_120,/* MD1_perc_120,*/ MD1_poc_vaz_210,/* MD1_perc_210,*/ MD1_poc_vaz_365, /*MD1_perc_365,*/ MD1_poc_vaz_500, /*MD1_perc_500,*/
		 MD2_poc, MD2_poc_vaz_120, /*MD2_perc_120,*/ MD2_poc_vaz_210,/* MD2_perc_210,*/ MD2_poc_vaz_365,/* MD2_perc_365,*/ MD2_poc_vaz_500, /*MD2_perc_500, */
		 J_poc, J_poc_vaz_120,/* J_perc_120,*/ J_poc_vaz_210,/* J_perc_210,*/ J_poc_vaz_365,/* J_perc_365,*/ J_poc_vaz_500,/* J_perc_500, */
		 B_poc, B_poc_vaz_120, /*B_perc_120,*/ B_poc_vaz_210,/* B_perc_210,*/ B_poc_vaz_365,/* B_perc_365,*/ B_poc_vaz_500 /*B_perc_500*/)
	 select left(@chov,1) as kraj, substring(@chov,2,2) as okres, null as podnik, substring(@chov,7,2) as chov, null as mastal,
		@poc_K1_Okres as K1_poc,
		@poc_K1_120_Okres as K1_poc_120,
		@poc_K1_210_Okres as K1_poc_210,
		@poc_K1_365_Okres as K1_poc_365,
		@poc_K1_500_Okres as K1_poc_500,
		@poc_K2_Okres as K2_poc,
		@poc_K2_120_Okres as K2_poc_120,
		@poc_K2_210_Okres as K2_poc_210,
		@poc_K2_365_Okres as K2_poc_365,
		@poc_K2_500_Okres as K2_poc_500,
		@poc_MD1_Okres as MD1_poc,
		@poc_MD1_120_Okres as MD1_poc_vaz_120,
		@poc_MD1_210_Okres as MD1_poc_vaz_210,
		@poc_MD1_365_Okres as MD1_poc_vaz_365,
		@poc_MD1_500_Okres as MD1_poc_vaz_500,
		@poc_MD2_Okres as MD2_poc,
		@poc_MD2_120_Okres as MD2_poc_vaz_120,
		@poc_MD2_210_Okres as MD2_poc_vaz_210,
		@poc_MD2_365_Okres as MD2_poc_vaz_365,
		@poc_MD2_500_Okres as MD2_poc_vaz_500,
		@poc_J_Okres as J_poc,
		@poc_J_120_Okres as J_poc_vaz_120,
		@poc_J_210_Okres as J_poc_vaz_210,
		@poc_J_365_Okres as J_poc_vaz_365,
		@poc_J_500_Okres as J_poc_vaz_500,
		@poc_B_Okres as B_poc,
		@poc_B_120_Okres as B_poc_vaz_120,
		@poc_B_210_Okres as B_poc_vaz_210,
		@poc_B_365_Okres as B_poc_vaz_365,
		@poc_B_500_Okres as B_poc_vaz_500
								
declare @spolu_K1_hm120_Okres float
	set @spolu_K1_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K1_hm210_Okres float
	set @spolu_K1_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K1_hm365_Okres float
	set @spolu_K1_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K1_hm500_Okres float
	set @spolu_K1_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K1_120_Okres float
	set @hmotnar_K1_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K1_210_Okres float
	set @hmotnar_K1_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K1_365_Okres float
	set @hmotnar_K1_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K1_500_Okres float
	set @hmotnar_K1_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_priem_ziv_prir_120 = (select ((@spolu_K1_hm120_Okres - @hmotnar_K1_120_Okres) / Nullif((120*@poc_K1_120_Okres),0)) *1000),-- as K1_priem_ziv_prir_120
	K1_priem_ziv_prir_210 = (select ((@spolu_K1_hm210_Okres - @hmotnar_K1_210_Okres) / Nullif((210*@poc_K1_210_Okres),0)) *1000),-- as K1_priem_ziv_prir_210
	K1_priem_ziv_prir_365 = (select ((@spolu_K1_hm365_Okres - @hmotnar_K1_365_Okres) / Nullif((365*@poc_K1_365_Okres),0)) *1000),-- as K1_priem_ziv_prir_365
	K1_priem_ziv_prir_500 = (select ((@spolu_K1_hm500_Okres - @hmotnar_K1_500_Okres) / Nullif((500*@poc_K1_500_Okres),0)) *1000)-- as K1_priem_ziv_prir_500

/** vybery pre prvy a druhy riadok		**/
	/******  --kravy  ******/
	
	/****vek 1 oteleni K1....vypocet  ***/
	declare @vek1otel_K1_Okres float 
	set @vek1otel_K1_Okres = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres = @chov
									/*and Porlak = '1'*/ and Porlak is not null and datvyr is null and dovvyr is null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd))
	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = dbo.toMesiacDen(@vek1otel_K1_Okres)--  AS  VEK_1_Otel

	--medziobdobie
	update @hlavna 
	set K1_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where kraj + okres = @chov
								and Porlak > '1' and KrJal='K' 
								and datvyr is null and dovvyr is null
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd))
	--priem.por.laktacie
	update @hlavna 
	set K1_priem_lakt = ( select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov 
								and Porlak is not null and KrJal='K' 
								and datvyr is null and dovvyr is null  
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
		from Roc_MPHD_Tab_zaklad 
		where kraj + okres = @chov
				and KrJal='K' 
				and Hm120 is not null
				and datvyr is null and dovvyr is null
				and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_210 =(
	select convert (decimal (5,2),avg(Hm210*1.0)) 
		from Roc_MPHD_Tab_zaklad 
		where kraj + okres = @chov
				and KrJal='K' 
				and Hm210 is not null
				and datvyr is null and dovvyr is null
				and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
		from Roc_MPHD_Tab_zaklad 
		where kraj + okres  = @chov
				and KrJal='K' 
				and Hm365 is not null
				and datvyr is null and dovvyr is null
				and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_500 = (
	select convert (decimal (5,2),avg(Hm500*1.0))
		from Roc_MPHD_Tab_zaklad 
		where kraj + okres = @chov
		and KrJal='K' 
		and Hm500 is not null
		and datvyr is null and dovvyr is null
		and rok = DATEPART(YEAR, @datumOd))


	/*******	--mlady dobytok  *******/
	update @hlavna
	set MD1_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal<>'K'  
							and (Hm120 is not null or Hm120 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal<>'K' 
							and (Hm210 is not null or Hm210 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal<>'K' 
							and (Hm365 is not null or Hm365 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal<>'K' 
							and (Hm500 is not null or Hm500 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK J  **********************************/
	update @hlavna
		set J_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							--as MD1_Priem_Hm_120  
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'J'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'J' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'J'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
	 						from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'J' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK B  **********************/
	update @hlavna
	set B_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'B'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'B' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'B'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal = 'B' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK MD  **********************/
	update @hlavna
	set MD2_vyradene =(select count(*) 
						from Roc_MPHD_Tab_zaklad 
						where kraj + okres = @chov
						and KrJal <> 'K' 
						and rok = DATEPART(YEAR, @datumOd)
						and Datvyr >= @datumOD)
	update @hlavna
	set MD2_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal <> 'K'  
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
								from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
								and KrJal <> 'K'
								and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal <> 'K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal <> 'K'
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

	declare @spolu_MD1_hm120_Okres float
		set @spolu_MD1_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		

	declare @spolu_MD1_hm210_Okres float
		set @spolu_MD1_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm365_Okres float
		set @spolu_MD1_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm500_Okres float
		set @spolu_MD1_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_120_Okres float
		set @hmotnar_MD1_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))		
	declare @hmotnar_MD1_210_Okres float
		set @hmotnar_MD1_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_365_Okres float
		set @hmotnar_MD1_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_500_Okres float
		set @hmotnar_MD1_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))

	update @hlavna 
	set MD1_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD1_hm120_Okres - @hmotnar_MD1_120_Okres) / Nullif((120*@poc_MD1_120_Okres),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_120
		 MD1_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD1_hm210_Okres - @hmotnar_MD1_210_Okres) / Nullif((210*@poc_MD1_210_Okres),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_210
		 MD1_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD1_hm365_Okres - @hmotnar_MD1_365_Okres) / Nullif((365*@poc_MD1_365_Okres),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_365
		 MD1_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD1_hm500_Okres - @hmotnar_MD1_500_Okres) / Nullif((500*@poc_MD1_500_Okres),0)) *1000)-- as MD1_priem_ziv_prirastok_chov_500
	 	
	declare @spolu_J_hm120_Okres float
		set @spolu_J_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm210_Okres float
		set @spolu_J_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm365_Okres float
		set @spolu_J_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm500_Okres float
		set @spolu_J_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_120_Okres float
		set @hmotnar_J_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_210_Okres float
		set @hmotnar_J_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_365_Okres float
		set @hmotnar_J_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_500_Okres float
		set @hmotnar_J_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'J' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set J_priem_ziv_prirastok_chov_120 = (select ((@spolu_J_hm120_Okres - @hmotnar_J_120_Okres) / Nullif((120*@poc_J_120_Okres),0)) *1000),
	 J_priem_ziv_prirastok_chov_210 = (select ((@spolu_J_hm210_Okres - @hmotnar_J_210_Okres) / Nullif((210*@poc_J_210_Okres),0)) *1000),
	 J_priem_ziv_prirastok_chov_365 = (select ((@spolu_J_hm365_Okres - @hmotnar_J_365_Okres) / Nullif((365*@poc_J_365_Okres),0)) *1000),
	 J_priem_ziv_prirastok_chov_500 = (select ((@spolu_J_hm500_Okres - @hmotnar_J_500_Okres) / Nullif((500*@poc_J_500_Okres),0)) *1000)
	
	declare @spolu_B_hm120_Okres float
		set @spolu_B_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm210_Okres float
		set @spolu_B_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm365_Okres float
		set @spolu_B_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm500_Okres float
		set @spolu_B_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_120_Okres float
		set @hmotnar_B_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_210_Okres float
		set @hmotnar_B_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_365_Okres float
		set @hmotnar_B_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal = 'B' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_500_Okres float
		set @hmotnar_B_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal = 'B' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set B_priem_ziv_prirastok_chov_120 = (select ((@spolu_B_hm120_Okres - @hmotnar_B_120_Okres) / Nullif((120*@poc_B_120_Okres),0)) *1000),
	 B_priem_ziv_prirastok_chov_210 = (select ((@spolu_B_hm210_Okres - @hmotnar_B_210_Okres) / Nullif((210*@poc_B_210_Okres),0)) *1000),
	 B_priem_ziv_prirastok_chov_365 = (select ((@spolu_B_hm365_Okres - @hmotnar_B_365_Okres) / Nullif((365*@poc_B_365_Okres),0)) *1000),
	 B_priem_ziv_prirastok_chov_500 = (select ((@spolu_B_hm500_Okres - @hmotnar_B_500_Okres) / Nullif((500*@poc_B_500_Okres),0)) *1000)

	declare @spolu_MD2_hm120_Okres float
		set @spolu_MD2_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm210_Okres float
		set @spolu_MD2_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm365_Okres float
		set @spolu_MD2_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm500_Okres float
		set @spolu_MD2_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_120_Okres float
		set @hmotnar_MD2_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_210_Okres float
		set @hmotnar_MD2_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_365_Okres float
		set @hmotnar_MD2_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))									
	declare @hmotnar_MD2_500_Okres float
		set @hmotnar_MD2_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
										where kraj + okres = @chov
										and KrJal <> 'K' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD2_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD2_hm120_Okres - @hmotnar_MD2_120_Okres) / Nullif((120*@poc_MD2_120_Okres),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD2_hm210_Okres - @hmotnar_MD2_210_Okres) / Nullif((210*@poc_MD2_210_Okres),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD2_hm365_Okres - @hmotnar_MD2_365_Okres) / Nullif((365*@poc_MD2_365_Okres),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD2_hm500_Okres - @hmotnar_MD2_500_Okres) / Nullif((500*@poc_MD2_500_Okres),0)) *1000)

/****		vek 1 oteleni K2....vypocet  ***/
	declare @vek1otel_K2_Okres float 
	set @vek1otel_K2_Okres = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									/*and Porlak = '1'*/ and Porlak is not null/******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd)) 
	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K2_vek_1_otel = dbo.toMesiacDen(@vek1otel_K2_Okres)

	update @hlavna 
	set K2_priem_lakt = ( select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov 
								and Porlak is not null and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_vyradene =( select count(*) from Roc_MPHD_Tab_zaklad 
						where kraj + okres = @chov
						and KrJal = 'K'  
						and rok = DATEPART(YEAR, @datumOd)
						and Datvyr >= @datumOD )

	--medziobdobie
	update @hlavna 
	set K2_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where kraj + okres = @chov
								and Porlak > '1' and KrJal='K'
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd))

declare @spolu_K2_hm120_Okres float
	set @spolu_K2_hm120_Okres = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm210_Okres float
	set @spolu_K2_hm210_Okres = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm365_Okres float
	set @spolu_K2_hm365_Okres = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm500_Okres float
	set @spolu_K2_hm500_Okres = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj + okres = @chov
									and KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_120_Okres float
	set @hmotnar_K2_120_Okres = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal='K' and Hm120 is not null
										and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_210_Okres float
	set @hmotnar_K2_210_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
										and KrJal='K' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_365_Okres float
	set @hmotnar_K2_365_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
									and KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_500_Okres float
	set @hmotnar_K2_500_Okres = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj + okres = @chov
									and KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	Update @hlavna 
	set K2_priem_ziv_prirastok_120 = (select ((@spolu_K2_hm120_Okres - @hmotnar_K2_120_Okres) / Nullif((120*@poc_K2_120_Okres),0)) *1000),-- as K2_priem_ziv_prirastok_120
	K2_priem_ziv_prirastok_210 = (select ((@spolu_K2_hm210_Okres - @hmotnar_K2_210_Okres) / Nullif((210*@poc_K2_210_Okres),0)) *1000),--  as K2_priem_ziv_prirastok_210
	K2_priem_ziv_prirastok_365 = (select ((@spolu_K2_hm365_Okres - @hmotnar_K2_365_Okres) / Nullif((365*@poc_K2_365_Okres),0)) *1000),--  as K2_priem_ziv_prirastok_365
	K2_priem_ziv_prirastok_500 = (select ((@spolu_K2_hm500_Okres - @hmotnar_K2_500_Okres) / Nullif((500*@poc_K2_500_Okres),0)) *1000)--  as K2_priem_ziv_prirastok_500

	update @hlavna 
	set K2_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal='K' 
							and Hm120 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal='K' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal='K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj + okres = @chov
							and KrJal='K' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))
		
insert into  Roc_MPHD_Tab_17
(	kraj, okres, podnik, chov, mastal,K1_poc, 
		K1_poc_120, K1_perc_120, 
		K1_poc_210, K1_perc_210, 
		K1_poc_365, K1_perc_365, 
		K1_poc_500,	K1_perc_500, 
		K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120, 
		MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365, MD1_poc_vaz_500, MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, 
		K2_poc_210, K2_perc_210, 
		K2_poc_365, K2_perc_365, 
		K2_poc_500, K2_perc_500, K2_Priem_Hm_120,K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210, J_perc_210, J_poc_vaz_365,  J_perc_365, J_poc_vaz_500, J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120,  B_perc_120, B_poc_vaz_210, 
		B_perc_210, B_poc_vaz_365, 
		B_perc_365, B_poc_vaz_500,
		B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120, MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		rok, plem_podiel, ekochov
)

Select kraj, okres, podnik, chov, mastal,
		K1_poc, K1_poc_120, 
		(K1_poc_120*1.0 / nullif(K1_poc,0))* 100 as K1_perc_120, 
		K1_poc_210, 
		(K1_poc_210*1.0 / nullif(K1_poc,0))* 100 as K1_perc_210, 
		K1_poc_365, 
		(K1_poc_365*1.0 / nullif(K1_poc,0))* 100 as K1_perc_365, 
		K1_poc_500,	
		(K1_poc_500*1.0 / nullif(K1_poc,0))* 100 as K1_perc_500, 
		K1_Priem_Hm_120 as K1_Priem_Hm_120,
		K1_Priem_Hm_210 as K1_Priem_Hm_210, 
		K1_Priem_Hm_365 as K1_Priem_Hm_365, 
		K1_Priem_Hm_500 as K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, 
		(MD1_poc_vaz_120*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_120, 
		MD1_poc_vaz_210, 
		(MD1_poc_vaz_210*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_210, 
		MD1_poc_vaz_365, 
		(MD1_poc_vaz_365*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_365,
		MD1_poc_vaz_500, 
		(MD1_poc_vaz_500*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	
		(K2_poc_120*1.0 / nullif(K2_poc,0))* 100 as K2_perc_120, 
		K2_poc_210, 
		(K2_poc_210*1.0 / nullif(K2_poc,0))* 100 as K2_perc_210, 
		K2_poc_365, 
		(K2_poc_365*1.0 / nullif(K2_poc,0))* 100 as K2_perc_365, 
		K2_poc_500,
		(K2_poc_500*1.0 / nullif(K2_poc,0))* 100 as K2_perc_500, 
		K2_Priem_Hm_120 as K2_Priem_Hm_120, K2_Priem_Hm_210 as K2_Priem_Hm_210, K2_Priem_Hm_365 as K2_Priem_Hm_365, K2_Priem_Hm_500 as K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, 
		(J_poc_vaz_120*1.0 / nullif(J_poc,0))* 100 as J_perc_120, J_poc_vaz_210, 
		(J_poc_vaz_210*1.0 / nullif(J_poc,0))* 100 as J_perc_210, J_poc_vaz_365, 
		(J_poc_vaz_365*1.0 / nullif(J_poc,0))* 100 as J_perc_365, J_poc_vaz_500,
		(J_poc_vaz_500*1.0 / nullif(J_poc,0))* 100 as J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120, 
		(B_poc_vaz_120*1.0 / nullif(B_poc,0))* 100 as B_perc_120, B_poc_vaz_210, 
		(B_poc_vaz_210*1.0 / nullif(B_poc,0))* 100 as B_perc_210, B_poc_vaz_365, 
		(B_poc_vaz_365*1.0 / nullif(B_poc,0))* 100 as B_perc_365, B_poc_vaz_500,
		(B_poc_vaz_500*1.0 / nullif(B_poc,0))* 100 as B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120 , 
		(MD2_poc_vaz_120*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_120, MD2_poc_vaz_210, 
		(MD2_poc_vaz_210*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_210, MD2_poc_vaz_365, 
		(MD2_poc_vaz_365*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_365, MD2_poc_vaz_500, 
		(MD2_poc_vaz_500*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		DATEPART(YEAR,@datumOd) as rok,
		''as plem_podiel,
		'' as ekochov
	from @hlavna where kraj + okres = @chov


	end
	else if (len(@chov) = 1)
	begin

	/*** Kraj ***/

	/**aktualny stav  Kravy  *****************/
	declare @poc_K1_Kraj int --pocet krav
		set @poc_K1_Kraj = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_120_Kraj int 
		set @poc_K1_120_Kraj = (select count(Hm120)  from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm120 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_210_Kraj int
		set @poc_K1_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_365_Kraj int
		set @poc_K1_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_500_Kraj int
		set @poc_K1_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	

	/**  STAVY ZA KONTROLNY ROK Kravy  *******/
	declare @poc_K2_Kraj int --pocet krav
		set @poc_K2_Kraj = (select sum(Pocet_dni_na_chove)/365 from Roc_MPHD_Tab_zaklad
								where kraj = @chov
									and KrJal='K'
									and rok = DATEPART(YEAR, @datumOd))		
		----povodny vypocet som mala nastaveny ako pocet zijucich aj vyradenych krav na chov....no ukazalo sa, ze v rocenke tento udaj znamena priemerny pocet krav na chove
		/*(select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))*/
	declare @poc_K2_120_Kraj int --pocet krav
		set @poc_K2_120_Kraj = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_210_Kraj int
		set @poc_K2_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_365_Kraj int
		set @poc_K2_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_500_Kraj int
		set @poc_K2_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal='K' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**aktualny stav  MD Mlady dobytok  *****************/
	declare @poc_MD1_Kraj int --pocet
		set @poc_MD1_Kraj = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal <> 'K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))

	declare @poc_MD1_120_Kraj int --pocet krav
		set @poc_MD1_120_Kraj = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
		
	declare @poc_MD1_210_Kraj int
		set @poc_MD1_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_365_Kraj int
		set @poc_MD1_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_500_Kraj int
		set @poc_MD1_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		

	 /**  STAVY ZA KONTROLNY ROK MD Mlady dobytok  *****************/
	declare @poc_MD2_Kraj int --pocet krav
		set @poc_MD2_Kraj = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_120_Kraj int --pocet krav
		set @poc_MD2_120_Kraj = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_210_Kraj int
		set @poc_MD2_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_365_Kraj int
		set @poc_MD2_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_500_Kraj int
		set @poc_MD2_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK J Jalovice  *****************/
	declare @poc_J_Kraj int --pocet jalovic
			set @poc_J_Kraj = (select count(*) 
									from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal ='J' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_120_Kraj int --pocet jalovic
			set @poc_J_120_Kraj = (select count(Hm120)
									from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal ='J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_210_Kraj int
		set @poc_J_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='J' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_365_Kraj int
		set @poc_J_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='J' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_500_Kraj int
		set @poc_J_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='J' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK B Bycky *********************/
	declare @poc_B_Kraj int --pocet byckov
		set @poc_B_Kraj = (select count(*) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='B' 
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_120_Kraj int --pocet byckov
		set @poc_B_120_Kraj = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='B' and Hm120 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_210_Kraj int
		set @poc_B_210_Kraj = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='B' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_365_Kraj int
		set @poc_B_365_Kraj = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='B' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_500_Kraj int
		set @poc_B_500_Kraj = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal ='B' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))		
	/*
	vlozenie do dočasnej hlavnej tabulky
	*/
	 insert into @hlavna
		 (kraj, okres, podnik, chov, mastal, 
		 K1_poc, K1_poc_120, /*K1_perc_120, */K1_poc_210,/*K1_perc_210,*/K1_poc_365, /*K1_perc_365,*/ K1_poc_500,/*K1_perc_500,*/ 
		 K2_poc,K2_poc_120,/* K2_perc_120,*/ K2_poc_210, /*K2_perc_210,*/ K2_poc_365, /*K2_perc_365,*/ K2_poc_500, /*K2_perc_500, */
		 MD1_poc, MD1_poc_vaz_120,/* MD1_perc_120,*/ MD1_poc_vaz_210,/* MD1_perc_210,*/ MD1_poc_vaz_365, /*MD1_perc_365,*/ MD1_poc_vaz_500, /*MD1_perc_500,*/
		 MD2_poc, MD2_poc_vaz_120, /*MD2_perc_120,*/ MD2_poc_vaz_210,/* MD2_perc_210,*/ MD2_poc_vaz_365,/* MD2_perc_365,*/ MD2_poc_vaz_500, /*MD2_perc_500, */
		 J_poc, J_poc_vaz_120,/* J_perc_120,*/ J_poc_vaz_210,/* J_perc_210,*/ J_poc_vaz_365,/* J_perc_365,*/ J_poc_vaz_500,/* J_perc_500, */
		 B_poc, B_poc_vaz_120, /*B_perc_120,*/ B_poc_vaz_210,/* B_perc_210,*/ B_poc_vaz_365,/* B_perc_365,*/ B_poc_vaz_500 /*B_perc_500*/)
	 select @chov as kraj, null as okres, null as podnik, null as chov, null as mastal,
		@poc_K1_Kraj as K1_poc,
		@poc_K1_120_Kraj as K1_poc_120,
		@poc_K1_210_Kraj as K1_poc_210,
		@poc_K1_365_Kraj as K1_poc_365,
		@poc_K1_500_Kraj as K1_poc_500,
		@poc_K2_Kraj as K2_poc,
		@poc_K2_120_Kraj as K2_poc_120,
		@poc_K2_210_Kraj as K2_poc_210,
		@poc_K2_365_Kraj as K2_poc_365,
		@poc_K2_500_Kraj as K2_poc_500,
		@poc_MD1_Kraj as MD1_poc,
		@poc_MD1_120_Kraj as MD1_poc_vaz_120,
		@poc_MD1_210_Kraj as MD1_poc_vaz_210,
		@poc_MD1_365_Kraj as MD1_poc_vaz_365,
		@poc_MD1_500_Kraj as MD1_poc_vaz_500,
		@poc_MD2_Kraj as MD2_poc,
		@poc_MD2_120_Kraj as MD2_poc_vaz_120,
		@poc_MD2_210_Kraj as MD2_poc_vaz_210,
		@poc_MD2_365_Kraj as MD2_poc_vaz_365,
		@poc_MD2_500_Kraj as MD2_poc_vaz_500,
		@poc_J_Kraj as J_poc,
		@poc_J_120_Kraj as J_poc_vaz_120,
		@poc_J_210_Kraj as J_poc_vaz_210,
		@poc_J_365_Kraj as J_poc_vaz_365,
		@poc_J_500_Kraj as J_poc_vaz_500,
		@poc_B_Kraj as B_poc,
		@poc_B_120_Kraj as B_poc_vaz_120,
		@poc_B_210_Kraj as B_poc_vaz_210,
		@poc_B_365_Kraj as B_poc_vaz_365,
		@poc_B_500_Kraj as B_poc_vaz_500
		
			
	declare @spolu_K1_hm120_Kraj float
		set @spolu_K1_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm210_Kraj float
		set @spolu_K1_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj= @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm365_Kraj float
		set @spolu_K1_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm500_Kraj float
		set @spolu_K1_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_120_Kraj float
		set @hmotnar_K1_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_210_Kraj float
		set @hmotnar_K1_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_365_Kraj float
		set @hmotnar_K1_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_500_Kraj float
		set @hmotnar_K1_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_priem_ziv_prir_120 = (select ((@spolu_K1_hm120_Kraj - @hmotnar_K1_120_Kraj) / Nullif((120*@poc_K1_120_Kraj),0)) *1000),-- as K1_priem_ziv_prir_120
	K1_priem_ziv_prir_210 = (select ((@spolu_K1_hm210_Kraj - @hmotnar_K1_210_Kraj) / Nullif((210*@poc_K1_210_Kraj),0)) *1000),-- as K1_priem_ziv_prir_210
	K1_priem_ziv_prir_365 = (select ((@spolu_K1_hm365_Kraj - @hmotnar_K1_365_Kraj) / Nullif((365*@poc_K1_365_Kraj),0)) *1000),-- as K1_priem_ziv_prir_365
	K1_priem_ziv_prir_500 = (select ((@spolu_K1_hm500_Kraj - @hmotnar_K1_500_Kraj) / Nullif((500*@poc_K1_500_Kraj),0)) *1000)-- as K1_priem_ziv_prir_500

	/** vybery pre prvy a druhy riadok		**/
	/******  --kravy  ******/
	
	/****		vek 1 oteleni K1....vypocet  ***/
	declare @vek1otel_K1_Kraj float 
	set @vek1otel_K1_Kraj = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj = @chov
									/*and Porlak = '1'*/ and Porlak is not null and datvyr is null and dovvyr is null /******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
									and rok = DATEPART(YEAR, @datumOd))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = dbo.toMesiacDen(@vek1otel_K1_Kraj)--  AS  VEK_1_Otel

	--medziobdobie
	update @hlavna 
	set K1_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where kraj  = @chov
								and Porlak > '1' and KrJal='K' 
								and datvyr is null and dovvyr is null
								and Medziobd > 100 and  Medziobd <= 1200
									and rok = DATEPART(YEAR, @datumOd))
	--priem.por.laktacie
	update @hlavna 
	set K1_priem_lakt = ( select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov 
								and Porlak is not null and KrJal='K' 
								and datvyr is null and dovvyr is null  
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
		from Roc_MPHD_Tab_zaklad 
		where kraj = @chov
				and KrJal='K' 
				and Hm120 is not null
				and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
									and KrJal='K' 
									and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
									and KrJal='K' 
									and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
								and KrJal='K' 
								and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))

	/*******	--mlady dobytok  *******/
	update @hlavna
	set MD1_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal<>'K'  
							and (Hm120 is not null or Hm120 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal<>'K' 
							and (Hm210 is not null or Hm210 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal<>'K' 
							and (Hm365 is not null or Hm365 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
								from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal<>'K' 
								and (Hm500 is not null or Hm500 <>0)
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK J  **********************************/
	update @hlavna
		set J_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
								from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal = 'J'   
								and (Hm120 is not null or Hm120 <>0)
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'J' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'J'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
	 						from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'J' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK B  **********************/
	update @hlavna
	set B_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'B'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'B' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'B'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal = 'B' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK MD  **********************/
	update @hlavna
	set MD2_vyradene =( select count(*) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal <> 'K'  
							and rok = DATEPART(YEAR, @datumOd)
							and Datvyr >= @datumOD)		
	update @hlavna
	set MD2_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
								from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal <> 'K'  
								and (Hm120 is not null or Hm120 <>0)
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
								from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal <> 'K'
								and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
								from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal <> 'K' 
								and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								and KrJal <> 'K'
								and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm120_Kraj float
		set @spolu_MD1_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm210_Kraj float
		set @spolu_MD1_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm365_Kraj float
		set @spolu_MD1_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm500_Kraj float
		set @spolu_MD1_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_120_Kraj float
		set @hmotnar_MD1_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_210_Kraj float
		set @hmotnar_MD1_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_365_Kraj float
		set @hmotnar_MD1_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
										and KrJal <> 'K' and Hm365 is not null
										and datvyr is null and dovvyr is null 
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_500_Kraj float
		set @hmotnar_MD1_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
										where kraj = @chov
										and KrJal <> 'K' and Hm500 is not null
										and datvyr is null and dovvyr is null 
										and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD1_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD1_hm120_Kraj - @hmotnar_MD1_120_Kraj) / nullif((120*@poc_MD1_120_Kraj),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_120
	 MD1_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD1_hm210_Kraj - @hmotnar_MD1_210_Kraj) / nullif((210*@poc_MD1_210_Kraj),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_210
	 MD1_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD1_hm365_Kraj - @hmotnar_MD1_365_Kraj) / nullif((365*@poc_MD1_365_Kraj),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_365
	 MD1_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD1_hm500_Kraj - @hmotnar_MD1_500_Kraj) / nullif((500*@poc_MD1_500_Kraj),0)) *1000)-- as MD1_priem_ziv_prirastok_chov_500

	
	declare @spolu_J_hm120_Kraj float
		set @spolu_J_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm210_Kraj float
		set @spolu_J_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm365_Kraj float
		set @spolu_J_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm500_Kraj float
		set @spolu_J_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_120_Kraj float
		set @hmotnar_J_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_210_Kraj float
		set @hmotnar_J_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_365_Kraj float
		set @hmotnar_J_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_500_Kraj float
		set @hmotnar_J_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	update @hlavna 
	set J_priem_ziv_prirastok_chov_120 = (select ((@spolu_J_hm120_Kraj - @hmotnar_J_120_Kraj) / nullif((120*@poc_J_120_Kraj),0)) *1000),
		 J_priem_ziv_prirastok_chov_210 = (select ((@spolu_J_hm210_Kraj - @hmotnar_J_210_Kraj) / nullif((210*@poc_J_210_Kraj),0)) *1000),
		 J_priem_ziv_prirastok_chov_365 = (select ((@spolu_J_hm365_Kraj - @hmotnar_J_365_Kraj) / nullif((365*@poc_J_365_Kraj),0)) *1000),
		 J_priem_ziv_prirastok_chov_500 = (select ((@spolu_J_hm500_Kraj - @hmotnar_J_500_Kraj) / nullif((500*@poc_J_500_Kraj),0)) *1000)
	
	 declare @spolu_B_hm120_Kraj float
		set @spolu_B_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm210_Kraj float
		set @spolu_B_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm365_Kraj float
		set @spolu_B_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm500_Kraj float
		set @spolu_B_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_120_Kraj float
		set @hmotnar_B_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_210_Kraj float
		set @hmotnar_B_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_365_Kraj float
		set @hmotnar_B_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_500_Kraj float
		set @hmotnar_B_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set B_priem_ziv_prirastok_chov_120 = (select ((@spolu_B_hm120_Kraj - @hmotnar_B_120_Kraj) / nullif((120*@poc_B_120_Kraj),0)) *1000),
	 B_priem_ziv_prirastok_chov_210 = (select ((@spolu_B_hm210_Kraj - @hmotnar_B_210_Kraj) / nullif((210*@poc_B_210_Kraj),0)) *1000),
	 B_priem_ziv_prirastok_chov_365 = (select ((@spolu_B_hm365_Kraj - @hmotnar_B_365_Kraj) / nullif((365*@poc_B_365_Kraj),0)) *1000),
	 B_priem_ziv_prirastok_chov_500 = (select ((@spolu_B_hm500_Kraj - @hmotnar_B_500_Kraj) / nullif((500*@poc_B_500_Kraj),0)) *1000)

	declare @spolu_MD2_hm120_Kraj float
		set @spolu_MD2_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm210_Kraj float
		set @spolu_MD2_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm365_Kraj float
		set @spolu_MD2_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm500_Kraj float
		set @spolu_MD2_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_120_Kraj float
		set @hmotnar_MD2_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_210_Kraj float
		set @hmotnar_MD2_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_365_Kraj float
		set @hmotnar_MD2_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_500_Kraj float
		set @hmotnar_MD2_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
									where kraj = @chov
									and KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD2_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD2_hm120_Kraj - @hmotnar_MD2_120_Kraj) / nullif((120*@poc_MD2_120_Kraj),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD2_hm210_Kraj - @hmotnar_MD2_210_Kraj) / nullif((210*@poc_MD2_210_Kraj),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD2_hm365_Kraj - @hmotnar_MD2_365_Kraj) / nullif((365*@poc_MD2_365_Kraj),0)) *1000),
	 MD2_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD2_hm500_Kraj - @hmotnar_MD2_500_Kraj) / nullif((500*@poc_MD2_500_Kraj),0)) *1000)
	 
/****		vek 1 oteleni K2....vypocet  ***/
	declare @vek1otel_K2_Kraj float 
	set @vek1otel_K2_Kraj = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
								/*and Porlak = '1'*/ and Porlak is not null/******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
								and rok = DATEPART(YEAR, @datumOd))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K2_vek_1_otel = dbo.toMesiacDen(@vek1otel_K2_Kraj)--  AS  VEK_1_Otel

	update @hlavna 
	set K2_priem_lakt = (select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov 
								and Porlak is not null and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_vyradene =(select count(*) 
						from Roc_MPHD_Tab_zaklad 
						where kraj  = @chov
						and KrJal = 'K'  
						and rok = DATEPART(YEAR, @datumOd)
						and Datvyr >= @datumOD )
	--medziobdobie
	update @hlavna 
	set K2_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where kraj = @chov
								and Porlak > '1' and KrJal='K' 
								and Medziobd > 100 and  Medziobd <= 1200
								and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm120_Kraj float
	set @spolu_K2_hm120_Kraj = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm210_Kraj float
	set @spolu_K2_hm210_Kraj = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm365_Kraj float
	set @spolu_K2_hm365_Kraj = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm500_Kraj float
	set @spolu_K2_hm500_Kraj = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_120_Kraj float
	set @hmotnar_K2_120_Kraj = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_210_Kraj float
	set @hmotnar_K2_210_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_365_Kraj float
	set @hmotnar_K2_365_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj  = @chov
									and KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_500_Kraj float
	set @hmotnar_K2_500_Kraj = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where kraj = @chov
									and KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	Update @hlavna 
	set K2_priem_ziv_prirastok_120 = (select ((@spolu_K2_hm120_Kraj - @hmotnar_K2_120_Kraj) / nullif((120*@poc_K2_120_Kraj),0)) *1000),-- as K2_priem_ziv_prirastok_120
	K2_priem_ziv_prirastok_210 = (select ((@spolu_K2_hm210_Kraj - @hmotnar_K2_210_Kraj) / nullif((210*@poc_K2_210_Kraj),0)) *1000),--  as K2_priem_ziv_prirastok_210
	K2_priem_ziv_prirastok_365 = (select ((@spolu_K2_hm365_Kraj - @hmotnar_K2_365_Kraj) / nullif((365*@poc_K2_365_Kraj),0)) *1000),--  as K2_priem_ziv_prirastok_365
	K2_priem_ziv_prirastok_500 = (select ((@spolu_K2_hm500_Kraj - @hmotnar_K2_500_Kraj) / nullif((500*@poc_K2_500_Kraj),0)) *1000)--  as K2_priem_ziv_prirastok_500

	update @hlavna 
	set K2_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal='K' 
							and Hm120 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_210 =(select convert (decimal (5,2), avg(Hm210*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal='K' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_365 = (select convert (decimal (5,2), avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal='K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_500 = (select convert (decimal (5,2), avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where kraj = @chov
							and KrJal='K' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

insert into  Roc_MPHD_Tab_17
(	kraj, okres, podnik, chov, mastal,K1_poc, 
		K1_poc_120, K1_perc_120, 
		K1_poc_210, K1_perc_210, 
		K1_poc_365, K1_perc_365, 
		K1_poc_500,	K1_perc_500, 
		K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120, 
		MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365, MD1_poc_vaz_500, MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, 
		K2_poc_210, K2_perc_210, 
		K2_poc_365, K2_perc_365, 
		K2_poc_500, K2_perc_500, K2_Priem_Hm_120,K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210, J_perc_210, J_poc_vaz_365,  J_perc_365, J_poc_vaz_500, J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120,  B_perc_120, B_poc_vaz_210, 
		B_perc_210, B_poc_vaz_365, 
		B_perc_365, B_poc_vaz_500,
		B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120, MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		rok, plem_podiel, ekochov
)

Select kraj, okres, podnik, chov, mastal,
		K1_poc, K1_poc_120, 
		(K1_poc_120*1.0 / nullif(K1_poc,0))* 100 as K1_perc_120, 
		K1_poc_210, 
		(K1_poc_210*1.0 / nullif(K1_poc,0))* 100 as K1_perc_210, 
		K1_poc_365, 
		(K1_poc_365*1.0 / nullif(K1_poc,0))* 100 as K1_perc_365, 
		K1_poc_500,	
		(K1_poc_500*1.0 / nullif(K1_poc,0))* 100 as K1_perc_500, 
		K1_Priem_Hm_120 as K1_Priem_Hm_120,
		K1_Priem_Hm_210 as K1_Priem_Hm_210, 
		K1_Priem_Hm_365 as K1_Priem_Hm_365, 
		K1_Priem_Hm_500 as K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, 
		(MD1_poc_vaz_120*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_120, 
		MD1_poc_vaz_210, 
		(MD1_poc_vaz_210*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_210, 
		MD1_poc_vaz_365, 
		(MD1_poc_vaz_365*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_365,
		MD1_poc_vaz_500, 
		(MD1_poc_vaz_500*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	
		(K2_poc_120*1.0 / nullif(K2_poc,0))* 100 as K2_perc_120, 
		K2_poc_210, 
		(K2_poc_210*1.0 / nullif(K2_poc,0))* 100 as K2_perc_210, 
		K2_poc_365, 
		(K2_poc_365*1.0 / nullif(K2_poc,0))* 100 as K2_perc_365, 
		K2_poc_500,
		(K2_poc_500*1.0 / nullif(K2_poc,0))* 100 as K2_perc_500, 
		K2_Priem_Hm_120 as K2_Priem_Hm_120, K2_Priem_Hm_210 as K2_Priem_Hm_210, K2_Priem_Hm_365 as K2_Priem_Hm_365, K2_Priem_Hm_500 as K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, 
		(J_poc_vaz_120*1.0 / nullif(J_poc,0))* 100 as J_perc_120, J_poc_vaz_210, 
		(J_poc_vaz_210*1.0 / nullif(J_poc,0))* 100 as J_perc_210, J_poc_vaz_365, 
		(J_poc_vaz_365*1.0 / nullif(J_poc,0))* 100 as J_perc_365, J_poc_vaz_500,
		(J_poc_vaz_500*1.0 / nullif(J_poc,0))* 100 as J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120, 
		(B_poc_vaz_120*1.0 / nullif(B_poc,0))* 100 as B_perc_120, B_poc_vaz_210, 
		(B_poc_vaz_210*1.0 / nullif(B_poc,0))* 100 as B_perc_210, B_poc_vaz_365, 
		(B_poc_vaz_365*1.0 / nullif(B_poc,0))* 100 as B_perc_365, B_poc_vaz_500,
		(B_poc_vaz_500*1.0 / nullif(B_poc,0))* 100 as B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120 , 
		(MD2_poc_vaz_120*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_120, MD2_poc_vaz_210, 
		(MD2_poc_vaz_210*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_210, MD2_poc_vaz_365, 
		(MD2_poc_vaz_365*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_365, MD2_poc_vaz_500, 
		(MD2_poc_vaz_500*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		DATEPART(YEAR,@datumOd) as rok,
		''as plem_podiel,
		'' as ekochov
	from @hlavna where kraj = @chov
		
	end
else if @chov is null
	begin 
	/*** SR ***/
	/**aktualny stav  Kravy  *****************/
	declare @poc_K1_SR int --pocet krav
		set @poc_K1_SR = (select count(*) from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_120_SR int 
		set @poc_K1_120_SR = (select count(Hm120)  from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K1_210_SR int
		set @poc_K1_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_365_SR int
		set @poc_K1_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K1_500_SR int
		set @poc_K1_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	

	/**  STAVY ZA KONTROLNY ROK Kravy  *******/
	declare @poc_K2_SR int --pocet krav
		set @poc_K2_SR = (select sum(Pocet_dni_na_chove)/365 from Roc_MPHD_Tab_zaklad
								where KrJal='K'
									and rok = DATEPART(YEAR, @datumOd))		
		----povodny vypocet som mala nastaveny ako pocet zijucich aj vyradenych krav na chov....no ukazalo sa, ze v rocenke tento udaj znamena priemerny pocet krav na chove
		/*(select count(*) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))*/
	declare @poc_K2_120_SR int --pocet krav
		set @poc_K2_120_SR = (select count(Hm120) /*as Vaz_K_120*/ from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_210_SR int
		set @poc_K2_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_K2_365_SR int
		set @poc_K2_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_K2_500_SR int
		set @poc_K2_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	/**aktualny stav  MD Mlady dobytok  *****************/
	declare @poc_MD1_SR int --pocet
		set @poc_MD1_SR = (select count(*) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' 
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD1_120_SR int --pocet krav
		set @poc_MD1_120_SR = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_210_SR int
		set @poc_MD1_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm210 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))	
	declare @poc_MD1_365_SR int
		set @poc_MD1_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
								and datvyr is null and dovvyr is null
								and rok = DATEPART(YEAR, @datumOd))		
	declare @poc_MD1_500_SR int
		set @poc_MD1_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))

	 /**  STAVY ZA KONTROLNY ROK MD Mlady dobytok  *****************/
	declare @poc_MD2_SR int --pocet krav
		set @poc_MD2_SR = (select count(*) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_120_SR int --pocet krav
		set @poc_MD2_120_SR = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
								where  KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_210_SR int
		set @poc_MD2_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_365_SR int
		set @poc_MD2_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_MD2_500_SR int
		set @poc_MD2_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK J Jalovice  *****************/
	declare @poc_J_SR int --pocet jalovic
			set @poc_J_SR = (select count(*) from Roc_MPHD_Tab_zaklad 
									where KrJal ='J' 
										and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_120_SR int --pocet jalovic
		set @poc_J_120_SR = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal ='J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_210_SR int
		set @poc_J_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal ='J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_365_SR int
		set @poc_J_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal ='J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_J_500_SR int
		set @poc_J_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal ='J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	/**  STAVY ZA KONTROLNY ROK B Bycky *********************/
	declare @poc_B_SR int --pocet byckov
			set @poc_B_SR = (select count(*) from Roc_MPHD_Tab_zaklad 
									where KrJal ='B' 
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_120_SR int --pocet byckov
		set @poc_B_120_SR = (select count(Hm120) from Roc_MPHD_Tab_zaklad 
									where KrJal ='B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_210_SR int
		set @poc_B_210_SR = (select count(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal ='B' and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_365_SR int
		set @poc_B_365_SR = (select count(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal ='B' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
	declare @poc_B_500_SR int
		set @poc_B_500_SR = (select count(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal ='B' and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
		
	/*
	vlozenie do dočasnej hlavnej tabulky
	*/
	 insert into @hlavna
		 (kraj, okres, podnik, chov, mastal, 
		 K1_poc, K1_poc_120, /*K1_perc_120, */K1_poc_210,/*K1_perc_210,*/K1_poc_365, /*K1_perc_365,*/ K1_poc_500,/*K1_perc_500,*/ 
		 K2_poc,K2_poc_120,/* K2_perc_120,*/ K2_poc_210, /*K2_perc_210,*/ K2_poc_365, /*K2_perc_365,*/ K2_poc_500, /*K2_perc_500, */
		 MD1_poc, MD1_poc_vaz_120,/* MD1_perc_120,*/ MD1_poc_vaz_210,/* MD1_perc_210,*/ MD1_poc_vaz_365, /*MD1_perc_365,*/ MD1_poc_vaz_500, /*MD1_perc_500,*/
		 MD2_poc, MD2_poc_vaz_120, /*MD2_perc_120,*/ MD2_poc_vaz_210,/* MD2_perc_210,*/ MD2_poc_vaz_365,/* MD2_perc_365,*/ MD2_poc_vaz_500, /*MD2_perc_500, */
		 J_poc, J_poc_vaz_120,/* J_perc_120,*/ J_poc_vaz_210,/* J_perc_210,*/ J_poc_vaz_365,/* J_perc_365,*/ J_poc_vaz_500,/* J_perc_500, */
		 B_poc, B_poc_vaz_120, /*B_perc_120,*/ B_poc_vaz_210,/* B_perc_210,*/ B_poc_vaz_365,/* B_perc_365,*/ B_poc_vaz_500 /*B_perc_500*/)
	 select '9' as kraj, '99' as okres, '999' as podnik, '99' as chov, '9' as mastal,
		@poc_K1_SR as K1_poc,
		@poc_K1_120_SR as K1_poc_120,
		@poc_K1_210_SR as K1_poc_210,
		@poc_K1_365_SR as K1_poc_365,
		@poc_K1_500_SR as K1_poc_500,
		
		@poc_K2_SR as K2_poc,
		@poc_K2_120_SR as K2_poc_120,
		@poc_K2_210_SR as K2_poc_210,
		@poc_K2_365_SR as K2_poc_365,
		@poc_K2_500_SR as K2_poc_500,
		
		@poc_MD1_SR as MD1_poc,
		@poc_MD1_120_SR as MD1_poc_vaz_120,
		@poc_MD1_210_SR as MD1_poc_vaz_210,
		@poc_MD1_365_SR as MD1_poc_vaz_365,
		@poc_MD1_500_SR as MD1_poc_vaz_500,
		
		@poc_MD2_SR as MD2_poc,
		@poc_MD2_120_SR as MD2_poc_vaz_120,
		@poc_MD2_210_SR as MD2_poc_vaz_210,
		@poc_MD2_365_SR as MD2_poc_vaz_365,
		@poc_MD2_500_SR as MD2_poc_vaz_500,
		
		@poc_J_SR as J_poc,
		@poc_J_120_SR as J_poc_vaz_120,
		@poc_J_210_SR as J_poc_vaz_210,
		@poc_J_365_SR as J_poc_vaz_365,
		@poc_J_500_SR as J_poc_vaz_500,
		
		@poc_B_SR as B_poc,
		@poc_B_120_SR as B_poc_vaz_120,
		@poc_B_210_SR as B_poc_vaz_210,
		@poc_B_365_SR as B_poc_vaz_365,
		@poc_B_500_SR as B_poc_vaz_500
		
				
	declare @spolu_K1_hm120_SR float
		set @spolu_K1_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm210_SR float
		set @spolu_K1_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm365_SR float
		set @spolu_K1_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_K1_hm500_SR float
		set @spolu_K1_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_120_SR float
		set @hmotnar_K1_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_210_SR float
		set @hmotnar_K1_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_365_SR float
		set @hmotnar_K1_365_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_K1_500_SR float
		set @hmotnar_K1_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_priem_ziv_prir_120 = (select ((@spolu_K1_hm120_SR - @hmotnar_K1_120_SR) / nullif((120*@poc_K1_120_SR),0)) *1000),-- as K1_priem_ziv_prir_120
	K1_priem_ziv_prir_210 = (select ((@spolu_K1_hm210_SR - @hmotnar_K1_210_SR) / nullif((210*@poc_K1_210_SR),0)) *1000),-- as K1_priem_ziv_prir_210
	K1_priem_ziv_prir_365 = (select ((@spolu_K1_hm365_SR - @hmotnar_K1_365_SR) / nullif((365*@poc_K1_365_SR),0)) *1000),-- as K1_priem_ziv_prir_365
	K1_priem_ziv_prir_500 = (select ((@spolu_K1_hm500_SR - @hmotnar_K1_500_SR) / nullif((500*@poc_K1_500_SR),0)) *1000)-- as K1_priem_ziv_prir_500

	/** vybery pre prvy a druhy riadok		**/
	/******  --kravy  ******/
	
	/****		vek 1 oteleni K1....vypocet  ***/
	declare @vek1otel_K1_SR float 
	set @vek1otel_K1_SR = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
							where /* Porlak = '1'*/  Porlak is not null and datvyr is null and dovvyr is null/******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
								and rok = DATEPART(YEAR, @datumOd))

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = dbo.toMesiacDen(@vek1otel_K1_SR)--  AS  VEK_1_Otel

	--medziobdobie
	update @hlavna 
	set K1_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where Porlak > '1' and KrJal='K' 
						and datvyr is null and dovvyr is null
						and Medziobd > 100 and  Medziobd <= 1200
						and rok = DATEPART(YEAR, @datumOd))
	--priem.por.laktacie
	update @hlavna 
	set K1_priem_lakt = (select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where Porlak is not null and KrJal='K' 
							and datvyr is null and dovvyr is null  
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set K1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm120 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm210 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm365 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm500 is not null
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))

	/*******	--mlady dobytok  *******/
	update @hlavna
	set MD1_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal<>'K'  
							and (Hm120 is not null or Hm120 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal<>'K' 
							and (Hm210 is not null or Hm210 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal<>'K' 
							and (Hm365 is not null or Hm365 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD1_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal<>'K' 
							and (Hm500 is not null or Hm500 <>0)
							and datvyr is null and dovvyr is null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK J  **********************************/
	update @hlavna
	set J_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'J'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'J' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'J'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set J_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
	 						from Roc_MPHD_Tab_zaklad 
							where KrJal = 'J' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))

/**  STAVY ZA KONTROLNY ROK B  **********************/
	update @hlavna
	set B_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'B'   
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_210 = (select convert (decimal (5,2),avg(Hm210*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'B' 
							and Hm210 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'B'  
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set B_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal = 'B' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))
		
/**  STAVY ZA KONTROLNY ROK MD  **********************/
	update @hlavna
	set MD2_vyradene = (select count(*) 
						from Roc_MPHD_Tab_zaklad 
						where KrJal <> 'K'  
						and rok = DATEPART(YEAR, @datumOd)
						and Datvyr >= @datumOD)
	update @hlavna
	set MD2_Priem_Hm_120 =(select convert (decimal (5,2),avg(Hm120*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal <> 'K'  
							and (Hm120 is not null or Hm120 <>0)
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_210 = ( select convert (decimal (5,2),avg(Hm210*1.0))
								from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K'
								and Hm210 is not null
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal <> 'K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set MD2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
								from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K'
								and Hm500 is not null
								and rok = DATEPART(YEAR, @datumOd))
			
	declare @spolu_MD1_hm120_SR float
		set @spolu_MD1_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm210_SR float
		set @spolu_MD1_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm365_SR float
		set @spolu_MD1_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD1_hm500_SR float
		set @spolu_MD1_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_120_SR float
		set @hmotnar_MD1_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm120 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_210_SR float
		set @hmotnar_MD1_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm210 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD1_365_SR float
		set @hmotnar_MD1_365_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
									and datvyr is null and dovvyr is null
									and rok = DATEPART(YEAR, @datumOd) )
	declare @hmotnar_MD1_500_SR float
		set @hmotnar_MD1_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm500 is not null
									and datvyr is null and dovvyr is null 
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD1_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD1_hm120_SR - @hmotnar_MD1_120_SR) / nullif((120*@poc_MD1_120_SR),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_120
	 MD1_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD1_hm210_SR - @hmotnar_MD1_210_SR) / nullif((210*@poc_MD1_210_SR),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_210
	 MD1_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD1_hm365_SR - @hmotnar_MD1_365_SR) / nullif((365*@poc_MD1_365_SR),0)) *1000),-- as MD1_priem_ziv_prirastok_chov_365
	 MD1_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD1_hm500_SR - @hmotnar_MD1_500_SR) / nullif((500*@poc_MD1_500_SR),0)) *1000)-- as MD1_priem_ziv_prirastok_chov_500

	
	declare @spolu_J_hm120_SR float
		set @spolu_J_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm210_SR float
		set @spolu_J_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm365_SR float
		set @spolu_J_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_J_hm500_SR float
		set @spolu_J_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_120_SR float
		set @hmotnar_J_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_210_SR float
		set @hmotnar_J_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_365_SR float
		set @hmotnar_J_365_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_J_500_SR float
		set @hmotnar_J_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'J' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set J_priem_ziv_prirastok_chov_120 = (select ((@spolu_J_hm120_SR - @hmotnar_J_120_SR) / nullif((120*@poc_J_120_SR),0)) *1000),
		 J_priem_ziv_prirastok_chov_210 = (select ((@spolu_J_hm210_SR - @hmotnar_J_210_SR) / nullif((210*@poc_J_210_SR),0)) *1000),
		 J_priem_ziv_prirastok_chov_365 = (select ((@spolu_J_hm365_SR - @hmotnar_J_365_SR) / nullif((365*@poc_J_365_SR),0)) *1000),
		 J_priem_ziv_prirastok_chov_500 = (select ((@spolu_J_hm500_SR - @hmotnar_J_500_SR) / nullif((500*@poc_J_500_SR),0)) *1000)
	
	declare @spolu_B_hm120_SR float
		set @spolu_B_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm210_SR float
		set @spolu_B_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm365_SR float
		set @spolu_B_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_B_hm500_SR float
		set @spolu_B_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_120_SR float
		set @hmotnar_B_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_210_SR float
		set @hmotnar_B_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_365_SR float
		set @hmotnar_B_365_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_B_500_SR float
		set @hmotnar_B_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal = 'B' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))

	update @hlavna 
	set B_priem_ziv_prirastok_chov_120 = (select ((@spolu_B_hm120_SR - @hmotnar_B_120_SR) / nullif((120*@poc_B_120_SR),0)) *1000),
	 B_priem_ziv_prirastok_chov_210 = (select ((@spolu_B_hm210_SR - @hmotnar_B_210_SR) / nullif((210*@poc_B_210_SR),0)) *1000),
	 B_priem_ziv_prirastok_chov_365 = (select ((@spolu_B_hm365_SR - @hmotnar_B_365_SR) / nullif((365*@poc_B_365_SR),0)) *1000),
	 B_priem_ziv_prirastok_chov_500 = (select ((@spolu_B_hm500_SR - @hmotnar_B_500_SR) / nullif((500*@poc_B_500_SR),0)) *1000)
	 
	declare @spolu_MD2_hm120_SR float
		set @spolu_MD2_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm210_SR float
		set @spolu_MD2_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
									where KrJal <> 'K' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm365_SR float
		set @spolu_MD2_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @spolu_MD2_hm500_SR float
		set @spolu_MD2_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
									where KrJal <> 'K' and Hm500 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_120_SR float
		set @hmotnar_MD2_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_210_SR float
		set @hmotnar_MD2_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm210 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_365_SR float
		set @hmotnar_MD2_365_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm365 is not null
										and rok = DATEPART(YEAR, @datumOd))
	declare @hmotnar_MD2_500_SR float
		set @hmotnar_MD2_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal <> 'K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna 
	set MD2_priem_ziv_prirastok_chov_120 = (select ((@spolu_MD2_hm120_SR - @hmotnar_MD2_120_SR) / (120*nullif(@poc_MD2_120_SR,0)) *1000)),
	 MD2_priem_ziv_prirastok_chov_210 = (select ((@spolu_MD2_hm210_SR - @hmotnar_MD2_210_SR) / (210*nullif(@poc_MD2_210_SR,0)) *1000)),
	 MD2_priem_ziv_prirastok_chov_365 = (select ((@spolu_MD2_hm365_SR - @hmotnar_MD2_365_SR) / (365*nullif(@poc_MD2_365_SR,0)) *1000)),
	 MD2_priem_ziv_prirastok_chov_500 = (select ((@spolu_MD2_hm500_SR - @hmotnar_MD2_500_SR) / (500*nullif(@poc_MD2_500_SR,0)) *1000))


/****		vek 1 oteleni K2....vypocet  ***/
	declare @vek1otel_K2_SR float 
	set @vek1otel_K2_SR = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
							 where rok = DATEPART(YEAR, @datumOd) and Porlak is not null)
								/*and Porlak = '1'*/	/******* maju to byt priemery za vsettky prve otelenia krav na chove, aj ked uz maju vyssie poradie laktacie ********/
	
	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K2_vek_1_otel = dbo.toMesiacDen(@vek1otel_K2_SR)--  AS  VEK_1_Otel

	update @hlavna 
	set K2_priem_lakt = (select convert (decimal (5,2),avg(Porlak*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where Porlak is not null and KrJal='K' 
								and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_vyradene =( select count(*) 
						from Roc_MPHD_Tab_zaklad 
						where KrJal = 'K'  
						and Datvyr >= @datumOD
						and rok = DATEPART(YEAR, @datumOd))
	--medziobdobie
	update @hlavna 
	set K2_medziobd = (select avg(medziobd) as Medziobdobie
						from Roc_MPHD_Tab_zaklad 
						where Porlak > '1' and KrJal='K' 
								and Medziobd > 100 and  Medziobd <= 1200
									and rok = DATEPART(YEAR, @datumOd))

declare @spolu_K2_hm120_SR float
	set @spolu_K2_hm120_SR = (select sum(Hm120) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm210_SR float
	set @spolu_K2_hm210_SR = (select sum(Hm210) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm365_SR float
	set @spolu_K2_hm365_SR = (select sum(Hm365) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @spolu_K2_hm500_SR float
	set @spolu_K2_hm500_SR = (select sum(Hm500) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_120_SR float
	set @hmotnar_K2_120_SR = (select sum(Hmotnar) as Vaz_K_120 from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm120 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_210_SR float
	set @hmotnar_K2_210_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_365_SR float
	set @hmotnar_K2_365_SR = (select sum(Hmotnar) 
								from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm365 is not null
								and rok = DATEPART(YEAR, @datumOd))
declare @hmotnar_K2_500_SR float
	set @hmotnar_K2_500_SR = (select sum(Hmotnar) from Roc_MPHD_Tab_zaklad 
								where KrJal='K' and Hm500 is not null
									and rok = DATEPART(YEAR, @datumOd))
								
	Update @hlavna 
	set K2_priem_ziv_prirastok_120 = (select ((@spolu_K2_hm120_SR - @hmotnar_K2_120_SR) / (120*nullif(@poc_K2_120_SR,0))) *1000),-- as K2_priem_ziv_prirastok_120
	K2_priem_ziv_prirastok_210 = (select ((@spolu_K2_hm210_SR - @hmotnar_K2_210_SR) / (210*nullif(@poc_K2_210_SR,0))) *1000),--  as K2_priem_ziv_prirastok_210
	K2_priem_ziv_prirastok_365 = (select ((@spolu_K2_hm365_SR - @hmotnar_K2_365_SR) / (365*nullif(@poc_K2_365_SR,0))) *1000),--  as K2_priem_ziv_prirastok_365
	K2_priem_ziv_prirastok_500 = (select ((@spolu_K2_hm500_SR - @hmotnar_K2_500_SR) / (500*nullif(@poc_K2_500_SR,0))) *1000)--  as K2_priem_ziv_prirastok_500

	update @hlavna 
	set K2_Priem_Hm_120 = (select convert (decimal (5,2),avg(Hm120*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm120 is not null
							and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_210 =(select convert (decimal (5,2),avg(Hm210*1.0)) 
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
									and Hm210 is not null
									and rok = DATEPART(YEAR, @datumOd))
	update @hlavna
	set K2_Priem_Hm_365 = (select convert (decimal (5,2),avg(Hm365*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm365 is not null
							and rok = DATEPART(YEAR, @datumOd))
				
	update @hlavna
	set K2_Priem_Hm_500 = (select convert (decimal (5,2),avg(Hm500*1.0))
							from Roc_MPHD_Tab_zaklad 
							where KrJal='K' 
							and Hm500 is not null
							and rok = DATEPART(YEAR, @datumOd))
		
insert into  Roc_MPHD_Tab_17
(	kraj, okres, podnik, chov, mastal,K1_poc, 
		K1_poc_120, K1_perc_120, 
		K1_poc_210, K1_perc_210, 
		K1_poc_365, K1_perc_365, 
		K1_poc_500,	K1_perc_500, 
		K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, 
		K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365, K1_priem_ziv_prir_500, 
		K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120, 
		MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365, MD1_poc_vaz_500, MD1_perc_500, 
		MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, 
		K2_poc_210, K2_perc_210, 
		K2_poc_365, K2_perc_365, 
		K2_poc_500, K2_perc_500, K2_Priem_Hm_120,K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210, J_perc_210, J_poc_vaz_365,  J_perc_365, J_poc_vaz_500, J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,
		B_poc, B_poc_vaz_120,  B_perc_120, B_poc_vaz_210, 
		B_perc_210, B_poc_vaz_365, 
		B_perc_365, B_poc_vaz_500,
		B_perc_500, 
		B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,
		MD2_poc, MD2_poc_vaz_120, MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
		rok, plem_podiel, ekochov
)

Select kraj, okres, podnik, chov, mastal,
	K1_poc, K1_poc_120, (K1_poc_120*1.0 / nullif(K1_poc,0))* 100 as K1_perc_120, 
	K1_poc_210, (K1_poc_210*1.0 / nullif(K1_poc,0))* 100 as K1_perc_210, 
	K1_poc_365, (K1_poc_365*1.0 / nullif(K1_poc,0))* 100 as K1_perc_365, 
	K1_poc_500,	(K1_poc_500*1.0 / nullif(K1_poc,0))* 100 as K1_perc_500, 
	K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365,
	K1_priem_ziv_prir_500, K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
	MD1_poc, MD1_poc_vaz_120, 
	(MD1_poc_vaz_120*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_120, 
	MD1_poc_vaz_210, 
	(MD1_poc_vaz_210*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_210, MD1_poc_vaz_365, 
	(MD1_poc_vaz_365*1.0 / nullif(MD1_poc,0))* 100 as MD1_perc_365,
	MD1_poc_vaz_500, 
	(MD1_poc_vaz_500*1.0 / MD1_poc)* 100 as MD1_perc_500, MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
	MD1_priem_ziv_prirastok_chov_500,
	K2_poc, K2_poc_120,	
	(K2_poc_120*1.0 / nullif(K2_poc,0))* 100 as K2_perc_120, K2_poc_210, 
	(K2_poc_210*1.0 / nullif(K2_poc,0))* 100 as K2_perc_210, K2_poc_365, 
	(K2_poc_365*1.0 / nullif(K2_poc,0))* 100 as K2_perc_365, K2_poc_500,
	(K2_poc_500*1.0 / nullif(K2_poc,0))* 100 as K2_perc_500, 
	K2_Priem_Hm_120, K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
	K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
	K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene,
	J_poc, J_poc_vaz_120, 
	(J_poc_vaz_120*1.0 / nullif(J_poc,0))* 100 as J_perc_120, J_poc_vaz_210, 
	(J_poc_vaz_210*1.0 / nullif(J_poc,0))* 100 as J_perc_210, J_poc_vaz_365, 
	(J_poc_vaz_365*1.0 / nullif(J_poc,0))* 100 as J_perc_365, J_poc_vaz_500,
	(J_poc_vaz_500*1.0 / nullif(J_poc,0))* 100 as J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
	J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,

	B_poc, B_poc_vaz_120, 
	(B_poc_vaz_120*1.0 / nullif(B_poc,0))* 100 as B_perc_120, B_poc_vaz_210, 
	(B_poc_vaz_210*1.0 / nullif(B_poc,0))* 100 as B_perc_210, B_poc_vaz_365, 
	(B_poc_vaz_365*1.0 / nullif(B_poc,0))* 100 as B_perc_365, B_poc_vaz_500,
	(B_poc_vaz_500*1.0 / nullif(B_poc,0))* 100 as B_perc_500, 
	B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
	B_priem_ziv_prirastok_chov_500 ,

	MD2_poc, MD2_poc_vaz_120 , 
	(MD2_poc_vaz_120*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_120, MD2_poc_vaz_210, 
	(MD2_poc_vaz_210*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_210, MD2_poc_vaz_365, 
	(MD2_poc_vaz_365*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_365, MD2_poc_vaz_500, 
	(MD2_poc_vaz_500*1.0 / nullif(MD2_poc,0))*100 as MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
	MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene,
	DATEPART(YEAR,@datumOd) as rok, 
	'' as plem_podiel,
	'' as ekochov
	from @hlavna --where kraj = @chov

	end
	
	End
go

/****** Script for SelectTopNRows command from SSMS  ******/
/** Rocenka MLHD ----PREHLAD VYSLEDKOV PODLA KRAJOV ---str 13 **/
/** prisposobene fakturacii, preto  tie zakomentovane casti.**/
CREATE procedure  [dbo].[Roc_MLHD_4]
	
	@datumOd date,
	@datumDo date, 
	@datumFakturOd date,  --niektore udaje su prisposobene fakturacii, preto tento datum ---!!!! ide o obdobie, v ktorom mohli byt vyradene kravy, ktore sa este do fakturacie ratali ale nam by sa do plisu neratali!!!!!
	@datumFakturDo date
--declare @datumod date ='2017-01-01'
--declare @datumdo date ='2017-12-31'
--declare @datumFakturOd date ='2017-12-13'
--declare @datumFakturDo date ='2018-01-04'
	as 
	begin


/*******pocet chovov + pocet zapojenych krav za chov******/
/***povodny vypocet***
		select  ch.kraj,p.NAZOV ,count( distinct substring(k.CHOVATEL,1,8) ) as pocet_chovov,count(distinct k.CISKRAVY) as pocet_krav_kraj
			from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj = SUBSTRING(k.chovatel,1,1) 
			join NC_KRAJ p on p.KRAJ = ch.kraj
			where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1' 
			and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
			group by ch.kraj,p.NAZOV

		select count( distinct substring(k.CHOVATEL,1,8) ) as SR_pocet_chovov, count(distinct k.CISKRAVY) as SR_pocet_krav
			from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj = SUBSTRING(k.chovatel,1,1) 
			join NC_KRAJ p on p.KRAJ = ch.kraj
			where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1' 
			and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd))
		***/
/***vypocet prisposobeny fakturacii...aby sedeli pocty***/
    select distinct
      c.KRAJ,
      p.NAZOV,
      count(distinct substring(h.kraj + h.OKRES + h.PODNIK + h.CHOV, 1, 8)) as pocet_chovov,
      count(distinct k.ciskravy)                                            as pocet_krav ---kraje
    from NM_CHOVMAS as c
      inner join NM_HDDETAIL as h on h.kraj + h.OKRES + h.PODNIK + h.CHOV = c.kraj + c.OKRES + c.PODNIK + c.CHOV and
                                     h.PRIZNAK = '01' and h.SPVYKON not in ('0', '4', '5') and h.TECHUSMD = '00'
      inner join CM_Krava as k on c.kraj + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL and (k.DOVVYR is null)
                                  and k.datzar <= @datumFakturDo
      /*'2018-01-04'*/
      left outer join NC_KRAJ p on p.KRAJ = c.kraj
    where c.TYPZV = '1'
          and c.ZRUS is null
    group by c.kraj, p.NAZOV
    order by c.KRAJ
    /**za SR**/	
	select distinct  count( distinct substring(h.kraj+h.OKRES+h.PODNIK+h.CHOV,1,8)) as SR_pocet_chovov, count( distinct k.ciskravy ) as SR_pocet_krav---SLOVENSKO
		from NM_CHOVMAS as c
			inner join NM_HDDETAIL as h on h.kraj+h.OKRES+h.PODNIK+h.CHOV=c.kraj+c.OKRES+ c.PODNIK+c.CHOV and h.PRIZNAK='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
	  		inner join CM_Krava as k on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and k.datzar <=@datumFakturDo/*'2018-01-04'*/ 
			left outer join NC_KRAJ p on p.KRAJ = c.kraj
		where  c.TYPZV='1'
			and c.ZRUS is null

/******priemerna velkost chovu******/

/***povodny vypocet***
	select asd.kraj, k.NAZOV, AVG(asd.pocet) as priem_velkost_chovu
		from (select  substring(k.CHOVATEL,1,8) as asas, count(distinct ciskravy)  as pocet, kraj 
				from NM_CHOVMAS as ch 
					left outer join CM_Krava as k on ch.kraj = SUBSTRING(k.chovatel,1,1) 
				where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) 
					and k.PRIZNAKKU = '1'
					and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
				group by substring(k.CHOVATEL,1,8), kraj) as asd
		join NC_KRAJ k on k.KRAJ = asd.kraj
	group by asd.kraj, k.NAZOV
/**za SR**/
	select AVG(asd.pocet) as SR_priem_velkost_chovu
		from (select  substring(k.CHOVATEL,1,8) as asas ,count(distinct ciskravy)  as pocet, kraj 
				from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj = SUBSTRING(k.chovatel,1,1) 
				where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
						and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
				group by substring(k.CHOVATEL,1,8), kraj) as asd
		join NC_KRAJ k on k.KRAJ = asd.kraj
***/
/***vypocet prisposobeny fakturacii...aby sedeli pocty***/
		select
			asd.kraj,
			k.NAZOV,
			AVG(asd.pocet) as priem_velkost_chovu
		from (select
						substring(k.CHOVATEL, 1, 8) as asas,
						count(distinct ciskravy)    as pocet,
						c.kraj
					from NM_CHOVMAS as c
						inner join NM_HDDETAIL as h on h.kraj + h.OKRES + h.PODNIK + h.CHOV = c.kraj + c.OKRES + c.PODNIK + c.CHOV
																					 and h.PRIZNAK = '01' and h.SPVYKON not in ('0', '4', '5') and
																					 h.TECHUSMD = '00'
						inner join CM_Krava as k on c.kraj + c.OKRES + c.PODNIK + c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and
																				k.datzar <= @datumFakturDo /*'2018-01-04'*/
					where c.TYPZV = '1'
								and c.ZRUS is null
					group by substring(k.CHOVATEL, 1, 8), c.kraj) as asd
			join NC_KRAJ k on k.KRAJ = asd.kraj
		group by asd.kraj, k.NAZOV
		order by asd.KRAJ
/**za SR**/
	select AVG(asd.pocet) as SR_priem_velkost_chovu
		from (select  substring(k.CHOVATEL,1,8) as asas ,count(distinct ciskravy)  as pocet, c.kraj 
				from NM_CHOVMAS as c
					inner join NM_HDDETAIL as h on h.kraj+h.OKRES+h.PODNIK+h.CHOV=c.kraj+c.OKRES+ c.PODNIK+c.CHOV and h.PRIZNAK='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
	  				inner join CM_Krava as k on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL and (k.DOVVYR is null) and k.datzar <=@datumFakturDo/*'2018-01-04'*/ 
				where  c.TYPZV='1'
					
					and c.ZRUS is null
					
					
				group by substring(k.CHOVATEL,1,8), c.kraj) as asd
		join NC_KRAJ k on k.KRAJ = asd.kraj

/**priemerna uzitkovost mlieka, tuku, bielkovin**/
	select datepart(year,@datumOd) as ROK
		,Filter as kraj
		,MliekNorCelk as priem_uzit_ML
		,TukNorCelk as priem_uzit_TUK
		,BielkNorCelk as priem_uzit_BIELK
	from  CR_LaktacneZostavy_Opr as l
		where @datumOd = l.DatumOd 
			and @datumDo = l.DatumDo
			and Filter = Oznacenie
			and (Filter ='SR' or len(Filter)=1)
	order by filter

/*****************************
	/****upravene aby to sedelo s tabulkou 1***/
		/**priemerna uzitkovost mlieka**/
			select  ch.kraj,p.NAZOV ,avg(l.MLIEKCEL)  as priem_uz_mlieka
				from NM_CHOVMAS as ch 
					left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
					left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
					join NC_KRAJ p on p.KRAJ = ch.kraj
				   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
					and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
					and l.DATUKONL >@datumod and l.DATUKONL <@datumdo			 
				group by  ch.kraj ,p.NAZOV
				order by ch.kraj
		/**za SR**/
			select avg(l.MLIEKCEL)  as SR_priem_uz_mlieka
				from NM_CHOVMAS as ch 
					left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
					left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
					join NC_KRAJ p on p.KRAJ = ch.kraj
				   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
					and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
					and l.DATUKONL >@datumod and l.DATUKONL <@datumdo	

		/**priemerna uzitkovost tuku**/
			select   ch.kraj,p.NAZOV ,avg(l.TUKCEL) as priem_uz_tuku
				from NM_CHOVMAS as ch 
					left outer join CM_Krava as k on  ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
					left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
					join NC_KRAJ p on p.KRAJ = ch.kraj
				   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
					and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
					and DATUKONL >@datumod and DATUKONL <@datumdo			 
				group by  ch.kraj ,p.NAZOV
				order by ch.kraj
		/**za SR**/
			select  avg(l.TUKCEL) as SR_priem_uz_tuku
				from NM_CHOVMAS as ch 
					left outer join CM_Krava as k on  ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
					left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
					join NC_KRAJ p on p.KRAJ = ch.kraj
				   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
					and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
					and DATUKONL >@datumod and DATUKONL <@datumdo		
		
		/**priemerna uzitkovost bielkovin**/
			select   ch.kraj,p.NAZOV ,avg(l.BIELKCEL)  as priem_uz_bielk
			from NM_CHOVMAS as ch 
				left outer join CM_Krava as k on  ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
				left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
				join NC_KRAJ p on p.KRAJ = ch.kraj
			   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
				and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
				and DATUKONL >@datumod and DATUKONL <@datumdo			 
				group by  ch.kraj ,p.NAZOV
				order by ch.kraj
		/**za SR**/
			select avg(l.BIELKCEL)  as SR_priem_uz_bielk
			from NM_CHOVMAS as ch 
				left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
				left outer join CM_Laktacie as l on l.CISKRAVY=k.CISKRAVY
				join NC_KRAJ p on p.KRAJ = ch.kraj
			   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
				and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
				and DATUKONL >@datumod and DATUKONL <@datumdo	
	*****************************/

/** priemerne poradie prebiehajucej laktacie**/
	select   ch.kraj,p.NAZOV ,avg(Cast(l.PORLAK as float)) as por_preb_lakt
		 from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
			left outer join CM_Naplak as l on l.CISKRAVY=k.CISKRAVY
			join NC_KRAJ p on p.KRAJ = ch.kraj
		   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
			and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
			and DATUKONL >@datumod 	and l.DATUKONL <@datumdo		 
		group by  ch.kraj ,p.NAZOV
		order by ch.kraj
/**za SR**/
	select avg(Cast(l.PORLAK as float)) as SR_por_preb_lakt
	 from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
		left outer join CM_Naplak as l on l.CISKRAVY=k.CISKRAVY
		join NC_KRAJ p on p.KRAJ = ch.kraj
	   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
		and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
		and DATUKONL >@datumod 	and l.DATUKONL <@datumdo

/** priemerne poradie ukoncenej laktacie**/
	select   ch.kraj,p.NAZOV ,avg(Cast(lakt.PORLAK as float)) as por_ukon_lakt
		from NM_CHOVMAS as ch 
			left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
			left outer join dbo.View_CP_LaktaciePreZostavy as lakt on lakt.CISKRAVY=k.CISKRAVY
			join NC_KRAJ p on p.KRAJ = ch.kraj
		   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
			and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd)
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))	
					and lakt.ZMENA in('30','40') 
		group by  ch.kraj ,p.NAZOV
		order by ch.kraj
/**za SR**/	
	select avg(Cast(lakt.PORLAK as float)) as SR_por_ukon_lakt
		from NM_CHOVMAS as ch 
			left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
			left outer join CM_Laktacie as lakt on lakt.CISKRAVY=k.CISKRAVY
			join NC_KRAJ p on p.KRAJ = ch.kraj
			where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
			and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd)
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))	
					and lakt.ZMENA between 30 and 40 
		
/**priemerna dlzka statia na sucho**/
	select   distinct ch.kraj,p.NAZOV ,  avg(cast (datediff (dd,( dateadd(day,lakt.LAKTDNI,lakt.DATOTEL)),l.DATOTEL)as bigint)) as  priem_dlzka_statia
	   from NM_CHOVMAS as ch
		   left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
		   left outer join CM_Naplak as l on l.CISKRAVY=k.CISKRAVY
		   left outer join CM_Laktacie lakt on lakt.CISKRAVY =k.CISKRAVY
		   join NC_KRAJ p on p.KRAJ = ch.kraj
			 where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
				 and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd))
				 and lakt.DATUKONL >@datumod 	and lakt.DATUKONL <@datumdo		
				 and l.DATOTEL>lakt.DATOTEL    
				 and datediff (dd,( dateadd(day,lakt.LAKTDNI,lakt.DATOTEL)),l.DATOTEL) <1000
	  group by  ch.kraj ,p.NAZOV
	  order by ch.kraj
/**za SR**/
	select distinct avg(cast (datediff (dd,( dateadd(day,lakt.LAKTDNI,lakt.DATOTEL)),l.DATOTEL)as bigint)) as  SR_priem_dlzka_statia
	   from NM_CHOVMAS as ch
		   left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
		   left outer join CM_Naplak as l on l.CISKRAVY=k.CISKRAVY
		   left outer join CM_Laktacie lakt on lakt.CISKRAVY =k.CISKRAVY
		   join NC_KRAJ p on p.KRAJ = ch.kraj
			 where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
				 and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd))
				 and lakt.DATUKONL >@datumod 	and lakt.DATUKONL <@datumdo		
				 and l.DATOTEL>lakt.DATOTEL    
				 and datediff (dd,( dateadd(day,lakt.LAKTDNI,lakt.DATOTEL)),l.DATOTEL) <1000

/** priemerna dlzka medziobdobia**/
	select   ch.kraj,p.NAZOV ,avg(Cast(lakt.MEDZIOBD as float)) as priem_medziobd
	from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
		left outer join CM_Laktacie as lakt on lakt.CISKRAVY=k.CISKRAVY
		join NC_KRAJ p on p.KRAJ = ch.kraj
	   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
		and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd)
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
		and lakt.ZMENA between 30 and 40
		and Lakt.PORLAK > 1
					
		group by  ch.kraj ,p.NAZOV
		order by ch.kraj
/**za SR**/
	select avg(Cast(lakt.MEDZIOBD as float)) as SR_priem_medziobd
	from NM_CHOVMAS as ch left outer join CM_Krava as k on ch.kraj+ch.okres+ch.podnik+ch.chov = k.chovatel
		left outer join CM_Laktacie as lakt on lakt.CISKRAVY=k.CISKRAVY
		join NC_KRAJ p on p.KRAJ = ch.kraj
	   where (k.DOVVYR is null or(k.DOVVYR is not null and k.DATVYR > @datumOd)) and k.PRIZNAKKU = '1'
		and (ch.ZRUS is null or(ch.ZRUS is not null and datumZrusenia > @datumOd)) 
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd)
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
	  and lakt.ZMENA between 30 and 40
		and Lakt.PORLAK > 1
					
/*****priemerny interval za kraje****/
select left(z.KROK,1) as kraj , sum(PINT) / count(*) as 'Interval' from CM_ZSI as z
	left outer join CM_Insvyk as i on i.iplca = z.plca
	where z.KRJA = 1
		and i.IPOIN = 1
		and i.IDAIN >= @datumOd and i.IDAIN <= @datumDo
		and i.IVYSE not in ('1','2')
		and z.PINT > 0 
		and z.plca in (select ciskravy from CM_Krava where priznakKU = 1
					union 
						select cistelata from CM_Telata where priznakKu = 1 and cistelata not in (select ciskravy from CM_Krava))
	group by left(z.KROK,1)
	order by left(z.KROK,1)

/*****priemerny interval za SR****/
select sum(PINT) / count(*) as 'Interval_SR' from CM_ZSI as z
	left outer join CM_Insvyk as i on i.iplca = z.plca
	where z.KRJA = 1
		and i.IPOIN = 1
		and i.IDAIN >= @datumOd and i.IDAIN <= @datumDo
		and i.IVYSE not in ('1','2')
		and z.PINT > 0 
		and z.plca in (select ciskravy from CM_Krava where priznakKU = 1
					union 
						select cistelata from CM_Telata where priznakKu = 1 and cistelata not in (select ciskravy from CM_Krava))

/****servis perioda za kraje***/
select left(z.KROK,1) as kraj , sum(PSER) / count(*) as 'Serv_per' from CM_ZSI as z
	left outer join CM_Insvyk as i on i.iplca = z.plca
	where z.KRJA = 1
		and i.IDAIN >= @datumOd and i.IDAIN <= @datumDo
		and i.IVYSE > 6
		and i.IPOIN <> 99
		and z.PSER > 0 
		and z.plca in (select ciskravy from CM_Krava where priznakKU = 1
					union 
						select cistelata from CM_Telata where priznakKu = 1 and cistelata not in (select ciskravy from CM_Krava))
	group by left(z.KROK,1)
	order by left(z.KROK,1)

/****servis perioda za SR***/
	select sum(PSER) / count(*) as 'Serv_per_SR' from CM_ZSI as z
	left outer join CM_Insvyk as i on i.iplca = z.plca
	where z.KRJA = 1
		and i.IDAIN >= @datumOd and i.IDAIN <= @datumDo
		and i.IVYSE > 6
		and i.IPOIN <> 99
		and z.PSER > 0 
		and z.plca in (select ciskravy from CM_Krava where priznakKU = 1
					union 
						select cistelata from CM_Telata where priznakKu = 1 and cistelata not in (select ciskravy from CM_Krava))

end
go

-- =============================================
-- Author:		Zsolt Tak�cs
-- Create date:	13.12.2018
-- Description:	Generovanie proadovych cisiel pre BLUP.
-- =============================================
CREATE   PROCEDURE [dbo].[PM_BLUP_Ocisluj]
AS  
BEGIN  
	DECLARE @rok varchar(4), @pc int, @maxpc int, @maxpc2 int, @maxpc3 int;

	update PM_BLUP_VSDATA set Pohlavie='1' where Kod_kategorie in (6,7);

	DECLARE cur_roky CURSOR FOR SELECT distinct Rok_narodenia FROM PM_BLUP_VSDATA;
	OPEN cur_roky;
	FETCH NEXT FROM cur_roky INTO @rok;
	WHILE @@FETCH_STATUS = 0  
	BEGIN  
		WITH myUpdate (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia, Usne_cislo, myRowNumber) AS
		( 
			SELECT Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia, Usne_cislo, 
			ROW_NUMBER() OVER(ORDER BY Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, Datum_narodenia, Usne_cislo) As myRowNumber
			FROM PM_BLUP_VSDATA
			WHERE Rok_narodenia=@rok 
		)
		update PM_BLUP_VSDATA set Poradove_cislo = FORMAT(myRowNumber,'00000#') FROM myUpdate
		left join PM_BLUP_VSDATA v on v.Chovatel_kraj=myUpdate.Chovatel_kraj and v.Chovatel_okres=myUpdate.Chovatel_okres and v.Chovatel_podnik=myUpdate.Chovatel_podnik and
		v.Chovatel_chov=myUpdate.Chovatel_chov and v.Prasnica=myUpdate.Prasnica and v.Datum_narodenia=myUpdate.Datum_narodenia and v.Usne_cislo=myUpdate.Usne_cislo;
		FETCH NEXT FROM cur_roky INTO @rok;
	END
	CLOSE cur_roky;  
	DEALLOCATE cur_roky; 

	MERGE INTO PM_BLUP_VSKAN k USING PM_BLUP_VSDATA v
	ON v.Chovatel_kraj=k.Povod_kraj and v.Chovatel_okres=k.Povod_okres and v.Chovatel_podnik=k.Povod_podnik and v.Chovatel_chov=k.Povod_chov and 
	v.Prasnica=k.Povod_matka and v.Datum_narodenia=k.Datum_narodenia and v.Usne_cislo=k.Povod_uscislo and v.Kod_kategorie='6'
	WHEN MATCHED THEN update set k.Rok_narodenia=v.Rok_narodenia, k.Poradove_cislo=v.Poradove_cislo, k.Pohlavie=v.Pohlavie;

	MERGE INTO PM_BLUP_VSPRA p USING PM_BLUP_VSDATA v
	ON v.Chovatel_kraj=p.Povod_kraj and v.Chovatel_okres=p.Povod_okres and v.Chovatel_podnik=p.Povod_podnik and v.Chovatel_chov=p.Povod_chov and 
	v.Prasnica=p.Povod_matka and v.Datum_narodenia=p.Datum_narodenia and v.Usne_cislo=p.Povod_uscislo and v.Kod_kategorie='3'
	WHEN MATCHED THEN update set p.Rok_narodenia=v.Rok_narodenia, p.Poradove_cislo=v.Poradove_cislo, p.Pohlavie=v.Pohlavie;

	DECLARE cur_roky2 CURSOR FOR SELECT distinct Rok_narodenia FROM PM_BLUP_VSKAN;
	OPEN cur_roky2;
	FETCH NEXT FROM cur_roky2 INTO @rok;
	WHILE @@FETCH_STATUS = 0  
	BEGIN  
		select @maxpc=CAST(ISNULL(max(Poradove_cislo), 0) as int) from PM_BLUP_VSKAN where Rok_narodenia=@rok;
		select @maxpc2=CAST(ISNULL(max(Poradove_cislo), 0) as int) from PM_BLUP_VSDATA where Rok_narodenia=@rok;
		IF (@maxpc2 > @maxpc) SELECT @maxpc=@maxpc2;
		WITH myUpdate (Linia_kanca, Register_kanca, myRowNumber) AS
		( 
			SELECT Linia_kanca, Register_kanca, ROW_NUMBER() OVER(ORDER BY Linia_kanca, Register_kanca) As myRowNumber
			FROM PM_BLUP_VSKAN WHERE Rok_narodenia=@rok AND Poradove_cislo='000000'
		)
		update v set Poradove_cislo = FORMAT(@maxpc+myUpdate.myRowNumber,'00000#') FROM PM_BLUP_VSKAN v, myUpdate 
		where v.Linia_kanca=myUpdate.Linia_kanca and v.Register_kanca=myUpdate.Register_kanca;
		FETCH NEXT FROM cur_roky2 INTO @rok;
	END
	CLOSE cur_roky2;  
	DEALLOCATE cur_roky2; 

	DECLARE cur_roky3 CURSOR FOR SELECT distinct Rok_narodenia FROM PM_BLUP_VSPRA;
	OPEN cur_roky3;
	FETCH NEXT FROM cur_roky3 INTO @rok;
	WHILE @@FETCH_STATUS = 0  
	BEGIN  
		select @maxpc=CAST(ISNULL(max(Poradove_cislo), 0) as int) from PM_BLUP_VSPRA where Rok_narodenia=@rok;
		select @maxpc2=CAST(ISNULL(max(Poradove_cislo), 0) as int) from PM_BLUP_VSKAN where Rok_narodenia=@rok;
		select @maxpc3=CAST(ISNULL(max(Poradove_cislo), 0) as int) from PM_BLUP_VSDATA where Rok_narodenia=@rok;
		SELECT @maxpc=(SELECT MAX(v) FROM (VALUES (@maxpc), (@maxpc2), (@maxpc3)) as value(v));
		WITH myUpdate (Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, myRowNumber) AS
		( 
			SELECT Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica, 
			ROW_NUMBER() OVER(ORDER BY Chovatel_kraj, Chovatel_okres, Chovatel_podnik, Chovatel_chov, Prasnica) As myRowNumber
			FROM PM_BLUP_VSPRA WHERE Rok_narodenia=@rok AND Poradove_cislo='000000'
		)
		update v set Poradove_cislo = FORMAT(@maxpc+myUpdate.myRowNumber,'00000#') FROM PM_BLUP_VSPRA v, myUpdate 
		where v.Chovatel_kraj=myUpdate.Chovatel_kraj and v.Chovatel_okres=myUpdate.Chovatel_okres and v.Chovatel_podnik=myUpdate.Chovatel_podnik and
		v.Chovatel_chov=myUpdate.Chovatel_chov and v.Prasnica=myUpdate.Prasnica;
		FETCH NEXT FROM cur_roky3 INTO @rok;
	END
	CLOSE cur_roky3;  
	DEALLOCATE cur_roky3; 
END;
go

-- =============================================
-- Author:		Daniela Pavlaskova
-- Create date: 2018-11-16
-- Description:	ROZLOŽENIE PÔRODOV (V %) V PRIEBEHU ROKA , data pre grafy
-- =============================================
Create PROCEDURE [dbo].[Roc_MPHD_99_porody_cvicne]
	@datumOd date ,
	@datumDo date 
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	delete from Roc_MPHD_Tab_99_porody where rok = year(@datumOd);

	insert into Roc_MPHD_Tab_99_porody (mesiac, pocet, plemeno, pocet_rok, rok) 
    select	mesiac, 
		telataPOmesiacoch.pocet, 
		telataPOmesiacoch.PLEMPRIS as plemeno, 
		zaROK.pocet as pocetZaRok,
		year(@datumOd) as rok
		from (

			select MONTH(telata.DATNAR) as mesiac, COUNT(*) as pocet, ISNULL(plemennyTyp.PLEMPRIS, 'XX') as PLEMPRIS
			from CM_Telata as telata
			left outer join CC_PlemTyp as plemennyTyp on plemennyTyp.TYPC=telata.TYPPLEM
			where telata.DATNAR between @datumOd and @datumDo 
			and telata.PRIZNAKKU = 2

			group by MONTH(telata.DATNAR), plemennyTyp.PLEMPRIS
		) telataPOmesiacoch
		

		left outer join (select  COUNT(*) as pocet, ISNULL(plemennyTyp.PLEMPRIS, 'XX') as PLEMPRIS
			from CM_Telata as telata
			left outer join CC_PlemTyp as plemennyTyp on plemennyTyp.TYPC=telata.TYPPLEM
			where telata.DATNAR between @datumOd and @datumDo 
			and telata.PRIZNAKKU = 2

			group by plemennyTyp.PLEMPRIS) as zaROK on zaROK.PLEMPRIS = telataPOmesiacoch.PLEMPRIS
		where telataPOmesiacoch.PLEMPRIS in ('AA','BA','GL','CH','HE','HL','P','LI','S','SM','OS', 'XX')
		order by telataPOmesiacoch.PLEMPRIS asc
END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_KapMast]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      --[CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      --[CharChov][varchar] (30) null,
	  [KapUst_kod][varchar] (2) null,
	  [KapUst][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		--[CharChov_KOD][varchar] (2) null,
  --      [CharChov][varchar] (30) null
		[KapUst_kod][varchar] (2) null,
		[KapUst][varchar] (30) null
		
	)

----if (@region is null) 
----begin
----	if (len(@chov) = 1)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----			(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----			--and (reg.REGION=@region or @region is null) 
----			and lakt.kraj = @chov
----			and a.PRIZNAK=1	
----			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----				or (Lakt.DATUKNORL >= @datumOd 
----				and Lakt.DATUKNORL <= @datumDo))
----			and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 3)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.okres = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 6)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.podnik = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 9)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.CHOVATEL = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----	end

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		--left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		
----	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		--and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end
---- ELSE
---- begin
---- 	insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(reg.REGION=@region or @region is null)
----				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end

insert into @Laktacie	--moje povodne
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, /*b.KOD, b.NAZOV,*/ 
	 (case when ust.kod in ('1','2') then '2' else ust.KOD end) as KapUst_kod,
	 (case when ust.kod in ('1','2') then ' 11 - 20 kusov' else ust.NAZOV end) as KapUst,
	  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NC_KapUst as ust on ust.KOD = a.KAPMAST
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		--b.KOD as CharChov_KOD,
		--b.NAZOV as CharChov
		--ust.kod as KapUst_kod,
		--ust.NAZOV as KapUst 
		(case when ust.kod in ('1','2') then '2' else ust.KOD end) as KapUst_kod,
		(case when ust.kod in ('1','2') then ' 11 - 20 kusov' else ust.NAZOV end) as KapUst
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_KapUst as ust on ust.KOD = a.KAPMAST
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		--CharChov_KOD,
		--CharChov
		KapUst_kod,
		KapUst 
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ KapUst_kod, KapUst		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
 	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		--CharChov_KOD,
		--CharChov
		KapUst_kod as KapUst_kod,
		KapUst as KapUst
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ KapUst_kod, KapUst		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	----[CharChov_KOD][varchar] (2) null,
 ----   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null

	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		--CharChov_KOD,
		--CharChov
		KapUst_kod as KapUst_kod,
		KapUst as KapUst
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD ,CharChov*/ KapUst_kod, KapUst	--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	--CharChov_KOD as CharChov_KOD,
	--CharChov as Charchov
	KapUst_kod as KapUst_kod,
		KapUst as KapUst
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	----CharChov_KOD as CharChov_KOD,
 ----   CharChov as Charchov
 	KapUst_kod as KapUst_kod,
	KapUst as KapUst
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, /*CharChov_KOD ,CharChov*/ KapUst_kod, KapUst)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2,
   --CharChov_KOD as CharChov_KOD,
   -- CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
--[CharChov_KOD][varchar] (2) null,
--    [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, /*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov 
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov   
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[KapUst_kod][varchar] (2) null,
	[KapUst][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	KapUst_kod as KapUst_kod,
	KapUst as KapUst

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.KapUst_kod, l.KapUst
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

--IF EXISTS(
--SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--WHERE 
--	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--	and DatumOd = @datumOd and DatumDo = @datumDo
--)
--BEGIN
--	DELETE FROM CR_LaktacneZostavy  WHERE 
--	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--	--(chov like @chov+'%' or @chov is null) 
--	and DatumOd = @datumOd and DatumDo = @datumDo
--END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+/*('ChZ'+l.CharChov_KOD)*/ ('KUst'+l.KapUst_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL1.CharChov_KOD=l.CharChov_KOD*/ ZapojL1.KapUst_kod = l.KapUst_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL2.CharChov_KOD=l.CharChov_KOD*/ ZapojL2.KapUst_kod = l.KapUst_kod )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and /*ZapojLCelk.CharChov_KOD=l.CharChov_KOD*/ ZapojLCelk.KapUst_kod=l.KapUst_kod) 
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV1.CharChov_KOD=l.CharChov_KOD*/ LAKV1.KapUst_kod=l.KapUst_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV2.CharChov_KOD=l.CharChov_KOD*/ LAKV2.KapUst_kod=l.KapUst_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKVC.CharChov_KOD=l.CharChov_KOD*/ LAKVC.KapUst_kod=l.KapUst_kod )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*L1.CharChov_KOD=l.CharChov_KOD*/ L1.KapUst_kod=l.KapUst_kod) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and /*L2.CharChov_KOD=l.CharChov_KOD*/ L2.KapUst_kod=l.KapUst_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and /*lCelk.CharChov_KOD=l.CharChov_KOD*/ lCelk.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and /*NL1.CharChov_KOD=l.CharChov_KOD*/ NL1.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and /*NL2.CharChov_KOD=l.CharChov_KOD*/ NL2.KapUst_kod=l.KapUst_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and /*NlCelk.CharChov_KOD=l.CharChov_KOD*/ NlCelk.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and /*ZL1.CharChov_KOD=l.CharChov_KOD*/ ZL1.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and /*ZL2.CharChov_KOD=l.CharChov_KOD*/ ZL2.KapUst_kod=l.KapUst_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and /*ZCelk.CharChov_KOD=l.CharChov_KOD*/ ZCelk.KapUst_kod=l.KapUst_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 


	insert into Roc_MLHD_Tab_1
	 (
	 [oblast] ,[stpec_7] ,[stpec_8],[stpec_9],[stpec_10],[stpec_11],[stpec_12],[stpec_13]  ,[stpec_15] ,[stpec_16] ,[stpec_17],[stpec_18],[stpec_19]
	 ,[stpec_20] ,[stpec_21],[stpec_22],[stpec_23],[stpec_24],[stpec_25] ,[stpec_26],[stpec_27],[stpec_28],[stpec_29],[rok],[Por],[DatumOd],[DatumDo],[datumGenerovania]
	 )
	select 
	  (case when filter = 'SR' then 'SLOVENSKO'
	   when filter = 'SR,Obl1' then 'ZA VÝROBNÚ OBLASŤ 1'
	   when filter = 'SR,Obl2' then 'ZA VÝROBNÚ OBLASŤ 2'
	   when filter = 'SR,ChZ1' then 'ZA ŠĽACHTIT. CHOVY STRAKATÉ'	
	   when filter = 'SR,ChZ2' then 'ZA ŠĽACHTIT. CHOVY PINZGAU'
	   when filter = 'SR,ChZ3' then 'ZA ŠĽACHTIT. CHOVY HOLSTEIN'
	   when filter = 'SR,ChZ5' then 'ZA ŠĽACHTIT. CHOVY BRAUNVIEH'
	   when filter = 'SR,ChZ0' then 'OSTATNÉ CHOVY'
	   when filter = 'SR, ,S01' then 'POĽNOHOSP. DRUŽSTVÁ'
	   when filter = 'SR, ,S02' then 'ŠTÁTNE MAJETKY'
	   when filter = 'SR, ,S03' then 'POĽNOHOSP. ŠKOLY'
	   when filter = 'SR, ,S08' then 'SÚKROMNÝ SEKTOR'
	   when filter = 'SR,KUst2' then 'ZA MAŠTALE DO 20'
	   when filter = 'SR,KUst3' then 'MAŠT. 21-50'
	   when filter = 'SR,KUst4' then 'MAŠT. 51-100'
	   when filter = 'SR,KUst5' then 'MAŠT. 101-220'
	   when filter = 'SR,KUst6' then 'MAŠT. 221-500'
	   when filter = 'SR,KUst7' then 'MAŠT. 501 A VIAC'
	  else ''
	  END  ) as oblast

  , PocLakN1 as stpec_7
      ,LakdniNL1 as stpec_8
      ,MliekNorL1 as stpec_9
      , round((TukNorL1*100)/MliekNorL1,2) as stpec_10
      ,TukNorL1 as stpec_11
      ,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
      ,BielkNorL1 as stpec_13
      --,as stpec_14Den
      --,as stpec_14Mesiac
      ,PocLakN2 as stpec_15
      ,LakDniNL2 as stpec_16
      ,MliekNorL2 as stpec_17
      ,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
	  
      ,TukNorL2 as stpec_19
      ,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
      ,BielkNorL2 as stpec_21
      ,MedziobdCelk as stpec_22
      ,PocLakNcelk as stpec_23      
	  ,LakDniNCelk as stpec_24
      ,MliekNorCelk as stpec_25
      ,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
      ,TukNorCelk as stpec_27
      ,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
      ,BielkNorCelk as stpec_29
      ,datepart (year,datumGenerovania)as rok
     ,(case when filter = 'SR' then '1'
	   when filter = 'SR,Obl1' then '2'
	   when filter = 'SR,Obl2' then '3'
	   when filter = 'SR,ChZ1' then '4'	
	   when filter = 'SR,ChZ2' then '5'
	   when filter = 'SR,ChZ3' then '6'
	   when filter = 'SR,ChZ5' then '7'
	   when filter = 'SR,ChZ0' then '8'
	   when filter = 'SR, ,S01' then '9'
	   when filter = 'SR, ,S02' then '10'
	   when filter = 'SR, ,S03' then '11'
	   when filter = 'SR, ,S08' then '12'
	   when filter = 'SR,KUst2' then '13'
	   when filter = 'SR,KUst3' then '14'
	   when filter = 'SR,KUst4' then '15'
	   when filter = 'SR,KUst5' then '16'
	   when filter = 'SR,KUst6' then '17'
	   when filter = 'SR,KUst7' then '18'
	  else ''
	  END  ) as Por
      ,DatumOd as DatumOd
      ,DatumDo as DatumDo
      ,datumGenerovania as datumGenerovania
	  FROM [plis].[dbo].[CR_LaktacneZostavy] 
	  
	  where DatumOd = @datumOd and datumGenerovania = @datumOd

	  and Filter in ('SR','SR,Obl1','SR,Obl2','SR,ChZ1','SR,ChZ2' ,'SR,ChZ3' ,'SR,ChZ5','SR,ChZ0' ,'SR, ,S01','SR, ,S02','SR, ,S03','SR, ,S08',
	  'SR,KUst2' ,'SR,KUst3' , 'SR,KUst4','SR,KUst5' , 'SR,KUst6','SR,KUst7') 

	  end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Vyber udajov 1.laktacie, 2.lakt. a viac do reportu k laktaciam...stvrtrocna a rocna zostava
 --uplne rozbitie retazca a filtra...na zvaz, sektor, stupenKU, popripade plemeno
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_Oznacenie_retazec_filter]
	@datumOd varchar(10),
	@datumDo varchar(10),
	@vyber varchar(max)=''
as	
begin
declare @chovy table (
		[Filter][varchar](50)null,
		[Oznacenie] [varchar](max) NULL, [DatumOd][date] null, [DatumDo][date] null,[datumGenerovania][date]null,Plem_Zvaz VARCHAR(100)null , Sektor_StupenKU VARCHAR(100)null,
	SR VARCHAR(50)null,
	kraj_nazov VARCHAR(50)null,
	okres_nazov VARCHAR(50)null,
	Region_nazov VARCHAR(70)null,
	podnik_nazov VARCHAR(100)null,
	chov_nazov VARCHAR(50)null,
	obec_nazov VARCHAR(50)null,
	chov_zvaz VARCHAR(100)null,
	sektor_nazov VARCHAR(100)null,
	stupenKU_nazov VARCHAR(100)null,
	[Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,[EkoChov] [varchar] (1) null,
		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,
		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
	 	[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,
		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,
		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,
		[Zmena56Celk] [float](4) NULL,
		[Zmena57Celk] [float](4) NULL,
		[Zmena58Celk] [float](4) NULL,
		[Zmena59Celk] [float](4) NULL,
		[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,
		[Zmena62Celk] [float](4) NULL,
		[ZmenaCelk2Celk] [float](4) NULL
		--[chov_nazov][varchar](50)null,[podnik_nazov,][varchar](50)null,[kraj_nazov,][varchar](50)null,[okres_nazov][varchar](50)null,[obec_nazov][varchar](50)null,
		--[regiom_nazov][varchar](50)null
		)
		
Declare @oznacenie varchar(20) = null
WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        --SELECT @oznacenie		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
        --SELECT @oznacenie
	end
	--if (PATINDEX('%,%',@oznacenie))	>0
	begin
		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,Plem_Zvaz ,
			Sektor_StupenKU ,
			SR ,
			kraj_nazov ,
			okres_nazov,
			Region_nazov,
			podnik_nazov ,
			chov_nazov ,
			obec_nazov ,
			chov_zvaz ,
			sektor_nazov ,
			stupenKU_nazov ,l.Region, l.PlemTyp,l.EkoChov,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			--(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
			--(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
			--(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			--e.NAZOV as region_nazov
		from plis.dbo.CR_LaktacneZostavy as l

 			LEFT outer JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			LEFT outer JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			LEFT outer JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			LEFT outer JOIN NC_REGION e ON (e.REG = l.REGION)
			cross apply  CR_ZostavaLaktacie_RozbitieFiltra2 (@oznacenie) as r-- on r.oznacenie = l.filter

		where (Filter = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo
	end 

end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end 


--		exec CR_ZostavaLaktacie_Oznacenie_plemeno '2015-09-15','2016-05-15','1,ChZ0,S00'

go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 28.10.2016 
-- Description:	Zoznam chovov Kozy
--				12.05.2017 - fix beru sa iba aktivne/'zijuce' chovy
--						   + add ch.TYPZV = '4' pre KOZY
-- =============================================
CREATE PROCEDURE [dbo].[G_aktual_ZoznamChovov]	

AS
BEGIN
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GP_ZoznamChovov]') AND TYPE IN (N'U'))
		DELETE FROM [dbo].GP_ZoznamChovov
		-- drop table [dbo].GP_ZoznamChovov
	ELSE
		CREATE TABLE [dbo].[GP_ZoznamChovov](
			[Chov] [varchar](9) NOT NULL,
			[Nazov] [varchar](25) NULL,
			[StKU] [varchar](5) NULL,
			[PlemSt] [varchar](4) NULL,			
			[UzitZSt] [varchar](30) NULL,
			[PocetKozy] [int] NULL,
			[PocetCapov] [int] NULL,			
			[PocetPotomkov] [int] NULL,			
			[Konzulent] [varchar](30) NULL,			
			[Zootechnik] [varchar](30) NULL,
			VykKU varchar(1) NULL
		) ON [PRIMARY]


	
DECLARE 
		@chovatel as varchar(9),	
		@kraj as varchar(1),
		@okres as varchar(2),
		@podnik as varchar(3),
		@chov as varchar(3),
				
		@STKU as varchar(5),

--		@typ as varchar(4),		
		@pocBah as int,
		@pocBar as int,
		@pocPot as int,
		@zootechnik as varchar(30),
		@konzulent as varchar(30),
		@nazov as varchar(25)

	declare @UzitZSt varchar(30)
	declare @PlemSt varchar(2)
	declare @UzitZam varchar(1)
	declare @VykKu varchar(1)

	declare zviera cursor  for
	SELECT ch.kraj, ch.okres, ch.podnik, ch.chov--, *
	FROM NM_CHOVMAS AS ch
    inner join NM_KODETAIL as mimo on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = mimo.kraj+mimo.okres+mimo.podnik+mimo.chov 
	where ch.ZRUS is null  and DATZRUS is null and ch.TYPZV = '4'
    --where --ch.ZRUS is null --and (mimo.PRIZNAK = '01' or ch.TYPZV = '1') 
	--ch.ZRUS is null  and DATZRUS is null and mimo.VykKu in(1, 3)

	open zviera	
	fetch next from zviera into @kraj, @okres, @podnik, @chov;
	WHILE @@FETCH_STATUS = 0 
		begin
			SET @chovatel = @kraj + @okres + @podnik + @chov;

			SET @nazov = (SELECT NAZOVSKR FROM NM_PODNIK p
							WHERE p.KRAJ = @kraj 
								and p.OKRES = @okres
								and p.PODNIK = @podnik)

	


  -- Uzitkove zameranie stada a plemeno stada z menovky
	(select @UzitZSt = (select popis from [NC_UzitZam] u where u.UZITZST = n.uzitzst),  @PlemSt = substring(plem, 1, 2),
		@STKU = (case when STKU = 2 then 'RCH' 
			  when STKU = 3 then 'ÚCH'
			  when STKU = 1 then 'ŠCH' end),
		@VYKKU = VYKKU
		from NM_KODETAIL n
		where KRAJ = @kraj
			and OKRES = @okres
			and PODNIK = @podnik
			and chov = @chov
	)

	
	--set @UzitZam = (
	--	select UZITZAM 
	--	from SC_Plemena
	--	where KODPL2 = @PlemSt
	--)
	
	----print @UzitZam

	--/* Typ zamerania stada */
	--declare @TypZam varchar(1) = (
	--select 
	--case when (@PlemSt in ('M ', 'AM', 'FM', 'BG', 'RM', 'NC', 'VR', 'OD', 'CH', 'T ', 'R ', 'V ')) then '3'
	--	when @PlemSt in ('AF','VF') then '4'
	--	when @UzitZam = '1' and @UzitZSt = '4' or @UzitZam = '4' then '1'
	--	when @UzitZam = '1' and @UzitZSt <> '4' or @UzitZam = '2' then '2'
	----begin
	--end
	--)




			SET @pocPot = (SELECT count (*) 
							from GP_Kozicky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab in ('GM_Potomok','GM_APotomok') )

			SET @pocBah = (SELECT count (*) 
							from GP_Kozicky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab = 'GM_Koza' )

			SET @pocBar = (SELECT count (*) 
							from GP_Kozicky where chov = @chovatel 
							and datVyr is null and dovod = '0'
							and tab = 'GM_Cap' )

			if (@pocPot is NULL)
				SET @pocPot = 0;		

			if (@pocBah is NULL)
				SET @pocBah = 0;

			if (@pocBar is NULL)
				SET @pocBar = 0;


			--SET @zootechnik = (SELECT top 1 (case when TITULPRED is not null then TITULPRED + ' ' else '' end) + Meno + ' ' + priezvisko + 
			--								(case when TITULZA is not null then ' ' + TITULZA else '' end)
			SET @zootechnik = (SELECT top 1 Priezvisko + ' ' + Meno + (case when TITULPRED is not null then ', ' + TITULPRED else '' end) +
											(case when TITULZA is not null then ' ' + TITULZA else '' end)
	            FROM NM_Kontakt k  LEFT OUTER JOIN		            
		            NM_KODETAIL hd ON (hd.CISZOO = k.id)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)
	            
			SET @konzulent = (SELECT top 1 Priezvisko + ' ' + Meno + (case when TITULPRED is not null then ', ' + TITULPRED else '' end) +
											(case when TITULZA is not null then ' ' + TITULZA else '' end)
	            FROM NM_Kontakt k  LEFT OUTER JOIN		            
		            NM_KODETAIL hd ON (hd.CISKON = k.id)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)


			 if (@chovatel not in (select chov from GP_ZoznamChovov where chov = @chovatel))
			 begin
					insert into GP_ZoznamChovov					
					values ( @chovatel, @nazov, @STKU, @PlemSt, @UzitZSt,  @pocBah, @PocBar, @pocPot, @konzulent, @zootechnik, @VykKu)
			end
			fetch next from zviera into @kraj, @okres, @podnik, @chov;
		end
	close zviera;
	deallocate zviera;




END

--		exec [G_aktual_ZoznamChovov]

--	drop table GP_ZoznamChovov

--	select t.* from GP_ZoznamChovov t order by chov


--INNER JOIN NM_PRACCHOV AS pch  ON pch.KRAJ + pch.OKRES + pch.PODNIK + pch.CHOV = t.Chov
--INNER JOIN aspnetdb.dbo.aspnet_Users AS u 
--INNER JOIN aspnetdb.dbo.User_PRACKU AS up ON u.UserId = up.UserId 
--INNER JOIN NM_PRACKU AS p ON up.IDPRACKU = p.IDPRACKU ON pch.IDPRACKU = p.IDPRACKU 
--            AND u.UserName = 'durech'


go

-- =============================================
-- Author:		Zsolt Tak�cs
-- Create date:	13.12.2018
-- Description:	Vytvorenie vstupnych dat pre BLUP.
-- =============================================
CREATE PROCEDURE [dbo].[PM_BLUP_VytvorVstupy]
AS  
BEGIN  
	truncate table PM_BLUP_VSDATA;
	insert into PM_BLUP_VSDATA select YEAR(Datum_narodenia), '000000', '0', * from View_PM_BLUP_VSDATA;
	truncate table PM_BLUP_VSKAN;
	insert into PM_BLUP_VSKAN select YEAR(Datum_narodenia), '000000', '1',* from View_PM_BLUP_VSKAN;
	truncate table PM_BLUP_VSPRA;
	insert into PM_BLUP_VSPRA select YEAR(Datum_narodenia), '000000', '0',* from View_PM_BLUP_VSPRA;
	exec dbo.PM_BLUP_Ocisluj;
	truncate table PM_BLUP_VUKANCE;
	insert into PM_BLUP_VUKANCE select * from View_PM_BLUP_VUKANCE;
	truncate table PM_BLUP_VUPRASN;
	insert into PM_BLUP_VUPRASN select * from View_PM_BLUP_VUPRASN;
	truncate table PM_BLUP_PRASPOH;
	insert into PM_BLUP_PRASPOH select * from View_PM_BLUP_PRASPOH_RN;
	truncate table PM_BLUP_RESUB1;
	insert into PM_BLUP_RESUB1 select * from View_PM_BLUP_RESUB1;
	truncate table PM_BLUP_CDATA;
	insert into PM_BLUP_CDATA select * from View_PM_BLUP_CDATA;
	truncate table PM_BLUP_BLDAT;
	insert into PM_BLUP_BLDAT select * from View_PM_BLUP_BLDAT;
	truncate table PM_BLUP_BLPED;
	insert into PM_BLUP_BLPED select * from View_PM_BLUP_BLPED;
	truncate table PM_BLUP_TBLDAT;
	insert into PM_BLUP_TBLDAT select * from View_PM_BLUP_TBLDAT;
	truncate table PM_BLUP_TBLPED;
	insert into PM_BLUP_TBLPED select * from View_PM_BLUP_TBLPED;
	update PM_BLUP_CONFIG set Hodnota=FORMAT(GETDATE(), 'dd.MM.yyyy HH:mm:ss') where Nazov='datumVytvoreniaVstupov'
END;
go


-- =============================================
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch, ktore boli spracovane v danom mesiaci.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_Stvrtrok_z_mes]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

DECLARE @pocetvymaz int
SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
DELETE FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)

----DECLARE @idr bigint,
	DECLARE @cistelata varchar(14)

----	 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
----		FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY 
----		WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

		--SELECT * FROM #idrtable
		
	DECLARE @counter int
	SET @counter = 0;

		DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(distinct CISTELATA) FROM dbo.CM_Vazenia v-- LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR)
								WHERE v.CHOVVAZ = @chov --sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)

	
	IF ( SELECT COUNT(distinct v.CISTELATA) FROM dbo.CM_Vazenia v 
							--LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) /*(v.SPRACINSERT = sp.IDR ) */
							left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
								WHERE v.CHOVVAZ = @chov --sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac 
										and t.DOVVYR is null and t.DATVYR is null
										and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
										and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA) 
									 ) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM dbo.CM_Vazenia v
						--LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR )
						left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
						WHERE  v.CHOVVAZ = @chov --sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
									and t.DOVVYR is null and t.DATVYR is null
									and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and t.DOVVYR is null and t.DATVYR is null
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

			INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1 then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1 - @h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360 - @h1 ) * 1000 / NULLIF(@dp, 0)), @d1) 
			
			--print '@h1'
			--print @h1 
			--print '@h2n' 
			--print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor
			
			
			--CREATE TABLE CR_TMHD_pripustenie_Stvrtr_z_mes
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int,
			--	rokPripus int
			--	)
			
			insert into CR_TMHD_pripustenie_Stvrtr_z_mes
				select
					cistelata,
					chov,
					datnar,
					datvaz1 , 
					hmot1 ,
					rp1 ,
					datvaz2, 
					hmot2 ,
					rp2 ,
					dp ,
					DatPrip1 ,
					DatPrip2 ,
					datPr ,
					datPlanPripust ,
					ZnakPripus ,
					MesiacPripusF,
					rok , 
					mesiac ,
					generovane , 
				(case when hmot2 > 360 then DATEPART(MONTH,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360  and DatPrip1 <= DatPrip2 then DATEPART(MONTH,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as mesiacPripus,
				
				(case when hmot2 > 360  then DATEPART(YEAR,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360 and DatPrip1 <= DatPrip2 then DATEPART(YEAR,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as rokPripus
			
				from #abc1 
			
			
end
end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 03.8.2011
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 
-- =============================================
create PROCEDURE [dbo].[C_aktual_plem_potomok_stare]
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) output,
	@KR1_P [decimal](5,2) output,
	@PL2_P [varchar](2) output,
	@KR2_P [decimal](5,2) output,
	@PL3_P [varchar](2) output,
	@KR3_P [decimal](5,2) output,
	@PL4_P [varchar](2) output,
	@KR4_P [decimal](5,2) output,
	@PL5_P [varchar](2) output

AS
BEGIN
	declare @podiely table 
	(
		PL [varchar](2),
		KR [decimal](5,2)	
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2)
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end
	
	-- scitanie plemien a uzporiadanie od najvacsieho
	insert @podiely_usp 
	select PL, sum(isnull(KR, 0)) from @podiely
	GROUP by PL
	order by SUM(isnull(KR, 0)) desc
	
	set @zvPlem = (select 0)
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S 
	--			  < 6 %  cudzieho plemena
	if (select top (1) PL from @podiely_usp) = 'S'
		set @zvPlem = (select 12.5)
	else
		set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		update @podiely_usp
		set KR = 0, PL = null
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	
	
	
	return (0)
	
END


go

CREATE procedure [dbo].[CR_KUMP_kravy_1_sumar_skuska]
    
	@CHOV varchar(9) = '',
	@rok int,
	@mesiac int	
--	@Vytlacil varchar(10) = null
	
as
begin

DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHK_MES_sumar  WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHK_MES_sumar WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac
	END

--Create table CR_KUMP_CHK_MES_sumar 
--		(
--		chov varchar(9),
--		krav_spolu int,
--		Nad420odOtel int,
--		vek_krav_rok varchar(10),
--		vek_1_otel varchar(10),
--		medziobdobie varchar(5),
--		porLakt varchar(3),
--		tel_nar varchar(10),
--		tel_mrt_nar varchar(3),
--		tel_zmetanie varchar(3),
--		dni_zp120 varchar(6),
--		dni_zp210 varchar(6),
--		dni_zp365 varchar(6),
--		dni_zp500 varchar(10),
--		rok_tel_nar varchar(10),
--		rok_tel_mrt_nar varchar(3),
--		rok_tel_zmetanie varchar(3),
--		CUK_medziobodie varchar(5),
--		CUK_tel_nar varchar(10),
--		CUK_tel_mrt_nar varchar(3),
--		CUK_tel_zmetanie varchar(3),
--		CUK_120dni varchar(10),
--		CUK_210dni varchar(10),
--		CUK_365dni varchar(10),
--		CUK_500dni varchar(10),
--		mesiac int,
--		rok int, 
--		generovane date,
--		standart_potomok_ZN int
--		)

-- vek pri prvom oteleni
	declare  @1otel table
		(
		[chov] varchar(9),
		[rok] int,
		[mesiac] int,
		[vek_1_otel] varchar(9) null
		)

		insert into @1otel 
			select @chov, @rok, @mesiac,
				(convert(varchar(20), round(convert(int,(AVG(vek_krav_vdnoch)/30.42)),0))+' / '+convert(varchar(20), ROUND(convert(int,(AVG(vek_krav_vdnoch) % 30.42)), 0))) as vek_1_otel
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
						and t.rok=@rok 
						and t.mesiac=@mesiac
						and krav_porlakt=1
		--select * from @1otel

--vek krav v rokoch
	declare  @vekKrav table
			(
			[vek_krav] decimal(5, 2)
			)
			insert into @vekKrav
				select 
				 round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE())))*1.0/365, 2) as vek_krav
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @vekKrav

--priemerne poradie laktacie na chove
	declare @porlakt table
			(
				[porlakt] decimal(3, 1)
			)
			insert into @porlakt
				select round(AVG(krav_porlakt*1.00), 1) as porlakt
			from CR_KUMP_CHK_MES_1 t 
				where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @porlakt

--medziobdobie
	declare @kravy table
		(
			[CISKRAVY] varchar(14)
			,[chov] varchar(9)
			,[rok] int
			,[mesiac] int
			,[tela1] date
			,[telaX]date
			,[CUK_medziobd_pocetDni] int
			,[CUK_medziobd_pocLakt] int
			,[mesiac_medziobd] int
		)
		insert into @kravy
			select distinct k.CISKRAVY, k.CHOVATEL, k.rok, k.mesiac,
			(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR) as tela1,
			(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR)as telaX,
			datediff(DAY,(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR),
					(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR )) as CUK_medziobd_pocetDni,
			(select count(distinct DATNAR) from CM_Telata as t where t.MATKA = k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR ) as CUK_medziobd_pocLakt,
			m.medziobd as mesiac_medziobd

		from CR_KUMP_CHK_MES_1 as k
				left outer join CM_Telata as t on t.MATKA=k.CISKRAVY
				left outer join CP_MedziObdMesove as m on k.CISKRAVY = m.kravcislo and k.krav_porlakt = m.porpreblak
						where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						and k.krav_porlakt>'1'
		--select * from @kravy

--vahy krav za obdobia
	declare @vahy_kravy table
		(
			[CISKRAVY] varchar(14),
			[CISTELATA] varchar(14),
			[chovK] varchar(9),
			[chovT] varchar(9),
			[pohl] varchar(3),
			[rok] int,
			[mesiac] int,
			[vaha_120] int,
			[vaha_210] int,
			[vaha_365] int,
			[vaha_500] int,
			[datnar] date
		)
		insert into @vahy_kravy
		select  k.CISKRAVY,t.cistelata, k.CHOVATEL,t.CHOVATEL,t.POHLAVIE, k.rok, k.mesiac,
					
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '120' and k.DOVVYR is null and k.DATVYR is null  and v.ZIVPRIR >0  ORDER BY v.DATVAZ desc) AS vaha_120,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '210' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_210,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '365' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_365,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '500' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_500,
					t.DATNAR
		from CR_KUMP_CHK_MES_1 as k
			LEFT JOIN CM_Telata as t on t.MATKA=k.CISKRAVY and t.CHOVATEL=k.CHOVATEL and t.CHOVNAR=k.CHOVATEL
			where k.CHOVATEL=@CHOV
					and k.mesiac=@mesiac
					and k.rok=@rok
					and k.DOVVYR is null and k.DATVYR is null


	--select * from  @vahy_kravy

	declare @CUK_vahy_kravy table
		(
			[CUK_vaha_120] varchar(4),
			[CUK_vaha_210] varchar(4),
			[CUK_vaha_365] varchar(4),
			[CUK_vaha_500] varchar(4)
		)
		insert into @CUK_vahy_kravy
			select AVG(vaha_120) as CUK_vaha_120,
			AVG(vaha_210) as CUK_vaha_210,
			AVG(vaha_365) as CUK_vaha_365,
			AVG(vaha_500) as CUK_vaha_500
		from @vahy_kravy
		--select * from  @CUK_vahy_kravy
			
--CUK pocet potomkov za cely zivot vsetkych krav v chove 	
	declare @CUK_potomok table
		(
			 [CUK_ZN_potomok] varchar(10)
			,[CUK_MN_potomok] varchar(3)
			,[CUK_ZM_potomok] varchar(3)
		)
		insert into @CUK_potomok
			select distinct  (select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY where
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok
																												and t.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as CUK_ZN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																												and t.POHLAVIE in('16','61','62','63')) as CUK_MN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																											and t.POHLAVIE in('71')) as CUK_ZM_potomok
		from CR_KUMP_CHK_MES_1 as k 
			 where k.CHOVATEL=@chov 
				and k.rok=@rok 
				and k.mesiac=@mesiac
	--select * from @CUK_potomok

	declare @standartPotomok table
		(
		[potomok_standart] int
		)
		insert into @standartPotomok
		select DATEDIFF(day,(select DATEADD(MONTH,32,l.DATNAR) from CM_Krava as l where l.CISKRAVY=k.CISKRAVY),getdate())as potomok_standart
		 from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						--and k.krav_porlakt>'1'

		--select * from @standartPotomok



	--Declare @KUMPKRAVY table
	--	(
	--	chov varchar(9),
	--	krav_spolu int,
	--	Nad420odOtel int,
	--	vek_krav_rok varchar(10),
	--	vek_1_otel varchar(10),
	--	medziobdobie varchar(5),
	--	porLakt varchar(3),
	--	tel_nar varchar(10),
	--	tel_mrt_nar varchar(3),
	--	tel_zmetanie varchar(3),
	--	dni_zp120 varchar(6),
	--	dni_zp210 varchar(6),
	--	dni_zp365 varchar(6),
	--	dni_zp500 varchar(10),
	--	rok_tel_nar varchar(10),
	--	rok_tel_mrt_nar varchar(3),
	--	rok_tel_zmetanie varchar(3),
	--	CUK_medziobodie varchar(5),
	--	CUK_tel_nar varchar(10),
	--	CUK_tel_mrt_nar varchar(3),
	--	CUK_tel_zmetanie varchar(3),
	--	CUK_120dni varchar(10),
	--	CUK_210dni varchar(10),
	--	CUK_365dni varchar(10),
	--	CUK_500dni varchar(10),
	--	mesiac int,
	--	rok int, 
	--	generovane date,
	--	standart_potomok_ZN int
	--	)

 /*Insert into CR_KUMP_CHK_MES_sumar 
 		(chov,
		krav_spolu,
		krav_vyr,
		Nad420odOtel,
		vek_krav_rok,
		vek_1_otel,
		medziobdobie,
		porLakt,
		tel_nar,
		tel_mrt_nar,
		tel_zmetanie,
		dni_zp120,
		dni_zp210,
		dni_zp365,
		dni_zp500,
		rok_tel_nar,
		rok_tel_mrt_nar,
		rok_tel_zmetanie,
		CUK_medziobodie,
		CUK_tel_nar,--( CUK_ZN_potomok0,
		CUK_tel_mrt_nar,
		CUK_tel_zmetanie,
		CUK_120dni,
		CUK_210dni,
		CUK_365dni,
		CUK_500dni,
		mesiac,
		rok, 
		generovane,
		standart_potomok_ZN 
		 )*/

	select @CHOV as chov,
		count(distinct t.CISKRAVY) as krav_spolu,
		(select SUM(case when znak_vyr = 'V' then 1 else 0 end)from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac) as krav_vyr,
		
		(select SUM(case when krav_dniodot > 420 then 1 else 0 end) from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac and DOVVYR is null and DATVYR is null) as Nad420odOtel,
				
		convert(varchar(10),round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE()))*1.0/365), 2)) as vek_krav_rok,
		
		(select (convert(varchar, round((AVG(vek_krav_vdnoch * 1.00)/30.42), 0)) +' / '+ convert(varchar, ROUND((AVG(vek_krav_vdnoch * 1.00) % 30.42), 0)))
						from CR_KUMP_CHK_MES_1 t where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac	and krav_porlakt=1 and DOVVYR is null and DATVYR is null) as vek_1_otel,
		 cast(avg(kravy.mesiac_medziobd) as varchar(5)) as medziobdobie,
		 cast(round(AVG(t.krav_porlakt*1.00),1) as varchar(3)) as porlakt,
		 (select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV 
																		and k.mesiac=@mesiac and k.rok=@rok
																		and datepart(year,k.tel_datnar) = @rok
																		and datepart(MONTH,k.tel_datnar) = @mesiac
																		and k.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) 
																										as tel_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
																and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('16','61','62','63')) as tel_mrt_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 												and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('71'))				as tel_zmetanie,
		(select cast(AVG(k.tel_zp120) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='120'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp120,
	
		(select cast(AVG(k.tel_zp210) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='210'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp210,
		
		(select cast(AVG(k.tel_zp365) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='365'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp365,
		
		(select cast(AVG(k.tel_zp500) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='500'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp500,
		
		cast(sum(case when t.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_nar, 
		cast(sum(case when t.tel_pohl in('16','61','62','63')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_mrt_nar, 
		
		cast(sum(case when t.tel_pohl='71'
								and datepart(year,t.tel_datnar) = @rok
								and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_zmetanie,
	
		cast(sum(convert(int,kravy.CUK_medziobd_pocetDni))/sum (convert(int,kravy.CUK_medziobd_pocLakt)) as varchar) as CUK_medziobodie,
		
		cast((select distinct count(t1.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
											left outer join CM_Telata as t1 on t1.MATKA=k.CISKRAVY  
													where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok
														and k.DOVVYR is null and k.DATVYR is null
														and t1.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as varchar)
																										as  CUK_tel_nar,--CUK_ZN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('16','61','62','63')) as varchar)
																				as CUK_tel_mrt_nar, --CUK_MN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('71')) as varchar)
																				 as CUK_tel_zmetanie, --CUK_ZM_potomok
			cast(avg(v.vaha_120 * 1.00) as varchar) as CUK_120dni,
			cast(avg(v.vaha_210 * 1.00) as varchar) as CUK_210dni,
			cast(avg(v.vaha_365 * 1.00) as varchar) as CUK_365dni,
			--count(*) as CUK_500dni,
			cast(sum(v.vaha_500 * 1.00)/count(v.vaha_500 * 1.00) as varchar) as CUK_500dni,
			--AVG(convert(int,v.vaha_210)) as CUK_210dni,
			--AVG(convert(int,v.vaha_365)) as CUK_365dni,
			--AVG(convert(int,v.vaha_500)) as CUK_500dni,
			
		 @mesiac, 
		 @rok, 
		 GETDATE() as generovane,
		 (select sum(potomok_standart)/380 from @standartPotomok) as standart_potomok_ZN

 from CR_KUMP_CHK_MES_1 as t 
 left outer join @vahy_kravy as v on v.CISKRAVY = t.ciskravy
 left outer join @kravy as kravy on kravy.CISKRAVY = t.ciskravy
 where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac and t.DOVVYR is null and t.DATVYR is null

--exec [CR_KUMP_kravy_1_sumar_skuska] '712705711', 2017, 10;
 end
go


/***masova rocenka - priemerne pocty nar. teliat na plemennika 
Masova rocenka 2017 - od str.6 ....vypocitane na zaklade tab Roc_MPHD_9 zo str.36 **/
 CREATE procedure [dbo].[Roc_MPHD_9_plemTYP]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_9_plemTYP where rok = DATEPART (year,@datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

--create table Roc_MPHD_Tab_9
--(
--prir_byk int,
--ins_byk int,
--nezn_byk int,
--prir_tela int,
--ins_tela int,
--nezn_tela int,
--prir_priem float,
--ins_priem float,
--nezn_priem float,
--rok int
--)


declare @telata_plem table
		(
		cistelata varchar(14),
		pohlavie varchar(2),
		typplem varchar(3),
		plemeno varchar(9),
		ouc varchar(14),
		znak_Ins varchar (1)
		)

	insert into @telata_plem 
	select t.CISTELATA, t.POHLAVIE, t.TYPPLEM,
		case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when t.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when t.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when t.TYPPLEM = '131' then 'Gal'
				when t.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when t.TYPPLEM = '151' then 'High'
				when t.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when t.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when t.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when t.TYPPLEM in ('51','53','54') then 'Pin'
				when t.TYPPLEM in ('11','13','14') then 'Slst'
		end as plemeno,
	/***povodne***/
		--case when t.TYPPLEM in ('111','112','113','114','115') then 'AA'
		--	when t.TYPPLEM in ('121','122','123','124','125') then 'BdA'
		--	when t.TYPPLEM = '131' then 'Gal'
		--	when t.TYPPLEM = '151' then 'High'
		--	when t.TYPPLEM in ('161','162','163','164','165') then 'Char'
		--	when t.TYPPLEM in ('171','172','173','174','175') then 'Lim'
		--	when t.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
		--	when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
		--	when t.TYPPLEM in ('51','53','54') then 'Pin'
		--	when t.TYPPLEM in ('11','13','14') then 'Slst'
		--end as plemeno, 
		t.OUC, b.BB_INSEM
	 from CM_Telata as t
	 left outer join CM_Byci as b on b.USCISLO = t.OUC
	 where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo
		and t.PRIZNAKKU = '2'
		and t.TYPPLEM in (--'101','102','103','104','105',	---- BBM
							'111','112','113','114','115',		---- AA
							'121','122','123','124','125',		---- BdA
							'131',								---- Gal
							'141','142','143','144','145',		---- Hem
							'151',								---- High
							'161','162','163','164','165',		---- Char
							'171','172','173','174','175',		---- Lim
							--'181',							---- SDM
							'201','202','203','204','205',		---- Sim_maso
							--'191','192','193','194','195',	---- Piem
							'51','53','54',						---- Pin
							'11','13','14')						---- Slst'


declare @insem_telata table
		(
		plemeno varchar(9),
		pocet_insem int
		)
insert @insem_telata
 select plemeno, count(*) 
			from @telata_plem as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where  b.BB_INSEM = 'I' group by t.plemeno
--select * from @insem_telata


declare @prir_tela table
		(
		plemeno varchar(9),
		pocet_prir int
		)
 insert @prir_tela
	select plemeno, count(*) 
			from @telata_plem as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where b.BB_INSEM = '-'
					group by plemeno

--select * from @prir_tela

declare @nezn_tela table
		(
		plemeno varchar(9),
		pocet_nezn int
		)
insert @nezn_tela
	select plemeno, count(*) 
			from @telata_plem as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where b.BB_INSEM is null 
				group by plemeno
--select * from @nezn_tela


declare @byk table 
(
 uscislo varchar(14),
 znak_Ins varchar (1), 
 plemeno varchar (9)
)
insert @byk
select distinct ouc, znak_Ins,plemeno
			 from  @telata_plem 
					
--select distinct OUC from @telata_plem where plemeno = 'AA'					
									
declare @insem_byk table
		(
		plemeno varchar(9),
		pocet_insem_B int
		)  
insert @insem_byk 
	select plemeno,count(*) 
		from  @byk
		where znak_Ins = 'I'
		group by plemeno
--select * from @insem_byk

declare @prir_byk table
		(
		plemeno varchar(9),
		pocet_prir_B int
		)  
insert  @prir_byk 
	select plemeno, count(*) 
		from @byk 
			where znak_Ins = '-'
			group by plemeno
--select * from @prir_byk

--declare @nezn_byk table
--		(
--		plemeno varchar(9),
--		pocet_nezn_B int
--		)  
--insert @nezn_byk 
--	select plemeno, count(*) 
--	from @byk 
--		where znak_Ins is null
--		group by plemeno
--select * from @nezn_byk




insert into Roc_MPHD_Tab_9_plemTYP
(plemeno,prir_byk, ins_byk, nezn_byk, prir_tela,ins_tela ,nezn_tela ,prir_priem ,ins_priem ,nezn_priem ,rok )

select distinct t.plemeno as plemeno, 
	pb.pocet_prir_B as prir_byk, 
	ib.pocet_insem_B as ins_byk,
	'' as nezn_byk,
	pt.pocet_prir as prir_tela,
	it.pocet_insem as ins_tela ,
	nt.pocet_nezn as nezn_tela ,
	pt.pocet_prir / pb.pocet_prir_B as  prir_priem ,
	it.pocet_insem / ib.pocet_insem_B as  ins_priem ,
	'' as nezn_priem ,
	datepart (YEAR, @datumOd) as rok
	from @telata_plem as t
	left outer join @prir_tela as pt on pt.plemeno = t.plemeno
	left outer join @nezn_tela as nt on nt.plemeno = t.plemeno
	left outer join @insem_telata as it on it.plemeno = t.plemeno
	left outer join @insem_byk as ib on ib.plemeno = t.plemeno
	left outer join @prir_byk as pb on pb.plemeno = t.plemeno
	

--select @prir_tela/ @prir_byk as priemer


end
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 19.1.2015
-- Description:	Vytvorenie tabulky Paternita_All pre rychlejsie pracovanie s Paternitou
-- =============================================
CREATE PROCEDURE [dbo].[C_migracia_Paternita_CHOV]
	@ParChov varchar(9)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;	

    -- Insert statements for procedure here
	
	-- substitucia parametrov kvoli zrychleniu selectu
	declare @ciskravy varchar(14) = ''--'FR005813607840'
	declare @cistestu varchar(10) = ''--'0549/33'
	declare @choplis bit = 'false'
	declare @chmplis bit = 'false'
	declare @chpatern bit = 'false'
	declare @chov varchar(9) = isnull(@ParChov, '')
	declare @vsetkychovy bit = (select case when @ParChov is null then 'true' else 'false' end)

	declare @_ciskravy varchar (256) = ''
	declare @_cisbyka varchar (256) = ''
	declare @_chmplis varchar (256) = ''
	declare @_chmplis_byk varchar (256) = ''
	declare @_chpatern varchar (256) = ''
	declare @_vsetkychovy varchar (256) = ''
	declare @_vsetkychovy_t varchar (256) = ''
	declare @_cistestu varchar (256) = ''

	--declare @_select varchar (8000)
	declare @_select1 varchar (3078)
	declare @_select2 varchar (3078)
	declare @_select3 varchar (3078)
	declare @_select4 varchar (3078)
	declare @_select5 varchar (2048)
	declare @_select6 varchar (2048)

	IF @ciskravy != '' BEGIN SET @_ciskravy = '(p.KRAVA LIKE ''%' + @ciskravy + '%'') AND ' 
							 SET @_cisbyka = '(p.UC LIKE ''%' + @ciskravy + '%'') AND ' 
					 END
	IF @chmplis != 'false' BEGIN SET @_chmplis = 'AND (p.M != k.MA)'
								SET @_chmplis_byk = 'AND (p.M != b.MATKA)'
					 END
	IF @chpatern != 'false' BEGIN SET @_chpatern = 'AND ((pv.O_suhlasi = 0) or (pv.M_suhlasi = 0))' END
	IF @chov != '' BEGIN SET @_vsetkychovy = 'AND (CHOVATEL = ''' + @chov + ''')' 
						SET @_vsetkychovy_t = 'AND (t.CHOVATEL = ''' + @chov + ''')'END
	IF @cistestu != '' BEGIN SET @_cistestu = 'AND (p.CROZB = SUBSTRING(''' + @cistestu + ''', 1, 4) AND p.CRAD = SUBSTRING(''' + @cistestu + ''', 6, 2))' END


	SET @_select1 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    CM_Krava AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISKRAVY = SUBSTRING(p.KRAVA, 1, 14) LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy + 
	' k.ciskravy IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu

	SET @_select2 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN b.OTUSCIS END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT LIN FROM dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     CM_Byci AS b RIGHT OUTER JOIN
		  CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.USCISLO IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu

	SET @_select3 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OUC END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MATKA != p.M THEN k.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    CM_Telata AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISTELATA = p.KRAVA LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy + 
	' k.CISTELATA IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT CISKRAVY FROM CM_Krava WHERE CISKRAVY = CISTELATA) IS NULL'


	SET @_select4 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN b.OUC END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN b.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     CM_Telata AS b RIGHT OUTER JOIN
		  CM_Paternita_Byky AS p ON b.CISTELATA = p.UC  LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.CISTELATA IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT bb.USCISLO FROM CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL'


	SET @_select5 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT	
	FROM    CM_Krava AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			CM_Telata AS t ON t.CISTELATA = p.KRAVA 
	WHERE '
	+ @_ciskravy + 
	' (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy_t
	+ @_cistestu
	+ 'AND (k.ciskravy IS NULL AND t.cistelata is NULL)'


	SET @_select6 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT
	FROM     CM_Byci AS b RIGHT OUTER JOIN
			CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			  CM_Telata AS t ON t.CISTELATA = p.UC
	WHERE '
	+ @_cisbyka + 
	' (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy_t
	+ @_cistestu
	+ 'AND (b.USCISLO IS NULL AND t.cistelata IS NULL)'

	--AK EXISTUJ, zmaz tabulku
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'CM_Paternita_All') AND TYPE IN (N'U'))
	begin
		Delete from CM_Paternita_All where CHOVATEL = @ParChov
		
		--Vytvorenie a naplnenie novej tabulky
		exec ('	
			INSERT INTO CM_Paternita_All  
				   (POHL, USCISLO, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
				   M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA, ZOOT)		
			SELECT POHL, USCISLO, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
				   M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA, ZOOT 
			FROM
			('+ @_select1 + ' UNION ' + @_select2 + ' UNION ' + @_select3 + ' UNION ' + @_select4 + ' UNION ' + @_select5 + ' UNION ' + @_select6 + 
			') as s	')

	--exec (@_select)
	end
END

go

CREATE procedure [dbo].[Rocenka_KO_Tab_PrirSt]
   
	@rok varchar(4)
	
	
	
	
	
as
begin

	
	select * --,p.NAZOVD
	from dbo.GP_Rocenka_PrirSt as z
	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
		where  
	  z.Rok= @rok 
	 end
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Vyber udajov 1.laktacie, 2.lakt. a viac do reportu k laktaciam...stvrtrocna a rocna zostava
 --uplne rozbitie retazca a filtra...na zvaz, sektor, stupenKU, popripade plemeno
-- =============================================
Create procedure [dbo].[CR_ZostavaLaktacie_Oznacenie_retazec_plemTyp]
	@datumOd date,
	@datumDo date,
	@vyber varchar(max)=''
as	
begin
declare @chovy table (
		[Filter][varchar](50)null,
		[Oznacenie] [varchar](max) NULL, [DatumOd][date] null, [DatumDo][date] null,[datumGenerovania][date]null,Plem_Zvaz VARCHAR(50)null , Sektor_StupenKU VARCHAR(50)null,
	SR VARCHAR(50)null,
	kraj_nazov VARCHAR(50)null,
	okres_nazov VARCHAR(50)null,
	Region_nazov VARCHAR(50)null,
	podnik_nazov VARCHAR(50)null,
	chov_nazov VARCHAR(50)null,
	obec_nazov VARCHAR(50)null,
	chov_zvaz VARCHAR(50)null,
	sektor_nazov VARCHAR(50)null,
	stupenKU_nazov VARCHAR(50)null,
	[Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,
		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,
		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
	 	[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,
		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,
		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,
		[Zmena56Celk] [float](4) NULL,
		[Zmena57Celk] [float](4) NULL,
		[Zmena58Celk] [float](4) NULL,
		[Zmena59Celk] [float](4) NULL,
		[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,
		[Zmena62Celk] [float](4) NULL,
		[ZmenaCelk2Celk] [float](4) NULL
		--[chov_nazov][varchar](50)null,[podnik_nazov,][varchar](50)null,[kraj_nazov,][varchar](50)null,[okres_nazov][varchar](50)null,[obec_nazov][varchar](50)null,
		--[regiom_nazov][varchar](50)null
		)
		
Declare @oznacenie varchar(20) = null
WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        --SELECT @oznacenie		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
        --SELECT @oznacenie
	end
	if (PATINDEX('%,%',@oznacenie))	>0
	begin
		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,Plem_Zvaz ,
			Sektor_StupenKU ,
			SR ,
			kraj_nazov ,
			okres_nazov,
			Region_nazov,
			podnik_nazov ,
			chov_nazov ,
			obec_nazov ,
			chov_zvaz ,
			sektor_nazov ,
			stupenKU_nazov ,Region, l.PlemTyp,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			--(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
			--(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
			--(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			--(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			--e.NAZOV as region_nazov
		from plis.dbo.CR_LaktacneZostavy as l

 			LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			--LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
			LEFT JOIN NC_REGION e ON (e.REG = l.REGION)
			--LEFT outer JOIN --cross apply 
			cross apply  CR_ZostavaLaktacie_RozbitieFiltra2 (@oznacenie) as r-- on r.oznacenie = l.filter

		where (Filter = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo
	end 

	else 

	begin


		insert @chovy
		select distinct Filter
			,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,null as Plem_Zvaz ,
			null as Sektor_StupenKU ,
			null as SR ,
			(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
	
			(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
			e.NAZOV as region_nazov,
			(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
			(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
			(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
			null as chov_zvaz ,
			null as sektor_nazov ,
			null as stupenKU_nazov ,
			l.Region, l.PlemTyp,
			PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
			PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
			PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
			VyrZootechCelk, VyrZdravDovCelk,
			Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
			Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
			Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
			Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
			Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
			Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
			Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
			Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
			Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
			Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
			Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
			Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
			Zmena62Celk,
			ZmenaCelk2Celk	
	
		from plis.dbo.CR_LaktacneZostavy as l

 			LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
			LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
			LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
			LEFT JOIN NC_REGION e ON (e.REG = l.REGION)
			--LEFT outer JOIN --cross apply 
	

		where ((Oznacenie = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo and PlemTyp is not null) or ((Oznacenie=Filter and Oznacenie = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo and PlemTyp is null)

	end
end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end 


--		CR_ZostavaLaktacie_Oznacenie_plemeno '2015-09-15','2016-05-15','1,ChZ0,S00'

go

CREATE PROCEDURE [dbo].[GetCischovu_Pager]
		 @SearchTerm VARCHAR(100) = ''
		,@searchRok INT
		,@searchMesiac INT
		,@PageIndex INT = 1
		,@PageSize INT = 20
		,@RecordCount INT OUTPUT
AS
BEGIN
     
	 SET NOCOUNT ON;
	 
	 IF OBJECT_ID('tempdb..#Results') IS NOT NULL
			DROP TABLE #Results
	 
     SELECT
	 ROW_NUMBER() OVER (ORDER BY a.chovatel ASC) AS RowNumber,
      
	 b.NAZOV AS nazov, b.KRAJ+' '+b.OKRES+' '+b.PODNIK AS NM_chov, a.chovatel, b.OBEC AS obec, a.rok, a.mesiac, a.dekada
	 INTO #Results
	 FROM plis.dbo.CR_KUHD_MesUzavCH_1x  a
 	 INNER JOIN plis.dbo.NM_PODNIK b ON (LEFT(a.chovatel,6) = (b.KRAJ+b.OKRES+b.PODNIK))
	 WHERE b.nazov LIKE '%' + @SearchTerm + '%' AND a.rok = @searchRok AND a.mesiac = @searchMesiac
			OR a.chovatel LIKE @SearchTerm + '%'
			OR b.OBEC LIKE @SearchTerm + '%'
			OR @SearchTerm = ''

     SELECT @RecordCount = COUNT(*)
     FROM #Results
          
     SELECT * FROM #Results
     WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    
     DROP TABLE #Results
END
go


CREATE PROCEDURE [dbo].[CR_KUHD_mesacne_backup]
		@chov VARCHAR(9) ,
		@rok INT ,
		@mesiac INT,
		@dekada INT

AS

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE, @minusrok2 DATE, @minusrok3 DATE

-- Mesacna zostava KUHD mlieko
-- vstupne parametre: chov, rok, mesiac, dekada

-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc


--			1.1: 29.01.2016, doplnenie stlpcov, smerodajnej ochylky podla FANDu
--			1.2: 2.2.2016, doplnenie stlpcov MKO1KSL1, MKO1MLL1, MKO12KSL1, MKO12MLL1
--			1.3: 2.2.2016, doplnenie stlpcov MLIEKOPRIEMERZL1, MLIEKOPRIEMERKL1
--			1.4: 3.3.2016, doplnenie RKO12KS, zmeny vypoctov podla FAND
--			1.5: 22.3.2016, pridany datum kontroly, skupiny
-- VS		update0179.sql
-- Redmine	#1902



BEGIN
				
		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

        -- nastavenie startovacieho  a koncoveho datumu podla dekady
		-- ak dekada = 1, startovaci den dekady je 15 (15-30 v mesiaci)
		-- ak dekada = 9, startovaci den dekady je 1 (1-14 v mesiaci)
		
		IF (@dekada = 1)
			BEGIN
			SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			END
		ELSE
			BEGIN
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
			END
		
		IF (@dekada = 1)
			BEGIN
			SET @end = CAST(eomonth(@start) AS date)
			END
		ELSE
			BEGIN
			SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
			END

        SELECT  @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
        SELECT  @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia
        SELECT  @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
        SELECT  @end2 = DATEADD(dd, -1, @start1)	-- koniec predchadzajuceho obdobia (minus 2 mesiace)
		SELECT	@minusrok = DATEADD(dd, -350, @start)
		SELECT	@minusrok2 = DATEADD(mm, -1, @minusrok) -- pre potreby druhych kontrol
		SELECT	@minusrok3 = DATEADD(mm, -13, @start) -- pre potreby druhych kontrol

		-----------------------------------------------
		-- prve a druhe kontroly
		-----------------------------------------------


DECLARE @DatPKon DATE;
DECLARE @DatPRok DATE, @DatPPRok DATE;

--SET @chov = '811724011'

SELECT TOP 1 @DatPKon = DATKONTR FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov ORDER BY DATKONTR DESC

	
	
	DECLARE @den INT
		SELECT @den = 
			CASE 
				WHEN DATEPART(dd, @DatPKon) > 14 THEN '15'
					ELSE 
						'1'
				END 
				
	DECLARE @startdekady date
    SET @startdekady = CAST(CAST(DATEPART(year, @DatPKon) AS varchar) + '-' + CAST(DATEPART(month, @DatPKon) AS varchar) + '-' + CAST(@den AS varchar) AS DATETIME)
	SET @DatPRok = DATEADD(dd, -350, @startdekady)
	SET @DatPPRok = DATEADD(mm, -1, @DatPRok)

	PRINT 'Datum poslednej kontroly: ' + CONVERT(VARCHAR, @DatPKon)
	PRINT 'Nastavenie startu dekady v kontrole ' + CONVERT(VARCHAR, @startdekady)
	PRINT 'Datum pre vypocet rocneho zoznamu: ' + CONVERT(VARCHAR, @DatPRok)
	PRINT 'Datum pre vypocet rocneho zoznamu minus 1 mesiac: ' + CONVERT(VARCHAR, @DatPPRok)

			IF OBJECT_ID('tempdb..#kontrola1') IS NOT NULL
			BEGIN
            	DROP TABLE #kontrola1
			END
	
	
			IF OBJECT_ID('tempdb..#prvekontroly') IS NOT NULL
			BEGIN
            		DROP TABLE #prvekontroly
				END

		SELECT ciskravy, COUNT(ciskravy) AS pocetkontrol, MIN(DATKONTR) AS K1, MAX(DATKONTR) AS KP, AVG(MLIEKPR) as mliekopr
				INTO #prvekontroly FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov GROUP  BY CISKRAVY

		-- datum poslednej kontroly
		DECLARE @poslednakontrola DATE, @predposlednakontrola DATE
		DECLARE @RKO1KS INT, @RKO1KSL1 INT, @RKO1ML DECIMAL(7,2), @RKO12ML DECIMAL(7,2), @MKO1ML DECIMAL(7,2), @MKO12ML DECIMAL(7,2)
		DECLARE @MKO1KS INT, @MKO12KS INT, @MKO1KSL1 INT, @MKO1MLL1 DECIMAL(7,2), @MKO12KSL1 INT, @MKO12MLL1 DECIMAL (7,2), @RKO12KS INT
		DECLARE @RKO1MLL1 DECIMAL (4,2), @RKO12MLL1 DECIMAL (4,2), @RKO12KSL1 INT


        SELECT @poslednakontrola = MAX(K1) FROM #prvekontroly
		SELECT TOP 1 @predposlednakontrola = K1 FROM #prvekontroly WHERE K1 < (SELECT  MAX(K1) FROM #prvekontroly) ORDER BY K1 desc         
		


		-- stlpce:
		-- cislo kravy, pocet kontrol, prva kontrola, posledna kontrola

		SELECT pk.*, naplak.PORLAK, naplak.lakdnin, pk.mliekopr AS mlieknor --, kontroly.MLIEKPR AS mliekopr1
		INTO #kontrola1 FROM #prvekontroly pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
		WHERE pk.K1 >= @minusrok AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00'


	SELECT @MKO1KS = COUNT(*), @MKO1ML = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND KP = @poslednakontrola
	SELECT @MKO1KSL1 = COUNT(*), @MKO1MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 AND PORLAK = 1 AND KP = @poslednakontrola
	SELECT @MKO12KSL1 = COUNT(*), @MKO12MLL1 = AVG(mliekopr) FROM #kontrola1 WHERE pocetkontrol = 1 OR pocetkontrol = 2

			SELECT @MKO12KS = COUNT(*), @MKO12ML = AVG(pk.mliekopr) FROM #kontrola1 pk 
			LEFT JOIN dbo.CM_Krava krava ON (krava.CISKRAVY = pk.CISKRAVY)
			LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY)
			WHERE  (KP = @poslednakontrola AND ISNULL(krava.DOVVYR, '') = '' OR krava.DOVVYR = '00') AND (K1 = @poslednakontrola OR K1 = @predposlednakontrola)   
	
	DECLARE @counter INT

BEGIN
		
		IF OBJECT_ID('tempdb..#kontroly01') IS NOT NULL
			BEGIN DROP TABLE #kontroly01 END

	    CREATE TABLE #kontroly01 (ciskravy VARCHAR(14), pocet INT, prva DATE, druha DATE, mliekopr DECIMAL(7,2), mliekopr2 DECIMAL(7,2),  lak INT)
	
		DECLARE @ciskravy VARCHAR(14), @pocet INT, @poradie INT, @prva DATE, @posledna DATE, @druha DATE, @mliekopr DECIMAL(7,2), @mliekopr2 DECIMAL(7,2), @lak INT
			
			SET @counter = 0;
		DECLARE kontroly_cursor CURSOR
		FOR
			SELECT COUNT(CISKRAVY) AS pocet, CISKRAVY  FROM dbo.CM_Kontroly WHERE DATKONTR > @DatPRok AND CISCHOVU = @chov
				GROUP BY CISKRAVY
	
    OPEN kontroly_cursor
    FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
						SELECT TOP 1 @ciskravy = ko.CISKRAVY, @prva = ko.DATKONTR,  @mliekopr = MLIEKPR, @lak = n.PORLAK  FROM dbo.CM_Kontroly ko
						LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = ko.CISKRAVY)
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy ORDER BY ko.DATKONTR ASC

						SELECT @pocet = COUNT(ko.ciskravy) FROM dbo.CM_Kontroly ko
						WHERE CISCHOVU = @chov AND ko.CISKRAVY = @ciskravy
						GROUP BY ko.ciskravy

						SELECT TOP 1 @druha = dva.DATKONTR, @mliekopr2 = dva.MLIEKPR  FROM
						(SELECT TOP 2 CISKRAVY, DATKONTR, MLIEKPR FROM dbo.CM_Kontroly
						WHERE CISCHOVU = @chov AND CISKRAVY = @ciskravy ORDER BY DATKONTR ASC) AS dva
						ORDER BY datkontr DESC
				
						INSERT  INTO #kontroly01 ( ciskravy, pocet, prva, druha, mliekopr, mliekopr2, lak) VALUES  ( @ciskravy, @pocet, @prva, @druha,  @mliekopr, @mliekopr2, @lak)


            FETCH NEXT FROM kontroly_cursor INTO @pocet, @ciskravy

        END
END

CLOSE kontroly_cursor
DEALLOCATE kontroly_cursor

--SELECT * FROM #kontroly01


SELECT		@RKO1KS = COUNT(ko.ciskravy), @RKO1ML = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL
			--GROUP BY ko.ciskravy

SELECT		@RKO1KSL1 = COUNT(ko.ciskravy), @RKO1MLL1 = ROUND(AVG(ko.mliekopr),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE prva > @DatPRok AND kr.DOVVYR IS NULL AND ko.lak = 1

SELECT		@RKO12KS = COUNT(ko.ciskravy), @RKO12ML = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha)

SELECT		@RKO12KSL1 = COUNT(ko.ciskravy), @RKO12MLL1 = ROUND(AVG(ko.mliekopr2),1) FROM #kontroly01 ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.ciskravy)
			LEFT JOIN dbo.CM_Naplak Na ON (ko.ciskravy = Na.CISKRAVY)
			WHERE druha > @DatPRok AND kr.DOVVYR IS NULL AND (prva <> druha) AND ko.lak = 1

			---	SELECT @rkoks, @rkoml, @RKOKs1L, @RKOMl1L, @rkoks + @RKO12ks, ROUND(((@RKO12ml+@RKOMl)/2),1), @RKOKs1L + @RKO12ks1L, ROUND(((@RKO12ml1L+@RKOMl1L)/2),1)



		-----------------------------------------------

		IF OBJECT_ID('tempdb..#kravy') IS NOT NULL DROP TABLE #kravy
		IF OBJECT_ID('tempdb..#kx') IS NOT NULL DROP TABLE #kx
		IF OBJECT_ID('tempdb..#kx1') IS NOT NULL DROP TABLE #kx1
		IF OBJECT_ID('tempdb..#kx2') IS NOT NULL DROP TABLE #kx2

		SELECT ko.* INTO #kravy
		FROM dbo.CM_Kontroly ko
			LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		--WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')
		WHERE (ko.CISCHOVU = @chov) AND (ko.DATKONTR BETWEEN @start AND @end) AND ISNULL(kr.DOVVYR, '') = '' OR kr.DOVVYR = '00'


		DECLARE @POCKRAVZAP INT, @POCKRAVKONT INT, @POCKRAVKONT1LAK INT, @POCKRAVZAP1LAK INT
        DECLARE @POCKRAVKONTR1L INT, @2kontrol INT, @2kontrola INT, @1kontrola1lak INT, @2kontrola1lak INT

			-- pocet krav v kontrole
			SELECT @POCKRAVKONT = COUNT(CISKRAVY) FROM #kravy

			-- pocet krav v kontrole na 1.laktacii
			SELECT @POCKRAVKONT1LAK = COUNT(CISKRAVY) FROM #kravy WHERE PORPREBLAK = (1)

			-- pocet krav v chove
			SELECT @POCKRAVZAP = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov AND ISNULL(DOVVYR,'') = '' OR DOVVYR = '00'

			--pocet krav na 1 laktacii
			SELECT @POCKRAVZAP1LAK = COUNT(CISKRAVY) FROM dbo.CM_Krava WHERE CHOVATEL = @chov
					AND (ISNULL(DOVVYR,'') = '' OR DOVVYR = '00')
					AND PORPREBLAK = '1'

			-- vlozim zaznamy zo zvoleneho mesiaca do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			-- vlozim zaznamy zo zvoleneho mesiaca - 1 do temp
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx1
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start1 AND @end1

			-- vlozim zaznamy zo zvoleneho mesiaca - 2 do temper
			SELECT k.CISKRAVY, DATKONTR, PORPREBLAK INTO #kx2
						FROM dbo.View_CM_Kontroly K
						LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = K.CISKRAVY)
						WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start2 AND @end2

			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom
			SELECT @POCKRAVKONTR1L = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi
			SELECT @2kontrola = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL)

			
			-- pocet rozdielov = pocet krav na 1 kontrole pred mesiacom / 1.laktacia
			SELECT @1kontrola1lak = COUNT(a.CISKRAVY) FROM #kx a
					LEFT JOIN #kx1 b ON (a.CISKRAVY = b.CISKRAVY) WHERE b.CISKRAVY IS NULL AND a.PORPREBLAK = 1
			
			-- pocet rozdielov = pocet krav na 1 kontrole pred 2 mesiacmi / 1.laktacia
			SELECT @2kontrola1lak = COUNT(a.CISKRAVY) FROM #kx1 a
					LEFT JOIN #kx2 c ON (a.CISKRAVY = c.CISKRAVY) WHERE (c.CISKRAVY IS NULL) AND a.PORPREBLAK = 1
			
			
			
			DROP TABLE #kx
			DROP TABLE #kx1
			DROP TABLE #kx2

			
			DECLARE @mesiac_minus_1 INT, @mesiac_minus_2 INT, @rok_minus_1 INT
			DECLARE @rok_minus_2 AS INT
			DECLARE @MLIEKOCELKOM AS DECIMAL(7,2)
			DECLARE @MLIEKOCELKOML1 AS DECIMAL (7,2)
			DECLARE @TUKPER AS DECIMAL (7,2)
			DECLARE @BIELKPER AS DECIMAL(7,2)
			DECLARE @SB AS FLOAT 
			DECLARE @pocet_TB_11 AS INT
			DECLARE @pocet_TB_1115 AS INT
			DECLARE @pocet_TB_15 AS INT
			DECLARE @pocet_TB_11_LAK1 AS INT
			DECLARE @pocet_TB_1115_LAK1 AS INT
			DECLARE @pocet_TB_15_LAK1 AS INT


			-- sucet mlieka / vsetky kravy v kg
			SELECT @MLIEKOCELKOM = SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			
			SELECT @MLIEKOCELKOML1 = SUM(MLIEKPR) FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end	AND PORPREBLAK = 1

			-- priemerne percento tuku
			SELECT @TUKPER = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @TUKPERL1 DECIMAL(4,2)
			SELECT @TUKPERL1 = AVG(PERCTUKU) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @BIELKPER = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @BIELKPERL1 DECIMAL(4,2)
			SELECT @BIELKPERL1 = AVG(PERCBIELK) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1

			-- priemerne percento bielkovin
			SELECT @SB = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end
			DECLARE @SBL1 INT
			SELECT @SBL1 = ROUND(AVG(BUNECELEM),0) FROM #kravy WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end AND PORPREBLAK = 1


			-----------------------------------------------------------------------------------------------------
			-- pomery tuk / bielkovina
			-----------------------------------------------------------------------------------------------------

			DECLARE @POMERTB11V INT
			SELECT	@POMERTB11V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	 AND (k.PERCTUKU / k.PERCBIELK) < 1.1

			DECLARE @POMERTB15V INT
			SELECT @POMERTB15V = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) > 1.5

			DECLARE @POMERTBOKV INT
			SELECT @POMERTBOKV = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU / k.PERCBIELK),2) BETWEEN 1.1 AND 1.5

			DECLARE @POMERTB11VL1 INT
			SELECT @POMERTB11VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) < 1.1 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1

			DECLARE @POMERTB15VL1 INT
			SELECT @POMERTB15VL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) > 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
			
			DECLARE @POMERTBOKVL1 INT
			SELECT @POMERTBOKVL1 = COUNT(k.CISKRAVY) FROM #kravy k
					WHERE k.CISCHOVU = @chov AND k.DATKONTR BETWEEN @start AND @end	AND ROUND((k.PERCTUKU/k.PERCBIELK),2) BETWEEN 1.1 AND 1.5 AND k.PORPREBLAK = 1 AND k.PORPREBLAK = 1
							

		----------------------------------------------------------------------------------------------------------------------------


			DECLARE @lak_al INT
            DECLARE @POCKRAV100 INT
			DECLARE @POCKRAV200 INT
			DECLARE @POCKRAV300 INT

			DECLARE @POCKRAV100L1 INT
			DECLARE @POCKRAV200L1 INT
			DECLARE @POCKARV300L1 INT
			
			DECLARE @MLIEKO100 INT
			DECLARE @TUK100 FLOAT
			DECLARE @TUK100PER FLOAT
			DECLARE @BIELK100 FLOAT
			DECLARE @BIELK100PER FLOAT
			DECLARE @TB100 FLOAT
			DECLARE @TB100PER FLOAT

			DECLARE @MLIEKO200 INT
			DECLARE @TUK200 FLOAT
			DECLARE @TUK200PER FLOAT
			DECLARE @BIELK200 FLOAT
			DECLARE @BIELK200PER FLOAT
			DECLARE @TB200 FLOAT
			DECLARE @TB200PER FLOAT

			DECLARE @MLIEKO300 INT
			DECLARE @TUK300 FLOAT
			DECLARE @TUK300PER FLOAT
			DECLARE @BIELK300 FLOAT
			DECLARE @BIELK300PER FLOAT
			DECLARE @TB300 FLOAT
			DECLARE @TB300PER FLOAT

			DECLARE @MLIEKO100L1 INT
			DECLARE @TUK100L1 FLOAT
			DECLARE @TUK100PERL1 FLOAT
			DECLARE @BIELK100L1 FLOAT
			DECLARE @BIELK100PERL1 FLOAT
			DECLARE @TB100L1 FLOAT
			DECLARE @TB100L1PER FLOAT

			DECLARE @MLIEKO200L1 INT
			DECLARE @TUK200L1 FLOAT
			DECLARE @TUK200PERL1 FLOAT
			DECLARE @BIELK200L1 FLOAT
			DECLARE @BIELK200PERL1 FLOAT
			DECLARE @TB200L1 FLOAT
			DECLARE @TB200PERL1 FLOAT

			DECLARE @MLIEKO300L1 INT
			DECLARE @TUK300L1 FLOAT
			DECLARE @TUK300PERL1 FLOAT
			DECLARE @BIELK300L1 FLOAT
			DECLARE @BIELK300PERL1 FLOAT
			DECLARE @TB300L1 FLOAT
			DECLARE @TB300PERL1 FLOAT


			
			SELECT @lak_al = COUNT(N.ciskravy)
						FROM #kravy K
					LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY)


			SELECT DISTINCT ciskravy INTO #kontrola FROM dbo.CM_Kontroly WHERE CISCHOVU = @chov AND DATKONTR BETWEEN @start AND @end


			

			
			--100 denne pocet
			SELECT
			@POCKRAV100 = COUNT(N.ciskravy),
			@MLIEKO100 = AVG(N.MLIEKNOR),
			@TUK100 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PER = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PER = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100 = @TUK100 + @BIELK100,
			@TB100PER = ROUND(@TUK100PER + @BIELK100PER,2)
			
			--FROM #kravy K INNER JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKDNIN = 100

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND krava.DOVVYR IS NULL


			--200 denne pocet
			SELECT
			@POCKRAV200 = COUNT(N.ciskravy),
			@MLIEKO200 = AVG(N.MLIEKNOR),
			@TUK200 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PER = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PER = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200 = @TUK200 + @BIELK200,
			@TB200PER = ROUND(@TUK200PER + @BIELK200PER,2)
			
			--FROM #kravy K LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 200 AND 304

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND krava.DOVVYR IS NULL

			-- vsetky kravy s uzavretou laktaciou
			SELECT
			@POCKRAV300 = COUNT(L.CISKRAVY),
			@MLIEKO300 = AVG(L.MLIEKNOR),
			@TUK300 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PER = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PER = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300 = @TUK300 + @BIELK300,
			@TB300PER = ROUND(@TUK300PER + @BIELK300PER,2)

			FROM dbo.CM_Laktacie L
			--WHERE L.CHOVATEL = @chov
			--AND ((L.DATUKONL > @minusrok2 OR L.DATUKONL IS NULL) OR (L.DATUKONL > @minusrok2)) AND (L.ZMENA = 30 OR L.ZMENA = 40)
			--GROUP BY L.CISKRAVY

			WHERE  chovatel = @chov and (zmena = '30' or zmena = '40' )  and ((DatUkonl > @minusrok2 and Datuknorl is null )  or   DatUknorl > @minusrok2)
			GROUP by L.CHOVATEL





			PRINT 'Rocne obdobie sa pocita od: ' + CONVERT(VARCHAR, @minusrok2)


						
			--100 denne pocet / 1 laktacia
			SELECT
			@POCKRAV100L1 = COUNT(N.ciskravy),
			@MLIEKO100L1 = AVG(N.MLIEKNOR),
			@TUK100L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK100PERL1 = ROUND((SUM(N.TUK100)/SUM(N.MLIEKO100))*100,2),
			@BIELK100L1 = ROUND(AVG(N.BIELK100),0),
			@BIELK100PERL1 = ROUND((SUM(N.BIELK100)/SUM(N.MLIEKO100))*100,2),
			@TB100L1 = @TUK100L1 + @BIELK100L1,
			@TB100L1PER = ROUND(@TUK100PERL1 + @BIELK100PERL1,2)
			
			--FROM #kravy K INNER JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 100 AND 199 AND N.PORLAK = 1

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '100' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			
			--200 denne pocet / 1 laktacia
			SELECT
			@POCKRAV200L1 = COUNT(N.ciskravy),
			@MLIEKO200L1 = AVG(N.MLIEKNOR),
			@TUK200L1 = ROUND(AVG(N.TUKNOR),0),
			@TUK200PERL1 = ROUND((SUM(N.TUK200)/SUM(N.MLIEKO200))*100,2),
			@BIELK200L1 = ROUND(AVG(N.BIELK200),0),
			@BIELK200PERL1 = ROUND((SUM(N.BIELK200)/SUM(N.MLIEKO200))*100,2),
			@TB200L1 = @TUK200L1 + @BIELK200L1,
			@TB200PERL1 = ROUND(@TUK200PERL1 + @BIELK200PERL1,2)
			
			-- FROM #kravy K LEFT JOIN dbo.CM_Naplak N ON(N.CISKRAVY = K.CISKRAVY) WHERE N.LAKTDNI BETWEEN 200 AND 304 AND N.PORLAK = 1

			FROM cm_krava krava
			LEFT JOIN  dbo.CM_Naplak n ON (n.CISKRAVY = krava.CISKRAVY)
			LEFT JOIN #kontrola k ON (n.CISKRAVY = k.CISKRAVY)
			WHERE krava.CHOVATEL = @chov AND n.LAKDNIN = '200' AND N.PORLAK = 1 AND krava.DOVVYR IS NULL

			-- vsetky kravy s uzavretou laktaciou / 1.laktacia
			SELECT
			@POCKARV300L1 = COUNT(N.ciskravy),
			@MLIEKO300L1 = AVG(L.MLIEKNOR),
			@TUK300L1 = ROUND(AVG(L.TUKNOR),0),
			@TUK300PERL1 = ROUND((SUM(L.TUKNOR)/SUM(L.MLIEKNOR))*100,2),
			@BIELK300L1 = ROUND(AVG(L.BIELKNOR),0),
			@BIELK300PERL1 = ROUND((SUM(L.BIELKNOR)/SUM(L.MLIEKNOR))*100,2),
			@TB300L1 = @TUK300L1 + @BIELK300L1,
			@TB300PERL1 = ROUND(@TUK300PERL1 + @BIELK300PERL1,2)
			FROM dbo.CM_Laktacie L
		
			LEFT JOIN dbo.CM_Naplak N ON (N.CISKRAVY = L.CISKRAVY)
			WHERE L.CHOVATEL = @chov AND L.PORLAK = 1
			AND ((L.DATUKONL >= @minusrok2) OR (L.DATUKONL >= @minusrok2)) AND (L.ZMENA = 30 OR L.ZMENA = 40)
			
			

			-----------------------------------------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - pocty (dni)
			----------------------------------------------------------------------------------------------


DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @count INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @POCINS1 INT;
DECLARE @POCINS2 INT;
DECLARE @POCINS3 INT;
DECLARE @POCINS4VIAC INT;
DECLARE @POCTELNYCH INT;


BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                LEFT JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                LEFT JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie

    SELECT  @POCINS1 = COUNT(@krava) FROM   #inseminacie
    SELECT  @POCINS2 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 2
	SELECT  @POCINS3 = COUNT(@krava) FROM   #inseminacie WHERE   poradie = 3
    SELECT  @POCINS4VIAC = COUNT(@krava) FROM   #inseminacie WHERE   poradie >= 4
    SELECT  @POCTELNYCH = COUNT(@krava) FROM   #inseminacie WHERE   ivyse = 9


    --SELECT  @inseminacia1 AS inseminacia1 ,  @inseminacia2 AS inseminacia2 ,  @inseminacia3 AS inseminacia3 , @inseminacia4 AS inseminacia4 , @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / interval
			----------------------------------------------------------------------------------------------


DECLARE @odatum DATE;
DECLARE @rozdiel_dni INT;
DECLARE @POCINTR INT;
DECLARE @POCSERV INT;


BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99

            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor

			----------------------------------------------------------------------------------------------
			-- Prehlad reprodukcnych ukazovatelov - priemery (dni) / servisperioda
			----------------------------------------------------------------------------------------------
	

BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END

		SELECT  @POCSERV = AVG(rozdiel_dni) FROM #servisperioda

		END

		CLOSE servisperioda_cursor
		DEALLOCATE servisperioda_cursor
		PRINT 'servisperioda'

		----------------------------------------------------------------------------------------------
		-- Medziobdobie
		----------------------------------------------------------------------------------------------


		PRINT 'zaciatok medziobdobie'
		DECLARE @POCMEDZ INT
		SELECT @POCMEDZ =  AVG(n.MEDZIOBD) FROM dbo.CM_Krava k 
				LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY) WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL) AND ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00'
		PRINT 'koniec medziobdobie - hodnota je:' + CONVERT(VARCHAR, @POCMEDZ)

		-- SKUP
		DECLARE @SKUP VARCHAR(2)
		SELECT @SKUP = SKUPINA FROM dbo.CM_Krava WHERE CISKRAVY = @ciskravy

	
		DELETE  FROM dbo.CR_KUHD_MesUzavCH_1x WHERE   chovatel = @chov AND mesiac = @mesiac AND rok = @rok AND dekada = @dekada
		PRINT 'vymazal som stare data:'
		PRINT 'chovatel: '+ CONVERT(VARCHAR, @chov);
		PRINT 'rok: '+ CONVERT(VARCHAR, @rok);
		PRINT 'mesiac: '+ CONVERT(VARCHAR, @mesiac);
		PRINT 'dekada: '+ CONVERT(VARCHAR, @dekada);
		INSERT  INTO dbo.CR_KUHD_MesUzavCH_1x

			(	chovatel,
                mesiac,
                rok ,
				dekada,	
				RKO1ML,				-- rok - 1.kontroly - mlieko
				RKO1KS,				-- rok - 1.kontroly - kusy
				RKO12ML,			-- rok - 1. - 2. kontroly - mlieko
				RKO12KS,			-- rok - 1. - 2. kontroly - kusy
				RKO1KSL1,			-- rok - 1.kontroly - mlieko - 1.laktacia
				RKO1MLL1,			-- rok - 1.kontroly - kusy - 1.laktacia
				RKO12KSL1,			-- rok - 1. - 2. kontroly - kusy - 1.laktacia
				RKO12MLL1,			-- rok - 1. - 2. kontroly - mlieko - 1.laktacia
				MKO1KS,				-- mesiac - 1.kontroly - kusy
				MKO1ML,				-- mesiac - 1.kontroly - mlieko
				MKO12KS,			-- mesiac - 1.- 2. kontroly - kusy
				MKO12ML,			-- mesiac - 1.- 2. kontroly - mlieko
				POCKRAVZAP,
				POCKRAVKONT,
				POCKRAVKONTL1,
				POCKRAVZAPL1,
				MLIEKOCELKOM,	
				MLIEKOCELKOML1,	
				MLIEKOPRIEMERZ,	
				MLIEKOPRIEMERK,	
				TUKPER,			
				TUKPERL1,		
				BIELKPER,		
				BIELKPERL1,
				SB,
				SBL1,
				POMERTB11V,
				POMERTB15V,
				POMERTBOKV,
				POMERTB11VL1,
				POMERTB15VL1,
				POMERTBOKVL1,
				POCKRAV100,
				MLIEKO100,
				TUK100,
				TUK100PER,
				BIELK100,
				BIELK100PER,
				TB100,
				TB100PER,
				POCKRAV200,
				MLIEKO200,
				TUK200,
				TUK200PER,
				BIELK200,
				BIELK200PER,
				TB200,
				TB200PER,
				POCKRAV300,
				MLIEKO300,
				TUK300,
				TUK300PER,
				BIELK300,
				BIELK300PER,
				TB300,
				TB300PER,
				POCKRAV100L1,
				MLIEKO100L1,
				TUK100L1,
				TUK100PERL1,
				BIELK100L1,
				BIELK100PERL1,
				TB100L1,
				TB100L1PER,
				POCKRAV200L1,
				MLIEKO200L1,
				TUK200L1,
				TUK200PERL1,
				BIELK200L1,
				BIELK200PERL1,
				TB200L1,
				TB200PERL1,
				POCKARV300L1,
				MLIEKO300L1,
				TUK300L1,
				TUK300PERL1,
				BIELK300L1,
				BIELK300PERL1,
				TB300L1,
				TB300PERL1,
				POCINS1,
				POCINS2,
				POCINS3,
				POCINS4VIAC,
				POCTELNYCH,
				POCINTR,
				POCSERV,
				POCMEDZ,
				MKO1KSL1,
				MKO1MLL1,
				MKO12KSL1,
				MKO12MLL1,
				MLIEKOPRIEMERZL1,	
				MLIEKOPRIEMERKL1,
				generovane,
				datkon,
				SKUP

			)
			VALUES

			(	@chov ,
                @mesiac ,
                @rok,
				@dekada,
				@RKO1ML,
				@RKO1KS,
				ROUND(((@RKO12ML+@RKO1ML)/2),1), --@RKO12ML,
				@RKO1KS + @RKO12KS,
				@RKO1KSL1,
				@RKO1MLL1,
				@RKO1KSL1 + @RKO12KSL1,
				ROUND(((@RKO12MLL1+@RKO1MLL1)/2),1), --@RKO12MLL1,
				@MKO1KS,
				@MKO1ML,
				@MKO12KS,
				@MKO12ML,
				@POCKRAVZAP,
				@POCKRAVKONT,
				@POCKRAVKONT1LAK,
				@POCKRAVZAP1LAK,
				ROUND(@MLIEKOCELKOM,1),
				ROUND(@MLIEKOCELKOML1,1),
				ROUND(@MLIEKOCELKOM / @POCKRAVZAP,2),
				ROUND(@MLIEKOCELKOM / @POCKRAVKONT,2),
				ROUND(@TUKPER, 2),
				ROUND(@TUKPERL1, 2),
				ROUND(@BIELKPER, 2),
				ROUND(@BIELKPERL1, 2),
				@SB,
				@SBL1,
				@POMERTB11V,
				@POMERTB15V,
				@POMERTBOKV,
				@POMERTB11VL1,
				@POMERTB15VL1,
				@POMERTBOKVL1,
				@POCKRAV100,
				@MLIEKO100,
				@TUK100,
				@TUK100PER,
				@BIELK100,
				@BIELK100PER,
				@TB100,
				@TB100PER,
				@POCKRAV200,
				@MLIEKO200,
				@TUK200,
				@TUK200PER,
				@BIELK200,
				@BIELK200PER,
				@TB200,
				@TB200PER,
				@POCKRAV300,
				@MLIEKO300,
				@TUK300,
				@TUK300PER,
				@BIELK300,
				@BIELK300PER,
				@TB300,
				@TB300PER,
				@POCKRAV100L1,
				@MLIEKO100L1,
				@TUK100L1,
				@TUK100PERL1,
				@BIELK100L1,
				@BIELK100PERL1,
				@TB100L1,
				@TB100L1PER,
				@POCKRAV200L1,
				@MLIEKO200L1,
				@TUK200L1,
				@TUK200PERL1,
				@BIELK200L1,
				@BIELK200PERL1,
				@TB200L1,
				@TB200PERL1,
				@POCKARV300L1,
				@MLIEKO300L1,
				@TUK300L1,
				@TUK300PERL1,
				@BIELK300L1,
				@BIELK300PERL1,
				@TB300L1,
				@TB300PERL1,
				@POCINS1,
				@POCINS2,
				@POCINS3,
				@POCINS4VIAC,
				@POCTELNYCH,
				@POCINTR,
				@POCSERV,
				@POCMEDZ,
				@MKO1KSL1,
				@MKO1MLL1,
				@MKO12KSL1,
				@MKO12MLL1,
				ROUND(@MLIEKOCELKOML1 / @POCKRAVZAP1LAK,2),
				ROUND(@MLIEKOCELKOML1 / @POCKRAVKONT1LAK,2),
				GETDATE(),
				@DatPKon,
				@SKUP
			)


		EXEC CR_KUHD_mesacne_HH @chov, @rok, @mesiac, @dekada

END


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PotLinie]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT   p.cislin, s.nazlin,
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonjar < v.pocjar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocjar, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocjah, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmbar < v.pocmbar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocmbar2, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocmbar1
FROM dbo.SM_POTOMOK AS p LEFT OUTER JOIN
     dbo.View_SP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar 
 LEFT OUTER JOIN SC_SUBLIN s ON p.cislin=s.cislin     
WHERE p.krokr+p.podnik+p.stado=@chovatel
GROUP BY p.cislin,nazlin
)
go


/***masova rocenka - priemerne pocty nar. teliat na plemennika 
Masova rocenka 2017 - str.36 **/
 CREATE procedure [dbo].[Roc_MPHD_9]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_9 where rok = DATEPART (year,@datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

--create table Roc_MPHD_Tab_9
--(
--prir_byk int,
--ins_byk int,
--nezn_byk int,
--prir_tela int,
--ins_tela int,
--nezn_tela int,
--prir_priem float,
--ins_priem float,
--nezn_priem float,
--rok int
--)


declare @insem_tela int
set @insem_tela = (select count(*) 
			from CM_telata as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo and t.PRIZNAKKU = '2'
					and b.BB_INSEM = 'I')
--select @insem_tela

declare @prir_tela int
set @prir_tela = (select count(*) 
			from CM_telata as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo and t.PRIZNAKKU = '2'
					and b.BB_INSEM = '-')
--select @prir_tela

declare @nezn_tela int
set @nezn_tela = (select count(*) 
			from CM_telata as t 
			left outer join CM_Byci as b on b.USCISLO = t.OUC
				where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo and t.PRIZNAKKU = '2'
					and b.BB_INSEM is null )
--select @nezn_tela



declare @byk table 
(
 uscislo varchar(14),
znak_Ins varchar (1)
)
insert @byk
select distinct b.uscislo, b.BB_INSEM from CM_Byci as b 
					left outer join CM_Telata as t on b.USCISLO = t.OUC
							where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo and t.PRIZNAKKU = '2'
									
--select * from @byk order by znak_Ins

declare @insem_byk int  
set @insem_byk = (select count(*) from @byk 
						where znak_Ins = 'I')
--select @insem_byk

declare @prir_byk int
set @prir_byk = (select count(*) from @byk 
						where znak_Ins = '-')
--select @prir_byk

declare @nezn_byk int
set @nezn_byk = (select count(*) from @byk 
						where znak_Ins is null)
--select @nezn_byk

insert into Roc_MPHD_Tab_9 
(prir_byk, ins_byk, nezn_byk, prir_tela,ins_tela ,nezn_tela ,prir_priem ,ins_priem ,nezn_priem ,rok )

select @prir_byk as prir_byk, 
	@insem_byk as ins_byk,
	@nezn_byk as nezn_byk,
	@prir_tela as prir_tela,
	@insem_tela as ins_tela ,
	@nezn_tela as nezn_tela ,
	@prir_tela / @prir_byk as  prir_priem ,
	@insem_tela / @insem_byk as  ins_priem ,
	@nezn_tela / @nezn_byk as nezn_priem ,
	datepart (YEAR, @datumOd) as rok

--select @prir_tela/ @prir_byk as priemer


end
go

-- =============================================
-- Author:		David Florek
-- Create date:	07.09.2017
-- Description:	Potvrdi riadok faktury podla id
-- =============================================
CREATE PROCEDURE [dbo].[EC_PotvrdRiadokFaktury]
	@idr int,
	@login varchar(255),
	@zrus bit = 0
AS
BEGIN
	if (select Potvrdeny from EC_RiadokFaktury where IDR = @idr) = 1
	begin
		if(@zrus = 1)
		begin
			update EC_RiadokFaktury set Potvrdeny = 0, Potvrdil = null where IDR = @idr;

			insert into EC_RiadokFaktury_Hist
				(IDR, DatumZmeny, Zmenil, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, KodZmeny)
				(select IDR, GETDATE(), @login, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, 'Zrušenie potvrdenia', 5 from EC_RiadokFaktury where IDR = @idr);
		end
	end else begin
		update EC_RiadokFaktury set Potvrdeny = 1, Potvrdil = @login  where IDR = @idr;

		insert into EC_RiadokFaktury_Hist
			(IDR, DatumPotvrdenia, Potvrdil, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, KodZmeny)
			(select IDR, GETDATE() as DatumPotvrdenia, @login as Potvrdil, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, 1 from EC_RiadokFaktury where IDR = @idr);
	end;
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	priemerne MO za masovu kravu, ci narodene telata pochadzaju z prirodzenej plemenitby, alebo inseminacie
-- zistuje sa, ci byk, ktorym bola krava oplodnena, patri do inseminacie alebo nie, na to sluzi priznak z CM_Byci - bb_insem,
-- tento priznak moze mat hodnoty = '-' (t.j. prirodzena plemenitba PPL), 'I' - inseminacia, alebo NULL
-- ak je bb_insem NULL berieme do uvahy cislo registra byka, ak ma < 500 patri do inseminacie, ak ma >= 501 patri do PPL
-- =============================================
CREATE PROCEDURE [dbo].[MedziobdobiePodlaPPLaInsMasovy](@krava varchar(14))
AS
BEGIN
declare @v_bb_insem char(1);

declare @v_PPL float; /*suma medziobd PPL*/
declare @v_Ins float; /*suma medziobd Ins*/
set @v_PPL = 0;
set @v_Ins = 0;

declare @v_pocetPPL int;
declare @v_pocetIns int;
set @v_pocetPPL = 0;
set @v_pocetIns = 0;

declare @v_priemerPPL float;
declare @v_priemerIns float;
set @v_priemerPPL = 0;
set @v_priemerIns = 0;

/*kurzorove premenne*/

declare @v_datotel date;
declare @v_oteclin varchar(3);
declare @v_otecreg int;
declare @v_ouc varchar(14);
declare @v_medziobd int;

declare krava_cursor cursor for

/*
select t.DATNAR, t.CISTELATA, t.OTECLIN, t.OTECREG, t.OUC, p.Medziobd from plis.dbo.CM_Telata as t
left join plis.dbo.Cp_Meso_TelataPoLaktacii as p on (t.MATKA=p.Ciskrava) where t.MATKA=@krava
and t.DATNAR=p.DATOTEL group by t.CISTELATA,t.OTECLIN,t.OTECREG,t.OUC,t.DATNAR,p.Medziobd
order by t.DATNAR
*/

select t.DATotel,
case when len(t.OTECLIN) = 7 then SUBSTRING(t.OTECLIN,1,3) 
when len(t.OTECLIN) = 6 then SUBSTRING(t.OTECLIN,1,2)    
when len(t.OTECLIN) = 5 then SUBSTRING(t.OTECLIN,1,1) 
end as oteclin, right('000'+t.OTECLIN,3) as otecreg,
t.otecUsnCis, t.Medziobd from [Cp_Meso_TelataPoLaktacii] t where CISKRAVa = @krava

OPEN krava_cursor   
FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg, @v_ouc, @v_medziobd

	WHILE @@FETCH_STATUS = 0   
	BEGIN   
		if (@v_oteclin is not null and @v_otecreg is not null and @v_medziobd is not null)		
		begin		
			select @v_bb_insem = BB_INSEM from CM_Byci b where b.LIN = @v_oteclin and b.REG = @v_otecreg;
			print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1));
			print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1)); 
			if (@v_bb_insem = 'I')
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;
			
			if (@v_bb_insem = '-')
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			
			if (@v_bb_insem is null)
			begin
				if (@v_otecreg >= 501)
					begin
						set @v_PPL = @v_PPL + @v_medziobd;
						set @v_pocetPPL = @v_pocetPPL + 1;
					end;
					else
					begin
						set @v_Ins = @v_Ins + @v_medziobd;
						set @v_pocetIns = @v_pocetIns + 1;
					end;
			end;
			
			/**/
			/*if (@v_otecreg >= 501)
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			else
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;*/	
		end;
		else 
		begin
			print 'neznama linia, alebo medziobd je null'
		end;
		print 'ppl: ' + cast(@v_PPL as varchar(14)) + ' ' + cast(@v_pocetPPL as varchar(14));
		print 'ins: ' + cast(@v_Ins as varchar(14)) + ' ' + cast(@v_pocetIns as varchar(14));
		
	FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg, @v_ouc, @v_medziobd
	END
	
CLOSE krava_cursor   
DEALLOCATE krava_cursor

if (@v_pocetPPL <> 0)
set @v_priemerPPL = @v_PPL / @v_pocetPPL;

if (@v_pocetIns <> 0)
set @v_priemerIns = @v_Ins / @v_pocetIns;

select NULLIF(@v_priemerIns,0) as Ins, NULLIF(@v_priemerPPL,0) as PPL

/*
exec [MedziobdobiePodlaPPLaInsMasovy] 'FR004240969330'
*/
END
go



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[C_VZ_ChovMesovePlemena_CHOV] 
	@ParChov varchar(9)
AS
BEGIN

/**************************************************************

! PLEASE RUN AFFTER C_VZ_MEDZIOBDOBIEMESOVE AND C_AKTUAL_PREPOCMASOVEVAZENIA PROCEDURE !

using table:NM_Register,CM_Krava,NM_CHOVMAS,CM_Telata,NM_Podnik,NC_KRAJ,NC_OKRES

using views:View_CP_MedziObdMeso

changing table:CP_ChovatelMesoPlemena

used for: creating table used for results in report : volna zona -> Kontrola úžitkovosti mäsových plemien 

**************************************************************/

DECLARE @chov_id VARCHAR(9);

DECLARE @GLperc float;
DECLARE @Aperc float;
DECLARE @Bperc float;
DECLARE @Dperc float;
DECLARE @Fperc float;
DECLARE @Gperc float;
DECLARE @Hperc float;
DECLARE @Jperc float;
DECLARE @Lperc float;
DECLARE @Mperc float;
DECLARE @Nperc float;
DECLARE @Pperc float;
DECLARE @Rperc float;
DECLARE @Sperc float;
DECLARE @Tperc float;
DECLARE @Xperc float;
DECLARE @AAperc float;
DECLARE @ARperc float;
DECLARE @BAperc float;
DECLARE @BBperc float;
DECLARE @BRperc float;
DECLARE @BSperc float;
DECLARE @CIperc float;
DECLARE @GAperc float;
DECLARE @HEperc float;
DECLARE @HLperc float;
DECLARE @CHperc float;
DECLARE @MAperc float;
DECLARE @MBperc float;
DECLARE @PIperc float;
DECLARE @SBperc float;
DECLARE @SDperc float;
DECLARE @SGperc float;
DECLARE @SHperc float;
DECLARE @SLperc float;
DECLARE @SMperc float;
DECLARE @SVperc float;
DECLARE @WGperc float;
DECLARE @ZBperc float;

declare @pl1 varchar(2);
declare @pl2 varchar(2);
declare @pl3 varchar(2);
declare @pl4 varchar(2);
declare @pl5 varchar(2);

declare @kr1 float;
declare @kr2 float;
declare @kr3 float;
declare @kr4 float;
declare @kr5 float;

DECLARE @UCISLO VARCHAR(14);

declare @celkPoc int;
declare @aktPoc int;
declare @plmax1 float;
declare @plmax1Pismeno varchar(2);
declare @plmax2 float;
declare @plmax2Pismeno varchar(2);
declare @plmax3 float;
declare @plmax3Pismeno varchar(2);
DECLARE @CIS_KRAVA VARCHAR(14);
DECLARE @MEDZI INT;
DECLARE @prznakku INT;
declare @dovvyr INT;
DECLARE @KRAVI_MATKI INT;
DECLARE @MEDZI2 INT;

SET @MEDZI2 =0;

SET @KRAVI_MATKI=0;
--TRUNCATE TABLE [PLIS].[dbo].[CP_ChovatelMesoPlemena]	
delete [PLIS].[dbo].[CP_ChovatelMesoPlemena] where chovatel = @ParChov

DECLARE cur_Chovatel CURSOR FOR 
select distinct K.CHOVATEL
from CM_Krava AS K
inner join NM_CHOVMAS AS C
ON K.CHOVATEL=(C.KRAJ+C.OKRES+C.PODNIK+C.CHOV)
and (C.ZRUS IS NULL or c.ZRUS='A')
AND K.PRIZNAKKU='2' and k.chovatel = @ParChov;

select  @celkPoc=count(*) from plis.dbo.NM_Register;
set @aktPoc = 0;
SET @plmax1 =0;
SET @plmax1Pismeno ='';
SET @plmax2 =0;
SET @plmax2Pismeno ='';
SET @plmax3 =0;
SET @plmax3Pismeno ='';
SET @CIS_KRAVA='';
SET @MEDZI=0;

OPEN cur_Chovatel  
FETCH NEXT FROM cur_Chovatel INTO @chov_id 

WHILE @@FETCH_STATUS = 0 
BEGIN  
--print @chov_id;

       SET @MEDZI=0;
	   SET @KRAVI_MATKI=0;
	   SET @GLperc = 0;
       set @Aperc = 0;
	   set @Bperc = 0;
	   SET @Dperc = 0;
	   SET @Fperc = 0;
	   SET @Gperc = 0;
	   SET @Hperc = 0;
	   SET @Jperc = 0;
	   SET @Lperc = 0;
	   SET @Mperc = 0;
	   SET @Nperc = 0;
	   SET @Pperc = 0;
	   SET @Rperc = 0;
	   SET @Sperc = 0;
	   SET @Tperc = 0;
	   SET @Xperc = 0;
	   SET @AAperc = 0;
	   SET @ARperc = 0;
	   SET @BAperc = 0;
	   SET @BBperc = 0;
	   SET @BRperc = 0;
	   SET @BSperc = 0;
	   SET @CIperc = 0;
	   SET @GAperc = 0;
	   SET @HEperc = 0;
	   SET @HLperc = 0;
	   SET @CHperc = 0;
	   SET @MAperc = 0;
	   SET @MBperc = 0;
	   SET @PIperc = 0;
	   SET @SBperc = 0;
	   SET @SDperc = 0;
	   SET @SGperc = 0;
	   SET @SHperc = 0;
	   SET @SLperc = 0;
	   SET @SMperc = 0;
	   SET @SVperc = 0;
	   SET @WGperc = 0;
	   SET @ZBperc = 0;
	    set @aktPoc = @aktPoc + 1;

------------------------- vibera kravy pre kazdy chovatel


		SET @plmax1 =0;
		SET @plmax1Pismeno ='';
		SET @plmax2 =0;
		SET @plmax2Pismeno ='';
		SET @plmax3 =0;
		SET @plmax3Pismeno ='';
	
				DECLARE cur_kravy CURSOR FOR  
				SELECT pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5,CISKRAVY
				FROM plis.dbo.CM_Krava
				where CHOVATEL = @chov_id
				and PRIZNAKKU='2'
				--and DOVVYR IS NULL;

	   open cur_kravy;
	   FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	   WHILE @@FETCH_STATUS = 0 
	    BEGIN 
		 SET @kr5=100-(@kr1+@kr2+@kr3+@kr4);
	
				if @pl1 ='GL'SET @GLperc= @GLperc+@kr1;
				if @pl1 ='A' set @Aperc = @Aperc+@kr1;
				if @pl1 ='B' set @Bperc = @Bperc+@kr1;
				if @pl1 ='D' set @Dperc = @Dperc+@kr1;
				if @pl1 ='F' set @Fperc = @Fperc+@kr1;
				if @pl1 ='G' set @Gperc = @Gperc+@kr1;
				if @pl1 ='H' set @Hperc = @Hperc+@kr1;
				if @pl1 ='J' set @Jperc = @Jperc+@kr1;
				if @pl1 ='M' set @Mperc = @Mperc+@kr1;
				if @pl1 ='L' set @Lperc = @Lperc+@kr1;
				if @pl1 ='N' set @Nperc = @Nperc+@kr1;
				if @pl1 ='P' set @Pperc = @Pperc+@kr1;
				if @pl1 ='R' set @Rperc = @Rperc+@kr1;
				if @pl1 ='S' set @Sperc = @Sperc+@kr1;
				if @pl1 ='T' set @Tperc = @Tperc+@kr1;
				if @pl1 ='X' set @Xperc = @Xperc+@kr1;
				if @pl1='AA' set @AAperc= @AAperc+@kr1;
				if @pl1='AR' set @ARperc= @ARperc+@kr1;
				if @pl1='BA' set @BAperc= @BAperc+@kr1;
				if @pl1='BB' set @BBperc= @BBperc+@kr1;
				if @pl1='BR' set @BRperc= @BRperc+@kr1;
				if @pl1='BS' set @BSperc= @BSperc+@kr1;
				if @pl1='CI' set @CIperc= @CIperc+@kr1;
				if @pl1='GA' set @GAperc= @GAperc+@kr1;
				if @pl1='HE' set @HEperc= @HEperc+@kr1;
				if @pl1='HL' set @HLperc= @HLperc+@kr1;
				if @pl1='CH' set @CHperc= @CHperc+@kr1;
				if @pl1='MA' set @MAperc= @MAperc+@kr1;
				if @pl1='MB' set @MBperc= @MBperc+@kr1;
				if @pl1='PI' set @PIperc=@PIperc+@kr1;
				if @pl1='SB' set @SBperc=@SBperc+@kr1;
				if @pl1='SD' set @SDperc=@SDperc+@kr1;
				if @pl1='SG' set @SGperc=@SGperc+@kr1;
				if @pl1='SH' set @SHperc=@SHperc+@kr1;
				if @pl1='SL' set @SLperc=@SLperc+@kr1;
				if @pl1='SM' set @SMperc=@SMperc+@kr1;
				if @pl1='SV' set @SVperc=@SVperc+@kr1;
				if @pl1='WG' set @WGperc=@WGperc+@kr1;
				if @pl1='ZB' set @ZBperc=@ZBperc+@kr1;
-------------------------------------------------------------
				if @pl2 = 'GL' set @GLperc =  @GLperc+@kr2;
				if @pl2 = 'A' set @Aperc =  @Aperc+@kr2;
				if @pl2 = 'B' set @Bperc =  @Bperc+@kr2;
				if @pl2 = 'D' set @Dperc =  @Dperc+@kr2;
				if @pl2 = 'F' set @Fperc =  @Fperc+@kr2;
				if @pl2 = 'G' set @Gperc =  @Gperc+@kr2;
				if @pl2 = 'H' set @Hperc =  @Hperc+@kr2;
				if @pl2 = 'J' set @Jperc =  @Jperc+@kr2;
				if @pl2 = 'L' set @Lperc =  @Lperc+@kr2;
				if @pl2 = 'M' set @Mperc =  @Mperc+@kr2;
				if @pl2 = 'N' set @Nperc =  @Nperc+@kr2;
				if @pl2 = 'P' set @Pperc =  @Pperc+@kr2;
				if @pl2 = 'R' set @Rperc =  @Rperc+@kr2;
				if @pl2 = 'S' set @Sperc =  @Sperc+@kr2;
				if @pl2 = 'T' set @Tperc =  @Tperc+@kr2;
				if @pl2 = 'X' set @Xperc =  @Xperc+@kr2;
				if @pl2= 'AA' set @AAperc=@AAperc+@kr2;
				if @pl2='AR' set   @ARperc=@ARperc+@kr2;
				if @pl2='BA' set   @BAperc=@BAperc+@kr2;
				if @pl2='BB' set   @BBperc=@BBperc+@kr2;
				if @pl2='BR' set   @BRperc=@BRperc+@kr2;
				if @pl2='BS' set   @BSperc=@BSperc+@kr2;
				if @pl2='CI' set   @CIperc=@CIperc+@kr2;
				if @pl2='GA' set   @GAperc=@GAperc+@kr2;
				if @pl2='HE' set   @HEperc=@HEperc+@kr2;
				if @pl2='HL' set   @HLperc=@HLperc+@kr2;
				if @pl2='CH' set   @CHperc=@CHperc+@kr2;
				if @pl2='MA' set   @MAperc=@MAperc+@kr2;
				if @pl2='MB' set   @MBperc=@MBperc+@kr2;
				if @pl2='PI' set   @PIperc=@PIperc+@kr2;
				if @pl2='SB' set   @SBperc=@SBperc+@kr2;
				if @pl2='SD' set   @SDperc=@SDperc+@kr2;
				if @pl2='SG' set   @SGperc=@SGperc+@kr2;
				if @pl2='SH' set   @SHperc=@SHperc+@kr2;
				if @pl2='SL' set   @SLperc=@SLperc+@kr2;
				if @pl2='SM' set   @SMperc=@SMperc+@kr2;
				if @pl2='SV' set   @SVperc=@SVperc+@kr2;
				if @pl2='WG' set   @WGperc=@WGperc+@kr2;
				if @pl2='ZB' set   @ZBperc=@ZBperc+@kr2;
-------------------------------------------------------------
				if @pl3 = 'GL' set @GLperc =  @GLperc+@kr3;
				if @pl3 = 'A' set @Aperc =  @Aperc+@kr3;
				if @pl3 = 'B' set @Bperc =  @Bperc+@kr3;
				if @pl3 = 'D' set @Dperc =  @Dperc+@kr3;
				if @pl3 = 'F' set @Fperc =  @Fperc+@kr3;
				if @pl3 = 'G' set @Gperc =  @Gperc+@kr3;
				if @pl3 = 'H' set @Hperc =  @Hperc+@kr3;
				if @pl3 = 'J' set @Jperc =  @Jperc+@kr3;
				if @pl3 = 'M' set @Mperc =  @Mperc+@kr3;
				if @pl3 = 'N' set @Nperc =  @Nperc+@kr3;
				if @pl3 = 'P' set @Pperc =  @Pperc+@kr3;
				if @pl3 = 'R' set @Rperc =  @Rperc+@kr3;
				if @pl3 = 'S' set @Sperc =  @Sperc+@kr3;
				if @pl3 = 'T' set @Tperc =  @Tperc+@kr3;
				if @pl3 = 'X' set @Xperc =  @Xperc+@kr3;
				if @pl3= 'AA' set @AAperc=@AAperc+@kr3;
				if @pl3='AR' set   @ARperc=@ARperc+@kr3;
				if @pl3='BA' set   @BAperc=@BAperc+@kr3;
				if @pl3='BB' set   @BBperc=@BBperc+@kr3;
				if @pl3='BR' set   @BRperc=@BRperc+@kr3;
				if @pl3='BS' set   @BSperc=@BSperc+@kr3;
				if @pl3='CI' set   @CIperc=@CIperc+@kr3;
				if @pl3='GA' set   @GAperc=@GAperc+@kr3;
				if @pl3='HE' set   @HEperc=@HEperc+@kr3;
				if @pl3='HL' set   @HLperc=@HLperc+@kr3;
				if @pl3='CH' set   @CHperc=@CHperc+@kr3;
				if @pl3='MA' set   @MAperc=@MAperc+@kr3;
				if @pl3='MB' set   @MBperc=@MBperc+@kr3;
				if @pl3='PI' set   @PIperc=@PIperc+@kr3;
				if @pl3='SB' set   @SBperc=@SBperc+@kr3;
				if @pl3='SD' set   @SDperc=@SDperc+@kr3;
				if @pl3='SG' set   @SGperc=@SGperc+@kr3;
				if @pl3='SH' set   @SHperc=@SHperc+@kr3;
				if @pl3='SL' set   @SLperc=@SLperc+@kr3;
				if @pl3='SM' set   @SMperc=@SMperc+@kr3;
				if @pl3='SV' set   @SVperc=@SVperc+@kr3;
				if @pl3='WG' set   @WGperc=@WGperc+@kr3;
				if @pl3='ZB' set   @ZBperc=@ZBperc+@kr3;
				if @pl3='L' set   @Lperc=@Lperc+@kr3;
-------------------------------------------------------------
				if @pl4 = 'GL' set @GLperc =  @GLperc+@kr4;
				if @pl4 = 'A' set @Aperc =  @Aperc+@kr4;
				if @pl4 = 'B' set @Bperc =  @Bperc+@kr4;
				if @pl4 = 'D' set @Dperc =  @Dperc+@kr4;
				if @pl4 = 'F' set @Fperc =  @Fperc+@kr4;
				if @pl4 = 'G' set @Gperc =  @Gperc+@kr4;
				if @pl4 = 'H' set @Hperc =  @Hperc+@kr4;
				if @pl4 = 'J' set @Jperc =  @Jperc+@kr4;
				if @pl4 = 'M' set @Mperc =  @Mperc+@kr4;
				if @pl4 = 'N' set @Nperc =  @Nperc+@kr4;
				if @pl4 = 'P' set @Pperc =  @Pperc+@kr4;
				if @pl4 = 'R' set @Rperc =  @Rperc+@kr4;
				if @pl4 = 'S' set @Sperc =  @Sperc+@kr4;
				if @pl4 = 'T' set @Tperc =  @Tperc+@kr4;
				if @pl4 = 'X' set @Xperc =  @Xperc+@kr4;
				if @pl4= 'AA' set @AAperc=@AAperc+@kr4;
				if @pl4='AR' set   @ARperc=@ARperc+@kr4;
				if @pl4='BA' set   @BAperc=@BAperc+@kr4;
				if @pl4='BB' set   @BBperc=@BBperc+@kr4;
				if @pl4='BR' set   @BRperc=@BRperc+@kr4;
				if @pl4='BS' set   @BSperc=@BSperc+@kr4;
				if @pl4='CI' set   @CIperc=@CIperc+@kr4;
				if @pl4='GA' set   @GAperc=@GAperc+@kr4;
				if @pl4='HE' set   @HEperc=@HEperc+@kr4;
				if @pl4='HL' set   @HLperc=@HLperc+@kr4;
				if @pl4='CH' set   @CHperc=@CHperc+@kr4;
				if @pl4='MA' set   @MAperc=@MAperc+@kr4;
				if @pl4='MB' set   @MBperc=@MBperc+@kr4;
				if @pl4='PI' set   @PIperc=@PIperc+@kr4;
				if @pl4='SB' set   @SBperc=@SBperc+@kr4;
				if @pl4='SD' set   @SDperc=@SDperc+@kr4;
				if @pl4='SG' set   @SGperc=@SGperc+@kr4;
				if @pl4='SH' set   @SHperc=@SHperc+@kr4;
				if @pl4='SL' set   @SLperc=@SLperc+@kr4;
				if @pl4='SM' set   @SMperc=@SMperc+@kr4;
				if @pl4='SV' set   @SVperc=@SVperc+@kr4;
				if @pl4='WG' set   @WGperc=@WGperc+@kr4;
				if @pl4='ZB' set   @ZBperc=@ZBperc+@kr4;
				if @pl4='L' set   @Lperc=@Lperc+@kr4;
-------------------------------------------------------------
				if @pl5 = 'GL' set @GLperc =  @GLperc+@kr5;
				if @pl5 = 'A' set @Aperc =  @Aperc+@kr5;
				if @pl5 = 'B' set @Bperc =  @Bperc+@kr5;
				if @pl5 = 'D' set @Dperc =  @Dperc+@kr5;
				if @pl5 = 'F' set @Fperc =  @Fperc+@kr5;
				if @pl5 = 'G' set @Gperc =  @Gperc+@kr5;
				if @pl5 = 'H' set @Hperc =  @Hperc+@kr5;
				if @pl5 = 'J' set @Jperc =  @Jperc+@kr5;
				if @pl5 = 'M' set @Mperc =  @Mperc+@kr5;
				if @pl5 = 'N' set @Nperc =  @Nperc+@kr5;
				if @pl5 = 'P' set @Pperc =  @Pperc+@kr5;
				if @pl5 = 'R' set @Rperc =  @Rperc+@kr5;
				if @pl5 = 'S' set @Sperc =  @Sperc+@kr5;
				if @pl5 = 'T' set @Tperc =  @Tperc+@kr5;
				if @pl5 = 'X' set @Xperc =  @Xperc+@kr5;
				if @pl5= 'AA' set @AAperc=@AAperc+@kr5;
				if @pl5='AR' set   @ARperc=@ARperc+@kr5;
				if @pl5='BA' set   @BAperc=@BAperc+@kr5;
				if @pl5='BB' set   @BBperc=@BBperc+@kr5;
				if @pl5='BR' set   @BRperc=@BRperc+@kr5;
				if @pl5='BS' set   @BSperc=@BSperc+@kr5;
				if @pl5='CI' set   @CIperc=@CIperc+@kr5;
				if @pl5='GA' set   @GAperc=@GAperc+@kr5;
				if @pl5='HE' set   @HEperc=@HEperc+@kr5;
				if @pl5='HL' set   @HLperc=@HLperc+@kr5;
				if @pl5='CH' set   @CHperc=@CHperc+@kr5;
				if @pl5='MA' set   @MAperc=@MAperc+@kr5;
				if @pl5='MB' set   @MBperc=@MBperc+@kr5;
				if @pl5='PI' set   @PIperc=@PIperc+@kr5;
				if @pl5='SB' set   @SBperc=@SBperc+@kr5;
				if @pl5='SD' set   @SDperc=@SDperc+@kr5;
				if @pl5='SG' set   @SGperc=@SGperc+@kr5;
				if @pl5='SH' set   @SHperc=@SHperc+@kr5;
				if @pl5='SL' set   @SLperc=@SLperc+@kr5;
				if @pl5='SM' set   @SMperc=@SMperc+@kr5;
				if @pl5='SV' set   @SVperc=@SVperc+@kr5;
				if @pl5='WG' set   @WGperc=@WGperc+@kr5;
				if @pl5='ZB' set   @ZBperc=@ZBperc+@kr5;
				if @pl5='L' set   @Lperc=@Lperc+@kr5;
-------------------------------------------------------------


		FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	END
	  
			set @MEDZI2= (select priemMedzi  from plis.dbo.View_CP_MedziObdMeso where chovatel=@chov_id);
	
	close cur_kravy;
	Deallocate cur_kravy
	
	    IF  @GLperc>@plmax1 BEGIN Set @plmax1=@GLperc; Set @plmax1Pismeno='GL'  END
		IF  @Aperc>@plmax1 BEGIN Set @plmax1=@Aperc; Set @plmax1Pismeno='A'  END
		IF  @Bperc>@plmax1 BEGIN Set @plmax1=@Bperc; Set @plmax1Pismeno='B'  END
		IF  @Dperc>@plmax1 BEGIN Set @plmax1=@Dperc; Set @plmax1Pismeno='D'  END
		IF  @Fperc>@plmax1 BEGIN Set @plmax1=@Fperc; Set @plmax1Pismeno='F'  END
		IF  @Gperc>@plmax1 BEGIN Set @plmax1=@Gperc; Set @plmax1Pismeno='G'  END
		IF  @Hperc>@plmax1 BEGIN Set @plmax1=@Hperc; Set @plmax1Pismeno='H'  END
		IF  @Jperc>@plmax1 BEGIN Set @plmax1=@Jperc; Set @plmax1Pismeno='J'  END
		IF  @Lperc>@plmax1 BEGIN Set @plmax1=@Lperc; Set @plmax1Pismeno='L'  END
		IF  @Mperc>@plmax1 BEGIN Set @plmax1=@Mperc; Set @plmax1Pismeno='M'  END
		IF  @Nperc>@plmax1 BEGIN Set @plmax1=@Nperc; Set @plmax1Pismeno='N'  END
		IF  @Pperc>@plmax1 BEGIN Set @plmax1=@Pperc; Set @plmax1Pismeno='P'  END
		IF  @Rperc>@plmax1 BEGIN Set @plmax1=@Rperc; Set @plmax1Pismeno='R'  END
		IF  @Sperc>@plmax1 BEGIN Set @plmax1=@Sperc; Set @plmax1Pismeno='S'  END
		IF  @Tperc>@plmax1 BEGIN Set @plmax1=@Tperc; Set @plmax1Pismeno='T'  END
		IF  @Xperc>@plmax1 BEGIN Set @plmax1=@Xperc; Set @plmax1Pismeno='X'  END
		IF  @AAperc>@plmax1 BEGIN Set @plmax1=@AAperc; Set @plmax1Pismeno='AA'  END
		IF  @ARperc>@plmax1 BEGIN Set @plmax1=@ARperc; Set @plmax1Pismeno='AR'  END
		IF  @BAperc>@plmax1 BEGIN Set @plmax1=@BAperc; Set @plmax1Pismeno='BA'  END
		IF  @BBperc>@plmax1 BEGIN Set @plmax1=@BBperc; Set @plmax1Pismeno='BB'  END
		IF  @BRperc>@plmax1 BEGIN Set @plmax1=@BRperc; Set @plmax1Pismeno='BR'  END
		IF  @BSperc>@plmax1 BEGIN Set @plmax1=@BSperc; Set @plmax1Pismeno='BS'  END
		IF  @CIperc>@plmax1 BEGIN Set @plmax1=@CIperc; Set @plmax1Pismeno='CI'  END
		IF  @GAperc>@plmax1 BEGIN Set @plmax1=@GAperc; Set @plmax1Pismeno='GA'  END
		IF  @HEperc>@plmax1 BEGIN Set @plmax1=@HEperc; Set @plmax1Pismeno='HE'  END
		IF  @HLperc>@plmax1 BEGIN Set @plmax1=@HLperc; Set @plmax1Pismeno='HL'  END
		IF  @CHperc>@plmax1 BEGIN Set @plmax1=@CHperc; Set @plmax1Pismeno='CH'  END
		IF  @MAperc>@plmax1 BEGIN Set @plmax1=@MAperc; Set @plmax1Pismeno='MA'  END
		IF  @MBperc>@plmax1 BEGIN Set @plmax1=@MBperc; Set @plmax1Pismeno='MB'  END
		IF  @PIperc>@plmax1 BEGIN Set @plmax1=@PIperc; Set @plmax1Pismeno='PI'  END
		IF  @SBperc>@plmax1 BEGIN Set @plmax1=@SBperc; Set @plmax1Pismeno='SB'  END
		IF  @SDperc>@plmax1 BEGIN Set @plmax1=@SDperc; Set @plmax1Pismeno='SD'  END
		IF  @SGperc>@plmax1 BEGIN Set @plmax1=@SGperc; Set @plmax1Pismeno='SG'  END
		IF  @SHperc>@plmax1 BEGIN Set @plmax1=@SHperc; Set @plmax1Pismeno='SH'  END
		IF  @SLperc>@plmax1 BEGIN Set @plmax1=@SLperc; Set @plmax1Pismeno='SL'  END
		IF  @SMperc>@plmax1 BEGIN Set @plmax1=@SMperc; Set @plmax1Pismeno='SM'  END
		IF  @SVperc>@plmax1 BEGIN Set @plmax1=@SVperc; Set @plmax1Pismeno='SV'  END
		IF  @WGperc>@plmax1 BEGIN Set @plmax1=@WGperc; Set @plmax1Pismeno='WG'  END
		IF  @ZBperc>@plmax1 BEGIN Set @plmax1=@ZBperc; Set @plmax1Pismeno='ZB'  END
----------------------------------------------------------------------------
-----------------------MAX KRV 2---------------------
  
		IF  (@GLperc>@plmax2 AND @plmax1Pismeno !='GL') BEGIN Set @plmax2=@GLperc; Set @plmax2Pismeno='GL'  END
		IF  (@Aperc>@plmax2 AND @plmax1Pismeno !='A') BEGIN Set @plmax2=@Aperc; Set @plmax2Pismeno='A'  END
		IF  (@Bperc>@plmax2 AND @plmax1Pismeno !='B') BEGIN Set @plmax2=@Bperc; Set @plmax2Pismeno='B'  END
		IF  (@Dperc>@plmax2 AND @plmax1Pismeno !='D') BEGIN Set @plmax2=@Dperc; Set @plmax2Pismeno='D'  END
		IF  (@Fperc>@plmax2 AND @plmax1Pismeno !='F') BEGIN Set @plmax2=@Fperc; Set @plmax2Pismeno='F'  END
		IF  (@Gperc>@plmax2 AND @plmax1Pismeno !='G') BEGIN Set @plmax2=@Gperc; Set @plmax2Pismeno='G'  END
		IF  (@Hperc>@plmax2 AND @plmax1Pismeno !='H') BEGIN Set @plmax2=@Hperc; Set @plmax2Pismeno='H'  END
		IF  (@Jperc>@plmax2 AND @plmax1Pismeno !='J') BEGIN Set @plmax2=@Jperc; Set @plmax2Pismeno='J'  END
		IF  (@Lperc>@plmax2 AND @plmax1Pismeno !='L') BEGIN Set @plmax2=@Lperc; Set @plmax2Pismeno='L'  END
		IF  (@Mperc>@plmax2 AND @plmax1Pismeno !='M') BEGIN Set @plmax2=@Mperc; Set @plmax2Pismeno='M'  END
		IF  (@Nperc>@plmax2 AND @plmax1Pismeno !='N') BEGIN Set @plmax2=@Nperc; Set @plmax2Pismeno='N'  END
		IF  (@Pperc>@plmax2 AND @plmax1Pismeno !='P') BEGIN Set @plmax2=@Pperc; Set @plmax2Pismeno='P'  END
		IF  (@Rperc>@plmax2 AND @plmax1Pismeno !='R') BEGIN Set @plmax2=@Rperc; Set @plmax2Pismeno='R'  END
		IF  (@Sperc>@plmax2 AND @plmax1Pismeno !='S') BEGIN Set @plmax2=@Sperc; Set @plmax2Pismeno='S'  END
		IF  (@Tperc>@plmax2 AND @plmax1Pismeno !='T') BEGIN Set @plmax2=@Tperc; Set @plmax2Pismeno='T'  END
		IF  (@Xperc>@plmax2 AND @plmax1Pismeno !='X') BEGIN Set @plmax2=@Xperc; Set @plmax2Pismeno='X'  END
		IF  (@AAperc>@plmax2 AND @plmax1Pismeno !='AA') BEGIN Set @plmax2=@AAperc; Set @plmax2Pismeno='AA'  END
		IF  (@ARperc>@plmax2 AND @plmax1Pismeno !='AR') BEGIN Set @plmax2=@ARperc; Set @plmax2Pismeno='AR'  END
		IF  (@BAperc>@plmax2 AND @plmax1Pismeno !='BA') BEGIN Set @plmax2=@BAperc; Set @plmax2Pismeno='BA'  END
		IF  (@BBperc>@plmax2 AND @plmax1Pismeno !='BB') BEGIN Set @plmax2=@BBperc; Set @plmax2Pismeno='BB'  END
		IF  (@BRperc>@plmax2 AND @plmax1Pismeno !='BR') BEGIN Set @plmax2=@BRperc; Set @plmax2Pismeno='BR'  END
		IF  (@BSperc>@plmax2 AND @plmax1Pismeno !='BS') BEGIN Set @plmax2=@BSperc; Set @plmax2Pismeno='BS'  END
		IF  (@CIperc>@plmax2 AND @plmax1Pismeno !='CI') BEGIN Set @plmax2=@CIperc; Set @plmax2Pismeno='CI'  END
		IF  (@GAperc>@plmax2 AND @plmax1Pismeno !='GA') BEGIN Set @plmax2=@GAperc; Set @plmax2Pismeno='GA'  END
		IF  (@HEperc>@plmax2 AND @plmax1Pismeno !='HE') BEGIN Set @plmax2=@HEperc; Set @plmax2Pismeno='HE'  END
		IF  (@HLperc>@plmax2 AND @plmax1Pismeno !='HL') BEGIN Set @plmax2=@HLperc; Set @plmax2Pismeno='HL'  END
		IF  (@CHperc>@plmax2 AND @plmax1Pismeno !='CH') BEGIN Set @plmax2=@CHperc; Set @plmax2Pismeno='CH'  END
		IF  (@MAperc>@plmax2 AND @plmax1Pismeno !='MA') BEGIN Set @plmax2=@MAperc; Set @plmax2Pismeno='MA'  END
		IF  (@MBperc>@plmax2 AND @plmax1Pismeno !='MB') BEGIN Set @plmax2=@MBperc; Set @plmax2Pismeno='MB'  END
		IF  (@PIperc>@plmax2 AND @plmax1Pismeno !='PI') BEGIN Set @plmax2=@PIperc; Set @plmax2Pismeno='PI'  END
		IF  (@SBperc>@plmax2 AND @plmax1Pismeno !='SB') BEGIN Set @plmax2=@SBperc; Set @plmax2Pismeno='SB'  END
		IF  (@SDperc>@plmax2 AND @plmax1Pismeno !='SD') BEGIN Set @plmax2=@SDperc; Set @plmax2Pismeno='SD'  END
		IF  (@SGperc>@plmax2 AND @plmax1Pismeno !='SG') BEGIN Set @plmax2=@SGperc; Set @plmax2Pismeno='SG'  END
		IF  (@SHperc>@plmax2 AND @plmax1Pismeno !='SH') BEGIN Set @plmax2=@SHperc; Set @plmax2Pismeno='SH'  END
		IF  (@SLperc>@plmax2 AND @plmax1Pismeno !='SL') BEGIN Set @plmax2=@SLperc; Set @plmax2Pismeno='SL'  END
		IF  (@SMperc>@plmax2 AND @plmax1Pismeno !='SM') BEGIN Set @plmax2=@SMperc; Set @plmax2Pismeno='SM'  END
		IF  (@SVperc>@plmax2 AND @plmax1Pismeno !='SV') BEGIN Set @plmax2=@SVperc; Set @plmax2Pismeno='SV'  END
		IF  (@WGperc>@plmax2 AND @plmax1Pismeno !='WG') BEGIN Set @plmax2=@WGperc; Set @plmax2Pismeno='WG'  END
		IF  (@ZBperc>@plmax2 AND @plmax1Pismeno !='ZB') BEGIN Set @plmax2=@ZBperc; Set @plmax2Pismeno='ZB'  END
--------------------KONEC-------------------------------------------------------------------------------------------------------
----------------MAX KRV3 -------------------------------------------------------------------------------------------------------
		IF  (@GLperc>@plmax3 AND @plmax1Pismeno !='GL' AND @plmax2Pismeno !='GL') BEGIN Set @plmax3=@GLperc; Set @plmax3Pismeno='GL'  END
		IF  (@Aperc>@plmax3 AND @plmax1Pismeno !='A' AND @plmax2Pismeno !='A') BEGIN Set @plmax3=@Aperc; Set @plmax3Pismeno='A'  END
		IF  (@Bperc>@plmax3 AND @plmax1Pismeno !='B' AND @plmax2Pismeno !='B') BEGIN Set @plmax3=@Bperc; Set @plmax3Pismeno='B'  END
		IF  (@Dperc>@plmax3 AND @plmax1Pismeno !='D' AND @plmax2Pismeno !='D') BEGIN Set @plmax3=@Dperc; Set @plmax3Pismeno='D'  END
		IF  (@Fperc>@plmax3 AND @plmax1Pismeno !='F' AND @plmax2Pismeno !='F') BEGIN Set @plmax3=@Fperc; Set @plmax3Pismeno='F'  END
		IF  (@Gperc>@plmax3 AND @plmax1Pismeno !='G' AND @plmax2Pismeno !='G') BEGIN Set @plmax3=@Gperc; Set @plmax3Pismeno='G'  END
		IF  (@Hperc>@plmax3 AND @plmax1Pismeno !='H' AND @plmax2Pismeno !='H') BEGIN Set @plmax3=@Hperc; Set @plmax3Pismeno='H'  END
		IF  (@Jperc>@plmax3 AND @plmax1Pismeno !='J' AND @plmax2Pismeno !='J') BEGIN Set @plmax3=@Jperc; Set @plmax3Pismeno='J'  END
		IF  (@Lperc>@plmax3 AND @plmax1Pismeno !='L' AND @plmax2Pismeno !='L') BEGIN Set @plmax3=@Lperc; Set @plmax3Pismeno='L'  END
		IF  (@Mperc>@plmax3 AND @plmax1Pismeno !='M' AND @plmax2Pismeno !='M') BEGIN Set @plmax3=@Mperc; Set @plmax3Pismeno='M'  END
		IF  (@Nperc>@plmax3 AND @plmax1Pismeno !='N' AND @plmax2Pismeno !='N') BEGIN Set @plmax3=@Nperc; Set @plmax3Pismeno='N'  END
		IF  (@Pperc>@plmax3 AND @plmax1Pismeno !='P' AND @plmax2Pismeno !='P') BEGIN Set @plmax3=@Pperc; Set @plmax3Pismeno='P'  END
		IF  (@Rperc>@plmax3 AND @plmax1Pismeno !='R' AND @plmax2Pismeno !='R') BEGIN Set @plmax3=@Rperc; Set @plmax3Pismeno='R'  END
		IF  (@Sperc>@plmax3 AND @plmax1Pismeno !='S' AND @plmax2Pismeno !='S') BEGIN Set @plmax3=@Sperc; Set @plmax3Pismeno='S'  END
		IF  (@Tperc>@plmax3 AND @plmax1Pismeno !='T' AND @plmax2Pismeno !='T') BEGIN Set @plmax3=@Tperc; Set @plmax3Pismeno='T'  END
		IF  (@Xperc>@plmax3 AND @plmax1Pismeno !='X' AND @plmax2Pismeno !='X') BEGIN Set @plmax3=@Xperc; Set @plmax3Pismeno='X'  END
		IF  (@AAperc>@plmax3 AND @plmax1Pismeno !='AA' AND @plmax2Pismeno !='AA') BEGIN Set @plmax3=@AAperc; Set @plmax3Pismeno='AA'  END
		IF  (@ARperc>@plmax3 AND @plmax1Pismeno !='AR' AND @plmax2Pismeno !='AR') BEGIN Set @plmax3=@ARperc; Set @plmax3Pismeno='AR'  END
		IF  (@BAperc>@plmax3 AND @plmax1Pismeno !='BA' AND @plmax2Pismeno !='BA') BEGIN Set @plmax3=@BAperc; Set @plmax3Pismeno='BA'  END
		IF  (@BBperc>@plmax3 AND @plmax1Pismeno !='BB' AND @plmax2Pismeno !='BB') BEGIN Set @plmax3=@BBperc; Set @plmax3Pismeno='BB'  END
		IF  (@BRperc>@plmax3 AND @plmax1Pismeno !='BR' AND @plmax2Pismeno !='BR') BEGIN Set @plmax3=@BRperc; Set @plmax3Pismeno='BR'  END
		IF  (@BSperc>@plmax3 AND @plmax1Pismeno !='BS' AND @plmax2Pismeno !='BS') BEGIN Set @plmax3=@BSperc; Set @plmax3Pismeno='BS'  END
		IF  (@CIperc>@plmax3 AND @plmax1Pismeno !='CI' AND @plmax2Pismeno !='CI') BEGIN Set @plmax3=@CIperc; Set @plmax3Pismeno='CI'  END
		IF  (@GAperc>@plmax3 AND @plmax1Pismeno !='GA' AND @plmax2Pismeno !='GA') BEGIN Set @plmax3=@GAperc; Set @plmax3Pismeno='GA'  END
		IF  (@HEperc>@plmax3 AND @plmax1Pismeno !='HE' AND @plmax2Pismeno !='HE') BEGIN Set @plmax3=@HEperc; Set @plmax3Pismeno='HE'  END
		IF  (@HLperc>@plmax3 AND @plmax1Pismeno !='HL' AND @plmax2Pismeno !='HL') BEGIN Set @plmax3=@HLperc; Set @plmax3Pismeno='HL'  END
		IF  (@CHperc>@plmax3 AND @plmax1Pismeno !='CH' AND @plmax2Pismeno !='CH') BEGIN Set @plmax3=@CHperc; Set @plmax3Pismeno='CH'  END
		IF  (@MAperc>@plmax3 AND @plmax1Pismeno !='MA' AND @plmax2Pismeno !='MA') BEGIN Set @plmax3=@MAperc; Set @plmax3Pismeno='MA'  END
		IF  (@MBperc>@plmax3 AND @plmax1Pismeno !='MB' AND @plmax2Pismeno !='MB') BEGIN Set @plmax3=@MBperc; Set @plmax3Pismeno='MB'  END
		IF  (@PIperc>@plmax3 AND @plmax1Pismeno !='PI' AND @plmax2Pismeno !='PI') BEGIN Set @plmax3=@PIperc; Set @plmax3Pismeno='PI'  END
		IF  (@SBperc>@plmax3 AND @plmax1Pismeno !='SB' AND @plmax2Pismeno !='SB') BEGIN Set @plmax3=@SBperc; Set @plmax3Pismeno='SB'  END
		IF  (@SDperc>@plmax3 AND @plmax1Pismeno !='SD' AND @plmax2Pismeno !='SD') BEGIN Set @plmax3=@SDperc; Set @plmax3Pismeno='SD'  END
		IF  (@SGperc>@plmax3 AND @plmax1Pismeno !='SG' AND @plmax2Pismeno !='SG') BEGIN Set @plmax3=@SGperc; Set @plmax3Pismeno='SG'  END
		IF  (@SHperc>@plmax3 AND @plmax1Pismeno !='SH' AND @plmax2Pismeno !='SH') BEGIN Set @plmax3=@SHperc; Set @plmax3Pismeno='SH'  END
		IF  (@SLperc>@plmax3 AND @plmax1Pismeno !='SL' AND @plmax2Pismeno !='SL') BEGIN Set @plmax3=@SLperc; Set @plmax3Pismeno='SL'  END
		IF  (@SMperc>@plmax3 AND @plmax1Pismeno !='SM' AND @plmax2Pismeno !='SM') BEGIN Set @plmax3=@SMperc; Set @plmax3Pismeno='SM'  END
		IF  (@SVperc>@plmax3 AND @plmax1Pismeno !='SV' AND @plmax2Pismeno !='SV') BEGIN Set @plmax3=@SVperc; Set @plmax3Pismeno='SV'  END
		IF  (@WGperc>@plmax3 AND @plmax1Pismeno !='WG' AND @plmax2Pismeno !='WG') BEGIN Set @plmax3=@WGperc; Set @plmax3Pismeno='WG'  END
		IF  (@ZBperc>@plmax3 AND @plmax1Pismeno !='ZB' AND @plmax2Pismeno !='ZB') BEGIN Set @plmax3=@ZBperc; Set @plmax3Pismeno='ZB'  END
 declare @okres varchar(3);
 set @okres=SUBSTRING(@chov_id,2,2);
	  -- print N' ------------ ';
	   declare @vaj int;
	   set @vaj=
	   (SELECT tab1.PocVazeny from (/*namiesto View_CP_TELATA210_FULL je tu z neho select, nakolko vo view si management studio prerobi select na nepouzitelny*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2') and t.CHOVATEL = @chov_id
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id) ; 

 declare @hmot int;
 set @hmot=(
 SELECT tab1.avr from (/*namiesto View_CP_TELATA210_FULL je tu z neho select*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2') and t.CHOVATEL = @chov_id
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id
 )

 declare @index float
 IF(@VAJ>0 and @MEDZI2>0)
	BEGIN
		set @index= (@HMOT*365)/@MEDZI2;
	END
	ELSE SET @INDEX=0;
 --print @hmot;
 --print @vaj;
 --print @index
	   

	   declare @kravStav int;
	   declare @MDStav int;
	   set @kravStav=(SELECT count(*)
  FROM [PLIS].[dbo].[CM_Krava]
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null))

  /*
  telata sa vyberaju na zaklade takej podmienky,
  ze mozu byt uz rok vyradene a toto tela sa nenachadza v CM_Krava,
  nakolko uz ako tela nie je povazovane za tela,
  jedine v pripade, ze toto tela je zaradzovane do CM_Krava na zaklade inseminacie a vtedy je na chove ale stale ako tela,
  kde sa chov konci na xxx xxx xx0, preto je do podmienky v nasledujucom selecte pridany atr. priznakku = '2'.
  pri zaradzovani do inseminacie, je sice tato "krava" v CM_Krava, ale je telatom, priznakku ma iny.  
   */
  set @MDStav=(SELECT count(*)
  FROM [PLIS].[dbo].CM_Telata
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null)
   and CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2'))

  declare @nazovPod varchar(50);
  set @nazovPod=(select NAZOVSKR from NM_Podnik where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2) and podnik=SUBSTRING(@chov_id,4,3));

  declare @kraj varchar(20);
  set @kraj=(select nazov from plis.dbo.NC_KRAJ where kraj=SUBSTRING(@chov_id,1,1));
  set @kraj=SUBSTRING(@chov_id,1,1)+'-'+@kraj;

  declare @okres11 varchar(20);
  set @okres11=(select NAZOV from plis.dbo.NC_OKRES where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2));
  set @okres11 = SUBSTRING(@chov_id,2,2)+'-'+@okres11

	    insert into dbo.CP_ChovatelMesoPlemena ([kraj],[okres],[podnik],[chov],[chovatel],[pl1],[pl2],[pl3],[nazov],[MEDZI],[POCET_VAZENI],[HMOTNOST],[HODN_INDEX],[stav_kravy],[stav_MD],[nazovPodnik]) 
		      values (@kraj,@okres11,SUBSTRING(@chov_id,4,3),SUBSTRING(@chov_id,7,3),@chov_id,@plmax1Pismeno,@plmax2Pismeno,@plmax3Pismeno,(select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3)),@MEDZI2,@VAJ,@hmot,@index,@kravStav,@MDStav,@nazovPod);
			

		--insert into dbo.CP_ChovatelMesoPlemena() select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3);

       FETCH NEXT FROM cur_Chovatel INTO @chov_id;  
END   

close cur_chovatel
Deallocate cur_chovatel
--PRINT 'KONIEC';
RETURN
END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.06.2016
-- Description:	Priprava dat pre zostavu - Prehľad vyradených kráv - Hodnotiace prehľady v KÚ mlieka - podla dni v dojeni
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_VyrKravyPodlaDniVDojeni]
	@chov varchar(9)
AS
BEGIN
	SET NOCOUNT ON;

	SELECT 
	case when l.LAKTDNI between 0 and 29	and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s51_0,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s51_1,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s51_2,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s51_3,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s51_4,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s51_5,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s51_6,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s51_7,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s51_8,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s51_9,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s51_10,
	case when l.LAKTDNI between 0 and 29 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s51_11,
	case when l.LAKTDNI between 0 and 29 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek51,
	case when l.LAKTDNI between 0 and 29 then MLIEKOPR else 0 end as ml51,
	case when l.LAKTDNI between 0 and 29 then 1 else 0 end as poc51,

	case when l.LAKTDNI between 30 and 59												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s52_0,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s52_1,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s52_2,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s52_3,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s52_4,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s52_5,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s52_6,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s52_7,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s52_8,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s52_9,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s52_10,
	case when l.LAKTDNI between 30 and 59 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s52_11,
	case when l.LAKTDNI between 30 and 59 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek52,
	case when l.LAKTDNI between 30 and 59 then MLIEKOPR else 0 end as ml52,
	case when l.LAKTDNI between 30 and 59 then 1 else 0 end as poc52,

	case when l.LAKTDNI between 60 and 89												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s53_0,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s53_1,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s53_2,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s53_3,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s53_4,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s53_5,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s53_6,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s53_7,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s53_8,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s53_9,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s53_10,
	case when l.LAKTDNI between 60 and 89 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s53_11,
	case when l.LAKTDNI between 60 and 89 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek53,
	case when l.LAKTDNI between 60 and 89 then MLIEKOPR else 0 end as ml53,
	case when l.LAKTDNI between 60 and 89 then 1 else 0 end as poc53,

	case when l.LAKTDNI between 90 and 119												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s54_0,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s54_1,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s54_2,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s54_3,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s54_4,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s54_5,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s54_6,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s54_7,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s54_8,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s54_9,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s54_10,
	case when l.LAKTDNI between 90 and 119 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s54_11,
	case when l.LAKTDNI between 90 and 119 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek54,
	case when l.LAKTDNI between 90 and 119 then MLIEKOPR else 0 end as ml54,
	case when l.LAKTDNI between 90 and 119 then 1 else 0 end as poc54,

	case when l.LAKTDNI between 120 and 149												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s55_0,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s55_1,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s55_2,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s55_3,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s55_4,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s55_5,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s55_6,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s55_7,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s55_8,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s55_9,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s55_10,
	case when l.LAKTDNI between 120 and 149 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s55_11,
	case when l.LAKTDNI between 120 and 149 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek55,
	case when l.LAKTDNI between 120 and 149 then MLIEKOPR else 0 end as ml55,
	case when l.LAKTDNI between 120 and 149 then 1 else 0 end as poc55,

	case when l.LAKTDNI between 150 and 179												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s56_0,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s56_1,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s56_2,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s56_3,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s56_4,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s56_5,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s56_6,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s56_7,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s56_8,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s56_9,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s56_10,
	case when l.LAKTDNI between 150 and 179 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s56_11,
	case when l.LAKTDNI between 150 and 179 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek56,
	case when l.LAKTDNI between 150 and 179 then MLIEKOPR else 0 end as ml56,
	case when l.LAKTDNI between 150 and 179 then 1 else 0 end as poc56,

	case when l.LAKTDNI between 180 and 209												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s57_0,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s57_1,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s57_2,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s57_3,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s57_4,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s57_5,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s57_6,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s57_7,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s57_8,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s57_9,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s57_10,
	case when l.LAKTDNI between 180 and 209 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s57_11,
	case when l.LAKTDNI between 180 and 209 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek57,
	case when l.LAKTDNI between 180 and 209 then MLIEKOPR else 0 end as ml57,
	case when l.LAKTDNI between 180 and 209 then 1 else 0 end as poc57,

	case when l.LAKTDNI between 210 and 239												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s58_0,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s58_1,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s58_2,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s58_3,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s58_4,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s58_5,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s58_6,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s58_7,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s58_8,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s58_9,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s58_10,
	case when l.LAKTDNI between 210 and 239 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s58_11,
	case when l.LAKTDNI between 210 and 239 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek58,
	case when l.LAKTDNI between 210 and 239 then MLIEKOPR else 0 end as ml58,
	case when l.LAKTDNI between 210 and 239 then 1 else 0 end as poc58,

	case when l.LAKTDNI between 240 and 269												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s59_0,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s59_1,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s59_2,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s59_3,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s59_4,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s59_5,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s59_6,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s59_7,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s59_8,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s59_9,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s59_10,
	case when l.LAKTDNI between 240 and 269 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s59_11,
	case when l.LAKTDNI between 240 and 269 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek59,
	case when l.LAKTDNI between 240 and 269 then MLIEKOPR else 0 end as ml59,
	case when l.LAKTDNI between 240 and 269 then 1 else 0 end as poc59,

	case when l.LAKTDNI between 270 and 299												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s60_0,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s60_1,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s60_2,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s60_3,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s60_4,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s60_5,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s60_6,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s60_7,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s60_8,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s60_9,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s60_10,
	case when l.LAKTDNI between 270 and 299 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s60_11,
	case when l.LAKTDNI between 270 and 299 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek60,
	case when l.LAKTDNI between 270 and 299 then MLIEKOPR else 0 end as ml60,
	case when l.LAKTDNI between 270 and 299 then 1 else 0 end as poc60,

	case when l.LAKTDNI > 300												 and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(0)	 then 1 else 0 end as s61_0,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(0)  and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-1) then 1 else 0 end as s61_1,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-1) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-2) then 1 else 0 end as s61_2,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-2) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-3) then 1 else 0 end as s61_3,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-3) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-4) then 1 else 0 end as s61_4,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-4) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-5) then 1 else 0 end as s61_5,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-5) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-6) then 1 else 0 end as s61_6,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-6) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-7) then 1 else 0 end as s61_7,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-7) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-8) then 1 else 0 end as s61_8,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-8) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-9) then 1 else 0 end as s61_9,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-9) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-10) then 1 else 0 end as s61_10,
	case when l.LAKTDNI > 300 and DATVYR < plis.dbo.PrvyDenMesiacaOdDnes(-10) and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11) then 1 else 0 end as s61_11,
	case when l.LAKTDNI > 300 then DATEDIFF(day, DATNAR, DATVYR) else 0 end as vek61,
	case when l.LAKTDNI > 300 then MLIEKOPR else 0 end as ml61,
	case when l.LAKTDNI > 300 then 1 else 0 end as poc61

	into #temp_vyrad_podla_dni
	  FROM CM_Krava as k
	  LEFT JOIN CM_Naplak as l
		ON k.CISKRAVY = l.CISKRAVY
	  where k.CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)

	select poradie, kod, m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11, poc, priemvek, priemml
		 into #temp2_vyrad_podla_dni_ from
	(select
	1 as poradie, '0 - 29 dní' as kod, sum(s51_0) as m0, sum(s51_1) as m1,sum(s51_2) as m2,sum(s51_3) as m3, sum(s51_4) as m4, sum(s51_5) as m5, sum(s51_6) as m6, sum(s51_7) as m7, sum(s51_8) as m8, sum(s51_9) as m9, sum(s51_10) as m10, sum(s51_11) as m11, sum(poc51) as poc, sum(vek51)/nullif(sum(poc51), 0) as priemvek, sum(ml51)/nullif(sum(poc51), 0) as priemml
	 from #temp_vyrad_podla_dni
	union
	select
	2, '30 - 59 dní', sum(s52_0), sum(s52_1),sum(s52_2),sum(s52_3), sum(s52_4), sum(s52_5), sum(s52_6), sum(s52_7), sum(s52_8), sum(s52_9), sum(s52_10), sum(s52_11),  sum(poc52), sum(vek52)/nullif(sum(poc52), 0), sum(ml52)/nullif(sum(poc52), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	3, '60 - 89 dní', sum(s53_0), sum(s53_1),sum(s53_2),sum(s53_3), sum(s53_4), sum(s53_5), sum(s53_6), sum(s53_7), sum(s53_8), sum(s53_9), sum(s53_10), sum(s53_11),  sum(poc53), sum(vek53)/nullif(sum(poc53), 0), sum(ml53)/nullif(sum(poc53), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	4, '90-119 dní', sum(s54_0), sum(s54_1),sum(s54_2),sum(s54_3), sum(s54_4), sum(s54_5), sum(s54_6), sum(s54_7), sum(s54_8), sum(s54_9), sum(s54_10), sum(s54_11),  sum(poc54), sum(vek54)/nullif(sum(poc54), 0), sum(ml54)/nullif(sum(poc54), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	5, '120 - 149 dní', sum(s55_0), sum(s55_1),sum(s55_2),sum(s55_3), sum(s55_4), sum(s55_5), sum(s55_6), sum(s55_7), sum(s55_8), sum(s55_9), sum(s55_10), sum(s55_11),  sum(poc55), sum(vek55)/nullif(sum(poc55), 0), sum(ml55)/nullif(sum(poc55), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	6, '150 - 179 dní', sum(s56_0), sum(s56_1),sum(s56_2),sum(s56_3), sum(s56_4), sum(s56_5), sum(s56_6), sum(s56_7), sum(s56_8), sum(s56_9), sum(s56_10), sum(s56_11),  sum(poc56), sum(vek56)/nullif(sum(poc56), 0), sum(ml56)/nullif(sum(poc56), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	7, '180 - 209 dní', sum(s57_0), sum(s57_1),sum(s57_2),sum(s57_3), sum(s57_4), sum(s57_5), sum(s57_6), sum(s57_7), sum(s57_8), sum(s57_9), sum(s57_10), sum(s57_11),  sum(poc57), sum(vek57)/nullif(sum(poc57), 0), sum(ml57)/nullif(sum(poc57), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	8, '210 - 239 dní', sum(s58_0), sum(s58_1),sum(s58_2),sum(s58_3), sum(s58_4), sum(s58_5), sum(s58_6), sum(s58_7), sum(s58_8), sum(s58_9), sum(s58_10), sum(s58_11),  sum(poc58), sum(vek58)/nullif(sum(poc58), 0), sum(ml58)/nullif(sum(poc58), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	9, '240 - 269 dní', sum(s59_0), sum(s59_1),sum(s59_2),sum(s59_3), sum(s59_4), sum(s59_5), sum(s59_6), sum(s59_7), sum(s59_8), sum(s59_9), sum(s59_10), sum(s59_11),  sum(poc59), sum(vek59)/nullif(sum(poc59), 0), sum(ml59)/nullif(sum(poc59), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	10, '270 - 299 dní', sum(s60_0), sum(s60_1),sum(s60_2),sum(s60_3), sum(s60_4), sum(s60_5), sum(s60_6), sum(s60_7), sum(s60_8), sum(s60_9), sum(s60_10), sum(s60_11),  sum(poc60), sum(vek60)/nullif(sum(poc60), 0), sum(ml60)/nullif(sum(poc60), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	11, '> 300 dní', sum(s61_0), sum(s61_1),sum(s61_2),sum(s61_3), sum(s61_4), sum(s61_5), sum(s61_6), sum(s61_7), sum(s61_8), sum(s61_9), sum(s61_10), sum(s61_11),  sum(poc61), sum(vek61)/nullif(sum(poc61), 0), sum(ml61)/nullif(sum(poc61), 0)
	 from #temp_vyrad_podla_dni
	union
	select
	12, 'Celkom',sum(s51_0)+sum(s52_0)+sum(s53_0)+sum(s54_0)+sum(s55_0)+sum(s56_0)+sum(s57_0)+sum(s58_0)+sum(s59_0)+sum(s60_0)+sum(s61_0), 
	sum(s51_1)+sum(s52_1)+sum(s53_1)+sum(s54_1)+sum(s55_1)+sum(s56_1)+sum(s57_1)+sum(s58_1)+sum(s59_1)+sum(s60_1)+sum(s61_1),
	sum(s51_2)+sum(s52_2)+sum(s53_2)+sum(s54_2)+sum(s55_2)+sum(s56_2)+sum(s57_2)+sum(s58_2)+sum(s59_2)+sum(s60_2)+sum(s61_2),
	sum(s51_3)+sum(s52_3)+sum(s53_3)+sum(s54_3)+sum(s55_3)+sum(s56_3)+sum(s57_3)+sum(s58_3)+sum(s59_3)+sum(s60_3)+sum(s61_3),
	sum(s51_4)+sum(s52_4)+sum(s53_4)+sum(s54_4)+sum(s55_4)+sum(s56_4)+sum(s57_4)+sum(s58_4)+sum(s59_4)+sum(s60_4)+sum(s61_4),
	sum(s51_5)+sum(s52_5)+sum(s53_5)+sum(s54_5)+sum(s55_5)+sum(s56_5)+sum(s57_5)+sum(s58_5)+sum(s59_5)+sum(s60_5)+sum(s61_5),
	sum(s51_6)+sum(s52_6)+sum(s53_6)+sum(s54_6)+sum(s55_6)+sum(s56_6)+sum(s57_6)+sum(s58_6)+sum(s59_6)+sum(s60_6)+sum(s61_6),
	sum(s51_7)+sum(s52_7)+sum(s53_7)+sum(s54_7)+sum(s55_7)+sum(s56_7)+sum(s57_7)+sum(s58_7)+sum(s59_7)+sum(s60_7)+sum(s61_7),
	sum(s51_8)+sum(s52_8)+sum(s53_8)+sum(s54_8)+sum(s55_8)+sum(s56_8)+sum(s57_8)+sum(s58_8)+sum(s59_8)+sum(s60_8)+sum(s61_8),
	sum(s51_9)+sum(s52_9)+sum(s53_9)+sum(s54_9)+sum(s55_9)+sum(s56_9)+sum(s57_9)+sum(s58_9)+sum(s59_9)+sum(s60_9)+sum(s61_9),
	sum(s51_10)+sum(s52_10)+sum(s53_10)+sum(s54_10)+sum(s55_10)+sum(s56_10)+sum(s57_10)+sum(s58_10)+sum(s59_10)+sum(s60_10)+sum(s61_10),
	sum(s51_11)+sum(s52_11)+sum(s53_11)+sum(s54_11)+sum(s55_11)+sum(s56_11)+sum(s57_11)+sum(s58_11)+sum(s59_11)+sum(s60_11)+sum(s61_11),
	sum(poc51)+sum(poc52)+sum(poc53)+sum(poc54)+sum(poc55)+sum(poc56)+sum(poc57)+sum(poc58)+sum(poc59)+sum(poc60)+sum(poc61),
	(sum(vek51)+sum(vek52)+sum(vek53)+sum(vek54)+sum(vek55)+sum(vek56)+sum(vek57)+sum(vek58)+sum(vek59)+sum(vek60)+sum(vek61)) / (select count(*) FROM CM_Krava where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11)),
	(sum(ml51)+sum(ml52)+sum(ml53)+sum(ml54)+sum(ml55)+sum(ml56)+sum(ml57)+sum(ml58)+sum(ml59)+sum(ml60)+sum(ml61)) / (select count(*) FROM CM_Krava  where CHOVATEL = @chov and DATVYR >= plis.dbo.PrvyDenMesiacaOdDnes(-11))
	 from #temp_vyrad_podla_dni) as s

	declare @s varchar(1000)

	set @s = 'select kod as [Dni v dojení], 
	nullif(m0, 0) as ['+convert(varchar(2), getdate(), 10)  + '.' + convert(varchar(2), getdate(), 11)+'], 
	nullif(m1, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-1), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-1), 11)+'], 
	nullif(m2, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-2), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-2), 11)+'], 
	nullif(m3, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-3), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-3), 11)+'], 
	nullif(m4, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-4), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-4), 11)+'], 
	nullif(m5, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-5), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-5), 11)+'], 
	nullif(m6, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-6), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-6), 11)+'], 
	nullif(m7, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-7), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-7), 11)+'], 
	nullif(m8, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-8), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-8), 11)+'], 
	nullif(m9, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-9), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-9), 11)+'], 
	nullif(m10, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-10), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-10), 11)+'], 
	nullif(m11, 0) as ['+convert(varchar(2), dbo.PrvyDenMesiacaOdDnes(-11), 10)  + '.' + convert(varchar(2),  dbo.PrvyDenMesiacaOdDnes(-11), 11)+'], 
	poc as Celkom,
	convert(decimal(4,2),priemvek/365.0) as [Priem. vek (roky)], 
	convert(decimal(7,2),priemml) as [Priem. mlieko (kg)]
	from #temp2_vyrad_podla_dni_
	where priemvek is not null
	order by poradie'

	EXEC(@s)
END
go

CREATE PROCEDURE [dbo].[CR_Zostava_Laktacie_Plem_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 


END

go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_telata_3B] 
	
AS
BEGIN
	

--	TRUNCATE TABLE plis.dbo.[View_CP_Meso_3B_2cast] 
	TRUNCATE TABLE plis.dbo.cp_meso_telata_3b_1

	declare @c as varchar(9);
	declare @y as varchar(4);
	declare @m as varchar(2);

	declare @m1k as int;
	declare @m1j as int;
	declare @m1s as int;

	declare @m2k as int;
	declare @m2j as int;
	declare @m2s as int;

	declare @m3k as int;
	declare @m3j as int;
	declare @m3s as int;

	declare @m4k as int;
	declare @m4j as int;
	declare @m4s as int;

	declare @m5k as int;
	declare @m5j as int;
	declare @m5s as int;

	declare @m6k as int;
	declare @m6j as int;
	declare @m6s as int;

	declare @m7k as int;
	declare @m7j as int;
	declare @m7s as int;

	declare @m8k as int;
	declare @m8j as int;
	declare @m8s as int;

	declare @m9k as int;
	declare @m9j as int;
	declare @m9s as int;

	declare @m10k as int;
	declare @m10j as int;
	declare @m10s as int;

	declare @m11k as int;
	declare @m11j as int;
	declare @m11s as int;

	declare @m12k as int;
	declare @m12j as int;
	declare @m12s as int;

	declare chov cursor for
		select distinct chovatel 
		from plis.[dbo].[View_CP_meso_zoznamTelata]

	open chov;
	fetch next from chov into @c;

	while @@FETCH_STATUS=0
	begin
	 
	 declare yearT cursor for
		select distinct  convert(varchar,YEAR(DATNAR)) as rok
		from plis.[dbo].[View_CP_meso_zoznamTelata]
		where chovatel=@c
	
		open yearT;
		fetch next from yearT into @y;

		while @@FETCH_STATUS=0
		begin 
			
			set @m1k=0;
				set @m1j=0;
				set @m1s=0;

				set @m2k=0;
				set @m2j=0;
				set @m2s=0;

				set @m3k=0;
				set @m3j=0;
				set @m3s=0;

				set @m4k=0;
				set @m4j=0;
				set @m4s=0;

				set @m5k=0;
				set @m5j=0;
				set @m5s=0;

				set @m6k=0;
				set @m6j=0;
				set @m6s=0;

				set @m7k=0;
				set @m7j=0;
				set @m7s=0;

				set @m8k=0;
				set @m8j=0;
				set @m8s=0;

				set @m9k=0;
				set @m9j=0;
				set @m9s=0;

				set @m10k=0;
				set @m10j=0;
				set @m10s=0;

				set @m11k=0;
				set @m11j=0;
				set @m11s=0;

				set @m12k=0;
				set @m12j=0;
				set @m12s=0;

			declare monthT cursor for
				select distinct  convert(varchar,month(DATNAR)) as montha
				from plis.[dbo].[View_CP_meso_zoznamTelata]
				where chovatel=@c
				and Year(DATNAR)=@y

			open monthT
			fetch next from monthT into @m

			while @@FETCH_STATUS=0
			begin 
				
				

				if(@m=1)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m1s,@m1j,@m1k;

					close t
					deallocate t
				end

				if(@m=2)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m2s,@m2j,@m2k;

					close t
					deallocate t
				end

				if(@m=3)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m3s,@m3j,@m3k;

					close t
					deallocate t
				end

				if(@m=4)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m4s,@m4j,@m4k;

					close t
					deallocate t
				end


				if(@m=5)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m5s,@m5j,@m5k;

					close t
					deallocate t
				end


				if(@m=6)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m6s,@m6j,@m6k;

					close t
					deallocate t
				end


				if(@m=7)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m7s,@m7j,@m7k;

					close t
					deallocate t
				end


				if(@m=8)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m8s,@m8j,@m8k;

					close t
					deallocate t
				end

				if(@m=9)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m9s,@m9j,@m9k;

					close t
					deallocate t
				end

				if(@m=10)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m10s,@m10j,@m10k;

					close t
					deallocate t
				end

				if(@m=11)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m11s,@m11j,@m11k;

					close t
					deallocate t
				end


				if(@m=12)
				begin
					declare  t cursor for
					select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
					from plis.dbo.CM_Telata as t
					left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
					on t.CHOVATEL=v1.chovatel 
					left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
					on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
					left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
					on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

					where t.chovatel=@c
					and v1.rok=@y
					and v1.mesac=@m

					open t
					fetch next from t into @m12s,@m12j,@m12k;

					close t
					deallocate t
				end
				fetch next from monthT into @m
			end

			insert into plis.dbo.cp_meso_telata_3b_1 values (
																@c,
																@y,
																'Krava',
																@m1k,
																@m2k,
																@m3k,
																@m4k,
																@m5k,
																@m6k,
																@m7k,
																@m8k,
																@m9k,
																@m10k,
																@m11k,
																@m12k
															)
				insert into plis.dbo.cp_meso_telata_3b_1 values (
																@c,
																@y,
																'Jalovica',
																@m1j,
																@m2j,
																@m3j,
																@m4j,
																@m5j,
																@m6j,
																@m7j,
																@m8j,
																@m9j,
																@m10j,
																@m11j,
																@m12j
															)
		
		insert into plis.dbo.cp_meso_telata_3b_1 values (
																@c,
																@y,
																'Spolu',
																@m1s,
																@m2s,
																@m3s,
																@m4s,
																@m5s,
																@m6s,
																@m7s,
																@m8s,
																@m9s,
																@m10s,
																@m11s,
																@m12s
															)

				
			close monthT
			deallocate monthT
			fetch next from yearT into @y;
		end

		close yearT
		deallocate yearT
	 fetch next from chov into @c;
	end

	close chov;
	deallocate chov;
END
go


-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 02.06.2015
-- Last update: 01.07.2015 -- osetrenie chyby pri duplicitnom plemene
--				02.07.2015 -- vracaju sa aj NULL spravnePS - nastava v pripade, kedy sa neda vypocitat, pretoze je chyba v rodicovi
								-- tj. ma neznameho rodica, rodic nema PS, rodic ma chybny sucet PS
-- Description:	Vypocet chybnych Plemennych skladieb
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_VypocNespravnaPlemennaSkladba_CHOV]
	@CHOVATEL [varchar] (9)
AS
BEGIN
	DELETE FROM CP_VypocNespravnaPlemennaSkladba where CHOV = @CHOVATEL

	DECLARE 
		--@chovatel as varchar(9),
		@uscislo as varchar(14),
		@otec as varchar(14),
		@matka as varchar(14),
		@kategoria as int,

		@PL1 [varchar](2),
		@KR1 [decimal](5,2),
		@PL2 [varchar](2),
		@KR2 [decimal](5,2),
		@PL3 [varchar](2),
		@KR3 [decimal](5,2),
		@PL4 [varchar](2),
		@KR4 [decimal](5,2),
		@PL5 [varchar](2),	

		@skladba as varchar(50),
		@pocet as int,
		@pocet_zmeny as int,
		@i as int;

	set @i = 1;
	set @pocet_zmeny = 0;

	set @pocet = (select count(*) from cm_krava
	where DOVVYR IS NULL 
	AND CISKRAVY is not null AND CHOVATEL = @chovatel
	and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
	and (OUSCIS is not null and MA is not null) )
	+
	(select count(*) from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null) )
	and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) )

	declare krava cursor  for	

	SELECT CISKRAVY, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUSCIS, MA, CHOVATEL, 1 as kategoria
	from cm_krava 
	where DOVVYR IS NULL 
	--AND CISKRAVY is not null 
    AND CHOVATEL = @chovatel
		and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
		and (OUSCIS is not null and MA is not null)
	UNION
	SELECT CISTELATA, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUC, MATKA, CHOVATEL, 2 as kategoria
	from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null 
	AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null)
		and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) 
	and CISTELATA not in (select ciskravy from cm_krava  where DOVVYR IS NULL 
							AND CHOVATEL =  @chovatel
							and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
							and (OUSCIS is not null and MA is not null)							
						)

	declare @stav2 varchar(50);

	open krava	
	fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;	
	WHILE @@FETCH_STATUS = 0 
		begin
			set @i = @i + 1;
			if (@i % 1000 = 0)
				print CAST(@i as varchar) + ' z ' + CAST(@pocet as varchar)
			--set @skladba = (select ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
			set @skladba = null
			set @stav2 = 'zhoda'
			select @skladba = case when p.PL1  is not null then
								ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
								+ ISNULL(p.PL2 + '-' + CONVERT(varchar, p.KR2), '') + '  ' 
								+ ISNULL(p.PL3 + '-' + CONVERT(varchar, p.KR3), '') + '  ' 
								+ ISNULL(p.PL4 + '-' + CONVERT(varchar, p.KR4), '') + '  ' 
								+ ISNULL(p.PL5, '') 
								end,--else '---' end,
								@stav2 = stav
							from C_aktual_plem_potomok_funkcia (@otec, @matka, @chovatel) as p
							where
								(
								--@PL1 <> p.PL1 OR
								--p.KR1 NOT BETWEEN @KR1 - 0.1 AND @KR1 + 0.1 OR
								----@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								--@PL2 <> p.PL2 OR
								--p.KR2 NOT BETWEEN @KR2 - 0.1 AND @KR2 + 0.1 OR
								----@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								--@PL3 <> p.PL3 OR
								----@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								--p.KR3 NOT BETWEEN @KR3 - 0.1 AND @KR3 + 0.1 OR
								--@PL4 <> p.PL4 OR
								----@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--p.KR4 NOT BETWEEN @KR4 - 0.1 AND @KR4 + 0.1 OR
								----@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								--@PL5 is not null
								--)
								@PL1 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								@PL2 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								@PL3 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								@PL4 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								@PL5 is not null
								)
								--podmienky pre osetrenie duplicity plemena
								OR
								(@PL1 in (@PL2, @PL3, @PL4, @PL5)
								or @PL2 in (@PL1, @PL3, @PL4, @PL5)
								or @PL3 in (@PL2, @PL1, @PL4, @PL5)
								or @PL4 in (@PL2, @PL3, @PL1, @PL5)
								or @PL5 in (@PL2, @PL3, @PL4, @PL1)
								)
								--(p.PL1 in (p.PL2, p.PL3, p.PL4, p.PL5)
								--or p.PL2 in (p.PL1, p.PL3, p.PL4, p.PL5)
								--or p.PL3 in (p.PL2, p.PL1, p.PL4, p.PL5)
								--or p.PL4 in (p.PL2, p.PL3, p.PL1, p.PL5)
								--or p.PL5 in (p.PL2, p.PL3, p.PL4, p.PL1))
							

			 print ('u: ' + @uscislo + 
					'    ch: ' + ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
								ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
								ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
								ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
								ISNULL(@PL5, '') + 
					'    s: ' + isNULL(@skladba, 'NULL') +
					'    stav: ' + isNULL(@stav2, 'NULL') )

			 --if (@skladba is not null and @stav2 = 'ok')
			 --if (@skladba is not null and @stav2 <> 'zhoda')

			 if (@stav2 <> 'zhoda')
			 --if (@skladba is not null)
			 begin
					set @pocet_zmeny = @pocet_zmeny + 1;
					delete from CP_VypocNespravnaPlemennaSkladba where uscislo = @uscislo and kategoria = @kategoria
					insert into CP_VypocNespravnaPlemennaSkladba
					values ( @uscislo
							, @kategoria
							, ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
								ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
								ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
								ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
								ISNULL(@PL5, '')
							, @skladba, @CHOVATEL	 )
			end
			fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;
		end
	close krava;
	deallocate krava;

	print 'najdenych rozdielov: ' + CAST(@pocet_zmeny as varchar)
END

go

/****** Script for SelectTopNRows command from SSMS  ******/
/**najstarsie kravy v kontrole**/
/** z vyselektovanych krav sa vyberie jedna za kazde plemeno zvlast --- str 19 **/

CREATE procedure  [dbo].[Roc_MLHD_8]
	
	@datumOd date,
	@datumDo date

	as 
	begin


--declare @datumod varchar(15) ='2017-01-01'
--declare @datumdo varchar(15) ='2017-12-31'


select top 5 k.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,k.DATNAR
			,k.PL1
			,k.KR1,k.PL2,k.KR2
			,k.DATPOSKONT
			,k.PORPREBLAK
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY and Lakt.ZMENA in ('30','40')) as pocet_norm_lakt
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY ) as pocet_vsetkych_lakt
			,sum(Lakt.MLIEKCEL) as ML_celk
			,sum(Lakt.MLIEKNOR) as ML_norm

 from CM_Krava as k
	left outer join View_CP_LaktaciePreZostavy as Lakt on Lakt.CISKRAVY = k.CISKRAVY
	left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
	left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = SUBSTRING(k.CHOVATEL,1,6)
	left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(k.CHOVATEL,1,3)
		where k.DOVVYR is null and k.DATVYR is null 
			and ch.ZRUS is null and ch.datumZrusenia is null
			and k.DATPOSKONT > @datumod and k.DATPOSKONT < @datumdo
			and k.DATNAR is not null
			and k.PL1 in( 'H','R')
			and k.KR1 >= 75
			and k.PRIZNAKKU='1'
			group by k.DATNAR,k.CISKRAVY,o.NAZOV ,p.NAZOVSKR,ch.NAZOV,k.PL1,k.DATPOSKONT,k.PORPREBLAK,k.KR1,k.PL2,k.KR2
			order by k.DATNAR 

	select top 5 k.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,k.DATNAR
			,k.PL1
			,k.KR1,k.PL2,k.KR2
			,k.DATPOSKONT
			,k.PORPREBLAK
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY and Lakt.ZMENA in ('30','40')) as pocet_norm_lakt
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY ) as pocet_vsetkych_lakt
			,sum(Lakt.MLIEKCEL) as ML_celk
			,sum(Lakt.MLIEKNOR) as ML_norm

 from CM_Krava as k
	left outer join View_CP_LaktaciePreZostavy as Lakt on Lakt.CISKRAVY = k.CISKRAVY
	left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
	left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = SUBSTRING(k.CHOVATEL,1,6)
	left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(k.CHOVATEL,1,3)
		where k.DOVVYR is null and k.DATVYR is null 
			and ch.ZRUS is null and ch.datumZrusenia is null
			and k.DATPOSKONT > @datumod and k.DATPOSKONT < @datumdo
			and k.DATNAR is not null
			and k.PL1 in( 'S','MB')
			and k.KR1>= 75
			and k.PRIZNAKKU='1'
			group by k.DATNAR,k.CISKRAVY,o.NAZOV ,p.NAZOVSKR,ch.NAZOV,k.PL1,k.DATPOSKONT,k.PORPREBLAK,k.KR1,k.PL2,k.KR2
			order by k.DATNAR 


	select top 5 k.CISKRAVY
			,o.NAZOV as OKRES
			,p.NAZOVSKR as PODNIK
			,ch.NAZOV as Chov
			,k.DATNAR
			,k.PL1
			,k.KR1
			,k.PL2
			,k.KR2
			,k.DATPOSKONT
			,k.PORPREBLAK
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY and Lakt.ZMENA in ('30','40')) as pocet_norm_lakt
			,(select count(Lakt.PORLAK)from View_CP_LaktaciePreZostavy as Lakt where Lakt.CISKRAVY=k.CISKRAVY ) as pocet_vsetkych_lakt
			,sum(Lakt.MLIEKCEL) as ML_celk
			,sum(Lakt.MLIEKNOR) as ML_norm

 from CM_Krava as k
	left outer join View_CP_LaktaciePreZostavy as Lakt on Lakt.CISKRAVY = k.CISKRAVY
	left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
	left outer join NM_PODNIK as p on p.KRAJ + p.OKRES + p.PODNIK = SUBSTRING(k.CHOVATEL,1,6)
	left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(k.CHOVATEL,1,3)
		where k.DOVVYR is null and k.DATVYR is null 
			and ch.ZRUS is null and ch.datumZrusenia is null
			and k.DATPOSKONT > @datumod and k.DATPOSKONT < @datumdo
			and k.DATNAR is not null
			and k.PL1 ='P'
			and k.KR1 >=75
			and k.PRIZNAKKU='1'
			group by k.DATNAR,k.CISKRAVY,o.NAZOV ,p.NAZOVSKR,ch.NAZOV,k.PL1,k.DATPOSKONT,k.PORPREBLAK,k.KR1,k.PL2,k.KR2
			order by k.DATNAR 



end
go


/***masova rocenka - Zastupenie plemennic podla dlzky servis periody
Masova rocenka 2017 - str.35 **/
 CREATE procedure [dbo].[Roc_MPHD_8]
	@datumOd date,
	@datumDo date 
	
as 
begin

/**tab 8 **/
delete from Roc_MPHD_Tab_8 where rok = DATEPART (year,@datumOd)
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @prvostky table
		(
		ciskravy varchar(14),
		chovatel varchar(9),
		datnar date, 
		porlakt int,
		Datotel date,
		Vek_otel_dni int,
		--Medziobd int,
		VekMesac int
		)

insert @prvostky
 select distinct k.CISKRAVY,k.CHOVATEL, k.DATNAR, pp.PorLakt,
		pp.Datotel as Datotel,
			case when (select  DATEDIFF(day, k.DATNAR, pp.Datotel)) < 2200 then (select  DATEDIFF(day, k.DATNAR, pp.Datotel))
			else '' end	as Vek_otel_dni,	
			case when (select  DATEDIFF(day, k.DATNAR, pp.Datotel)) < 2200 then pp.VekMesac
			else '' end as VekMesac
	from CM_Krava  as k
			LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS pp ON k.CISKRAVY = pp.Ciskrava AND pp.Datotel=(Select TOP (1) Datotel from Cp_Meso_TelataPoLaktacii WHERE Ciskrava=k.Ciskravy order by Datotel desc )
			left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
        where (k.DOVVYR is null or (k.DOVVYR is not null and k.DATVYR >=  @datumOd ))
			and k.PRIZNAKKU = 2
			and pp.PorLakt<= 1
			and pp.Datotel >= @datumOd
			and ch.TYPZV= 1
			and ch.chov not in ('010','700', '699') 
			and left(ch.chov,1) ='7'
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))

--select * from @prvostky order by Vek_otel_dni

	declare @pocty table
			(
			kraj varchar(5),
			do_15 int,
			do_19 int,
			do_23 int,
			do_27 int,
			do_31 int,
			do_35 int,
			nad_36 int,
			spolu int
			)
	insert @pocty
			select 
			'BA' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 1
					and VekMesac > 10
		union 
			select 
			'TT' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 2
					and VekMesac > 10
		union 
			select 
			'TN' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 3
					and VekMesac > 10
		union 
			select 
			'NT' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 4
					and VekMesac > 10
		union
			select 
			'ZA' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 5
					and VekMesac > 10
		union
			select 
			'BB' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 6
					and VekMesac > 10
		union
			select 
			'PE' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 7
					and VekMesac > 10
		union
			select 
			'KE' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
					and LEFT(chovatel,1) = 8
		union
			select 
			'SR' as kraj,
			sum(case when VekMesac > 0 and VekMesac <= 15 then 1 else 0 end ) as do_15,
			sum(case when VekMesac >= 16 and VekMesac <= 19 then 1 else 0 end ) as do_19,
			sum(case when VekMesac >= 20 and VekMesac <= 23 then 1 else 0 end ) as do_23,
			sum(case when VekMesac >= 24 and VekMesac <= 27 then 1 else 0 end ) as do_27,
			sum(case when VekMesac >= 28 and VekMesac <= 31 then 1 else 0 end ) as do_31,
			sum(case when VekMesac >= 32 and VekMesac <= 35 then 1 else 0 end ) as do_35,
			sum(case when VekMesac >= 36 then 1 else 0 end ) as nad_36,
			sum(case when VekMesac > 0 then 1 else 0 end ) as spolu
			from @prvostky
				where PorLakt = 1
			
	--create table Roc_MPHD_Tab_8
	--		(
	--		kraj varchar(5),
	--		do_15 int,
	--		do_19 int,
	--		do_23 int,
	--		do_27 int,
	--		do_31 int,
	--		do_35 int,
	--		nad_36 int,
	--		spolu int,
	--		do_15_perc float,
	--		do_19_perc float,
	--		do_23_perc float,
	--		do_27_perc float,
	--		do_31_perc float,
	--		do_35_perc float,
	--		nad_36_perc float, 
	--		rok int
	--		)
	 insert Roc_MPHD_Tab_8 -- @final
	 select kraj,do_15, do_19, do_23, do_27, do_31, do_35, nad_36, spolu,
	 (do_15*100.0) /spolu,
	 (do_19*100.0) /spolu,
	 (do_23*100.0) /spolu,
	 (do_27*100.0) /spolu,
	 (do_31*100.0) /spolu,
	 (do_35*100.0) /spolu,
	 (nad_36*100.0) /spolu,
	 datepart(year, @datumOd)
	 from @pocty 

	 --select * from @final

	 
/****		vek 1 oteleni K1....
	declare @vek1otel_K1 float 
	set @vek1otel_K1 = (select AVG(Vek_otel_dni) from Roc_MPHD_Tab_zaklad 
						where kraj + okres + Podnik + chov + Mastal = @chov
									and Porlak = '1' and datvyr is null and dovvyr is null)

	--vypocet pre vek pri 1 oteleni
	update @hlavna 
	set K1_vek_1_otel = ( select convert(varchar, round(@vek1otel_K1 / 30.42, 0)) +' / '+ 
			convert(varchar, convert(decimal(5,0), ROUND( convert(int, @vek1otel_K1 ) % 30.42, 0))))--  AS  VEK_1_Otel
vypocet  ***/

End
go

CREATE PROCEDURE [dbo].[ASP_dnes_KUHD]
	    @RecordCountDnes INT OUTPUT
	
AS

BEGIN
	SET NOCOUNT ON;

    
SELECT
ROW_NUMBER() OVER (ORDER BY a.CHOV ASC) AS riadok,
a.IDR AS idr, a.CHOV AS chov, a.koniec, b.rok, b.mesiac, b.dekada
INTO #dnes
FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY a
INNER JOIN plis.dbo.CR_KUHD_MesUzavCH_1x b ON (a.chov = b.chovatel)
WHERE CAST(a.koniec AS DATE) = CAST(GETDATE() AS DATE)

SELECT @RecordCountDnes = COUNT(*) FROM #dnes
SELECT * FROM #dnes
DROP TABLE #dnes
END

go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 13.11.2015
-- Description:	Struktura Zijucih krav podla dojivosti - Posledne uzatvorene laktacie
--				kod: 1 - normovane
--				kod: 2 - nenormovane
--				kod: 3 - vsekty
--				Povodny select prekopany z kurzora na klasicke selecty + dany do procedury
--				Osetrenie aby SUM stlpcov s % => 100.00
-- =============================================
CREATE PROCEDURE [dbo].[C_StrukturaZijucichKravPodlaDojivosti]
	@CHOVATEL varchar (9),
	@skupina varchar (2),
	@kod varchar (1)
AS
BEGIN

declare @sto decimal(5,2)
declare @prvy varchar(14)
declare @pocet decimal(5,2) = 0


DECLARE @Data TABLE (
	nazovSkupina varchar(20) NULL,
	pocet1lakt int NULL,
	perc1lakt decimal(5,2) NULL,
	poc2lakt int NULL,
	perc2lakt decimal(5,2) NULL,
	pocNlakt int NULL,
	percNlakt decimal(5,2) NULL,
	chovatel varchar(9) NULL,
	KodLakt varchar(2) NULL
)
	insert into @Data (nazovSkupina)
	select nazov from cc_dojivost

				
	select p.* , 
	isnull((select ZNKONTR from CM_Kontroly
		where CISCHOVU = @chovatel and ZNKONTR = 'O'
		and CISKRAVY = k.CISKRAVY
		GROUP BY CISKRAVY, ZNKONTR) +
		(select ZMENA from CM_Naplak
		where chovatel = @chovatel 
		and  poslLakt = PORLAK
		and CISKRAVY = k.CISKRAVY
		),'-') as znak		
	into #table
	from CM_Krava as k
		inner join CP_KravaPoslednaUzavLakt as p
		on p.cislokrava=k.CISKRAVY 
	where k.PRIZNAKKU = 1
		and k.DOVVYR is null
		and k.CHOVATEL like @chovatel + '%'
		and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))

	
	set @pocet =  (select count(cislokrava) from #table where poslLakt=1	and 
				(@kod='1' and zmena in (30,40) OR
				(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
				(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11'))) )
				) 		
	update @Data 
	set
		pocet1lakt = pocet,
		perc1lakt = percento
	from (
		select 
			(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
				count(cislokrava) as pocet, (count(cislokrava)*100 / @pocet) as percento
			from #table 
			where poslLakt=1 and 
				(@kod='1' and zmena in (30,40) OR
				(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
				(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11')))
				)
			group by Kod_Doj	
		) t
	where nazovSkupina = nazov

	set @pocet =  (select count(cislokrava) from #table where poslLakt >= 2	and 
					(@kod='1' and zmena in (30,40) OR
					(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
					(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11')))
					)
				) 	

	update @Data 
	set 
		poc2lakt = pocet,
		perc2lakt = percento
	from (
		select 
			(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
				count(cislokrava) as pocet, (count(cislokrava)*100 / @pocet) as percento
			from #table 
			where poslLakt >= 2 and
				(@kod='1' and zmena in (30,40) OR
				(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
				(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11')))
				)
			group by Kod_Doj
		) t
	where nazovSkupina = nazov

	set @pocet =  (select count(cislokrava) from #table where 
					(@kod='1' and zmena in (30,40) OR
					(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
					(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11')))
					)
				) 	

	update @Data 
	set 
		pocNlakt = pocet,
		percNlakt = percento
	from (
		select 
			(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
				count(cislokrava) as pocet, (count(cislokrava)*100 / @pocet) as percento
			from #table 
			where 
				(@kod='1' and zmena in (30,40) OR
				(@kod='2' and zmena not in (30,40)  and znak != 'O11') OR
				(@kod='3' and (zmena in (30,40) or (zmena not in (30,40)  and znak <> 'O11')))
				)
			group by Kod_Doj
		) t
	where nazovSkupina = nazov


/*
	Aby sme mali sto percent aj na desatinne presne, tak upravime prvu hodnotu ktora je ne-NULL v stlpcoch s %
*/
	/* Pre prvu laktaciu */
	set @sto = (select sum(perc1lakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where perc1lakt is not null )
		update @Data
		set perc1lakt = perc1lakt + (100 - @sto)
		where nazovSkupina = @prvy
	end

	/* Pre druhu laktaciu */
	set @sto = (select sum(perc2lakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where perc2lakt is not null )
		update @Data
		set perc2lakt = perc2lakt + (100 - @sto)
		where nazovSkupina = @prvy
	end

	/* Pre N laktacii */
	set @sto = (select sum(percNlakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where percNlakt is not null )
		update @Data
		set percNlakt = percNlakt + (100 - @sto)
		where nazovSkupina = @prvy
	end


	--select * from @data

		select 
		nazovSkupina,
		isnull(pocet1lakt, 0) as pocet1lakt,
		isnull(perc1lakt, 0) as perc1lakt,
		isnull(poc2lakt, 0) as poc2lakt,
		isnull(perc2lakt, 0) as perc2lakt,
		isnull(pocNlakt, 0) as pocNlakt,
		isnull(percNlakt, 0) as percNlakt
		from @data

END


go

-- =============================================
-- Author:		David Florek
-- Create date:	07.09.2017
-- Description:	Zrusi riadok faktury podla id
-- =============================================
CREATE PROCEDURE [dbo].[EC_ZrusRiadokFaktury]
	@idr int,
	@login varchar(255),
	@komentar varchar(255),
	@zrus bit = 0
AS
BEGIN
	if (select Zruseny from EC_RiadokFaktury where IDR = @idr) = 1
	begin
		if @zrus = 1
		begin
			update EC_RiadokFaktury set Zruseny = 0, Zrusil = null where IDR = @idr;

			insert into EC_RiadokFaktury_Hist
				(IDR, DatumZmeny, Zmenil, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, KodZmeny)
				(select IDR, GETDATE(), @login, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, 'Zrušenie zrušenia', 5 from EC_RiadokFaktury where IDR = @idr);
		end
	end else begin
		update EC_RiadokFaktury set Zruseny = 1, Zrusil = @login where IDR = @idr;

		insert into EC_RiadokFaktury_Hist
			(IDR, DatumZrusenia, Zmenil, KomentarKZruseniu, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, KodZmeny)
			(select IDR, GETDATE(), @login, @komentar, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, 3 from EC_RiadokFaktury where IDR = @idr);
	end
END
go


-- ZMENENE 09.04.2015
-- ZMENENE 10.04.2015
--update 09.05.2018 - ak neexistuje cislo zvierata v CM_Telata, tak berie datum narodenia z CM_Krava
CREATE PROCEDURE [dbo].[C_aktual_prepocMasoveVazenia_CHOV]
	@parChov varchar(9)
AS
BEGIN
--	update dbo.CM_Vazenia set HMOTPREPOC=null, DNIPREPOC=null,DNIVAZ=null, PRIRPREPOC=null, PRIR=null, ZIVPRIR=null, ZIVPRIRPREPOC=null;
	declare @dh as int;
	declare @ph as int;
	declare @hh as int;
	declare @datum1 as datetime;  --helping for remembering last date for conrols
	declare @kg as float;
	declare @DD1 as int;
	declare @DD3 as int
	declare @prirastok as float;
	declare @day as int;
	DECLARE @CHOMT AS FLOAT;
	DECLARE @ZIVPRIRPREPOC AS FLOAT;
	DECLARE @PRIRPREPOC AS FLOAT;
	DECLARE @ZIVPRIR AS FLOAT;
	DECLARE @hmotprepocpredos AS FLOAT;
	declare @hmot as float;
	declare @hmot2 as float;
	declare @hmotnar as float;
	declare @v as int;
	declare @dniprepoc as int;
	declare @d as datetime;    --datum kontroly
	declare @t as varchar(14);
	declare @rastpas as varchar(1); --char
	DECLARE @DN AS DATETIME;    -- datum narodeniny
	declare @vaha as float;
	DECLARE @DD AS INT;
	DECLARE @DniVaz2 AS INT;
	Declare @Dpk as int;
	declare @Vpk as float;
	declare telata cursor  for 
	select distinct CISTELATA
	--from dbo.CM_Vazenia where cistelata in (select CISTELATA from dbo.CM_Telata where CHOVATEL = @parChov)
	from dbo.CM_Vazenia 
		where cistelata in (select CISTELATA from dbo.CM_Telata where CHOVATEL = @parChov) 
			or cistelata in (select CISKRAVY from dbo.CM_Krava where CHOVATEL = @parChov) 
	open telata
	fetch next from telata into @t;
	WHILE @@FETCH_STATUS = 0 
			BEGIN			
			
			set @DN=--(select TOP 1 datnar from dbo.CM_Telata where CISTELATA=@t)
					(select case when @t in (select CISTELATA from dbo.CM_Telata)  then (select TOP 1 datnar from dbo.CM_Telata where CISTELATA=@t)
					when @t in (select Ciskravy from dbo.CM_Krava)  then (select TOP 1 datnar from dbo.CM_Krava where CISKRAVY=@t)
					end);
			set @hmot=--(select TOP 1 hmotnar from dbo.CM_Telata where CISTELATA=@t)
						(select case when @t in (select CISTELATA from dbo.CM_Telata)  then (select TOP 1 hmotnar from dbo.CM_Telata where CISTELATA=@t)
						when @t in (select Ciskravy from dbo.CM_Krava)  then '35'
						end);
			set @hmotnar=@hmot;
						declare vaj cursor for
						select DATVAZ,HMOT
						from dbo.CM_Vazenia
						where CISTELATA=@t and HMOT!= 0 ;
						open vaj
						fetch next from vaj into @d,@v;
						while @@FETCH_STATUS=0
						begin			
							set @DniVaz2=datediff(day,@DN,@d);
							update dbo.CM_Vazenia
							set DNIVAZ=@DniVaz2,
								DNIPREPOC=(SELECT TOP 1 PREPHOD FROM [dbo].[CC_VAZINTERVAL] WHERE 
								@DniVaz2 BETWEEN DH AND HH)
							where DATVAZ=@d and CISTELATA=@t;
							fetch next from vaj into @d,@v;
							end
						close vaj 
						deallocate vaj;
					declare @i int;
					declare @y int;
					set @i=0;
					set @y=0;
					
					declare vaj1 cursor for
					select DATVAZ,HMOT,DNIVAZ,DNIPREPOC,RASTPAS
					from dbo.CM_Vazenia
					where CISTELATA=@t and HMOT != 0;
					open vaj1
					fetch next from vaj1 into @d,@v,@dd, @dniprepoc,@rastpas;
					while @@FETCH_STATUS=0					
					begin						
						declare hranice cursor for
						select DH,PREPHOD,HH
						from dbo.CC_VAZINTERVAL
						open hranice
						fetch next from hranice into @dh,@ph,@hh
						while @@FETCH_STATUS=0
						begin	
								if(@hmot is null) 
									begin 
									set @hmot=35;
									end					
								if(@hmotnar is null) 
									begin 
									set @hmot=35;
									end
									
								if(@dh<=@dd and @dd<=@hh)
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/nullif(@DD1-@Dpk, 0))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/nullif(@DD1, 0))*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/nullif(@DD1, 0))*1000);
									set @hmot=@v;								
								end
							
								set @ZIVPRIRPREPOC=(((@CHOMT-@hmotnar)/nullif(@dniprepoc, 0))*1000);
								if(@ph='120' and @CHOMT>0)
								begin			
									set @hmotprepocpredos=@hmotnar;
									set @dniprepoc=0;	
									set @hmot2=@hmotnar;	
									set @DD3=0;							
								end	
								-- if(@ph='210' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM dbo.CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<210 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								-- if(@ph='365' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM dbo.CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<365 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								-- if(@ph='500' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM dbo.CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<500 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								if ((@ph='210' or @ph='365' or @ph='500') and @CHOMT>0)
									begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM dbo.CM_Vazenia
									WHERE CISTELATA = @t AND DNIPREPOC < @ph ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if (@hmotprepocpredos is not null and @dniprepoc is not null)
								begin
									set @PRIRPREPOC=(((@CHOMT-@hmotprepocpredos)/nullif(@ph-@dniprepoc, 0))*1000);
									--set @prirastok=((@hmot - @hmot2)/(@dd -  @dd3))*1000;	--POVODNE
								end
								else begin
									if (@ph is not null and @ph>0)
									begin 
									  set @PRIRPREPOC=(((@CHOMT - @hmotnar)/nullif(@ph, 0))*1000);
									end								
								end																
								if ((@ph='120' or @ph='210' or @ph='365') and (@dniprepoc is not null) and
									(Select COUNT(DISTINCT CISTELATA) FROM dbo.CM_Vazenia where (select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) 
									in (select KODPL from dbo.CC_NormyMP) AND CISTELATA=@t)>=1
									)
								begin
									--set	@RASTPAS=null;
									if (@CHOMT > (Select HMOTA FROM dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='A';
										end
									if (@CHOMT > (Select TOP 1 HMOTB FROM dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from dbo.CM_Telata where CISTELATA=@t) AND
										DNIVAZ=@ph) 
										and 
										@CHOMT < (Select TOP 1 HMOTA FROM dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='B';
										end
									 if (@CHOMT < (Select TOP 1 HMOTB FROM dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										AND
										@CHOMT > (Select TOP 1 HMOTC FROM dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										)
										begin
											set @rastpas='C';
										end
								end

								if(@prirastok is not null and @CHOMT > 0)
								begin
									update dbo.CM_Vazenia 
									set HMOTPREPOC=@CHOMT,DNIPREPOC=@ph,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, PRIRPREPOC=@PRIRPREPOC, ZIVPRIRPREPOC=@ZIVPRIRPREPOC, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
									set @hmotprepocpredos=null;
									set	@dniprepoc=null;
								end

								if (@ph='500' and (select PRIR from dbo.CM_Vazenia where CISTELATA=@t and DATVAZ = @d) is null )
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/nullif(@DD1-@Dpk, 0))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/nullif(@DD1, 0))*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/nullif(@DD1, 0))*1000);
									set @hmot=@v;
									
									update dbo.CM_Vazenia 
									set HMOTPREPOC=@CHOMT,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
								end
								set @CHOMT=0;
							fetch next from hranice into @dh,@ph,@hh
						end
						set @Vpk=@hmot;
						set @Dpk=@DD1;
						set @DD1=NUll;
						close hranice
						deallocate hranice
					fetch next from vaj1 into @d,@v,@dd, @dniprepoc,@rastpas;
					end
					close vaj1;
					deallocate vaj1;
					set @i=@i+1;
				set @Vpk=null;
				set @Dpk=NUll;
				fetch next from telata into @t;
			end
	close telata;
	deallocate telata; 
END

go

Create PROCEDURE [dbo].[CR_Zostava_Laktacie_Plem_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

-- =============================================
-- Author:		David Florek
-- Create date:	05.01.2018
-- Description:	Vrati vyfiltrovany zoznam riadkov faktury pre export do Heliosu.
-- =============================================
CREATE PROCEDURE [dbo].[EC_ZoznamRiadkovPreExport]
	@rok varchar(4),
	@mesiac varchar(2),
	@typ varchar(10)
AS
BEGIN

	If(OBJECT_ID('tempdb..#detaily') Is Not Null)
		Drop Table #detaily;

	select detaily.* into #detaily from (
		select KRAJ, OKRES, PODNIK, CHOV, IDZOO, IDKON, 'HD' as TYP, OSOBA as MENO from NM_HDDETAIL
		inner join NM_PracSPU on IDZOO = IDPAM

		union all select KRAJ, OKRES, PODNIK, CHOV, a.IDPAM as IDZOO, b.IDPAM as IDKON, 'OV' as TYP, UPPER(a.PRIEZVISKO) + ' ' + UPPER(a.MENO) as MENO from NM_OVDETAIL
		left outer join NM_KONTAKT a on CISZOO = a.ID
		left outer join NM_KONTAKT b on CISKON = b.ID

		union all select KRAJ, OKRES, PODNIK, CHOV, a.IDPAM as IDZOO, b.IDPAM as IDKON, 'KY' as TYP, UPPER(a.PRIEZVISKO) + ' ' + UPPER(a.MENO) as MENO from NM_KODETAIL
		left outer join NM_KONTAKT a on CISZOO = a.ID
		left outer join NM_KONTAKT b on CISKON = b.ID

		union all select KRAJ, OKRES, PODNIK, CHOV, null as IDZOO, null as IDKON, 'HY' as TYP, null as MENO from NM_CHOVMAS where TYPZV = '5'

		union all select KRAJ, OKRES, PODNIK, CHOV, PLEMENAR as IDZOO, PLEMENAR as IDKON, 'OS' as TYP, OSOBA as MENO from NM_OSDETAIL
			inner join NM_PracSPU on PLEMENAR = IDPAM

		) as detaily

	select
		case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
			 when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '21'
			 when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
			 when fak.Typ = 'OV' or fak.Typ = 'KY' then (select s.STRED from NM_PracSPU s where s.IDPAM = d.IDKON)
		else p.REGION end as REGION,
		fak.Faktura as FAKTURA,
		fak.Datum as DATUM,
		SUBSTRING(p.NAZOV, 0, 50) as ZAKAZNIK,
		p.ICO as ICO,
		fak.CHOV as CHOV,
		--d.MENO as MENZOO,
		case 
			 when LEFT(fak.Chov, 6) in ('808026', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then 'QUANSAH MARTA'
			 when LEFT(fak.Chov, 6) in ('808124', '808553') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then 'ILENIN STANISLAV'
		else d.MENO end as MENZOO,
	--	d.IDZOO as CISZOO,
		case 
			 when LEFT(fak.Chov, 6) in ('808026', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '18016'
			 when LEFT(fak.Chov, 6) in ('808124', '808553') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '18007'
		else d.IDZOO end as CISZOO,
	--	d.IDKON as CISKONZ,
		case 
			 when LEFT(fak.Chov, 6) in ('808026', '808518', '808124', '808553') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '18012'
		else d.IDKON end as CISKONZ,
		prod.SKUPINA as NAZPROD,
		fak.Produkt as KODPROD,
		prod.MERJED as MERJEDN,
		fak.Pocet as POCJEDN,
		(fak.Suma + fak.Priplatok) * (100 + fak.PriplatokPerc) / 100 as JEDNCENA,
		fak.Priplatok as PRIPLSK,
		fak.PriplatokPerc as PRIPLPERC,
		fak.ZlavCel as ZLAVCEL,
		fak.SumaCelkom as CENASPOL,
		fak.Dotacia as DOTACIA,
		p.DIC as DIC,
		p.ULICA as ULICA,
		p.OBEC as OBEC,
		p.PCISLO as PCISLO,
		p.PSC as PSC,
		'000000' as PREDCISLIE,
		'0000000000' as CISUCTU,
		'0000' as KBANKY,
		20.0 as PDPH
		
	from EC_RiadokFaktury fak
		join #detaily d on fak.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV and 
		                                                                       (fak.Typ = d.TYP or (d.TYP = 'HD' and fak.Typ in ('KUML', 'KUMP', 'TMHD','MOHD', 'SBHD','KTHD' ))
		                                                                                              or (d.TYP = 'OV' and fak.Typ in ('SBOV'))
																									  or (d.TYP = 'KY' and fak.Typ in ('SBKY')))   

		join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
		inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = fak.Produkt
	where
		SUBSTRING(fak.Datum, 1, 2) = RIGHT(@rok, 2)
		and SUBSTRING(fak.Datum, 3, 2) = REPLICATE('0',2 - LEN(@mesiac)) + @mesiac
		and fak.Typ = @typ
		and fak.Zruseny = 0 and fak.Exportovany = 0 and fak.Potvrdeny = 1
	;

	drop table #detaily;
END
go


/***masova rocenka - variabilita medziobdobia krav otelenych v kontrolnom roku v %tach - podla plemennych typov
Masova rocenka 2017 - - od str.6 ....vypocitane na zaklade tab Roc_MPHD_7 zo str.34 **/
 CREATE procedure [dbo].[Roc_MPHD_7_plemTYP]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_7_plemTYP where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @kravy table 
	(
	ciskravy varchar(14),
	datnar date, 
	datvyr date, 
	porpreblak varchar(2),
	plemtyp int,
	--plemeno varchar(10),
	datotel date,
	medziobd int
	)

insert into @kravy 
( ciskravy, datnar, datvyr, porpreblak, plemtyp, datotel, medziobd )
	select k.CISKRAVY, k. DATNAR, k.DATVYR, k.PORPREBLAK, k.TYPPLEM,
		pp.Datotel,
		m.medziobd
	from CM_Krava as k
		LEFT OUTER JOIN CP_MedziObdMesove AS m ON k.CISKRAVY = m.kravcislo and m.PORPREBLAK = k.porpreblak 
		LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS pp ON k.CISKRAVY = pp.Ciskrava 
															AND pp.Datotel=(Select TOP (1) Datotel from PLIS.dbo.Cp_Meso_TelataPoLaktacii 
																							WHERE Ciskrava=k.Ciskravy 
																								order by Datotel desc)
where (k.DOVVYR is null or (k.datvyr >= @datumOd and k.datvyr <= @datumDo)) 
	and pp.Datotel >= @datumOd and pp.Datotel <= @datumDo
	and (k.PRIZNAKKU = '2')
	and k.PORPREBLAK is not null 
	and k.TYPPLEM in (--'101','102','103','104','105',	---- BBM
						'111','112','113','114','115',		---- AA
						'121','122','123','124','125',		---- BdA
						'131',								---- Gal
						'141','142','143','144','145',		---- Hem
						'151',								---- High
						'161','162','163','164','165',		---- Char
						'171','172','173','174','175',		---- Lim
						--'181',							---- SDM
						'201','202','203','204','205',		---- Sim_maso
						--'191','192','193','194','195',	---- Piem
						'51','53','54',						---- Pin
						'11','13','14')						---- Slst
	and m.medziobd is not null

--select * from Cp_Meso_TelataPoLaktacii

--select * from @kravy

declare @mezdiobd_pocty table
	(
	plemeno varchar(10),
	do350 int, 
	do380 int, 
	do410 int, 
	do440 int, 
	do470 int, 
	nad471 int, 
	spolu int
	)

Insert into @mezdiobd_pocty
	(plemeno, do350, do380, do410, do440, do470, nad471, spolu)

	select plemtyp, 
			sum(case when medziobd <= 350 then 1 else 0 end ) as 'do350',
			sum(case when medziobd >= 351 and medziobd <= 380 then 1 else 0 end ) as 'do380',
			sum(case when medziobd >= 381 and medziobd <= 410 then 1 else 0 end ) as 'do410',
			sum(case when medziobd >= 411 and medziobd <= 440 then 1 else 0 end ) as 'do440',
			sum(case when medziobd >= 441 and medziobd <= 470 then 1 else 0 end ) as 'do470',
			sum(case when medziobd >= 471 and medziobd <= 1200 then 1 else 0 end ) as 'nad471',
			sum(case when medziobd <= 1200 then 1 else 0 end ) as 'spolu'
	from @kravy
	group by plemtyp

--select * from @mezdiobd_pocty

--declare @variabilita_medziobd table

--create table Roc_MPHD_Tab_7_plemTYP
--	(
--	plemtyp int,
--	plemeno varchar(10),
--	do350 int, 
--	do350_p decimal(6,2),
--	do380 int, 
--	do380_p decimal(6,2),
--	do410 int, 
--	do410_p decimal(6,2),
--	do440 int, 
--	do440_p decimal(6,2),
--	do470 int, 
--	do470_p decimal(6,2),
--	nad471 int, 
--	nad471_p decimal(6,2),
--	spolu int,
--	rok int
--	)

	insert into Roc_MPHD_Tab_7_plemTYP
		(plemtyp,plemeno, do350, do350_p, do380, do380_p, do410, do410_p, do440, do440_p, do470, do470_p, nad471, nad471_p, spolu, rok)
	select  plemeno as plemtyp,
		case --when plemeno in ('101','102','103','104','105') then 'BBM' 
			when plemeno in ('111','112','113','114','115') then 'AA'
			when plemeno in ('121','122','123','124','125') then 'BdA'
			when plemeno = '131' then 'Gal'
			when plemeno in ('141','142','143','144','145') then 'HEM'
			when plemeno = '151' then 'High'
			when plemeno in ('161','162','163','164','165') then 'Char'
			when plemeno in ('171','172','173','174','175') then 'Lim'
			--when plemeno  = '181' then 'SDM'
			when plemeno in ('201','202','203','204','205') then 'Sim_maso'
			--when plemeno in ('191','192','193','194','195') then 'Piem'
			when plemeno in ('51','53','54') then 'Pin'
			when plemeno in ('11','13','14') then 'Slst'
			end as plemeno,
			do350,
			cast((do350 * 100.0 / spolu) as decimal(5,2)) as do350_p,
			do380,
			cast((do380 * 100.0 / spolu) as decimal(5,2)) as do380_p,
			do410,
			cast((do410 * 100.0 / spolu) as decimal(5,2)) as do410_p,
			do440,
			cast((do440 * 100.0 / spolu) as decimal(5,2)) as do440_p,
			do470,
			cast((do470 * 100.0 / spolu) as decimal(5,2)) as do470_p,
			nad471,
			cast((nad471 * 100.0 / spolu) as decimal(5,2)) as nad471_p,
			spolu,
			DATEPART(year, @datumOd) as rok
	from @mezdiobd_pocty
		group by plemeno,do350,do380,do410,do440,do470,nad471,spolu


--select * from @variabilita_medziobd
end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 10.05.2016
-- Description:	Prida medzere do chovu '714 534 001'
-- =============================================
create FUNCTION [dbo].[S_uprav_Chov]
(
	@chov varchar(14)
)
RETURNS varchar(11)
AS
BEGIN
	return (select STUFF(STUFF(@chov, 7, 0, ' '), 4, 0, ' ') )

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania08]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	
	select sch.CHOV, --h.IDR_HLAS, h.TYP_HLAS,
	chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd08.CISTEL, hd08.DATNAR,
	--hd08.DATSPRAC, hd08.DATUMULOZENIA, hd08.DI,
	hd08.FARBA, hd08.KR1, hd08.KR2, hd08.KR3, hd08.KR4, --hd08.LOGIN,
	hd08.MATKA,hd08.OTEC, hd08.OTECLIN, hd08.OTECREG, hd08.PL1, hd08.PL2, hd08.PL3, hd08.PL4, hd08.POHLTEL, hd08.PORPREBLAK,
	--hd08.PRIZSPRAC, hd08.VERZIA,
	hd08.ZNAKET
	--,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd08.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd08.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARTELIATML as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD08_ZARTELIATML as hd08
	on h.IDR_HLAS = hd08.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '8' and ezk.CISCHYBY is not null




	order by CHOV, CISTEL

end
go





CREATE PROCEDURE [dbo].[C_aktual_KodDojKodMedzi_CHOV]
	@ParChov varchar(9)
AS
BEGIN
/*****************************

!	PLEASE RUN AFFTER CHANGING CP_KRAVAPOSLEDNAUZAVLAKT 
	OR  C_ZZ_UZAVRETELAKTSKLADBA_FINAL PROCEDURE (PROCEDURE IS CHANGING TABLE CP_KRAVAPOSLEDNAUZAVLAKT )  !

	using table :CM_Laktacie,CM_Naplak,CP_KravaPoslednaUzavLakt,CC_Dojivost,

	changing table :CM_Laktacie,CM_Naplak,CP_KravaPoslednaUzavLakt

	using for: updatting value of column KOD_DOJ,KOD_MEDZ for reports number (9.A)Rozbor medziobdobia podľa prebiehajúcej laktácie ,
	(9.B) Medziobdobie podľa úžitkovosti za poslednú uzavretú laktáciu ,(7) Štruktúra žijúcich kráv podľa dojnosti 

******************************/

update plis.dbo.CM_Laktacie
set KOD_DOJ=null
where MLIEKCEL !=0 
and MLIEKCEL is not null
and MLIEKNOR !=0
and MLIEKNOR is not null and CHOVATEL = @ParChov


update plis.dbo.CM_Laktacie
set KOD_MEDZ=null
where MEDZIOBD is not null
and MEDZIOBD!=0 and CHOVATEL = @ParChov

update plis.dbo.CM_Naplak
set KOD_DOJ=null
where MLIEKCEL !=0 
and MLIEKCEL is not null
and MLIEKNOR !=0
and MLIEKNOR is not null and CHOVATEL = @ParChov

update plis.dbo.CM_Naplak
set KOD_MEDZ=null
where MEDZIOBD is not null
and MEDZIOBD!=0 and CHOVATEL = @ParChov


declare @od int;
declare @do int;
declare @kod int;

	declare odmleko cursor for
	select od,do,kod
	from plis.dbo.CC_Dojivost

	open odmleko
	fetch next from odmleko into @od, @do, @kod

	while @@FETCH_STATUS=0
	begin
			
			update plis.dbo.CM_Naplak
			set KOD_DOJ=@kod
			where MLIEKNOR between @od and @do
			and ZMENA in (30,40) and CHOVATEL = @ParChov

			update plis.dbo.CM_Laktacie
			set Kod_Doj=@kod
			where MLIEKNOR between @od and @do
			and ZMENA in (30,40) and CHOVATEL = @ParChov
			
			update plis.dbo.[CP_KravaPoslednaUzavLakt]
			set KOD_DOJ=@kod
			where mliekoN between @od and @do
			and ZMENA in (30,40) and CHOVATEL = @ParChov

			update plis.dbo.CM_Naplak
			set KOD_DOJ=@kod
			where MLIEKCEL between @od and @do
			and ZMENA not in (30,40) and CHOVATEL = @ParChov

			update plis.dbo.CM_Laktacie
			set KOD_DOJ=@kod
			where MLIEKCEL between @od and @do
			and ZMENA not in (30,40) and CHOVATEL = @ParChov
			
			update plis.dbo.CP_KravaPoslednaUzavLakt
			set Kod_Doj=@kod
			where mlieko between @od and @do
			and ZMENA  not in (30,40) and CHOVATEL = @ParChov

	fetch next from odmleko into @od, @do, @kod
	end

	close odmleko
	deallocate odmleko

	declare od1 cursor for
	select od,do,kod
	from plis.dbo.CC_Medziobd

	open od1
	fetch next from od1 into @od, @do, @kod

	while @@FETCH_STATUS=0
	begin
		
		
		
		if(@kod=1)
		begin
		
		update plis.dbo.CM_Naplak
		set KOD_MEDZ=@kod
		where MEDZIOBD is null and CHOVATEL = @ParChov


		update plis.dbo.CM_Laktacie
		set KOD_MEDZ=@kod
		where MEDZIOBD is null and CHOVATEL = @ParChov
		
		update plis.dbo.CP_KravaPoslednaUzavLakt
			set Kod_Medz =@kod
		where medziobd is null and CHOVATEL = @ParChov
		
		end
		
		else
		begin
		
		update plis.dbo.CM_Naplak
		set KOD_MEDZ=@kod
		where MEDZIOBD between @od and @do and CHOVATEL = @ParChov


		update plis.dbo.CM_Laktacie
		set KOD_MEDZ=@kod
		where MEDZIOBD between @od and @do and CHOVATEL = @ParChov
		
		update plis.dbo.CP_KravaPoslednaUzavLakt
			set Kod_Medz =@kod
		where medziobd between @od and @do and CHOVATEL = @ParChov
			end

	fetch next from od1 into @od, @do, @kod
	end

	close od1
	deallocate od1



END


go

CREATE PROCEDURE [dbo].[CR_Zostava_Laktacie_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 


END

go


-- ========================================================

-- ========================================================

CREATE PROCEDURE [dbo].[CR_EKRMD_stvrtrok]
@chov VARCHAR(14),
@rok INT,
@mesiacOD INT,
@mesiacDO INT

AS

BEGIN
		IF OBJECT_ID('tempdb..#abc1') IS NOT NULL 
			BEGIN
            	DROP TABLE #abc1
				PRINT 'vymazal som #abc1....'
			END

	DECLARE @posledny_datum DATE, @rok_spracovania DATE, @mesiac_spracovania int, @cistelata varchar(14),@idr bigint

---- zistenie posledneho vazenia v chove pre vyber roku a mesiaca
--SELECT TOP 1 @posledny_datum =  DATVAZ FROM dbo.CM_Vazenia WHERE CHOVVAZ = @chov ORDER BY DATVAZ DESC

--PRINT 'Datum posledneho vazenia: ' + CONVERT(VARCHAR, @posledny_datum)

--SET @rok = DATEPART(yyyy,@posledny_datum)
--SET @mesiac = DATEPART(mm,@posledny_datum)

	DECLARE @pocetvymaz int
		SELECT @pocetvymaz = COUNT(*) 
			FROM dbo.CR_EKRMD_stvrtR 
				WHERE chov = @chov AND rok = @rok AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO
		DELETE FROM dbo.CR_EKRMD_stvrtR 
			WHERE chov = @chov AND rok = @rok AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO
	PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)
 
	SELECT @IDR = IDR, @mesiac_spracovania = MESIAC 
		FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
			WHERE @CHOV = chov and @rok=rok and MESIAC between @mesiacOD and @mesiacDO

	SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
		FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
			WHERE CHOV = @chov and @rok=rok and mesiac between @mesiacOD and @mesiacDO 

	SELECT * FROM #idrtable
	
	SELECT IDR INTO #temp 
		FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY
		WHERE CHOV = @chov AND ROK = @rok AND MESIAC between @mesiacOD and @mesiacDO

	DECLARE @counter int
	SET @counter = 0;


	DECLARE @pocet_vazeni INT
		SELECT @pocet_vazeni = COUNT(*) 
			FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR)
				WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC between @mesiacOD and @mesiacDO
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)

	
	IF ( SELECT COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR) WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC between @mesiacOD and @mesiacDO) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR)
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC between @mesiacOD and @mesiacDO

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 6 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, DATVAZ, t.DATNAR, HMOT, RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									LEFT JOIN dbo.CM_Telata t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					plemeno VARCHAR(3),
					datnar DATE,
					pohlavie VARCHAR(2),
					PK VARCHAR(3),
					ET BIT,
					farba VARCHAR(2),
					matka VARCHAR(14),
					otecLIN VARCHAR(3),
					otecREG INT,
					otecUscislo VARCHAR(14),
					otecMeno VARCHAR(30),
					datvaz1 DATE,mesiac1 INT,den1 INT,hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE,mesiac2 INT,den2 INT,hmot2 INT,rp2 VARCHAR,
					datvaz3 DATE,mesiac3 INT,den3 INT,hmot3 INT,rp3 VARCHAR,
					datvaz4 DATE,mesiac4 INT,den4 INT,hmot4 INT,rp4 VARCHAR,
					datvaz5 DATE,mesiac5 INT,den5 INT,hmot5 INT,rp5 VARCHAR,
					datvaz6 DATE,mesiac6 INT,den6 INT,hmot6 INT,rp6 VARCHAR,
					zprir INT,
					dp INT,
					planprip DATE,
					DatPlanPripust varchar(10), 
					vekPripus varchar(6),
					byk VARCHAR(7),
					datinsem DATE,
					ocotel DATE,
					ocprip DATE,
					porlakmax INT,
					pocvsetlak INT,
					pocnorlak INT,
					mliekopr INT,
					tukper DECIMAL(7,2),
					bielkper DECIMAL(7,2),
					mliekomax INT,
					tukmax  DECIMAL(7,2),
					bielmax DECIMAL(7,2),
					rok int,
					mesiacSprac int,
					mesiacOD INT,
					mesiacDO int,
					generovane DATETIME,
					plemskladba varchar(70)
					)
				END

				INSERT INTO #abc1 (cistelata, chov, rok, mesiacSprac, mesiacOD, mesiacDO, generovane) VALUES (@cistelata, @chov, @rok, @mesiac_spracovania, @mesiacOD, @mesiacDO, GETDATE())

			-- vlozenie z CM_Telata
			UPDATE #abc1 SET
			chov = @chov, plemeno = a.TYPPLEM, datnar = a.datnar, pohlavie = a.pohlavie, PK = a.PK, ET = a.ZNAKET, farba = a.farba, matka = a.matka, otecLIN = a.otecLIN, otecREG = a.otecREG
			FROM	(
					SELECT t.CHOVATEL, t.TYPPLEM, t.datnar, t.pohlavie, k.PK , t.ZNAKET, t.farba, t.matka, t.otecLIN, t.otecREG  FROM cm_telata t
							LEFT JOIN cm_krava k ON (k.CISKRAVY = t.MATKA)
							WHERE CISTELATA = @cistelata
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			zprir = a.zp FROM (SELECT TOP 1 convert(int,ZIVPRIR)zp FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC )a
			WHERE cistelata = @cistelata

			-- denny prirastok
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			DECLARE @d1 date, @d2 DATE, @h1 INT, @h2 INT, @dp INT, @datPr date, @datnar date, @datPlanPripust varchar(10)
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ  DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 
			
			--SET @dp = ROUND((@h1-@h2) * 1000 / DATEDIFF(day,@d2,@d1),0) -- nahradene
			SET @dp =  COALESCE(ROUND((@h1-@h2) * 1000 / NULLIF(DATEDIFF(day,@d2,@d1),0),0), 0)

			set @datPr = case when @h1 >200 then (case when  @h1>360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360- @h2 )*1000/NULLIF( @dp,0)),@d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			


			UPDATE #abc1 SET DP = @DP, planprip = @datPr, datPlanPripust = @datPlanPripust  
				WHERE cistelata = @cistelata AND chov = @chov AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO
			
			DROP TABLE #2v

			--- inseminacie
			DECLARE @datinsem DATE = null, @porins INT = null, @byk VARCHAR(7) = null, @vysetrenie INT = null, @idaot DATE = null, @ocotel DATE = null, @ocprip DATE = null,  @datkon DATE = null, @vekPripus varchar(6) = null
			
			SELECT TOP 1 
			@datinsem = i.IDAIN,
			@porins = i.IPOIN,
			--@byk =  i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3),
			@byk = case when i.IBLIN = 'NEZ' then 'NEZ'
			else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end,
			
			@vysetrenie = i.IVYSE,
			@idaot = i.IDAOT, 
            @ocotel = CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			@datkon = (SELECT TOP 1 DATVAZ FROM #vazenie WHERE CISTELATA = @cistelata ORDER BY  DATVAZ DESC),
			@ocprip = CASE WHEN DATEDIFF(MONTH, t.DATNAR, @datkon ) >= 15 THEN  DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			-- doplnit datum pripustenia (vypocitanie)..23.8.2017
			@vekPripus = convert(varchar(3),convert(int,DATEDIFF(day,t.DATNAR,i.IDAIN)/30.42)) +' / '+ convert(varchar(2),convert(int,CONVERT(float,datediff(day,t.DATNAR,i.IDAIN)%30.42))) 
			 
			FROM dbo.CM_Insvyk AS i INNER JOIN (SELECT IPLCA, MAX(IDAIN) AS IDAIN FROM dbo.CM_Insvyk AS i GROUP BY IPLCA)i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.IDAIN
									INNER JOIN dbo.CM_Telata t ON (t.CISTELATA = i.IPLCA)
									
			WHERE i.IPLCA = @cistelata --and t.CISTELATA =  @cistelata 
			
			UPDATE #abc1 SET
			datinsem =@datinsem, byk = @byk, ocotel = @ocotel, @ocprip = @ocprip, vekPripus = @vekPripus
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO




			-- laktacie
			DECLARE @porlakmax INT, @pocvsetlak INT , @pocnorlak INT, @mliekopr INT, @tukper DECIMAL(7,2), @bielkper DECIMAL(7,2), @tukmax DECIMAL(7,2), @bielmax DECIMAL(7,2), @mliekomax INT
            DECLARE @plemskladba VARCHAR(70)

			SELECT
			@porlakmax = k.PORLAKMAX,
			@pocvsetlak = k.POCVSETLAK,
			@pocnorlak = k.POCNORLAK,
			@mliekopr = k.MLIEKOPR,
			@tukper = k.TUKPRPER,
			@bielkper = k.BIELPRPER,
			@mliekomax = CONVERT(INT,k.MLIEKOMAX),
			--@tukmax = ((k.TUKMAX/k.MLIEKOMAX)*100),
			@tukmax = (k.TUKMAX/NULLIF(k.MLIEKOMAX,0)*100),
			--@bielmax = ((k.BIELMAX/k.MLIEKOMAX)*100)
			@bielmax = (k.BIELMAX/NULLIF(k.MLIEKOMAX,0)*100),
			@plemskladba = t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR2,
                                                              0)) + ' '
                                                              + ISNULL(t.PL3
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR3,
                                                              0)) + ' '
                                                              + ISNULL(t.PL4
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR4,
                                                              0)) + ' '
                                                              + ISNULL(t.PL5,
                                                              ''), ''), ''),
                                                              '')


			FROM dbo.CM_Telata t LEFT JOIN dbo.CM_Krava k ON (t.MATKA = k.CISKRAVY) WHERE t.CISTELATA = @cistelata

			UPDATE #abc1 SET
			porlakmax = @porlakmax, pocvsetlak = @pocvsetlak, pocnorlak = @pocnorlak, mliekopr = @mliekopr,
			tukper = @tukper, bielkper = @bielkper, mliekomax = @mliekomax, tukmax = @tukmax, bielmax = @bielmax,
			plemskladba = @plemskladba
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO

			--otec
			declare @O_uscislo varchar(14)=null, @O_meno varchar(30)=null
			select
			@O_uscislo = t.ouc,
			@O_meno =  b.meno
			FROM dbo.CM_Telata t LEFT JOIN  CM_Byci b ON (t.OUC = b.uscislo) WHERE t.CISTELATA = @cistelata
			
			UPDATE #abc1 SET  
			otecUscislo = @O_uscislo, otecMeno = @O_meno
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO


			-- pocty vazeni
			UPDATE #abc1 SET
			DATVAZ1 = a.DATVAZ1, MESIAC1 = a.MESIAC1, DEN1 = a.DEN1, HMOT1 = a.HMOT1, RP1 = a.RP1
			FROM	(
			SELECT DATVAZ DATVAZ1, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC1, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 6
					)a
			WHERE cistelata = @cistelata
		
			UPDATE #abc1 SET
			DATVAZ2 = a.DATVAZ2, MESIAC2 = a.MESIAC2, DEN2 = a.DEN2, HMOT2 = a.HMOT2, RP2 = a.RP2
			FROM	(
			SELECT DATVAZ DATVAZ2,  convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42)AS MESIAC2, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN2, CONVERT(INT,HMOT)HMOT2, RASTPAS RP2 FROM #vazenie WHERE ID = 5
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ3 = a.DATVAZ3, MESIAC3 = a.MESIAC3, DEN3 = a.DEN3, HMOT3 = a.HMOT3, RP3 = a.RP3
			FROM	(
			SELECT DATVAZ DATVAZ3, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC3, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN3, CONVERT(INT,HMOT)HMOT3, RASTPAS RP3 FROM #vazenie WHERE ID = 4
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ4 = a.DATVAZ4, MESIAC4 = a.MESIAC4, DEN4 = a.DEN4, HMOT4 = a.HMOT4, RP4 = a.RP4
			FROM	(
			SELECT DATVAZ DATVAZ4, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC4, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN4, CONVERT(INT,HMOT)HMOT4, RASTPAS RP4 FROM #vazenie WHERE ID = 3
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ5 = a.DATVAZ5, MESIAC5 = a.MESIAC5, DEN5 = a.DEN5, HMOT5 = a.HMOT5, RP5 = a.RP5
			FROM	(
			SELECT DATVAZ DATVAZ5, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC5, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN5, CONVERT(INT,HMOT)HMOT5, RASTPAS RP5 FROM #vazenie WHERE ID = 2
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ6 = a.DATVAZ6, MESIAC6 = a.MESIAC6, DEN6 = a.DEN6, HMOT6 = a.HMOT6, RP6 = a.RP6
			FROM	(
			SELECT DATVAZ DATVAZ6,  DATEDIFF(MONTH, DATNAR, DATVAZ)  AS MESIAC6, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN6, CONVERT(INT,HMOT)HMOT6, RASTPAS RP6 FROM #vazenie WHERE ID = 1
					)a
			WHERE cistelata = @cistelata

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor

			

--------2. cast
	DECLARE @cistelata2 varchar(14)

	DECLARE @counter2 int
	SET @counter2 = 0;						

	IF ( SELECT COUNT(*) FROM dbo.CM_Telata t 
						--left join CM_Vazenia as v on t.CISTELATA=v.CISTELATA
													where t.CHOVATEL=@chov and t.DOVVYR is null and t.PRIZNAKKU = 1  
														and (t.CISTELATA NOT IN (SELECT CISKRAVY FROM  dbo.CM_Naplak)) 
														AND (DOVVYR IS NULL) 
														AND (POHLAVIE NOT IN (61, 62, 63) OR POHLAVIE IS NULL)
														AND (t.CISTELATA NOT IN (SELECT USCISLO FROM dbo.CM_Byci))
														and (t.CISTELATA IN (SELECT CISTELATA FROM CM_Vazenia))) >= 1

		BEGIN
			DECLARE vazenie_cursor2 CURSOR LOCAL
				FOR
					SELECT distinct t.CISTELATA FROM dbo.CM_Telata t
						left outer join CM_Vazenia as v on t.CISTELATA=v.CISTELATA
						WHERE t.CHOVATEL= @chov and t.DOVVYR is null and t.PRIZNAKKU = 1  
														and (t.CISTELATA NOT IN (SELECT CISKRAVY FROM  dbo.CM_Naplak)) 
														AND (DOVVYR IS NULL) 
														AND (POHLAVIE NOT IN (61, 62, 63) OR POHLAVIE IS NULL)
														AND (t.CISTELATA NOT IN (SELECT USCISLO FROM dbo.CM_Byci))
														and (t.CISTELATA IN (SELECT CISTELATA FROM CM_Vazenia))

				OPEN vazenie_cursor2
				FETCH NEXT FROM vazenie_cursor2 INTO @cistelata2
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter2 = @counter2 + 1
							IF OBJECT_ID('tempdb..#vazenie2') IS NULL
								BEGIN	
									SELECT TOP 6 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, DATVAZ, t.DATNAR, HMOT, RASTPAS INTO #vazenie2
									FROM  dbo.CM_Vazenia v
									LEFT JOIN dbo.CM_Telata t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata2 ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count2 INT
		SELECT @vazenia_count2 = COUNT(*) FROM #vazenie2
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count2)

	
		IF OBJECT_ID('tempdb..#abc2') IS NULL		
		BEGIN			

			PRINT 'Vytvorenie temp #abc2....'
					CREATE TABLE #abc2
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					plemeno VARCHAR(3),
					datnar DATE,
					pohlavie VARCHAR(2),
					PK VARCHAR(3),
					ET BIT,
					farba VARCHAR(2),
					matka VARCHAR(14),
					otecLIN VARCHAR(3),
					otecREG INT,
					otecUscislo VARCHAR(14),
					otecMeno VARCHAR(30),
					datvaz1 DATE,mesiac1 INT,den1 INT,hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE,mesiac2 INT,den2 INT,hmot2 INT,rp2 VARCHAR,
					datvaz3 DATE,mesiac3 INT,den3 INT,hmot3 INT,rp3 VARCHAR,
					datvaz4 DATE,mesiac4 INT,den4 INT,hmot4 INT,rp4 VARCHAR,
					datvaz5 DATE,mesiac5 INT,den5 INT,hmot5 INT,rp5 VARCHAR,
					datvaz6 DATE,mesiac6 INT,den6 INT,hmot6 INT,rp6 VARCHAR,
					zprir INT,
					dp INT,
					planprip DATE,
					DatPlanPripust varchar(10), 
					vekPripus varchar(6), 
					byk VARCHAR(7),
					datinsem DATE,
					ocotel DATE,
					ocprip DATE,
					porlakmax INT,
					pocvsetlak INT,
					pocnorlak INT,
					mliekopr INT,
					tukper DECIMAL(7,2),
					bielkper DECIMAL(7,2),
					mliekomax INT,
					tukmax  DECIMAL(7,2),
					bielmax DECIMAL(7,2),
					rok int,
					mesiacSprac int,
					mesiacOD INT,
					mesiacDO int,
					generovane DATETIME,
					plemskladba varchar(70)
					)
				END

				INSERT INTO #abc2 (cistelata, chov, rok, /*mesiacSprac, mesiacOD, mesiacDO, */generovane) VALUES (@cistelata2, @chov, @rok, /*@mesiac_spracovania, @mesiacOD, @mesiacDO,*/ GETDATE())

			-- vlozenie z CM_Telata
			UPDATE #abc2 SET
			chov = @chov, plemeno = a.TYPPLEM, datnar = a.datnar, pohlavie = a.pohlavie, PK = a.PK, ET = a.ZNAKET, farba = a.farba, matka = a.matka, otecLIN = a.otecLIN, otecREG = a.otecREG
			FROM	(
					SELECT t.CHOVATEL, t.TYPPLEM, t.datnar, t.pohlavie, k.PK , t.ZNAKET, t.farba, t.matka, t.otecLIN, t.otecREG  FROM cm_telata t
							LEFT JOIN cm_krava k ON (k.CISKRAVY = t.MATKA)
							WHERE CISTELATA = @cistelata2
					)a
			WHERE cistelata = @cistelata2

			UPDATE #abc2 SET
			zprir = a.zp FROM (SELECT TOP 1 convert(int,ZIVPRIR)zp FROM cm_vazenia WHERE CISTELATA = @cistelata2 ORDER BY DATVAZ DESC )a
			WHERE cistelata = @cistelata2

			
			
			-- denny prirastok
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2vx FROM cm_vazenia WHERE CISTELATA = @cistelata2 ORDER BY DATVAZ DESC
			DECLARE @d1x date, @d2x DATE, @h1x INT, @h2x INT, @dpx INT, @datPrx date, @datnarx date, @datPlanPripustx varchar(10)
			SELECT TOP 1 @h1x = hmot, @d1x = DATVAZ FROM #2vx ORDER BY DATVAZ  DESC 
			SELECT TOP 1 @h2x = hmot, @d2x = DATVAZ FROM #2vx ORDER BY DATVAZ ASC 
			
			--SET @dp = ROUND((@h1-@h2) * 1000 / DATEDIFF(day,@d2,@d1),0) -- nahradene
			SET @dpx =  COALESCE(ROUND((@h1x-@h2x) * 1000 / NULLIF(DATEDIFF(day,@d2x,@d1x),0),0), 0)
			set @datPrx = case when @h1x >200 then (case when  @h1x>360 then /*@datPr =*/ DATEADD(m, 15, @datnarx)
								else /*@datPr = */ DATEADD(d, ((360- @h2x )*1000/NULLIF( @dpx,0)),@d1x) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnarx) then /*@datPr is*/ '' end end 
			set @datPlanPripustx = convert(varchar(3),DATEPART(month,@datPrx)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPrx)),2)
			


			UPDATE #abc2 SET DP = @DPx, planprip = @datPrx, datPlanPripust = @datPlanPripustx  WHERE cistelata = @cistelata2 AND chov = @chov ----AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			--
			DROP TABLE #2vx

			--- inseminacie
			DECLARE @datinsem2 DATE = null, @porins2 INT = null, @byk2 VARCHAR(7) = null, @vysetrenie2 INT = null, @idaot2 DATE = null, @ocotel2 DATE = null, @ocprip2 DATE = null,  @datkon2 DATE = null, @vekPripus2 varchar(6) = null
			SELECT TOP 1 
			@datinsem2 = i.IDAIN,
			@porins2 = i.IPOIN,
			--@byk2 =  i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3),
			@byk2 = case when i.IBLIN = 'NEZ' then 'NEZ'
			else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end,
			@vysetrenie2 = i.IVYSE,
			@idaot2 = i.IDAOT, 
            @ocotel2 = CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			@datkon2 = (SELECT TOP 1 DATVAZ FROM #vazenie2 WHERE CISTELATA = @cistelata2 ORDER BY  DATVAZ DESC),
			@ocprip2 = CASE WHEN DATEDIFF(MONTH, t.DATNAR, @datkon2 ) >= 15 THEN  DATEADD(dd, 285, i.IDAIN) ELSE NULL END ,
					-- doplnit datum pripustenia (vypocitanie)..23.8.2017
			@vekPripus2 = convert(varchar(3),convert(int,DATEDIFF(day,t.DATNAR,i.IDAIN)/30.42)) +' / '+ convert(varchar(2),convert(int,CONVERT(float,datediff(day,t.DATNAR,i.IDAIN)%30.42))) 
			 
			FROM dbo.CM_Insvyk AS i INNER JOIN (SELECT IPLCA, MAX(IDAIN) AS IDAIN FROM dbo.CM_Insvyk AS i GROUP BY IPLCA)i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.IDAIN
									INNER JOIN dbo.CM_Telata t ON (t.CISTELATA = i.IPLCA)
			WHERE i.IPLCA = @cistelata2

			UPDATE #abc2 SET
			datinsem = @datinsem2, byk = @byk2, ocotel = @ocotel2, @ocprip2 = @ocprip2, vekPripus = @vekPripus2
			WHERE cistelata = @cistelata2 AND chov = @chov AND rok = @rok--- AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			----

			-- laktacie
			DECLARE @porlakmax2 INT, @pocvsetlak2 INT , @pocnorlak2 INT, @mliekopr2 INT, @tukper2 DECIMAL(7,2), @bielkper2 DECIMAL(7,2), @tukmax2 DECIMAL(7,2), @bielmax2 DECIMAL(7,2), @mliekomax2 INT
            DECLARE @plemskladba2 VARCHAR(70)

			SELECT
			@porlakmax2 = k.PORLAKMAX,
			@pocvsetlak2 = k.POCVSETLAK,
			@pocnorlak2 = k.POCNORLAK,
			@mliekopr2 = k.MLIEKOPR,
			@tukper2 = k.TUKPRPER,
			@bielkper2 = k.BIELPRPER,
			@mliekomax2 = CONVERT(INT,k.MLIEKOMAX),
			--@tukmax = ((k.TUKMAX/k.MLIEKOMAX)*100),
			@tukmax2 = (k.TUKMAX/NULLIF(k.MLIEKOMAX,0)*100),
			--@bielmax = ((k.BIELMAX/k.MLIEKOMAX)*100)
			@bielmax2 = (k.BIELMAX/NULLIF(k.MLIEKOMAX,0)*100),
			@plemskladba2 = t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR2,
                                                              0)) + ' '
                                                              + ISNULL(t.PL3
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR3,
                                                              0)) + ' '
                                                              + ISNULL(t.PL4
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR4,
                                                              0)) + ' '
                                                              + ISNULL(t.PL5,
                                                              ''), ''), ''),
                                                              '')


			FROM dbo.CM_Telata t LEFT JOIN dbo.CM_Krava k ON (t.MATKA = k.CISKRAVY) WHERE t.CISTELATA = @cistelata2

			UPDATE #abc2 SET
			porlakmax = @porlakmax2, pocvsetlak = @pocvsetlak2, pocnorlak = @pocnorlak2, mliekopr = @mliekopr2,
			tukper = @tukper2, bielkper = @bielkper2, mliekomax = @mliekomax2, tukmax = @tukmax2, bielmax = @bielmax2,
			plemskladba = @plemskladba2
			WHERE cistelata = @cistelata2 AND chov = @chov AND rok = @rok---- AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			----
			
			--otec
			declare @O_uscislo2 varchar(14)=null, @O_meno2 varchar(30)=null
			select
			@O_uscislo2 = t.ouc,
			@O_meno2 =  b.meno
			FROM dbo.CM_Telata t LEFT JOIN  CM_Byci b ON (t.OUC = b.uscislo) WHERE t.CISTELATA = @cistelata
			
			UPDATE #abc1 SET  
			otecUscislo = @O_uscislo2, otecMeno = @O_meno2
			WHERE cistelata = @cistelata2 AND chov = @chov AND rok = @rok --AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO


			-- pocty vazeni
			UPDATE #abc2 SET
			DATVAZ1 = a.DATVAZ1, MESIAC1 = a.MESIAC1, DEN1 = a.DEN1, HMOT1 = a.HMOT1, RP1 = a.RP1
			FROM	(
			SELECT DATVAZ DATVAZ1, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC1, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie2 WHERE ID = 6
					)a
			WHERE cistelata = @cistelata2
		
			UPDATE #abc2 SET
			DATVAZ2 = a.DATVAZ2, MESIAC2 = a.MESIAC2, DEN2 = a.DEN2, HMOT2 = a.HMOT2, RP2 = a.RP2
			FROM	(
			SELECT DATVAZ DATVAZ2,  convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42)AS MESIAC2, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN2, CONVERT(INT,HMOT)HMOT2, RASTPAS RP2 FROM #vazenie2 WHERE ID = 5
					)a
			WHERE cistelata = @cistelata2

			UPDATE #abc2 SET
			DATVAZ3 = a.DATVAZ3, MESIAC3 = a.MESIAC3, DEN3 = a.DEN3, HMOT3 = a.HMOT3, RP3 = a.RP3
			FROM	(
			SELECT DATVAZ DATVAZ3, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC3, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN3, CONVERT(INT,HMOT)HMOT3, RASTPAS RP3 FROM #vazenie2 WHERE ID = 4
					)a
			WHERE cistelata = @cistelata2

			UPDATE #abc2 SET
			DATVAZ4 = a.DATVAZ4, MESIAC4 = a.MESIAC4, DEN4 = a.DEN4, HMOT4 = a.HMOT4, RP4 = a.RP4
			FROM	(
			SELECT DATVAZ DATVAZ4, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC4, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN4, CONVERT(INT,HMOT)HMOT4, RASTPAS RP4 FROM #vazenie2 WHERE ID = 3
					)a
			WHERE cistelata = @cistelata2

			UPDATE #abc2 SET
			DATVAZ5 = a.DATVAZ5, MESIAC5 = a.MESIAC5, DEN5 = a.DEN5, HMOT5 = a.HMOT5, RP5 = a.RP5
			FROM	(
			SELECT DATVAZ DATVAZ5, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC5, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN5, CONVERT(INT,HMOT)HMOT5, RASTPAS RP5 FROM #vazenie2 WHERE ID = 2
					)a
			WHERE cistelata = @cistelata2

			UPDATE #abc2 SET
			DATVAZ6 = a.DATVAZ6, MESIAC6 = a.MESIAC6, DEN6 = a.DEN6, HMOT6 = a.HMOT6, RP6 = a.RP6
			FROM	(
			SELECT DATVAZ DATVAZ6,  DATEDIFF(MONTH, DATNAR, DATVAZ)  AS MESIAC6, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN6, CONVERT(INT,HMOT)HMOT6, RASTPAS RP6 FROM #vazenie2 WHERE ID = 1
					)a
			WHERE cistelata = @cistelata2

			DROP TABLE #vazenie2
			FETCH NEXT FROM vazenie_cursor2 INTO @cistelata2

			END

			CLOSE vazenie_cursor2
			DEALLOCATE vazenie_cursor2
		
	INSERT INTO [dbo].[CR_EKRMD_stvrtR]
			(
			cistelata,
			chov,
			plemeno,
			datnar,
			pohlavie,
			PK,
			ET,
			farba,
			matka,
			otecLIN,
			otecREG,
			otecUscislo,
			otecMeno,
			datvaz1,mesiac1,den1,hmot1,rp1,
			datvaz2,mesiac2,den2,hmot2,rp2,
			datvaz3,mesiac3,den3,hmot3,rp3,
			datvaz4,mesiac4,den4,hmot4,rp4,
			datvaz5,mesiac5,den5,hmot5,rp5,
			datvaz6,mesiac6,den6,hmot6,rp6,
			zprir,
			dp,
			planprip,
			DatPlanPripust, 
			vekPripus,
			byk,
			datinsem,
			ocotel,
			ocprip,
			porlakmax,
			pocvsetlak,
			pocnorlak,
			mliekopr,
			tukper,
			bielkper,
			mliekomax,
			tukmax,
			bielmax,
			rok,
			mesiacSprac,
			mesiacOD,
			mesiacDO,
			generovane,
			plemskladba
			)
			SELECT * FROM #abc1 
			union select * FROM #abc2 where cistelata not in (SELECT cistelata FROM #abc1) 
	
		
			DROP TABLE #abc1
			DROP TABLE #abc2

	END
	END
	ELSE -------------------------------------------------------------
	
		BEGIN
			PRINT 'Ziadne spracovanie v priebehu danych mesiacov'
	
			DECLARE @cistelata3 varchar(14)
			DECLARE @counter3 int
			SET @counter3 = 0;						

		IF ( SELECT COUNT(*) FROM dbo.CM_Telata t 
							--left join CM_Vazenia as v on t.CISTELATA=v.CISTELATA
														where t.CHOVATEL=@chov and t.DOVVYR is null and t.PRIZNAKKU = 1  
															and (t.CISTELATA NOT IN (SELECT CISKRAVY FROM  dbo.CM_Naplak)) 
															AND (DOVVYR IS NULL) 
															AND (POHLAVIE NOT IN (61, 62, 63) OR POHLAVIE IS NULL)
															AND (t.CISTELATA NOT IN (SELECT USCISLO FROM dbo.CM_Byci))
															and (t.CISTELATA IN (SELECT CISTELATA FROM CM_Vazenia))) >= 1

			BEGIN
				DECLARE vazenie_cursor3 CURSOR LOCAL
					FOR
						SELECT distinct t.CISTELATA FROM dbo.CM_Telata t
							left outer join CM_Vazenia as v on t.CISTELATA=v.CISTELATA
							WHERE t.CHOVATEL=@chov  and t.DOVVYR is null and t.PRIZNAKKU = 1  
															and (t.CISTELATA NOT IN (SELECT CISKRAVY FROM  dbo.CM_Naplak)) 
															AND (DOVVYR IS NULL) 
															AND (POHLAVIE NOT IN (61, 62, 63) OR POHLAVIE IS NULL)
															AND (t.CISTELATA NOT IN (SELECT USCISLO FROM dbo.CM_Byci))
															and (t.CISTELATA IN (SELECT CISTELATA FROM CM_Vazenia))

				OPEN vazenie_cursor3
				FETCH NEXT FROM vazenie_cursor3 INTO @cistelata3
					WHILE @@FETCH_STATUS = 0
				BEGIN 
					SET @counter3 = @counter3 + 1
					IF OBJECT_ID('tempdb..#vazenie3') IS NULL
						BEGIN	
							SELECT TOP 6 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, DATVAZ, t.DATNAR, HMOT, RASTPAS INTO #vazenie3
								FROM  dbo.CM_Vazenia v
								LEFT JOIN dbo.CM_Telata t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata3 ORDER BY DATVAZ DESC
						END

						-- debug info
						DECLARE @vazenia_count3 INT
						SELECT @vazenia_count3 = COUNT(*) FROM #vazenie3
						PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count3)

	
						IF OBJECT_ID('tempdb..#abc3') IS NULL		
						BEGIN			

							PRINT 'Vytvorenie temp #abc3....'
									CREATE TABLE #abc3
									(
									cistelata VARCHAR(14),
									chov VARCHAR(9),
									plemeno VARCHAR(3),
									datnar DATE,
									pohlavie VARCHAR(2),
									PK VARCHAR(3),
									ET BIT,
									farba VARCHAR(2),
									matka VARCHAR(14),
									otecLIN VARCHAR(3),
									otecREG INT,
									otecUscislo VARCHAR(14),
									otecMeno VARCHAR(30),
									datvaz1 DATE,mesiac1 INT,den1 INT,hmot1 INT,rp1 VARCHAR,
									datvaz2 DATE,mesiac2 INT,den2 INT,hmot2 INT,rp2 VARCHAR,
									datvaz3 DATE,mesiac3 INT,den3 INT,hmot3 INT,rp3 VARCHAR,
									datvaz4 DATE,mesiac4 INT,den4 INT,hmot4 INT,rp4 VARCHAR,
									datvaz5 DATE,mesiac5 INT,den5 INT,hmot5 INT,rp5 VARCHAR,
									datvaz6 DATE,mesiac6 INT,den6 INT,hmot6 INT,rp6 VARCHAR,
									zprir INT,
									dp INT,
									planprip DATE,
									DatPlanPripust varchar(10), 
									vekPripus varchar(6),
									byk VARCHAR(7),
									datinsem DATE,
									ocotel DATE,
									ocprip DATE,
									porlakmax INT,
									pocvsetlak INT,
									pocnorlak INT,
									mliekopr INT,
									tukper DECIMAL(7,2),
									bielkper DECIMAL(7,2),
									mliekomax INT,
									tukmax  DECIMAL(7,2),
									bielmax DECIMAL(7,2),
									rok int,
									mesiacSprac int,
									mesiacOD INT,
									mesiacDO int,
									generovane DATETIME,
									plemskladba varchar(70)
									)
						END

						INSERT INTO #abc3 (cistelata, chov, rok, /*mesiacSprac,*/ mesiacOD, mesiacDO, generovane) VALUES (@cistelata3, @chov , @rok, /*@mesiac_spracovania, */@mesiacOD, @mesiacDO, GETDATE())

					-- vlozenie z CM_Telata
				UPDATE #abc3 SET
					chov = @chov, plemeno = a.TYPPLEM, datnar = a.datnar, pohlavie = a.pohlavie, PK = a.PK, ET = a.ZNAKET, farba = a.farba, matka = a.matka, otecLIN = a.otecLIN, otecREG = a.otecREG
					FROM	(
							SELECT t.CHOVATEL, t.TYPPLEM, t.datnar, t.pohlavie, k.PK , t.ZNAKET, t.farba, t.matka, t.otecLIN, t.otecREG  FROM cm_telata t
									LEFT JOIN cm_krava k ON (k.CISKRAVY = t.MATKA)
									WHERE CISTELATA = @cistelata3
							)a
					WHERE cistelata = @cistelata3

				UPDATE #abc3 SET
					zprir = a.zp FROM (SELECT TOP 1 convert(int,ZIVPRIR)zp FROM cm_vazenia WHERE CISTELATA = @cistelata3 ORDER BY DATVAZ DESC )a
					WHERE cistelata = @cistelata3

					-- denny prirastok
					SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2vy FROM cm_vazenia WHERE CISTELATA = @cistelata3 ORDER BY DATVAZ DESC
					DECLARE @d1y date, @d2y DATE, @h1y INT, @h2y INT, @dpy INT, @datPry date, @datnary date, @datPlanPripusty varchar(10)
					SELECT TOP 1 @h1y = hmot, @d1y = DATVAZ FROM #2vy ORDER BY DATVAZ  DESC 
					SELECT TOP 1 @h2y = hmot, @d2y = DATVAZ FROM #2vy ORDER BY DATVAZ ASC 
			
					--SET @dp = ROUND((@h1-@h2) * 1000 / DATEDIFF(day,@d2,@d1),0) -- nahradene
					SET @dpy =  COALESCE(ROUND((@h1y-@h2y) * 1000 / NULLIF(DATEDIFF(day,@d2y,@d1y),0),0), 0)
					set @datPry = case when @h1y >200 then (case when  @h1y>360 then /*@datPr =*/ DATEADD(m, 15, @datnary)
								else /*@datPr = */ DATEADD(d, ((360- @h2y )*1000/NULLIF( @dpy,0)),@d1y) 
								end)
								else case when @datPry < DATEADD(m, 15, @datnary) then /*@datPr is*/ '' end end 
					set @datPlanPripusty = convert(varchar(3),DATEPART(month,@datPry)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPry)),2)

					UPDATE #abc3 SET DP = @DPy, planprip = @datPry, datPlanPripust = @datPlanPripusty  WHERE cistelata = @cistelata3 AND chov = @chov  ----AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			--
						DROP TABLE #2vy

			--- inseminacie
					DECLARE @datinsem3 DATE = null, @porins3 INT = null, @byk3 VARCHAR(7) = null, @vysetrenie3 INT = null, @idaot3 DATE = null, @ocotel3 DATE = null, @ocprip3 DATE = null,  @datkon3 DATE = null, @vekPripus3 varchar(6) = null
					SELECT TOP 1 
					@datinsem3 = i.IDAIN,
					@porins3 = i.IPOIN,
					--@byk3 =  i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3),
					@byk3 = case when i.IBLIN = 'NEZ' then 'NEZ'
							else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end,
					@vysetrenie3 = i.IVYSE,
					@idaot3 = i.IDAOT, 
					@ocotel3 = CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
					@datkon3 = (SELECT TOP 1 DATVAZ FROM #vazenie3 WHERE CISTELATA = @cistelata3 ORDER BY  DATVAZ DESC),
					@ocprip3 = CASE WHEN DATEDIFF(MONTH, t.DATNAR, @datkon3 ) >= 15 THEN  DATEADD(dd, 285, i.IDAIN) ELSE NULL END ,
					-- doplnit datum pripustenia (vypocitanie)..23.8.2017
					@vekPripus3 = convert(varchar(3),convert(int,DATEDIFF(day,t.DATNAR,i.IDAIN)/30.42)) +' / '+ convert(varchar(2),convert(int,CONVERT(float,datediff(day,t.DATNAR,i.IDAIN)%30.42))) 
					FROM dbo.CM_Insvyk AS i INNER JOIN (SELECT IPLCA, MAX(IDAIN) AS IDAIN FROM dbo.CM_Insvyk AS i GROUP BY IPLCA)i3 ON i.IPLCA = i3.IPLCA AND i.IDAIN = i3.IDAIN
											INNER JOIN dbo.CM_Telata t ON (t.CISTELATA = i.IPLCA)
					WHERE i.IPLCA = @cistelata3

				UPDATE #abc3 SET
					datinsem = @datinsem3, byk = @byk3, ocotel = @ocotel3, @ocprip3 = @ocprip3, vekPripus = @vekPripus3
					WHERE cistelata = @cistelata3 AND chov = @chov  AND rok = @rok--- AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			----

					-- laktacie
					DECLARE @porlakmax3 INT, @pocvsetlak3 INT , @pocnorlak3 INT, @mliekopr3 INT, @tukper3 DECIMAL(7,2), @bielkper3 DECIMAL(7,2), @tukmax3 DECIMAL(7,2), @bielmax3 DECIMAL(7,2), @mliekomax3 INT
					DECLARE @plemskladba3 VARCHAR(70)

					SELECT
					@porlakmax3 = k.PORLAKMAX,
					@pocvsetlak3 = k.POCVSETLAK,
					@pocnorlak3 = k.POCNORLAK,
					@mliekopr3 = k.MLIEKOPR,
					@tukper3 = k.TUKPRPER,
					@bielkper3 = k.BIELPRPER,
					@mliekomax3 = CONVERT(INT,k.MLIEKOMAX),
					--@tukmax = ((k.TUKMAX/k.MLIEKOMAX)*100),
					@tukmax3 = (k.TUKMAX/NULLIF(k.MLIEKOMAX,0)*100),
					--@bielmax = ((k.BIELMAX/k.MLIEKOMAX)*100)
					@bielmax3 = (k.BIELMAX/NULLIF(k.MLIEKOMAX,0)*100),
					@plemskladba3 = t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2
																		+ '-'
																		+ CONVERT(VARCHAR, ISNULL(t.KR2,
																		0)) + ' '
																		+ ISNULL(t.PL3
																		+ '-'
																		+ CONVERT(VARCHAR, ISNULL(t.KR3,
																		0)) + ' '
																		+ ISNULL(t.PL4
																		+ '-'
																		+ CONVERT(VARCHAR, ISNULL(t.KR4,
																		0)) + ' '
																		+ ISNULL(t.PL5,
																		''), ''), ''),
																		'')


					FROM dbo.CM_Telata t LEFT JOIN dbo.CM_Krava k ON (t.MATKA = k.CISKRAVY) WHERE t.CISTELATA = @cistelata3

					UPDATE #abc3 SET
					porlakmax = @porlakmax3, pocvsetlak = @pocvsetlak3, pocnorlak = @pocnorlak3, mliekopr = @mliekopr3,
					tukper = @tukper3, bielkper = @bielkper3, mliekomax = @mliekomax3, tukmax = @tukmax3, bielmax = @bielmax3,
					plemskladba = @plemskladba3
					WHERE cistelata = @cistelata3 AND chov = @chov  AND rok = @rok---- AND mesiacOD = @mesiacOD and mesiacDO = @mesiacDO			----
			

						--otec
					declare @O_uscislo3 varchar(14)=null, @O_meno3 varchar(30)=null
					select
					@O_uscislo3 = t.ouc,
					@O_meno3 =  b.meno
					FROM dbo.CM_Telata t LEFT JOIN  CM_Byci b ON (t.OUC = b.uscislo) WHERE t.CISTELATA = @cistelata3
			
					UPDATE #abc3 SET  
					otecUscislo = @O_uscislo3, otecMeno = @O_meno3
					WHERE cistelata = @cistelata3 AND chov = @chov AND rok = @rok 

					-- pocty vazeni
					UPDATE #abc3 SET
					DATVAZ1 = a.DATVAZ1, MESIAC1 = a.MESIAC1, DEN1 = a.DEN1, HMOT1 = a.HMOT1, RP1 = a.RP1
					FROM	(
					SELECT DATVAZ DATVAZ1, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC1, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie3 WHERE ID = 6
							)a
					WHERE cistelata = @cistelata3
		
					UPDATE #abc3 SET
					DATVAZ2 = a.DATVAZ2, MESIAC2 = a.MESIAC2, DEN2 = a.DEN2, HMOT2 = a.HMOT2, RP2 = a.RP2
					FROM	(
					SELECT DATVAZ DATVAZ2,  convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42)AS MESIAC2, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN2, CONVERT(INT,HMOT)HMOT2, RASTPAS RP2 FROM #vazenie3 WHERE ID = 5
							)a
					WHERE cistelata = @cistelata3

					UPDATE #abc3 SET
					DATVAZ3 = a.DATVAZ3, MESIAC3 = a.MESIAC3, DEN3 = a.DEN3, HMOT3 = a.HMOT3, RP3 = a.RP3
					FROM	(
					SELECT DATVAZ DATVAZ3, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC3, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN3, CONVERT(INT,HMOT)HMOT3, RASTPAS RP3 FROM #vazenie3 WHERE ID = 4
							)a
					WHERE cistelata = @cistelata3

					UPDATE #abc3 SET
					DATVAZ4 = a.DATVAZ4, MESIAC4 = a.MESIAC4, DEN4 = a.DEN4, HMOT4 = a.HMOT4, RP4 = a.RP4
					FROM	(
					SELECT DATVAZ DATVAZ4, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC4, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN4, CONVERT(INT,HMOT)HMOT4, RASTPAS RP4 FROM #vazenie3 WHERE ID = 3
							)a
					WHERE cistelata = @cistelata3

					UPDATE #abc3 SET
					DATVAZ5 = a.DATVAZ5, MESIAC5 = a.MESIAC5, DEN5 = a.DEN5, HMOT5 = a.HMOT5, RP5 = a.RP5
					FROM	(
					SELECT DATVAZ DATVAZ5, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC5, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN5, CONVERT(INT,HMOT)HMOT5, RASTPAS RP5 FROM #vazenie3 WHERE ID = 2
							)a
					WHERE cistelata = @cistelata3

					UPDATE #abc3 SET
					DATVAZ6 = a.DATVAZ6, MESIAC6 = a.MESIAC6, DEN6 = a.DEN6, HMOT6 = a.HMOT6, RP6 = a.RP6
					FROM	(
					SELECT DATVAZ DATVAZ6,  DATEDIFF(MONTH, DATNAR, DATVAZ)  AS MESIAC6, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN6, CONVERT(INT,HMOT)HMOT6, RASTPAS RP6 FROM #vazenie3 WHERE ID = 1
							)a
					WHERE cistelata = @cistelata3

					DROP TABLE #vazenie3
					FETCH NEXT FROM vazenie_cursor3 INTO @cistelata3

				END
					CLOSE vazenie_cursor3
					DEALLOCATE vazenie_cursor3
			
			
			INSERT INTO [dbo].[CR_EKRMD_stvrtR]
				(
					cistelata,
					chov,
					plemeno,
					datnar,
					pohlavie,
					PK,
					ET,
					farba,
					matka,
					otecLIN,
					otecREG,
					otecUscislo,
					otecMeno,
					datvaz1,mesiac1,den1,hmot1,rp1,
					datvaz2,mesiac2,den2,hmot2,rp2,
					datvaz3,mesiac3,den3,hmot3,rp3,
					datvaz4,mesiac4,den4,hmot4,rp4,
					datvaz5,mesiac5,den5,hmot5,rp5,
					datvaz6,mesiac6,den6,hmot6,rp6,
					zprir,
					dp,
					planprip,
					DatPlanPripust, 
					vekPripus,
					byk,
					datinsem,
					ocotel,
					ocprip,
					porlakmax,
					pocvsetlak,
					pocnorlak,
					mliekopr,
					tukper,
					bielkper,
					mliekomax,
					tukmax,
					bielmax,
					rok,
					mesiacSprac,
					mesiacOD,
					mesiacDO,
					generovane,
					plemskladba
				)
						SELECT * FROM #abc3

						DROP TABLE #abc3
						
		end	
		begin			
			IF ( SELECT COUNT(*) FROM dbo.CM_Telata t 
							--left join CM_Vazenia as v on t.CISTELATA=v.CISTELATA
														where t.CHOVATEL=@chov and t.DOVVYR is null and t.PRIZNAKKU = 1  
															and (t.CISTELATA NOT IN (SELECT CISKRAVY FROM  dbo.CM_Naplak)) 
															AND (DOVVYR IS NULL) 
															AND (POHLAVIE NOT IN (61, 62, 63) OR POHLAVIE IS NULL)
															AND (t.CISTELATA NOT IN (SELECT USCISLO FROM dbo.CM_Byci))
															and (t.CISTELATA IN (SELECT CISTELATA FROM CM_Vazenia))) = 0
			PRINT 'Ziadne telata na spracovanie'
end
end
END


go

/*z_hd_p_StadaPodlaVeku*/
CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_KravyPodlaRokovALakt_Chovatel]	(@chovatel varchar(9), @kolko int, @skupina varchar(2))
AS
BEGIN

	declare @chov varchar(9);
	set @chov=@chovatel;
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=@kolko;
	set @pocet=0;
	
	
	
	
	declare @h as int; 

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;


	create table #aTable  
	(
	rok varchar(20),
	l1  int,
	l2  int,
	l3  int,
	l4  int,
	l5  int,
	l6  int,
	l7  int,
	l8  int,
	l9  int,
	l10  int,
	countA  int,
	chov  varchar(9)
	)

	set @count=0;

	declare  chovately cursor 
	for SELECT  DISTINCT     SUBSTRING( CHOVATEL,1,@l) as chov
		FROM    dbo.CM_Krava AS k
		WHERE    (PRIZNAKKU = '1') AND (DOVVYR IS NULL)
		and chovatel like SUBSTRING( @chov,1,@l)+'%'
		and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
		GROUP BY SUBSTRING( CHOVATEL,1,@l)

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					print @chov;
				
						
					--	declare lakt1 cursor
					--	for SELECT COUNT(*) AS po4et, PORPREBLAK 
					--		FROM  dbo.CM_Krava AS k
					--		WHERE (PRIZNAKKU = '1') 
					--		AND (DOVVYR IS NULL) 
					--		and DATNAR is null
					--		and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
					--		and k.PORPREBLAK is not null
					--		and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
					--		GROUP BY PORPREBLAK

					--	open lakt1 
					--	fetch next from lakt1 into @pocet,@h
					--	WHILE @@FETCH_STATUS = 0 
					--	BEGIN 
							
					--		set @rok=1;
					--		set @count=@count+@pocet;

					--		--if(@l=1)
					--		if(@h=1)							
					--		begin
					--			set @l1=@pocet;
					--		end
					--		if(@h=2)
					--		begin
					--			set @l2=@pocet;
					--		end
					--		if(@h=3)
					--		begin
					--			set @l3=@pocet;
					--		end
					--		if(@h=4)
					--		begin
					--			set @l4=@pocet;
					--		end
					--		if(@h=5)
					--		begin
					--			set @l5=@pocet;
					--		end
					--		if(@h=6)
					--		begin
					--			set @l6=@pocet;
					--		end
					--		if(@h=7)
					--		begin
					--			set @l7=@pocet;
					--		end
					--		if(@h=8)
					--		begin
					--			set @l8=@pocet;
					--		end
					--		if(@h=9)
					--		begin
					--			set @l9=@pocet;
					--		end
					--		if(@h=10)
					--		begin
					--			set @l10=@pocet;
					--		end

					--		fetch next from lakt1 into @pocet,@h
					--	end
					--	set @rok=null;
					--	--insert  into  #aTable values (@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
					--	insert into #aTable values('Bez dát. nar.',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
					--	close lakt1;
					--	deallocate lakt1;
					--	set @count=0;
					--	set @l1=null;
					--set @l2=null;
					--set @l3=null;
					--set @l4=null;
					--set @l5=null;
					--set @l6=null;
					--set @l7=null;
					--set @l8=null;
					--set @l9=null;
					--set @l10=null;

						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
							set @count=@count+@pocet;

							if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt1 into @pocet,@h
						end
						set @rok=1;
						insert  into  #aTable values (@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							print N'2rok kolko= '+convert(varchar(1),@l)+N' chovatel= '+convert(varchar(9),@chov);
							set @rok=2;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt2 into @pocet,@h
						end
						set @rok=2;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt3 into @pocet,@h
						end
						set @rok=3;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt4 
						fetch next from lakt4 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt4 into @pocet,@h
						end
						set @rok=4;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt5 
						fetch next from lakt5 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=5;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt5 into @pocet,@h
						end
						set @rok=5;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK
							
							
							

						open lakt6 
						fetch next from lakt6 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt6 into @pocet,@h
						end
						set @rok=6;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt7 into @pocet,@h
						end
						set @rok=7;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

												
						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt8 into @pocet,@h 
						end
						set @rok=8;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt9 into @pocet,@h
						end
						set @rok=9;
						insert into #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt10 into @pocet,@h
						end
						set @rok=10;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt11 into @pocet,@h
						end
						set @rok=11;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt12 into @pocet,@h
						end
						set @rok=12;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.999999)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt13 into @pocet,@h
						end
						set @rok=13;
						insert into  #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							--and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 14 and 14.999999)
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))>= 14)
							and DATNAR is not null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

								if(@h=1)
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt14 into @pocet,@h
						end
						set @rok=14;
						--insert into #aTable values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						insert into #aTable values('14 a viac',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						--insert into #aTable values('Bez dát. nar.',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and DATNAR is null
							and	CHOVATEL like SUBSTRING( @chov,1,@l)+'%'
							and k.PORPREBLAK is not null
							and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@h
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
							set @count=@count+@pocet;

							--if(@l=1)
							if(@h=1)							
							begin
								set @l1=@pocet;
							end
							if(@h=2)
							begin
								set @l2=@pocet;
							end
							if(@h=3)
							begin
								set @l3=@pocet;
							end
							if(@h=4)
							begin
								set @l4=@pocet;
							end
							if(@h=5)
							begin
								set @l5=@pocet;
							end
							if(@h=6)
							begin
								set @l6=@pocet;
							end
							if(@h=7)
							begin
								set @l7=@pocet;
							end
							if(@h=8)
							begin
								set @l8=@pocet;
							end
							if(@h=9)
							begin
								set @l9=@pocet;
							end
							if(@h=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt1 into @pocet,@h
						end
						set @rok=null;
						--insert  into  #aTable values (@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						insert into #aTable values('Bez dát. nar.',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					FETCH NEXT FROM chovately INTO @chov;
			end

			--print @count;

			close chovately;
			deallocate chovately;

				--return (select * from #aTable );
				select * from #aTable
			drop table #aTable
			
			/*
			
			okres = 3; podnik = 6;
			
			declare @chovatel varchar(9);
			declare @kolko int;
			declare @skupina varchar(2);
			
			set @chovatel = '807543011'
			set @kolko = 6;	
			set @skupina = '01';
					
			exec [dbo].[C_ZZ_Mlieko_KravyPodlaRokovALakt_Chovatel] @chovatel, @kolko, @skupina
						
			*/
			
    
END
go

-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 04.11.2015
-- Last update: 04.11.2015
-- Description:	Skopirovanie CM_Krava, CM_Byci, CM_Telata, Ainbreeding2 (interbull data)
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_kopirovanie_krav_nove] 
AS
BEGIN			
	truncate table Ainbreeding_Sprac
	
	INSERT INTO Ainbreeding_Sprac
		([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
	SELECT USCISLO, OTUSCIS, MATKA, DATNAR, POHLAVIE, MENO, PL1, 'PSSRbyk'
	FROM CM_Byci


	INSERT INTO Ainbreeding_Sprac
		([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
	SELECT CISKRAVY, OUSCIS, MA, DATNAR,  POHLAVIE, bb_name, PL1, 'PSSRkrava'
		FROM CM_Krava k
		where PRIZNAKKU <> '0'
		--and CISKRAVY <> (select top 1 uscislo from Ainbreeding a where a.uscislo = k.CISKRAVY)
		and CISKRAVY not in (select uscislo from Ainbreeding_Sprac)
		and OUSCIS is not null and ma is not null 

	DELETE FROM Ainbreeding_Sprac WHERE otec is null and matka is null 

	
	INSERT INTO Ainbreeding_Sprac
		([uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], [povoddat], [IB_uscislo],
		[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz])
	SELECT 
		[uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], 'IB', [IB_uscislo],
		[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz]
	FROM Ainbreeding2 b
	WHERE --uscislo <> (select top 1 uscislo from Ainbreeding a where a.uscislo = b.uscislo)
	 uscislo not in (select uscislo from Ainbreeding_Sprac)
	

	DELETE FROM Ainbreeding_Sprac WHERE otec is null and matka is null 

	INSERT INTO Ainbreeding_Sprac
		([uscislo],[otec],[matka],[datnar],[pohlavie],[plemeno],[povoddat])
	SELECT CISTELATA, OUC, MATKA, DATNAR, POHLAVIE, PL1, 'PSSRtela'
		FROM CM_Telata t
		--WHERE CISTELATA not in (select uscislo from Ainbreeding)
		WHERE --CISTELATA <> (select top 1 uscislo from Ainbreeding a where a.uscislo = t.cistelata)
		 CISTELATA not in (select uscislo from Ainbreeding_Sprac)

	--DELETE FROM Ainbreeding_Sprac WHERE otec is null and matka is null 
END
go


/***masova rocenka - variabilita medziobdobia krav otelenych v kontrolnom roku v %tach - podla plemien
Masova rocenka 2017 - str.34 **/
 CREATE procedure [dbo].[Roc_MPHD_7]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_7 where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @kravy table 
	(
	ciskravy varchar(14),
	datnar date, 
	datvyr date, 
	porpreblak varchar(2),
	plemeno varchar(10),
	datotel date,
	medziobd int
	)

insert into @kravy 
( ciskravy, datnar, datvyr, porpreblak, plemeno, datotel, medziobd )
	select k.CISKRAVY, k. DATNAR, k.DATVYR, k.PORPREBLAK, 
	case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when k.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when k.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when k.TYPPLEM = '131' then 'Gal'
				when k.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when k.TYPPLEM = '151' then 'High'
				when k.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when k.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when k.TYPPLEM = '181' then 'SDM'
				when k.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when k.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when k.TYPPLEM in ('51','53','54') then 'Pin'
				when k.TYPPLEM in ('11','13','14') then 'Slst'
				when ((k.TYPPLEM is null and k.PL1 is null) 
						or (k.TYPPLEM is null and k.PL1<>'X') 
						or (k.TYPPLEM not in (--'101','102','103','104','105'
											'111','112','113','114','115',
											'121','122','123','124','125', 
											'131', 
											'151', 
											'161','162','163','164','165', 
											'171','172','173','174','175', 
											--'181',
											'201','202','203','204','205',
											--'191','192','193','194','195', 
											'51','53','54', 
											'11','13','14' ) and k.PL1<>'X')) then 'Osta'
				when k.PL1 = 'X' then 'Nez'
			end as plemeno,
			/**************povodne
		----case when k.TYPPLEM in ('111','112','113','114','115') then 'AA'
		----		when k.TYPPLEM in ('121','122','123','124','125') then 'BdA'
		----		when k.TYPPLEM = '131' then 'Gal'
		----		when k.TYPPLEM = '151' then 'High'
		----		when k.TYPPLEM in ('161','162','163','164','165') then 'Char'
		----		when k.TYPPLEM in ('171','172','173','174','175') then 'Lim'
		----		when k.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
		----		when k.TYPPLEM in ('191','192','193','194','195') then 'Piem'
		----		when k.TYPPLEM in ('51','53','54') then 'Pin'
		----		when k.TYPPLEM in ('11','13','14') then 'Slst'
		----		when k.TYPPLEM = '999' then 'Osta'
		----		when k.TYPPLEM is null then 'Nez' end as plemeno,
		**************/
		--pp.Ciskrava, 
		pp.Datotel,
		m.medziobd
	from CM_Krava as k
		LEFT OUTER JOIN CP_MedziObdMesove AS m ON k.CISKRAVY = m.kravcislo and m.PORPREBLAK = k.porpreblak 
		LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS pp ON k.CISKRAVY = pp.Ciskrava 
															AND pp.Datotel=(Select TOP (1) Datotel from PLIS.dbo.Cp_Meso_TelataPoLaktacii 
																							WHERE Ciskrava=k.Ciskravy 
																								order by Datotel desc)
where (k.DOVVYR is null or (k.datvyr >= @datumOd and k.datvyr <= @datumDo)) 
	and pp.Datotel >= @datumOd and pp.Datotel <= @datumDo
	and (k.PRIZNAKKU = '2')
	and k.PORPREBLAK is not null 
	and (k.typplem is null or k.TYPPLEM in (--'101','102','103','104','105',	---- BBM
													'111','112','113','114','115',		---- AA
													'121','122','123','124','125',		---- BdA
													'131',								---- Gal
													'141','142','143','144','145',		---- Hem
													'151',								---- High
													'161','162','163','164','165',		---- Char
													'171','172','173','174','175',		---- Lim
													--'181',							---- SDM
													'201','202','203','204','205',		---- Sim_maso
													--'191','192','193','194','195',	---- Piem
													'51','53','54',						---- Pin
													'11','13','14'))					---- Slst'
													--'999'))
	and m.medziobd is not null

--select * from Cp_Meso_TelataPoLaktacii

--select * from @kravy

declare @mezdiobd_pocty table
	(
	plemeno varchar(10),
	do350 int, 
	do380 int, 
	do410 int, 
	do440 int, 
	do470 int, 
	nad471 int, 
	spolu int
	)

Insert into @mezdiobd_pocty
	(plemeno, do350, do380, do410, do440, do470, nad471, spolu)

	select plemeno, 
			sum(case when medziobd <= 350 then 1 else 0 end ) as 'do350',
			sum(case when medziobd >= 351 and medziobd <= 380 then 1 else 0 end ) as 'do380',
			sum(case when medziobd >= 381 and medziobd <= 410 then 1 else 0 end ) as 'do410',
			sum(case when medziobd >= 411 and medziobd <= 440 then 1 else 0 end ) as 'do440',
			sum(case when medziobd >= 441 and medziobd <= 470 then 1 else 0 end ) as 'do470',
			sum(case when medziobd >= 471 and medziobd <= 1200 then 1 else 0 end ) as 'nad471',
			sum(case when medziobd <= 1200 then 1 else 0 end ) as 'spolu'
	from @kravy
	group by plemeno

union
	select 'SR' as plemeno, 
			sum(case when medziobd <= 350 then 1 else 0 end ) as 'do350',
			sum(case when medziobd >= 351 and medziobd <= 380 then 1 else 0 end ) as 'do380',
			sum(case when medziobd >= 381 and medziobd <= 410 then 1 else 0 end ) as 'do410',
			sum(case when medziobd >= 411 and medziobd <= 440 then 1 else 0 end ) as 'do440',
			sum(case when medziobd >= 441 and medziobd <= 470 then 1 else 0 end ) as 'do470',
			sum(case when medziobd >= 471 and medziobd <= 1200 then 1 else 0 end ) as 'nad471',
			sum(case when medziobd <= 1200 then 1 else 0 end ) as 'spolu'
	from @kravy
	

--select * from @mezdiobd_pocty

--declare @variabilita_medziobd table

--create table Roc_MPHD_Tab_7
--	(
--	plemeno varchar(10),
--	do350 int, 
--	do350_p decimal(6,2),
--	do380 int, 
--	do380_p decimal(6,2),
--	do410 int, 
--	do410_p decimal(6,2),
--	do440 int, 
--	do440_p decimal(6,2),
--	do470 int, 
--	do470_p decimal(6,2),
--	nad471 int, 
--	nad471_p decimal(6,2),
--	spolu int,
--	rok int
--	)

	insert into Roc_MPHD_Tab_7
		(plemeno, do350, do350_p, do380, do380_p, do410, do410_p, do440, do440_p, do470, do470_p, nad471, nad471_p, spolu, rok)
	select plemeno, 
			do350,
			cast((do350 * 100.0 / spolu) as decimal(5,2)) as do350_p,
			do380,
			cast((do380 * 100.0 / spolu) as decimal(5,2)) as do380_p,
			do410,
			cast((do410 * 100.0 / spolu) as decimal(5,2)) as do410_p,
			do440,
			cast((do440 * 100.0 / spolu) as decimal(5,2)) as do440_p,
			do470,
			cast((do470 * 100.0 / spolu) as decimal(5,2)) as do470_p,
			nad471,
			cast((nad471 * 100.0 / spolu) as decimal(5,2)) as nad471_p,
			spolu,
			DATEPART(year, @datumOd) as rok
	from @mezdiobd_pocty
	group by plemeno, do350, do380, do410, do440, do470, nad471, spolu

--select * from @variabilita_medziobd
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create FUNCTION [dbo].[A_UsCislo_Fix]
(		
	@UsCislo varchar(20)	
)
RETURNS TABLE 
AS
RETURN 
(

--	select 
--		case when len(@UsCislo) = 14 
--		then 
--			@UsCislo 
--		else
--			case when substring(@UsCislo, 1, 1) >= '0' and substring(@UsCislo, 1, 1) <= '9' 
--			then	
--				'SK' + REPLICATE('0', 12 - len(@UsCislo)) + @UsCislo
--			else	
--				substring(@UsCislo, 1, 2) + REPLICATE('0', 14 - len(@UsCislo)) + substring(@UsCislo, 3, 14)
--			end 
--		end as UsCislo
--)
	select 
			(case when len(UsCislo) = 14 
			then 
				UsCislo 
			else
				case when substring(UsCislo, 1, 1) >= '0' and substring(UsCislo, 1, 1) <= '9' 
				then	
					'SK' + REPLICATE('0', 12 - len(UsCislo)) + UsCislo
				else	
					substring(UsCislo, 1, 2) + REPLICATE('0', 14 - len(UsCislo)) + substring(UsCislo, 3, 14)
				end 
			end) as UsCislo
	from 
	(
		select replace(@UsCislo, ' ', '') as UsCislo
	) t
)
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania09]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	

	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd09.CISKRAVY, hd09.CS, 
	hd09.DATSPRAC, hd09.LOGIN, hd09.PRIZSPRAC, hd09.VERZIA
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd09.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd09.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_HLASSKUP as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD09_HLASSKUP as hd09
	on h.IDR_HLAS = hd09.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '9' and ezk.CISCHYBY is not null

	
	order by CHOV, CISKRAVY

end
go

CREATE procedure  [dbo].[Roc_MLHD_11]
	@datumOd date,
	@datumDo date

	as
	begin
		
	delete from Roc_MLHD_Tab_11 where rok = datepart(YEAR, @datumOd);


	insert Roc_MLHD_Tab_11 (
				Expr1,
				Por,
				rozmedzie_od,
				rozmedzie_do,
				pocet,
				pocet100,
				mlieko100,
				pBielko100,
				pTuk100,
				pocet200,
				mlieko200,
				pBielk200,
				pTuk200,
				pocet305,
				mlieko305,
				pTuk305,
				pBielk305,
				rok
		)
	SELECT 'do 24' AS Expr1,
			1 as por,
			'0' as rozmedzie_od,
			'24' as rozmedzie_do,
			COUNT(*) AS pocet_vsetkych_pvostok,
			COUNT(l.mlieko100) as pocet_pvostok_100,
			AVG(l.MLIEKO100) AS mlieko1000,
			AVG(l.BIELK100) * 100 / AVG(nullif(l.MLIEKO100,0)) AS pBielko100,
			AVG(l.TUK100) * 100 / AVG(nullif(l.MLIEKO100,0)) AS pTuk100,
			COUNT(l.mlieko200) as pocet_pvostok_200,
			AVG(l.MLIEKO200) AS mlieko200,
			AVG(l.BIELK200) * 100 / AVG(nullif(l.MLIEKO200,0)) AS pBielk200,
			AVG(l.TUK200) * 100 / AVG(nullif(l.MLIEKO200,0)) AS pTuk200,
			COUNT(u.MLIEKNOR) as pocet_pvostok_305,
			AVG(u.MLIEKNOR) AS mlieko305,
			AVG(u.TUKNOR) * 100 / AVG(nullif(u.MLIEKNOR,0)) AS pTuk305,
			AVG(u.BIELKNOR) * 100 / AVG(nullif(u.MLIEKNOR,0)) AS pBielk305,
			datepart(YEAR, @datumOd) as rok
		FROM CM_Krava AS k
			INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
			LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
		WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo
			AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 <= 24) AND (k.DATNAR IS NOT NULL)

 UNION

	 SELECT 'do 25' AS Expr1,
		  2 as por,
		 '24.0000000000000001' as rozmedzie_od,
		 '25' as rozmedzie_do,
		 COUNT(*) AS pocet,
		 COUNT(l.mlieko100) as pocet_pvostok_100,
		 AVG(l.MLIEKO100) AS mlieko1000,
		 AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		 AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		 COUNT(l.mlieko200) as pocet_pvostok_200, AVG(l.MLIEKO200) AS mlieko200,
		 AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		 AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		 COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		 AVG(u.MLIEKNOR) AS mlieko305,
		 AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		 AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	  FROM CM_Krava AS k
		  INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
		  LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
	  WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
			(DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 24.0000000000000001 AND 25) AND (k.DATNAR IS NOT NULL)

  UNION

	SELECT 'do 26' AS Expr1,
		3 as por,
		'25.0000000000000001' as rozmedzie_od,
		'26' as rozmedzie_do,
		COUNT(*) AS pocet, COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	 FROM CM_Krava AS k
	   INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
	   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
	 WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
			(DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 25.0000000000000001 AND 26) AND (k.DATNAR IS NOT NULL)

UNION

   SELECT 'do 27' AS Expr1,
		 4 as por,
		'26.0000000000000001' as rozmedzie_od,
		'27' as rozmedzie_do,
		COUNT(*) AS pocet, COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	FROM CM_Krava AS k
	   INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
	   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
   WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
		(DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 26.0000000000000001 AND 27) AND (k.DATNAR IS NOT NULL)

UNION

   SELECT 'do 28' AS Expr1,
		 5 as por,
		'27.0000000000000001' as rozmedzie_od,
		'28' as rozmedzie_do,
		COUNT(*) AS pocet,
		COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
		FROM CM_Krava AS k
		INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
		LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
   WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
		(DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 27.0000000000000001 AND 28) AND (k.DATNAR IS NOT NULL)

UNION

   SELECT 'do 29' AS Expr1,
		 6 as por,
		'28.0000000000000001' as rozmedzie_od,
		'29' as rozmedzie_do,
		COUNT(*) AS pocet,
		COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	FROM CM_Krava AS k
	   INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
	   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
   WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo
		AND (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 28.0000000000000001 AND 29) AND (k.DATNAR IS NOT NULL)

UNION

   SELECT 'do 30' AS Expr1,
		7 as por,
		'29.0000000000000001' as rozmedzie_od,
		'30' as rozmedzie_do, COUNT(*) AS pocet,
		COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	FROM CM_Krava AS k
		INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
	   LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
	WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
		 (DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 BETWEEN 29.0000000000000001 AND 30) AND (k.DATNAR IS NOT NULL)

UNION

   SELECT 'nad 30' AS Expr1,
		 8 as por,
		'30.0000000000000001' as rozmedzie_od,
		'1000' as rozmedzie_do,
		COUNT(*) AS pocet,
		COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	FROM CM_Krava AS k
		INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY
		LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
   WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo and
		(DATEDIFF(day, k.DATNAR, l.DATOTEL) / 30.42 > 30.0000000000000001) AND (k.DATNAR IS NOT NULL)

UNION

	SELECT 'SPOLU/PRIEMER' AS Expr1,
		 9 as por,
		'0' as rozmedzie_od,
		'1000' as rozmedzie_do,
		COUNT(*) AS pocet,
		COUNT(l.mlieko100) as pocet_pvostok_100,
		AVG(l.MLIEKO100) AS mlieko1000,
		AVG(l.BIELK100) * 100 / AVG(l.MLIEKO100) AS pBielko100,
		AVG(l.TUK100) * 100 / AVG(l.MLIEKO100) AS pTuk100,
		COUNT(l.mlieko200) as pocet_pvostok_200,
		AVG(l.MLIEKO200) AS mlieko200,
		AVG(l.BIELK200) * 100 / AVG(l.MLIEKO200) AS pBielk200,
		AVG(l.TUK200) * 100 / AVG(l.MLIEKO200) AS pTuk200,
		COUNT(u.MLIEKNOR) as pocet_pvostok_305,
		AVG(u.MLIEKNOR) AS mlieko305,
		AVG(u.TUKNOR) * 100 / AVG(u.MLIEKNOR) AS pTuk305,
		AVG(u.BIELKNOR) * 100 / AVG(u.MLIEKNOR) AS pBielk305,
		datepart(YEAR, @datumOd) as rok
	FROM CM_Krava AS k
		INNER JOIN CM_Naplak AS l ON k.CISKRAVY = l.CISKRAVY LEFT OUTER JOIN cp_kravy_305Udaje AS u ON k.CISKRAVY = u.CISKRAVY
   WHERE (k.DOVVYR IS NULL) AND (k.PORPREBLAK = 1) AND (k.POCVSETLAK <= 1) AND (k.PRIZNAKKU = '1')
			AND (k.PRIZNAKKU = '1')
			and k.DATNAR<@datumDo and l.DATOTEL<=@datumDo

End
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 28.07.2015 15:37
-- Update:		28.07.2015 
--				17.08.2015 - Rozbory zmenene na kontroly + opravy
--				28.08.2015 - mocovina osetrena, ak kontroly su neexistuju
--				28.09.2015 - mocovina nezavisla na kontrolach (okrem priemeru :/ )
--				02.11.2015 - CM_Kontroly nahradene View_CM_Kontroly (spaja kontroly + archiv kontrol)
--				01.07.2016 - upravy vypoctov zloziek odberu - ak nebol robeny rozbor na zlozky - tie kontroly sa nezoberu do priemeru
--				08.09.2017 - komplet prerabka na zaklade uz spracovanych udajov z tabulky CR_KURHD_MesUzavCH_1
--				11.10.2017 - oprava podmienok, kde boli prehodene LaktDni a PorPrebLakt..  :(
-- Description:	Vypocet Rozborov pre grafy podla vazeneho priemeru (resp. uz aritmetickeho)
-- =============================================
CREATE PROCEDURE [dbo].[C_Rozbory_Vypocet]
	@CHOV [varchar](9),
	@DATKONTR [date]
AS
BEGIN

--	SELECT k.CISKRAVY, DATKONTR, MLIEKO, r.MLIEKPR as MLIEKOPR, PERCTUKU, PERCBIELK, BUNECELEM, DENDOBA, INTERVAL, 
----MESSP, DEKSP, 
--PERCLAKTOZ, 	
--		DATROZB,
--		Mocov,
--            PorPreblak= CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END, LaktDni, 
--            PorPreblakRep = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END --LaktDni
		/*
		SELECT k.CISKRAVY, 
			ISNULL(DATKONTR, DATROZB) as DATKONTR, 
			ISNULL(MLIEKO, KG_MLEKA) as MLIEKO, 
			r.MLIEKPR as MLIEKOPR, 
			ISNULL(PERCTUKU, TUK) as PERCTUKU, 
			ISNULL(PERCBIELK, BIL) as PERCBIELK, 
			ISNULL(BUNECELEM, SOM_BUN) as BUNECELEM, 
			DENDOBA, 
			INTERVAL, 
			PERCLAKTOZ, 	
			DATROZB,
			Mocov,
			PorPreblak = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END, 
			ISNULL(LaktDni, m.Laktace) as LaktDni,
			PorPreblakRep = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END --LaktDni


			into #tab
			FROM plis.dbo.CM_Krava k 
            LEFT OUTER JOIN CM_Kontroly r ON (r.CISKRAVY = k.CISKRAVY and k.CHOVATEL = r.CISCHOVU and DATKONTR = @DATKONTR)
			LEFT OUTER join plis.dbo.CM_Mocovina m ON (k.CISKRAVY = m.CIS_KRAVY and k.CHOVATEL = m.CHOV and DATROZB = @DATKONTR)
            WHERE (k.CHOVATEL = @chov) 			
			--and ((k.CISKRAVY = @CISKRAVY) 
            --WHERE (r.CISCHOVU = @chov) 
					AND (DATKONTR = @DATKONTR OR DATROZB = @DATKONTR)
					and len(k.CISKRAVY) = 14 and len(k.CISKRAVY) = 14
					*/
		--28.09.2015 - zmena

	--	select * 
	--	into #tab_uscislo
	--	from (
	--		select ciskravy from View_CM_Kontroly WHERE CISCHOVU = @chov
	--					AND DATKONTR = @DATKONTR
	--					and (len(CISKRAVY) = 14 and len(CISKRAVY) = 14 ) 
	--		union 
	--		select cis_kravy as ciskravy from CM_Mocovina where 
	--					chov = @chov 
	--					AND DATROZB = @DATKONTR 
	--					AND len(CIS_KRAVY) = 14 and len(CIS_KRAVY) = 14 
	--	) t
	--	group by ciskravy

	--	SELECT t.CISKRAVY, 
	--		ISNULL(DATKONTR, DATROZB) as DATKONTR, 
	--		ISNULL(MLIEKO, KG_MLEKA) as MLIEKO, 
	--		r.MLIEKPR as MLIEKOPR, 
	--		ISNULL(PERCTUKU, TUK) as PERCTUKU, 
	--		ISNULL(PERCBIELK, BIL) as PERCBIELK, 
	--		ISNULL(BUNECELEM, SOM_BUN) as BUNECELEM, 
	--		DENDOBA, 
	--		INTERVAL, 
	--		PERCLAKTOZ, 	
	--		DATROZB,
	--		Mocov,
	--		PorPreblak = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END, 
	--		ISNULL(LaktDni, m.Laktace) as LaktDni,
	--		PorPreblakRep = CASE WHEN r.PorPreblak IN ('10', '20') THEN CONVERT(INT, r.PorPreblak)  ELSE REPLACE(Convert(INT, r.PorPreblak), '0', '') END --LaktDni


	--	into #tab
	--	FROM #tab_uscislo t 
	--		LEFT OUTER JOIN View_CM_Kontroly r ON (r.CISKRAVY = t.CISKRAVY AND DATKONTR = @DATKONTR and CISCHOVU = @chov)
	--		LEFT OUTER JOIN CM_Mocovina m ON (t.CISKRAVY = m.CIS_KRAVY AND  DATROZB = @DATKONTR and CHOV = @chov)


	----select * from #tab

	----drop table #rozbory_grafy

	----select Mlieko, Bielkoviny, Tuky, Laktoza, Mocovina, MliekoLakt from (

	----select 
	----	ROUND(AVG(MLIEKOPR), 1) as mlieko,
	----	ROUND(AVG(PERCBIELK), 2) as bielkovina,  
	----	ROUND(AVG(PERCTUKU), 2) as tuk,
	----	ROUND(AVG(PERCLAKTOZ), 2) as laktoza,
	----	ROUND(AVG(Mocov), 1) as mocovina,
	----	ROUND(AVG(BUNECELEM), 0) as somaticke,
	----	CAST('1.00' as float) as mliekolakt,
	----	CAST(_interval as varchar(10)) as poradie
	----	into #rozbory_grafy
	--select 
	--	ROUND(AVG(MLIEKOPR), 1) as mlieko,
	--	--ROUND(SUM(PERCBIELK * MLIEKOPR) / SUM(MLIEKOPR), 2) as tuk,  -- 2016-07-01
	--	ROUND(SUM(PERCBIELK * MLIEKOPR) / SUM(case when PERCBIELK is null then null else MLIEKOPR end), 2) as bielkovina,  
	--	--ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(MLIEKOPR), 2) as tuk,  -- 2016-07-01
	--	ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(case when PERCTUKU is null then null else MLIEKOPR end), 2) as tuk,
	--	--ROUND(SUM(PERCLAKTOZ * MLIEKOPR) / SUM(MLIEKOPR), 2) as laktoza, -- 2016-07-01
	--	ROUND(SUM(PERCLAKTOZ * MLIEKOPR) / SUM(case when PERCLAKTOZ is null then null else MLIEKOPR end), 2) as laktoza,
	--	--ROUND(SUM(Mocov * MLIEKOPR) / SUM(MLIEKOPR), 1) as mocovina, -- 2016-07-01
	--	ROUND(SUM(Mocov * MLIEKOPR) / SUM(case when Mocov is null then null else MLIEKOPR end), 1) as mocovina,
	--	--ROUND(SUM(BUNECELEM * MLIEKOPR) / SUM(MLIEKOPR), 0) as somaticke,
	--	--CAST('1.00' as float) as somaticke,
	--	CAST(NULL as float) as somaticke,
	--	--CAST('1.00' as float) as mliekolakt,
	--	CAST(NULL as float) as mliekolakt,
	--	CAST(_interval as varchar(10)) as poradie
	--	into #rozbory_grafy
	--from (
	--	select 
	--		case when LaktDni <= 100 then '0' else 	
	--			case when LaktDni > 200 then '2' else '1' end end as _interval, *
	--		from #tab
	--	)  t
	--group by _interval


	--if ((select count (*) from #tab where BUNECELEM is not null and MLIEKOPR is not null) > 0)
	--begin
	--insert into #rozbory_grafy (somaticke, poradie) values (CAST(NULL as float), 3)

	--update #rozbory_grafy
	--	set somaticke = _somaticke
	--from (
	--	--select  ROUND(SUM(BUNECELEM * MLIEKOPR) / SUM(MLIEKOPR), 1) as _somaticke,  _interval   -- 2016-07-01
	--	select  ROUND(SUM(BUNECELEM * MLIEKOPR) / SUM(case when BUNECELEM is null then null else MLIEKOPR end), 1) as _somaticke,  _interval
	--	from (
	--	select 
	--		case when LaktDni <= 100 then '0' else 	
	--			case when LaktDni between 101 and 200 then '1' else 
	--			case when LaktDni between 201 and 305 then '2' else '3' end end end as _interval, *
	--		from #tab
	--	)  t
	--	group by _interval
	--) as s
	--where poradie = _interval
	--end;

		
	--update #rozbory_grafy
	--	set MliekoLakt = _MliekoLakt
	--from (
	--	select  ROUND(AVG(MLIEKOPR), 1) as _MliekoLakt,  _interval
	--	from (
	--	select case when PorPreblak = 1 then '0' else 	
	--			case when PorPreblak >= 3 then '2' else '1' end end as _interval, *
	--		from #tab
	--	)  as t
	--	group by _interval
	--) as s
	--where poradie = _interval

	----select * from #rozbory_grafy

	--declare @lakt int;
	--set @lakt = (select count(*) from #rozbory_grafy where MliekoLakt is not null)

	--insert into  #rozbory_grafy
	----select
	----	ROUND(AVG(MLIEKOPR), 1) as mlieko,
	----	ROUND(AVG(PERCBIELK), 2) as bielkovina,  
	----	ROUND(AVG(PERCTUKU), 2) as tuk,
	----	ROUND(AVG(PERCLAKTOZ), 2) as laktoza,
	----	ROUND(AVG(Mocov), 1) as mocovina,
	----	ROUND(AVG(BUNECELEM), 0) as somaticke,
	----	ROUND(AVG(MLIEKOPR), 1) as mliekolakt,		
	----	'celkom' as poradie
	----FROM #tab

	--select

	--	ROUND(AVG(MLIEKOPR), 1) as mlieko,
		
	--	-- 2016-07-01
	--	--ROUND(SUM(PERCBIELK * MLIEKOPR) / SUM(MLIEKOPR), 2) as bielkovina,  
	--	--ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(MLIEKOPR), 2) as tuk,
	--	--ROUND(SUM(PERCLAKTOZ * MLIEKOPR) / SUM(MLIEKOPR), 2) as laktoza,
	--	--ROUND(SUM(Mocov * MLIEKOPR) / SUM(MLIEKOPR), 1) as mocovina,
	--	--ROUND(SUM(BUNECELEM * MLIEKOPR) / SUM(MLIEKOPR), 0) as somaticke,

	--	ROUND(SUM(PERCBIELK * MLIEKOPR) / SUM(case when PERCBIELK is null then null else MLIEKOPR end), 2) as bielkovina,  
	--	ROUND(SUM(PERCTUKU * MLIEKOPR) / SUM(case when PERCTUKU is null then null else MLIEKOPR end), 2) as tuk,
	--	ROUND(SUM(PERCLAKTOZ * MLIEKOPR) / SUM(case when PERCLAKTOZ is null then null else MLIEKOPR end), 2) as laktoza,
	--	ROUND(SUM(Mocov * MLIEKOPR) / SUM(case when Mocov is null then null else MLIEKOPR end), 1) as mocovina,
	--	ROUND(SUM(BUNECELEM * MLIEKOPR) / SUM(case when BUNECELEM is null then null else MLIEKOPR end), 0) as somaticke,
	--	case when @lakt > 0 then 
	--	ROUND(AVG(MLIEKOPR), 1) else NULL end as mliekolakt,
	--	'celkom' as poradie
	--FROM #tab


 --  select * from #rozbory_grafy order by poradie

	declare	@rok int = year(@datkontr)
	declare	@mesiac int = month(@datkontr)

	SELECT distinct m.CISKRAVY, 
		ISNULL(r.DATKONTR, DATROZB) as DATKONTR, 
		case mesiac when 1 then ML1
						when 2 then ML2
						when 3 then ML3 
						when 4 then ML4
						when 5 then ML5 
						when 6 then ML6
						when 7 then ML7 
						when 8 then ML8
						when 9 then ML9 
						when 10 then ML10
						when 11 then ML11 
						when 12 then ML12 end as MLIEKOPR,
		ISNULL(m.PTUKU1, TUK) as PERCTUKU, 
		m.PBIELK1 as PERCBIELK,
		m.SB1 as BUNECELEM,
		r.DENDOBA, 
		m.INTERVAL, 
		r.PERCLAKTOZ, 	
		c.DATROZB,
		c.MOCOV as Mocov,
		m.PorPreblak as PorPreblak,
		m.LaktDni,
		null as PorPreblakRep
		--m.kontrola,
		--r.DATKONTR as dat,
		--m.mesiac,
		--m.rok
	into #tab
	from dbo.CR_KURHD_MesUzavCH_1 m	 
	LEFT OUTER JOIN View_CM_Kontroly r ON (r.CISKRAVY = m.CISKRAVY AND DATKONTR = @DATKONTR and CISCHOVU = @chov)
	LEFT OUTER JOIN CM_Mocovina c ON (m.CISKRAVY = c.CIS_KRAVY AND  c.DATROZB = @DATKONTR and c.CHOV = @chov)

	where m.chov = @chov
	and mesiac = @mesiac
	and rok = @rok
	and dovvyr is null	
	--and kontrola is not null
	--and year(kontrola) = @rok
	--and month(kontrola) = @mesiac
	and (kontrola is null or (kontrola is not null
		and year(kontrola) = @rok
		and month(kontrola) = @mesiac
		)
	)

--	select * from #tab

	select 
		CAST(AVG(MLIEKOPR) as decimal(5,2)) as mlieko,
		cast(AVG(PERCBIELK) as decimal(5,2) ) as bielkovina,
		CAST(avg(PERCTUKU*1.0) as decimal(5,2)) as tuk,
		cast(AVG(PERCLAKTOZ) as decimal(5,2) ) as laktoza,
		ROUND(SUM(Mocov * MLIEKOPR) / SUM(case when Mocov is null then null else MLIEKOPR end), 1) as mocovina,
		CAST(NULL as decimal(5,0)) as somaticke,
		CAST(NULL as decimal(5,1)) as mliekolakt,
		CAST(_interval as varchar(10)) as poradie,
		cast(count(*) as int) as pocet
	into #rozbory_grafy
	from (
			--select case when PorPreblak = 1 then '0' else 	
			--		case when PorPreblak >= 3 then '2' else 
			--			case when PorPreblak = 2 then '1' else 'X' end end end as _interval, *
			--	from #tab
			select 
			case when LaktDni <= 100 or LaktDni is null then '0' else 	
				case when LaktDni > 200 then '2' else 
					case when Laktdni between 100 and 200 then '1' else '5' end end end as _interval, *
			from #tab
			)  as t
	group by _interval

	--select * from #rozbory_grafy


	if ((select count (*) from #tab where BUNECELEM is not null and MLIEKOPR is not null) > 0)
	begin
	insert into #rozbory_grafy (somaticke, poradie) values (CAST(NULL as float), 3)

	update #rozbory_grafy
		set somaticke = _somaticke
	from (
		select  ROUND(AVG(BUNECELEM*1.0), 1) as _somaticke,  _interval
		from (
		--select case when PorPreblak = 1 then '0' else 	
		--		case when PorPreblak >= 3 then '2' else 
		--			case when PorPreblak = 2 then '1' else 'X' end end end as _interval, *
		--	from #tab
		select
			case when LaktDni <= 100  or LaktDni is null then '0' else 	
			case when LaktDni between 101 and 200 then '1' else 
			case when LaktDni between 201 and 305 then '2' else '3' end end end as _interval, *
		from #tab
		--select 
		--	case when LaktDni <= 100 or LaktDni is null then '0' else 	
		--		case when LaktDni > 200 then '2' else 
		--			case when Laktdni between 100 and 200 then '1' else '5' end end end as _interval, *
		--	from #tab
		)  as t
		group by _interval
	) as s
	where poradie = _interval
	end;

		
	update #rozbory_grafy
		set MliekoLakt = _MliekoLakt
	from (
		select  (AVG(MLIEKOPR*1.0)) as _MliekoLakt,  _interval
		from (
		select case when PorPreblak = 1 then '0' else 	
				case when PorPreblak >= 3 then '2' else 
					case when PorPreblak = 2 then '1' else 'X' end end end as _interval, *
			from #tab
		)  as t
		group by _interval
	) as s
	where poradie = _interval


	update #rozbory_grafy
		set mlieko = _Mlieko
	from (
		select  ROUND(AVG(MLIEKOPR*1.0), 1) as _Mlieko,  _interval
	from (
		select 
			case when LaktDni <= 100 or LaktDni is null then '0' else 	
				case when LaktDni > 200 then '2' else 
					case when Laktdni between 100 and 200 then '1' else '5' end end end as _interval, *
			from #tab
		)  t
		group by _interval
	) as s
	where poradie = _interval

	--select * from #rozbory_grafy

	declare @lakt int;
	set @lakt = (select count(*) from #rozbory_grafy where MliekoLakt is not null)

	insert into  #rozbory_grafy
	select
		ROUND(AVG(MLIEKOPR), 1) as mlieko,		
		cast(AVG(PERCBIELK) as decimal(5,2) ) as bielkovina, 		
		CAST(avg(PERCTUKU) as decimal(5,2)) as tuk,
		cast(AVG(PERCLAKTOZ) as decimal(5,2) ) as laktoza,
		ROUND(SUM(Mocov * MLIEKOPR) / SUM(case when Mocov is null then null else MLIEKOPR end), 1) as mocovina,
		CAST(AVG(BUNECELEM*1.0) as decimal(5,0))  as somaticke,
		case when @lakt > 0 then 
		ROUND(AVG(MLIEKOPR), 1) else NULL end as mliekolakt,
		'celkom' as poradie,
		cast(count(*) as int) as pocet
	FROM #tab


   select * from #rozbory_grafy order by poradie

END



--		select * from [C_Rozbory_Vypocet] '501505011','2017-06-02'

--		exec [C_Rozbory_Vypocet] '710527011','2017-09-26'

--		exec [C_Rozbory_Vypocet] '701529011','2016-05-23'
go

/***masova rocenka - reprodukcne ukazovatele - podla plemennych typov
Masova rocenka 2017 - od str.6 ....vypocitane na zaklade tab Roc_MPHD_6 zo str.33 **/
 CREATE procedure [dbo].[Roc_MPHD_6_plemTYP]
	@datumOd date ,
	@datumDo date 

as 
begin
--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30'

delete from Roc_MPHD_Tab_6_plemTYP where rok = DATEPART (year,@datumOd)

declare @zaklad table
	(
	ciskravy varchar(14),
	porpreblak varchar(2),
	datnar date, 
	datvyr date, 
	medziobd int, 
	cistelata varchar(14),
	porlak_tela varchar(2),
	datnar_tela date,
	--medz int, 
	vek1OT int,
	vek1OTzTel int,
	plemtyp int
	)

	insert into @zaklad
		(ciskravy, porpreblak, datnar, datvyr, medziobd, cistelata, porlak_tela, datnar_tela, /*medz,*/ vek1OT, vek1OTzTel, plemtyp  )
	SELECT k.CISKRAVY, k.PORPREBLAK, k.DATNAR,k.datvyr,
			case when k.PORPREBLAK = 1 then null else  m.medziobd end as medziobd,/* m.porpreblak,*/t.CISTELATA, t.PORLAK, t.DATNAR, 
			--case when k.PORPREBLAK = 1 then (select DATEDIFF(DAY,k.DATNAR,t.DATNAR))
			--		else null end as medz,
			DATEDIFF(day, k.DATNAR, tp.Datotel) AS vek1OT,
			case when t.PORLAK = '1' then (DATEDIFF(day, k.DATNAR, t.DATNAR)) else null end AS vek1OTzTel,
			k.TYPPLEM as plemtyp
		FROM CM_Krava AS k 
		LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS tp ON k.CISKRAVY = tp.Ciskrava AND tp.PorLakt = '01' and tp.Medziobd is null
		LEFT OUTER JOIN CP_MedziObdMesove AS m ON k.CISKRAVY = m.kravcislo and m.PORPREBLAK = k.porpreblak 
		left outer join CM_Telata as t on t.MATKA = k.CISKRAVY and t.PORLAK = m.porpreblak and t.PORLAK = k.PORPREBLAK
		WHERE (k.DOVVYR IS NULL or (k.DATVYR>= @datumOd and k.DATVYR <= @datumDo)) 
			and (k.PRIZNAKKU = '2')
			and k.TYPPLEM in (--'101','102','103','104','105',	---- BBM
						'111','112','113','114','115',		---- AA
						'121','122','123','124','125',		---- BdA
						'131',								---- Gal
						'141','142','143','144','145',		---- Hem
						'151',								---- High
						'161','162','163','164','165',		---- Char
						'171','172','173','174','175',		---- Lim
						--'181',							---- SDM
						'201','202','203','204','205',		---- Sim_maso
						--'191','192','193','194','195',	---- Piem
						'51','53','54',						---- Pin
						'11','13','14')						---- Slst
			and m.medziobd > 100 and m.medziobd <= 1200
		  ORDER BY m.porpreblak

--select * from @zaklad order by plemtyp--porlak_tela, /*vek1OT desc,*/ plemeno


declare @otel_1 table
(
plemeno varchar(10),
dni_1otel int
)

declare @otel_1_tel table
(
plemeno varchar(10),
dni_1otel_tel int
)

declare @otel_2 table
(
plemeno varchar(10),
medz_2otel int
)

declare @otel_3 table
(
plemeno varchar(10),
medz_3otel int
)

declare @otel_4 table
(
plemeno varchar(10),
medz_4otel int
)

declare @otel_5 table
(
plemeno varchar(10),
medz_5otel int
)

declare @otel_celkom table
(
plemeno varchar(10),
medz_celk_otel int
)

insert into @otel_1(plemeno, dni_1otel)
	select plemtyp, avg(vek1OT) as dni_1otel
			from @zaklad
			where  vek1OT < 2200
			group by plemtyp

insert into @otel_1_tel  (plemeno, dni_1otel_tel)
	select plemtyp, avg(vek1OTzTel) as dni_1otel_tel
			from @zaklad
			where  vek1OTzTel < 2200
			group by plemtyp

	insert into @otel_2 (plemeno, medz_2otel)
		select plemtyp, avg(medziobd) as medz_2otel
			from @zaklad
			where porpreblak = '2'
			group by plemtyp

	insert into @otel_3 (plemeno, medz_3otel)
		select plemtyp, avg(medziobd) as medz_3otel
			from @zaklad
			where porpreblak = '3'
			group by plemtyp

	insert into @otel_4 (plemeno, medz_4otel)
		select plemtyp, avg(medziobd) as medz_4otel
			from @zaklad
			where porpreblak = '4'
			group by plemtyp

	insert into @otel_5 
	(plemeno, medz_5otel)
		select plemtyp, avg(medziobd) as medz_5otel
			from @zaklad
			where porpreblak = '5'
			group by plemtyp

	insert into @otel_celkom 
	(plemeno, medz_celk_otel)
		select  plemtyp, avg(medziobd) as medz_celk_otel
			from @zaklad
			where porpreblak in ('2','3','4','5')
			group by plemtyp

declare @vek_1_otel table
	(
	plemeno varchar(10),
	vek_1OT varchar(8)
	)
	insert into @vek_1_otel
		(plemeno, vek_1OT)
		select plemeno, dbo.toMesiacDen(AVG(dni_1otel)) AS vek_1OT
		 from @otel_1
		 group by plemeno
		 
 --create table Roc_MPHD_Tab_6_plemTYP
	--(
	--plemtyp int,
	--plemeno varchar(10),
	--vek_1OT varchar(8),
	--medz_2otel int,
	--medz_3otel int,
	--medz_4otel int,
	--medz_5otel int,
	--medz_celk_otel int,
	--rok int
	--)

	insert into Roc_MPHD_Tab_6_plemTYP
		(plemtyp,plemeno, vek_1OT, medz_2otel, medz_3otel, medz_4otel, medz_5otel, medz_celk_otel, rok)
	select distinct z.plemtyp,
		case --when z.plemtyp in ('101','102','103','104','105') then 'BBM' 
			when z.plemtyp in ('111','112','113','114','115') then 'AA'
			when z.plemtyp in ('121','122','123','124','125') then 'BdA'
			when z.plemtyp = '131' then 'Gal'
			when z.plemtyp in ('141','142','143','144','145') then 'HEM'
			when z.plemtyp = '151' then 'High'
			when z.plemtyp in ('161','162','163','164','165') then 'Char'
			when z.plemtyp in ('171','172','173','174','175') then 'Lim'
			--when z.plemtyp = '181' then 'SDM'
			when z.plemtyp in ('201','202','203','204','205') then 'Sim_maso'
			--when z.plemtyp in ('191','192','193','194','195') then 'Piem'
			when z.plemtyp in ('51','53','54') then 'Pin'
			when z.plemtyp in ('11','13','14') then 'Slst'
		end as plemeno,
		vek_1OT,	medz_2otel, medz_3otel, medz_4otel, medz_5otel, 
		--(case when medz_2otel is null and medz_3otel is null and medz_4otel is null and medz_5otel is null then null else  medz_celk_otel end) as 
		medz_celk_otel, DATEPART(YEAR, @datumOd) as rok
	from  @zaklad as z
	left outer join @otel_2 as o2 on o2.plemeno = z.plemtyp
	left outer join @vek_1_otel as o1 on o1.plemeno = z.plemtyp
	left outer join @otel_3 as o3 on o3.plemeno = z.plemtyp
	left outer join @otel_4 as o4 on o4.plemeno = z.plemtyp
	left outer join @otel_5 as o5 on o5.plemeno = z.plemtyp
	left outer join @otel_celkom as oc on oc.plemeno = z.plemtyp
			
End
go

CREATE procedure [dbo].[Rocenka_OV_Tab_Prir]
    @Zameranie varchar(2),
	@TypChovu varchar(2),
	@Plem_typ varchar(6), 
	@rok varchar(4)
	
	
as
begin

	
	--select z.* ,p.NAZOVD
	--from plis.dbo.SP_Rocenka_PrirStr as z
	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
	--	where   z.rok = @rok and 
	--z. TypPlem = @Plem_typ and z.Zameranie = @Zameranie and z.TypChovu= @TypChovu 

	-- 19.01.2018 oprava, zmena tabulky plemena
	select z.* ,p.Nazov as NAZOVD
	from dbo.SP_Rocenka_PrirStr as z
	left outer join plis.dbo.SC_Plemena_N as p on p.KodPl = z.Plemeno
		where   z.rok = @rok and 
	z.TypPlem = @Plem_typ and z.Zameranie = @Zameranie and z.TypChovu= @TypChovu 
end

--	  exec [Rocenka_OV_Tab_Prir] 'ML', '2', 'C', 2017

--	  exec [Rocenka_OV_Tab_Prir] 'MP', '1', 'C', 2017
go

CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_UzavreteLaktSkladba_Kravy_CHOV] 
	@ParChov varchar(9)
AS
BEGIN
	
	SET NOCOUNT ON;
	/*************************************
		! first staf of creating table for displaing values of (6) Uz�vierka K�HD posledn�ch uzavret�ch lakt�ci�  !
		
		using table:CM_Krava,CM_Laktacie,

		changing table: CP_KravaPoslednaUzavLakt

		used for: next step of (6) Uz�vierka K�HD posledn�ch uzavret�ch lakt�ci� 

	******************************************/
	--TRUNCATE TABLE [PLIS].[dbo].CP_KravaPoslednaUzavLakt
	delete [PLIS].[dbo].CP_KravaPoslednaUzavLakt where (chovatel = @ParChov) or (cislokrava in (select CISKRAVY from PLIS.dbo.CM_Krava where CHOVATEL = @ParChov))

	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from plis.dbo.CM_Krava
	where dovvyr is null
	and priznakku='1' and chovatel = @ParChov

	open chova
	fetch next from chova into @chov

	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from plis.dbo.cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							--print @ciskrava

							set @maxLakt=(select max(PORLAK) from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into [PLIS].[dbo].CP_KravaPoslednaUzavLakt (cislokrava,chovatel,poslLakt,medziobd,vekOtel,lakdni,lakdniN,mlieko,mliekoN,tuk,tukN,bielk, bielkN,BaT,BaTN,zmena,Kod_Doj,Kod_Medz) 
								values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt),Null,Null)
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				--print N'Done'
			end
			close chova;
			deallocate chova;
	
END
go

-- =============================================
-- Author:		David Florek
-- Create date: 05.2017
-- Description:	24.05.2017 - Pridane osipane
--				20.06.2017 - Pridane mazanie dat s dnesneho datumu pred spustenim naplnania
-- =============================================

CREATE PROCEDURE [dbo].[NE_DAJSTATISTIKY]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	DELETE FROM NE_STATISTIKY
	WHERE DATUM = CAST(GETDATE() AS DATE);

	-- INSERT HD_KRAVA A HD_TELA
	INSERT INTO NE_STATISTIKY
	(CHOV, DATUM, HD_KRAVA, HD_TELA)
	(SELECT chov, GETDATE() as datum, pocetKrav, pocetTeliat
	FROM CP_ZoznamChovov
	WHERE typKU <> 'TMHD'
	AND CHOV NOT IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE)));

	PRINT 'Insertnutych riadkov s HD_KRAVA a HD_TELA: ' + cast (@@ROWCOUNT as varchar(10));

	-- INSERT TMHD
	INSERT INTO NE_STATISTIKY
	(CHOV, DATUM, TMHD)
	(SELECT chov, GETDATE() as datum, pocetTeliat
	FROM CP_ZoznamChovov
	WHERE typKU = 'TMHD'
	AND CHOV NOT IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE)));

	PRINT 'Insertnutych riadkov s TMHD: ' + cast (@@ROWCOUNT as varchar(10));

	-- INSERT OVCE
	INSERT INTO NE_STATISTIKY
	(CHOV, DATUM, OV_BAHNICA, OV_BARAN, OV_POTOMOK)
	(SELECT chov, GETDATE() as datum, pocetBahnic, pocetBaranov, pocetPotomkov
	FROM SP_ZoznamChovov
	WHERE CHOV NOT IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE)));

	PRINT 'Insertnutych riadkov z oviec: ' + cast (@@ROWCOUNT as varchar(10));

	-- INSERT KOZY
	INSERT INTO NE_STATISTIKY
	(CHOV, DATUM, KY_KOZA, KY_CAP, KY_POTOMOK)
	(SELECT chov, GETDATE() as datum, PocetKozy, PocetCapov, pocetPotomkov
	FROM GP_ZoznamChovov
	WHERE CHOV NOT IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE)));

	PRINT 'Insertnutych riadkov z koz: ' + cast (@@ROWCOUNT as varchar(10));

	-- INSERT OSIPANE
	INSERT INTO NE_STATISTIKY
	(CHOV, DATUM, OS_PRASNICA, OS_KANEC, OS_POTOMOK)
	(SELECT chov, GETDATE() as datum, PocetPrasnic, PocetKancov, pocetPotomkov
	FROM PP_ZoznamChovov
	WHERE CHOV NOT IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE)));

	PRINT 'Insertnutych riadkov z osipanych: ' + cast (@@ROWCOUNT as varchar(10));

	-- UPDATE TMHD
	UPDATE NE_STATISTIKY 
	SET TMHD = pocetTeliat
	FROM CP_ZoznamChovov
	WHERE typKU = 'TMHD'
	AND CP_ZoznamChovov.CHOV IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE) AND TMHD IS NULL)
	AND CP_ZoznamChovov.CHOV = NE_STATISTIKY.CHOV;

	PRINT 'Updatnutych TMHD: ' + cast (@@ROWCOUNT as varchar(10));

	-- UPDATE OVCE
	UPDATE NE_STATISTIKY 
	SET OV_BAHNICA = pocetBahnic,
	OV_BARAN = pocetBaranov,
	OV_POTOMOK = pocetPotomkov
	FROM SP_ZoznamChovov
	WHERE SP_ZoznamChovov.CHOV IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE) AND OV_BAHNICA IS NULL)
	AND SP_ZoznamChovov.CHOV = NE_STATISTIKY.CHOV;

	PRINT 'Updatnutych oviec: ' + cast (@@ROWCOUNT as varchar(10));

	-- UPDATE KOZY
	UPDATE NE_STATISTIKY 
	SET KY_KOZA = PocetKozy,
	KY_CAP = PocetCapov,
	KY_POTOMOK = pocetPotomkov
	FROM GP_ZoznamChovov
	WHERE GP_ZoznamChovov.CHOV IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE) AND KY_KOZA IS NULL)
	AND GP_ZoznamChovov.CHOV = NE_STATISTIKY.CHOV;

	PRINT 'Updatnutych koz: ' + cast (@@ROWCOUNT as varchar(10));

	-- UPDATE OSIPANE
	UPDATE NE_STATISTIKY 
	SET OS_PRASNICA = PocetPrasnic,
	OS_KANEC = PocetKancov,
	OS_POTOMOK = pocetPotomkov
	FROM PP_ZoznamChovov
	WHERE PP_ZoznamChovov.CHOV IN (SELECT CHOV FROM NE_STATISTIKY WHERE DATUM = cast (GETDATE() as DATE) AND OS_PRASNICA IS NULL)
	AND PP_ZoznamChovov.CHOV = NE_STATISTIKY.CHOV;

	PRINT 'Updatnutych osipanych: ' + cast (@@ROWCOUNT as varchar(10));

END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.1.2016
-- Description:	Vrati zoznamu teliat za mesiac (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[CM_Mocovina_vyber]
    @chov varchar(9),
	@datumOd date,
	@datumDo date
as	
begin

--declare @c varchar(9) = '102501011'

--declare @a date = '2014.05.01'
--declare @b date = '2016.07.30'

--drop table #CM_Mocovina

CREATE TABLE #CM_Mocovina(
	[CIS_KRAVY] [nvarchar](14) NULL,
	[CHOV] [varchar](10) NULL,
	[DATROZB] [date] NULL,
	[LAKTACE] [float] NULL,
	[KG_MLEKA] [float] NULL,
	[TUK] [float] NULL,
	[MOCOV] [float] NULL,
	[BIL] [float] NULL,
	[SOM_BUN] [float] NULL,
	[LAKTACERep] [float] NULL
) ON [PRIMARY]



insert #CM_Mocovina
 SELECT *
FROM CM_Mocovina 
WHERE --(CONVERT (int, CHOV) LIKE @chov + '%') AND  -- convert niekedy hadze chybu -- 20170314
	(CHOV LIKE @chov + '%') AND 
	(CM_Mocovina.DATROZB BETWEEN @datumOd AND @datumDo)
    and len(CIS_KRAVY) = 14
	AND CIS_KRAVY NOT BETWEEN 'SK000000000001' AND 'SK000000000099'
	
				                    


select * from (
	                    SELECT '1' as por, 'do 100 dní' AS Column1, COUNT(*) AS pocet, AVG(KG_MLEKA) AS mlieko, AVG(MOCOV) AS mocovina, AVG(BIL) AS bielk, AVG(SOM_BUN) AS somBunk, 
			                    CONVERT (float, COUNT(*) * 100 * 1.00) / NULLIF ((SELECT COUNT(*) AS pocet
				                    FROM #CM_Mocovina 
				                    ), 0) AS percenta 
			                    FROM #CM_Mocovina AS CM_Mocovina_7 
			                    WHERE (LAKTACE IS NULL OR LAKTACE <= 100) 
				                    
	                    UNION SELECT '2' as por, '101-200 dní' AS Column1, COUNT(*) AS pocet, AVG(KG_MLEKA) AS mlieko, AVG(MOCOV) AS mocovina, 
			                    AVG(BIL) AS bielk, AVG(SOM_BUN) AS somBunk, CONVERT (float, COUNT(*) * 100 * 1.00) / NULLIF (
				                    (SELECT COUNT(*) AS pocet 
					                    FROM #CM_Mocovina AS CM_Mocovina_6 
					                   ), 0) AS percenta 
			                    FROM #CM_Mocovina AS CM_Mocovina_5 
			                    WHERE (LAKTACE BETWEEN 101 AND 200)

	                    UNION SELECT '3' as por, '201 a viac dní' AS Column1, COUNT(*) AS pocet, AVG(KG_MLEKA) AS mlieko, AVG(MOCOV) AS mocovina, 
			                    AVG(BIL) AS bielk, AVG(SOM_BUN) AS somBunk, CONVERT (float, COUNT(*) * 100 * 1.00) / NULLIF ((SELECT COUNT(*) AS pocet 
				                    FROM #CM_Mocovina AS CM_Mocovina_4 
				                    ), 0) AS percenta 
			                    FROM #CM_Mocovina AS CM_Mocovina_3 
			                    WHERE (LAKTACE >= 201) 
			                    
	                    UNION SELECT '4' as por, 'priemer/spolu' AS Column1, COUNT(*) AS pocet, AVG(KG_MLEKA) AS mlieko, AVG(MOCOV) AS mocovina, 
			                    AVG(BIL) AS bielk, AVG(SOM_BUN) AS somBunk, COUNT(*) * 100 / NULLIF ((SELECT COUNT(*) AS pocet 
				                    FROM #CM_Mocovina AS CM_Mocovina_2 
				                    ), 0) AS percenta 
			                    FROM #CM_Mocovina AS CM_Mocovina_1 
			                    
                    ) as t
                    order by por

end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[Zostava_6B_masove2](@chovatel varchar(9))
AS
BEGIN

   declare @pocet_do320 float;
   declare @pocet_od321az365 float;
   declare @pocet_od366az385 float;
   declare @pocet_od386az400 float;
   declare @pocet_od401az420 float;
   declare @pocet_od421az440 float;
   declare @pocet_od441az460 float;
   declare @pocet_od461 float;
   declare @pocet_spolu float;
   
   set @pocet_do320 = 0;
   set @pocet_od321az365 = 0;
   set @pocet_od366az385 = 0;
   set @pocet_od386az400 = 0;
   set @pocet_od401az420 = 0;
   set @pocet_od421az440 = 0;
   set @pocet_od441az460 = 0;
   set @pocet_od461 = 0;
   set @pocet_spolu = 0;
   
   declare @v_ciskravy varchar(14);
   declare @v_priemerMOzaUk_aj_PrebzaKravu float;
   
  /* declare @v_celkovePriemerneMO float;
   set @v_celkovePriemerneMO = 0;*/
   
   declare krava_cursor1 cursor for 
 
   /*
    select tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from ( 
   select k.chovatel, k.ciskravy,cp.datotel, MEDZIOBD from CM_Krava k, [Cp_Meso_TelataPoLaktacii] cp     
   where k.CISKRAVY = cp.Ciskrava and  k.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '2'
   ) as tab 
   group by tab.CISKRAVY 
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 
   */
    select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.CHOVATEL, tab.ciskravy, AVG(MEDZIOBD) as priemerMOzaUk_aj_Preb from (    
   select k.chovatel, k.ciskravy,cp.datotel, MEDZIOBD from CM_Krava k  left outer join 
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV left outer join 
   [Cp_Meso_TelataPoLaktacii] cp
   on cp.Ciskrava = k.CISKRAVY
   where k.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '2' and chovmas.ZRUS is null 
   ) as tab 
   group by tab.CISKRAVY, tab.CHOVATEL 
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 

	OPEN krava_cursor1   
	FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu

		WHILE @@FETCH_STATUS = 0   
		BEGIN   
				set @v_priemerMOzaUk_aj_PrebzaKravu =  round(@v_priemerMOzaUk_aj_PrebzaKravu,0);
				/*set @v_celkovePriemerneMO = @v_celkovePriemerneMO + @v_priemerMOzaUk_aj_PrebzaKravu;*/
				if (@v_priemerMOzaUk_aj_PrebzaKravu <=320)
					begin
						set @pocet_do320 = @pocet_do320 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 321 and @v_priemerMOzaUk_aj_PrebzaKravu <= 365)
					begin
						set @pocet_od321az365 = @pocet_od321az365 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 366 and @v_priemerMOzaUk_aj_PrebzaKravu <= 385)
					begin
						set @pocet_od366az385 = @pocet_od366az385 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 386 and @v_priemerMOzaUk_aj_PrebzaKravu <= 400)
					begin
						set @pocet_od386az400 = @pocet_od386az400 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 401 and @v_priemerMOzaUk_aj_PrebzaKravu <= 420)
					begin
						set @pocet_od401az420 = @pocet_od401az420 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 421 and @v_priemerMOzaUk_aj_PrebzaKravu <= 440)
					begin
						set @pocet_od421az440 = @pocet_od421az440 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 441 and @v_priemerMOzaUk_aj_PrebzaKravu <= 460)
					begin
						set @pocet_od441az460 = @pocet_od441az460 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 461)
					begin
						set @pocet_od461 = @pocet_od461 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu is not null) /*prvostky sa neberu do uvahy*/
					begin
						set @pocet_spolu = @pocet_spolu + 1;
					end
			
				
					  
		FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu
		END
	/*if (@pocet_spolu!=0)
	begin	
	set @v_celkovePriemerneMO = round(@v_celkovePriemerneMO / @pocet_spolu,0)			
	end */
	
	declare @v_percento_do320 float;
	declare @v_percento_od321az365 float;
	declare @v_percento_od366az385 float;
	declare @v_percento_od386az400 float;
	declare @v_percento_od401az420 float;
	declare @v_percento_od421az440 float;
	declare @v_percento_od441az460 float;
	declare @v_percento_od461 float;
	declare @v_percento_spolu float;
	
	set @v_percento_do320 = 0;
	set @v_percento_od321az365 = 0;
	set @v_percento_od366az385 = 0;
	set @v_percento_od386az400 = 0;
	set @v_percento_od401az420 = 0;
	set @v_percento_od421az440 = 0;
	set @v_percento_od441az460 = 0;
	set @v_percento_od461 = 0;
	set @v_percento_spolu = 0;
	
	if (@pocet_spolu != 0)
	begin
	set @v_percento_do320 =  round(@pocet_do320 * 100 / @pocet_spolu, 1)
	set @v_percento_od321az365 = round(@pocet_od321az365 * 100 / @pocet_spolu,1)
	set @v_percento_od366az385 = round(@pocet_od366az385 * 100 / @pocet_spolu,1)
	set @v_percento_od386az400 = round(@pocet_od386az400 * 100 / @pocet_spolu,1)
	set @v_percento_od401az420 = round(@pocet_od401az420 * 100 / @pocet_spolu,1)
	set @v_percento_od421az440 = round(@pocet_od421az440 * 100 / @pocet_spolu,1)
	set @v_percento_od441az460 = round(@pocet_od441az460 * 100 / @pocet_spolu,1)
	set @v_percento_od461 = round(@pocet_od461 * 100 / @pocet_spolu,1)
	set @v_percento_spolu = round(((@pocet_do320 + @pocet_od321az365 + 
	@pocet_od366az385 + @pocet_od386az400 + @pocet_od401az420 + @pocet_od421az440
	+ @pocet_od441az460 + @pocet_od461) * 100) / @pocet_spolu,1)
	end;
	
	select 1 as poradie ,	'do 320 dní ' as dni, @pocet_do320 as pocet,  @v_percento_do320 as percento
	union 
	select 2 as poradie,	'321-365 dní ' as dni,	@pocet_od321az365 as pocet,  @v_percento_od321az365 as percento
	union 
	select 3 as poradie,	'366-385 dní ' as dni,	@pocet_od366az385 as pocet,  @v_percento_od366az385 as percento
	union 
	select 4 as poradie,	'386-400 dní ' as dni,	@pocet_od386az400 as pocet ,  @v_percento_od386az400 as percento
	union 
	select 5 as poradie,	'401-420 dní ' as dni,	@pocet_od401az420 as pocet,  @v_percento_od401az420 as percento
	union 
	select 6 as poradie,	'421-440 dní ' as dni,	@pocet_od421az440 as pocet,  @v_percento_od421az440 as percento
	union
	select 7 as poradie,	'441-460 dní ' as dni,	@pocet_od441az460 as pocet,  @v_percento_od441az460 as percento
	union
	select 8 as poradie,	'nad 461 dní ' as dni,	@pocet_od461 as pocet,  @v_percento_od461 as percento
	union
	select 9 as poradie,	'spolu ' as dni, @pocet_spolu as pocet, @v_percento_spolu as percento
	/*union 
	select 10 as poradie,	'priemerné MO ' as dni, @v_celkovePriemerneMO as pocet, null as percento*/
	order by poradie
	
	CLOSE krava_cursor1   
	DEALLOCATE krava_cursor1
END


go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <12.07.2016>
-- Description:	<Spustenie porocedur pre ovce a kozy >
-- =============================================
CREATE PROCEDURE [dbo].[S_G_aktualizacie]
AS
BEGIN
	--Naplnenie tabulky GP_Kozicky z tabuliek GM_Kozy, GM_Capy, GM_Potomok, GM_APotomok
	exec G_napln_GP_Kozicky
	--Naplnenie tabulky SP_Ovecky z tabuliek SM_Bahnica, SM_Baran, SM_Potomok, SM_APotomok
	exec S_napln_SP_Ovecky
	--Naplnenie tabulky SM_Paternita z tabuliek
	exec S_napln_SM_Paternita
	/*

	update SM_POTOMOK
	set plems = plem, plem = 'SD      00'
	--select * from SM_POTOMOK
	where jedcis in
	(	
		select jedcis from SM_POTOMOK
		where plem in ('ZVVF    04', 'ZVLC    04', 'LCC     02', 'CSD     04', 'LCC     03')
	)

	update SM_Baran
	set plems = plem, plem = 'SD      00'
	--select * from SM_POTOMOK
	where barcis in
	(	
		select barcis from SM_Baran
		where plem in ('ZVVF    04', 'ZVLC    04', 'LCC     02', 'CSD     04', 'LCC     03')
	)
	*/
END
go

/***masova rocenka - reprodukcne ukazovatele - podla plemien
Masova rocenka 2017 - str.33 **/
 CREATE procedure [dbo].[Roc_MPHD_6]
	@datumOd date ,
	@datumDo date 

as 
begin
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
delete from Roc_MPHD_Tab_6 where rok = DATEPART (year,@datumOd)

declare @zaklad table
	(
	ciskravy varchar(14),
	porpreblak varchar(2),
	datnar date, 
	datvyr date, 
	medziobd int, 
	cistelata varchar(14),
	porlak_tela varchar(2),
	datnar_tela date,
	--medz int, 
	vek1OT int,
	vek1OTzTel int,
	plemeno varchar(10)
	)

	insert into @zaklad
		(ciskravy, porpreblak, datnar, datvyr, medziobd, cistelata, porlak_tela, datnar_tela, /*medz,*/ vek1OT, vek1OTzTel, plemeno  )
	SELECT k.CISKRAVY, k.PORPREBLAK, k.DATNAR,k.datvyr,
			case when k.PORPREBLAK = 1 then null else  m.medziobd end as medziobd,/* m.porpreblak,*/t.CISTELATA, t.PORLAK, t.DATNAR, 
			--case when k.PORPREBLAK = 1 then (select DATEDIFF(DAY,k.DATNAR,t.DATNAR))
			--		else null end as medz,
			DATEDIFF(day, k.DATNAR, tp.Datotel) AS vek1OT,
			case when t.PORLAK = '1' then (DATEDIFF(day, k.DATNAR, t.DATNAR)) else null end AS vek1OTzTel,
			case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when k.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when k.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when k.TYPPLEM = '131' then 'Gal'
				when k.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when k.TYPPLEM = '151' then 'High'
				when k.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when k.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when k.TYPPLEM = '181' then 'SDM'
				when k.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when k.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when k.TYPPLEM in ('51','53','54') then 'Pin'
				when k.TYPPLEM in ('11','13','14') then 'Slst'
				when ((k.TYPPLEM is null and k.PL1 is null) 
						or (k.TYPPLEM is null and k.PL1<>'X') 
						or (k.TYPPLEM not in (--'101','102','103','104','105'
											'111','112','113','114','115',
											'121','122','123','124','125', 
											'131', 
											'151', 
											'161','162','163','164','165', 
											'171','172','173','174','175', 
											--'181',
											'201','202','203','204','205',
											--'191','192','193','194','195', 
											'51','53','54', 
											'11','13','14' ) and k.PL1<>'X')) then 'Osta'
				when k.PL1 = 'X' then 'Nez'
			end as plemeno
			
	FROM CM_Krava AS k 
		LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS tp ON k.CISKRAVY = tp.Ciskrava AND tp.PorLakt = '01' and tp.Medziobd is null
		LEFT OUTER JOIN CP_MedziObdMesove AS m ON k.CISKRAVY = m.kravcislo and m.PORPREBLAK = k.porpreblak 
		left outer join CM_Telata as t on t.MATKA = k.CISKRAVY and t.PORLAK = m.porpreblak and t.PORLAK = k.PORPREBLAK
		WHERE (k.DOVVYR IS NULL or (k.DATVYR>= @datumOd and k.DATVYR <= @datumDo)) 
			and (k.PRIZNAKKU = '2')
			--and k.PORPREBLAK is not null 
			--and (k.typplem is null or k.TYPPLEM in (--'101','102','103','104','105',	---- BBM
			--										'111','112','113','114','115',		---- AA
			--										'121','122','123','124','125',		---- BdA
			--										'131',								---- Gal
			--										'141','142','143','144','145',		---- Hem
			--										'151',								---- High
			--										'161','162','163','164','165',		---- Char
			--										'171','172','173','174','175',		---- Lim
			--										--'181',							---- SDM
			--										'201','202','203','204','205',		---- Sim_maso
			--										--'191','192','193','194','195',	---- Piem
			--										'51','53','54',						---- Pin
			--										'11','13','14'))					---- Slst'
			--										--'999'))
			and m.medziobd > 100 and m.medziobd <= 1200
		  --ORDER BY m.porpreblak
union 
	SELECT k.CISKRAVY, k.PORPREBLAK, k.DATNAR,k.datvyr,
			case when k.PORPREBLAK = 1 then null else  m.medziobd end as medziobd,/* m.porpreblak,*/t.CISTELATA, t.PORLAK, t.DATNAR, 
			DATEDIFF(day, k.DATNAR, tp.Datotel) AS vek1OT,
			case when t.PORLAK = '1' then (DATEDIFF(day, k.DATNAR, t.DATNAR)) else null end AS vek1OTzTel,
			'SR' as plemeno
	FROM CM_Krava AS k 
		LEFT OUTER JOIN Cp_Meso_TelataPoLaktacii AS tp ON k.CISKRAVY = tp.Ciskrava AND tp.PorLakt = '01' and tp.Medziobd is null
		LEFT OUTER JOIN CP_MedziObdMesove AS m ON k.CISKRAVY = m.kravcislo and m.PORPREBLAK = k.porpreblak 
		left outer join CM_Telata as t on t.MATKA = k.CISKRAVY and t.PORLAK = m.porpreblak and t.PORLAK = k.PORPREBLAK
		WHERE (k.DOVVYR IS NULL or (k.DATVYR>= @datumOd and k.DATVYR <= @datumDo)) 
			and (k.PRIZNAKKU = '2')
			--and (k.typplem is null or k.TYPPLEM in (--'101','102','103','104','105',	---- BBM
			--										'111','112','113','114','115',		---- AA
			--										'121','122','123','124','125',		---- BdA
			--										'131',								---- Gal
			--										'141','142','143','144','145',		---- Hem
			--										'151',								---- High
			--										'161','162','163','164','165',		---- Char
			--										'171','172','173','174','175',		---- Lim
			--										--'181',							---- SDM
			--										'201','202','203','204','205',		---- Sim_maso
			--										--'191','192','193','194','195',	---- Piem
			--										'51','53','54',						---- Pin
			--										'11','13','14'))					---- Slst'
			--										--'999'))
			and m.medziobd > 100 and m.medziobd <= 1200
		  --ORDER BY m.porpreblak
--select * from @zaklad order by porlak_tela, /*vek1OT desc,*/ plemeno


declare @otel_1 table
(
plemeno varchar(10),
dni_1otel int
)

declare @otel_1_tel table
(
plemeno varchar(10),
dni_1otel_tel int
)

declare @otel_2 table
(
plemeno varchar(10),
medz_2otel int
)

declare @otel_3 table
(
plemeno varchar(10),
medz_3otel int
)

declare @otel_4 table
(
plemeno varchar(10),
medz_4otel int
)

declare @otel_5 table
(
plemeno varchar(10),
medz_5otel int
)

declare @otel_celkom table
(
plemeno varchar(10),
medz_celk_otel int
)

insert into @otel_1(plemeno, dni_1otel)
	select plemeno, avg(vek1OT) as dni_1otel
			from @zaklad
			where  vek1OT < 2200
			group by plemeno

insert into @otel_1_tel  (plemeno, dni_1otel_tel)
	select plemeno, avg(vek1OTzTel) as dni_1otel_tel
			from @zaklad
			where  vek1OTzTel < 2200
			group by plemeno

	insert into @otel_2 (plemeno, medz_2otel)
		select plemeno, avg(medziobd) as medz_2otel
			from @zaklad
			where porpreblak = '2'
			group by plemeno
	--union 
	--	select 'SR' as plemeno, avg(medziobd) as medz_2otel
	--		from @zaklad
	--		where porpreblak = '2'

	insert into @otel_3 (plemeno, medz_3otel)
		select plemeno, avg(medziobd) as medz_3otel
			from @zaklad
			where porpreblak = '3'
			group by plemeno
	--union 
	--	select 'SR' as plemeno, avg(medziobd) as medz_3otel
	--		from @zaklad
	--		where porpreblak = '3'

	insert into @otel_4 (plemeno, medz_4otel)
		select plemeno, avg(medziobd) as medz_4otel
			from @zaklad
			where porpreblak = '4'
			group by plemeno
	--union 
	--	select 'SR' as plemeno, avg(medziobd) as medz_4otel
	--		from @zaklad
	--		where porpreblak = '4' 

	insert into @otel_5 
	(plemeno, medz_5otel)
		select plemeno, avg(medziobd) as medz_5otel
			from @zaklad
			where porpreblak = '5'
			group by plemeno
	--union 
	--	select 'SR' as plemeno, avg(medziobd) as medz_5otel
	--		from @zaklad
	--		where porpreblak = '5'

	insert into @otel_celkom 
	(plemeno, medz_celk_otel)
		select  plemeno, avg(medziobd) as medz_celk_otel
			from @zaklad
			where porpreblak in ( '2','3','4','5')
			group by plemeno
	--union 
	--	select 'SR' as plemeno, avg(medziobd) as medz_celk_otel
	--		from @zaklad

declare @vek_1_otel table
	(
	plemeno varchar(10),
	vek_1OT varchar(8)
	)
	insert into @vek_1_otel
		(plemeno, vek_1OT)
		select plemeno, dbo.toMesiacDen(AVG(dni_1otel)) AS vek_1OT
		 from @otel_1
		 group by plemeno
	--union 
	--	select 'SR' as plemeno, 
	--		convert(varchar(3),convert(int,AVG(dni_1otel) / 30.42)) +' / '+ convert(varchar(3),convert(int,AVG(dni_1otel) % 30.42)) AS vek_1OT
	--	 from @otel_1

		 
 --create table Roc_MPHD_Tab_6
	--(
	--plemeno varchar(10),
	--vek_1OT varchar(8),
	--medz_2otel int,
	--medz_3otel int,
	--medz_4otel int,
	--medz_5otel int,
	--medz_celk_otel int,
	--rok int
	--)

	insert into Roc_MPHD_Tab_6
		(plemeno, vek_1OT, medz_2otel, medz_3otel, medz_4otel, medz_5otel, medz_celk_otel, rok)
	select distinct z.plemeno, vek_1OT,	medz_2otel, medz_3otel, medz_4otel, medz_5otel, oc.medz_celk_otel, DATEPART(YEAR, @datumOd) as rok
	from @zaklad as z
	left outer join @otel_2 as o2 on o2.plemeno = z.plemeno
	left outer join @vek_1_otel as o1 on o1.plemeno = z.plemeno
	left outer join @otel_3 as o3 on o3.plemeno = z.plemeno
	left outer join @otel_4 as o4 on o4.plemeno = z.plemeno
	left outer join @otel_5 as o5 on o5.plemeno = z.plemeno
	left outer join @otel_celkom as oc on oc.plemeno = z.plemeno
			
End
go

-- =============================================

-- =============================================
Create PROCEDURE [dbo].[CR_TMHD_sumar_1/4]
	@chovatel varchar(9) = '',
	@mesiacDO int,
	@rok int
	
	as
	begin 

	select np.NAZOV as podnik, nch.NAZOV as NazovChov,
	t.ID, t.vek,t.pocet, t.hmotnost,t.dennpriras, t.zivpriras , t.chovatel ,t.pocetA ,t.percentA ,t.hmotnostA ,t.pocetB ,t.percentB ,t.hmotnostB ,t.pocetC ,t.percentC ,t.hmotnostC, t.rok, t.mesiacDO, t.generovane
	
	 from CR_TMHD_sumar_stvrtR as t
	
		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(t.chovatel,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = t.chovatel
		where t.chovatel = @chovatel and t.rok = @rok and t.mesiacDo = @mesiacDo
	
		



END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania16]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	
	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd16.CISLOZV,(case when hd16.DATNAR<>'' then convert(date,hd16.DATNAR,104) else null end) as DATNAR,
	hd16.DATSPRAC, hd16.DATUH, hd16.DATUMULOZENIA, hd16.DATZAPIS, hd16.FARBA, hd16.HMOTNAR, hd16.KR1, hd16.KR2, 
	hd16.KR3, hd16.KR4, hd16.LOGIN, hd16.MATKA, hd16.MATKAP, hd16.OTEC, hd16.OTECREG, hd16.PL1, hd16.PL2, hd16.PL3, hd16.PL4, 
	hd16.POHL, hd16.PRIEBPOR, hd16.PRITAZPOR, hd16.UHYNPRIC, hd16.URCEN, hd16.VERZIA, hd16.ZLAKT, hd16.HMOTOT, hd16.OTECLIN 
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd16.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd16.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARTELIATMAS as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD16_ZARTELIATMAS as hd16
	on h.IDR_HLAS = hd16.IDR
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '16' and ezk.CISCHYBY is not null


	order by CHOV, CISLOZV

end
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovaniaZoznamRegionChov]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin
declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint
	)

	--select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	--ok.REGION,zch.Nazov as NazovChovu 
	--from VstupyPLIS.dbo.CP_SPRAC_CHOVY sch
	--left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	--on h.ID_SPRACCHOV = sch.IDR
	--left join NC_OKRES as ok
	--on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	--left join CP_ZoznamChovov as zch
	--on zch.chov = sch.CHOV
	--where (sch.CHOV like @CHOV+'%' or @CHOV is null) and sch.ROK = @rok and sch.MESIAC = @mesiac;

	insert into @spracCHOVy (CHOV, IDCHOVU)
	select CHOV, idr from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
			--(ch.CHOV like @CHOV+'%' or @CHOV is null)
			--and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
			--or
			--((@dekada is null or @dekada = '')
			--and
			--(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
			--OR
			--(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
			--OR
			--(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
			--or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	--left join CE_ZARKRAV as ezk
	--on ezk.ID = h.IDR_HLAS
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	----where ezk.CISCHYBY is not null

	--left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	--on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_ZARKRAV as ezk
	on h.IDR_HLAS = ezk.ID
	--left join CC_ChybyKU as chku
	--on ezk.CISCHYBY = chku.CISCHYBY
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '3' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_OTELENIA as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '4' and ezk.CISCHYBY is not null
	
	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_PRESUNY as ezk
	on h.IDR_HLAS = ezk.ID_CP
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '5' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_ROZBORAK as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '6' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_ROZBORAK_OPR as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '7' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_ZARTELIATML as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '8' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_HLASSKUP as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '9' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_DOKVAZML as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

		union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_DOKVAZMAS as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

	union 
		select distinct sch.CHOV, substring(sch.chov, 1, 1) as kraj, substring(sch.chov, 2, 2) as okres, ok.NAZOV as NazovOkr, 
	ok.REGION,zch.Nazov as NazovChovu 
	from @spracCHOVy as sch

	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join NC_OKRES as ok
	on ok.KRAJ+ok.OKRES = substring(sch.chov, 1, 3)
	left join CP_ZoznamChovov as zch
	on zch.chov = sch.CHOV
	left join CE_ZARTELIATMAS as ezk
	on h.IDR_HLAS = ezk.ID
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
		and h.TYP_HLAS = '16' and ezk.CISCHYBY is not null

	order by KRAJ, CHOV

end
go




create PROCEDURE [dbo].[C_ZZ_Mlieko_TelataPoLaktacie_CHOV]
	@ParChov varchar(9)
AS
BEGIN
/****************************************
	using table:CM_Krava,CM_Laktacie,CM_Telata

	changing table: Cp_TelataPoLaktacii

	used for: view of details of Krava
*********************************************/
	--TRUNCATE TABLE plis.dbo.Cp_TelataPoLaktacii
	delete plis.dbo.Cp_TelataPoLaktacii where krava in (select CISKRAVY from PLIS.dbo.CM_Krava where CHOVATEL = @ParChov)

	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);

	declare @l as int;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';

	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;

	declare kravy cursor for
	select CISKRAVY
	from plis.dbo.CM_Krava
	where PRIZNAKKU=1 and CHOVATEL = @ParChov;

	open kravy ;
	fetch next from kravy into @krava;

	while @@FETCH_STATUS=0
	begin

		declare @i int;
		set @i=0;


		declare lakt cursor for
		select PORLAK
		from plis.dbo.CM_Laktacie
		where CISKRAVY=@krava

		open lakt
		fetch next from lakt into @lakt;

		while @@FETCH_STATUS=0
		begin

			declare telata cursor for 
			select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,l.PORLAK
			from plis.dbo.CM_Krava as k
		
			inner join plis.dbo.CM_Laktacie as l
			on k.CISKRAVY=l.CISKRAVY

			left join plis.dbo.CM_Telata as t
			on k.CISKRAVY=t.MATKA and t.PORLAK=l.PORLAK
			where  k.CISKRAVY=@krava and l.PORLAK = @lakt


			open telata;
			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			set @i=1;
			set @t1=null;
			set @t2=null;
			set @t3=null;
			set @t1Poch=null;
			set @t2Poch=null;
			set @t3Poch=null;		
		
			while @@FETCH_STATUS=0
			begin
				if(@i=1)
				begin
					set @t1=@t;
					set @t1Poch=@pocl;
					if(@t is null)
					begin
					set @t1='bez UČ';
					set @t1Poch=@pocl;
					end
				end
				if(@i=2)
				begin
					set @t2=@t;
					set @t2Poch=@pocl;
					if(@t is null)
					begin
					set @t2='bez UČ';
					set @t2Poch=@pocl;
					end
				end
				if(@i=3)
				begin
					set @t3=@t;
					set @t3Poch=@pocl;
					if(@t is null)
					begin
					set @t3='bez UČ';
					set @t3Poch=@pocl;

					end
				end
			
				set @i=@i+1;

				fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			
			end

			close telata;
			deallocate telata;

		  
			fetch next from lakt into @lakt;

			insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l);		
		end
	
		close lakt;
		deallocate lakt;


		fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;	 				
	
END
go


/***masova rocenka - priebeh porodov v roku - podla plemennych typov
Masova rocenka 2017 - od str.6 ....vypocitane na zaklade tab Roc_MPHD_5 zo str.32 **/

 CREATE procedure [dbo].[Roc_MPHD_5_plemTYP]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_5_plemTYP where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @telata table
	(
	cistelata varchar(14),
	datnar date, 
	typplem varchar(3),
	plemeno varchar(10),
	priebpor varchar(1)
	)

	insert into @telata
	(cistelata , datnar, typplem, plemeno, priebpor)
	select CISTELATA,DATNAR,TYPPLEM,
			case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when TYPPLEM in ('111','112','113','114','115') then 'AA'
				when TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when TYPPLEM = '131' then 'Gal'
				when TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when TYPPLEM = '151' then 'High'
				when TYPPLEM in ('161','162','163','164','165') then 'Char'
				when TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when TYPPLEM in ('51','53','54') then 'Pin'
				when TYPPLEM in ('11','13','14') then 'Slst'
			end as plemeno,
			PRIEBPOR 
	from CM_Telata 
	where DATNAR >= @datumOd and DATNAR <= @datumDo
		and PRIZNAKKU = '2'
		and TYPPLEM in (--'101','102','103','104','105',	---- BBM
						'111','112','113','114','115',		---- AA
						'121','122','123','124','125',		---- BdA
						'131',								---- Gal
						'141','142','143','144','145',		---- Hem
						'151',								---- High
						'161','162','163','164','165',		---- Char
						'171','172','173','174','175',		---- Lim
						--'181',							---- SDM
						'201','202','203','204','205',		---- Sim_maso
						--'191','192','193','194','195',	---- Piem
						'51','53','54',						---- Pin
						'11','13','14')						---- Slst


	--select * from @telata


	declare @prieb_por table
	(
	typplem int, 
	nezist int,
	lahky int,
	stred int,
	tazky int, 
	operacia int,
	spolu int,
	rok int	
	)

	insert into @prieb_por 
	(typplem, nezist, lahky, stred, tazky, operacia, spolu, rok)
		select typplem as typplem, 
			sum(case when (priebpor = '0' or priebpor is null) then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' then 1 else 0 end) as operacia,
			sum(case when priebpor in ('0','1','2','3','4') or priebpor is null then 1 else 0 end) as spolu,
			datepart(YEAR,@datumOd) as rok
		from @telata
		group by typplem

		--select * from @prieb_por


	

	insert into Roc_MPHD_Tab_5_plemTYP
	(plemeno,plemtyp, nezist, nezist_p, lahky, lahky_p, stred, stred_p, tazky, tazky_p, operacia, operacia_p, rok,spolu)
		select 		
			case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when TYPPLEM in ('111','112','113','114','115') then 'AA'
				when TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when TYPPLEM = '131' then 'Gal'
				when TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when TYPPLEM = '151' then 'High'
				when TYPPLEM in ('161','162','163','164','165') then 'Char'
				when TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when TYPPLEM in ('51','53','54') then 'Pin'
				when TYPPLEM in ('11','13','14') then 'Slst'
			end as plemeno,
			typplem as plemtyp,
			nezist as nezist, 
			nezist * 100.0  / spolu as nezist_p,
			lahky as lahky,
			lahky * 100.0  / spolu as lahky_p,
			stred as stred,
			stred * 100.0  / spolu as stred_p,
			tazky as tazky,
			tazky * 100.0  / spolu as tazky_p,
			operacia as operacia,
			operacia * 100.0  / spolu as operacia_p,
			rok,
			spolu
		 from @prieb_por
		 --group by typplem,nezist,lahky,stred,tazky,operacia,spolu,rok
			--where plemeno = 'AA'
	
	end
go


-- =============================================

---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch bez ohladu na to, ci boli spracovane v danom mesiaci, alebo nie.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_stvrtrok]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

DECLARE @cistelata varchar(14)

	select distinct CISTELATA, CHOVATEL into #cistelata
		from View_CP_SumarMladyDobytokJal_new where CHOVATEL = @chov
		
	DECLARE @counter int
	SET @counter = 0;

	DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(*) FROM #cistelata
								WHERE CHOVATEL = @chov 
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)
		
	IF ( SELECT COUNT(distinct v.CISTELATA) FROM #cistelata as v 
							left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVATEL = t.CHOVATEL
							WHERE v.CHOVATEL = @chov
									and t.DOVVYR is null and t.DATVYR is null
									and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
									and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA) 
									 ) >= 1
		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM #cistelata as v 
						left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVATEL = t.CHOVATEL
						WHERE v.CHOVATEL = @chov 
								and t.DOVVYR is null and t.DATVYR is null
								and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
								and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
				
				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and t.DOVVYR is null and t.DATVYR is null
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
			PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)
			
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

			INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1 then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1 - @h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360 - @h1 ) * 1000 / NULLIF(@dp, 0)), @d1) 
			
			--print '@h1'
			--print @h1 
			--print '@h2n' 
			--print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor

			
			-- CREATE TABLE CR_TMHD_pripustenie_stvrtR
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int,
			--	rokPripus int
			--	)
			
		insert into CR_TMHD_pripustenie_stvrtR
		select
					cistelata,
					chov,
					datnar,
					datvaz1 , 
					hmot1 ,
					rp1 ,
					datvaz2, 
					hmot2 ,
					rp2 ,
					dp ,
					DatPrip1 ,
					DatPrip2 ,
					datPr ,
					datPlanPripust ,
					ZnakPripus ,
					MesiacPripusF,
					rok , 
					mesiac ,
					generovane , 
				(case when hmot2 > 360 then DATEPART(MONTH,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360  and DatPrip1 <= DatPrip2 then DATEPART(MONTH,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as mesiacPripus,
				
				(case when hmot2 > 360  then DATEPART(YEAR,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360 and DatPrip1 <= DatPrip2 then DATEPART(YEAR,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as rokPripus
			
				from #abc1 
end
end
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 2.12.2015
-- Description:	Vrati chybnik zo spracovania chovu/vsrtkzch chovov v urcitom obdobi (mesiaci)
-- =============================================
CREATE procedure [dbo].[C_chybnikyZoSpracovania15]
    @rok varchar(4),
	@mesiac varchar(2),
	@CHOV varchar(9) = ''
	--@DEKADA varchar(1) = ''
as
begin

	declare @spracCHOVy table
	(
		CHOV varchar(9),
		IDCHOVU bigint,
		ROK int,
		MESIAC int
		--DEKADA int
	)

	insert into @spracCHOVy (CHOV, IDCHOVU, ROK, MESIAC/*, DEKADA*/)
	select CHOV, idr, ch.rok, ch.mesiac/*, ch.dekada */ from VstupyPLIS.dbo.CP_SPRAC_CHOVY as ch
	where (ch.CHOV like @CHOV+'%' or @CHOV is null) and ch.ROK = @rok and ch.MESIAC = @mesiac --and (ch.DEKADA = @DEKADA or @DEKADA is null)
	--where (ch.CHOV like @CHOV+'%' or @CHOV is null)
	--		and ((ch.ROK = @rok and ch.MESIAC = @mesiac and ch.DEKADA = @DEKADA)
	--		or
	--		(@dekada is null
	--		and
	--		(ch.MESIAC = @MESIAC AND ch.ROK = @ROK AND ch.DEKADA = 9)
	--		OR
	--		(ch.MESIAC = @MESIAC + 1 AND ch.DEKADA = 1 AND ch.MESIAC < 12 AND ch.ROK = @ROK)
	--		OR
	--		(ch.DEKADA = 1 AND ch.MESIAC = 1 AND @MESIAC = 12 AND ch.ROK = @ROK + 1))
	--		or ch.dekada = 0 and ch.MESIAC = @MESIAC AND ch.ROK = @ROK  )

	
	select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd15.CISTELATA, hd15.DATSPRAC, 
	hd15.DATVAZ, hd15.DATZAPIS, hd15.HMOT, hd15.LOGIN, hd15.PRIZSPRAC, hd15.PRIZSPRAC, hd15.TURNUS, hd15.VERZIA, hd15.VYSKAVKRIZ,
	hd15.ZAVER, sch.ROK, sch.MESIAC--, sch.DEKADA 
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd15.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd15.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_DOKVAZML as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD15_DOKVAZ as hd15
	on h.IDR_HLAS = hd15.IDR
	
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
	
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

		union


		select sch.CHOV, h.IDR_HLAS, h.TYP_HLAS, chku.TEXTCHYBY, ezk.PRIZNAKCHYBY, ezk.CISCHYBY, hd15.CISTELATA, hd15.DATSPRAC, 
	hd15.DATVAZ, hd15.DATZAPIS, hd15.HMOT, hd15.LOGIN, hd15.PRIZSPRAC, hd15.PRIZSPRAC, hd15.TURNUS, hd15.VERZIA, hd15.VYSKAVKRIZ,
	hd15.ZAVER, sch.ROK, sch.MESIAC--, sch.DEKADA 
	,(select distinct meno from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd15.login) as Meno
	,(select distinct PRIEZVISKO from View_AD_Prehlad_pracovnikov_KU_v_PLISe where UserName = hd15.login) as Priezvisko
	from @spracCHOVy as sch
	left join VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS as h
	on h.ID_SPRACCHOV = sch.IDCHOVU
	left join CE_DOKVAZMAS as ezk
	on h.IDR_HLAS = ezk.ID
	left join CC_ChybyKU as chku
	on ezk.CISCHYBY = chku.CISCHYBY
	left join VstupyPLIS.dbo.CP_HD15_DOKVAZ as hd15
	on h.IDR_HLAS = hd15.IDR
	
	where h.ID_SPRACCHOV in (select IDCHOVU from @spracCHOVy)
	
		and h.TYP_HLAS = '15' and ezk.CISCHYBY is not null

	


	order by CHOV, CISTELATA

end
go

CREATE Procedure [dbo].[sp_FStada]


-- Autor: Roman Rafaj, 03.05.2016
-- export dat do menovky fStada. tbl CP_Fstada
-- VS		update0179.sql

	AS
	
	declare @KROkr varchar(3)
	declare @PODNIK varchar(3)
	declare @stado varchar(3)
	declare @TYPZV varchar(1)
	declare @ZRUS varchar(1)
	declare @Nazov varchar(30)
	declare @obec varchar (40)
	declare @CisFarmy nvarchar(5)
	declare @IDPAMK varchar(5)
	declare @IDPAMZ varchar(5)
	declare @Konzul varchar(2)
	declare @Obvzoo varchar(2)
	declare @VykKU varchar(1)
	declare @StKU varchar(1)
	declare @DataZrus float /* double */
	declare @vlastne bit /* boolean */
	declare @Datzrus  DATE
    DECLARE @FaktSkup INT
	DECLARE @PIGLOG INT 



	IF OBJECT_ID('CP_FStada') IS NOT NULL
	/* ak existuje tabulka CP_FStada*/
		TRUNCATE TABLE CP_FStada
			ELSE
		CREATE TABLE CP_FStada (
			KROkr varchar(3),
			PODNIK varchar(3),
			stado varchar(3),
			TYPZV varchar(1),
			ZRUS varchar(1),
			Nazov varchar(30),
			obec varchar (40),
			CisFarmy varchar(5),
			IDPAMK varchar(5),
			IDPAMZ varchar(5),
			Konzul varchar(2),
			Obvzoo varchar(2),
			VykKU varchar(1),
			StKU varchar(1),
			DatZrus date,
			vlastne BIT,
            FaktSkup INT,
			PIGLOG INT
		)

	SET NOCOUNT ON /* vypneme zobrazovanie o vlozeni kazdeho riadka */

	DECLARE db_cursor CURSOR LOCAL FOR
	
		SELECT DISTINCT + a.KRAJ + '' + a.OKRES AS KROkr,
						a.PODNIK,
						a.CHOV AS stado,
						a.TYPZV, a.ZRUS,
						a.NAZOV, a.OBEC,
						a.CISFARMY, b.KONZUL,
						b.OBVZOO,
						b.SPZAIS AS VykKU,
						b.CHARCHOV AS StKU
		FROM            dbo.NM_CHOVMAS AS a LEFT OUTER JOIN
                        dbo.NM_HDDETAIL AS b ON 
							a.KRAJ = b.KRAJ AND
							a.OKRES = b.OKRES AND
							a.PODNIK = b.PODNIK AND
							a.CHOV = b.CHOV
		WHERE		   (a.TYPZV = 1) -- krava




	 OPEN db_cursor  
	 FETCH NEXT from db_cursor INTO  
  	 @KROkr, @PODNIK, @stado, @TYPZV, @ZRUS, @Nazov, @obec, @CisFarmy, @Konzul, @Obvzoo, @VykKU, @StKU   
	 WHILE (@@FETCH_STATUS = 0)  
	 BEGIN  
  
	INSERT INTO CP_FStada (KROkr, PODNIK, stado, TYPZV, ZRUS, Nazov, obec, CisFarmy, Konzul, Obvzoo, VykKU, StKU)
		VALUES
	(@KROkr, @PODNIK, @stado, @TYPZV, @ZRUS, @Nazov, @obec, @CisFarmy, @Konzul, @Obvzoo, @VykKU, @StKU)

  	FETCH NEXT from db_cursor INTO  
  	 @KROkr, @PODNIK, @stado, @TYPZV, @ZRUS, @Nazov, @obec, @CisFarmy, @Konzul, @Obvzoo, @VykKU, @StKU 
	END  
	
	CLOSE db_cursor 
	DEALLOCATE db_cursor

	/* Zapiseme hodnoty pre prasiatka */

	DECLARE db_cursor CURSOR LOCAL FOR

		SELECT DISTINCT + a.KRAJ + '' + a.OKRES AS KROkr,
						a.PODNIK,
						a.CHOV AS stado,
						a.TYPZV, a.ZRUS,
						a.NAZOV,
						a.OBEC,
						a.CISFARMY,
						b.PLEMENAR AS idPAMK,
						a.FaktSkup,		-- doplnene 3.5.2016
						b.PIGLOG		-- doplnene 3.5.2016

		FROM            dbo.NM_CHOVMAS AS a 
		
		LEFT JOIN		dbo.NM_OSDETAIL AS b ON (a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV)
		WHERE		    (a.TYPZV = 2) -- prasa

	OPEN db_cursor  
	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idPAMK, @FaktSkup, @PIGLOG
	WHILE (@@FETCH_STATUS = 0)  
	BEGIN  
  
	INSERT INTO CP_FStada (krokr, podnik, stado, typzv, zrus, nazov, obec, cisfarmy, idPAMK, FaktSkup, PIGLOG)
	VALUES
	(@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idPAMK, @FaktSkup, @PIGLOG)

  	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idPAMK, @FaktSkup, @PIGLOG
	END  
	
	CLOSE db_cursor 
	DEALLOCATE db_cursor

		
	/* Zapiseme hodnoty pre ovce */

	DECLARE db_cursor CURSOR LOCAL FOR

			SELECT      + a.KRAJ + '' + a.OKRES AS KROkr,
						a.PODNIK,
						a.CHOV AS stado,
						a.TYPZV,
						a.ZRUS,
						a.NAZOV,
						a.OBEC,
						a.CISFARMY,
						IDPAMK.IDPAM AS IDPAMK,
						IDPAMZ.IDPAM AS IDPAMZ,
						b.CISKON AS Konzul, 
                        b.CISZOO AS ObvZoo,
						b.VYKKU,
						b.STKU,
						b.DATZRUS,
						0 AS vlastne
			
			FROM        dbo.NM_CHOVMAS AS a LEFT OUTER JOIN
                        dbo.NM_OVDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT OUTER JOIN
                        dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT OUTER JOIN
                        dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID
			WHERE       (a.TYPZV = 3) -- ovecky

	OPEN db_cursor  
	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne
	WHILE (@@FETCH_STATUS = 0)  
	BEGIN  
  
	INSERT INTO CP_FStada (krokr, podnik, stado, typzv, zrus, nazov, obec, cisfarmy, idpamk, idpamz, konzul, obvzoo, vykku, stku, datzrus, vlastne)
	VALUES
	(@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne)

  	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne
	END  
	
	CLOSE db_cursor 
	DEALLOCATE db_cursor

	/* Zapiseme hodnoty pre kozy */

	DECLARE db_cursor CURSOR LOCAL FOR

			SELECT		+ a.KRAJ + '' + a.OKRES AS KROkr,
						a.PODNIK,
						a.CHOV AS stado,
						a.TYPZV, a.ZRUS,
						a.NAZOV, a.OBEC,
						a.CISFARMY,
						IDPAMK.IDPAM AS IDPAMK,
						IDPAMZ.IDPAM AS IDPAMZ,
						b.CISKON AS Konzul, 
                        b.CISZOO AS ObvZoo,
						b.VYKKU,
						b.STKU,
						b.DATZRUS,
						0 AS vlastne

			FROM        dbo.NM_CHOVMAS AS a LEFT OUTER JOIN
                        dbo.NM_OVDETAIL AS b ON a.KRAJ = b.KRAJ AND a.OKRES = b.OKRES AND a.PODNIK = b.PODNIK AND a.CHOV = b.CHOV LEFT OUTER JOIN
                        dbo.NM_KONTAKT AS IDPAMZ ON b.CISZOO = IDPAMZ.ID LEFT OUTER JOIN
                        dbo.NM_KONTAKT AS IDPAMK ON b.CISKON = IDPAMK.ID
			WHERE      (a.TYPZV = 4)  --kozy

	OPEN db_cursor  
	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne
	WHILE (@@FETCH_STATUS = 0)  
	BEGIN  
  
	INSERT INTO CP_FStada (krokr, podnik, stado, typzv, zrus, nazov, obec, cisfarmy, idpamk, idpamz, konzul, obvzoo, vykku, stku, datzrus, vlastne)
	VALUES
	(@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne)

  	FETCH NEXT from db_cursor INTO  
  	@krokr, @podnik, @stado, @typzv, @zrus, @nazov, @obec, @cisfarmy, @idpamk, @idpamz, @konzul, @obvzoo, @vykku, @stku, @datzrus, @vlastne
	END  

		
	CLOSE db_cursor 
	DEALLOCATE db_cursor

	SELECT * FROM CP_FStada


go

CREATE procedure [dbo].[CR_KUMP_CHK_MES]
    
	@rok int,
	@mesiac int,
	@CHOV varchar(9) = ''
	--@Vytlacil varchar(10) = null
	
as
begin

	
	select np.NAZOV as podnik, nch.NAZOV as NazovChov,
	  kump.*
	  



	   FROM [plis].[dbo].[CR_KUMP_CHK_MES_1] as kump 

	   left join plis.dbo.NM_PODNIK as NP
	on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(kump.CHOVATEL,1,6)
	left join NM_CHOVMAS as NCH
	on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = kump.CHOVATEL
	  
	   where (kump.CHOVATEL like @CHOV+'%' or @CHOV is null)	and kump.rok = @rok and kump.mesiac =@mesiac-- and kump.DOVVYR is null and kump.DATVYR is null
	   end
go



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_PoslednaLaktZaradenyKravy_CHOV]
	@ParChov varchar(9)
AS
BEGIN
	

	/***********************************
		using table: CM_Krava,CM_Laktacie

		changing table: CP_KravaPoslednaUzavLaktZaradeny

		used: (6) Uzávierka KÚHD posledných uzavretých laktácií 
	********************************/
	SET NOCOUNT ON;

	--TRUNCATE TABLE [PLIS].[dbo].CP_KravaPoslednaUzavLaktZaradeny
	delete from [PLIS].[dbo].CP_KravaPoslednaUzavLaktZaradeny where chovatel = @ParChov
	
	declare @msms as datetime;
	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from plis.dbo.CM_Krava
	where dovvyr is not null
	and priznakku='1' and chovatel = @ParChov

	open chova
	fetch next from chova into @chov
	set @msms=GETDATE();
	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from plis.dbo.cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is not null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							--print @ciskrava

							set @maxLakt=(select max(PORLAK) from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is NOT null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into [PLIS].[dbo].CP_KravaPoslednaUzavLaktZaradeny values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt))
								--print datediff(ms,@msms,getdate());
								set @msms=GETDATE();
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				--print N'Done'
			end
			close chova;
			deallocate chova;
	
END


go

CREATE procedure [dbo].[Roc_MLHD_23]
	@chov varchar(9),
	@datumOd date,
	@datumDo date

  --use plis

 --Declare @datumOd date, @datumDo date, @chov varchar(9), 
 --  set @datumOd ='2017-01-01'
 -- set @datumDo ='2017-10-15'
 -- set @chov = '301701031'

as 
begin
delete from Roc_MLHD_Tab_23A where rok = DATEPART(year,@datumOd) and KRAJ + OKRES + PODNIK = substring(@chov,1,6)

declare @porlak float
 Declare @tab23 TABLE
	  (
	  KRAJ VARCHAR(1)NULL,
	  OKRES VARCHAR(2)NULL,
	  PODNIK VARCHAR(3)NULL,
	  OKRES_NAZOV VARCHAR(30)NULL,
	  SIDLO VARCHAR(30)NULL,
	  PREDSTAVITEL_1 VARCHAR(100)NULL,
	  FUNKCIA_1 VARCHAR(50)NULL,
	  PREDSTAVITEL_2 VARCHAR(100)NULL,
	  FUNKCIA_2 VARCHAR(50)NULL,
	  STAV_KRAV_AKT INT,
	  STAV_KRAV_MIN INT,
	  VYR_KRAV INT,
	  ZAR_PRVOSTOK INT,
	  NAR_TELIAT INT,
	  PR_VEKvROKOCH VARCHAR(8)NULL,
	  PR_VEKvMES VARCHAR(8)NULL,
	  PR_LAKT FLOAT,
	  ROK VARCHAR(4)
	   )

   INSERT INTO @tab23
   (kraj, okres, podnik,OKRES_NAZOV, sidlo, PREDSTAVITEL_1, FUNKCIA_1, PREDSTAVITEL_2, FUNKCIA_2,ROK)


  select n.kraj, n.okres, n.podnik, o.NAZOV, n.OBEC,
	isnull(k.TITUL_PRED,'') + isnull(k.MENO,'')  +' '+  isnull(k.PRIEZVISKO,'') +' '+ isnull(k.TITUL_ZA,'') as predstavitel_1, isnull(k.FUNKCIA,'') as funkcia_1,
	isnull(z.TITUL_PRED,'') + isnull(z.MENO,'')  +' '+  isnull(z.PRIEZVISKO,'') +' '+ isnull(z.TITUL_ZA,'') as predstavitel_2, isnull(z.FUNKCIA,'') as funkcia_2,
	datepart (year, @datumOd) as rok
  from NM_PODNIK as n
	  left outer join NM_Konatel as k on k.ID = n.ID_KONATEL
	  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK = n.KRAJ + n.OKRES + n.PODNIK
	  left outer join NM_Zootechnik as z on z.ID = ch.ID_ZOOTECHNIK
	  left outer join NC_OKRES as o on o.KRAJ + o.OKRES = n.KRAJ + n.OKRES
	where n.kraj + n.okres + n.PODNIK =  substring(@chov,1,6)
		and ch.KRAJ + ch.OKRES + ch.PODNIK + CHOV=@chov
		and ch.TYPZV=1
		and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
  
declare @kravyNAchove int, @vyradeneKravy int, @narodeneTelata int, @prvostky int, @stavKravMinRok int 
set @kravyNAchove = (select count(*) from CM_Krava 
										where substring(CHOVATEL,1,6) = substring(@chov,1,6) and dovvyr is null and PRIZNAKKU = '1')--(dovvyr is null or (dovvyr is not null and DATVYR>=@datumOd)))  -- stav krav na chove
set @vyradeneKravy = (select count(*) from CM_Krava 
										where substring(CHOVATEL,1,6) = substring(@chov,1,6) and dovvyr is not null and DATVYR>=@datumOd and PRIZNAKKU = '1') --vyradene kravy   
set @narodeneTelata = (select count(*) from CM_Telata
										where substring(CHOVATEL,1,6) = substring(@chov,1,6) and DATNAR>= @datumOd and DATNAR <= @datumDo and PRIZNAKKU = '1' and len(CISTELATA) > 0) --narodenych teliat
set @prvostky = (select count(*) from CM_Krava where substring(CHOVATEL,1,6) = substring(@chov,1,6) and DATZAR > @datumOd and DOVVYR is null and PRIZNAKKU = '1' and PORPREBLAK > 0)
			
set @porlak = (select convert(decimal(5,2),AVG(PORLAK *1.0)) from CM_Laktacie				--priem poradie laktacie
				 where ZMENA in ('30','40') 
					and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
								or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
					and substring(CHOVATEL,1,6) = substring(@chov,1,6))

set @stavKravMinRok = (select stav_krav_1 from Roc_MLHD_Tab_23A where KRAJ + OKRES + PODNIK = substring(@chov,1,6) and rok= datepart(year,(dateadd(year,-1, @datumOd))))


update @tab23 set
STAV_KRAV_AKT = @kravyNAchove, NAR_TELIAT=@narodeneTelata, VYR_KRAV=@vyradeneKravy, PR_LAKT = @porlak, ZAR_PRVOSTOK = @prvostky, STAV_KRAV_MIN = @stavKravMinRok

	--	--vek krav v rokoch

	declare @vek_v_rokoch int, @vek_v_mesiacoch int
	 
	SELECT 
		@vek_v_rokoch = avg(krav_vek_dni) /365 ,
		@vek_v_mesiacoch = (avg(krav_vek_dni) %365)/30.42 
	  	from (
			select 
				l.ciskravy, k.DATNAR, k. DATVYR,  
				(DATEDIFF(day,k.DATNAR,(select (case when  k.datvyr is  null  then @datumDo 
													else k.datvyr end )
													from CM_Krava as k where k.ciskravy = l.ciskravy))) AS krav_vek_dni,
				(DATEDIFF(month,k.DATNAR,(select (case when  k.datvyr is  null  then @datumDo 
													else k.datvyr end )
													from CM_Krava as k where k.ciskravy = l.ciskravy))) AS krav_vek_mesiac
				from CM_Laktacie as l
					left outer join CM_Krava as k on k.CISKRAVY = l.ciskravy
					 where ZMENA in ('30','40') 
						and ((DATUKONL >= @datumOd and DATUKONL <= @datumDo) and (DATUKNORL is null or DATUKNORL >= @datumOd) 
									or (DATUKNORL >= @datumOd and DATUKNORL <= @datumDo))
						and substring(l.CHOVATEL,1,6) = substring(@chov,1,6)
						and (k.DATVYR is null or k.DATVYR > @datumOd)
						group by l.CISKRAVY, DATNAR, DATVYR
					) as v

	update @tab23 set
	PR_VEKvROKOCH = @vek_v_rokoch, PR_VEKvMES = @vek_v_mesiacoch

insert into Roc_MLHD_Tab_23A
		(KRAJ,OKRES,PODNIK,Okres_nazov,Sidlo,predstavitel_1,funkcia_1,predstavitel_2,funkcia_2,stav_krav_1,stav_krav_2,vyr_kravy
		  ,zar_prvostok,nar_teliat,pr_vek_rok,pr_vek_mesiac,priem_lakt,rok)
   select distinct
		KRAJ,
		OKRES,
		PODNIK,
		OKRES_NAZOV, SIDLO,
		PREDSTAVITEL_1,
		FUNKCIA_1,
		PREDSTAVITEL_2,
		FUNKCIA_2,
		STAV_KRAV_AKT,
		STAV_KRAV_MIN,
		VYR_KRAV,
		ZAR_PRVOSTOK,
		NAR_TELIAT,
		PR_VEKvROKOCH,
		PR_VEKvMES,
		PR_LAKT,
		ROK
   from @tab23

	end
go

/***masova rocenka - priebeh porodov v roku - podla plemien
Masova rocenka 2017 - str.32 **/
 CREATE procedure [dbo].[Roc_MPHD_5]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_5 where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @telata table
	(
	cistelata varchar(14),
	datnar date, 
	typplem varchar(3),
	plemeno varchar(10),
	priebpor varchar(1)
	)

	insert into @telata
	(cistelata , datnar, typplem, plemeno, priebpor)
	select CISTELATA,DATNAR,TYPPLEM,
			case--when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when TYPPLEM in ('111','112','113','114','115') then 'AA'
				when TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when TYPPLEM = '131' then 'Gal'
				when TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when TYPPLEM = '151' then 'High'
				when TYPPLEM in ('161','162','163','164','165') then 'Char'
				when TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when TYPPLEM in ('51','53','54') then 'Pin'
				when TYPPLEM in ('11','13','14') then 'Slst'
				when ((TYPPLEM is null and PL1 is null) 
								or (TYPPLEM is null and PL1<>'X') 
								or (TYPPLEM not in (--'101','102','103','104','105',
														'111','112','113','114','115',
														'121','122','123','124','125', 
														'131',
														'141','142','143','144','145', 
														'151', 
														'161','162','163','164','165', 
														'171','172','173','174','175', 
														--'181',
														'201','202','203','204','205',
														--'191','192','193','194','195', 
														'51','53','54', 
														'11','13','14') and PL1<>'X')) then 'Osta'
				when PL1 = 'X' then 'Nez'
			end as plemeno,
			-------------------povodny vzorec
			----case when TYPPLEM in ('111','112','113','114','115') then 'AA'
			----		when TYPPLEM in ('121','122','123','124','125') then 'BdA'
			----		when TYPPLEM = '131' then 'Gal'
			----		when TYPPLEM = '151' then 'High'
			----		when TYPPLEM in ('161','162','163','164','165') then 'Char'
			----		when TYPPLEM in ('171','172','173','174','175') then 'Lim'
			----		when TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
			----		when TYPPLEM in ('191','192','193','194','195') then 'Piem'
			----		when TYPPLEM in ('51','53','54') then 'Pin'
			----		when TYPPLEM in ('11','13','14') then 'Slst'
			----		when TYPPLEM = '999' then 'Osta'
			----		when TYPPLEM is null then 'Nez' end as plemeno,
			PRIEBPOR 
	from CM_Telata 
	where datnar >= @datumOd and DATNAR <= @datumDo 
		and PRIZNAKKU = '2'
--		and (typplem is null or TYPPLEM in (--'101','102','103','104','105',
--											'111','112','113','114','115',
--											'121','122','123','124','125', 
--											'131', 
--											'141','142','143','144','145', 
--											'151', 
--											'161','162','163','164','165', 
--											'171','172','173','174','175', 
--											--'181',
--											'201','202','203','204','205',
--											--'191','192','193','194','195', 
--											'51','53','54', 
--											'11','13','14',
--											'999'))
	--select * from @telata


	declare @prieb_por table
	(
	plemeno varchar(10), 
	nezist int,
	lahky int,
	stred int,
	tazky int, 
	operacia int,
	rok int	
	)


	--create table Roc_MPHD_Tab_5
	--(
	--plemeno varchar(10), 
	--nezist int,
	--nezist_p decimal(5,2),
	--lahky int,
	--lahky_p decimal(5,2),
	--stred int,
	--stred_p decimal(5,2),
	--tazky int, 
	--tazky_p decimal(5,2), 
	--operacia int,
	--operacia_p decimal(5,2),
	--rok int	
	--)

	insert into @prieb_por 
	(plemeno, nezist, lahky, stred, tazky, operacia, rok)
		select 'AA' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'AA' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'AA' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'AA' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'AA' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'AA' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'BdA' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'BdA' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'BdA' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'BdA' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'BdA' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'BdA' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	/*
	union 
		select 'BBM' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'BBM' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'BBM' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'BBM' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'BBM' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'BBM' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	*/
	union 
		select 'Gal' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Gal' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Gal' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Gal' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Gal' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Gal' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'HEM' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'HEM' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'HEM' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'HEM' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'HEM' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'HEM' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'High' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'High' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'High' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'High' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'High' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'High' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'Char' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Char' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Char' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Char' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Char' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Char' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'Lim' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Lim' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Lim' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Lim' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Lim' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Lim' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	/*
	union 
		select 'Piem' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Piem' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Piem' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Piem' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Piem' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Piem' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	*/
	union 
		select 'Pin' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Pin' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Pin' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Pin' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Pin' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Pin' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	/*
	union 
		select 'SDM' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'SDM' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'SDM' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'SDM' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'SDM' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'SDM' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	*/
	union 
		select 'Sim_maso' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Sim_maso' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Sim_maso' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Sim_maso' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Sim_maso' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Sim_maso' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'Slst' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Slst' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Slst' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Slst' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Slst' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Slst' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'Osta' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Osta' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Osta' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Osta' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Osta' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Osta' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'Nez' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) and plemeno = 'Nez' then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' and plemeno = 'Nez' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' and plemeno = 'Nez' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' and plemeno = 'Nez' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' and plemeno = 'Nez' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata
	union 
		select 'SR' as plemeno, 
			sum(case when (priebpor = '0' or priebpor is null) or priebpor is null then 1 else 0 end) as nezist,
			sum(case when priebpor = '1' then 1 else 0 end) as lahky,
			sum(case when priebpor = '2' then 1 else 0 end) as stred,
			sum(case when priebpor = '3' then 1 else 0 end) as tazky,
			sum(case when priebpor = '4' then 1 else 0 end) as operacia,
			datepart(YEAR,@datumOd) as rok
		from @telata

	--select * from @prieb_por

	declare @AA_p int
	set @AA_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'AA')
	--declare @BBM_p int
	--set @BBM_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'BBM')
	declare @BdA_p int
	set @BdA_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'BdA')
	declare @Gal_p int
	set @Gal_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Gal')
	declare @Hem_p int
	set @Hem_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Hem')
	declare @High_p int
	set @High_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'High')
	declare @Char_p int
	set @Char_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Char')
	declare @Lim_p int
	set @Lim_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Lim')
	--declare @SDM_p int
	--set @SDM_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'SDM')
	declare @Sim_maso_p int
	set @Sim_maso_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Sim_maso')
	--declare @Piem_p int
	--set @Piem_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Piem')
	declare @Pin_p int
	set @Pin_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Pin')
	declare @Slst_p int
	set @Slst_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Slst')
	declare @Osta_p int
	set @Osta_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Osta')
	declare @Nez_p int
	set @Nez_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'Nez')
	declare @SR_p int
	set @SR_p = (select (nezist+lahky+stred+tazky+operacia) from @prieb_por where plemeno = 'SR')


	

	--declare @prieb_por_fin table
	--(
	--plemeno varchar(10), 
	--nezist int,
	--nezist_p decimal(5,2),
	--lahky int,
	--lahky_p decimal(5,2),
	--stred int,
	--stred_p decimal(5,2),
	--tazky int, 
	--tazky_p decimal(5,2), 
	--operacia int,
	--operacia_p decimal(5,2),
	--rok int	
	--)

	
	insert into Roc_MPHD_Tab_5
	(plemeno, nezist, nezist_p, lahky, lahky_p, stred, stred_p, tazky, tazky_p, operacia, operacia_p, rok, spolu)
		select 
			plemeno as plemeno,
			nezist as nezist, 
			nezist * 100.0  / nullif(@AA_p,0) as nezist_p,
			lahky as lahky,
			lahky * 100.0  / nullif(@AA_p,0) as lahky_p,
			stred as stred,
			stred * 100.0  / nullif(@AA_p,0) as stred_p,
			tazky as tazky,
			tazky * 100.0  / nullif(@AA_p,0) as tazky_p,
			operacia as operacia,
			operacia * 100.0  / nullif(@AA_p,0) as operacia_p,
			rok,
			@AA_p as spolu
		 from @prieb_por
			where plemeno = 'AA'
	/*
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@BBM_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@BBM_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@BBM_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@BBM_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@BBM_p,0) as operacia_p,
			rok,
			@BBM_p as spolu
		 from @prieb_por
			where plemeno = 'BBM'
	*/
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@BdA_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@BdA_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@BdA_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@BdA_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@BdA_p,0) as operacia_p,
			rok,
			@BdA_p as spolu
		 from @prieb_por
			where plemeno = 'BdA'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Gal_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Gal_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Gal_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Gal_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Gal_p,0) as operacia_p,
			rok,
			@Gal_p as spolu
		 from @prieb_por
			where plemeno = 'Gal'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Hem_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Hem_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Hem_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Hem_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Hem_p,0) as operacia_p,
			rok,
			@Hem_p as spolu
		 from @prieb_por
			where plemeno = 'Hem'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@High_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@High_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@High_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@High_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@High_p,0) as operacia_p,
			rok,
			@High_p as spolu
		 from @prieb_por
			where plemeno = 'High'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Char_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Char_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Char_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Char_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Char_p,0) as operacia_p,
			rok,
			@Char_p as spolu
		 from @prieb_por
			where plemeno = 'Char'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Lim_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Lim_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Lim_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Lim_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Lim_p,0) as operacia_p,
			rok,
			@Lim_p as spolu
		 from @prieb_por
			where plemeno = 'Lim'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Sim_maso_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Sim_maso_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Sim_maso_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Sim_maso_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Sim_maso_p,0) as operacia_p,
			rok,
			@Sim_maso_p as spolu
		 from @prieb_por
			where plemeno = 'Sim_maso'
	/*
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Piem_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Piem_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Piem_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Piem_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Piem_p,0) as operacia_p,
			rok,
			@Piem_p as spolu
		 from @prieb_por
			where plemeno = 'Piem'
	*/
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Pin_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Pin_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Pin_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Pin_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Pin_p,0) as operacia_p,
			rok,
			@Pin_p as spolu
		 from @prieb_por
			where plemeno = 'Pin'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Slst_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Slst_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Slst_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Slst_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Slst_p,0) as operacia_p,
			rok,
			@Slst_p as spolu
		 from @prieb_por
			where plemeno = 'Slst'
	--union 
	--	select 
	--		plemeno,
	--		nezist, 
	--		nezist * 100.0  / nullif(@SDM_p,0) as nezist_p,
	--		lahky,
	--		lahky * 100.0  / nullif(@SDM_p,0) as lahky_p,
	--		stred,
	--		stred * 100.0  / nullif(@SDM_p,0) as stred_p,
	--		tazky,
	--		tazky * 100.0  / nullif(@SDM_p,0) as tazky_p,
	--		operacia,
	--		operacia * 100.0  / nullif(@SDM_p,0) as operacia_p,
	--		rok,
	--		@SDM_p as spolu
	--	 from @prieb_por
	--		where plemeno = 'SDM'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Osta_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Osta_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Osta_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Osta_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Osta_p,0) as operacia_p,
			rok,
			@Osta_p as spolu
		 from @prieb_por
			where plemeno = 'Osta'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@Nez_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@Nez_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@Nez_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@Nez_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@Nez_p,0) as operacia_p,
			rok,
			@Nez_p as spolu
		 from @prieb_por
			where plemeno = 'Nez'
	union 
		select 
			plemeno,
			nezist, 
			nezist * 100.0  / nullif(@SR_p,0) as nezist_p,
			lahky,
			lahky * 100.0  / nullif(@SR_p,0) as lahky_p,
			stred,
			stred * 100.0  / nullif(@SR_p,0) as stred_p,
			tazky,
			tazky * 100.0  / nullif(@SR_p,0) as tazky_p,
			operacia,
			operacia * 100.0  / nullif(@SR_p,0) as operacia_p,
			rok,
			@SR_p as spolu
		 from @prieb_por
			where plemeno = 'SR'

		--select * from @prieb_por_fin 

	end
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Kravy_21]
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_Mlieko_Kravy_21

	declare @c varchar(9);
	declare @ouc as varchar(14);
	declare @o as varchar(7);
	declare @meno as varchar(50)
	declare @nazlin as varchar (30)
	declare @plemena as varchar(80)
	declare @poc12 as int;
	declare @pocnad12 as int;
	declare @po412P as float;
	declare @po4nad12P as float;
	declare @s as int
	declare @pocOtec as int;
	declare @percOtec as float;

	declare chov cursor for
	SELECT distinct chovatel
	 FROM [PLIS].[dbo].[View_CP_Mlieko_zoznamJalovic]

	open chov
	fetch next from chov into @c

	while @@FETCH_STATUS=0
	begin

		declare work cursor for

		SELECT DISTINCT t.OUC, t.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, t.OTECREG), 3) AS otec, 
		k.MENO, l.nazlin, 
		ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
		+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') + '  ' 
		+ ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + 
		CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, 
		p1.po4et AS Poc12, p2.po4et AS PocNad12, 
		CONVERT (float, p1.po4et * 100) * 1.00 / NULLIF (d1.pocet, 0) AS po4et12Perc, 
		CONVERT (float, p2.po4et * 100) * 1.00 / NULLIF (d2.pocet, 0) AS po4etNad12Perc, 

		(SELECT COUNT(*) AS Expr1 FROM plis.dbo.CM_Telata AS t WHERE (t.CHOVATEL = @c) AND 
		(t.DOVVYR IS NULL) AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> 62) AND 
		(t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak)) AND 
		(DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38)) AS po4et, 

		ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0) AS preOtec, 
		CONVERT (float, (ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0)) * 100) * 1.00 / 
		NULLIF (d3.pocet, 0) AS percOtec 

		FROM plis.dbo.CM_Telata AS t 
		INNER JOIN plis.dbo.CM_Byci AS k 
		ON t.OUC = k.USCISLO 
		LEFT OUTER JOIN plis.dbo.View_cp_telataPoOtecDo12m AS p1 
		ON t.OUC = p1.OUC AND t.CHOVATEL = p1.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.View_CP_telataPoOtcoNad12m AS p2 ON t.OUC = p2.OUC AND t.CHOVATEL = p2.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.CC_Linie AS l ON k.LIN = l.lin 
		LEFT OUTER JOIN plis.dbo.View_cp_telataDo12mes AS d1 ON t.CHOVATEL = d1.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.View_CP_TelataNad12mes AS d2 ON t.CHOVATEL = d2.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.View_CP_TelataPocetDO38Mes AS d3 ON t.CHOVATEL = d3.CHOVATEL 

		WHERE (t.CHOVATEL = @c) AND (t.DOVVYR IS NULL) 
		AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> '62') 
		AND (t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak AS CM_Naplak_1)) 
		AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38) AND (t.PRIZNAKKU = '1')


		open work
		fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 

		while @@FETCH_STATUS=0
		begin
			insert into CP_Mlieko_Kravy_21 values (@c,@ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec)
			fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 
		end

		close work
		deallocate work;

	fetch next from chov into @c
	end

	close chov
	deallocate chov

END
go

-- =============================================
-- Author:		David Florek
-- Create date:	02.08.2017
-- Description:	Prepocita riadky faktury pre TMHD. Zapise jednotlive riadky do EC_RiadokFaktury.
-- Edit:			28.08.2017 Pridany kurzor a pridanie generovania do historie.
-- =============================================
CREATE PROCEDURE [dbo].[EC_TMHD_PrepocitajFakturu]
	@datum DATE = null,
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@poradie varchar(1) = null,
	@jeDotacia bit = 0
AS
BEGIN
	if @datum is null set @datum = DATEADD (MONTH, -1, GETDATE());
	if @rok is null set @rok = YEAR(@datum);
	if @mesiac is null set @mesiac = MONTH(@datum);
	if @poradie is null set @poradie = MONTH(@datum) / 4;

	If(OBJECT_ID('tempdb..#zoznam') Is Not Null)
		Drop Table #zoznam

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Výber zoznamu chovov.';

	select
		d.KRAJ + d.OKRES + d.PODNIK + d.CHOV as Chov,
		'TMHD' as Typ,
		SUBSTRING(CAST(@datum as VARCHAR(10)), 4, 1) + '0' + '4' + @poradie + d.PODNIK + d.KRAJ + d.OKRES as Faktura,
		COUNT(t.CISTELATA) as Pocet,
		SUBSTRING(CAST(@datum as VARCHAR(10)), 3, 2) + SUBSTRING(CAST(@datum as VARCHAR(10)), 6, 2) + dbo.Posledny_pracovny_den_mesiaca(@mesiac, @rok) as Datum,
		'17001' as Produkt,
		prod.JEDCENA as Suma,
		prod.JEDCENA * COUNT(t.CISTELATA) as SumaCelkom,
		ISNULL(CAST(REPLACE(d.UPRAVA, '+', '') as decimal(10, 2)), 0) as Priplatok,
		ISNULL(CAST(REPLACE(d.PRIPLATOK, '+', '') as decimal(10, 2)), 0) as PriplatokPerc

	into #zoznam

	from CM_Telata t
	left outer join NM_HDDETAIL d on t.CHOVATEL = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
	inner join EC_CISPROD prod on '17001' = prod.KOD1 + prod.KOD2 + prod.KOD3

		where
		t.CISTELATA in (select CISTELATA from CM_VAZENIA)
		and t.DOVVYR is null
		and d.PRIZNAK = '01'
		and CONVERT(INT, d.TECHUSMD) > 0
		and t.PRIZNAKKU = '1'

	group by
		prod.JEDCENA, d.KRAJ, d.OKRES, d.PODNIK, d.CHOV, d.PRIPLATOK, d.UPRAVA
	order by CHOV;

	declare riadok cursor for
	select * from #zoznam;

	declare
		@id int,
		@chov varchar(9),
		@typ varchar(10),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	--Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Vkladanie riadkov faktúr.';
	declare @poc int = 0;

	open riadok;
	fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
	WHILE @@FETCH_STATUS = 0
		begin
			--insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatokPerc, @jeDotacia;

			--select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

			set @sumaCelkom = @pocet * (@suma + @priplatok) * (100 + @priplatokPerc) / 100;
			set @dotacia = 0;
			set @zlavCel = (@pocet * @suma) - (@pocet * (@suma + @priplatok)) * ((100 + @priplatokPerc) / 100);

			insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, oSuma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
			values (@chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

			SELECT @id = SCOPE_IDENTITY();

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KodZmeny)
			values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Generovanie', GETDATE(), 'system', 0);
			fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;

			set @poc = @poc + 1;
		end

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec vkladania riadkov, bolo vložených ' + cast(@poc as varchar) + ' riadkov.';

	close riadok;
	deallocate riadok;

	Drop Table #zoznam;
	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec čistenia. Prepočet hotový.';
END
go




CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Naj_kravy_CHOV]
	@ParChov varchar(9)
AS
BEGIN
/*****************************************
	USING TABLE: CM_Krava,CM_Laktacie

	CHANGING TABLE: CP_Mlieko_NajKrava

	USED: (8) Zoznam najlepších kráv 
******************************************/

--TRUNCATE TABLE plis.dbo.CP_Mlieko_NajKrava
delete plis.dbo.CP_Mlieko_NajKrava where chovatel = @ParChov

declare @C varchar(9);
declare @K varchar (14);
	
	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov

	open chovatel
	fetch next from chovatel into @C;
	while @@FETCH_STATUS=0
	begin
		
		declare krava cursor for
		select ciskravy
		from plis.dbo.cm_krava
		where CHOVATEL=@c
		and PRIZNAKKU='1'
		and DOVVYR is NULL
		and POCVSETLAK>0;

		open krava
		fetch next from krava into @k;

		while @@FETCH_STATUS=0
		begin
			insert into plis.dbo.CP_Mlieko_NajKrava values(@K,
															@C,
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K),
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K
																and zmena in (30,40)),
															(select sum(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
																(select avg(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40))
																
															);
			fetch next from krava into @k;
		end
		close krava
		deallocate krava


		fetch next from chovatel into @C;
	end
	close chovatel;
	deallocate chovatel;

END


go




CREATE PROCEDURE [dbo].[C_aktual_KodDojKodMedzi]
AS
BEGIN
/*****************************

!	PLEASE RUN AFFTER CHANGING CP_KRAVAPOSLEDNAUZAVLAKT 
	OR  C_ZZ_UZAVRETELAKTSKLADBA_FINAL PROCEDURE (PROCEDURE IS CHANGING TABLE CP_KRAVAPOSLEDNAUZAVLAKT )  !

	using table :CM_Laktacie,CM_Naplak,CP_KravaPoslednaUzavLakt,CC_Dojivost,

	changing table :CM_Laktacie,CM_Naplak,CP_KravaPoslednaUzavLakt

	using for: updatting value of column KOD_DOJ,KOD_MEDZ for reports number (9.A)Rozbor medziobdobia podľa prebiehajúcej laktácie ,
	(9.B) Medziobdobie podľa úžitkovosti za poslednú uzavretú laktáciu ,(7) Štruktúra žijúcich kráv podľa dojnosti 

******************************/

update CM_Laktacie
set KOD_DOJ=null
where MLIEKCEL !=0 
and MLIEKCEL is not null
and MLIEKNOR !=0
and MLIEKNOR is not null


update CM_Laktacie
set KOD_MEDZ=null
where MEDZIOBD is not null
and MEDZIOBD!=0

update CM_Naplak
set KOD_DOJ=null
where MLIEKCEL !=0 
and MLIEKCEL is not null
and MLIEKNOR !=0
and MLIEKNOR is not null

update CM_Naplak
set KOD_MEDZ=null
where MEDZIOBD is not null
and MEDZIOBD!=0


declare @od int;
declare @do int;
declare @kod int;

	declare odmleko cursor for
	select od,do,kod
	from CC_Dojivost

	open odmleko
	fetch next from odmleko into @od, @do, @kod

	while @@FETCH_STATUS=0
	begin
			
			update CM_Naplak
			set KOD_DOJ=@kod
			where MLIEKNOR between @od and @do
			and ZMENA in (30,40)

			update CM_Laktacie
			set Kod_Doj=@kod
			where MLIEKNOR between @od and @do
			and ZMENA in (30,40)
			
			update [CP_KravaPoslednaUzavLakt]
			set KOD_DOJ=@kod
			where mliekoN between @od and @do
			and ZMENA in (30,40)

			update CM_Naplak
			set KOD_DOJ=@kod
			where MLIEKCEL between @od and @do
			and ZMENA not in (30,40)

			update CM_Laktacie
			set KOD_DOJ=@kod
			where MLIEKCEL between @od and @do
			and ZMENA not in (30,40)
			
			update CP_KravaPoslednaUzavLakt
			set Kod_Doj=@kod
			where mlieko between @od and @do
			and ZMENA  not in (30,40)

	fetch next from odmleko into @od, @do, @kod
	end

	close odmleko
	deallocate odmleko

	declare od1 cursor for
	select od,do,kod
	from CC_Medziobd

	open od1
	fetch next from od1 into @od, @do, @kod

	while @@FETCH_STATUS=0
	begin
		
		
		
		if(@kod=1)
		begin
		
		update CM_Naplak
		set KOD_MEDZ=@kod
		where MEDZIOBD is null


		update CM_Laktacie
		set KOD_MEDZ=@kod
		where MEDZIOBD is null
		
		update CP_KravaPoslednaUzavLakt
			set Kod_Medz =@kod
		where medziobd is null
		
		end
		
		else
		begin
		
		update CM_Naplak
		set KOD_MEDZ=@kod
		where MEDZIOBD between @od and @do


		update CM_Laktacie
		set KOD_MEDZ=@kod
		where MEDZIOBD between @od and @do
		
		update CP_KravaPoslednaUzavLakt
			set Kod_Medz =@kod
		where medziobd between @od and @do
			end

	fetch next from od1 into @od, @do, @kod
	end

	close od1
	deallocate od1



END

go


/*** masova rocenka - clenenie velkosti chovov podla poctu ustajnenych zvierat 
Masova rocenka 2017 - str.31***/
CREATE procedure [dbo].[Roc_MPHD_4]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_4 where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @chovy table
	(
	pocet_zvierat int,
	chov varchar(14)
	)

insert into @chovy (pocet_zvierat, chov)
	select count(t.cistelata) as pocet_zvierat, t.CHOVATEL as chov 
		from CM_Telata as t
		left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVATEL
			where t.DOVVYR is null --or (t.DATVYR >= @datumOd and t.DATVYR <= @datumDo))
				and t.cistelata not in (select ciskravy from CM_Krava)
				and t.PRIZNAKKU = '2'
				and ch.TYPZV= 1
					and ch.chov not in ('010','700', '699') 
					and left(ch.chov,1) ='7'
					and ch.ZRUS is null --or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			group by CHOVATEL
	union	
	select count(k.ciskravy) as pocet_zvierat, k.CHOVATEL as chov 
		from CM_Krava as k
		left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
			where k.DOVVYR is null --or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and k.PRIZNAKKU = '2'
				and ch.TYPZV= 1
					and ch.chov not in ('010','700', '699') 
					and left(ch.chov,1) ='7'
					and ch.ZRUS is null --or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd)) 
		group by CHOVATEL
	
	--select * from @chovy

	declare @zoznam table 
	(
		pocet int,
		chov varchar(14)
	)
	insert into @zoznam (pocet, chov)
	select sum(pocet_zvierat) as pocet, 
	chov from @chovy
	group by chov

	--select * from @zoznam	

declare @prehlad table
(
	do_10 int, 
	do_29 int, 
	do_49 int,
	do_69 int,
	do_89 int,
	do_109 int,
	do_129 int,
	do_149 int,
	nad_150 int,
	spolu int,
	pocet_zvierat_do_10 int,
	pocet_zvierat_do_29 int, 
	pocet_zvierat_do_49 int, 
	pocet_zvierat_do_69 int,
	pocet_zvierat_do_89 int,
	pocet_zvierat_do_109 int,
	pocet_zvierat_do_129 int,
	pocet_zvierat_do_149 int,
	pocet_zvierat_nad_150 int
)

insert into @prehlad 
	(
	do_10 , do_29, do_49, do_69, do_89, do_109,do_129, do_149,
	nad_150, spolu,pocet_zvierat_do_10, pocet_zvierat_do_29,pocet_zvierat_do_49, pocet_zvierat_do_69 ,
	pocet_zvierat_do_89, pocet_zvierat_do_109,pocet_zvierat_do_129, pocet_zvierat_do_149,pocet_zvierat_nad_150
	)
select 
	sum(case when pocet < 10 then 1 else 0 end) as do_10,
	sum(case when pocet >= 10 and pocet < 30  then 1 else 0 end) as do_29,
	sum(case when pocet >= 30 and pocet < 50  then 1 else 0 end) as do_49,
	sum(case when pocet >= 50 and pocet < 70  then 1 else 0 end) as do_69,
	sum(case when pocet >= 70 and pocet < 90  then 1 else 0 end) as do_89,
	sum(case when pocet >= 90 and pocet < 110  then 1 else 0 end) as do_109,
	sum(case when pocet >= 110 and pocet < 130  then 1 else 0 end) as do_129,
	sum(case when pocet >= 130 and pocet < 150  then 1 else 0 end) as do_149,
	sum(case when pocet >= 150  then 1 else 0 end) as nad_150,
	count(pocet) as spolu,

	sum(case when pocet < 10 then pocet end) as pocet_zvierat_do_10,
	sum(case when pocet >= 10 and pocet < 30 then pocet end) as pocet_zvierat_do_29,
	sum(case when pocet >= 30 and pocet < 50 then pocet end) as pocet_zvierat_do_49,
	sum(case when pocet >= 50 and pocet < 70 then pocet end) as pocet_zvierat_do_69,
	sum(case when pocet >= 70 and pocet < 90 then pocet end) as pocet_zvierat_do_89,
	sum(case when pocet >= 90 and pocet < 110 then pocet end) as pocet_zvierat_do_109,
	sum(case when pocet >= 110 and pocet < 130 then pocet end) as pocet_zvierat_do_129,
	sum(case when pocet >= 130 and pocet < 150 then pocet end) as pocet_zvierat_do_149,
	sum(case when pocet >= 150  then pocet end) as pocet_zvierat_nad_150
from @zoznam

--select * from @prehlad

/*declare @tab_4 table*/
----create table Roc_MPHD_Tab_4
----(
----	perc_do_10 float,
----	perc_do_29 float,
----	perc_do_49 float,
----	perc_do_69 float,
----	perc_do_89 float,
----	perc_do_109 float,
----	perc_do_129 float,
----	perc_do_149 float,
----	perc_nad_150 float,
----	do_10 int, 
----	do_29 int, 
----	do_49 int,
----	do_69 int,
----	do_89 int,
----	do_109 int,
----	do_129 int,
----	do_149 int,
----	nad_150 int,
----	spolu int,
----	zvierat_do_10 int,
----	zvierat_do_29 int,
----	zvierat_do_49 int,
----	zvierat_do_69 int,
----	zvierat_do_89 int,
----	zvierat_do_109 int,
----	zvierat_do_129 int,
----	zvierat_do_149 int,
----	zvierat_nad_150 int,
----	rok int
----)

insert into /*@tab_4*/ Roc_MPHD_Tab_4
	(
	perc_do_10, perc_do_29, perc_do_49, perc_do_69, perc_do_89 , perc_do_109, perc_do_129, perc_do_149, perc_nad_150,
	do_10, do_29, do_49, do_69, do_89, do_109,do_129, do_149,nad_150, spolu,
	zvierat_do_10, zvierat_do_29, zvierat_do_49, zvierat_do_69, zvierat_do_89, zvierat_do_109, zvierat_do_129, zvierat_do_149, zvierat_nad_150, rok
	)

	Select 
		cast((do_10 * 100.0 / spolu) as decimal(6,2))  as perc_do_10,
		cast((do_29 * 100.0 / spolu) as decimal(6,2))  as perc_do_29,
		cast((do_49 * 100.0 / spolu) as decimal(6,2)) as perc_do_49,
		cast((do_69 * 100.0 / spolu) as decimal(6,2)) as perc_do_69,
		cast((do_89 * 100.0 / spolu) as decimal(6,2)) as perc_do_89,
		cast((do_109 * 100.0 / spolu) as decimal(6,2)) as perc_do_109,
		cast((do_129 * 100.0 / spolu) as decimal(6,2)) as perc_do_129,
		cast((do_149 * 100.0 / spolu) as decimal(6,2)) as perc_do_149,
		cast((nad_150 * 100.0 / spolu) as decimal(6,2)) as perc_nad_150,
		do_10 , do_29, do_49, do_69, do_89, do_109,do_129, do_149, nad_150, spolu,
		pocet_zvierat_do_10 / do_10 as zvierat_do_10,
		pocet_zvierat_do_29 / do_29 as zvierat_do_29,
		pocet_zvierat_do_49 / do_49 as zvierat_do_49,
		pocet_zvierat_do_69 / do_69 as zvierat_do_69,
		pocet_zvierat_do_89 / do_89 as zvierat_do_89,
		pocet_zvierat_do_109 / do_109 as zvierat_do_109,
		pocet_zvierat_do_129 / do_129 as zvierat_do_129,
		pocet_zvierat_do_149 / do_149 as zvierat_do_149,
		pocet_zvierat_nad_150 / nad_150 as zvierat_nad_150,
		datepart(year, @datumOd) as rok
		--pocet_teliat_do_10,
		--pocet_teliat_do_29,
		--pocet_teliat_do_49,
		--pocet_teliat_do_69,
		--pocet_teliat_do_89,
		--pocet_teliat_do_109,
		--pocet_teliat_do_129,
		--pocet_teliat_do_149,
		--pocet_teliat_nad_150
	from @prehlad

	--select * from @tab_4
	
end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-21
-- Description:	Stiahnutie dat kontrol a pridavnych dat pre pripravu kumulativneho suboru kotrol pre vstup do BLUP-u v Linux-e
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_prip_kontr]
	@startdate date,
	@enddate date 
AS
BEGIN
	delete from CM_ZSTDM_new

	insert into CM_ZSTDM_new
	-- z kontrol
	SELECT
	CASE WHEN k.CISKRAVY IN ('SK999999999999', 'SK888888888888') OR
							 k.CISKRAVY IS NULL THEN '000000000000000' ELSE k.CISKRAVY END AS CISKRAVY, CASE WHEN upper(CM_Byci.USCISLO) = 'NEZ' OR
							 CM_Byci.USCISLO IS NULL THEN '000000000000000' ELSE CM_Byci.USCISLO END AS OTEC, CASE WHEN kr.MA IN ('SK999999999999', 'SK888888888888') OR
							 kr.MA IS NULL THEN '000000000000000' ELSE kr.MA END AS MATKA, RIGHT('00' + CAST(n.PORLAK AS VARCHAR(2)), 2) AS PORLAK, n.ZMENA, kr.DATNAR AS DATUMN, n.DATOTEL, k.DATKONTR, k.CISCHOVU, 
							 k.MLIEKPR, CONVERT(decimal(4, 2), k.PERCTUKU * k.MLIEKPR / 100) AS TUK, k.PERCTUKU AS TUKP, CONVERT(decimal(4, 2), k.PERCBIELK * k.MLIEKPR / 100) AS BIELK, k.PERCBIELK AS BIELKP, 
							 k.BUNECELEM AS SB, 0 AS SCS, k.LAKTDNI AS DNI, kr.PL1, CASE WHEN kr.KR1 = 100 OR
							 kr.KR1 IS NULL THEN 0 ELSE kr.KR1 END AS KR1, kr.PL2, CASE WHEN kr.KR2 IS NULL THEN 0 ELSE kr.KR2 END AS KR2, kr.PL3, CASE WHEN kr.KR3 IS NULL THEN 0 ELSE kr.KR3 END AS KR3, kr.PL4, 
							 CASE WHEN kr.KR4 IS NULL THEN 0 ELSE kr.KR4 END AS KR4, kr.PL5, dbo.C_Blup_PLTyp(kr.PL1, kr.KR1, kr.PL2, kr.KR2, kr.PL3, kr.KR3, kr.PL4, kr.KR4) AS TYP
	FROM            CM_Krava AS kr LEFT OUTER JOIN
							 CM_Byci ON kr.OTECLIN = CM_Byci.LIN AND kr.OTECREG = CM_Byci.REG RIGHT OUTER JOIN
							 CM_Kontroly AS k LEFT OUTER JOIN
							 CM_Naplak AS n ON k.CISKRAVY = n.CISKRAVY ON kr.CISKRAVY = k.CISKRAVY
	WHERE        
	(n.PORLAK <= 3)  AND (DATEDIFF(MONTH, kr.DATNAR, GETDATE()) >= 18) 
	AND (n.DATOTEL IS NOT NULL) AND (kr.DATNAR IS NOT NULL) AND (k.DATKONTR IS NOT NULL)
	AND (n.DATOTEL > kr.DATNAR) AND (k.DATKONTR > n.DATOTEL)
	AND (DATEDIFF(DAY, n.DATOTEL, k.DATKONTR) < 401) 
	AND (dbo.C_Blup_PLTyp(kr.PL1, kr.KR1, kr.PL2, kr.KR2, kr.PL3, kr.KR3, kr.PL4, kr.KR4) IN ('H0', 'H1', 'H2', 'H3', 'S0', 'S1', 'S2', 'P0', 'P1', 'P2')) 
	AND (kr.CISKRAVY != kr.MA)
	AND (k.PERCBIELK between 1.00 and 7.00) AND (k.PERCTUKU between 1.5 and 9.0) AND (k.MLIEKPR between 1 and 60)
	AND (k.DATKONTR between @startdate and @enddate)

	-- z archivu kontrol
	SELECT
	CASE WHEN k.CISKRAVY IN ('SK999999999999', 'SK888888888888') OR
							 k.CISKRAVY IS NULL THEN '000000000000000' ELSE k.CISKRAVY END AS CISKRAVY, CASE WHEN upper(CM_Byci.USCISLO) = 'NEZ' OR
							 CM_Byci.USCISLO IS NULL THEN '000000000000000' ELSE CM_Byci.USCISLO END AS OTEC, CASE WHEN kr.MA IN ('SK999999999999', 'SK888888888888') OR
							 kr.MA IS NULL THEN '000000000000000' ELSE kr.MA END AS MATKA, RIGHT('00' + CAST(n.PORLAK AS VARCHAR(2)), 2) AS PORLAK, n.ZMENA, kr.DATNAR AS DATUMN, n.DATOTEL, k.DATKONTR, k.CISCHOVU, 
							 k.MLIEKPR, CONVERT(decimal(4, 2), k.PERCTUKU * k.MLIEKPR / 100) AS TUK, k.PERCTUKU AS TUKP, CONVERT(decimal(4, 2), k.PERCBIELK * k.MLIEKPR / 100) AS BIELK, k.PERCBIELK AS BIELKP, 
							 k.BUNECELEM AS SB, 0 AS SCS, k.LAKTDNI AS DNI, kr.PL1, CASE WHEN kr.KR1 = 100 OR
							 kr.KR1 IS NULL THEN 0 ELSE kr.KR1 END AS KR1, kr.PL2, CASE WHEN kr.KR2 IS NULL THEN 0 ELSE kr.KR2 END AS KR2, kr.PL3, CASE WHEN kr.KR3 IS NULL THEN 0 ELSE kr.KR3 END AS KR3, kr.PL4, 
							 CASE WHEN kr.KR4 IS NULL THEN 0 ELSE kr.KR4 END AS KR4, kr.PL5, dbo.C_Blup_PLTyp(kr.PL1, kr.KR1, kr.PL2, kr.KR2, kr.PL3, kr.KR3, kr.PL4, kr.KR4) AS TYP
	into #temp_archivkon
	FROM            CM_Krava AS kr LEFT OUTER JOIN
							 CM_Byci ON kr.OTECLIN = CM_Byci.LIN AND kr.OTECREG = CM_Byci.REG RIGHT OUTER JOIN
							 CM_ArchKon AS k LEFT OUTER JOIN
							 CM_Laktacie AS n ON k.CISKRAVY = n.CISKRAVY and k.PORPREBLAK = n.PORLAK ON kr.CISKRAVY = k.CISKRAVY
	WHERE        
	(n.PORLAK <= 3)  AND (DATEDIFF(MONTH, kr.DATNAR, GETDATE()) >= 18) 
	AND (n.DATOTEL IS NOT NULL) AND (kr.DATNAR IS NOT NULL) AND (k.DATKONTR IS NOT NULL)
	AND (n.DATOTEL > kr.DATNAR) AND (k.DATKONTR > n.DATOTEL)
	AND (DATEDIFF(DAY, n.DATOTEL, k.DATKONTR) < 401) 
	AND (dbo.C_Blup_PLTyp(kr.PL1, kr.KR1, kr.PL2, kr.KR2, kr.PL3, kr.KR3, kr.PL4, kr.KR4) IN ('H0', 'H1', 'H2', 'H3', 'S0', 'S1', 'S2', 'P0', 'P1', 'P2')) 
	AND (kr.CISKRAVY != kr.MA)
	AND (k.PERCBIELK between 1.00 and 7.00) AND (k.PERCTUKU between 1.5 and 9.0) AND (k.MLIEKPR between 1 and 60)
	AND (k.DATKONTR between @startdate and @enddate)

	CREATE INDEX IDX_temp_archivkon ON #temp_archivkon(ciskravy, datkontr)

	-- kontroly dokopy
	merge CM_ZSTDM_new as k
	using #temp_archivkon as a 
	on a.CISKRAVY = k.CISKRAVY and a.DATKONTR = k.DATKONTR
	when not matched then insert
	([CISKRAVY]
		  ,[OTEC]
		  ,[MATKA]
		  ,[PORLAK]
		  ,[ZMENA]
		  ,[DATUMN]
		  ,[DATOTEL]
		  ,[DATKONTR]
		  ,[CISCHOVU]
		  ,[MLIEKO]
		  ,[TUK]
		  ,[TUKP]
		  ,[BIELK]
		  ,[BIELKP]
		  ,[SB]
		  ,[SCS]
		  ,[DNI]
		  ,[PL1]
		  ,[KR1]
		  ,[PL2]
		  ,[KR2]
		  ,[PL3]
		  ,[KR3]
		  ,[PL4]
		  ,[KR4]
		  ,[PL5]
		  ,[TYP])
		  values (
		  a.[CISKRAVY]
		  ,a.[OTEC]
		  ,a.[MATKA]
		  ,a.[PORLAK]
		  ,a.[ZMENA]
		  ,a.[DATUMN]
		  ,a.[DATOTEL]
		  ,a.[DATKONTR]
		  ,a.[CISCHOVU]
		  ,a.[MLIEKPR]
		  ,a.[TUK]
		  ,a.[TUKP]
		  ,a.[BIELK]
		  ,a.[BIELKP]
		  ,a.[SB]
		  ,a.[SCS]
		  ,a.[DNI]
		  ,a.[PL1]
		  ,a.[KR1]
		  ,a.[PL2]
		  ,a.[KR2]
		  ,a.[PL3]
		  ,a.[KR3]
		  ,a.[PL4]
		  ,a.[KR4]
		  ,a.[PL5]
		  ,a.[TYP]);

	-- vybrane kontroly z tabulky kontrol a archivu kontrol do kumulativneho zoznamu kontrol
	merge CM_ZSTDM as k
	using CM_ZSTDM_new as a 
	on a.CISKRAVY = k.CISKRAVY and a.DATKONTR = k.DATKONTR
	when not matched then insert
	([CISKRAVY]
		  ,[OTEC]
		  ,[MATKA]
		  ,[PORLAK]
		  ,[ZMENA]
		  ,[DATUMN]
		  ,[DATOTEL]
		  ,[DATKONTR]
		  ,[CISCHOVU]
		  ,[MLIEKO]
		  ,[TUK]
		  ,[TUKP]
		  ,[BIELK]
		  ,[BIELKP]
		  ,[SB]
		  ,[SCS]
		  ,[DNI]
		  ,[PL1]
		  ,[KR1]
		  ,[PL2]
		  ,[KR2]
		  ,[PL3]
		  ,[KR3]
		  ,[PL4]
		  ,[KR4]
		  ,[PL5]
		  ,[TYP])
		  values (
		  a.[CISKRAVY]
		  ,a.[OTEC]
		  ,a.[MATKA]
		  ,a.[PORLAK]
		  ,a.[ZMENA]
		  ,a.[DATUMN]
		  ,a.[DATOTEL]
		  ,a.[DATKONTR]
		  ,a.[CISCHOVU]
		  ,a.[MLIEKO]
		  ,a.[TUK]
		  ,a.[TUKP]
		  ,a.[BIELK]
		  ,a.[BIELKP]
		  ,a.[SB]
		  ,a.[SCS]
		  ,a.[DNI]
		  ,a.[PL1]
		  ,a.[KR1]
		  ,a.[PL2]
		  ,a.[KR2]
		  ,a.[PL3]
		  ,a.[KR3]
		  ,a.[PL4]
		  ,a.[KR4]
		  ,a.[PL5]
		  ,a.[TYP]);
END
go



-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 26.09.2012
-- Description:	Prepocet laktacie
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_laktacie] 
	@V_CISKRAVY varchar(14), 
	@V_DATOTEL date, 	
	@V_PORPREBLAK varchar(2),
	@N_DATUKNORL date output, 
	@N_LAKTDNI [decimal](6,2) output,
	@N_LAKDNIN [decimal](6,2) output,
	@N_MLIEKCEL [decimal](7,2) output,
	@N_MLIEKNOR [decimal](7,2) output,
	@N_TUKCEL [decimal](6,2) output,
	@N_TUKNOR [decimal](6,2) output,
	@N_BIELKCEL [decimal](6,2) output,
	@N_BIELKNOR [decimal](6,2) output,
	@N_LAKTOZAC [decimal](6,2) output,
	@N_LAKTOZAN [decimal](6,2) output,
	@N_INDPER [decimal](5,2) output,
	@N_MLIEKO100 [decimal](7,2) output,
	@N_TUK100 [decimal](6,2) output,
	@N_BIELK100 [decimal](6,2) output,
	@N_LAKT100 [decimal](6,2) output,
	@N_MLIEKO200 [decimal](7,2) output,
	@N_TUK200 [decimal](6,2) output,
	@N_BIELK200 [decimal](6,2) output,
    @N_LAKT200 [decimal](6,2) output,
	@NenormalLakt bit output    
AS
BEGIN
    -- premenne pre vetu do kontrol (PLIS.dbo.CM_Kontroly) + premenne dat z vety kontrol (pre update) + premenne kontrol pre vypocet vety do Naplaku
	declare	@K_T_CISKRAVY varchar (14)
	declare	@K_T_DATKONTR date 
	declare	@K_T_ZNKONTR varchar (1) 
	declare	@K_T_DENDOBA varchar (1) 
	declare	@K_T_INTERVAL varchar (1) 
	declare	@K_T_CISCHOVU varchar (9) 
	declare	@K_T_SKUPINA varchar (2) 
	declare	@K_T_PREPOCET bit  
	declare	@K_T_MLIEKO [decimal](7,2)  
	declare	@K_T_MLIEKPR [decimal](7,2)  
	declare	@K_T_PRT [decimal](6,2)  
	declare	@K_T_PERCTUKU [decimal](5,2)  
	declare	@K_T_PERCBIELK [decimal](5,2)  
	declare	@K_T_PERCLAKTOZ [decimal](5,2)  
	declare	@K_T_BUNECELEM [decimal](7,2)  
	declare	@K_T_LAKTDNI [decimal](6,2)  
	declare	@K_T_PORPREBLAK varchar (2)
	--declare	@K_T_PLATNOST bit  

    -- premenne pre vetu do naplaku (PLIS.dbo.CM_Krava)
	declare @KR_DOVVYR varchar(2)
	declare @KR_DATVYR date
	declare @KR_DATPOSKONT date
    declare @KR_DATZAPPREP date
    declare @KR_DATVYBPREP date	
    declare @KR_POCVSETLAK int

	declare @counter1 int
	declare @rowcount1 int	
	declare @KonPred date
	declare @KonZa date
	declare @PomMliekPr [decimal](7,2)
	declare @MlPred [decimal](7,2)
	declare @MlZa [decimal](7,2)
	declare @TukPred [decimal](6,2)
	declare @TukZa [decimal](6,2)
	declare @BielPred [decimal](6,2)
	declare @BielZa [decimal](6,2)
	declare @LaktPred [decimal](6,2)
	declare @LaktZa [decimal](6,2)
	declare @PrepocetDatum date
	declare @PrepocetMlieko [decimal](7,2)
	declare @PrepocetTuk [decimal](6,2)
	declare @PrepocetBielk [decimal](6,2)
	declare @PrepocetLakt [decimal](6,2)	
	declare @PocetPrepoctov int	
	declare @PrvyTuk bit
	declare @PocKonNulTuk int
	declare @DvojDopocet int
	declare @K_T_LAKTDNI_Pred [decimal](6,2)
	declare @K_T_LAKTDNI_Po [decimal](6,2)
	declare @KontrVypMl [decimal](7,2)
	declare @PRAC_INTERVAL [decimal](7,2)
	declare @SUM_INTERVAL [decimal](7,2)	
	declare @POROV_DATKONTR date
	declare @POROV_LAKTDNI [decimal](7,2)
	declare	@ChovPred varchar(9)
	declare @SkupinaPred varchar(2)
	
	-- vynulovanie premennych
	set @NenormalLakt = 0	
	
	-- vymazanie prepoctov z Kontrol
	delete from PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY and PREPOCET = 1
	
	----------------------------------	
	-- DOPOCET T,B,L U KONTROL
	-- zmazanie docasnej tabulky PLIS.dbo.zotried_kontr ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zotried_kontr') drop table PLIS.dbo.zotried_kontr

	-- vyber rozborov pre danu kravu (len tie do 305 dni) a ich zotriedenie podla datumu vzostupne
	select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.zotried_kontr from PLIS.dbo.CM_Kontroly 
		where CISKRAVY = @V_CISKRAVY 
		--and PLATNOST = 1 
		and PORPREBLAK = @V_PORPREBLAK
		and LAKTDNI < 305 
		order by DATKONTR asc

	set @rowcount1 = (select count(*) from PLIS.dbo.zotried_kontr)
	set @counter1 = (select 1)
	set @PocetPrepoctov = 0
	set @PrvyTuk = 0
	set @KonPred = '1900-01-01'
	set @KonZa = '1900-01-02'
	set @PocKonNulTuk = 0
	set @DvojDopocet = 0
	
	print 'C_aktual_prep_laktacie ' + @V_CISKRAVY
	
	while @counter1 <= @rowcount1
	begin
		-- kontrola ma hlaseny tuk
		if (select COUNT(*) from PLIS.dbo.zotried_kontr where rowid = @counter1 and PERCTUKU is not NULL) = 1
		begin
			-- nastav prvu kontrolu s nenulovym tukom
			if @KonZa > @KonPred
			begin
				select @KonPred=DATKONTR, @MlPred=MLIEKPR, @TukPred=PERCTUKU, @BielPred=PERCBIELK, @LaktPred=PERCLAKTOZ from PLIS.dbo.zotried_kontr where rowid = @counter1						
				-- prve kontroly s nulovym tukom
				if @PrvyTuk = 0
				begin
					set @PrvyTuk = 1
					if @PocKonNulTuk > 0
					begin
						update PLIS.dbo.CM_Kontroly set
							PERCTUKU = @TukPred,
							PERCBIELK = @BielPred,
							PERCLAKTOZ = @LaktPred,
							PRT = 1
						where CISKRAVY = @V_CISKRAVY and DATKONTR < @KonPred and PORPREBLAK = @V_PORPREBLAK						
						if @PocKonNulTuk > 2 
							-- nastavi priznak = nenormalna laktacia
							set @NenormalLakt = 1
						else
							if @PocKonNulTuk = 2 
							set @DvojDopocet = @DvojDopocet + 1															
						set @PocetPrepoctov = @PocetPrepoctov + 1
						set @PocKonNulTuk = 0							
					end
				end 
			end else
			-- nastav druhu kontrolu s nenulovym tukom				
			begin
				select @KonZa=DATKONTR, @MlZa=MLIEKPR, @TukZa=PERCTUKU, @BielZa=PERCBIELK, @LaktZa=PERCLAKTOZ from PLIS.dbo.zotried_kontr where rowid = @counter1										
				if @PocKonNulTuk > 0
				begin
					-- dopocty pre kontroly bez tuku medzi kontrolami s tukom
					update PLIS.dbo.CM_Kontroly set
						PERCTUKU = nullif((isnull(@TukPred, 0) + isnull(@TukZa, 0))/2, 0),
						PERCBIELK = nullif((isnull(@BielPred, 0) + isnull(@BielZa, 0))/2, 0),
						PERCLAKTOZ = nullif((isnull(@LaktPred, 0) + isnull(@LaktZa, 0))/2, 0),
						PRT = 1
					where CISKRAVY = @V_CISKRAVY and DATKONTR > @KonPred and DATKONTR < @KonZa and PORPREBLAK = @V_PORPREBLAK
					if @PocKonNulTuk > 2 
						-- nastavi priznak = nenormalna laktacia
						set @NenormalLakt = 1
					else
						if @PocKonNulTuk = 2 
						set @DvojDopocet = @DvojDopocet + 1														
					set @PocetPrepoctov = @PocetPrepoctov + 1
					set @PocKonNulTuk = 0						
				end
				
				set @KonPred = @KonZa
				--set @MlPred = @MlZa
				set @TukPred = @TukZa
				set @BielPred = @BielZa
				set @LaktPred = @LaktZa
			end
		end else
		
		-- kontrola nema hlaseny tuk
		begin
			set @PocKonNulTuk = @PocKonNulTuk + 1				
		end
	
		set @counter1 = @counter1 + 1
	end
	
	-- na konci zoznamu kontrol su este kontroly s nulovym tukom
	if @PocKonNulTuk > 0 and @PrvyTuk = 1
	begin
		update PLIS.dbo.CM_Kontroly set
			PERCTUKU = @TukPred,
			PERCBIELK = @BielPred,
			PERCLAKTOZ = @LaktPred,
			PRT = 1
		where CISKRAVY = @V_CISKRAVY and DATKONTR > @KonPred and LAKTDNI < 305 and PORPREBLAK = @V_PORPREBLAK
		if @PocKonNulTuk > 2 
			-- nastavi priznak = nenormalna laktacia
			set @NenormalLakt = 1
						else
		if @PocKonNulTuk = 2 
		set @DvojDopocet = @DvojDopocet + 1								
	end
	
	-- vacsi pocet prepoctov - nenormalna laktacia
	if @PocetPrepoctov > 3 or @DvojDopocet > 1
		set @NenormalLakt = 1		
	
---------------------------	
	-- PREPOCET KONTROL
	-- zmazanie docasnej tabulky PLIS.dbo.zotried_kontr ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zotried_kontr') drop table PLIS.dbo.zotried_kontr

	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne
	select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.zotried_kontr from PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc

	set @rowcount1 = (select count(*) from PLIS.dbo.zotried_kontr)
	set @counter1 = (select 2)
	set @PocetPrepoctov = 0
	
	while @counter1 <= @rowcount1
	begin
		-- kontrola pred		
		select @ChovPred=CISCHOVU, @SkupinaPred=SKUPINA, @KonPred=DATKONTR, @MlPred=isnull(MLIEKPR,0), @TukPred=isnull(PERCTUKU,0), @BielPred=isnull(PERCBIELK,0), @LaktPred=isnull(PERCLAKTOZ,0) from PLIS.dbo.zotried_kontr where rowid = @counter1-1
		-- kontrola za
		select @KonZa=DATKONTR, @MlZa=isnull(MLIEKPR,0), @TukZa=isnull(PERCTUKU,0), @BielZa=isnull(PERCBIELK,0), @LaktZa=isnull(PERCLAKTOZ,0) from PLIS.dbo.zotried_kontr where rowid = @counter1
		
		-- treba prepocet?
		if DATEDIFF(day, @KonPred, @KonZa) > 34
		begin
			-- treba prave 1 prepocet?
			if DATEDIFF(day, @KonPred, @KonZa) <= 70
			begin
				-- vypocet poloziek pre prepocet
				set @PrepocetDatum = DATEADD(day, ROUND(DATEDIFF(day, @KonPred, @KonZa)/2, 0), @KonPred)
				set @PrepocetMlieko = nullif(@MlPred + (@MlZa - @MlPred)/2, 0)
				set @PrepocetTuk = nullif(@TukPred + (@TukZa - @TukPred)/2, 0)
				set @PrepocetBielk =  nullif(@BielPred + (@BielZa - @BielPred)/2, 0)
				set @PrepocetLakt = nullif(@LaktPred + (@LaktZa - @LaktPred)/2, 0)
			
				-- vlozenie prepoctu do kontrol
				insert PLIS.dbo.CM_Kontroly (CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,
					   PERCTUKU,PERCBIELK,PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,PLATNOST)
				values (@V_CISKRAVY,@PrepocetDatum,null,null,null,@ChovPred,@SkupinaPred,1,null,@PrepocetMlieko,
						null,@PrepocetTuk,@PrepocetBielk,@PrepocetLakt,null,DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), @V_PORPREBLAK, 1)		
				-- chyba na vacsi pocet prepoctov - len do 305 dni		
				if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) < 305
					set @PocetPrepoctov = @PocetPrepoctov + 1
				
			end else
			-- treba 2 alebo viac prepoctov
			begin
				-- vypocet poloziek pre 1. prepocet
				set @PrepocetDatum = DATEADD(day, ROUND(DATEDIFF(day, @KonPred, @KonZa)/3, 0), @KonPred)
				set @PrepocetMlieko = nullif(@MlPred + (@MlZa - @MlPred)/3, 0)
				set @PrepocetTuk = nullif(@TukPred + (@TukZa - @TukPred)/3, 0)
				set @PrepocetBielk =  nullif(@BielPred + (@BielZa - @BielPred)/3, 0)
				set @PrepocetLakt = nullif(@LaktPred + (@LaktZa - @LaktPred)/3, 0)
			
				-- vlozenie prepoctu do kontrol
				insert PLIS.dbo.CM_Kontroly (CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,
					   PERCTUKU,PERCBIELK,PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,PLATNOST)
				values (@V_CISKRAVY,@PrepocetDatum,null,null,null,@ChovPred,@SkupinaPred,1,null,@PrepocetMlieko,
						null,@PrepocetTuk,@PrepocetBielk,@PrepocetLakt,null,DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), @V_PORPREBLAK, 1)					
				
				-- chyba na vacsi pocet prepoctov - pre pripad, ze sa len prvy prepocet vmesti do 305 dni
				if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) < 305
					set @PocetPrepoctov = @PocetPrepoctov + 1					
						
				-- vypocet poloziek pre 2. prepocet
				set @PrepocetDatum = DATEADD(day, ROUND(2*DATEDIFF(day, @KonPred, @KonZa)/3, 0), @KonPred)
				set @PrepocetMlieko = nullif(@MlPred + 2*(@MlZa - @MlPred)/3, 0)
				set @PrepocetTuk = nullif(@TukPred + 2*(@TukZa - @TukPred)/3, 0)
				set @PrepocetBielk =  nullif(@BielPred + 2*(@BielZa - @BielPred)/3, 0)
				set @PrepocetLakt = nullif(@LaktPred + 2*(@LaktZa - @LaktPred)/3, 0)
			
				-- vlozenie prepoctu do kontrol
				insert PLIS.dbo.CM_Kontroly (CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,
					   PERCTUKU,PERCBIELK,PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,PLATNOST)
				values (@V_CISKRAVY,@PrepocetDatum,null,null,null,@ChovPred,@SkupinaPred,1,null,@PrepocetMlieko,
						null,@PrepocetTuk,@PrepocetBielk,@PrepocetLakt,null,DATEDIFF(day, @V_DATOTEL, @PrepocetDatum), @V_PORPREBLAK, 1)		
				
				-- chyba na vacsi pocet prepoctov - len do 305 dni		
				if DATEDIFF(day,@V_DATOTEL, @PrepocetDatum) < 305
					-- nastavi priznak = nenormalna laktacia
					set @NenormalLakt = 1	
			end			
		end
			
		set @counter1 = @counter1 + 1
	end
	
	-- vacsi pocet prepoctov - nenormalna laktacia
	if @PocetPrepoctov > 2 
		set @NenormalLakt = 1		

-----------------------------------------------		
	-- TVORBA vety do NAPLAK-u (PLIS.dbo.CM_Naplak)
	-- zmazanie docasnej tabulky PLIS.dbo.zotried_kontr ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zotried_kontr') drop table PLIS.dbo.zotried_kontr

	-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne
	select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.zotried_kontr from PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY and PORPREBLAK = @V_PORPREBLAK order by DATKONTR asc

	set @rowcount1 = (select count(*) from PLIS.dbo.zotried_kontr)
	set @counter1 = (select 1)
	set @PocetPrepoctov = 0
	
	-- vynulovanie hodnot
	set @N_MLIEKCEL	= 0
	set @N_BIELKCEL	= 0
	set @N_TUKCEL	= 0
	set @N_LAKTOZAC	= 0		
	set @SUM_INTERVAL = 0		
	
	-- cyklus cez vsetky kontroly danej kravy
	while @counter1 <= @rowcount1
	begin
		-- nacitanie kontroly
		select @K_T_CISKRAVY =		CISKRAVY,
			   @K_T_DATKONTR =		DATKONTR,
			   @K_T_ZNKONTR =		ZNKONTR,
			   @K_T_DENDOBA =		DENDOBA, 
			   @K_T_INTERVAL =		INTERVAL,
			   @K_T_CISCHOVU =		CISCHOVU,
			   @K_T_SKUPINA =		SKUPINA, 
			   @K_T_PREPOCET =		PREPOCET,
			   @K_T_MLIEKO =		isnull(MLIEKO,0),
			   @K_T_MLIEKPR =		isnull(MLIEKPR,0),
			   @K_T_PRT =			PRT,
			   @K_T_PERCTUKU =		isnull(PERCTUKU,0),
			   @K_T_PERCBIELK =		isnull(PERCBIELK,0),
			   @K_T_PERCLAKTOZ =	isnull(PERCLAKTOZ,0),
			   @K_T_BUNECELEM =		isnull(BUNECELEM,0), 
			   @K_T_LAKTDNI =		LAKTDNI,
			   @K_T_PORPREBLAK =	PORPREBLAK
		from PLIS.dbo.zotried_kontr where rowid = @counter1
		
		-- riesenie prvej kontroly
		if @counter1 = 1
			set @K_T_LAKTDNI_Pred = (-@K_T_LAKTDNI)
		else
			set @K_T_LAKTDNI_Pred = (select LAKTDNI from PLIS.dbo.zotried_kontr where rowid = @counter1 - 1)			
		
		-- riesenie poslednej kontroly
		if @counter1 = @rowcount1
		begin
			set @K_T_LAKTDNI_Po = @K_T_LAKTDNI + 30
			-- nastavenie laktacnych dni v CM_Naplak-u
			set @N_LAKTDNI = @K_T_LAKTDNI + 15
			-- nastavenie datumu poslednej kontroly v CM_Krava
			set @KR_DATPOSKONT = @K_T_DATKONTR
		end	else
			set @K_T_LAKTDNI_Po = (select LAKTDNI from PLIS.dbo.zotried_kontr where rowid = @counter1 + 1)
		
		-- vypocet intervalu dni
		set @PRAC_INTERVAL = ROUND((@K_T_LAKTDNI - @K_T_LAKTDNI_Pred)/2 - 0.5, 0) + ROUND((@K_T_LAKTDNI_Po - @K_T_LAKTDNI)/2, 0)
		set @SUM_INTERVAL = @SUM_INTERVAL + @PRAC_INTERVAL
		
		-- nastavenie poloziek vety do CM_Naplak-u
		if @SUM_INTERVAL >= 100 and @SUM_INTERVAL - @PRAC_INTERVAL < 100
		begin
			set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 100))
			set @N_MLIEKO100 = @N_MLIEKCEL + @KontrVypMl
			set @N_TUK100 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100)
			set @N_BIELK100 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100)
			set @N_LAKT100 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100)
			set @N_LAKDNIN = 100
		end else
		if @SUM_INTERVAL >= 200 and @SUM_INTERVAL - @PRAC_INTERVAL < 200
		begin
			set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 200))
			set @N_MLIEKO200 = @N_MLIEKCEL + @KontrVypMl
			set @N_TUK200 = @N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100)
			set @N_BIELK200 = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100)
			set @N_LAKT200 = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100)
			set @N_LAKDNIN = 200
			-- index perzistencie
			set @N_INDPER = ((@N_MLIEKO200 - @N_MLIEKO100) * 100) / @N_MLIEKO100
		end else
		if @SUM_INTERVAL >= 305 and @SUM_INTERVAL - @PRAC_INTERVAL < 305
		begin
			set @KontrVypMl = @K_T_MLIEKPR * (@PRAC_INTERVAL -(@SUM_INTERVAL - 305))
			set @N_DATUKNORL = DATEADD(day, 305, (DATEADD(day, -@K_T_LAKTDNI, @K_T_DATKONTR)))
			set @N_LAKDNIN = 305
			set @N_MLIEKNOR = @N_MLIEKCEL + @KontrVypMl
			set @N_TUKNOR =	@N_TUKCEL + (@K_T_PERCTUKU * @KontrVypMl/100)
			set @N_BIELKNOR = @N_BIELKCEL + (@K_T_PERCBIELK * @KontrVypMl/100)
			set @N_LAKTOZAN = @N_LAKTOZAC + (@K_T_PERCLAKTOZ * @KontrVypMl/100)
		end

		-- vypocet kumulativnych hodnot
		set @KontrVypMl = @K_T_MLIEKPR * @PRAC_INTERVAL
		
		set @N_MLIEKCEL	= @N_MLIEKCEL + @KontrVypMl
		set @N_BIELKCEL	= @N_BIELKCEL + @K_T_PERCBIELK * @KontrVypMl/100
		set @N_TUKCEL	= @N_TUKCEL + @K_T_PERCTUKU * @KontrVypMl/100
		set @N_LAKTOZAC	= @N_LAKTOZAC + @K_T_PERCLAKTOZ * @KontrVypMl/100	
		
		set @counter1 = @counter1 + 1
	-- koniec cyklu
	end					
end
go

-- =============================================
-- Create date: <31.3.2014>
-- Description:	<Vkladá emaily pre jednotlivých chovateľov, nevkladá dve rovnaké adresy pod chovom v databázi v tabuľke NM_EmailChovy.>
-- =============================================
CREATE PROCEDURE Vloz_Emaily_Podla_Chovu (@p_chov varchar(9), @p_email varchar(50), @ret varchar(55) output) 
AS
declare @pocet_uz_existujucich_adries_v_db int;
BEGIN	
	set @pocet_uz_existujucich_adries_v_db = 0;	
	select @pocet_uz_existujucich_adries_v_db = COUNT(*) from NM_EmailChovy where CHOV = @p_chov and EMAIL = @p_email;	
	if (@pocet_uz_existujucich_adries_v_db <= 0) 
		begin
			insert into NM_EmailChovy values(@p_chov, @p_email);
			set @ret = 'Email bol vložený.';			
		end	
	else 
		begin
			set @ret = 'Vami zadaný email bol už raz vložený.';				
		end
END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-04-27
-- Description:	Aktualizovanie tabulku CM_KravyTDM datami z narodneho hodnotenia
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_KravyTDM_PLIS]
	@rok varchar(4),
	@mesiac varchar(2)

AS
BEGIN
TRUNCATE TABLE CM_KravyTDM

INSERT INTO CM_KravyTDM
SELECT
	   @rok
	  ,@mesiac
	  ,[KRAVA]
      ,[SPI]
      ,[REL]
      ,[M305]
      ,[RPHM]
      ,[T305]
      ,[RPHT]
      ,[B305]
      ,[RPHB]
  FROM [plis].[dbo].[CP_BLUP_KRAVYTDM]
END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-15
-- Description:	priprava dat pre blup HOL
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_HOL]
AS
BEGIN
declare 
	@CISKRAVY [varchar](14),
	@OTEC [varchar](15),
	@MATKA [varchar](15),
	@PORLAK[varchar](2),
	@ZMENA [varchar](2),
	@DATUMN [date],
	@DATOTEL [date],
	@DATKONTR [date],
	@CISCHOVU [varchar](9),
	@MLIEKO decimal(6,2),
	@TUK decimal(5,2),
	@TUKP decimal(5,2),
	@BIELK decimal(5,2),
	@BIELKP decimal(5,2),
	@SB decimal(5,2),
	@SCS decimal(5,2),
	@DNI decimal(5,2),
	@PL1 [varchar](2),
	@KR1 decimal(5,2),
	@PL2 [varchar](2),
	@KR2 decimal(5,2),
	@PL3 [varchar](2),
	@KR3 decimal(5,2),
	@PL4 [varchar](2),
	@KR4 decimal(5,2),
	@PL5 [varchar](2),
	@TYP [varchar](2),

	@P1 varchar(1),
	@P2 varchar(1),
	@P3 varchar(1),
	@P4 varchar(1),

	@HK decimal(4,1),
	@P varchar(2),
	@SKUPLE varchar(3),
	@VEKM int,
	@SEZONA int,
	@I int,
	@K int,
	@L int,
	@J int,
	@BODY int, 
	@FIXREG varchar(2)

	DECLARE db_cursor CURSOR FOR  
	SELECT top 100 
		CISKRAVY, OTEC, MATKA, PORLAK, ZMENA, DATUMN, DATOTEL, DATKONTR, CISCHOVU, MLIEKO, TUK, TUKP, BIELK, BIELKP, SB, SCS, DNI, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, TYP   
	FROM [CM_ZSTDM] 

	OPEN db_cursor
	FETCH NEXT FROM db_cursor INTO @CISKRAVY, @OTEC, @MATKA, @PORLAK, @ZMENA, @DATUMN, @DATOTEL, @DATKONTR, @CISCHOVU, @MLIEKO, @TUK, @TUKP, @BIELK, @BIELKP, @SB, @SCS, @DNI, @PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, @TYP   

	WHILE @@FETCH_STATUS = 0   
	BEGIN  
		
		set	@P1 = case when @PL1 = 'MB' then 'S'
					   when @PL1 = 'CH' then ' '
					   else @PL1 end

		set @p2 = @PL2
		set @p3 = @PL3
		set @p4 = @PL4

		set @HK = case when @PL1 in ('H', 'R', 'N', 'F') and (@KR1 = 0) then 100
					   else case when @PL1 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR1 + 
							case when @PL2 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR2 + 
							case when @PL3 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR3 + 
							case when @PL4 in ('H', 'R', 'N', 'F') then 1 else 0 end * @KR4 end

		set @P = case when @P1 in ('P', 'S') then
					  case when (@KR1 >= 87.5 OR @KR1 = 0) then @P1 + '0'
						   when (@KR1 between 75 AND 87.49) then @P1 + '1'
						   when (@KR1 between 50 AND 74.9) then @P1 + '2'
						   else @P1 + 'X' end
					  when @HK >= 93.75 then 'H0'
					  when @HK between 87.5 AND 93.74 then 'H1'
					  when @HK between 75 AND 87.49 then 'H2'
					  when @HK between 50 AND 74.9 then 'H3'
					  when @P1 = 'A' AND @KR1 = 50 AND @P2 = 'P' AND @KR2 = 50 then 'P3' end

		set @SKUPLE = case when @TYP in ('H0', 'H1', 'H2', 'H3') then 'HOL'
								   when @TYP in ('S0', 'S1', 'S2') then 'STR'
								   else 'PIN' end

		set @VEKM = DATEDIFF(MONTH, @DATUMN, @DATOTEL)

		set @SEZONA = case when DATEPART(MONTH, @DATOTEL) between 4 and 9 then 1 else 2 end

		set @I = case when @TYP in ('H0', 'S0', 'P0') then 1
						when @TYP in ('H1', 'S1', 'P1') then 2
						when @TYP in ('H2', 'S2', 'P2') then 3
						when @TYP = 'H3' then 4 end

		set @K = case when @SEZONA = 1 then 1 
					  when @SEZONA = 2 then 2 end

		set @L = case when @PORLAK = '01' then 1
						when @PORLAK = '02' then 2
						when @PORLAK = '03' then 3 end

		set @J = case when @SKUPLE = 'HOL' AND @PORLAK = '01' then
						case when @VEKM < 27 then 1
								when @VEKM between 27 and 30 then 2
								when @VEKM > 30 then 3 end
						when @SKUPLE = 'HOL' AND @PORLAK = '02' then
						case when @VEKM < 41 then 1
								when @VEKM between 41 and 45 then 2
								when @VEKM > 45 then 3 end
						when @SKUPLE = 'HOL' AND @PORLAK = '03' then
						case when @VEKM < 54 then 1
								when @VEKM between 54 and 59 then 2
								when @VEKM > 59 then 3 end
						when @SKUPLE = 'STR' AND @PORLAK = '01' then
						case when @VEKM < 30 then 1
								when @VEKM between 30 and 34 then 2
								when @VEKM > 34 then 3 end
						when @SKUPLE = 'STR' AND @PORLAK = '02' then
						case when @VEKM < 43 then 1
								when @VEKM between 43 and 47 then 2
								when @VEKM > 47 then 3 end
						when @SKUPLE = 'STR' AND @PORLAK = '03' then
						case when @VEKM < 56 then 1
								when @VEKM between 56 and 61 then 2
								when @VEKM > 61 then 3 end
						when @SKUPLE = 'PIN' AND @PORLAK = '01' then
						case when @VEKM < 34 then 1
								when @VEKM between 34 and 37 then 2
								when @VEKM > 37 then 3 end
						when @SKUPLE = 'PIN' AND @PORLAK = '02' then
						case when @VEKM < 47 then 1
								when @VEKM between 47 and 51 then 2
								when @VEKM > 51 then 3 end
						when @SKUPLE = 'PIN' AND @PORLAK = '03' then
						case when @VEKM < 60 then 1
								when @VEKM between 60 and 65 then 2
								when @VEKM > 65 then 3 end end
		
		set @BODY = case when @SKUPLE = 'HOL' then ((@L - 1) * 24 + (@I - 1) * 6 + (@J - 2) * 2 + @K)
											  else ((@L - 1) * 18 + (@I - 1) * 6 + (@J - 2) * 2 + @K) end

		

		FETCH NEXT FROM db_cursor INTO @CISKRAVY, @OTEC, @MATKA, @PORLAK, @ZMENA, @DATUMN, @DATOTEL, @DATKONTR, @CISCHOVU, @MLIEKO, @TUK, @TUKP, @BIELK, @BIELKP, @SB, @SCS, @DNI, @PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, @TYP   
	END   

	CLOSE db_cursor 
	DEALLOCATE db_cursor

END
go



-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 18.10.2011
-- Description:	Vypocet 100 a 200 dnovych usekov v CM_Laktacie
-- =============================================
CREATE PROCEDURE [dbo].[C_migracia_Laktacie_Prepocet_100_200] 

AS
BEGIN
 -- premenne pre vetu do Laktacieu (PLIS.dbo.CM_Laktacie)
	declare	@N_CISKRAVY varchar(14)
	declare	@N_CHOVATEL varchar(9) 
	declare	@N_PORLAK varchar(2) 
	declare	@N_DATOTEL date 
	declare	@N_CHOVOTEL varchar(9) 
	declare	@N_CHOVLAKT varchar(9) 
	declare	@N_PRIEBPOROD varchar(1) 
	declare	@N_POHLAVIE varchar(2) 
	declare	@N_ZMENA varchar(2) 
	declare	@N_DATUKONL date 
	declare	@N_DATUKNORL date 
	declare	@N_MEDZIOBD [decimal](6,2)  
	declare	@N_HMOTKR [decimal](6,2)  
	declare	@N_LAKTDNI [decimal](6,2)  
	declare	@N_LAKDNIN [decimal](6,2)  
	declare	@N_MLIEKCEL [decimal](7,2)  
	declare	@N_MLIEKNOR [decimal](7,2)  
	declare	@N_TUKCEL [decimal](6,2)  
	declare	@N_TUKNOR [decimal](6,2)  
	declare	@N_BIELKCEL [decimal](6,2)  
	declare	@N_BIELKNOR [decimal](6,2)  
	declare	@N_LAKTOZAC [decimal](6,2)  
	declare	@N_LAKTOZAN [decimal](6,2)  
	declare	@N_INDPER [decimal](5,2)  
	declare	@N_INDLAK [decimal](6,2)  
	declare	@N_CHARUST varchar(1) 
	declare	@N_MAXLAK varchar(1) 
	declare	@N_ZNAK varchar(1) 
	declare	@N_BEZT [decimal](6,2)  
	declare	@N_MLIEKO100 [decimal](7,2)  
	declare	@N_TUK100 [decimal](6,2)  
	declare	@N_BIELK100 [decimal](6,2)  
	declare	@N_LAKT100 [decimal](6,2)  
	declare	@N_MLIEKO200 [decimal](7,2)  
	declare	@N_TUK200 [decimal](6,2)  
	declare	@N_BIELK200 [decimal](6,2)  
    declare @N_LAKT200 [decimal](6,2)  
    -----------------------------------------------
    declare @counter int
    declare @rowcount int
    declare @id_arch bigint
    declare @V_CISKRAVY varchar(14)
    declare @NenormalLakt bit
    -- zmazanie docasnej tabulky PLIS.dbo.nesprac_Laktacie ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'nesprac_Laktacie') drop table PLIS.dbo.nesprac_Laktacie

	-- vyber  z CM_Laktacie
	select *, ROW_NUMBER() over(order by ciskravy) as rowid into PLIS.dbo.nesprac_Laktacie from PLIS.dbo.CM_Laktacie 
	-- len na testovanie: where CHOVATEL = '710513011'

	set @rowcount = (select count(*) from PLIS.dbo.nesprac_Laktacie_migr)
	set @counter = (select 1)

	-- cyklus cez vsetky riadky tabulky VstupyPLIS.dbo.nesprac_RP
	while @counter <= @rowcount
	begin
	-- vynulovanie premennych
        set @N_MLIEKO100 = NULL
		set @N_TUK100 = NULL
		set @N_BIELK100 = NULL
		set @N_LAKT100 = NULL
		set @N_MLIEKO200 = NULL
		set @N_TUK200 = NULL
		set @N_BIELK200 = NULL
		set @N_LAKT200 = NULL
-- nacitanie dat z CM_Laktacie
	select @N_CISKRAVY = CISKRAVY,@N_PORLAK = PORLAK,@N_DATOTEL = DATOTEL from PLIS.dbo.nesprac_Laktacie where rowid = @counter				
				
-- procedura, ktora prepocita kontroly a hodnoty laktacie (pre CM_Laktacie, CM_Naplak)
	exec PLIS.dbo.C_aktual_prep_laktacie_migr @N_CISKRAVY, @N_DATOTEL, @N_PORLAK, 
			@N_DATUKNORL output, @N_LAKTDNI output, @N_LAKDNIN output, @N_MLIEKCEL output, @N_MLIEKNOR output,
			@N_TUKCEL output, @N_TUKNOR output, @N_BIELKCEL output,	@N_BIELKNOR output, @N_LAKTOZAC output,
			@N_LAKTOZAN output, @N_INDPER output, @N_BEZT output, @N_MLIEKO100 output, @N_TUK100 output, @N_BIELK100 output,
			@N_LAKT100 output, @N_MLIEKO200 output, @N_TUK200 output, @N_BIELK200 output, @N_LAKT200 output,
			@NenormalLakt output

	 
-- zapis do CM_Laktacie-u				
	update PLIS.dbo.CM_Laktacie set 
		MLIEKO100 = @N_MLIEKO100,
		TUK100 = @N_TUK100,
		BIELK100 = @N_BIELK100,
		LAKT100 = @N_LAKT100,
		MLIEKO200 = @N_MLIEKO200,
		TUK200 = @N_TUK200,
		BIELK200 = @N_BIELK200,
		LAKT200 = @N_LAKT200
		where CISKRAVY = @N_CISKRAVY
		set @counter = @counter + 1	
--		print @N_CISKRAVY
	end				
end
------------------------------------------------------------------------------------------------------------------------------------

go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 09.06.2016
-- Description:	Data pre reporty pre Prvotny Zoznam a Prvotny Zoznam Rosireny
-- =============================================
CREATE PROCEDURE [dbo].[S_Zostava_PrvotnyZoznam]
(
	@chov [varchar](9),	
	@RokEv1 [varchar] (4),
	@RokEv2 [varchar] (2),

	@sortColumn [varchar] (32),
	@sortASC [varchar] (5)
)	
AS
BEGIN


--declare @chov varchar(9) = '302504086'
--declare @rokev1 varchar(4) = '2015'
--declare @rokev2 varchar(2) = '16'


	--declare @sel varchar(2000) = ('
	select  
	k.LUC, k.CEHZ, DATOBAH, BPORCIS as bPORCIS, BCEHZ as bCEHZ, k.BPLEM as bPLEM, 
	p.VISAC as pPORCIS, p.POHL as pPOHL, p.LUC as pLUC, p.CEHZ as pCEHZ, 
	p.DATVAZ as pDATVAZ, p.HMVAZ as pHMVAZ
	--k.LUC, k.CEHZ, DATOBAH, BPORCIS as baranPORCIS, BCEHZ as baranCEHZ, k.BPLEM as baranPLEM, 
	--p.VISAC as potomokPORCIS, p.POHL as potomokPOHL, p.LUC as potomokLUC, p.CEHZ as potomokCEHZ, 
	--p.DATVAZ as potomokDATVAZ, p.HMVAZ as potomokHMVAZ
	--case when k.ID_KonZapBaran is not null then b.BPLEM else k.BPLEM end as BPLEM, 
	from SM_KonZap k
	left outer join SM_KonZapBaran b on b.id = k.ID_KonZapBaran
	left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
	where 
	k.ROKEV1 + k.ROKEV2 = '' + @rokEv1 + @rokEv2 + ''
	and k.KROKR + k.PODNIK + k.STADO in (select spchov from SM_SpoJChov where chov = @chov)
	--order by ')  + @sortColumn  + @sortASC
	
	--exec @sel



END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_22A]
    @rok varchar(4)
as
begin

	
	select distinct Por_podniku,Okres

	from dbo.Roc_MLHD_Tab_22 as z
	--left outer join plis.dbo.Roc_MLHD_Tab_22 t on z.Okres=t.Okres 
	where z.rok = @rok order by Okres
	end
go


-- ZMENENE 09.04.2015
-- ZMENENE 10.04.2015
CREATE PROCEDURE [dbo].[C_aktual_prepocMasoveVazenia]
AS
BEGIN
--	update CM_Vazenia set HMOTPREPOC=null, DNIPREPOC=null,DNIVAZ=null, PRIRPREPOC=null, PRIR=null, ZIVPRIR=null, ZIVPRIRPREPOC=null;
	declare @dh as int;
	declare @ph as int;
	declare @hh as int;
	declare @datum1 as datetime;  --helping for remembering last date for conrols
	declare @kg as float;
	declare @DD1 as int;
	declare @DD3 as int
	declare @prirastok as float;
	declare @day as int;
	DECLARE @CHOMT AS FLOAT;
	DECLARE @ZIVPRIRPREPOC AS FLOAT;
	DECLARE @PRIRPREPOC AS FLOAT;
	DECLARE @ZIVPRIR AS FLOAT;
	DECLARE @hmotprepocpredos AS FLOAT;
	declare @hmot as float;
	declare @hmot2 as float;
	declare @hmotnar as float;
	declare @v as int;
	declare @dniprepoc as int;
	declare @d as datetime;    --datum kontroly
	declare @t as varchar(14);
	declare @rastpas as varchar(1); --char
	DECLARE @DN AS DATETIME;    -- datum narodeniny
	declare @vaha as float;
	DECLARE @DD AS INT;
	DECLARE @DniVaz2 AS INT;
	Declare @Dpk as int;
	declare @Vpk as float;
	declare telata cursor  for 
	select distinct CISTELATA
	from CM_Vazenia
	open telata
	fetch next from telata into @t;
	WHILE @@FETCH_STATUS = 0 
			BEGIN			
			set @DN=(select TOP 1 datnar from CM_Telata where CISTELATA=@t);
			set @hmot=(select TOP 1 hmotnar from CM_Telata where CISTELATA=@t);
			set @hmotnar=@hmot;
						declare vaj cursor for
						select DATVAZ,HMOT
						from CM_Vazenia
						where CISTELATA=@t and hmot!= 0;
						open vaj
						fetch next from vaj into @d,@v;
						while @@FETCH_STATUS=0
						begin			
							set @DniVaz2=datediff(day,@DN,@d);
							update CM_Vazenia
							set DNIVAZ=@DniVaz2,
								DNIPREPOC=(SELECT TOP 1 PREPHOD FROM CC_VAZINTERVAL WHERE 
								@DniVaz2 BETWEEN DH AND HH)
							where DATVAZ=@d and CISTELATA=@t;
							fetch next from vaj into @d,@v;
							end
						close vaj 
						deallocate vaj;
					declare @i int;
					declare @y int;
					set @i=0;
					set @y=0;
					
					declare vaj1 cursor for
					select DATVAZ,HMOT,DNIVAZ,DNIPREPOC,RASTPAS
					from CM_Vazenia
					where CISTELATA=@t and hmot!= 0;
					open vaj1
					fetch next from vaj1 into @d,@v,@dd, @dniprepoc,@rastpas;
					while @@FETCH_STATUS=0					
					begin						
						declare hranice cursor for
						select DH,PREPHOD,HH
						from CC_VAZINTERVAL
						open hranice
						fetch next from hranice into @dh,@ph,@hh
						while @@FETCH_STATUS=0
						begin	
								if(@hmot is null) 
									begin 
									set @hmot=35;
									end					
								if(@hmotnar is null) 
									begin 
									set @hmot=35;
									end
									
								if(@dh<=@dd and @dd<=@hh)
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/(@DD1-@Dpk))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/@DD1)*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/@DD1)*1000);
									set @hmot=@v;								
								end
							
								set @ZIVPRIRPREPOC=(((@CHOMT-@hmotnar)/@dniprepoc)*1000);
								if(@ph='120' and @CHOMT>0)
								begin			
									set @hmotprepocpredos=@hmotnar;
									set @dniprepoc=0;	
									set @hmot2=@hmotnar;	
									set @DD3=0;							
								end	
								-- if(@ph='210' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<210 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								-- if(@ph='365' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<365 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								-- if(@ph='500' and @CHOMT>0)
								-- begin											
									-- declare predos_prepoc cursor for
									-- SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									-- FROM CM_Vazenia
									-- WHERE CISTELATA=@t AND DNIPREPOC<500 ORDER BY DATVAZ DESC
									-- open predos_prepoc
									-- fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									-- close predos_prepoc
									-- deallocate predos_prepoc;
								-- end
								if ((@ph='210' or @ph='365' or @ph='500') and @CHOMT>0)
									begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM CM_Vazenia
									WHERE CISTELATA = @t AND DNIPREPOC < @ph ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if (@hmotprepocpredos is not null and @dniprepoc is not null)
								begin
									set @PRIRPREPOC=(((@CHOMT-@hmotprepocpredos)/(@ph-@dniprepoc))*1000);
									--set @prirastok=((@hmot - @hmot2)/(@dd -  @dd3))*1000;	--POVODNE
								end
								else begin
									if (@ph is not null and @ph>0)
									begin 
									  set @PRIRPREPOC=(((@CHOMT - @hmotnar)/@ph)*1000);
									end								
								end																
								if ((@ph='120' or @ph='210' or @ph='365') and (@dniprepoc is not null) and
									(Select COUNT(DISTINCT CISTELATA) FROM CM_Vazenia where (select TOP 1 PL1 from CM_Telata where CISTELATA=@t) 
									in (select KODPL from CC_NormyMP) AND CISTELATA=@t)>=1
									)
								begin
									--set	@RASTPAS=null;
									if (@CHOMT > (Select HMOTA FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='A';
										end
									if (@CHOMT > (Select TOP 1 HMOTB FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND
										DNIVAZ=@ph) 
										and 
										@CHOMT < (Select TOP 1 HMOTA FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='B';
										end
									 if (@CHOMT < (Select TOP 1 HMOTB FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										AND
										@CHOMT > (Select TOP 1 HMOTC FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										)
										begin
											set @rastpas='C';
										end
								end

								if(@prirastok is not null and @CHOMT > 0)
								begin
									update CM_Vazenia 
									set HMOTPREPOC=@CHOMT,DNIPREPOC=@ph,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, PRIRPREPOC=@PRIRPREPOC, ZIVPRIRPREPOC=@ZIVPRIRPREPOC, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
									set @hmotprepocpredos=null;
									set	@dniprepoc=null;
								end

								if (@ph='500' and (select PRIR from CM_Vazenia where CISTELATA=@t and DATVAZ = @d) is null )
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/(@DD1-@Dpk))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/@DD1)*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/@DD1)*1000);
									set @hmot=@v;
									
									update CM_Vazenia 
									set HMOTPREPOC=@CHOMT,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
								end
								set @CHOMT=0;
							fetch next from hranice into @dh,@ph,@hh
						end
						set @Vpk=@hmot;
						set @Dpk=@DD1;
						set @DD1=NUll;
						close hranice
						deallocate hranice
					fetch next from vaj1 into @d,@v,@dd, @dniprepoc,@rastpas;
					end
					close vaj1;
					deallocate vaj1;
					set @i=@i+1;
				set @Vpk=null;
				set @Dpk=NUll;
				fetch next from telata into @t;
			end
	close telata;
	deallocate telata; 
END


go

-- =============================================
-- Author:		David Florek
-- Create date:	06.11.2017
-- Description:	Prepocita percenta ketolatok a exportuje.
-- =============================================
CREATE PROCEDURE [dbo].[CM_Keto_SpracujExport]
AS
BEGIN
	if(OBJECT_ID('tempdb..#exporty') is not null)
		drop table #exporty;

	select distinct CHOV, CAST(DATKONTR as date) as DATUM into #exporty from CM_Rozbory where oa is not null and oaPerc is null and LaktDni <= 100;

	declare @chov varchar(9), @datum date;
	declare exportKurzor cursor
	for select CHOV, DATUM from #exporty;

	open exportKurzor
	fetch next from exportKurzor into @chov, @datum;
	while @@FETCH_STATUS = 0 
	begin
		exec CM_Keto_prepocet_percent @chov, @datum;
		exec C_Export_ketolatky_csv @chov, @datum;
		fetch next from exportKurzor into @chov, @datum;
	end

	close exportKurzor;
	deallocate exportKurzor;
	drop table #exporty;
END
go


/***masova rocenka - clenenie velkosti chovov podla poctu narodenych teliat 
Masova rocenka 2017 - str.31**/
CREATE procedure [dbo].[Roc_MPHD_3]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_3 where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

declare @chovy table
	(
	pocet_teliat int,
	chov varchar(14)
	)

insert into @chovy (pocet_teliat, chov)
	select count(t.cistelata) as pocet_teliat, t.chovnar as chov 
		from CM_Telata as t
		left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVNAR
			where DATNAR >= @datumOd and DATNAR <= @datumDo
				and t.PRIZNAKKU = '2'
				and ch.TYPZV= 1
					and ch.chov not in ('010','700', '699') 
					and left(ch.chov,1) ='7'
					and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
		group by CHOVNAR

declare @prehlad table
(
	do_10 int, 
	do_29 int, 
	do_49 int,
	do_69 int,
	do_89 int,
	do_109 int,
	do_129 int,
	do_149 int,
	nad_150 int,
	spolu int,
	pocet_teliat_do_10 int,
	pocet_teliat_do_29 int, 
	pocet_teliat_do_49 int, 
	pocet_teliat_do_69 int,
	pocet_teliat_do_89 int,
	pocet_teliat_do_109 int,
	pocet_teliat_do_129 int,
	pocet_teliat_do_149 int,
	pocet_teliat_nad_150 int
)

insert into @prehlad 
	(
	do_10 , do_29, do_49, do_69, do_89, do_109,do_129, do_149,
	nad_150, spolu,pocet_teliat_do_10, pocet_teliat_do_29,pocet_teliat_do_49, pocet_teliat_do_69 ,
	pocet_teliat_do_89, pocet_teliat_do_109,pocet_teliat_do_129, pocet_teliat_do_149,pocet_teliat_nad_150
	)
select 
	sum(case when pocet_teliat < 10 then 1 else 0 end) as do_10,
	sum(case when pocet_teliat >= 10 and pocet_teliat < 30  then 1 else 0 end) as do_29,
	sum(case when pocet_teliat >= 30 and pocet_teliat < 50  then 1 else 0 end) as do_49,
	sum(case when pocet_teliat >= 50 and pocet_teliat < 70  then 1 else 0 end) as do_69,
	sum(case when pocet_teliat >= 70 and pocet_teliat < 90  then 1 else 0 end) as do_89,
	sum(case when pocet_teliat >= 90 and pocet_teliat < 110  then 1 else 0 end) as do_109,
	sum(case when pocet_teliat >= 110 and pocet_teliat < 130  then 1 else 0 end) as do_129,
	sum(case when pocet_teliat >= 130 and pocet_teliat < 150  then 1 else 0 end) as do_149,
	sum(case when pocet_teliat >= 150  then 1 else 0 end) as nad_150,
	count(pocet_teliat) as spolu,

	sum(case when pocet_teliat < 10 then pocet_teliat end) as pocet_teliat_do_10,
	sum(case when pocet_teliat >= 10 and pocet_teliat < 30 then pocet_teliat end) as pocet_teliat_do_29,
	sum(case when pocet_teliat >= 30 and pocet_teliat < 50 then pocet_teliat end) as pocet_teliat_do_49,
	sum(case when pocet_teliat >= 50 and pocet_teliat < 70 then pocet_teliat end) as pocet_teliat_do_69,
	sum(case when pocet_teliat >= 70 and pocet_teliat < 90 then pocet_teliat end) as pocet_teliat_do_89,
	sum(case when pocet_teliat >= 90 and pocet_teliat < 110 then pocet_teliat end) as pocet_teliat_do_109,
	sum(case when pocet_teliat >= 110 and pocet_teliat < 130 then pocet_teliat end) as pocet_teliat_do_129,
	sum(case when pocet_teliat >= 130 and pocet_teliat < 150 then pocet_teliat end) as pocet_teliat_do_149,
	sum(case when pocet_teliat >= 150  then pocet_teliat end) as pocet_teliat_nad_150
from @chovy


--declare @tab_3 table
--------create table Roc_MPHD_Tab_3
--(
--perc_do_10 float,
--perc_do_29 float,
--perc_do_49 float,
--perc_do_69 float,
--perc_do_89 float,
--perc_do_109 float,
--perc_do_129 float,
--perc_do_149 float,
--perc_nad_150 float,
--teliat_do_10 int,
--teliat_do_29 int,
--teliat_do_49 int,
--teliat_do_69 int,
--teliat_do_89 int,
--teliat_do_109 int,
--teliat_do_129 int,
--teliat_do_149 int,
--teliat_nad_150 int,
--rok int
--)

insert into /*@tab_3*/ Roc_MPHD_Tab_3
	(
	perc_do_10, perc_do_29, perc_do_49, perc_do_69, perc_do_89 , perc_do_109, perc_do_129, perc_do_149, perc_nad_150,
	teliat_do_10, teliat_do_29, teliat_do_49, teliat_do_69, teliat_do_89, teliat_do_109, teliat_do_129, teliat_do_149, teliat_nad_150, rok
	)

	Select 
		cast((do_10 * 100.0 / spolu) as decimal(6,2))  as perc_do_10,
		cast((do_29 * 100.0 / spolu) as decimal(6,2))  as perc_do_29,
		cast((do_49 * 100.0 / spolu) as decimal(6,2)) as perc_do_49,
		cast((do_69 * 100.0 / spolu) as decimal(6,2)) as perc_do_69,
		cast((do_89 * 100.0 / spolu) as decimal(6,2)) as perc_do_89,
		cast((do_109 * 100.0 / spolu) as decimal(6,2)) as perc_do_109,
		cast((do_129 * 100.0 / spolu) as decimal(6,2)) as perc_do_129,
		cast((do_149 * 100.0 / spolu) as decimal(6,2)) as perc_do_149,
		cast((nad_150 * 100.0 / spolu) as decimal(6,2)) as perc_nad_150,
		pocet_teliat_do_10 / do_10 as teliat_do_10,
		pocet_teliat_do_29 / do_29 as teliat_do_29,
		pocet_teliat_do_49 / do_49 as teliat_do_49,
		pocet_teliat_do_69 / do_69 as teliat_do_69,
		pocet_teliat_do_89 / do_89 as teliat_do_89,
		pocet_teliat_do_109 / do_109 as teliat_do_109,
		pocet_teliat_do_129 / do_129 as teliat_do_129,
		pocet_teliat_do_149 / do_149 as teliat_do_149,
		pocet_teliat_nad_150 / nad_150 as teliat_nad_150,
		datepart(year, @datumOd) as rok
		--pocet_teliat_do_10,
		--pocet_teliat_do_29,
		--pocet_teliat_do_49,
		--pocet_teliat_do_69,
		--pocet_teliat_do_89,
		--pocet_teliat_do_109,
		--pocet_teliat_do_129,
		--pocet_teliat_do_149,
		--pocet_teliat_nad_150
	from @prehlad

	--select * from @tab_3

end
go





-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 18.10.2011
-- Description:	Vypocet 100 a 200 dnovych usekov v Naplaku
-- =============================================
CREATE PROCEDURE [dbo].[C_migracia_Naplak_Prepocet_100_200_old] 

AS
BEGIN
 -- premenne pre vetu do naplaku (PLIS.dbo.CM_Naplak)
	declare	@N_CISKRAVY varchar(14)
	declare	@N_CHOVATEL varchar(9) 
	declare	@N_PORLAK varchar(2) 
	declare	@N_DATOTEL date 
	declare	@N_CHOVOTEL varchar(9) 
	declare	@N_CHOVLAKT varchar(9) 
	declare	@N_PRIEBPOROD varchar(1) 
	declare	@N_POHLAVIE varchar(2) 
	declare	@N_ZMENA varchar(2) 
	declare	@N_DATUKONL date 
	declare	@N_DATUKNORL date 
	declare	@N_MEDZIOBD [decimal](6,2)  
	declare	@N_HMOTKR [decimal](6,2)  
	declare	@N_LAKTDNI [decimal](6,2)  
	declare	@N_LAKDNIN [decimal](6,2)  
	declare	@N_MLIEKCEL [decimal](7,2)  
	declare	@N_MLIEKNOR [decimal](7,2)  
	declare	@N_TUKCEL [decimal](6,2)  
	declare	@N_TUKNOR [decimal](6,2)  
	declare	@N_BIELKCEL [decimal](6,2)  
	declare	@N_BIELKNOR [decimal](6,2)  
	declare	@N_LAKTOZAC [decimal](6,2)  
	declare	@N_LAKTOZAN [decimal](6,2)  
	declare	@N_INDPER [decimal](5,2)  
	declare	@N_INDLAK [decimal](6,2)  
	declare	@N_CHARUST varchar(1) 
	declare	@N_MAXLAK varchar(1) 
	declare	@N_ZNAK varchar(1) 
	declare	@N_BEZT [decimal](6,2)  
	declare	@N_MLIEKO100 [decimal](7,2)  
	declare	@N_TUK100 [decimal](6,2)  
	declare	@N_BIELK100 [decimal](6,2)  
	declare	@N_LAKT100 [decimal](6,2)  
	declare	@N_MLIEKO200 [decimal](7,2)  
	declare	@N_TUK200 [decimal](6,2)  
	declare	@N_BIELK200 [decimal](6,2)  
    declare @N_LAKT200 [decimal](6,2)  
    -----------------------------------------------
    declare @counter int
    declare @rowcount int
    declare @id_arch bigint
    declare @V_CISKRAVY varchar(14)
    declare @NenormalLakt bit
    -- zmazanie docasnej tabulky PLIS.dbo.nesprac_Naplak ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'nesprac_Naplak') drop table PLIS.dbo.nesprac_Naplak

	-- vyber  z CM_Naplak
	select *, ROW_NUMBER() over(order by ciskravy) as rowid into PLIS.dbo.nesprac_Naplak from PLIS.dbo.CM_Naplak 
	-- len na testovanie: where CHOVATEL = '710513011'

	set @rowcount = (select count(*) from PLIS.dbo.nesprac_Naplak)
	set @counter = (select 1)

	-- cyklus cez vsetky riadky tabulky VstupyPLIS.dbo.nesprac_RP
	while @counter <= @rowcount
	begin
	-- vynulovanie premennych
        set @N_MLIEKO100 = NULL
		set @N_TUK100 = NULL
		set @N_BIELK100 = NULL
		set @N_LAKT100 = NULL
		set @N_MLIEKO200 = NULL
		set @N_TUK200 = NULL
		set @N_BIELK200 = NULL
		set @N_LAKT200 = NULL
-- nacitanie dat z CM_Naplak
	select @N_CISKRAVY = CISKRAVY,@N_PORLAK = PORLAK,@N_DATOTEL = DATOTEL from PLIS.dbo.nesprac_Naplak where rowid = @counter				
				
-- procedura, ktora prepocita kontroly a hodnoty laktacie (pre CM_Laktacie, CM_Naplak)
	exec PLIS.dbo.C_aktual_prep_laktacie_old @N_CISKRAVY, @N_DATOTEL, @N_PORLAK, 
			@N_DATUKNORL output, @N_LAKTDNI output, @N_LAKDNIN output, @N_MLIEKCEL output, @N_MLIEKNOR output,
			@N_TUKCEL output, @N_TUKNOR output, @N_BIELKCEL output,	@N_BIELKNOR output, @N_LAKTOZAC output,
			@N_LAKTOZAN output, @N_INDPER output, @N_MLIEKO100 output, @N_TUK100 output, @N_BIELK100 output,
			@N_LAKT100 output, @N_MLIEKO200 output, @N_TUK200 output, @N_BIELK200 output, @N_LAKT200 output,
			@NenormalLakt output

	 
-- zapis do CM_Naplak-u				
	update PLIS.dbo.CM_Naplak set 
		MLIEKO100 = @N_MLIEKO100,
		TUK100 = @N_TUK100,
		BIELK100 = @N_BIELK100,
		LAKT100 = @N_LAKT100,
		MLIEKO200 = @N_MLIEKO200,
		TUK200 = @N_TUK200,
		BIELK200 = @N_BIELK200,
		LAKT200 = @N_LAKT200
		where CISKRAVY = @N_CISKRAVY
		set @counter = @counter + 1	
--		print @N_CISKRAVY
	end				
end
------------------------------------------------------------------------------------------------------------------------------------


go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[C_VyberKontrolu] 
as	
BEGIN
	
	SET NOCOUNT ON;

    -- Insert statements for procedure here
declare @counter int;
declare @rowcount int;
declare @x varchar(14);
declare @sb1 int; 
declare @i int;
declare @TABV table
        (datkontr date,
         ciskravy varchar, 
         sb int) ;

set @i = 0;
set @sb1 = 0;
set @rowcount = (select count(*) from PLIS.dbo.CM_Kontroly)
set @counter = (select 1)
set @X = (select top 1  ciskravy  from CM_Kontroly
          group by CISKRAVY, DATKONTR 
          order by ciskravy, DATKONTR )     
print @x	
END

go


/***masova rocenka - narodene telata v kontrolnom roku - podla plemien
 Masova rocenka 2017 - str.30**/
 CREATE procedure [dbo].[Roc_MPHD_2_plemTYP]
	
	@datumOd date ,
	@datumDo date 

as 
begin
delete from Roc_MPHD_Tab_2_plemTYP where rok = DATEPART(YEAR, @datumOd)

--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30'

	declare @telata_plem table
		(
		cistelata varchar(14),
		pohlavie varchar(2),
		typplem varchar(3)
		)

	insert into @telata_plem (cistelata, pohlavie,typplem)
	select t.CISTELATA, t.POHLAVIE, t.TYPPLEM
	from CM_Telata as t
		 --left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVNAR
	where DATNAR >= @datumOd and DATNAR <= @datumDo
		and PRIZNAKKU = '2'
		and TYPPLEM in (--'101','102','103','104','105',	---- BBM
						'111','112','113','114','115',		---- AA
						'121','122','123','124','125',		---- BdA
						'131',								---- Gal
						'141','142','143','144','145',		---- Hem
						'151',								---- High
						'161','162','163','164','165',		---- Char
						'171','172','173','174','175',		---- Lim
						--'181',							---- SDM
						'201','202','203','204','205',		---- Sim_maso
						--'191','192','193','194','195',	---- Piem
						'51','53','54',						---- Pin
						'11','13','14')						---- Slst

--select * from @telata_plem order by typplem desc
declare @kravy_zoznam table
		(
		cisKravy varchar(14),
		plem_typ int)

insert @kravy_zoznam 
		select k.CISKRAVY, k.TYPPLEM   
		from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and k.TYPPLEM in (--'101','102','103','104','105',
											'111','112','113','114','115',
											'121','122','123','124','125', 
											'131', 
											'141','142','143','144','145', 
											'151', 
											'161','162','163','164','165', 
											'171','172','173','174','175', 
											--'181',
											'201','202','203','204','205',
											--'191','192','193','194','195', 
											'51','53','54', 
											'11','13','14')
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
	--select * from @kravy_zoznam
																				 
	declare @pocetKravy table
		(
		plem_typ int,
		pocet int
		)
	insert @pocetKravy
	select plem_typ, count (cisKravy) from @kravy_zoznam group by plem_typ

	--select * from @pocetKravy

	declare @matky table
		(
		matka varchar(14),
		plemeno varchar(9)
		)

	insert into @matky
		(matka,plemeno)
	select distinct Matka, t.TYPPLEM
		from CM_Telata as t 
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVATEL 
		where DATNAR >= @datumOd and DATNAR <= @datumDo
			and PRIZNAKKU = '2'
			and MATKA not in (select ciskravy from CM_Krava)
			and t.TYPPLEM in (--'101','102','103','104','105',
								'111','112','113','114','115',
								'121','122','123','124','125', 
								'131', 
								'141','142','143','144','145', 
								'151', 
								'161','162','163','164','165', 
								'171','172','173','174','175', 
								--'181',
								'201','202','203','204','205',
								--'191','192','193','194','195', 
								'51','53','54', 
								'11','13','14')
			and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		order by MATKA
----select * from @matky

		declare @kravy2 table
		(
		plemeno varchar(9),
		pocet int
		)

		insert into @kravy2 
		(plemeno,pocet)
			select plemeno, count (matka) from @matky
			group by plemeno
				
--select * from @kravy2

	declare @tab2 table
		(
			[plemeno] [varchar](50) NULL,
			[pocet_krav] [int] NULL,
			[telata_celkom] [int] NULL,
			[byci_ZN] [int] NULL,
			[jalovice_ZN] [int] NULL,
			[dvoj] [int] NULL,
			[mrtvo_nar] [int] NULL,
			[uhyn_48] [int] NULL,
			[zmetanie] [int] NULL,
			[narod_ET] [int] NULL		
		)
	insert into @tab2 
		(plemeno, telata_celkom,byci_ZN, jalovice_ZN, dvoj, mrtvo_nar, uhyn_48, zmetanie, narod_ET)
	select t.typplem,  count(*)as telata_celkom, 
			sum(case when t.pohlavie in ('1','01','11','31','41','51','81') then 1 else 0 end) as byci_ZN,
			sum(case when t.pohlavie in ('2','02','22','32','42','52','82') then 1 else 0 end) as jalovice_ZN,
			sum(case when t.pohlavie in ('11','22','31','32','41','42') then 1 else 0 end) as dvoj,
			sum(case when t.pohlavie in ('61','62','63') then 1 else 0 end) as mrtvo_nar,
			sum(case when t.pohlavie in ('16','26') then 1 else 0 end) as uhyn_48,
			sum(case when t.pohlavie ='71' then 1 else 0 end) as zmetanie,
			sum(case when t.pohlavie in ('81','82') then 1 else 0 end) as narod_ET
		from @telata_plem as t
		group by t.typplem
	
	declare @plemenny_typ table
	(
	 plemTyp varchar(15)
	)
	insert @plemenny_typ
		select distinct k.plem_typ as plemTyp  from @pocetKravy as k 
	union 
		select distinct k2.plemeno as plemTyp  from @kravy2 as k2
	union
		Select distinct t.typplem as plemTyp from @telata_plem as t
	
	--select * from @plemenny_typ order by plemTyp
	
	


--select * from @tab2

	----declare @vysledna table
	----		(
	----		plemeno varchar (50), 
	----		plemTYP int, 
	----		pocet_krav int,
	----		telata_celkom int,
	----		byci_ZN int,
	----		jalovice_ZN int,
	----		podiel float,
	----		mrtvo_nar int,
	----		uhyn_48 int,
	----		zmetanie int,
	----		narod_ET int,
	----		podiel_dvojciat float,
	----		rok int
	----		)
	
	insert into Roc_MPHD_Tab_2_plemTYP --@vysledna
		(plemeno, plemTYP, pocet_krav, telata_celkom, byci_ZN, jalovice_ZN, podiel, mrtvo_nar, uhyn_48 ,zmetanie, narod_ET, dvojicky, podiel_dvojciat,rok)
	select 
		case --when pt.plemTyp  in ('101','102','103','104','105') then 'BBM' 
				when pt.plemTyp  in ('111','112','113','114','115') then 'AA'
				when pt.plemTyp  in ('121','122','123','124','125') then 'BdA'
				when pt.plemTyp  = '131' then 'Gal'
				when pt.plemTyp  in ('141','142','143','144','145') then 'HEM'
				when pt.plemTyp  = '151' then 'High'
				when pt.plemTyp  in ('161','162','163','164','165') then 'Char'
				when pt.plemTyp  in ('171','172','173','174','175') then 'Lim'
				--when pt.plemTyp  = '181' then 'SDM'
				when pt.plemTyp  in ('201','202','203','204','205') then 'Sim_maso'
				--when pt.plemTyp  in ('191','192','193','194','195') then 'Piem'
				when pt.plemTyp  in ('51','53','54') then 'Pin'
				when pt.plemTyp  in ('11','13','14') then 'Slst'
			end as plemeno,
		 pt.plemTyp  as plemTYP,
		isnull(k.pocet,0) + isnull(k2.pocet,0) as pocet_krav,
		t.telata_celkom,
		t.byci_ZN,
		t.jalovice_ZN,
		(t.byci_ZN + t.jalovice_ZN) * 1.0 / t.telata_celkom * 100 as podiel,
		--t.dvoj,
		t.mrtvo_nar,
		t.uhyn_48,
		t.zmetanie, 
		t.narod_ET,
		t.dvoj,
		t.dvoj * 1.0/ t.telata_celkom * 100 as podiel_dvojciat,
		datepart(year, @datumOd) as rok
	 from @plemenny_typ as pt 
		left outer join @pocetKravy as k on k.plem_typ = pt.plemTyp 
		left outer join @kravy2 as k2 on k2.plemeno = pt.plemTyp 
		left outer join @tab2 as t on pt.plemTyp = t.plemeno
 --select * from @vysledna

END

go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-21
-- Description:	Naplnenie tabulky CP_HTD
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_prip_HTD]
AS
BEGIN
	truncate table CP_HTD

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_h
	from CM_ZSTDM--_new
	where TYP in ('H0', 'H1', 'H2', 'H3')
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'H'
	from  #temp_htd_h

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_s
	from CM_ZSTDM--_new
	where TYP in ('S0', 'S1', 'S2')
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'S'
	from  #temp_htd_s 

	select left(CISCHOVU, 8) as CISCHOVU, DATKONTR, PORLAK, count(*) as POCET 
	into #temp_htd_p
	from CM_ZSTDM--_new
	where TYP in ('P0', 'P1', 'P2')
	group by left(CISCHOVU, 8), DATKONTR, PORLAK
	having count(*) > 2

	insert into CP_HTD
	select CISCHOVU, DATKONTR, PORLAK, POCET, PORADIE = ROW_NUMBER() OVER (ORDER BY CISCHOVU, DATKONTR, PORLAK), 'P'
	from  #temp_htd_p 
END
go


/***masova rocenka - narodene telata v kontrolnom roku - podla plemien
 Masova rocenka 2017 - str.30**/
 CREATE procedure [dbo].[Roc_MPHD_2]
	
	@datumOd date ,
	@datumDo date 

as 
begin
delete from Roc_MPHD_Tab_2 where rok = DATEPART(YEAR, @datumOd)

----declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

	declare @telata_plem table
		(
		cistelata varchar(14),
		pohlavie varchar(2),
		typplem varchar(3),
		plemeno varchar(9)
		)

	insert into @telata_plem 
	select t.CISTELATA, t.POHLAVIE, t.TYPPLEM,
		case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when t.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when t.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when t.TYPPLEM = '131' then 'Gal'
				when t.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when t.TYPPLEM = '151' then 'High'
				when t.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when t.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when t.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when t.TYPPLEM in ('51','53','54') then 'Pin'
				when t.TYPPLEM in ('11','13','14') then 'Slst'
				when ((t.TYPPLEM is null and t.PL1 is null) 
								or (t.TYPPLEM is null and t.PL1<>'X') 
								or (t.TYPPLEM not in (--'101','102','103','104','105',
														'111','112','113','114','115',
														'121','122','123','124','125', 
														'131',
														'141','142','143','144','145', 
														'151', 
														'161','162','163','164','165', 
														'171','172','173','174','175', 
														--'181',
														'201','202','203','204','205',
														--'191','192','193','194','195', 
														'51','53','54', 
														'11','13','14') and t.PL1<>'X')) then 'Osta'
				when t.PL1 = 'X' then 'Nez'
			end as plemeno
		 from CM_Telata as t
	 --left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVNAR
	where DATNAR >= @datumOd and DATNAR <= @datumDo
		and PRIZNAKKU = '2'
		--and ch.TYPZV= 1
		--				and ch.chov not in ('010','700', '699') 
		--				and left(ch.chov,1) ='7'
		--				and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
		--					and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
		--																			 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		--and (typplem is null or TYPPLEM in ('111','112','113','114','115','121','122','123','124','125','131','151','161','162','163','164','165','171','172','173','174','175',
		--									'201','202','203','204','205','191','192','193','194','195','51','53','54','11','13','14','999'))

----select * from @telata_plem order by plemeno desc

	declare @kravy table
		(
		plemeno varchar(9),
		pocet int
		)
/************ vyber krav do poctu krav. Datzar kravy je posunuty o mesiac neskor ako je DatumDo, pretoze sa caka do konca januara s rocenkou skr dohlasovanie teliat, ktore sa narodili este v decembri. 
			Pri takychto telatach pokial nemali matku v kontrole uzitkovosti ( v tabulke CM_Krava) a dodatocne sa doplnuje je datum zaradenia kravy az v januari, hoci tela ma datum narodenia este v decembri ****************************/
	insert into @kravy 
		(plemeno,pocet)
		select 'AA' as plemeno, sum(case when TYPPLEM in ('111','112','113','114','115') then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'BdA' as plemeno, sum(case when TYPPLEM in ('121','122','123','124','125') then  1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR < dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Gal' as plemeno,sum(case when TYPPLEM = '131' then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Hem' as plemeno,sum(case when TYPPLEM in ('141','142','143','144','145') then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'High' as plemeno,sum(case when TYPPLEM = '151' then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Char' as plemeno, sum(case when TYPPLEM in ('161','162','163','164','165') then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Lim' as plemeno, sum(case when TYPPLEM in ('171','172','173','174','175') then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'	
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Sim_maso' as plemeno, sum(case when TYPPLEM in ('201','202','203','204','205') then 1 else 0 end) as pocet
				from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
				where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		/*
		union 
			select 'Piem' as plemeno, sum(case when TYPPLEM in ('191','192','193','194','195') then 1 else 0 end) as pocet
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
							and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		*/
		union 
			select 'Pin' as plemeno, sum(case when TYPPLEM in ('51','53','54') then 1 else 0 end) as pocet
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
							and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Slst' as plemeno, sum(case when TYPPLEM in ('11','13','14') then 1 else 0 end) as pocet
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Osta' as plemeno,sum(case when ((TYPPLEM is null and PL1 is null) 
													or (TYPPLEM is null and PL1<>'X') 
													or (TYPPLEM not in (--'101','102','103','104','105',
														'111','112','113','114','115',
														'121','122','123','124','125', 
														'131',
														'141','142','143','144','145', 
														'151', 
														'161','162','163','164','165', 
														'171','172','173','174','175', 
														--'181',
														'201','202','203','204','205',
														--'191','192','193','194','195', 
														'51','53','54', 
														'11','13','14') and PL1<>'X')) then 1 else 0 end) as pocet
													/*TYPPLEM = '999' and k.PL1 <> 'X' then 1 else 0 end)*/  
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'Nez' as plemeno,sum(case when /*TYPPLEM is null*/ k.pl1='X' then 1 else 0 end) as pocet
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo)) and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
						and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		union 
			select 'SR' as plemeno,count(CISKRAVY)/*sum(case when TYPPLEM is null or TYPPLEM in ('111','112','113','114','115','121','122','123','124','125','131','151','161','162','163','164','165','171','172','173','174','175',
											'201','202','203','204','205','191','192','193','194','195','51','53','54','11','13','14','999') then 1 else 0 end)*/ as pocet
					from CM_Krava as k 
				left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = k.CHOVATEL 
					where  PRIZNAKKU = '2' and (DOVVYR is null or (DATVYR >= @datumOd and DATVYR <= @datumDo))
							and DATZAR <  dateadd(month,1,@datumDo) --'2018-02-01'
							and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		
--select * from @kravy

		
		declare @matky table
		(
		matka varchar(14),
		plemeno varchar(9)
		)

	insert into @matky
		(matka,plemeno)
		
	select distinct Matka,--,CISTELATA, POHLAVIE, TYPPLEM,
		case --when TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when TYPPLEM in ('111','112','113','114','115') then 'AA'
				when TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when TYPPLEM = '131' then 'Gal'
				when TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when TYPPLEM = '151' then 'High'
				when TYPPLEM in ('161','162','163','164','165') then 'Char'
				when TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when TYPPLEM = '181' then 'SDM'
				when TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when TYPPLEM in ('51','53','54') then 'Pin'
				when TYPPLEM in ('11','13','14') then 'Slst'
				when ((TYPPLEM is null and t.PL1 is null) 
								or (TYPPLEM is null and PL1<>'X') 
								or (TYPPLEM not in (--'101','102','103','104','105',
														'111','112','113','114','115',
														'121','122','123','124','125', 
														'131',
														'141','142','143','144','145', 
														'151', 
														'161','162','163','164','165', 
														'171','172','173','174','175', 
														--'181',
														'201','202','203','204','205',
														--'191','192','193','194','195', 
														'51','53','54', 
														'11','13','14') and PL1<>'X')) then 'Osta'
				when PL1 = 'X' then 'Nez'
		end as plemeno
	 from CM_Telata as t 
	 left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVATEL 
		where DATNAR >= @datumOd and DATNAR <= @datumDo
			and PRIZNAKKU = '2'
			and MATKA not in (select ciskravy from CM_Krava)
			and ch.TYPZV= 1
						and ch.chov not in ('010','700', '699') 
						and left(ch.chov,1) ='7'
						and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
							and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
																					 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		order by MATKA

		declare @kravy2 table
		(
		plemeno varchar(9),
		pocet int
		)

		insert into @kravy2 
		(plemeno,pocet)
			select 'AA' as plemeno, 
			sum(case when plemeno = 'AA' then 1 else 0 end) as pocet
			from @matky
		union
			select 'BdA' as plemeno, 
			sum(case when plemeno = 'BdA' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Gal' as plemeno, 
			sum(case when plemeno = 'Gal' then 1 else 0 end) as pocet
			from @matky
		union
			select 'HEM' as plemeno, 
			sum(case when plemeno = 'HEM' then 1 else 0 end) as pocet
			from @matky
		union
			select 'High' as plemeno, 
			sum(case when plemeno = 'High' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Char' as plemeno, 
			sum(case when plemeno = 'Char' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Lim' as plemeno, 
			sum(case when plemeno = 'Lim' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Sim_maso' as plemeno, 
			sum(case when plemeno = 'Sim_maso' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Piem' as plemeno, 
			sum(case when plemeno = 'Piem' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Pin' as plemeno, 
			sum(case when plemeno = 'Pin' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Slst' as plemeno, 
			sum(case when plemeno = 'Slst' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Osta' as plemeno, 
			sum(case when plemeno = 'Osta' then 1 else 0 end) as pocet
			from @matky
		union
			select 'Nez' as plemeno, 
			sum(case when plemeno = 'Nez' then 1 else 0 end) as pocet
			from @matky
		union
			select 'SR' as plemeno, 
			count(*) as pocet
			from @matky
				
--select * from @kravy2

/*
		select k.plemeno, k.pocet + k2.pocet
			from @kravy as k
			left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
			where k.plemeno = 'AA'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'BdA'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Gal'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'High'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Char'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Lim'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Sim_maso'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Piem'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Pin'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Slst'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Osta'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'Nez'
		union 
			select k.plemeno, k.pocet + k2.pocet
				from @kravy as k
				left outer join @kravy2 as k2 on k.plemeno = k2.plemeno
				where k.plemeno = 'SR'

				*/

		
	declare @tab2 table
	(
		[plemeno] [varchar](50) NULL,
		[pocet_krav] [int] NULL,
		[telata_celkom] [int] NULL,
		[byci_ZN] [int] NULL,
		[jalovice_ZN] [int] NULL,
		[dvoj] [int] NULL,
		[mrtvo_nar] [int] NULL,
		[uhyn_48] [int] NULL,
		[zmetanie] [int] NULL,
		[narod_ET] [int] NULL		
	)
	insert into @tab2 
		(plemeno, telata_celkom,byci_ZN, jalovice_ZN, dvoj, mrtvo_nar, uhyn_48, zmetanie, narod_ET)
	select t.plemeno,  count(*)as telata_celkom, 
			sum(case when t.pohlavie in ('1','01','11','31','41','51','81') then 1 else 0 end) as byci_ZN,
			sum(case when t.pohlavie in ('2','02','22','32','42','52','82') then 1 else 0 end) as jalovice_ZN,
			sum(case when t.pohlavie in ('11','22','31','32','41','42') then 1 else 0 end) as dvoj,
			sum(case when t.pohlavie in ('61','62','63') then 1 else 0 end) as mrtvo_nar,
			sum(case when t.pohlavie in ('16','26') then 1 else 0 end) as uhyn_48,
			sum(case when t.pohlavie ='71' then 1 else 0 end) as zmetanie,
			sum(case when t.pohlavie in ('81','82') then 1 else 0 end) as narod_ET
		from @telata_plem as t
		group by t.plemeno
	union 
		select 'SR' as plemeno,  count(*)as telata_celkom, 
			sum(case when t.pohlavie in ('1','01','11','31','41','51','81') then 1 else 0 end) as byci_ZN,
			sum(case when t.pohlavie in ('2','02','22','32','42','52','82') then 1 else 0 end) as jalovice_ZN,
			sum(case when t.pohlavie in ('11','22','31','32','41','42') then 1 else 0 end) as dvoj,
			sum(case when t.pohlavie in ('61','62','63') then 1 else 0 end) as mrtvo_nar,
			sum(case when t.pohlavie in ('16','26') then 1 else 0 end) as uhyn_48,
			sum(case when t.pohlavie ='71' then 1 else 0 end) as zmetanie,
			sum(case when t.pohlavie in ('81','82') then 1 else 0 end) as narod_ET
		from @telata_plem as t

--select * from @tab2

	insert into Roc_MPHD_Tab_2
	(plemeno, pocet_krav, telata_celkom, byci_ZN, jalovice_ZN, podiel, mrtvo_nar, uhyn_48 ,zmetanie, narod_ET, dvojicky, podiel_dvojciat,rok)
	select 
		t.plemeno,
		k.pocet + k2.pocet as pocet_krav,
		t.telata_celkom,
		t.byci_ZN,
		t.jalovice_ZN,
		(t.byci_ZN + t.jalovice_ZN) * 1.0 / t.telata_celkom * 100 as podiel,
		--t.dvoj,
		t.mrtvo_nar,
		t.uhyn_48,
		t.zmetanie, 
		t.narod_ET,
		t.dvoj,
		t.dvoj * 1.0/ t.telata_celkom * 100 as podiel_dvojciat,
		datepart(year, @datumOd) as rok
	 from @tab2 as t
		left outer join @kravy as k on k.plemeno = t.plemeno
		left outer join @kravy2 as k2 on k2.plemeno = t.plemeno
 
END

go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 03.8.2011
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky (+12.5 Slovenske strakate)
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_plem_potomok_stare_zal]
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)
	
AS
BEGIN
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
	
	declare @podiely table 
	(
		PL [varchar](2),
		KR [decimal](5,2)	
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2)
	
	select @PL1_O = PL1, 
		@KR1_O = KR1, 
		@PL2_O = PL2, 
		@KR2_O = KR2, 
		@PL3_O = PL3, 
		@KR3_O = KR3, 
		@PL4_O = PL4, 
		@KR4_O = KR4, 
		@PL5_O = PL5
	from CM_Byci 
	where USCISLO = @USCISLO_O
	/*
	select @PL1_M = PL1, 
		@KR1_M = KR1, 
		@PL2_M = PL2, 
		@KR2_M = KR2, 
		@PL3_M = PL3, 
		@KR3_M = KR3, 
		@PL4_M = PL4, 
		@KR4_M = KR4, 
		@PL5_M = PL5
	from CM_Krava
	where CISKRAVY = @USCISLO_M
	*/
	
	select top 1 @PL1_M = c.PL1, 
		@KR1_M = c.KR1, 
		@PL2_M = c.PL2, 
		@KR2_M = c.KR2, 
		@PL3_M = c.PL3, 
		@KR3_M = c.KR3, 
		@PL4_M = c.PL4, 
		@KR4_M = c.KR4, 
		@PL5_M = c.PL5
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		SELECT 
			k.PL1 AS PL1, 
			k.KR1 AS KR1, 
			k.PL2 AS PL2, 
			k.KR2 AS KR2, 
			k.PL3 AS PL3, 
			k.KR3 AS KR3, 
			k.PL4 AS PL4, 
			k.KR4 AS KR4, 
			k.PL5 AS PL5 
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			AND k.DOVVYR IS NULL
			AND k.CHOVATEL = @CHOVATEL 
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		SELECT
			t.PL1 AS PL1, 
			t.KR1 AS KR1, 
			t.PL2 AS PL2, 
			t.KR2 AS KR2, 
			t.PL3 AS PL3, 
			t.KR3 AS KR3, 
			t.PL4 AS PL4, 
			t.KR4 AS KR4, 
			t.PL5 AS PL5 
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end
	
	-- scitanie plemien a uzporiadanie od najvacsieho
	insert @podiely_usp 
	select PL, sum(isnull(KR, 0)) from @podiely
	GROUP by PL
	order by SUM(isnull(KR, 0)) desc, PL asc
	
	set @zvPlem = (select 0)
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S 
	--			  < 6 %  cudzieho plemena
	if (select top (1) PL from @podiely_usp) = 'S'
		set @zvPlem = (select 12.5)
	else
		set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		update @podiely_usp
		set KR = 0, PL = null
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		--if @KR_pom > 100	--zrusene pre zaokruhlenie cisla na 1 desatine miesto: (50 + 37.5 + 6.25 + 6.25) => (50 + 37.5 + 6.3 + 6.3) => 100.1
			set @KR4_P = (select 100 - ROUND((@KR1_P + @KR2_P + @KR3_P), 1))	--dodane round pre zaokruhlenie na 1 desatinu vopred
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		--if @KR_pom > 100 --zruesene vid vyssie popis
			set @KR4_P = (select 100 - ROUND((@KR1_P + @KR2_P + @KR3_P), 1))	--dodane round pre zaokruhlenie na 1 desatinu vopred
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		--if @KR_pom > 100
			set @KR3_P = (select 100 - ROUND((@KR1_P + @KR2_P), 1))	--dodane round pre zaokruhlenie na 1 desatinu vopred
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		--if @KR_pom > 100
			--set @KR3_P = (select 100 - @KR1_P)
				set @KR2_P = ROUND((select 100 - @KR1_P), 1)  --dodane round pre zaokruhlenie na 1 desatinu vopred
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	

	select '              ' AS Potomok, 
	@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5
	--select @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	/*
	select 'Otec', @PL1_O, @KR1_O, @PL2_O, @KR2_O, @PL3_O, @KR3_O, @PL4_O, @KR4_O, @PL5_O
	select 'Matka', @PL1_M, @KR1_M, @PL2_M, @KR2_M, @PL3_M, @KR3_M, @PL4_M, @KR4_M, @PL5_M
	select 'Potomok', @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	*/
	return (0)
	
END


go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[C_VZ_ChovMesovePlemena](@param1 int)
AS
BEGIN

/**************************************************************

! PLEASE RUN AFFTER C_VZ_MEDZIOBDOBIEMESOVE AND C_AKTUAL_PREPOCMASOVEVAZENIA PROCEDURE !

using table:NM_Register,CM_Krava,NM_CHOVMAS,CM_Telata,NM_Podnik,NC_KRAJ,NC_OKRES

using views:View_CP_MedziObdMeso

changing table:CP_ChovatelMesoPlemena

used for: creating table used for results in report : volna zona -> Kontrola úžitkovosti mäsových plemien 

**************************************************************/

DECLARE @chov_id VARCHAR(9);

DECLARE @GLperc float;
DECLARE @Aperc float;
DECLARE @Bperc float;
DECLARE @Dperc float;
DECLARE @Fperc float;
DECLARE @Gperc float;
DECLARE @Hperc float;
DECLARE @Jperc float;
DECLARE @Lperc float;
DECLARE @Mperc float;
DECLARE @Nperc float;
DECLARE @Pperc float;
DECLARE @Rperc float;
DECLARE @Sperc float;
DECLARE @Tperc float;
DECLARE @Xperc float;
DECLARE @AAperc float;
DECLARE @ARperc float;
DECLARE @BAperc float;
DECLARE @BBperc float;
DECLARE @BRperc float;
DECLARE @BSperc float;
DECLARE @CIperc float;
DECLARE @GAperc float;
DECLARE @HEperc float;
DECLARE @HLperc float;
DECLARE @CHperc float;
DECLARE @MAperc float;
DECLARE @MBperc float;
DECLARE @PIperc float;
DECLARE @SBperc float;
DECLARE @SDperc float;
DECLARE @SGperc float;
DECLARE @SHperc float;
DECLARE @SLperc float;
DECLARE @SMperc float;
DECLARE @SVperc float;
DECLARE @WGperc float;
DECLARE @ZBperc float;

declare @pl1 varchar(2);
declare @pl2 varchar(2);
declare @pl3 varchar(2);
declare @pl4 varchar(2);
declare @pl5 varchar(2);

declare @kr1 float;
declare @kr2 float;
declare @kr3 float;
declare @kr4 float;
declare @kr5 float;

DECLARE @UCISLO VARCHAR(14);

declare @celkPoc int;
declare @aktPoc int;
declare @plmax1 float;
declare @plmax1Pismeno varchar(2);
declare @plmax2 float;
declare @plmax2Pismeno varchar(2);
declare @plmax3 float;
declare @plmax3Pismeno varchar(2);
DECLARE @CIS_KRAVA VARCHAR(14);
DECLARE @MEDZI INT;
DECLARE @prznakku INT;
declare @dovvyr INT;
DECLARE @KRAVI_MATKI INT;
DECLARE @MEDZI2 INT;

SET @MEDZI2 =0;

SET @KRAVI_MATKI=0;
TRUNCATE TABLE CP_ChovatelMesoPlemena

DECLARE cur_Chovatel CURSOR FOR 
select distinct K.CHOVATEL
from CM_Krava AS K
inner join NM_CHOVMAS AS C
ON K.CHOVATEL=(C.KRAJ+C.OKRES+C.PODNIK+C.CHOV)
and (C.ZRUS IS NULL or c.ZRUS='A')
AND K.PRIZNAKKU='2' ;

select  @celkPoc=count(*) from NM_Register;
set @aktPoc = 0;
SET @plmax1 =0;
SET @plmax1Pismeno ='';
SET @plmax2 =0;
SET @plmax2Pismeno ='';
SET @plmax3 =0;
SET @plmax3Pismeno ='';
SET @CIS_KRAVA='';
SET @MEDZI=0;

OPEN cur_Chovatel  
FETCH NEXT FROM cur_Chovatel INTO @chov_id 

WHILE @@FETCH_STATUS = 0 
BEGIN  
--print @chov_id;

       SET @MEDZI=0;
	   SET @KRAVI_MATKI=0;
	   SET @GLperc = 0;
       set @Aperc = 0;
	   set @Bperc = 0;
	   SET @Dperc = 0;
	   SET @Fperc = 0;
	   SET @Gperc = 0;
	   SET @Hperc = 0;
	   SET @Jperc = 0;
	   SET @Lperc = 0;
	   SET @Mperc = 0;
	   SET @Nperc = 0;
	   SET @Pperc = 0;
	   SET @Rperc = 0;
	   SET @Sperc = 0;
	   SET @Tperc = 0;
	   SET @Xperc = 0;
	   SET @AAperc = 0;
	   SET @ARperc = 0;
	   SET @BAperc = 0;
	   SET @BBperc = 0;
	   SET @BRperc = 0;
	   SET @BSperc = 0;
	   SET @CIperc = 0;
	   SET @GAperc = 0;
	   SET @HEperc = 0;
	   SET @HLperc = 0;
	   SET @CHperc = 0;
	   SET @MAperc = 0;
	   SET @MBperc = 0;
	   SET @PIperc = 0;
	   SET @SBperc = 0;
	   SET @SDperc = 0;
	   SET @SGperc = 0;
	   SET @SHperc = 0;
	   SET @SLperc = 0;
	   SET @SMperc = 0;
	   SET @SVperc = 0;
	   SET @WGperc = 0;
	   SET @ZBperc = 0;
	    set @aktPoc = @aktPoc + 1;

------------------------- vibera kravy pre kazdy chovatel


		SET @plmax1 =0;
		SET @plmax1Pismeno ='';
		SET @plmax2 =0;
		SET @plmax2Pismeno ='';
		SET @plmax3 =0;
		SET @plmax3Pismeno ='';
	
				DECLARE cur_kravy CURSOR FOR  
				SELECT pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5,CISKRAVY
				FROM CM_Krava
				where CHOVATEL = @chov_id
				and PRIZNAKKU='2'
				--and DOVVYR IS NULL;

	   open cur_kravy;
	   FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	   WHILE @@FETCH_STATUS = 0 
	    BEGIN 
		 SET @kr5=100-(@kr1+@kr2+@kr3+@kr4);
	
				if @pl1 ='GL'SET @GLperc= @GLperc+@kr1;
				if @pl1 ='A' set @Aperc = @Aperc+@kr1;
				if @pl1 ='B' set @Bperc = @Bperc+@kr1;
				if @pl1 ='D' set @Dperc = @Dperc+@kr1;
				if @pl1 ='F' set @Fperc = @Fperc+@kr1;
				if @pl1 ='G' set @Gperc = @Gperc+@kr1;
				if @pl1 ='H' set @Hperc = @Hperc+@kr1;
				if @pl1 ='J' set @Jperc = @Jperc+@kr1;
				if @pl1 ='M' set @Mperc = @Mperc+@kr1;
				if @pl1 ='L' set @Lperc = @Lperc+@kr1;
				if @pl1 ='N' set @Nperc = @Nperc+@kr1;
				if @pl1 ='P' set @Pperc = @Pperc+@kr1;
				if @pl1 ='R' set @Rperc = @Rperc+@kr1;
				if @pl1 ='S' set @Sperc = @Sperc+@kr1;
				if @pl1 ='T' set @Tperc = @Tperc+@kr1;
				if @pl1 ='X' set @Xperc = @Xperc+@kr1;
				if @pl1='AA' set @AAperc= @AAperc+@kr1;
				if @pl1='AR' set @ARperc= @ARperc+@kr1;
				if @pl1='BA' set @BAperc= @BAperc+@kr1;
				if @pl1='BB' set @BBperc= @BBperc+@kr1;
				if @pl1='BR' set @BRperc= @BRperc+@kr1;
				if @pl1='BS' set @BSperc= @BSperc+@kr1;
				if @pl1='CI' set @CIperc= @CIperc+@kr1;
				if @pl1='GA' set @GAperc= @GAperc+@kr1;
				if @pl1='HE' set @HEperc= @HEperc+@kr1;
				if @pl1='HL' set @HLperc= @HLperc+@kr1;
				if @pl1='CH' set @CHperc= @CHperc+@kr1;
				if @pl1='MA' set @MAperc= @MAperc+@kr1;
				if @pl1='MB' set @MBperc= @MBperc+@kr1;
				if @pl1='PI' set @PIperc=@PIperc+@kr1;
				if @pl1='SB' set @SBperc=@SBperc+@kr1;
				if @pl1='SD' set @SDperc=@SDperc+@kr1;
				if @pl1='SG' set @SGperc=@SGperc+@kr1;
				if @pl1='SH' set @SHperc=@SHperc+@kr1;
				if @pl1='SL' set @SLperc=@SLperc+@kr1;
				if @pl1='SM' set @SMperc=@SMperc+@kr1;
				if @pl1='SV' set @SVperc=@SVperc+@kr1;
				if @pl1='WG' set @WGperc=@WGperc+@kr1;
				if @pl1='ZB' set @ZBperc=@ZBperc+@kr1;
-------------------------------------------------------------
				if @pl2 = 'GL' set @GLperc =  @GLperc+@kr2;
				if @pl2 = 'A' set @Aperc =  @Aperc+@kr2;
				if @pl2 = 'B' set @Bperc =  @Bperc+@kr2;
				if @pl2 = 'D' set @Dperc =  @Dperc+@kr2;
				if @pl2 = 'F' set @Fperc =  @Fperc+@kr2;
				if @pl2 = 'G' set @Gperc =  @Gperc+@kr2;
				if @pl2 = 'H' set @Hperc =  @Hperc+@kr2;
				if @pl2 = 'J' set @Jperc =  @Jperc+@kr2;
				if @pl2 = 'L' set @Lperc =  @Lperc+@kr2;
				if @pl2 = 'M' set @Mperc =  @Mperc+@kr2;
				if @pl2 = 'N' set @Nperc =  @Nperc+@kr2;
				if @pl2 = 'P' set @Pperc =  @Pperc+@kr2;
				if @pl2 = 'R' set @Rperc =  @Rperc+@kr2;
				if @pl2 = 'S' set @Sperc =  @Sperc+@kr2;
				if @pl2 = 'T' set @Tperc =  @Tperc+@kr2;
				if @pl2 = 'X' set @Xperc =  @Xperc+@kr2;
				if @pl2= 'AA' set @AAperc=@AAperc+@kr2;
				if @pl2='AR' set   @ARperc=@ARperc+@kr2;
				if @pl2='BA' set   @BAperc=@BAperc+@kr2;
				if @pl2='BB' set   @BBperc=@BBperc+@kr2;
				if @pl2='BR' set   @BRperc=@BRperc+@kr2;
				if @pl2='BS' set   @BSperc=@BSperc+@kr2;
				if @pl2='CI' set   @CIperc=@CIperc+@kr2;
				if @pl2='GA' set   @GAperc=@GAperc+@kr2;
				if @pl2='HE' set   @HEperc=@HEperc+@kr2;
				if @pl2='HL' set   @HLperc=@HLperc+@kr2;
				if @pl2='CH' set   @CHperc=@CHperc+@kr2;
				if @pl2='MA' set   @MAperc=@MAperc+@kr2;
				if @pl2='MB' set   @MBperc=@MBperc+@kr2;
				if @pl2='PI' set   @PIperc=@PIperc+@kr2;
				if @pl2='SB' set   @SBperc=@SBperc+@kr2;
				if @pl2='SD' set   @SDperc=@SDperc+@kr2;
				if @pl2='SG' set   @SGperc=@SGperc+@kr2;
				if @pl2='SH' set   @SHperc=@SHperc+@kr2;
				if @pl2='SL' set   @SLperc=@SLperc+@kr2;
				if @pl2='SM' set   @SMperc=@SMperc+@kr2;
				if @pl2='SV' set   @SVperc=@SVperc+@kr2;
				if @pl2='WG' set   @WGperc=@WGperc+@kr2;
				if @pl2='ZB' set   @ZBperc=@ZBperc+@kr2;
-------------------------------------------------------------
				if @pl3 = 'GL' set @GLperc =  @GLperc+@kr3;
				if @pl3 = 'A' set @Aperc =  @Aperc+@kr3;
				if @pl3 = 'B' set @Bperc =  @Bperc+@kr3;
				if @pl3 = 'D' set @Dperc =  @Dperc+@kr3;
				if @pl3 = 'F' set @Fperc =  @Fperc+@kr3;
				if @pl3 = 'G' set @Gperc =  @Gperc+@kr3;
				if @pl3 = 'H' set @Hperc =  @Hperc+@kr3;
				if @pl3 = 'J' set @Jperc =  @Jperc+@kr3;
				if @pl3 = 'M' set @Mperc =  @Mperc+@kr3;
				if @pl3 = 'N' set @Nperc =  @Nperc+@kr3;
				if @pl3 = 'P' set @Pperc =  @Pperc+@kr3;
				if @pl3 = 'R' set @Rperc =  @Rperc+@kr3;
				if @pl3 = 'S' set @Sperc =  @Sperc+@kr3;
				if @pl3 = 'T' set @Tperc =  @Tperc+@kr3;
				if @pl3 = 'X' set @Xperc =  @Xperc+@kr3;
				if @pl3= 'AA' set @AAperc=@AAperc+@kr3;
				if @pl3='AR' set   @ARperc=@ARperc+@kr3;
				if @pl3='BA' set   @BAperc=@BAperc+@kr3;
				if @pl3='BB' set   @BBperc=@BBperc+@kr3;
				if @pl3='BR' set   @BRperc=@BRperc+@kr3;
				if @pl3='BS' set   @BSperc=@BSperc+@kr3;
				if @pl3='CI' set   @CIperc=@CIperc+@kr3;
				if @pl3='GA' set   @GAperc=@GAperc+@kr3;
				if @pl3='HE' set   @HEperc=@HEperc+@kr3;
				if @pl3='HL' set   @HLperc=@HLperc+@kr3;
				if @pl3='CH' set   @CHperc=@CHperc+@kr3;
				if @pl3='MA' set   @MAperc=@MAperc+@kr3;
				if @pl3='MB' set   @MBperc=@MBperc+@kr3;
				if @pl3='PI' set   @PIperc=@PIperc+@kr3;
				if @pl3='SB' set   @SBperc=@SBperc+@kr3;
				if @pl3='SD' set   @SDperc=@SDperc+@kr3;
				if @pl3='SG' set   @SGperc=@SGperc+@kr3;
				if @pl3='SH' set   @SHperc=@SHperc+@kr3;
				if @pl3='SL' set   @SLperc=@SLperc+@kr3;
				if @pl3='SM' set   @SMperc=@SMperc+@kr3;
				if @pl3='SV' set   @SVperc=@SVperc+@kr3;
				if @pl3='WG' set   @WGperc=@WGperc+@kr3;
				if @pl3='ZB' set   @ZBperc=@ZBperc+@kr3;
				if @pl3='L' set   @Lperc=@Lperc+@kr3;
-------------------------------------------------------------
				if @pl4 = 'GL' set @GLperc =  @GLperc+@kr4;
				if @pl4 = 'A' set @Aperc =  @Aperc+@kr4;
				if @pl4 = 'B' set @Bperc =  @Bperc+@kr4;
				if @pl4 = 'D' set @Dperc =  @Dperc+@kr4;
				if @pl4 = 'F' set @Fperc =  @Fperc+@kr4;
				if @pl4 = 'G' set @Gperc =  @Gperc+@kr4;
				if @pl4 = 'H' set @Hperc =  @Hperc+@kr4;
				if @pl4 = 'J' set @Jperc =  @Jperc+@kr4;
				if @pl4 = 'M' set @Mperc =  @Mperc+@kr4;
				if @pl4 = 'N' set @Nperc =  @Nperc+@kr4;
				if @pl4 = 'P' set @Pperc =  @Pperc+@kr4;
				if @pl4 = 'R' set @Rperc =  @Rperc+@kr4;
				if @pl4 = 'S' set @Sperc =  @Sperc+@kr4;
				if @pl4 = 'T' set @Tperc =  @Tperc+@kr4;
				if @pl4 = 'X' set @Xperc =  @Xperc+@kr4;
				if @pl4= 'AA' set @AAperc=@AAperc+@kr4;
				if @pl4='AR' set   @ARperc=@ARperc+@kr4;
				if @pl4='BA' set   @BAperc=@BAperc+@kr4;
				if @pl4='BB' set   @BBperc=@BBperc+@kr4;
				if @pl4='BR' set   @BRperc=@BRperc+@kr4;
				if @pl4='BS' set   @BSperc=@BSperc+@kr4;
				if @pl4='CI' set   @CIperc=@CIperc+@kr4;
				if @pl4='GA' set   @GAperc=@GAperc+@kr4;
				if @pl4='HE' set   @HEperc=@HEperc+@kr4;
				if @pl4='HL' set   @HLperc=@HLperc+@kr4;
				if @pl4='CH' set   @CHperc=@CHperc+@kr4;
				if @pl4='MA' set   @MAperc=@MAperc+@kr4;
				if @pl4='MB' set   @MBperc=@MBperc+@kr4;
				if @pl4='PI' set   @PIperc=@PIperc+@kr4;
				if @pl4='SB' set   @SBperc=@SBperc+@kr4;
				if @pl4='SD' set   @SDperc=@SDperc+@kr4;
				if @pl4='SG' set   @SGperc=@SGperc+@kr4;
				if @pl4='SH' set   @SHperc=@SHperc+@kr4;
				if @pl4='SL' set   @SLperc=@SLperc+@kr4;
				if @pl4='SM' set   @SMperc=@SMperc+@kr4;
				if @pl4='SV' set   @SVperc=@SVperc+@kr4;
				if @pl4='WG' set   @WGperc=@WGperc+@kr4;
				if @pl4='ZB' set   @ZBperc=@ZBperc+@kr4;
				if @pl4='L' set   @Lperc=@Lperc+@kr4;
-------------------------------------------------------------
				if @pl5 = 'GL' set @GLperc =  @GLperc+@kr5;
				if @pl5 = 'A' set @Aperc =  @Aperc+@kr5;
				if @pl5 = 'B' set @Bperc =  @Bperc+@kr5;
				if @pl5 = 'D' set @Dperc =  @Dperc+@kr5;
				if @pl5 = 'F' set @Fperc =  @Fperc+@kr5;
				if @pl5 = 'G' set @Gperc =  @Gperc+@kr5;
				if @pl5 = 'H' set @Hperc =  @Hperc+@kr5;
				if @pl5 = 'J' set @Jperc =  @Jperc+@kr5;
				if @pl5 = 'M' set @Mperc =  @Mperc+@kr5;
				if @pl5 = 'N' set @Nperc =  @Nperc+@kr5;
				if @pl5 = 'P' set @Pperc =  @Pperc+@kr5;
				if @pl5 = 'R' set @Rperc =  @Rperc+@kr5;
				if @pl5 = 'S' set @Sperc =  @Sperc+@kr5;
				if @pl5 = 'T' set @Tperc =  @Tperc+@kr5;
				if @pl5 = 'X' set @Xperc =  @Xperc+@kr5;
				if @pl5= 'AA' set @AAperc=@AAperc+@kr5;
				if @pl5='AR' set   @ARperc=@ARperc+@kr5;
				if @pl5='BA' set   @BAperc=@BAperc+@kr5;
				if @pl5='BB' set   @BBperc=@BBperc+@kr5;
				if @pl5='BR' set   @BRperc=@BRperc+@kr5;
				if @pl5='BS' set   @BSperc=@BSperc+@kr5;
				if @pl5='CI' set   @CIperc=@CIperc+@kr5;
				if @pl5='GA' set   @GAperc=@GAperc+@kr5;
				if @pl5='HE' set   @HEperc=@HEperc+@kr5;
				if @pl5='HL' set   @HLperc=@HLperc+@kr5;
				if @pl5='CH' set   @CHperc=@CHperc+@kr5;
				if @pl5='MA' set   @MAperc=@MAperc+@kr5;
				if @pl5='MB' set   @MBperc=@MBperc+@kr5;
				if @pl5='PI' set   @PIperc=@PIperc+@kr5;
				if @pl5='SB' set   @SBperc=@SBperc+@kr5;
				if @pl5='SD' set   @SDperc=@SDperc+@kr5;
				if @pl5='SG' set   @SGperc=@SGperc+@kr5;
				if @pl5='SH' set   @SHperc=@SHperc+@kr5;
				if @pl5='SL' set   @SLperc=@SLperc+@kr5;
				if @pl5='SM' set   @SMperc=@SMperc+@kr5;
				if @pl5='SV' set   @SVperc=@SVperc+@kr5;
				if @pl5='WG' set   @WGperc=@WGperc+@kr5;
				if @pl5='ZB' set   @ZBperc=@ZBperc+@kr5;
				if @pl5='L' set   @Lperc=@Lperc+@kr5;
-------------------------------------------------------------


		FETCH NEXT FROM cur_kravy INTO @pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5,@CIS_KRAVA
	END
	  
			set @MEDZI2= (select priemMedzi  from View_CP_MedziObdMeso where chovatel=@chov_id);
	
	close cur_kravy;
	Deallocate cur_kravy
	
	    IF  @GLperc>@plmax1 BEGIN Set @plmax1=@GLperc; Set @plmax1Pismeno='GL'  END
		IF  @Aperc>@plmax1 BEGIN Set @plmax1=@Aperc; Set @plmax1Pismeno='A'  END
		IF  @Bperc>@plmax1 BEGIN Set @plmax1=@Bperc; Set @plmax1Pismeno='B'  END
		IF  @Dperc>@plmax1 BEGIN Set @plmax1=@Dperc; Set @plmax1Pismeno='D'  END
		IF  @Fperc>@plmax1 BEGIN Set @plmax1=@Fperc; Set @plmax1Pismeno='F'  END
		IF  @Gperc>@plmax1 BEGIN Set @plmax1=@Gperc; Set @plmax1Pismeno='G'  END
		IF  @Hperc>@plmax1 BEGIN Set @plmax1=@Hperc; Set @plmax1Pismeno='H'  END
		IF  @Jperc>@plmax1 BEGIN Set @plmax1=@Jperc; Set @plmax1Pismeno='J'  END
		IF  @Lperc>@plmax1 BEGIN Set @plmax1=@Lperc; Set @plmax1Pismeno='L'  END
		IF  @Mperc>@plmax1 BEGIN Set @plmax1=@Mperc; Set @plmax1Pismeno='M'  END
		IF  @Nperc>@plmax1 BEGIN Set @plmax1=@Nperc; Set @plmax1Pismeno='N'  END
		IF  @Pperc>@plmax1 BEGIN Set @plmax1=@Pperc; Set @plmax1Pismeno='P'  END
		IF  @Rperc>@plmax1 BEGIN Set @plmax1=@Rperc; Set @plmax1Pismeno='R'  END
		IF  @Sperc>@plmax1 BEGIN Set @plmax1=@Sperc; Set @plmax1Pismeno='S'  END
		IF  @Tperc>@plmax1 BEGIN Set @plmax1=@Tperc; Set @plmax1Pismeno='T'  END
		IF  @Xperc>@plmax1 BEGIN Set @plmax1=@Xperc; Set @plmax1Pismeno='X'  END
		IF  @AAperc>@plmax1 BEGIN Set @plmax1=@AAperc; Set @plmax1Pismeno='AA'  END
		IF  @ARperc>@plmax1 BEGIN Set @plmax1=@ARperc; Set @plmax1Pismeno='AR'  END
		IF  @BAperc>@plmax1 BEGIN Set @plmax1=@BAperc; Set @plmax1Pismeno='BA'  END
		IF  @BBperc>@plmax1 BEGIN Set @plmax1=@BBperc; Set @plmax1Pismeno='BB'  END
		IF  @BRperc>@plmax1 BEGIN Set @plmax1=@BRperc; Set @plmax1Pismeno='BR'  END
		IF  @BSperc>@plmax1 BEGIN Set @plmax1=@BSperc; Set @plmax1Pismeno='BS'  END
		IF  @CIperc>@plmax1 BEGIN Set @plmax1=@CIperc; Set @plmax1Pismeno='CI'  END
		IF  @GAperc>@plmax1 BEGIN Set @plmax1=@GAperc; Set @plmax1Pismeno='GA'  END
		IF  @HEperc>@plmax1 BEGIN Set @plmax1=@HEperc; Set @plmax1Pismeno='HE'  END
		IF  @HLperc>@plmax1 BEGIN Set @plmax1=@HLperc; Set @plmax1Pismeno='HL'  END
		IF  @CHperc>@plmax1 BEGIN Set @plmax1=@CHperc; Set @plmax1Pismeno='CH'  END
		IF  @MAperc>@plmax1 BEGIN Set @plmax1=@MAperc; Set @plmax1Pismeno='MA'  END
		IF  @MBperc>@plmax1 BEGIN Set @plmax1=@MBperc; Set @plmax1Pismeno='MB'  END
		IF  @PIperc>@plmax1 BEGIN Set @plmax1=@PIperc; Set @plmax1Pismeno='PI'  END
		IF  @SBperc>@plmax1 BEGIN Set @plmax1=@SBperc; Set @plmax1Pismeno='SB'  END
		IF  @SDperc>@plmax1 BEGIN Set @plmax1=@SDperc; Set @plmax1Pismeno='SD'  END
		IF  @SGperc>@plmax1 BEGIN Set @plmax1=@SGperc; Set @plmax1Pismeno='SG'  END
		IF  @SHperc>@plmax1 BEGIN Set @plmax1=@SHperc; Set @plmax1Pismeno='SH'  END
		IF  @SLperc>@plmax1 BEGIN Set @plmax1=@SLperc; Set @plmax1Pismeno='SL'  END
		IF  @SMperc>@plmax1 BEGIN Set @plmax1=@SMperc; Set @plmax1Pismeno='SM'  END
		IF  @SVperc>@plmax1 BEGIN Set @plmax1=@SVperc; Set @plmax1Pismeno='SV'  END
		IF  @WGperc>@plmax1 BEGIN Set @plmax1=@WGperc; Set @plmax1Pismeno='WG'  END
		IF  @ZBperc>@plmax1 BEGIN Set @plmax1=@ZBperc; Set @plmax1Pismeno='ZB'  END
----------------------------------------------------------------------------
-----------------------MAX KRV 2---------------------
  
		IF  (@GLperc>@plmax2 AND @plmax1Pismeno !='GL') BEGIN Set @plmax2=@GLperc; Set @plmax2Pismeno='GL'  END
		IF  (@Aperc>@plmax2 AND @plmax1Pismeno !='A') BEGIN Set @plmax2=@Aperc; Set @plmax2Pismeno='A'  END
		IF  (@Bperc>@plmax2 AND @plmax1Pismeno !='B') BEGIN Set @plmax2=@Bperc; Set @plmax2Pismeno='B'  END
		IF  (@Dperc>@plmax2 AND @plmax1Pismeno !='D') BEGIN Set @plmax2=@Dperc; Set @plmax2Pismeno='D'  END
		IF  (@Fperc>@plmax2 AND @plmax1Pismeno !='F') BEGIN Set @plmax2=@Fperc; Set @plmax2Pismeno='F'  END
		IF  (@Gperc>@plmax2 AND @plmax1Pismeno !='G') BEGIN Set @plmax2=@Gperc; Set @plmax2Pismeno='G'  END
		IF  (@Hperc>@plmax2 AND @plmax1Pismeno !='H') BEGIN Set @plmax2=@Hperc; Set @plmax2Pismeno='H'  END
		IF  (@Jperc>@plmax2 AND @plmax1Pismeno !='J') BEGIN Set @plmax2=@Jperc; Set @plmax2Pismeno='J'  END
		IF  (@Lperc>@plmax2 AND @plmax1Pismeno !='L') BEGIN Set @plmax2=@Lperc; Set @plmax2Pismeno='L'  END
		IF  (@Mperc>@plmax2 AND @plmax1Pismeno !='M') BEGIN Set @plmax2=@Mperc; Set @plmax2Pismeno='M'  END
		IF  (@Nperc>@plmax2 AND @plmax1Pismeno !='N') BEGIN Set @plmax2=@Nperc; Set @plmax2Pismeno='N'  END
		IF  (@Pperc>@plmax2 AND @plmax1Pismeno !='P') BEGIN Set @plmax2=@Pperc; Set @plmax2Pismeno='P'  END
		IF  (@Rperc>@plmax2 AND @plmax1Pismeno !='R') BEGIN Set @plmax2=@Rperc; Set @plmax2Pismeno='R'  END
		IF  (@Sperc>@plmax2 AND @plmax1Pismeno !='S') BEGIN Set @plmax2=@Sperc; Set @plmax2Pismeno='S'  END
		IF  (@Tperc>@plmax2 AND @plmax1Pismeno !='T') BEGIN Set @plmax2=@Tperc; Set @plmax2Pismeno='T'  END
		IF  (@Xperc>@plmax2 AND @plmax1Pismeno !='X') BEGIN Set @plmax2=@Xperc; Set @plmax2Pismeno='X'  END
		IF  (@AAperc>@plmax2 AND @plmax1Pismeno !='AA') BEGIN Set @plmax2=@AAperc; Set @plmax2Pismeno='AA'  END
		IF  (@ARperc>@plmax2 AND @plmax1Pismeno !='AR') BEGIN Set @plmax2=@ARperc; Set @plmax2Pismeno='AR'  END
		IF  (@BAperc>@plmax2 AND @plmax1Pismeno !='BA') BEGIN Set @plmax2=@BAperc; Set @plmax2Pismeno='BA'  END
		IF  (@BBperc>@plmax2 AND @plmax1Pismeno !='BB') BEGIN Set @plmax2=@BBperc; Set @plmax2Pismeno='BB'  END
		IF  (@BRperc>@plmax2 AND @plmax1Pismeno !='BR') BEGIN Set @plmax2=@BRperc; Set @plmax2Pismeno='BR'  END
		IF  (@BSperc>@plmax2 AND @plmax1Pismeno !='BS') BEGIN Set @plmax2=@BSperc; Set @plmax2Pismeno='BS'  END
		IF  (@CIperc>@plmax2 AND @plmax1Pismeno !='CI') BEGIN Set @plmax2=@CIperc; Set @plmax2Pismeno='CI'  END
		IF  (@GAperc>@plmax2 AND @plmax1Pismeno !='GA') BEGIN Set @plmax2=@GAperc; Set @plmax2Pismeno='GA'  END
		IF  (@HEperc>@plmax2 AND @plmax1Pismeno !='HE') BEGIN Set @plmax2=@HEperc; Set @plmax2Pismeno='HE'  END
		IF  (@HLperc>@plmax2 AND @plmax1Pismeno !='HL') BEGIN Set @plmax2=@HLperc; Set @plmax2Pismeno='HL'  END
		IF  (@CHperc>@plmax2 AND @plmax1Pismeno !='CH') BEGIN Set @plmax2=@CHperc; Set @plmax2Pismeno='CH'  END
		IF  (@MAperc>@plmax2 AND @plmax1Pismeno !='MA') BEGIN Set @plmax2=@MAperc; Set @plmax2Pismeno='MA'  END
		IF  (@MBperc>@plmax2 AND @plmax1Pismeno !='MB') BEGIN Set @plmax2=@MBperc; Set @plmax2Pismeno='MB'  END
		IF  (@PIperc>@plmax2 AND @plmax1Pismeno !='PI') BEGIN Set @plmax2=@PIperc; Set @plmax2Pismeno='PI'  END
		IF  (@SBperc>@plmax2 AND @plmax1Pismeno !='SB') BEGIN Set @plmax2=@SBperc; Set @plmax2Pismeno='SB'  END
		IF  (@SDperc>@plmax2 AND @plmax1Pismeno !='SD') BEGIN Set @plmax2=@SDperc; Set @plmax2Pismeno='SD'  END
		IF  (@SGperc>@plmax2 AND @plmax1Pismeno !='SG') BEGIN Set @plmax2=@SGperc; Set @plmax2Pismeno='SG'  END
		IF  (@SHperc>@plmax2 AND @plmax1Pismeno !='SH') BEGIN Set @plmax2=@SHperc; Set @plmax2Pismeno='SH'  END
		IF  (@SLperc>@plmax2 AND @plmax1Pismeno !='SL') BEGIN Set @plmax2=@SLperc; Set @plmax2Pismeno='SL'  END
		IF  (@SMperc>@plmax2 AND @plmax1Pismeno !='SM') BEGIN Set @plmax2=@SMperc; Set @plmax2Pismeno='SM'  END
		IF  (@SVperc>@plmax2 AND @plmax1Pismeno !='SV') BEGIN Set @plmax2=@SVperc; Set @plmax2Pismeno='SV'  END
		IF  (@WGperc>@plmax2 AND @plmax1Pismeno !='WG') BEGIN Set @plmax2=@WGperc; Set @plmax2Pismeno='WG'  END
		IF  (@ZBperc>@plmax2 AND @plmax1Pismeno !='ZB') BEGIN Set @plmax2=@ZBperc; Set @plmax2Pismeno='ZB'  END
--------------------KONEC-------------------------------------------------------------------------------------------------------
----------------MAX KRV3 -------------------------------------------------------------------------------------------------------
		IF  (@GLperc>@plmax3 AND @plmax1Pismeno !='GL' AND @plmax2Pismeno !='GL') BEGIN Set @plmax3=@GLperc; Set @plmax3Pismeno='GL'  END
		IF  (@Aperc>@plmax3 AND @plmax1Pismeno !='A' AND @plmax2Pismeno !='A') BEGIN Set @plmax3=@Aperc; Set @plmax3Pismeno='A'  END
		IF  (@Bperc>@plmax3 AND @plmax1Pismeno !='B' AND @plmax2Pismeno !='B') BEGIN Set @plmax3=@Bperc; Set @plmax3Pismeno='B'  END
		IF  (@Dperc>@plmax3 AND @plmax1Pismeno !='D' AND @plmax2Pismeno !='D') BEGIN Set @plmax3=@Dperc; Set @plmax3Pismeno='D'  END
		IF  (@Fperc>@plmax3 AND @plmax1Pismeno !='F' AND @plmax2Pismeno !='F') BEGIN Set @plmax3=@Fperc; Set @plmax3Pismeno='F'  END
		IF  (@Gperc>@plmax3 AND @plmax1Pismeno !='G' AND @plmax2Pismeno !='G') BEGIN Set @plmax3=@Gperc; Set @plmax3Pismeno='G'  END
		IF  (@Hperc>@plmax3 AND @plmax1Pismeno !='H' AND @plmax2Pismeno !='H') BEGIN Set @plmax3=@Hperc; Set @plmax3Pismeno='H'  END
		IF  (@Jperc>@plmax3 AND @plmax1Pismeno !='J' AND @plmax2Pismeno !='J') BEGIN Set @plmax3=@Jperc; Set @plmax3Pismeno='J'  END
		IF  (@Lperc>@plmax3 AND @plmax1Pismeno !='L' AND @plmax2Pismeno !='L') BEGIN Set @plmax3=@Lperc; Set @plmax3Pismeno='L'  END
		IF  (@Mperc>@plmax3 AND @plmax1Pismeno !='M' AND @plmax2Pismeno !='M') BEGIN Set @plmax3=@Mperc; Set @plmax3Pismeno='M'  END
		IF  (@Nperc>@plmax3 AND @plmax1Pismeno !='N' AND @plmax2Pismeno !='N') BEGIN Set @plmax3=@Nperc; Set @plmax3Pismeno='N'  END
		IF  (@Pperc>@plmax3 AND @plmax1Pismeno !='P' AND @plmax2Pismeno !='P') BEGIN Set @plmax3=@Pperc; Set @plmax3Pismeno='P'  END
		IF  (@Rperc>@plmax3 AND @plmax1Pismeno !='R' AND @plmax2Pismeno !='R') BEGIN Set @plmax3=@Rperc; Set @plmax3Pismeno='R'  END
		IF  (@Sperc>@plmax3 AND @plmax1Pismeno !='S' AND @plmax2Pismeno !='S') BEGIN Set @plmax3=@Sperc; Set @plmax3Pismeno='S'  END
		IF  (@Tperc>@plmax3 AND @plmax1Pismeno !='T' AND @plmax2Pismeno !='T') BEGIN Set @plmax3=@Tperc; Set @plmax3Pismeno='T'  END
		IF  (@Xperc>@plmax3 AND @plmax1Pismeno !='X' AND @plmax2Pismeno !='X') BEGIN Set @plmax3=@Xperc; Set @plmax3Pismeno='X'  END
		IF  (@AAperc>@plmax3 AND @plmax1Pismeno !='AA' AND @plmax2Pismeno !='AA') BEGIN Set @plmax3=@AAperc; Set @plmax3Pismeno='AA'  END
		IF  (@ARperc>@plmax3 AND @plmax1Pismeno !='AR' AND @plmax2Pismeno !='AR') BEGIN Set @plmax3=@ARperc; Set @plmax3Pismeno='AR'  END
		IF  (@BAperc>@plmax3 AND @plmax1Pismeno !='BA' AND @plmax2Pismeno !='BA') BEGIN Set @plmax3=@BAperc; Set @plmax3Pismeno='BA'  END
		IF  (@BBperc>@plmax3 AND @plmax1Pismeno !='BB' AND @plmax2Pismeno !='BB') BEGIN Set @plmax3=@BBperc; Set @plmax3Pismeno='BB'  END
		IF  (@BRperc>@plmax3 AND @plmax1Pismeno !='BR' AND @plmax2Pismeno !='BR') BEGIN Set @plmax3=@BRperc; Set @plmax3Pismeno='BR'  END
		IF  (@BSperc>@plmax3 AND @plmax1Pismeno !='BS' AND @plmax2Pismeno !='BS') BEGIN Set @plmax3=@BSperc; Set @plmax3Pismeno='BS'  END
		IF  (@CIperc>@plmax3 AND @plmax1Pismeno !='CI' AND @plmax2Pismeno !='CI') BEGIN Set @plmax3=@CIperc; Set @plmax3Pismeno='CI'  END
		IF  (@GAperc>@plmax3 AND @plmax1Pismeno !='GA' AND @plmax2Pismeno !='GA') BEGIN Set @plmax3=@GAperc; Set @plmax3Pismeno='GA'  END
		IF  (@HEperc>@plmax3 AND @plmax1Pismeno !='HE' AND @plmax2Pismeno !='HE') BEGIN Set @plmax3=@HEperc; Set @plmax3Pismeno='HE'  END
		IF  (@HLperc>@plmax3 AND @plmax1Pismeno !='HL' AND @plmax2Pismeno !='HL') BEGIN Set @plmax3=@HLperc; Set @plmax3Pismeno='HL'  END
		IF  (@CHperc>@plmax3 AND @plmax1Pismeno !='CH' AND @plmax2Pismeno !='CH') BEGIN Set @plmax3=@CHperc; Set @plmax3Pismeno='CH'  END
		IF  (@MAperc>@plmax3 AND @plmax1Pismeno !='MA' AND @plmax2Pismeno !='MA') BEGIN Set @plmax3=@MAperc; Set @plmax3Pismeno='MA'  END
		IF  (@MBperc>@plmax3 AND @plmax1Pismeno !='MB' AND @plmax2Pismeno !='MB') BEGIN Set @plmax3=@MBperc; Set @plmax3Pismeno='MB'  END
		IF  (@PIperc>@plmax3 AND @plmax1Pismeno !='PI' AND @plmax2Pismeno !='PI') BEGIN Set @plmax3=@PIperc; Set @plmax3Pismeno='PI'  END
		IF  (@SBperc>@plmax3 AND @plmax1Pismeno !='SB' AND @plmax2Pismeno !='SB') BEGIN Set @plmax3=@SBperc; Set @plmax3Pismeno='SB'  END
		IF  (@SDperc>@plmax3 AND @plmax1Pismeno !='SD' AND @plmax2Pismeno !='SD') BEGIN Set @plmax3=@SDperc; Set @plmax3Pismeno='SD'  END
		IF  (@SGperc>@plmax3 AND @plmax1Pismeno !='SG' AND @plmax2Pismeno !='SG') BEGIN Set @plmax3=@SGperc; Set @plmax3Pismeno='SG'  END
		IF  (@SHperc>@plmax3 AND @plmax1Pismeno !='SH' AND @plmax2Pismeno !='SH') BEGIN Set @plmax3=@SHperc; Set @plmax3Pismeno='SH'  END
		IF  (@SLperc>@plmax3 AND @plmax1Pismeno !='SL' AND @plmax2Pismeno !='SL') BEGIN Set @plmax3=@SLperc; Set @plmax3Pismeno='SL'  END
		IF  (@SMperc>@plmax3 AND @plmax1Pismeno !='SM' AND @plmax2Pismeno !='SM') BEGIN Set @plmax3=@SMperc; Set @plmax3Pismeno='SM'  END
		IF  (@SVperc>@plmax3 AND @plmax1Pismeno !='SV' AND @plmax2Pismeno !='SV') BEGIN Set @plmax3=@SVperc; Set @plmax3Pismeno='SV'  END
		IF  (@WGperc>@plmax3 AND @plmax1Pismeno !='WG' AND @plmax2Pismeno !='WG') BEGIN Set @plmax3=@WGperc; Set @plmax3Pismeno='WG'  END
		IF  (@ZBperc>@plmax3 AND @plmax1Pismeno !='ZB' AND @plmax2Pismeno !='ZB') BEGIN Set @plmax3=@ZBperc; Set @plmax3Pismeno='ZB'  END
 declare @okres varchar(3);
 set @okres=SUBSTRING(@chov_id,2,2);
	  -- print N' ------------ ';
	   declare @vaj int;
	   set @vaj=
	   (SELECT tab1.PocVazeny from (/*namiesto View_CP_TELATA210_FULL je tu z neho select, nakolko vo view si management studio prerobi select na nepouzitelny*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2') and t.CHOVATEL = @chov_id
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id) ; 

 declare @hmot int;
 set @hmot=(
 SELECT tab1.avr from (/*namiesto View_CP_TELATA210_FULL je tu z neho select*/
SELECT    t.CHOVATEL, SUM(v.HMOTPREPOC) / COUNT(*) AS avr, COUNT(*) AS PocVazeny
FROM         dbo.CM_Vazenia AS v INNER JOIN
                      dbo.CM_Telata AS t ON t.CISTELATA = v.CISTELATA
WHERE     (v.DNIPREPOC = 210) AND (v.PRIRPREPOC BETWEEN 300 AND 2000) 
and (DATEDIFF(day,t.datvyr,getdate())<=365 or t.DATVYR is null)
  and t.CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2') and t.CHOVATEL = @chov_id
GROUP BY t.CHOVATEL ) as tab1
where chovatel=@chov_id
 )

 declare @index float
 IF(@VAJ>0 and @MEDZI2>0)
	BEGIN
		set @index= (@HMOT*365)/@MEDZI2;
	END
	ELSE SET @INDEX=0;
 --print @hmot;
 --print @vaj;
 --print @index
	   

	   declare @kravStav int;
	   declare @MDStav int;
	   set @kravStav=(SELECT count(*)
  FROM CM_Krava
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null))

  /*
  telata sa vyberaju na zaklade takej podmienky,
  ze mozu byt uz rok vyradene a toto tela sa nenachadza v CM_Krava,
  nakolko uz ako tela nie je povazovane za tela,
  jedine v pripade, ze toto tela je zaradzovane do CM_Krava na zaklade inseminacie a vtedy je na chove ale stale ako tela,
  kde sa chov konci na xxx xxx xx0, preto je do podmienky v nasledujucom selecte pridany atr. priznakku = '2'.
  pri zaradzovani do inseminacie, je sice tato "krava" v CM_Krava, ale je telatom, priznakku ma iny.  
   */
  set @MDStav=(SELECT count(*)
  FROM CM_Telata
  where CHOVATEL=@chov_id and PRIZNAKKU='2'
  and (DATEDIFF(day,datvyr,getdate())<=365 or DATVYR is null)
   and CISTELATA not in (select ciskravy from CM_Krava where PRIZNAKKU='2'))

  declare @nazovPod varchar(50);
  set @nazovPod=(select NAZOVSKR from NM_Podnik where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2) and podnik=SUBSTRING(@chov_id,4,3));

  declare @kraj varchar(20);
  set @kraj=(select nazov from NC_KRAJ where kraj=SUBSTRING(@chov_id,1,1));
  set @kraj=SUBSTRING(@chov_id,1,1)+'-'+@kraj;

  declare @okres11 varchar(20);
  set @okres11=(select NAZOV from NC_OKRES where kraj=SUBSTRING(@chov_id,1,1) and okres=SUBSTRING(@chov_id,2,2));
  set @okres11 = SUBSTRING(@chov_id,2,2)+'-'+@okres11

	    insert into dbo.CP_ChovatelMesoPlemena ([kraj],[okres],[podnik],[chov],[chovatel],[pl1],[pl2],[pl3],[nazov],[MEDZI],[POCET_VAZENI],[HMOTNOST],[HODN_INDEX],[stav_kravy],[stav_MD],[nazovPodnik]) 
		      values (@kraj,@okres11,SUBSTRING(@chov_id,4,3),SUBSTRING(@chov_id,7,3),@chov_id,@plmax1Pismeno,@plmax2Pismeno,@plmax3Pismeno,(select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3)),@MEDZI2,@VAJ,@hmot,@index,@kravStav,@MDStav,@nazovPod);
			

		--insert into dbo.CP_ChovatelMesoPlemena() select NAZOV from NM_CHOVMAS where kraj=SUBSTRING(@chov_id,1,1) and OKRES=SUBSTRING(@chov_id,2,2) and PODNIK=SUBSTRING(@chov_id,4,3) and CHOV=SUBSTRING(@chov_id,7,3);

       FETCH NEXT FROM cur_Chovatel INTO @chov_id;  
END   

close cur_chovatel
Deallocate cur_chovatel
--PRINT 'KONIEC';
RETURN
END

go

CREATE PROCEDURE [dbo].[Roc_MPHD_19_prepocet] 
@datumOd date,
@datumDo date=''

AS
BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR

SELECT DISTINCT ch.kraj+ch.okres+ch.podnik + ch.CHOV  
		FROM NM_CHOVMAS as ch
		left outer join  NM_HDDETAIL as n on n.kraj+n.okres+n.podnik =ch.kraj+ch.okres+ch.podnik 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) = '7'
			and ch.chov not in('010','699')
			and SPVYKON = '4' AND PRIZNAK in ('01','99')  AND TECHUSMD = '00'

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MPHD_19 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za podnik 
declare  @podnik table
	(
	podnik varchar(6),
	pocet_ch int
	)
insert @podnik
	Select KrOk + Podnik, 
		sum(case when chov <> '' then 1 else 0 end) as pocet_ch 
	from  Roc_MPHD_Tab_19
	group by  KrOk + Podnik

DECLARE prepocet_cursor CURSOR
FOR
	Select distinct podnik 
		from @podnik
		where pocet_ch > 1

	OPEN prepocet_cursor
	   FETCH NEXT FROM prepocet_cursor INTO @chov

	   WHILE @@FETCH_STATUS = 0
		   BEGIN
			   SET @counter = @counter + 1;                    
            
				PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
				EXEC Roc_MPHD_19 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR

SELECT DISTINCT ch.kraj+ch.okres
		FROM NM_CHOVMAS as ch
		left outer join  NM_HDDETAIL as n on n.kraj+n.okres+n.podnik =ch.kraj+ch.okres+ch.podnik 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) = '7'
			and ch.chov not in('010','699')
			and SPVYKON = '4'  AND PRIZNAK in ('01','99') AND TECHUSMD = '00'


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MPHD_19 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

	   
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR

SELECT DISTINCT ch.kraj
		FROM NM_CHOVMAS as ch
		left outer join  NM_HDDETAIL as n on n.kraj+n.okres+n.podnik =ch.kraj+ch.okres+ch.podnik 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) = '7'
			and ch.chov not in('010','699')
			and SPVYKON = '4'  AND PRIZNAK in ('01','99') AND TECHUSMD = '00'

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MPHD_19 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
	set @chov = 'SR'
	PRINT 'Prepocitavam Slovensko'
	EXEC Roc_MPHD_19 @chov, @datumOd, @datumDo

END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	VZBER OKRESU A PORADIA DO REPORTU K OROCENKE
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_Tab_21_22_23]
	@rok varchar(4)
	AS BEGIN

	
 
 SELECT DISTINCT Por_okresu ,OKRES 


 FROM dbo.Roc_MLHD_Tab_21 AS R
 WHERE @rok =R.ROK

		end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 03.8.2011
-- Last update: 24.2.2014
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 
--				Odobrate S (12.5%) - ako vo FANDe
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_plem_potomok_nove]
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)
	
AS
BEGIN
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
	
	declare @podiely table 
	(
		PL [varchar](2),
		KR [decimal](5,2)	
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2)	
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2)
	
	select @PL1_O = PL1, 
		@KR1_O = KR1, 
		@PL2_O = PL2, 
		@KR2_O = KR2, 
		@PL3_O = PL3, 
		@KR3_O = KR3, 
		@PL4_O = PL4, 
		@KR4_O = KR4, 
		@PL5_O = PL5
	from CM_Byci 
	where USCISLO = @USCISLO_O
	/*
	select @PL1_M = PL1, 
		@KR1_M = KR1, 
		@PL2_M = PL2, 
		@KR2_M = KR2, 
		@PL3_M = PL3, 
		@KR3_M = KR3, 
		@PL4_M = PL4, 
		@KR4_M = KR4, 
		@PL5_M = PL5
	from CM_Krava
	where CISKRAVY = @USCISLO_M
	*/
	
	select top 1 @PL1_M = c.PL1, 
		@KR1_M = c.KR1, 
		@PL2_M = c.PL2, 
		@KR2_M = c.KR2, 
		@PL3_M = c.PL3, 
		@KR3_M = c.KR3, 
		@PL4_M = c.PL4, 
		@KR4_M = c.KR4, 
		@PL5_M = c.PL5
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		SELECT 
			k.PL1 AS PL1, 
			k.KR1 AS KR1, 
			k.PL2 AS PL2, 
			k.KR2 AS KR2, 
			k.PL3 AS PL3, 
			k.KR3 AS KR3, 
			k.PL4 AS PL4, 
			k.KR4 AS KR4, 
			k.PL5 AS PL5 
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			--AND k.DOVVYR IS NULL
			AND k.CHOVATEL = @CHOVATEL 
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		SELECT
			t.PL1 AS PL1, 
			t.KR1 AS KR1, 
			t.PL2 AS PL2, 
			t.KR2 AS KR2, 
			t.PL3 AS PL3, 
			t.KR3 AS KR3, 
			t.PL4 AS PL4, 
			t.KR4 AS KR4, 
			t.PL5 AS PL5 
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom)			
		end			
	end
	
	-- scitanie plemien a uzporiadanie od najvacsieho
	insert @podiely_usp 
	select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	GROUP by PL
	order by SUM(isnull(KR, 0)) desc, PL asc
	
	set @zvPlem = (select 0)
	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	if @zvPlem > 0
	-- treba pricitat zvyskove plemeno k hlavnemu
	begin
		update @podiely_usp
		set KR =  KR + isnull((select sum(KR) from @podiely_usp
		where KR < @zvPlem), 0)
		where ID = 1
		
		update @podiely_usp
		set KR = 0, PL = null
		where KR < @zvPlem
	end
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		select @PL5_P = PL from @podiely_usp where ID = 5		
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	

	select '              ' AS Potomok, 
	--@PL1_P AS PL1, 
	--@KR1_P AS KR1, 
	--@PL2_P AS PL2, 
	--@KR2_P AS KR2, 
	--@PL3_P AS PL3, 
	--@KR3_P AS KR3, 
	--@PL4_P AS PL4, 
	--@KR4_P AS KR4, 
	--@PL5_P AS PL5,
	--@PL1_P + '-' + CONVERT(varchar, ISNULL(@KR1_P, 0)) + ' ' +
	--ISNULL(@PL2_P + '-' + CONVERT(varchar, ISNULL(@KR2_P, 0)) + ' ','') +
	--ISNULL(@PL3_P + '-' + CONVERT(varchar, ISNULL(@KR3_P, 0)) + ' ','') +
	--ISNULL(@PL4_P + '-' + CONVERT(varchar, ISNULL(@KR4_P, 0)) + ' ','') +
	--ISNULL(@PL5_P, '')
	-- AS SKUPINA,
	@PL1_P + '-' + CONVERT(varchar, ISNULL(@KR1_P, 0)) as PL1_P,
	ISNULL(@PL2_P + '-' + CONVERT(varchar, ISNULL(@KR2_P, 0)),'') as PL2_P,
	ISNULL(@PL3_P + '-' + CONVERT(varchar, ISNULL(@KR3_P, 0)),'') as PL3_P,
	ISNULL(@PL4_P + '-' + CONVERT(varchar, ISNULL(@KR4_P, 0)),'') as PL4_P,
	ISNULL(@PL5_P, '') as PL5_P,

	
	@USCISLO_M AS Matka,

	--@PL1_M AS PL1_M, 
	--@KR1_M AS KR1_M, 
	--@PL2_M AS PL2_M, 
	--@KR2_M AS KR2_M, 
	--@PL3_M AS PL3_M, 
	--@KR3_M AS KR3_M, 
	--@PL4_M AS PL4_M, 
	--@KR4_M AS KR4_M, 
	--@PL5_M AS PL5_M,
	
	--@PL1_M + '-' + CONVERT(varchar, ISNULL(@KR1_M, 0)) + ' ' +
	--ISNULL(@PL2_M + '-' + CONVERT(varchar, ISNULL(@KR2_M, 0)) + ' ','') +
	--ISNULL(@PL3_M + '-' + CONVERT(varchar, ISNULL(@KR3_M, 0)) + ' ','') +
	--ISNULL(@PL4_M + '-' + CONVERT(varchar, ISNULL(@KR4_M, 0)) + ' ','') +
	--ISNULL(@PL5_M, '')
	-- AS SKUPINA,

	 @PL1_M + '-' + CONVERT(varchar, ISNULL(@KR1_M, 0)) as PL1_M,
	ISNULL(@PL2_M + '-' + CONVERT(varchar, ISNULL(@KR2_M, 0)),'') as PL2_M,
	ISNULL(@PL3_M + '-' + CONVERT(varchar, ISNULL(@KR3_M, 0)),'') as PL3_M,
	ISNULL(@PL4_M + '-' + CONVERT(varchar, ISNULL(@KR4_M, 0)),'') as PL4_M,
	ISNULL(@PL5_M, '')  as PL5_M,

	@USCISLO_O AS Otec,

	--@PL1_O + '-' + CONVERT(varchar, ISNULL(@KR1_O, 0)) + ' ' +
	--ISNULL(@PL2_O + '-' + CONVERT(varchar, ISNULL(@KR2_O, 0)) + ' ','') +
	--ISNULL(@PL3_O + '-' + CONVERT(varchar, ISNULL(@KR3_O, 0)) + ' ','') +
	--ISNULL(@PL4_O + '-' + CONVERT(varchar, ISNULL(@KR4_O, 0)) + ' ','') +
	--ISNULL(@PL5_O, '')
	-- AS SKUPINA
	@PL1_O + '-' + CONVERT(varchar, ISNULL(@KR1_O, 0))  AS PL1_O,
	ISNULL(@PL2_O + '-' + CONVERT(varchar, ISNULL(@KR2_O, 0)),'') AS PL2_O,
	ISNULL(@PL3_O + '-' + CONVERT(varchar, ISNULL(@KR3_O, 0)),'') AS PL3_O,
	ISNULL(@PL4_O + '-' + CONVERT(varchar, ISNULL(@KR4_O, 0)),'') AS PL4_O,
	ISNULL(@PL5_O, '') AS PL5_O

	--@PL1_O AS PL1_O, 
	--@KR1_O AS KR1_O, 
	--@PL2_O AS PL2_O, 
	--@KR2_O AS KR2_O, 
	--@PL3_O AS PL3_O, 
	--@KR3_O AS KR3_O, 
	--@PL4_O AS PL4_O, 
	--@KR4_O AS KR4_O, 
	--@PL5_O AS PL5
	--select @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	/*
	select 'Otec', @PL1_O, @KR1_O, @PL2_O, @KR2_O, @PL3_O, @KR3_O, @PL4_O, @KR4_O, @PL5_O
	select 'Matka', @PL1_M, @KR1_M, @PL2_M, @KR2_M, @PL3_M, @KR3_M, @PL4_M, @KR4_M, @PL5_M
	select 'Potomok', @PL1_P, @KR1_P, @PL2_P, @KR2_P, @PL3_P, @KR3_P, @PL4_P, @KR4_P, @PL5_P 
	*/
	return (0)
	
END


go



CREATE PROCEDURE [dbo].[C_VZ_MedziobdobieMesove] 
	
AS
BEGIN

/******************************
using table:CM_Krava,CM_Telata

changing table:CP_MedziObdMesove

used for: Creating medziobdobie for Mesova Krava used for View_CP_MedziObdMeso in volna zona -> CP_MedziObdMesove report


******************************/
	SET NOCOUNT ON;
	declare @chov_id varchar(9);
	declare @ucislo varchar(14)
	set @chov_id='';
	declare @porlakt as int;
	DECLARE @W INT;
	declare @pohlavie_posledne as int;
	declare @pohlavie_predosle as int;
	declare @datnar_predosle date; /*vytiahnutie datumov vo vonkajsom kurzore kvoli dvojickam, trojickam.., aby mo medzi nimi nebolo 0*/
	declare @datnar_posledne date;

	TRUNCATE TABLE CP_MedziObdMesove 


	DECLARE cur_Chovatel CURSOR FOR 
		select  distinct K.CISKRAVY, k.CHOVATEL
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and
		(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DOVVYR is null);
	  -- select distinct matka from plis.dbo.CM_Telata where PRIZNAKKU='2'


	  SET @W= (select  distinct COUNT( K.CISKRAVY)
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null)

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO @ucislo, @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			declare @medzi int
			set @medzi=0;
			declare @d int;
			set @d=0;
							declare c cursor for SELECT  TOP 1  DATEDIFF(DAY,T.DATNAR,T2.DATNAR)AS MEDZ,T2.PORLAK, T.pohlavie, T2.pohlavie, t.datnar, t2.datnar
							FROM DBO.CM_Telata AS T
							RIGHT JOIN (SELECT TOP 1 * FROM CM_Telata WHERE MATKA=@ucislo ORDER BY DATNAR DESC) AS T2 
							ON T.MATKA=T2.MATKA
							and t.DATNAR not in (SELECT top 1  v.DATNAR
  FROM CM_Krava as k
  inner join CM_Telata as v on k.CISKRAVY=v.MATKA
  where /*(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DOVVYR is null)
  and k.PRIZNAKKU='2'
  and netreba, je to vnoreny kurzor*/
  v.MATKA=@ucislo  order by v.DATNAR desc)
							order by t.DATNAR desc;

							open c;
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne, @datnar_predosle, @datnar_posledne;
							WHILE @@FETCH_STATUS = 0
							begin
							
								
									begin 
										SET @MEDZI=@MEDZI+@d ;
										/*ak su posledne dve otelenia ine ako 81 a 82 a tieto datumy oteleni su rozne (nie dvojicky) alebo je pohlavie posledne alebo predposledne null (berie sa to ako otelenie bez et)  vloz mo do tabulky*/
										if ((@pohlavie_predosle <> '81' and @pohlavie_predosle <> '82' and @pohlavie_posledne <> '81' and @pohlavie_posledne <> '82' and @datnar_posledne <> @datnar_predosle) or @pohlavie_posledne is null or @pohlavie_predosle is null)
											begin
												insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@d,@porlakt);
											end
										else /*inak zacni hladat posledne medziobdobie kravy kde su dve pohlavia za sebou 01,02.. (nie et)*/
											begin
												declare @datnarod date;
												declare @pohlavie int;
												declare @porlaktacie int;

												declare @datnarod_predosle date;
												declare @pohlavie_predosle2 int;
												declare @poradielaktacie int;

												declare @mo int;
												declare @exit_cursor bit;
												set @exit_cursor = 0;
												
												declare @continue_if bit;
												set @continue_if = 1;


												declare curs cursor for select DATNAR, POHLAVIE, porlak from CM_Telata where MATKA = @ucislo order by DATNAR desc /*zoradenie od poslednych oteleni*/

												open curs;
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
														WHILE @@FETCH_STATUS = 0 and @exit_cursor = 0
														begin
																begin 
																print cast(@datnarod as varchar(12))  + ' pohlavie: '+cast(@pohlavie as varchar(2))+ ' '+ 'poradie :' + cast(@porlaktacie as varchar(2))
																/*poradie laktacie bude jej posledne (pohl. ine ako 81,82), bez ohladu na to z kt. sa pocitalo MO*/
																if(@continue_if = 1)
																begin
																	if (@pohlavie<>'81' and @pohlavie<>'82' or @pohlavie is null) /*hladame poslednu laktaciu*/
																	begin
																		set @poradielaktacie = @porlaktacie;
																		set @continue_if = 0; /*ak si sa dostal sem uz nepokracuj v hladani posledneho poradia laktacie*/
																	end																	
																end;
																if (@pohlavie <> '81' and @pohlavie <> '82' and @pohlavie_predosle2 <> '81' and @pohlavie_predosle2 <> '82' and @datnarod <> @datnarod_predosle)
																	begin
																		set @mo =  DATEDIFF(DAY ,@datnarod, @datnarod_predosle);
																		insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@mo,@poradielaktacie);
																		print cast(@mo as varchar(3)) +' '+ cast(@poradielaktacie as varchar(2)); 
																		set @exit_cursor = 1;
																		print 'kurzor sa ukoncuje'
																	end;
									
																set @datnarod_predosle = @datnarod;
																set @pohlavie_predosle2 = @pohlavie;																
																end
														FETCH NEXT FROM curs INTO @datnarod,@pohlavie,@porlaktacie;
												END
												close curs;
												Deallocate curs;
											end;
									end

								
							FETCH NEXT FROM c INTO @d,@porlakt,@pohlavie_predosle, @pohlavie_posledne,@datnar_predosle, @datnar_posledne;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @ucislo,@chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;
 
 END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.9.2017
-- Description:	Vyber udajov do reportu Rocenka MLHD tabulka 1 (Vysledky kontroly mliekovej uzitkovosti za Slovensko)
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_Tab1_prepocet]
	@datumOd date,
	@datumDo date
	
as	
begin
insert into Roc_MLHD_Tab_1
 ([oblast]
      ,[stpec_7]
      ,[stpec_8]
      ,[stpec_9]
      ,[stpec_10]
      ,[stpec_11]
      ,[stpec_12]
      ,[stpec_13]
      
      ,[stpec_15]
      ,[stpec_16]
      ,[stpec_17]
      ,[stpec_18]
      ,[stpec_19]
      ,[stpec_20]
      ,[stpec_21]
      ,[stpec_22]
      ,[stpec_23]
      ,[stpec_24]
      ,[stpec_25]
      ,[stpec_26]
      ,[stpec_27]
      ,[stpec_28]
      ,[stpec_29]
      ,[rok]
      ,[Por]
      ,[DatumOd]
      ,[DatumDo]
      ,[datumGenerovania]
	  ,[stpec_14]
	  )
select 
  (case when filter = 'SR' then 'SLOVENSKO'
   when filter = 'SR,Obl1' then 'ZA VÝROBNÚ OBLASŤ 1'
   when filter = 'SR,Obl2' then 'ZA VÝROBNÚ OBLASŤ 2'
   when filter = 'SR,ChZ1' then 'ZA ŠĽACHTIT. CHOVY STRAKATÉ'	
   when filter = 'SR,ChZ2' then 'ZA ŠĽACHTIT. CHOVY PINZGAU'
   when filter = 'SR,ChZ3' then 'ZA ŠĽACHTIT. CHOVY HOLSTEIN'
   when filter = 'SR,ChZ5' then 'ZA ŠĽACHTIT. CHOVY BRAUNVIEH'
   when filter = 'SR,ChZ0' then 'OSTATNÉ CHOVY'
   when filter = 'SR, ,S01' then 'POĽNOHOSP. DRUŽSTVÁ'
   when filter = 'SR, ,S02' then 'ŠTÁTNE MAJETKY'
   when filter = 'SR, ,S03' then 'POĽNOHOSP. ŠKOLY'
   when filter = 'SR, ,S08' then 'SÚKROMNÝ SEKTOR'
   when filter = 'SR,KUst2' then 'ZA MAŠTALE DO 20'
   when filter = 'SR,KUst3' then 'MAŠT. 21-50'
   when filter = 'SR,KUst4' then 'MAŠT. 51-100'
   when filter = 'SR,KUst5' then 'MAŠT. 101-220'
   when filter = 'SR,KUst6' then 'MAŠT. 221-500'
   when filter = 'SR,KUst7' then 'MAŠT. 501 A VIAC'
  else ''
  END  ) as oblast

  , PocLakN1 as stpec_7
      ,LakdniNL1 as stpec_8
      ,MliekNorL1 as stpec_9
      , round((TukNorL1*100)/MliekNorL1,2) as stpec_10
      ,TukNorL1 as stpec_11
      ,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
      ,BielkNorL1 as stpec_13
      --,as stpec_14Den
      --,as stpec_14Mesiac
      ,PocLakN2 as stpec_15
      ,LakDniNL2 as stpec_16
      ,MliekNorL2 as stpec_17
      ,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
	  
      ,TukNorL2 as stpec_19
      ,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
      ,BielkNorL2 as stpec_21
      ,MedziobdL2 as stpec_22
      ,PocLakNcelk as stpec_23      
	  ,LakDniNCelk as stpec_24
      ,MliekNorCelk as stpec_25
      ,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
      ,TukNorCelk as stpec_27
      ,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
      ,BielkNorCelk as stpec_29
      ,datepart (year,datumGenerovania)as rok
     ,(case when filter = 'SR' then '1'
   when filter = 'SR,Obl1' then '2'
   when filter = 'SR,Obl2' then '3'
   when filter = 'SR,ChZ1' then '4'	
   when filter = 'SR,ChZ2' then '5'
   when filter = 'SR,ChZ3' then '6'
   when filter = 'SR,ChZ5' then '7'
   when filter = 'SR,ChZ0' then '8'
   when filter = 'SR, ,S01' then '9'
   when filter = 'SR, ,S02' then '10'
   when filter = 'SR, ,S03' then '11'
   when filter = 'SR, ,S08' then '12'
   when filter = 'SR,KUst2' then '13'
   when filter = 'SR,KUst3' then '14'
   when filter = 'SR,KUst4' then '15'
   when filter = 'SR,KUst5' then '16'
   when filter = 'SR,KUst6' then '17'
   when filter = 'SR,KUst7' then '18'
  else ''
  END  ) as Por
      ,DatumOd as DatumOd
      ,DatumDo as DatumDo
      ,datumGenerovania as datumGenerovania
	  ,MedziobdL1 as stpec_14
	  FROM [dbo].[CR_LaktacneZostavy] where (DatumOd = @datumOd or DatumOd='2017-01-01' )and DatumDo = @datumDo 
	  and Filter in ('SR','SR,Obl1','SR,Obl2','SR,ChZ1','SR,ChZ2' ,'SR,ChZ3' ,'SR,ChZ5','SR,ChZ0' ,'SR, ,S01','SR, ,S02','SR, ,S03','SR, ,S08',
	  'SR,KUst2' ,'SR,KUst3' , 'SR,KUst4','SR,KUst5' , 'SR,KUst6','SR,KUst7') 


end
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 19.11.2015
-- Description:	Pocitanie inseminacii za chov, vstupny parameter = cislo chovu
-- =============================================

CREATE PROCEDURE pocitanie_inseminacii_za_chov @chov VARCHAR(9)
AS

DECLARE @krava VARCHAR(14);
DECLARE @iplca VARCHAR(14);
DECLARE @counter INT;
DECLARE @count INT;
DECLARE @poradie INT;
DECLARE @pdatum DATE;
DECLARE @fdatum DATE;
DECLARE @ivyse INT;

DECLARE @inseminacia1 INT;
DECLARE @inseminacia2 INT;
DECLARE @inseminacia3 INT;
DECLARE @inseminacia4 INT;
DECLARE @telnych_krav INT;

--SET @chov = '108506091'

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL
        BEGIN
            DROP TABLE #inseminacie
        END


    CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99
					

            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

	-- SELECT * FROM #inseminacie
    SELECT  @inseminacia1 = COUNT(@krava)
    FROM    #inseminacie
    SELECT  @inseminacia2 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie = 2
    SELECT  @inseminacia3 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie = 3
    SELECT  @inseminacia4 = COUNT(@krava)
    FROM    #inseminacie
    WHERE   poradie >= 4
    SELECT  @telnych_krav = COUNT(@krava)
    FROM    #inseminacie
    WHERE   ivyse = 9


    SELECT  @inseminacia1 AS inseminacia1 ,
            @inseminacia2 AS inseminacia2 ,
            @inseminacia3 AS inseminacia3 ,
            @inseminacia4 AS inseminacia4 ,
            @telnych_krav AS telnych_krav

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


go


/***masova rocenka - Prehlad o pocte narodenych teliat podla mesiacov
 Masova rocenka 2017 - str.143**/

 CREATE procedure [dbo].[Roc_MPHD_19]
	@chov varchar(9) null,
	@datumOd date,
	@datumDo date
	
as 
begin

delete from Roc_MPHD_Tab_19 where rok = DATEPART(year, @datumOd) and @chov = KrOk + Podnik + Chov

--declare @chov varchar(9) = null ,@datumOd date = '2017-01-01', @datumDo date ='2017-12-31'

	declare @telata table
		(
		cistelata varchar(14),
		pohlavie varchar(3),
		datnar date,
		mesiac varchar(2),
		chovnar varchar(9),
		porlak int
		)

	insert into @telata
	select t.CISTELATA, 
			case when t.pohlavie in ('2','02','32','22','42','52','82') then 'J'
				 when t.pohlavie in ('1','01','11','31','41','51','81') then 'B'			
			end as pohlavie,
			t.datnar,
			DATEPART(MONTH,t.DATNAR) as mesiac,
			t.CHOVNAR as chovnar,
			case when t.PORLAK = 1 or t.PORLAK is null then 1  else 5 end as porlak
		 from CM_Telata as t
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVNAR
			left outer join NM_HDDETAIL as n on n.kraj+n.okres+n.podnik = left(t.chovnar,6) 
			where ch.TYPZV = 1
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and left(ch.chov,1) = '7'
			and ch.chov not in('010','699')
			and SPVYKON = '4'  AND PRIZNAK in ('01','99') AND TECHUSMD = '00'
			and t.DATNAR >= @datumOd and t.DATNAR <= @datumDo
			and t.PRIZNAKKU = '2'
	union 
		select t.CISTELATA, 'J+B' as pohlavie,
				t.datnar,
				DATEPART(MONTH,t.DATNAR) as mesiac,
				t.CHOVNAR as chovnar,
				case when t.PORLAK = 1 or t.PORLAK is null then 1  else 5 end as porlak
		from CM_Telata as t 
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVNAR
			left outer join NM_HDDETAIL as n on n.kraj+n.okres+n.podnik = left(t.chovnar,6)
			where t.DATNAR >= @datumOd and t.DATNAR <= @datumDo
				and t.POHLAVIE in ('02','32','22','42','52','82','01','11','31','41','51','81') 
				and t.PRIZNAKKU = '2'
				and ch.TYPZV = 1
				and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and left(ch.chov,1) = '7'
				and ch.chov not in('010','699')
				and SPVYKON = '4'  AND PRIZNAK in ('01','99') AND TECHUSMD = '00'

	declare @tab2 table
		(	
		[chov] varchar(9),
		[m1_J] int,
		[m2_J] int,
		[m3_J] int,
		[m4_J] int,
		[m5_J] int,
		[m6_J] int,
		[m7_J] int,
		[m8_J] int,
		[m9_J] int,
		[m10_J] int,
		[m11_J] int,
		[m12_J] int,
		[m1_B] int,
		[m2_B] int,
		[m3_B] int,
		[m4_B] int,
		[m5_B] int,
		[m6_B] int,
		[m7_B] int,
		[m8_B] int,
		[m9_B] int,
		[m10_B] int,
		[m11_B] int,
		[m12_B] int,
		[m1_JB] int,
		[m2_JB] int,
		[m3_JB] int,
		[m4_JB] int,
		[m5_JB] int,
		[m6_JB] int,
		[m7_JB] int,
		[m8_JB] int,
		[m9_JB] int,
		[m10_JB] int,
		[m11_JB] int,
		[m12_JB] int,
		[od_prvostok_B] int,
		[od_krav_B] int,
		[od_prvostok_J] int,
		[od_krav_J] int
		)
	
	declare @kravy table
		(
		chov varchar(9),
		kravy_Z varchar(14),
		kravy_V varchar(14)
		)

	declare @stav_krav table
		(
		chov varchar(9),
		pocet_krav_Z int,
		pocet_krav_V int
		)

	declare @priem_stav_krav table
		(
		chov varchar(9),
		ciskravy varchar(14),
		pocet_dni int
		)

	declare @priem_stav_krav1 table
		(
		chov varchar(9),
		priem_stav_krav int
		)

/***** CHOV ****/
if (len(@chov) = 9)
	begin
	insert into @tab2 
		(chov, m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J, 
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B, 
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB, m9_JB, m10_JB, m11_JB, m12_JB, 
			od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J)
	select distinct chovnar,
		sum (case when mesiac = '1' and pohlavie = 'J' then 1 else 0 end) as m1_J,
		sum (case when mesiac = '2' and pohlavie = 'J' then 1 else 0 end) as m2_J,
		sum (case when mesiac = '3' and pohlavie = 'J' then 1 else 0 end) as m3_J,
		sum (case when mesiac = '4' and pohlavie = 'J' then 1 else 0 end) as m4_J,
		sum (case when mesiac = '5' and pohlavie = 'J' then 1 else 0 end) as m5_J,
		sum (case when mesiac = '6' and pohlavie = 'J' then 1 else 0 end) as m6_J,
		sum (case when mesiac = '7' and pohlavie = 'J' then 1 else 0 end) as m7_J,
		sum (case when mesiac = '8' and pohlavie = 'J' then 1 else 0 end) as m8_J,
		sum (case when mesiac = '9' and pohlavie = 'J' then 1 else 0 end) as m9_J,
		sum (case when mesiac = '10' and pohlavie = 'J' then 1 else 0 end) as m10_J,
		sum (case when mesiac = '11' and pohlavie = 'J' then 1 else 0 end) as m11_J,
		sum (case when mesiac = '12' and pohlavie = 'J' then 1 else 0 end) as m12_J,
		sum (case when mesiac = '1' and pohlavie = 'B' then 1 else 0 end) as m1_B,
		sum (case when mesiac = '2' and pohlavie = 'B' then 1 else 0 end) as m2_B,
		sum (case when mesiac = '3' and pohlavie = 'B' then 1 else 0 end) as m3_B,
		sum (case when mesiac = '4' and pohlavie = 'B' then 1 else 0 end) as m4_B,
		sum (case when mesiac = '5' and pohlavie = 'B' then 1 else 0 end) as m5_B,
		sum (case when mesiac = '6' and pohlavie = 'B' then 1 else 0 end) as m6_B,
		sum (case when mesiac = '7' and pohlavie = 'B' then 1 else 0 end) as m7_B,
		sum (case when mesiac = '8' and pohlavie = 'B' then 1 else 0 end) as m8_B,
		sum (case when mesiac = '9' and pohlavie = 'B' then 1 else 0 end) as m9_B,
		sum (case when mesiac = '10' and pohlavie = 'B' then 1 else 0 end) as m10_B,
		sum (case when mesiac = '11' and pohlavie = 'B' then 1 else 0 end) as m11_B,
		sum (case when mesiac = '12' and pohlavie = 'B' then 1 else 0 end) as m12_B,
		sum (case when mesiac = '1' and pohlavie = 'J+B' then 1 else 0 end) as m1_JB,
		sum (case when mesiac = '2' and pohlavie = 'J+B' then 1 else 0 end) as m2_JB,
		sum (case when mesiac = '3' and pohlavie = 'J+B' then 1 else 0 end) as m3_JB,
		sum (case when mesiac = '4' and pohlavie = 'J+B' then 1 else 0 end) as m4_JB,
		sum (case when mesiac = '5' and pohlavie = 'J+B' then 1 else 0 end) as m5_JB,
		sum (case when mesiac = '6' and pohlavie = 'J+B' then 1 else 0 end) as m6_JB,
		sum (case when mesiac = '7' and pohlavie = 'J+B' then 1 else 0 end) as m7_JB,
		sum (case when mesiac = '8' and pohlavie = 'J+B' then 1 else 0 end) as m8_JB,
		sum (case when mesiac = '9' and pohlavie = 'J+B' then 1 else 0 end) as m9_JB,
		sum (case when mesiac = '10' and pohlavie = 'J+B' then 1 else 0 end) as m10_JB,
		sum (case when mesiac = '11' and pohlavie = 'J+B' then 1 else 0 end) as m11_JB,
		sum (case when mesiac = '12' and pohlavie = 'J+B' then 1 else 0 end) as m12_JB,
		sum (case when porlak = '1' and pohlavie = 'B' then 1 else 0 end) as od_prvostok_B,
		sum (case when porlak = '5' and pohlavie = 'B' then 1 else 0 end) as od_krav_B,
		sum (case when porlak = '1' and pohlavie = 'J' then 1 else 0 end) as od_prvostok_J,
		sum (case when porlak = '5' and pohlavie = 'J' then 1 else 0 end) as od_krav_J
		from @telata 
		where chovnar = @chov
		group by chovnar

	insert @kravy
		Select distinct t.chovnar, 
			(case when k.DATVYR is null then ciskravy else '' end) as kravy_Z, 
			(case when k.DATVYR is not null then ciskravy else '' end) as kravy_V	
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and t.chovnar = @chov
		order by kravy_Z
	
	insert into @stav_krav
		(chov, pocet_krav_Z, pocet_krav_V)
		select chov,
			sum(case when kravy_Z <>'' then 1 else 0 end) as pocet_krav_Z, 
			sum(case when kravy_V <>'' then 1 else 0 end) pocet_krav_V
		from @kravy where chov = @chov
		group by chov

	insert into @priem_stav_krav
		(ciskravy, chov, pocet_dni)
  	 Select distinct ciskravy as krava, t.chovnar, 
			(case when k.DATVYR is null then 365
				when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
				end) as pocet_dni
		from @telata as t
			left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
			where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and t.chovnar = @chov
	
	insert into @priem_stav_krav1
		(chov, priem_stav_krav)
		select chov, sum(pocet_dni)/365 as priem_stav_krav
			from @priem_stav_krav
			where chov = @chov
		group by chov

  	----create table Roc_MPHD_Tab_19
	----(	
	----	[KrOk] varchar(3),
	----	[Podnik]varchar(3),
	----	[Chov]varchar(3),
	----	--[Podnik_nazov] varchar(50),
	----	--[Chov_nazov] varchar(35),
	----	--[Sidlo] varchar(35),
	----	[Priem_st_krav] int,
	----	[Kravy_Z] int,
	----	[Kravy_V] int,
	----	[od_prvostok_B] int,
	----	[od_krav_B] int,
	----	[od_prvostok_J] int,
	----	[od_krav_J] int,
	----	[m1_J] int,
	----	[m2_J] int,
	----	[m3_J] int,
	----	[m4_J] int,
	----	[m5_J] int,
	----	[m6_J] int,
	----	[m7_J] int,
	----	[m8_J] int,
	----	[m9_J] int,
	----	[m10_J] int,
	----	[m11_J] int,
	----	[m12_J] int,
	----	[m1_B] int,
	----	[m2_B] int,
	----	[m3_B] int,
	----	[m4_B] int,
	----	[m5_B] int,
	----	[m6_B] int,
	----	[m7_B] int,
	----	[m8_B] int,
	----	[m9_B] int,
	----	[m10_B] int,
	----	[m11_B] int,
	----	[m12_B] int,
	----	[m1_JB] int,
	----	[m2_JB] int,
	----	[m3_JB] int,
	----	[m4_JB] int,
	----	[m5_JB] int,
	----	[m6_JB] int,
	----	[m7_JB] int,
	----	[m8_JB] int,
	----	[m9_JB] int,
	----	[m10_JB] int,
	----	[m11_JB] int,
	----	[m12_JB] int,
	----	[rok] varchar(5)
	----)

	insert into Roc_MPHD_Tab_19
	(KrOk, Podnik, Chov, Priem_st_krav, Kravy_Z, Kravy_V, od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J,
			m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J,
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B,
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB,	m9_JB,	m10_JB,	m11_JB,	m12_JB, rok)
	select distinct 
			SUBSTRING(t.chov,1,3) as KrOk, 
			SUBSTRING(t.chov,4,3) as Podnik, 
			SUBSTRING(t.chov,7,3) as Chov,
			sk.priem_stav_krav as Priem_st_krav,
			s.pocet_krav_Z as Kravy_Z,
			s.pocet_krav_V as Kravy_V,
			od_prvostok_B,
			od_krav_B,
			od_prvostok_J,
			od_krav_J,
			m1_J,
			m2_J,
			m3_J,
			m4_J,
			m5_J,
			m6_J,
			m7_J,
			m8_J,
			m9_J,
			m10_J,
			m11_J,
			m12_J,
			m1_B,
			m2_B,
			m3_B,
			m4_B,
			m5_B,
			m6_B,
			m7_B,
			m8_B,
			m9_B,
			m10_B,
			m11_B,
			m12_B,
			m1_JB,
			m2_JB,
			m3_JB,
			m4_JB,
			m5_JB,
			m6_JB,
			m7_JB,
			m8_JB,
			m9_JB,
			m10_JB,
			m11_JB,
			m12_JB,
			datepart(year,@datumOd) as rok
	from @tab2 as t
		  left outer join @stav_krav as s on s.chov = t.chov
		  left outer join @priem_stav_krav1 as sk on sk.chov = t.chov 
		 order by SUBSTRING(t.chov,1,3), SUBSTRING(t.chov,4,3), SUBSTRING(t.chov,7,3)
	end
/****** Podnik ****/
if (len(@chov) = 6)
	begin
	insert into @tab2 
		(chov, m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J, 
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B, 
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB, m9_JB, m10_JB, m11_JB, m12_JB, 
			od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J)
	select distinct left(chovnar,6) as chov,
		sum (case when mesiac = '1' and pohlavie = 'J' then 1 else 0 end) as m1_J,
		sum (case when mesiac = '2' and pohlavie = 'J' then 1 else 0 end) as m2_J,
		sum (case when mesiac = '3' and pohlavie = 'J' then 1 else 0 end) as m3_J,
		sum (case when mesiac = '4' and pohlavie = 'J' then 1 else 0 end) as m4_J,
		sum (case when mesiac = '5' and pohlavie = 'J' then 1 else 0 end) as m5_J,
		sum (case when mesiac = '6' and pohlavie = 'J' then 1 else 0 end) as m6_J,
		sum (case when mesiac = '7' and pohlavie = 'J' then 1 else 0 end) as m7_J,
		sum (case when mesiac = '8' and pohlavie = 'J' then 1 else 0 end) as m8_J,
		sum (case when mesiac = '9' and pohlavie = 'J' then 1 else 0 end) as m9_J,
		sum (case when mesiac = '10' and pohlavie = 'J' then 1 else 0 end) as m10_J,
		sum (case when mesiac = '11' and pohlavie = 'J' then 1 else 0 end) as m11_J,
		sum (case when mesiac = '12' and pohlavie = 'J' then 1 else 0 end) as m12_J,
		sum (case when mesiac = '1' and pohlavie = 'B' then 1 else 0 end) as m1_B,
		sum (case when mesiac = '2' and pohlavie = 'B' then 1 else 0 end) as m2_B,
		sum (case when mesiac = '3' and pohlavie = 'B' then 1 else 0 end) as m3_B,
		sum (case when mesiac = '4' and pohlavie = 'B' then 1 else 0 end) as m4_B,
		sum (case when mesiac = '5' and pohlavie = 'B' then 1 else 0 end) as m5_B,
		sum (case when mesiac = '6' and pohlavie = 'B' then 1 else 0 end) as m6_B,
		sum (case when mesiac = '7' and pohlavie = 'B' then 1 else 0 end) as m7_B,
		sum (case when mesiac = '8' and pohlavie = 'B' then 1 else 0 end) as m8_B,
		sum (case when mesiac = '9' and pohlavie = 'B' then 1 else 0 end) as m9_B,
		sum (case when mesiac = '10' and pohlavie = 'B' then 1 else 0 end) as m10_B,
		sum (case when mesiac = '11' and pohlavie = 'B' then 1 else 0 end) as m11_B,
		sum (case when mesiac = '12' and pohlavie = 'B' then 1 else 0 end) as m12_B,
		sum (case when mesiac = '1' and pohlavie = 'J+B' then 1 else 0 end) as m1_JB,
		sum (case when mesiac = '2' and pohlavie = 'J+B' then 1 else 0 end) as m2_JB,
		sum (case when mesiac = '3' and pohlavie = 'J+B' then 1 else 0 end) as m3_JB,
		sum (case when mesiac = '4' and pohlavie = 'J+B' then 1 else 0 end) as m4_JB,
		sum (case when mesiac = '5' and pohlavie = 'J+B' then 1 else 0 end) as m5_JB,
		sum (case when mesiac = '6' and pohlavie = 'J+B' then 1 else 0 end) as m6_JB,
		sum (case when mesiac = '7' and pohlavie = 'J+B' then 1 else 0 end) as m7_JB,
		sum (case when mesiac = '8' and pohlavie = 'J+B' then 1 else 0 end) as m8_JB,
		sum (case when mesiac = '9' and pohlavie = 'J+B' then 1 else 0 end) as m9_JB,
		sum (case when mesiac = '10' and pohlavie = 'J+B' then 1 else 0 end) as m10_JB,
		sum (case when mesiac = '11' and pohlavie = 'J+B' then 1 else 0 end) as m11_JB,
		sum (case when mesiac = '12' and pohlavie = 'J+B' then 1 else 0 end) as m12_JB,
		sum (case when porlak = '1' and pohlavie = 'B' then 1 else 0 end) as od_prvostok_B,
		sum (case when porlak = '5' and pohlavie = 'B' then 1 else 0 end) as od_krav_B,
		sum (case when porlak = '1' and pohlavie = 'J' then 1 else 0 end) as od_prvostok_J,
		sum (case when porlak = '5' and pohlavie = 'J' then 1 else 0 end) as od_krav_J
	
		from @telata 
		where left(chovnar,6) = @chov
		group by left(chovnar,6)

	
	insert @kravy
		Select distinct left(t.chovnar,6), 
			(case when k.DATVYR is null then ciskravy else '' end) as kravy_Z, 
			(case when k.DATVYR is not null then ciskravy else '' end) as kravy_V	
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(t.chovnar,6) = @chov
		order by kravy_Z
	
	insert into @stav_krav
		(chov, pocet_krav_Z, pocet_krav_V)
		select chov,
			sum(case when kravy_Z <>'' then 1 else 0 end) as pocet_krav_Z, 
			sum(case when kravy_V <>'' then 1 else 0 end) pocet_krav_V
		from @kravy where chov = @chov
		group by chov

	insert into @priem_stav_krav
		(ciskravy, chov, pocet_dni)
		Select distinct ciskravy as krava, left(t.chovnar,6), 
		(case when k.DATVYR is null then 365
			when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
		end) as pocet_dni
		from @telata as t
			left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
			where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(t.chovnar,6) = @chov
	 
	insert into @priem_stav_krav1
		(chov, priem_stav_krav)
		select chov, sum(pocet_dni)/365 as priem_stav_krav
			from @priem_stav_krav
			where chov = @chov
		group by chov

	insert into Roc_MPHD_Tab_19
	(KrOk, Podnik, Chov, Priem_st_krav, Kravy_Z, Kravy_V, od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J,
			m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J,
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B,
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB,	m9_JB,	m10_JB,	m11_JB,	m12_JB, rok)
	select distinct 
			SUBSTRING(t.chov,1,3) as KrOk, 
			SUBSTRING(t.chov,4,3) as Podnik, 
			'' as Chov,
			sk.priem_stav_krav as Priem_st_krav,
			s.pocet_krav_Z as Kravy_Z,
			s.pocet_krav_V as Kravy_V,
			od_prvostok_B,
			od_krav_B,
			od_prvostok_J,
			od_krav_J,
			m1_J,
			m2_J,
			m3_J,
			m4_J,
			m5_J,
			m6_J,
			m7_J,
			m8_J,
			m9_J,
			m10_J,
			m11_J,
			m12_J,
			m1_B,
			m2_B,
			m3_B,
			m4_B,
			m5_B,
			m6_B,
			m7_B,
			m8_B,
			m9_B,
			m10_B,
			m11_B,
			m12_B,
			m1_JB,
			m2_JB,
			m3_JB,
			m4_JB,
			m5_JB,
			m6_JB,
			m7_JB,
			m8_JB,
			m9_JB,
			m10_JB,
			m11_JB,
			m12_JB,
			datepart(year,@datumOd) as rok
		from @tab2 as t
		  left outer join @stav_krav as s on s.chov = t.chov
		  left outer join @priem_stav_krav1 as sk on sk.chov = t.chov 
		order by SUBSTRING(t.chov,1,3), SUBSTRING(t.chov,4,3)
	end	
	
/***** OKRES ****/
if (len(@chov) = 3)
	begin
	insert into @tab2 
		(chov, m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J, 
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B, 
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB, m9_JB, m10_JB, m11_JB, m12_JB, 
			od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J)
	select distinct left(chovnar,3),
		sum (case when mesiac = '1' and pohlavie = 'J' then 1 else 0 end) as m1_J,
		sum (case when mesiac = '2' and pohlavie = 'J' then 1 else 0 end) as m2_J,
		sum (case when mesiac = '3' and pohlavie = 'J' then 1 else 0 end) as m3_J,
		sum (case when mesiac = '4' and pohlavie = 'J' then 1 else 0 end) as m4_J,
		sum (case when mesiac = '5' and pohlavie = 'J' then 1 else 0 end) as m5_J,
		sum (case when mesiac = '6' and pohlavie = 'J' then 1 else 0 end) as m6_J,
		sum (case when mesiac = '7' and pohlavie = 'J' then 1 else 0 end) as m7_J,
		sum (case when mesiac = '8' and pohlavie = 'J' then 1 else 0 end) as m8_J,
		sum (case when mesiac = '9' and pohlavie = 'J' then 1 else 0 end) as m9_J,
		sum (case when mesiac = '10' and pohlavie = 'J' then 1 else 0 end) as m10_J,
		sum (case when mesiac = '11' and pohlavie = 'J' then 1 else 0 end) as m11_J,
		sum (case when mesiac = '12' and pohlavie = 'J' then 1 else 0 end) as m12_J,
		sum (case when mesiac = '1' and pohlavie = 'B' then 1 else 0 end) as m1_B,
		sum (case when mesiac = '2' and pohlavie = 'B' then 1 else 0 end) as m2_B,
		sum (case when mesiac = '3' and pohlavie = 'B' then 1 else 0 end) as m3_B,
		sum (case when mesiac = '4' and pohlavie = 'B' then 1 else 0 end) as m4_B,
		sum (case when mesiac = '5' and pohlavie = 'B' then 1 else 0 end) as m5_B,
		sum (case when mesiac = '6' and pohlavie = 'B' then 1 else 0 end) as m6_B,
		sum (case when mesiac = '7' and pohlavie = 'B' then 1 else 0 end) as m7_B,
		sum (case when mesiac = '8' and pohlavie = 'B' then 1 else 0 end) as m8_B,
		sum (case when mesiac = '9' and pohlavie = 'B' then 1 else 0 end) as m9_B,
		sum (case when mesiac = '10' and pohlavie = 'B' then 1 else 0 end) as m10_B,
		sum (case when mesiac = '11' and pohlavie = 'B' then 1 else 0 end) as m11_B,
		sum (case when mesiac = '12' and pohlavie = 'B' then 1 else 0 end) as m12_B,
		sum (case when mesiac = '1' and pohlavie = 'J+B' then 1 else 0 end) as m1_JB,
		sum (case when mesiac = '2' and pohlavie = 'J+B' then 1 else 0 end) as m2_JB,
		sum (case when mesiac = '3' and pohlavie = 'J+B' then 1 else 0 end) as m3_JB,
		sum (case when mesiac = '4' and pohlavie = 'J+B' then 1 else 0 end) as m4_JB,
		sum (case when mesiac = '5' and pohlavie = 'J+B' then 1 else 0 end) as m5_JB,
		sum (case when mesiac = '6' and pohlavie = 'J+B' then 1 else 0 end) as m6_JB,
		sum (case when mesiac = '7' and pohlavie = 'J+B' then 1 else 0 end) as m7_JB,
		sum (case when mesiac = '8' and pohlavie = 'J+B' then 1 else 0 end) as m8_JB,
		sum (case when mesiac = '9' and pohlavie = 'J+B' then 1 else 0 end) as m9_JB,
		sum (case when mesiac = '10' and pohlavie = 'J+B' then 1 else 0 end) as m10_JB,
		sum (case when mesiac = '11' and pohlavie = 'J+B' then 1 else 0 end) as m11_JB,
		sum (case when mesiac = '12' and pohlavie = 'J+B' then 1 else 0 end) as m12_JB,
		sum (case when porlak = '1' and pohlavie = 'B' then 1 else 0 end) as od_prvostok_B,
		sum (case when porlak = '5' and pohlavie = 'B' then 1 else 0 end) as od_krav_B,
		sum (case when porlak = '1' and pohlavie = 'J' then 1 else 0 end) as od_prvostok_J,
		sum (case when porlak = '5' and pohlavie = 'J' then 1 else 0 end) as od_krav_J
		from @telata 
		where left(chovnar,3) = @chov
		group by left(chovnar,3)
	
	insert @kravy
		Select distinct left(t.chovnar,3), 
			(case when k.DATVYR is null then ciskravy else '' end) as kravy_Z, 
			(case when k.DATVYR is not null then ciskravy else '' end) as kravy_V	
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(t.chovnar,3) = @chov
		order by kravy_Z

	insert into @stav_krav
		(chov, pocet_krav_Z, pocet_krav_V)
		select chov,
			sum(case when kravy_Z <>'' then 1 else 0 end) as pocet_krav_Z, 
			sum(case when kravy_V <>'' then 1 else 0 end) pocet_krav_V
		from @kravy where chov = @chov
		group by chov
	
	insert into @priem_stav_krav
		(ciskravy, chov, pocet_dni)
	  	 Select distinct ciskravy as krava, left(chovnar,3), 
			(case when k.DATVYR is null then 365
				when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
			end) as pocet_dni
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(chovnar,3) = @chov
	 
	insert into @priem_stav_krav1
			(chov, priem_stav_krav)
		select chov, sum(pocet_dni)/365 as priem_stav_krav
			from @priem_stav_krav
			where chov = @chov
		group by chov

	insert into Roc_MPHD_Tab_19
	(KrOk, Podnik, Chov, Priem_st_krav, Kravy_Z, Kravy_V, od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J,
			m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J,
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B,
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB,	m9_JB,	m10_JB,	m11_JB,	m12_JB, rok)
	select distinct 
			t.chov as KrOk, 
			'' as Podnik, 
			'' as Chov,
			sk.priem_stav_krav as Priem_st_krav,
			s.pocet_krav_Z as Kravy_Z,
			s.pocet_krav_V as Kravy_V,
			od_prvostok_B,
			od_krav_B,
			od_prvostok_J,
			od_krav_J,
			m1_J,
			m2_J,
			m3_J,
			m4_J,
			m5_J,
			m6_J,
			m7_J,
			m8_J,
			m9_J,
			m10_J,
			m11_J,
			m12_J,
			m1_B,
			m2_B,
			m3_B,
			m4_B,
			m5_B,
			m6_B,
			m7_B,
			m8_B,
			m9_B,
			m10_B,
			m11_B,
			m12_B,
			m1_JB,
			m2_JB,
			m3_JB,
			m4_JB,
			m5_JB,
			m6_JB,
			m7_JB,
			m8_JB,
			m9_JB,
			m10_JB,
			m11_JB,
			m12_JB,
			datepart(year,@datumOd) as rok
	from @tab2 as t
		  left outer join @stav_krav as s on s.chov = t.chov
		  left outer join @priem_stav_krav1 as sk on sk.chov = t.chov 
		 order by t.chov
	end

/***** Kraj ****/
if (len(@chov) = 1)
	begin
	insert into @tab2 
		(chov, m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J, 
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B, 
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB, m9_JB, m10_JB, m11_JB, m12_JB, 
			od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J)
	select distinct left(chovnar,1),
		sum (case when mesiac = '1' and pohlavie = 'J' then 1 else 0 end) as m1_J,
		sum (case when mesiac = '2' and pohlavie = 'J' then 1 else 0 end) as m2_J,
		sum (case when mesiac = '3' and pohlavie = 'J' then 1 else 0 end) as m3_J,
		sum (case when mesiac = '4' and pohlavie = 'J' then 1 else 0 end) as m4_J,
		sum (case when mesiac = '5' and pohlavie = 'J' then 1 else 0 end) as m5_J,
		sum (case when mesiac = '6' and pohlavie = 'J' then 1 else 0 end) as m6_J,
		sum (case when mesiac = '7' and pohlavie = 'J' then 1 else 0 end) as m7_J,
		sum (case when mesiac = '8' and pohlavie = 'J' then 1 else 0 end) as m8_J,
		sum (case when mesiac = '9' and pohlavie = 'J' then 1 else 0 end) as m9_J,
		sum (case when mesiac = '10' and pohlavie = 'J' then 1 else 0 end) as m10_J,
		sum (case when mesiac = '11' and pohlavie = 'J' then 1 else 0 end) as m11_J,
		sum (case when mesiac = '12' and pohlavie = 'J' then 1 else 0 end) as m12_J,
		sum (case when mesiac = '1' and pohlavie = 'B' then 1 else 0 end) as m1_B,
		sum (case when mesiac = '2' and pohlavie = 'B' then 1 else 0 end) as m2_B,
		sum (case when mesiac = '3' and pohlavie = 'B' then 1 else 0 end) as m3_B,
		sum (case when mesiac = '4' and pohlavie = 'B' then 1 else 0 end) as m4_B,
		sum (case when mesiac = '5' and pohlavie = 'B' then 1 else 0 end) as m5_B,
		sum (case when mesiac = '6' and pohlavie = 'B' then 1 else 0 end) as m6_B,
		sum (case when mesiac = '7' and pohlavie = 'B' then 1 else 0 end) as m7_B,
		sum (case when mesiac = '8' and pohlavie = 'B' then 1 else 0 end) as m8_B,
		sum (case when mesiac = '9' and pohlavie = 'B' then 1 else 0 end) as m9_B,
		sum (case when mesiac = '10' and pohlavie = 'B' then 1 else 0 end) as m10_B,
		sum (case when mesiac = '11' and pohlavie = 'B' then 1 else 0 end) as m11_B,
		sum (case when mesiac = '12' and pohlavie = 'B' then 1 else 0 end) as m12_B,
		sum (case when mesiac = '1' and pohlavie = 'J+B' then 1 else 0 end) as m1_JB,
		sum (case when mesiac = '2' and pohlavie = 'J+B' then 1 else 0 end) as m2_JB,
		sum (case when mesiac = '3' and pohlavie = 'J+B' then 1 else 0 end) as m3_JB,
		sum (case when mesiac = '4' and pohlavie = 'J+B' then 1 else 0 end) as m4_JB,
		sum (case when mesiac = '5' and pohlavie = 'J+B' then 1 else 0 end) as m5_JB,
		sum (case when mesiac = '6' and pohlavie = 'J+B' then 1 else 0 end) as m6_JB,
		sum (case when mesiac = '7' and pohlavie = 'J+B' then 1 else 0 end) as m7_JB,
		sum (case when mesiac = '8' and pohlavie = 'J+B' then 1 else 0 end) as m8_JB,
		sum (case when mesiac = '9' and pohlavie = 'J+B' then 1 else 0 end) as m9_JB,
		sum (case when mesiac = '10' and pohlavie = 'J+B' then 1 else 0 end) as m10_JB,
		sum (case when mesiac = '11' and pohlavie = 'J+B' then 1 else 0 end) as m11_JB,
		sum (case when mesiac = '12' and pohlavie = 'J+B' then 1 else 0 end) as m12_JB,
		sum (case when porlak = '1' and pohlavie = 'B' then 1 else 0 end) as od_prvostok_B,
		sum (case when porlak = '5' and pohlavie = 'B' then 1 else 0 end) as od_krav_B,
		sum (case when porlak = '1' and pohlavie = 'J' then 1 else 0 end) as od_prvostok_J,
		sum (case when porlak = '5' and pohlavie = 'J' then 1 else 0 end) as od_krav_J
		from @telata 
		where left(chovnar,1) = @chov
		group by left(chovnar,1)
	
	insert @kravy
		Select distinct left(t.chovnar,1), 
			(case when k.DATVYR is null then ciskravy else '' end) as kravy_Z, 
			(case when k.DATVYR is not null then ciskravy else '' end) as kravy_V	
		from @telata as t
			left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
			where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(t.chovnar,1) = @chov
		order by kravy_Z
	
	insert into @stav_krav
		(chov, pocet_krav_Z, pocet_krav_V)
		select chov,
			sum(case when kravy_Z <>'' then 1 else 0 end) as pocet_krav_Z, 
			sum(case when kravy_V <>'' then 1 else 0 end) pocet_krav_V
		from @kravy where chov = @chov
		group by chov
		  
	insert into @priem_stav_krav
		(ciskravy, chov, pocet_dni)
	  	 Select distinct ciskravy as krava, left(chovnar,1), 
			(case when k.DATVYR is null then 365
				when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
			end) as pocet_dni
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
				and left(chovnar,1) = @chov
	 
	insert into @priem_stav_krav1
			(chov, priem_stav_krav)
		select chov, sum(pocet_dni)/365 as priem_stav_krav
			from @priem_stav_krav
			where chov = @chov
		group by chov
		
	insert into Roc_MPHD_Tab_19
	(KrOk, Podnik, Chov, Priem_st_krav, Kravy_Z, Kravy_V, od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J,
			m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J,
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B,
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB,	m9_JB,	m10_JB,	m11_JB,	m12_JB, rok	)
	select distinct 
			t.chov as KrOk, 
			'' as Podnik, 
			'' as Chov,
			sk.priem_stav_krav as Priem_st_krav,
			s.pocet_krav_Z as Kravy_Z,
			s.pocet_krav_V as Kravy_V,
			od_prvostok_B,
			od_krav_B,
			od_prvostok_J,
			od_krav_J,
			m1_J,
			m2_J,
			m3_J,
			m4_J,
			m5_J,
			m6_J,
			m7_J,
			m8_J,
			m9_J,
			m10_J,
			m11_J,
			m12_J,
			m1_B,
			m2_B,
			m3_B,
			m4_B,
			m5_B,
			m6_B,
			m7_B,
			m8_B,
			m9_B,
			m10_B,
			m11_B,
			m12_B,
			m1_JB,
			m2_JB,
			m3_JB,
			m4_JB,
			m5_JB,
			m6_JB,
			m7_JB,
			m8_JB,
			m9_JB,
			m10_JB,
			m11_JB,
			m12_JB,
			datepart(year,@datumOd) as rok
	from @tab2 as t
		  left outer join @stav_krav as s on s.chov = t.chov
		  left outer join @priem_stav_krav1 as sk on sk.chov = t.chov 
		 order by t.chov
	end

/****** Slovensko ******/
	if (@chov = 'SR')
	begin
	insert into @tab2 
		(chov, m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J, 
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B, 
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB, m9_JB, m10_JB, m11_JB, m12_JB, 
			od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J)
	
	select 'SR' as chov,
		sum (case when mesiac = '1' and pohlavie = 'J' then 1 else 0 end) as m1_J,
		sum (case when mesiac = '2' and pohlavie = 'J' then 1 else 0 end) as m2_J,
		sum (case when mesiac = '3' and pohlavie = 'J' then 1 else 0 end) as m3_J,
		sum (case when mesiac = '4' and pohlavie = 'J' then 1 else 0 end) as m4_J,
		sum (case when mesiac = '5' and pohlavie = 'J' then 1 else 0 end) as m5_J,
		sum (case when mesiac = '6' and pohlavie = 'J' then 1 else 0 end) as m6_J,
		sum (case when mesiac = '7' and pohlavie = 'J' then 1 else 0 end) as m7_J,
		sum (case when mesiac = '8' and pohlavie = 'J' then 1 else 0 end) as m8_J,
		sum (case when mesiac = '9' and pohlavie = 'J' then 1 else 0 end) as m9_J,
		sum (case when mesiac = '10' and pohlavie = 'J' then 1 else 0 end) as m10_J,
		sum (case when mesiac = '11' and pohlavie = 'J' then 1 else 0 end) as m11_J,
		sum (case when mesiac = '12' and pohlavie = 'J' then 1 else 0 end) as m12_J,
		sum (case when mesiac = '1' and pohlavie = 'B' then 1 else 0 end) as m1_B,
		sum (case when mesiac = '2' and pohlavie = 'B' then 1 else 0 end) as m2_B,
		sum (case when mesiac = '3' and pohlavie = 'B' then 1 else 0 end) as m3_B,
		sum (case when mesiac = '4' and pohlavie = 'B' then 1 else 0 end) as m4_B,
		sum (case when mesiac = '5' and pohlavie = 'B' then 1 else 0 end) as m5_B,
		sum (case when mesiac = '6' and pohlavie = 'B' then 1 else 0 end) as m6_B,
		sum (case when mesiac = '7' and pohlavie = 'B' then 1 else 0 end) as m7_B,
		sum (case when mesiac = '8' and pohlavie = 'B' then 1 else 0 end) as m8_B,
		sum (case when mesiac = '9' and pohlavie = 'B' then 1 else 0 end) as m9_B,
		sum (case when mesiac = '10' and pohlavie = 'B' then 1 else 0 end) as m10_B,
		sum (case when mesiac = '11' and pohlavie = 'B' then 1 else 0 end) as m11_B,
		sum (case when mesiac = '12' and pohlavie = 'B' then 1 else 0 end) as m12_B,
		sum (case when mesiac = '1' and pohlavie = 'J+B' then 1 else 0 end) as m1_JB,
		sum (case when mesiac = '2' and pohlavie = 'J+B' then 1 else 0 end) as m2_JB,
		sum (case when mesiac = '3' and pohlavie = 'J+B' then 1 else 0 end) as m3_JB,
		sum (case when mesiac = '4' and pohlavie = 'J+B' then 1 else 0 end) as m4_JB,
		sum (case when mesiac = '5' and pohlavie = 'J+B' then 1 else 0 end) as m5_JB,
		sum (case when mesiac = '6' and pohlavie = 'J+B' then 1 else 0 end) as m6_JB,
		sum (case when mesiac = '7' and pohlavie = 'J+B' then 1 else 0 end) as m7_JB,
		sum (case when mesiac = '8' and pohlavie = 'J+B' then 1 else 0 end) as m8_JB,
		sum (case when mesiac = '9' and pohlavie = 'J+B' then 1 else 0 end) as m9_JB,
		sum (case when mesiac = '10' and pohlavie = 'J+B' then 1 else 0 end) as m10_JB,
		sum (case when mesiac = '11' and pohlavie = 'J+B' then 1 else 0 end) as m11_JB,
		sum (case when mesiac = '12' and pohlavie = 'J+B' then 1 else 0 end) as m12_JB,
		sum (case when porlak = '1' and pohlavie = 'B' then 1 else 0 end) as od_prvostok_B,
		sum (case when porlak = '5' and pohlavie = 'B' then 1 else 0 end) as od_krav_B,
		sum (case when porlak = '1' and pohlavie = 'J' then 1 else 0 end) as od_prvostok_J,
		sum (case when porlak = '5' and pohlavie = 'J' then 1 else 0 end) as od_krav_J
		from @telata 

	insert @kravy
		Select distinct t.chovnar, 
			(case when k.DATVYR is null then ciskravy else '' end) as kravy_Z, 
			(case when k.DATVYR is not null then ciskravy else '' end) as kravy_V	
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))

	insert into @stav_krav
		(chov, pocet_krav_Z, pocet_krav_V)
		select 'SR' as chov,
			sum(case when kravy_Z <>'' then 1 else 0 end) as pocet_krav_Z, 
			sum(case when kravy_V <>'' then 1 else 0 end) as pocet_krav_V
		from @kravy 
	
	insert into @priem_stav_krav
		(ciskravy, chov, pocet_dni)
	  	 Select distinct ciskravy as ciskravy, 'SR' as chov, 
			(case when k.DATVYR is null then 365
				when (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo) then DATEDIFF(day, k.DATVYR, @datumDo)
			end) as pocet_dni
		from @telata as t
		  left outer join CM_Krava as k on t.chovnar = k.CHOVATEL
		  where PRIZNAKKU = '2' and (k.dovvyr is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
	
	insert into @priem_stav_krav1
			(chov, priem_stav_krav)
		select 'SR' as chov, sum(pocet_dni)/365 as priem_stav_krav
			from @priem_stav_krav
		
	insert into Roc_MPHD_Tab_19
	(KrOk, Podnik, Chov, Priem_st_krav, Kravy_Z, Kravy_V, od_prvostok_B, od_krav_B, od_prvostok_J, od_krav_J,
			m1_J, m2_J, m3_J, m4_J, m5_J, m6_J, m7_J, m8_J, m9_J, m10_J, m11_J, m12_J,
			m1_B, m2_B, m3_B, m4_B, m5_B, m6_B, m7_B, m8_B, m9_B, m10_B, m11_B, m12_B,
			m1_JB, m2_JB, m3_JB, m4_JB, m5_JB, m6_JB, m7_JB, m8_JB,	m9_JB,	m10_JB,	m11_JB,	m12_JB, rok)
	select distinct t.chov as KrOk, 
			'' as Podnik, 
			'' as Chov,
			sk.priem_stav_krav as Priem_st_krav,
			s.pocet_krav_Z as Kravy_Z,
			s.pocet_krav_V as Kravy_V,
			od_prvostok_B,
			od_krav_B,
			od_prvostok_J,
			od_krav_J,
			m1_J,
			m2_J,
			m3_J,
			m4_J,
			m5_J,
			m6_J,
			m7_J,
			m8_J,
			m9_J,
			m10_J,
			m11_J,
			m12_J,
			m1_B,
			m2_B,
			m3_B,
			m4_B,
			m5_B,
			m6_B,
			m7_B,
			m8_B,
			m9_B,
			m10_B,
			m11_B,
			m12_B,
			m1_JB,
			m2_JB,
			m3_JB,
			m4_JB,
			m5_JB,
			m6_JB,
			m7_JB,
			m8_JB,
			m9_JB,
			m10_JB,
			m11_JB,
			m12_JB,
			datepart(year,@datumOd) as rok
	from @tab2 as t
		  left outer join @stav_krav as s on s.chov = t.chov
		  left outer join @priem_stav_krav1 as sk on sk.chov = t.chov 
		  where t.chov = @chov
		end
	end
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_23A]
    @rok varchar(4)
as
begin

	
	select DISTINCT OKRES,Por_podniku
	from dbo.Roc_MLHD_Tab_23 as z
	where z.rok = @rok 
	end
go

CREATE PROCEDURE [dbo].[CR_KUARHD_mesacne]

	@chov VARCHAR(9),
	@rok INT,
	@mesiac INT--,
	--@dekada INT

	AS

	BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016, 
--				19.5.2016	-- doplnene minus 2 mesiace od vyradenia
--				30.05.2016	-- opravene dvojicky, interval z inseminacie, vek pri oteleni, linia a register otca, vyradenie kravy je na stavene 1.den dekady minus 2 mesiace
							-- opraveny datum poslednej inseminacie, byka a ocakavaneho otelenia
--				1.6.2016	-- oprava datumu inseminacie po reinseminacii
--				25.7.2017	-- zrusenie dekad
--				6.12.2017	-- opravenie vyberu plemena matky - ak sa matka nenachadza v kravach, tak ju vyhlada v telatach
-- Description:	Mesačné výsledky kontroly úžitkovosti a reprodukcie HD
-- @chov, @rok, @mesiac
-- ===================================================================

	DECLARE @datum DATE, @datum2 DATE
    
	SELECT @datum = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/
	SET @datum2 = DATEADD(MONTH, -2, @datum)

	PRINT 'Datum: ' + CONVERT(VARCHAR, @datum);
	PRINT 'Datum -2 mesiace: ' + CONVERT(VARCHAR, @datum2);

	IF OBJECT_ID('tempdb..#krava') IS NOT NULL DROP TABLE #krava
	SELECT * INTO #krava FROM dbo.CM_Krava WHERE CHOVATEL=@chov and PRIZNAKKU=1 AND (DATVYR IS NULL OR DATVYR >= @datum2) 
	IF OBJECT_ID('tempdb..#kontroly') IS NOT NULL DROP TABLE #kontroly
	
	SELECT DISTINCT kontroly.CISKRAVY, kontroly.DATKONTR, kontroly.PERCTUKU, kontroly.PERCBIELK, kontroly.BUNECELEM  INTO #kontroly FROM dbo.CM_Kontroly kontroly
	INNER JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = kontroly.CISKRAVY) AND (DATVYR IS NULL OR DATVYR >= @datum2)
	WHERE  kontroly.CISCHOVU = @chov
	
	IF OBJECT_ID('tempdb..#k2row') IS NOT NULL DROP TABLE #k2row
	SELECT  t.* INTO #k2row FROM (SELECT  DISTINCT CISKRAVY FROM #kontroly) mo
	CROSS APPLY(SELECT  TOP 2 * FROM #kontroly mi  WHERE  mi.CISKRAVY = mo.CISKRAVY ORDER BY mi.DATKONTR DESC) t


	

		-- kontrola a kontrola - 1
	IF OBJECT_ID('tempdb..#k1') IS NOT NULL DROP TABLE #k1
	SELECT ciskravy, MAX(datkontr)datum1 INTO #k1 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k2') IS NOT NULL DROP TABLE #k2
	SELECT ciskravy, MIN(datkontr)datum2 INTO #k2 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k1temp') IS NOT NULL DROP TABLE #k1temp
	IF OBJECT_ID('tempdb..#k2temp') IS NOT NULL DROP TABLE #k2temp
	
	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko, ROUND(AVG(PERCTUKU),2)tuk, ROUND(AVG(PERCBIELK),2)bielk, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB, ROUND(AVG(BUNECELEM),0)SB INTO #k1temp  FROM #k1 k1
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k1.ciskravy AND k1.datum1 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY

	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko1, ROUND(AVG(PERCTUKU),2)tuk1, ROUND(AVG(PERCBIELK),2)bielk1, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB1, ROUND(AVG(BUNECELEM),0)SB1  INTO #k2temp FROM #k2 k2
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k2.ciskravy AND k2.datum2 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY	
	
	IF OBJECT_ID('tempdb..#2ko') IS NOT NULL DROP TABLE #2ko
	SELECT krava.CISKRAVY, k1temp.mlieko, k2temp.mlieko1, k1temp.tuk, k1temp.bielk, k1temp.TB, k1temp.SB, k2temp.tuk1, k2temp.bielk1, k2temp.TB1, k2temp.SB1 INTO #2ko FROM #krava krava
		INNER JOIN #k1temp k1temp ON (k1temp.CISKRAVY = krava.CISKRAVY)
		INNER JOIN #k2temp k2temp ON (k2temp.CISKRAVY = krava.CISKRAVY)

		-- 100 - 200 - 300

	IF OBJECT_ID('tempdb..#sdt') IS NOT NULL DROP TABLE #sdt
	
	SELECT c.* INTO #sdt FROM
	(
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 100)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 200)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 305)
	)c


DECLARE @krava VARCHAR(14), @iplca VARCHAR(14), @counter INT, @count INT, @poradie INT, @pdatum DATE, @fdatum DATE, @ivyse INT, @bykreg INT, @byklin  VARCHAR(3)
DECLARE @datotel DATE, @POCINS1 INT, @POCINS2 INT, @POCINS3 INT, @POCINS4VIAC INT, @POCTELNYCH INT

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL DROP TABLE #inseminacie

  CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT,
		  byklin VARCHAR(3),
		  bykreg VARCHAR(3),
		  datotel DATE
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM	dbo.CM_Insvyk I
                INNER JOIN dbo.CM_Krava K ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ((K.DATVYR) >= DATEADD(MONTH, -2, @datum) OR K.DOVVYR IS NULL) -- zahrnut do vyberu aj kravy, ktore boli vyradene od obdobia minus 2 mesiace
				AND I.IPOIN <> 99
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = MAX(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@byklin = MAX(CONVERT(VARCHAR(3),IBLIN)),
					@bykreg = MAX(IBREG),
					@datotel = MAX(IDAOT)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> '99'
					
            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse, byklin, bykreg, datotel )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse, @byklin, @bykreg, @datotel )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


-- interval

DECLARE @odatum DATE,@rozdiel_dni INT, @POCINTR INT, @POCSERV INT

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) -- pridane
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99


            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor


BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                --AND ( ISNULL(DOVVYR, '') = '' )
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) --pridane
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
					AND IsNumeric(IVYSE) = 1 AND CAST(IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END
END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor


IF OBJECT_ID('tempdb..#medziobdobie') IS NOT NULL DROP TABLE #medziobdobie
SELECT k.CISKRAVY ciskravy, n.MEDZIOBD INTO #medziobdobie FROM cm_krava k
			LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
			WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL)
			AND (DATVYR >= @datum2 OR k.DOVVYR IS NULL) -- pridane
			--AND (ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00')

IF OBJECT_ID('tempdb..#napocetlak') IS NOT NULL DROP TABLE #napocetlak
SELECT
	k.CISKRAVY AS ciskravy,
	n.LAKTDNI AS nap_dni,
	n.MLIEKCEL AS nap_mliekokg,
	ROUND(((n.TUKCEL / n.MLIEKCEL)*100),2) AS nap_tukper,
	ROUND(((n.BIELKCEL / n.MLIEKCEL)*100),2) AS nap_bielkper,
	ROUND(n.TUKCEL,0) AS nap_tkg,
	ROUND(n.BIELKCEL,0) AS nap_bkg
	INTO #napocetlak
	FROM dbo.CM_Naplak n
	LEFT JOIN #krava k ON (k.CISKRAVY = n.CISKRAVY)

	


	BEGIN

	--IF OBJECT_ID('tempdb..#vyber') IS NOT NULL DROP TABLE #vyber

	DELETE FROM CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok  AND mesiac = @mesiac --AND dekada = @dekada


	INSERT INTO dbo.CR_KURHD_MesUzavCH_1
	SELECT
	 CONVERT(varchar(9), @chov) chov
	,CONVERT(INT, @rok) rok
	,CONVERT(INT, @mesiac) mesiac
	,/*CONVERT(INT, @dekada)*/ null dekada
	,CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	,CONVERT(INT,k.PORPREBLAK, NULL) PORPREBLAK
	,CONVERT(VARCHAR(2),n.ZMENA, NULL) ZMENA
	,UPPER(ISNULL(n.ZNAK,NULL)) ZNAK
	,CONVERT(DECIMAL(7,0),(tdm.SPI),NULL) SPI
	,CONVERT(DECIMAL(7,2), ROUND(tdm.REL*100,2), NULL) AS PERSPOL
	,CONVERT(DATE,k.datnar,NULL) DATNAR
	,CONVERT(VARCHAR(70),
	ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
    + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
    + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '')) PLEMKR
	,CONVERT(DATE, n.DATOTEL) DATOT
	,CONVERT(INT,(SELECT COUNT(*) FROM dbo.CM_kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY),NULL)PK
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 1 ORDER BY ko.DATKONTR DESC))ML1
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '1' THEN '*' END)ZN1
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 2 ORDER BY ko.DATKONTR DESC))ML2
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '2' THEN '*' END)ZN2
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 3 ORDER BY ko.DATKONTR DESC))ML3
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '3' THEN '*' END)ZN3
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 4 ORDER BY ko.DATKONTR DESC))ML4
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '4' THEN '*' END)ZN4
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 5 ORDER BY ko.DATKONTR DESC))ML5
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '5' THEN '*' END)ZN5
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 6 ORDER BY ko.DATKONTR DESC))ML6
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '6' THEN '*' END)ZN6
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 7 ORDER BY ko.DATKONTR DESC))ML7
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '7' THEN '*' END)ZN7
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 8 ORDER BY ko.DATKONTR DESC))ML8
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '8' THEN '*' END)ZN8
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 9 ORDER BY ko.DATKONTR DESC))ML9
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '9' THEN '*' END)ZN9
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 10 ORDER BY ko.DATKONTR DESC))ML10
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '10' THEN '*' END)ZN10
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 11 ORDER BY ko.DATKONTR DESC))ML11
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '11' THEN '*' END)ZN11
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 12 ORDER BY ko.DATKONTR DESC))ML12
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '12' THEN '*' END)ZN12
	,CONVERT(DECIMAL(4,2),kontrola2.tuk)PTUKU1
	,CONVERT(DECIMAL(4,2),kontrola2.bielk)PBIELK1
	,CONVERT(DECIMAL(3,1),kontrola2.TB)PTB1
	,CONVERT(INT,kontrola2.SB)SB1
	,CONVERT(DECIMAL(3,2),kontrola2.tuk1)PTUKU2
	,CONVERT(DECIMAL(3,2),kontrola2.bielk1)PBIELK2
	,CONVERT(DECIMAL(3,2),kontrola2.TB1)PTB2
	,CONVERT(INT,kontrola2.SB1)SB2
	,CONVERT(INT,sdt.laktdni)LAKTDNI
	,CONVERT(INT,sdt.lakdnin)UDNI
	,CONVERT(DECIMAL(7,2),sdt.mlieknor)NAPML
	,CONVERT(DECIMAL(7,2),sdt.tuknor)NAPTK
	,CONVERT(DECIMAL(3,2),sdt.tukper)UPERT
	,CONVERT(DECIMAL(7,2),sdt.bielknor)NAPBL 
	,CONVERT(DECIMAL(4,2),sdt.bielkper)UPERB
	,CONVERT(INT,ins.poradie)PORINS
	--,(SELECT TOP 1 ( i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)
	,(SELECT TOP 1 (case when i.IBLIN = 'NEZ' then 'NEZ'
					else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and (CONVERT(DATE, ins.fdatum)>n.DATOTEL) ORDER BY i.IDAIN DESC)OLINREG
	----,CONVERT(DATE,(CASE WHEN ins.ivyse = 9 THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))DTOTOC
	,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) and (DATEDIFF(day, n.DATOTEL, CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))) > 0) then CONVERT(DATE,(CASE WHEN (ins.ivyse = 7 or ins.ivyse = 8 or ins.ivyse = 9) THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END)) else NULL end as DTOTOC
    ,CASE when (CONVERT(DATE, ins.fdatum)>n.DATOTEL) then CONVERT(DATE, ins.fdatum)else null end DATINS
	--,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3))OUC
	,case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS OUC
	,CONVERT(VARCHAR(70),byc.PL1 + '-' + CONVERT(VARCHAR, ISNULL(byc.KR1, 0)) + ' ' + ISNULL(byc.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR2, 0)) + ' ' + ISNULL(byc.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR3, 0)) + ' ' + ISNULL(byc.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR4, 0)) + ' ' + ISNULL(byc.PL5, ''), ''), ''), ''))OTPLEM
	,CONVERT(VARCHAR(14),k.MA)MATKA
	--,CONVERT(VARCHAR(70),
	--		(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
 --          + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
	--	FROM dbo.CM_Krava t1
	--		LEFT JOIN dbo.CM_Krava tt1 ON t1.MA = tt1.CISKRAVY WHERE t1.CISKRAVY = k.CISKRAVY))MAPLEM
	--,null as MAPLEM
	-----------------opravene 6.12.2017 - doplnenie, hladanie plemena matky v telatach, ak sa matka nenachadza v CM_Krave - masove kravy niekedy zostavaju v tabulke teliat

	,CONVERT(VARCHAR(70),(case when (select tt1.CISKRAVY from dbo.CM_Krava tt1 where k.MA = tt1.CISKRAVY)  is not null
			then 
				(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
				   + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
				FROM  dbo.CM_Krava tt1 WHERE tt1.CISKRAVY = k.MA)
		else 
			(select tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
				+ '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
			FROM  dbo.CM_Telata tt1  WHERE tt1.CISTELATA = k.MA)
		end)) as MAPLEM
	,CONVERT(INT, interval.rozdiel_dni)INTERVAL
	,CONVERT(INT, sp.rozdiel_dni)SERVPER
	,CONVERT(INT, medzi.MEDZIOBD)MEDZIOB
	,CONVERT(VARCHAR(4),(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)/12)))+ '/' +(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)% 12))))OVEKRM -- rok/mesiac
	,CONVERT(VARCHAR(2),n.POHLAVIE)POHLTEL
	,CONVERT(INT, n.PRIEBPOROD)PRIEBPOR
	,CONVERT(INT, nap.nap_dni)
	,CONVERT(INT, nap.nap_mliekokg)
	,CONVERT(DECIMAL(5,2), nap.nap_tukper)
	,CONVERT(DECIMAL(5,2), nap.nap_bielkper)
	,CONVERT(INT, nap.nap_tkg)
	,CONVERT(INT, nap.nap_bkg)
	,CONVERT(VARCHAR(2), k.DOVVYR)
	,CONVERT(DATE, k.DATVYR, NULL)
	,GETDATE() AS generovane
	,(SELECT TOP 1 DATKONTR FROM #kontroly kk WHERE kk.CISKRAVY = k.CISKRAVY order by DATKONTR desc) kontrola
	, case when k.SKUPINA ='0' then null else k.SKUPINA end as SKUPINA
	, k.OUSCIS as otec


	FROM dbo.CM_Krava k
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #2ko kontrola2 ON (kontrola2.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #sdt sdt ON (sdt.ciskravy = k.CISKRAVY)
		LEFT JOIN #inseminacie ins ON (ins.krava = k.CISKRAVY)
		LEFT JOIN dbo.CM_KravyTDM tdm ON (tdm.CISLO = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Telata tel ON (tel.CISTELATA = k.CISKRAVY)
		--LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = tel.OUC)
		LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = k.OUSCIS)
		LEFT JOIN #krava mama ON (mama.ma = k.CISKRAVY)
		LEFT JOIN #interval interval ON (interval.krava = k.CISKRAVY)
		LEFT JOIN #servisperioda sp ON (sp.krava = k.CISKRAVY)
		LEFT JOIN #medziobdobie medzi ON (medzi.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #napocetlak nap ON (k.CISKRAVY = nap.ciskravy)
	WHERE  k.CHOVATEL = @chov and k.PRIZNAKKU=1
			AND (k.DATVYR >= @datum2 OR k.DOVVYR IS NULL)
			--AND k.DOVVYR IS NULL

	
	--------------------------------------------------------------------
	;WITH CTE AS(
	 SELECT ciskravy, chov, mesiac, rok, dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY ciskravy ORDER BY ciskravy)
		 FROM dbo.CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac /*AND dekada = @dekada*/ AND ciskravy IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1
	--------------------------------------------------------------------




	END 

	END
go

CREATE procedure [dbo].[CR_KUMP_kravy_1_sumar]
    
	@CHOV varchar(9) = '',
	@rok int,
	@mesiac int	
--	@Vytlacil varchar(10) = null
	
as
begin

DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHK_MES_sumar  WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHK_MES_sumar WHERE chov= @chov AND rok = @rok AND mesiac = @mesiac
	END

--Create table CR_KUMP_CHK_MES_sumar 
--		(
--		chov varchar(9),
--		krav_spolu int,
--		Nad420odOtel int,
--		vek_krav_rok varchar(10),
--		vek_1_otel varchar(10),
--		medziobdobie varchar(5),
--		porLakt varchar(3),
--		tel_nar varchar(10),
--		tel_mrt_nar varchar(3),
--		tel_zmetanie varchar(3),
--		dni_zp120 varchar(6),
--		dni_zp210 varchar(6),
--		dni_zp365 varchar(6),
--		dni_zp500 varchar(10),
--		rok_tel_nar varchar(10),
--		rok_tel_mrt_nar varchar(3),
--		rok_tel_zmetanie varchar(3),
--		CUK_medziobodie varchar(5),
--		CUK_tel_nar varchar(10),
--		CUK_tel_mrt_nar varchar(3),
--		CUK_tel_zmetanie varchar(3),
--		CUK_120dni varchar(10),
--		CUK_210dni varchar(10),
--		CUK_365dni varchar(10),
--		CUK_500dni varchar(10),
--		mesiac int,
--		rok int, 
--		generovane date,
--		standart_potomok_ZN int
--		)

-- vek pri prvom oteleni
	declare  @1otel table
		(
		[chov] varchar(9),
		[rok] int,
		[mesiac] int,
		[vek_1_otel] varchar(9) null
		)

		insert into @1otel 
			select @chov, @rok, @mesiac,
				(convert(varchar(20), round(convert(int,(AVG(vek_krav_vdnoch)/30.42)),0))+' / '+convert(varchar(20), ROUND(convert(int,(AVG(vek_krav_vdnoch) % 30.42)), 0))) as vek_1_otel
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
						and t.rok=@rok 
						and t.mesiac=@mesiac
						and krav_porlakt=1
		--select * from @1otel

--vek krav v rokoch
	declare  @vekKrav table
			(
			[vek_krav] decimal(5, 2)
			)
			insert into @vekKrav
				select 
				 round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE())))*1.0/365, 2) as vek_krav
			from CR_KUMP_CHK_MES_1 t 
				 where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @vekKrav

--priemerne poradie laktacie na chove
	declare @porlakt table
			(
				[porlakt] decimal(3, 1)
			)
			insert into @porlakt
				select round(AVG(krav_porlakt*1.00), 1) as porlakt
			from CR_KUMP_CHK_MES_1 t 
				where t.CHOVATEL=@chov 
					and t.rok=@rok 
					and t.mesiac=@mesiac
		--select * from @porlakt

--medziobdobie
	declare @kravy table
		(
			[CISKRAVY] varchar(14)
			,[chov] varchar(9)
			,[rok] int
			,[mesiac] int
			,[tela1] date
			,[telaX]date
			,[CUK_medziobd_pocetDni] int
			,[CUK_medziobd_pocLakt] int
			,[mesiac_medziobd] int
		)
		insert into @kravy
			select distinct k.CISKRAVY, k.CHOVATEL, k.rok, k.mesiac,
			(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR) as tela1,
			(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR)as telaX,
			datediff(DAY,(select min(t.datnar)from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR),
					(select max(t.datnar) from CM_Telata as t where t.MATKA=k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR )) as CUK_medziobd_pocetDni,
			(select count(distinct DATNAR) from CM_Telata as t where t.MATKA = k.CISKRAVY and k.CHOVATEL=t.CHOVATEL and k.CHOVATEL=t.CHOVNAR ) as CUK_medziobd_pocLakt,
			m.medziobd as mesiac_medziobd

		from CR_KUMP_CHK_MES_1 as k
				left outer join CM_Telata as t on t.MATKA=k.CISKRAVY
				left outer join CP_MedziObdMesove as m on k.CISKRAVY = m.kravcislo and k.krav_porlakt = m.porpreblak
						where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						and k.krav_porlakt>'1'
		--select * from @kravy

--vahy krav za obdobia
	declare @vahy_kravy table
		(
			[CISKRAVY] varchar(14),
			[CISTELATA] varchar(14),
			[chovK] varchar(9),
			[chovT] varchar(9),
			[pohl] varchar(3),
			[rok] int,
			[mesiac] int,
			[vaha_120] int,
			[vaha_210] int,
			[vaha_365] int,
			[vaha_500] int,
			[datnar] date
		)
		insert into @vahy_kravy
		select  k.CISKRAVY,t.cistelata, k.CHOVATEL,t.CHOVATEL,t.POHLAVIE, k.rok, k.mesiac,
					
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '120' and k.DOVVYR is null and k.DATVYR is null  and v.ZIVPRIR >0  ORDER BY v.DATVAZ desc) AS vaha_120,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '210' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_210,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '365' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_365,
				(SELECT TOP 1 CONVERT(INT,(ROUND(v.ZIVPRIR,0))) FROM dbo.CM_Vazenia v 
					WHERE t.CISTELATA = v.CISTELATA AND v.DNIPREPOC = '500' and k.DOVVYR is null and k.DATVYR is null and v.ZIVPRIR >0 ORDER BY v.DATVAZ desc) AS vaha_500,
					t.DATNAR
		from CR_KUMP_CHK_MES_1 as k
			LEFT JOIN CM_Telata as t on t.MATKA=k.CISKRAVY and t.CHOVATEL=k.CHOVATEL and t.CHOVNAR=k.CHOVATEL
			where k.CHOVATEL=@CHOV
					and k.mesiac=@mesiac
					and k.rok=@rok
					and k.DOVVYR is null and k.DATVYR is null
	--select * from  @vahy_kravy

--CUK vahy 
	declare @CUK120D varchar(10)= (select cast(round(sum(v.vaha_120 * 1.00)/count(v.vaha_120 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
	declare @CUK210D varchar(10)= (select cast(round(sum(v.vaha_210 * 1.00)/count(v.vaha_210 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
	declare @CUK365D varchar(10)= (select cast(round(sum(v.vaha_365 * 1.00)/count(v.vaha_365 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
	declare @CUK500D varchar(10)= (select cast(round(sum(v.vaha_500 * 1.00)/count(v.vaha_500 * 1.00), 2) as decimal(9, 2)) from @vahy_kravy as v )
	

	declare @CUK_vahy_kravy table
		(
			[CUK_vaha_120] varchar(4),
			[CUK_vaha_210] varchar(4),
			[CUK_vaha_365] varchar(4),
			[CUK_vaha_500] varchar(4)
		)
		insert into @CUK_vahy_kravy
			select AVG(vaha_120) as CUK_vaha_120,
			AVG(vaha_210) as CUK_vaha_210,
			AVG(vaha_365) as CUK_vaha_365,
			AVG(vaha_500) as CUK_vaha_500
		from @vahy_kravy
		--select * from  @CUK_vahy_kravy
			
--CUK pocet potomkov za cely zivot vsetkych krav v chove 	
	declare @CUK_potomok table
		(
			 [CUK_ZN_potomok] varchar(10)
			,[CUK_MN_potomok] varchar(3)
			,[CUK_ZM_potomok] varchar(3)
		)
		insert into @CUK_potomok
			select distinct  (select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY where
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok
																												and t.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as CUK_ZN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																												and t.POHLAVIE in('16','61','62','63')) as CUK_MN_potomok,
				(select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  where 
																												k.CHOVATEL=@CHOV and 
																												k.mesiac=@mesiac and k.rok=@rok 
																											and t.POHLAVIE in('71')) as CUK_ZM_potomok
		from CR_KUMP_CHK_MES_1 as k 
			 where k.CHOVATEL=@chov 
				and k.rok=@rok 
				and k.mesiac=@mesiac
	--select * from @CUK_potomok

	declare @standartPotomok table
		(
		[potomok_standart] int
		)
		insert into @standartPotomok
		select DATEDIFF(day,(select DATEADD(MONTH,32,l.DATNAR) from CM_Krava as l where l.CISKRAVY=k.CISKRAVY),getdate())as potomok_standart
		 from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 		and k.mesiac=@mesiac
						and k.rok=@rok
						--and k.krav_porlakt>'1'

		--select * from @standartPotomok

Insert into CR_KUMP_CHK_MES_sumar 
 		(chov,
		krav_spolu,
		krav_vyr,
		Nad420odOtel,
		vek_krav_rok,
		vek_1_otel,
		medziobdobie,
		porLakt,
		tel_nar,
		tel_mrt_nar,
		tel_zmetanie,
		dni_zp120,
		dni_zp210,
		dni_zp365,
		dni_zp500,
		rok_tel_nar,
		rok_tel_mrt_nar,
		rok_tel_zmetanie,
		CUK_medziobodie,
		CUK_tel_nar,--( CUK_ZN_potomok0,
		CUK_tel_mrt_nar,
		CUK_tel_zmetanie,
		CUK_120dni,
		CUK_210dni,
		CUK_365dni,
		CUK_500dni,
		mesiac,
		rok, 
		generovane,
		standart_potomok_ZN 
		 )

	select @CHOV as chov,
		count(distinct t.CISKRAVY) as krav_spolu,
		(select SUM(case when znak_vyr = 'V' then 1 else 0 end)from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac) as krav_vyr,
		
		(select SUM(case when krav_dniodot > 420 then 1 else 0 end) from CR_KUMP_CHK_MES_1 where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac and DOVVYR is null and DATVYR is null) as Nad420odOtel,
				
		cast(round(avg(DATEDIFF(DAY,t.krav_datnar, DATEADD(DAY, 5, GETDATE()))*1.0/365), 2) as decimal(9, 2)) as vek_krav_rok,
		
		(select (cast(cast(round((AVG(vek_krav_vdnoch * 1.00)/30.42), 0) as int) as varchar) +' / '+ cast(cast(ROUND((AVG(vek_krav_vdnoch * 1.00) % 30.42), 0) as int) as varchar))
						from CR_KUMP_CHK_MES_1 t where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac	and krav_porlakt=1 and DOVVYR is null and DATVYR is null) as vek_1_otel,
		 cast(avg(kravy.mesiac_medziobd) as varchar(5)) as medziobdobie,
		 /*cast(round(AVG(t.krav_porlakt*1.00),1) as varchar(3))*/
		 round(AVG(krav_porlakt*1.00), 1)as porlakt,
		 (select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV 
																		and k.mesiac=@mesiac and k.rok=@rok
																		and datepart(year,k.tel_datnar) = @rok
																		and datepart(MONTH,k.tel_datnar) = @mesiac
																		and k.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) 
																										as tel_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
																and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('16','61','62','63')) as tel_mrt_nar,
		(select cast(count(k.tel_pohl) as varchar) from CR_KUMP_CHK_MES_1 as k where k.CHOVATEL=@CHOV
				 												and k.mesiac=@mesiac and k.rok=@rok 
																and datepart(year,k.tel_datnar) = @rok
																and datepart(MONTH,k.tel_datnar) = @mesiac
																and k.tel_pohl in('71'))				as tel_zmetanie,
		(select cast(AVG(k.tel_zp120) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='120'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp120,
	
		(select cast(AVG(k.tel_zp210) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='210'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp210,
		
		(select cast(AVG(k.tel_zp365) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='365'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp365,
		
		(select cast(AVG(k.tel_zp500) as varchar) from CR_KUMP_CHK_MES_1 as k 
												left outer join dbo.CM_Vazenia as v on v.CISTELATA = k.cistela 
													where k.CHOVATEL=@CHOV 	and k.mesiac=@mesiac and k.rok=@rok
															and v.DNIPREPOC='500'
															and k.DOVVYR is null and k.DATVYR is null
															and datepart(year,v.DATVAZ) = @rok
															and datepart(MONTH,v.DATVAZ) = @mesiac) as dni_zp500,
		
		cast(sum(case when t.tel_pohl in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_nar, 
		cast(sum(case when t.tel_pohl in('16','61','62','63')
											and datepart(year,t.tel_datnar) = @rok
											and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_mrt_nar, 
		
		cast(sum(case when t.tel_pohl='71'
								and datepart(year,t.tel_datnar) = @rok
								and datepart(MONTH,t.tel_datnar) between 1 and (@mesiac-1) then 1 else 0 end) as varchar) as rok_tel_zmetanie,
	
		sum(kravy.CUK_medziobd_pocetDni)/sum (kravy.CUK_medziobd_pocLakt) as CUK_medziobodie,
		
		cast((select distinct count(t1.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
											left outer join CM_Telata as t1 on t1.MATKA=k.CISKRAVY  
													where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok
														and k.DOVVYR is null and k.DATVYR is null
														and t1.POHLAVIE in('01','02','11','22','31','32','41','42','51','52','81','82','91','92')) as varchar)
																										as  CUK_tel_nar,--CUK_ZN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('16','61','62','63')) as varchar)
																				as CUK_tel_mrt_nar, --CUK_MN_potomok,
		cast((select count(t.POHLAVIE) from CR_KUMP_CHK_MES_1 as k 
									left outer join CM_Telata as t on t.MATKA=k.CISKRAVY  
										where k.CHOVATEL=@CHOV and k.mesiac=@mesiac and k.rok=@rok 
											and k.DOVVYR is null and k.DATVYR is null
											and t.POHLAVIE in('71')) as varchar)
																				 as CUK_tel_zmetanie, --CUK_ZM_potomok

/******opravene 13.12.2017 *****/
			--cast(round(sum(v.vaha_120 * 1.00)/count(v.vaha_120 * 1.00), 2) as decimal(9, 2)) as CUK_120dni,
			--cast(round(sum(v.vaha_210 * 1.00)/count(v.vaha_210 * 1.00), 2) as decimal(9, 2)) as CUK_210dni,
			--cast(round(sum(v.vaha_365 * 1.00)/count(v.vaha_365 * 1.00), 2) as decimal(9, 2)) as CUK_365dni,
			--cast(round(sum(v.vaha_500 * 1.00)/count(v.vaha_500 * 1.00), 2) as decimal(9, 2)) as CUK_500dni,
		@CUK120D as CUK_120dni,
		@CUK210D as CUK_210dni,
		@CUK365D as CUK_365dni,
		@CUK500D as CUK_500dni,
		@mesiac, 
		@rok, 
		GETDATE() as generovane,
		(select sum(potomok_standart)/380 from @standartPotomok) as standart_potomok_ZN
		
 from CR_KUMP_CHK_MES_1 as t 
 --left outer join @vahy_kravy as v on v.CISKRAVY = t.ciskravy
 left outer join @kravy as kravy on kravy.CISKRAVY = t.ciskravy
 where t.CHOVATEL=@chov and t.rok=@rok and t.mesiac=@mesiac and t.DOVVYR is null and t.DATVYR is null

 end

 --exec [CR_KUMP_kravy_1_sumar] '712152711', 2017, 12;
go


CREATE PROCEDURE [dbo].[C_VZ_TELATA_VAZENI_210] 
	
AS
BEGIN
/******************************************

	using table:

	using views: View_CP_TELATA210_t3,View_cp_Telata210_t2

	changing table:CP_Hmot210

	used for: old version for calculating kg of Telata in 210 days ! now is used for results of  View_CP_TELATA210_FULL_povodneNa101 view

****************************************/
	
	SET NOCOUNT ON;
	declare @chov_id varchar(14);
	
	set @chov_id='';

	DECLARE @W INT;

	TRUNCATE TABLE [PLIS].[dbo].[CP_Hmot210]		


	DECLARE cur_Chovatel CURSOR FOR 
		select    DISTINCT CISTELATA
		from View_CP_TELATA210_t3
		;

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO  @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			DECLARE @UCISLO VARCHAR(14);
			DECLARE @KGT3 INT;
			DECLARE @D2 INT;
			DECLARE @KGT2 INT;
			DECLARE @D3 INT;
			declare @UID varchar(14);
			set @UID='';
			declare @IDDay int;
			set @IDDay=0;
			SET @UCISLO='';
			SET @KGT3=0;
			SET @D2=0;
			SET @KGT2=0;
			SET @D3=0;
			declare @R int;
							declare c cursor for select top 1 t3.hmot,t3.days,t3.chovatel ,t2.hmot,t2.days
												 from plis.dbo.View_cp_Telata210_t3 as T3
												 left join plis.dbo.View_cp_Telata210_t2 as T2
												 on t3.cistelata=t2.cistelata
												where t3.cistelata=@chov_id
												order by t3.days desc

							open c;
							FETCH NEXT FROM c INTO @KGT3,@D3,@UCISLO,@KGT2,@D2;
							WHILE @@FETCH_STATUS = 0
							begin
							DECLARE @XI FLOAT;
							SET @XI=0.00;
							declare @a1 float;
							declare @b1 float;
							declare @c1 float;
							declare @d float;
							declare @i int;
							set @i=0;
		
							IF(@KGT2 IS null)
								BEGIN
									SET @KGT2=30;
										IF(@D3<=210)
											BEGIN
											set @i=1;
											set @a1=@KGT3-@KGT2;
											set @b1=@D3;
											set @c1=210-@D3;
											set @d=@a1/@b1
												SET @XI=@kgt3-(@d*@c1) ;
												
											END
						
										IF(@D3>210)
											BEGIN
											set @i=1;
											set @a1=@KGT3-@KGT2;
											set @b1=@D3;
											set @c1=@D3-210;
											set @d=@a1/@b1

											
												SET @XI=@KGT3-(@d*@c1) ;
											END
							end
							IF(@KGT2 > 0)
								BEGIN
										IF(@D3<=210 and @i!=1)
											BEGIN
											set @a1=@KGT3-@KGT2;
											set @b1=@D3-@D2;
											set @c1=210-@D3;
										if(@b1=0)begin set @b1=NULL; end
											set @d=@a1/@b1

										
												SET @XI=(@d*@c1)+ @KGT3;
											END

										IF(@D3>210 and @i!=1)
											BEGIN
											set @a1=@KGT3-@KGT2;
											set @b1=@D3-@D2;
											set @c1=@D3-210;
											set @d=@a1/@b1

												SET @XI=@KGT3-(@d*@c1);
											END
								END


								insert into [PLIS].[dbo].[CP_Hmot210] (chovatel,ucislo,hmot210) values (@UCISLO,@chov_id,@XI);

							FETCH NEXT FROM c INTO @KGT2,@D2,@UCISLO,@KGT2,@D2;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;

END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_21]
    @rok varchar(4)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_21 as z
	where z.rok = @rok 
	end
go

CREATE PROCEDURE [dbo].[Roc_MPHD_17_prepocet] 
@datumOd date,
@datumDo date=''

AS
BEGIN
delete from Roc_MPHD_Tab_17 where rok = DATEPART(year, @datumOd)


DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT kraj + okres + podnik + chov + Mastal from Roc_MPHD_Tab_zaklad

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MPHD_17 @chov, @datumOd, @datumDo
			

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
declare  @podnik table
(
podnik varchar(6),
pocet_ch int
)
insert @podnik
  Select Kraj + okres + Podnik, count(*) as pocet_ch from Roc_MPHD_Tab_17 where chov <> '' and rok = year(@datumOd) group by  Kraj + okres + Podnik having count(*) > 1

DECLARE prepocet_cursor CURSOR
FOR
SELECT podnik from @podnik


   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MPHD_17 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;
	 
-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT kraj + okres from Roc_MPHD_Tab_zaklad

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC Roc_MPHD_17 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT kraj from Roc_MPHD_Tab_zaklad



    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC Roc_MPHD_17 @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC Roc_MPHD_17 @chov, @datumOd, @datumDo

	
END
go

-- =============================================
/*




OBSTOLETE




*/
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_UpozorneniaNaChovoch]

AS
BEGIN
	
	IF NOT EXISTS 
		( 
		SELECT * FROM sys.tables t
		INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
		WHERE s.name = 'dbo' and t.name = 'CP_UpozorneniaNaChove2' 
		)
		BEGIN
			CREATE TABLE CP_UpozorneniaNaChove2(
			chovatel VARCHAR(9),		
			typ_ku varchar(4),	
			zoot VARCHAR(30),
			nezhod_rodic_pat_s_plis INT,
			pocet_nezhod_preb_lakt INT
			);
		END;
	ELSE 
		BEGIN 
			TRUNCATE TABLE CP_UpozorneniaNaChove2
		END; 
	
	INSERT INTO CP_UpozorneniaNaChove2 (chovatel, typ_ku, zoot)
	SELECT  h.KRAJ + h.OKRES + h.PODNIK + h.CHOV,
	case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
	when (SPVYKON in ('4','5')) and (PRIZNAK = '01') then 'MP' 
	when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
	else 'X' 
	end, osoba	
	FROM
		plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
		plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		where PRIZNAK='01';


declare @k_chovatel varchar(14);
declare @v_pocet_nezhodnych_pat_plis int;
declare @v_pocet_nezhod_preb_lakt int;

declare kurzor_CP_UpozorneniaNaChove2 cursor for 
SELECT chovatel
FROM CP_UpozorneniaNaChove2

	OPEN kurzor_CP_UpozorneniaNaChove2  
	FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove2 INTO  @k_chovatel
		WHILE @@FETCH_STATUS = 0   
		BEGIN   
			select @v_pocet_nezhodnych_pat_plis = pocet_nezhod_pat_plis from function_UpozorneniaNaJednomChove(@k_chovatel)	
			select @v_pocet_nezhod_preb_lakt = pocet_nezhod_preb_lakt from function_UpozorneniaNaJednomChove(@k_chovatel)			
			UPDATE CP_UpozorneniaNaChove2 SET nezhod_rodic_pat_s_plis=@v_pocet_nezhodnych_pat_plis
			,pocet_nezhod_preb_lakt=@v_pocet_nezhod_preb_lakt  WHERE chovatel = @k_chovatel
			
		FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove2 INTO @k_chovatel
		END	
	CLOSE kurzor_CP_UpozorneniaNaChove2  
	DEALLOCATE kurzor_CP_UpozorneniaNaChove2

/*
exec C_ZZ_UpozorneniaNaChovoch
select * from function_UpozorneniaNaJednomChove('703042702')
*/	
END



/*
case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
when (SPVYKON in ('4', '5')) and (PRIZNAK = '01') then 'MP' 
when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
else 'X' 
end as [Typ KÚ]


*/
go

CREATE procedure [dbo].[Rocenka_OV_Tab_MlSt]
    @Zameranie varchar(2),
	@rok varchar(4),
	@StupenKu varchar(1)

	
	
	
	
as
begin

	-- 19.01.2018 oprava, nesmu byt 0 laktacie
	select z.* --,p.NAZOVD
	from dbo.SP_Rocenka_MlSt as z
	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
		where  -- z.rok = @rok and 
	 z.Zameranie = @Zameranie and z.Rok= @rok and @StupenKu= z.StupenKU
	 and Vsetky_Lakt <> 0
	 order by id
end

--		  exec [Rocenka_OV_Tab_MlSt] 'C ', 2017, '2'
go

-- =============================================
-- Author:		Michal Pavlasek
-- Create date:	26.08.2018
-- Description:	Prida novy riadok faktury z heliosu
-- =============================================
CREATE PROCEDURE [ER_HeliosPridajRiadokFaktury]
	@chov varchar(9),
	@faktura varchar(10),
	@pocet int,
	@datum varchar(6),
	@produkt varchar(5),
  @produktNazov varchar(255),
	@jcBezDane decimal(10,4),
	@konzulent varchar(6),
	@cisloZamestnanca varchar(6),
	@region varchar(3),
	@podnikNazov varchar(255),
	@ico varchar(8),
	@orgHelios int

AS
BEGIN
    insert into ER_HeliosRiadokFaktury (Chov, Faktura, Pocet, Datum, Produkt, ProduktNazov, 	JcBezDane, Konzulent, 	CisloZamestnanca, Region, PodnikNazov, Ico, OrgHelios)
        values (@chov, @faktura, @pocet, @datum, @produkt, @produktNazov,	@jcBezDane, @konzulent, 	@cisloZamestnanca, @region, @podnikNazov, 	@ico, @orgHelios);
   
   declare @fakturaId int;

   select @fakturaId = max (IDR) from ER_HeliosRiadokFaktury where Chov = @chov and Produkt = @produkt and Faktura = @faktura;

   -- podiel prace zootechnikov
   insert into ER_HeliosRiadokFakturyZoot (ID_Faktura, Zootechnik, perc) select @fakturaId as ID_Faktura, idzoo as Zootechnik, perc as perc from View_Pracovnik_Chov where CHOV =  @chov;
   
END
go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 03.07.2014
-- Last update: 03.07.2014
-- Description:	Prepocet koeficientu pribuznosti pre dva jedince
-- Input: otec, matka
-- Output: Koeficient
-- =============================================
CREATE FUNCTION [dbo].[Pribuznost_prepocet_priparovanieKoef] (@otec as varchar(14), @matka as varchar(14)) RETURNS float
    
AS
BEGIN

/*predpriprava - ak su rodokmene otca s matkou uplne odlisne, vrat koeficient 0,
tym padom odpadne pocitanie koeficientu pribuznosti
declare @pocet_zhodnych int;
declare @pocet_predkov_o int;
declare @pocet_predkov_m int;
select @pocet_predkov_o= count(rodokmen)from dbo.ZistiRodokmenTable(@otec);
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTable(@matka);
select @pocet_zhodnych = count(rodokmen) from dbo.ZistiRodokmenTable(@matka) where rodokmen 
in(select rodokmen from dbo.ZistiRodokmenTable(@otec))
if @pocet_zhodnych = 0 
return 0;
--return '0,'+cast(@pocet_predkov_o as varchar(2))+','++cast(@pocet_predkov_m as varchar(2));
koniec predpripravy*/

	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	
	set @pribuznost=0;
	set @pribuz=0;
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @spolpredpribuz=0;
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));
					if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=0;					
					end
					set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @spolpredpribuz=0;
				set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=0;					
				end
				set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k=2 or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			return @pribuz;
			--return cast(@pribuz as varchar(2))+cast(@pocet_predkov_o as varchar(2))+','++cast(@pocet_predkov_m as varchar(2));
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Meso_Krava]
	
AS
BEGIN

/***********************************************
	
	! Please run after actualizating table CM_Vazania(C_aktual_prepocMasoveVazania procedure) 
	and Cp_Meso_TelataPoLaktacii(C_ZZ_Meso_TelataPoLaktacie procedure) !

	using table:CM_Krava,CM_Vazenia,CC_Farby,CC_PlemTyp,Cp_Meso_TelataPoLaktacii

	changing table:CP_Meso_Krava

	used for: data for each Krava Masovy typ

**********************************************/

TRUNCATE TABLE [PLIS].[dbo].CP_Meso_Krava


declare @k as varchar(14);
declare @datNar as datetime;
declare @l as int;
declare @p as varchar(80);
declare @typP as varchar(10);
declare @f as varchar(20);
declare @o as varchar(10);
declare @ouscis as varchar(14);
declare @ma as varchar(14);
declare @dovvyr as varchar(2);
declare @datvyr as datetime;
declare @c as varchar(9) ;

declare @h as float;
declare @d as int;
declare @prirastok as float;


declare @h120 as float;
declare @h210 as float;
declare @h365 as float;
declare @H500 AS FLOAT;
declare @pri120 as float;
declare @pri210 as float;
declare @pri365 as float;
declare @pri500 as float;


declare @t1poch as varchar(2);
declare @t1 as varchar(14);
declare @t1hmotNar as int;
declare @t2poch as varchar(2);
declare @t2 as varchar(14)
declare @t2hmotNar as int;
declare @t3poch as varchar(2)
declare @t3 as varchar(14)
declare @t3hmotNar as int;
declare @totec as varchar(10);
declare @touscis as varchar(14);
declare @hmotOtel as int;
declare @medzi as int;
declare @vekDni as int;
declare @vekMesac as int;
declare @datOtel as datetime;

set @h120=null;
set @h210 =null;
set @h365 =null;
set @H500 =null;
set @pri120=null;
set @pri210 =null;
set @pri365=null;
set @pri500=null;



declare krava cursor for
select k.CISKRAVY,k.DATNAR,k.PORPREBLAK,ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
  + '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') 
  + '  ' + ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' 
  + CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, p.TYPS + ' - ' + p.TYPC AS TypPlem, 
  f.NAZF AS Farba, k.OTECLIN+'-'+convert(varchar,k.OTECREG) as otec, k.OUSCIS,k.MA,k.DOVVYR,k.DATVYR,k.CHOVATEL
from plis.dbo.CM_Krava as k
inner join PLIS.dbo.CM_Vazenia as v
on k.CISKRAVY=v.CISTELATA
LEFT OUTER JOIN plis.dbo.CC_Farby AS f 
ON k.FARBA = f.KODF 
LEFT OUTER JOIN plis.dbo.CC_PlemTyp AS p 
ON k.TYPPLEM = p.TYPC 
where k.PRIZNAKKU=2

open krava
fetch next from krava into @k,@datNar,@l,@p,@typP,@f,@o,@ouscis,@ma,@dovvyr,@datvyr,@c

while @@FETCH_STATUS=0
begin


	declare hmot cursor for
	select DNIPREPOC,HMOTPREPOC,PRIRPREPOC
	from plis.dbo.CM_Vazenia
	where CISTELATA=@k;

	open hmot
	fetch next from hmot into @d,@h,@prirastok
	while @@FETCH_STATUS=0
	begin
		
		if(@d=120)
		begin
			set @h120=@h;
			set @pri120=@prirastok
		end

		if(@d=210)
		begin
			set @h210=@h;
			set @pri210=@prirastok;
		end

		if(@d=365)
		begin
			set @h365=@h;
			set @pri365=@prirastok
		end

		if(@d=500)
		begin
			set @H500=@h;
			set @pri500=@prirastok;
		end

	fetch next from hmot into @d,@h,@prirastok
	end
	close hmot
	deallocate hmot;


	declare telata cursor for
	select top 1 t1Pochl,t1,HmotOtT1,t2Pochl,t2,HmotOtT2,t3Pochl,t3,HmotOtT3,otecLin,otecUsnCis,HmotOtel,Medziobd,VekDni,VekMesac,Datotel
	from plis.dbo.Cp_Meso_TelataPoLaktacii
	where Ciskrava=@k
	order by Datotel DESC;

	open telata
	fetch next from telata into @t1poch,@t1,@t1hmotNar,@t2poch,@t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@totec,@touscis,@hmotOtel,@medzi,@vekDni,@vekMesac,@datOtel

	while @@FETCH_STATUS=0
	begin
		fetch next from telata into @t1poch,@t1,@t1hmotNar,@t2poch,@t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@totec,@touscis,@hmotOtel,@medzi,@vekDni,@vekMesac,@datOtel

	end
	close telata
	deallocate telata

	declare @Khmotnar as int
	set @Khmotnar=(select HMOTNAR from plis.dbo.CM_Telata where CISTELATA=@k);

	insert into CP_Meso_Krava values (@c,@k,@datNar,@l,@vekMesac,
									  @vekDni,@medzi,@datOtel,@totec,@touscis,
									  @p,@typP,@f,@o,@ouscis,@ma,@t1poch,@t1,@t1hmotNar,@t2poch,
									  @t2,@t2hmotNar,@t3poch,@t3,@t3hmotNar,@hmotOtel,@h120,@h210,@h365,
									  @H500,@Khmotnar,@dovvyr,@datvyr)

fetch next from krava into @k,@datNar,@l,@p,@typP,@f,@o,@ouscis,@ma,@dovvyr,@datvyr,@c
end

close krava
deallocate krava;

 

END

go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_22]
    @rok varchar(4)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_22 as z
	where z.rok = @rok 
	end
go


/***masova rocenka - pocet prvych inseminacii na 100 krav
Masova rocenka 2017 - str.40 **/
 CREATE procedure [dbo].[Roc_MPHD_16]
	
	@datumOd date ,
	@datumDo date 

as 
begin
delete  from Roc_MPHD_Tab_16 where rok = datepart(year, @datumOd)
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'


declare @prveins int
set @prveins =(select count(*) as 'prve'
				from CM_Insvyk as i
				where i.IPOIN = '01' 
					and i.IDAIN >= @datumOd and i.IDAIN <= @datumDo
					and IKRJA in('1','3')
					and IPLCA in (select cistelata
									from CM_Telata
									where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
								  union
									 select CISKRAVY as usneCislo
									 from CM_Krava
									 where PRIZNAKKU = 2))
--select @prveins as pocet_prveIns

declare @pocet_insem_krav int
set @pocet_insem_krav =(select count (*) as 'pocet_insem_krav' from (select distinct IPLCA from CM_Insvyk as i
						 where IPLCA in (select cistelata from CM_Telata
												where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
											union
												select CISKRAVY from CM_Krava
												where PRIZNAKKU = 2)
							and i.idain >= @datumOd and i.IDAIN <= @datumDo
							and IKRJA in('1','3') ) as t)
declare @vsetkyins int
 set @vsetkyins = ( select count(*) as 'vsetky'
						 from CM_Insvyk as i
						 where i.idain >= @datumOd and i.IDAIN <= @datumDo
							 and IKRJA in('1','3') and i.ivyse is not null 
							 and IPLCA in (select cistelata from CM_Telata
												where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
											union
												select CISKRAVY from CM_Krava
												where PRIZNAKKU = 2))
--select @vsetkyins as pocet_vsetkychIns

	declare @priemer float 
	set @priemer = (select (@prveins*100.0) / @pocet_insem_krav)
	--select @priemer as priemer_prvychIns

/****priemer telnych ****/
declare @prvetelne int
set @prvetelne = (select count (*) from CM_Insvyk as i
					where  IKRJA in('1','3') and IVYSE > '6' and i.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and i.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
							and IPOIN <> '99' ---doplnenie okrem reins
							and IPLCA in (select cistelata from CM_Telata
										where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
									  union
										 select CISKRAVY from CM_Krava
										 where PRIZNAKKU = 2))
--select @prvetelne as pocet_prvetelne

declare  @vsetkytelne int
set @vsetkytelne = (select count(*) from CM_Insvyk as i
					where  IKRJA in('1','3') and IPOIN <> '99' and i.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and i.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
							and IPLCA in (select cistelata from CM_Telata
											where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
										 union
											 select CISKRAVY from CM_Krava
											 where PRIZNAKKU = 2))
--select @vsetkytelne as pocet_vsetky_telne

declare @priemertelnych float
set @priemertelnych = (select @prvetelne * 100.0 / @vsetkytelne ) 
--select @priemertelnych as priemertelnych

declare @telnost_po_prvych_ins float
set @telnost_po_prvych_ins = (select @prvetelne * 100.0 /  @prveins)

--declare @TVI_telne_zo_vest_insem float
--set @TVI_telne_zo_vest_insem = (select @vsetkytelne*100.0/ @vsetkyins)

--drop table Roc_MPHD_Tab_16
--create table Roc_MPHD_Tab_16
--	(
--	pocet_prveIns int,
--	pocet_insem_krav int,
--	vsetkyins int,
--	priemer_prvychIns float,
--	pocet_prvetelne int,
--	pocet_vsetky_telne int,
--	priemertelnych float,
--	--telnost_po_prvych_ins float,
--	rok int
--	)


insert into Roc_MPHD_Tab_16
(pocet_prveIns, pocet_insem_krav, vsetkyins, priemer_prvychIns, --pocet_prvetelne, pocet_vsetky_telne,
 /*priemertelnych,telnost_po_prvych_ins, TVI_telne_zo_vest_insem,*/ rok )
select 	@prveins as pocet_prveIns,
		@pocet_insem_krav as pocet_insem_krav,
		@vsetkyins as vsetkyins,
		@priemer as priemer_prvychIns,
		--@prvetelne as pocet_prvetelne,
		--@vsetkytelne as pocet_vsetky_telne,
		--@priemertelnych as priemertelnych,
		--@telnost_po_prvych_ins as telnost_po_prvych_ins,
		--@TVI_telne_zo_vest_insem as TVI_telne_zo_vest_insem,
		DATEPART(YEAR,@datumOd) as rok 

	update  Roc_MPHD_Tab_16
		set pocet_prvetelne = (select @prvetelne)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))  
				
	update  Roc_MPHD_Tab_16
		set pocet_vsetky_telne = (select @vsetkytelne)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))
		
	update  Roc_MPHD_Tab_16
		set priemertelnych  = (select @priemertelnych)
			where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))

--select top 100 * from CM_Insvyk
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================

CREATE FUNCTION [dbo].[function_UpozorneniaNaJednomChove](@chov varchar(9))
RETURNS @tab table(chovatel varchar(9), typ_ku varchar(4), zootechnik varchar(30), pocet_nezhod_pat_plis int, pocet_nezhod_preb_lakt int) 
AS
BEGIN
/*
pocet_nezhod_preb_lakt = nezhoda medzi prebiehajucou lakt. kravy a laktaciou, ktoru mala pri narodeni posledneho telata
*/
declare @typ_ku varchar(4);
declare @zootechnik varchar(30);
declare @pocet_nezhod_pat_plis int;
declare @pocet_nezhod_preb_lakt int;

/* ----------- HLAVNY ZOOTECHNIK NA CHOVE --------------------------------------------------------------------------------*/
SELECT 
	@typ_ku = case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
	when (SPVYKON in ('4','5')) and (PRIZNAK = '01') then 'MP' 
	when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
	else 'X' 
	end, @zootechnik = osoba
FROM
		plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
		plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
WHERE 
		h.CHOV = SUBSTRING(@chov, 7, 3)
		AND	h.PODNIK = SUBSTRING(@chov, 4, 3)
		AND	h.OKRES = SUBSTRING(@chov, 2, 2)
		AND h.KRAJ = SUBSTRING(@chov, 1, 1)
/* KONIEC ------------ HLAVNY ZOOTECHNIK NA CHOVE ---------------------------------------------------------------- KONIEC*/


/* ------------ POCET NEZHODNYCH RODICOV PATERNITA VS PLIS --------------------------------------------------------------*/
SELECT @pocet_nezhod_pat_plis = COUNT(*) FROM (
SELECT * FROM(
SELECT POHL, KRAVA, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA FROM

(SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, 
k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + 
ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA

FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
WHERE   (LEN(p.KRAVA) = 14) AND (p.CROZB != '0000') AND (p.CRAD != '00')  

AND k.PRIZNAKKU <> 0
AND k.ciskravy IS NOT NULL
AND CHOVATEL = @chov


UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN b.OTUSCIS END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci 
	WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci 
	WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, 
 pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
 
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
 AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 

AND CHOVATEL = @chov
AND b.USCISLO IS NOT NULL
UNION

SELECT   'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], t.DATNAR, t.PL1 + 
CONVERT(varchar, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2 + CONVERT(varchar, ISNULL(t.KR2, 0)) 
+ ' ' + ISNULL(t.PL3 + CONVERT(varchar, ISNULL(t.KR3, 0)) + ' ' + ISNULL(t.PL4 + 
CONVERT(varchar, ISNULL(t.KR4, 0)) + ' ' + ISNULL(t.PL5, ''), ''), ''), '') 
AS PLEMENO, t.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OUC END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OUC END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECLIN END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECREG END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN t.MATKA != p.M THEN t.MATKA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA

FROM    plis.dbo.CM_Telata AS t RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON t.CISTELATA = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV 
WHERE   (LEN(p.KRAVA) = 14) 
 AND (p.CROZB != '0000') AND (p.CRAD != '00') 
AND t.CHOVATEL = @chov

AND t.CISTELATA IS NOT NULL
AND (SELECT k.CISKRAVY FROM plis.dbo.CM_Krava k WHERE k.CISKRAVY = t.CISTELATA) IS NULL

UNION

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN b.OUC END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN b.OUC END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, 
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
 
FROM     plis.dbo.CM_Telata AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.CISTELATA = pb.UC LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 

AND CHOVATEL = @chov
AND b.CISTELATA IS NOT NULL
AND (SELECT bb.USCISLO FROM plis.dbo.CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL


UNION

SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, 
k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + ISNULL(k.PL4 + 
CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA

FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
		plis.dbo.CM_Telata AS t ON t.CISTELATA = p.KRAVA 
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00')
 AND (k.CHOVATEL = @chov OR t.CHOVATEL = @chov)

AND (k.ciskravy IS NULL AND t.cistelata is NULL)

UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, 
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
		plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV LEFT OUTER JOIN
		  plis.dbo.CM_Telata AS t ON t.CISTELATA = pb.UC
WHERE     (LEN(pb.UC) = 14) 
 AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND (b.CHOVATEL = @chov OR t.CHOVATEL = @chov)

AND (b.USCISLO IS NULL AND t.cistelata IS NULL)

) as s
WHERE
(O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL) 


) as tab /*tab vybera nezhodnych otcov*/ /*where ZOOT like '%'+@zoot+'%'*/


union


select * from (
SELECT POHL, KRAVA, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA FROM

(SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, 
k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + 
ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
										   ELSE 
	CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA

FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
WHERE   (LEN(p.KRAVA) = 14) 
 AND (p.CROZB != '0000') AND (p.CRAD != '00') 

AND (p.M != k.MA ) 
AND CHOVATEL = @chov
AND k.PRIZNAKKU <> 0
AND k.ciskravy IS NOT NULL

UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN b.OTUSCIS END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci 
	WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci 
	WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OTUSCIS != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = pb.OREG) THEN 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, 
 pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
 AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND (pb.M != b.MATKA) 
AND CHOVATEL = @chov
AND b.USCISLO IS NOT NULL
UNION

SELECT   'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], t.DATNAR, t.PL1 + 
CONVERT(varchar, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2 + CONVERT(varchar, ISNULL(t.KR2, 0)) 
+ ' ' + ISNULL(t.PL3 + CONVERT(varchar, ISNULL(t.KR3, 0)) + ' ' + ISNULL(t.PL4 + 
CONVERT(varchar, ISNULL(t.KR4, 0)) + ' ' + ISNULL(t.PL5, ''), ''), ''), '') 
AS PLEMENO, t.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OUC END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OUC END END AS O_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECLIN END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECLIN END END AS OLIN_PLIS, 
CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
	CASE WHEN t.OUC != p.OUC THEN t.OTECREG END
										   ELSE 
	CASE WHEN NOT(t.OTECLIN = p.OSTREG AND t.OTECREG = p.OREG) THEN t.OTECREG END END AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN t.MATKA != p.M THEN t.MATKA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA

FROM    plis.dbo.CM_Telata AS t RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON t.CISTELATA = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV 
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00') 
AND (p.M != t.MATKA ) 
AND CHOVATEL = @chov
AND t.CISTELATA IS NOT NULL
AND (SELECT k.CISKRAVY FROM plis.dbo.CM_Krava k WHERE k.CISKRAVY = t.CISTELATA) IS NULL

UNION

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN b.OUC END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN b.OUC END END AS O_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
CASE WHEN pb.OSTREG IS NULL OR pb.OREG IS NULL THEN 
	CASE WHEN b.OUC != pb.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
										   ELSE 
	CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OSTREG) 
	AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = pb.OREG) THEN 
	(SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, 
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA

FROM     plis.dbo.CM_Telata AS b RIGHT OUTER JOIN
	  plis.dbo.CM_Paternita_Byky AS pb ON b.CISTELATA = pb.UC LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND (pb.M != b.MATKA)
AND CHOVATEL = @chov
AND b.CISTELATA IS NOT NULL
AND (SELECT bb.USCISLO FROM plis.dbo.CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL


UNION

SELECT    'samica' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, 
k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + ' ' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
+ ' ' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + ' ' + ISNULL(k.PL4 + 
CONVERT(varchar, ISNULL(k.KR4, 0)) + ' ' + ISNULL(k.PL5, ''), ''), ''), '') 
AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, 
p.KT, p.DNA, p.CROZB + '/' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA
FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
        plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
	    plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
		plis.dbo.CM_Telata AS t ON t.CISTELATA = p.KRAVA 
WHERE   (LEN(p.KRAVA) = 14) 
AND (p.CROZB != '0000') AND (p.CRAD != '00')
AND (p.M != k.MA ) 
AND (k.CHOVATEL = @chov OR t.CHOVATEL = @chov)
AND (k.ciskravy IS NULL AND t.cistelata is NULL)

UNION 

SELECT     'samec' as [POHL], pb.UC as KRAVA, pb.STREG, pb.REG, b.DATNAR, b.PL1 + 
CONVERT(varchar, ISNULL(b.KR1, 0)) + ' ' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
 + ' ' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + ' ' + ISNULL(b.PL4 + 
 CONVERT(varchar, ISNULL(b.KR4, 0)) + ' ' + ISNULL(b.PL5, ''), ''), ''), '') 
 AS PLEMENO, b.CHOVATEL, pb.OSTREG, pb.OREG, pb.OUC AS O_PA, 
null AS O_PLIS, 
null AS OLIN_PLIS, 
null AS OREG_PLIS,  
 pv.O_suhlasi, pb.M AS M_PA, CASE WHEN b.MATKA != pb.M THEN b.MATKA END AS M_PLIS, 
 pv.M_suhlasi, pb.KT, pb.DNA, pb.CROZB + '/' + pb.CRAD AS CISROZB, pb.KRVDAT, pb.PATDAT, pb.PATERNITA
FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
		plis.dbo.CM_Paternita_Byky AS pb ON b.LIN = pb.STREG AND b.REG = pb.REG LEFT OUTER JOIN
		  plis.dbo.CC_PaternVysled AS pv ON pb.KPUV = pv.KPUV LEFT OUTER JOIN
		  plis.dbo.CM_Telata AS t ON t.CISTELATA = pb.UC
WHERE     (LEN(pb.UC) = 14) 
AND (pb.CROZB != '0000') AND (pb.CRAD != '00') 
AND (pb.M != b.MATKA) 
AND (b.CHOVATEL = @chov OR t.CHOVATEL = @chov)
AND (b.USCISLO IS NULL AND t.cistelata IS NULL)
				) as s
		) as tab2 /*tab vybera nezhodne matky*/ 

) as tabl
/*KONIEC --------------- POCET NEZHODNYCH RODICOV PATERNITA VS PLIS -----------------------------------------------------KONIEC*/

/*---------------------- POCET NEZHODNEJ PREBIEHAJUCEJ LAKTACIE U KRAVY S POSLEDNYM NAROD. TELATOM ----------------------------*/
select @pocet_nezhod_preb_lakt = count(*) FROM (
select tab.MATKA, tab.dat, c.PORPREBLAK, t.PORLAK from cm_krava c inner join
(
SELECT  t.MATKA,max(t.DATNAR) as dat
FROM CM_Telata as t 
inner JOIN CM_Krava as k on t.MATKA = k.CISKRAVY inner join NM_HDDETAIL h on 
k.CHOVATEL = (h.KRAJ + h.OKRES + h.PODNIK + h.CHOV)
WHERE k.DOVVYR is null and h.PRIZNAK = '01' and t.CHOVATEL=@chov
group by t.MATKA ) as tab 
on c.CISKRAVY = tab.MATKA
inner join CM_Telata t on t.MATKA = tab.MATKA and t.MATKA = c.CISKRAVY and tab.dat = t.DATNAR
and t.CHOVATEL=@chov
where t.PORLAK > c.PORPREBLAK )  
as tab

/*KONIEC --------------- POCET NEZHODNEJ PREBIEHAJUCEJ LAKTACIE U KRAVY S POSLEDNYM NAROD. TELATOM ----------------------KONIEC*/


insert into @tab values (@chov, @typ_ku, @zootechnik, @pocet_nezhod_pat_plis, @pocet_nezhod_preb_lakt)
return;
/*
select * from function_UpozorneniaNaJednomChove('102501011')
*/
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_Mleko_telata_3C] (@CHOVATEL as varchar(9), @rok as varchar(9),@kolko as int)
AS
BEGIN
	
	declare @k as int
	set @k=@kolko;
	
	create table #aTable  
	(
	[CHOVATEL]  varchar(9)
      ,[rok]  varchar(20)
      ,[od]  varchar(10)
      ,[m1]  int
      ,[m2]  int
      ,[m3]  int
      ,[m4]  int
      ,[m5]  int
      ,[m6]  int
      ,[m7]  int
      ,[m8]  int
      ,[m9]  int
      ,[m10]  int
      ,[m11]  int
      ,[m12]  int
	)


	declare @c as varchar(9);
	declare @y as varchar(4);

	set @c=@CHOVATEL;
	set @y=@rok;


	declare @m as varchar(2);
	declare @kr as int;
	declare @j as int;
	declare @vs as int;

	declare @m1k as int;
	declare @m1j as int;
	declare @m1s as int;

	declare @m2k as int;
	declare @m2j as int;
	declare @m2s as int;

	declare @m3k as int;
	declare @m3j as int;
	declare @m3s as int;

	declare @m4k as int;
	declare @m4j as int;
	declare @m4s as int;

	declare @m5k as int;
	declare @m5j as int;
	declare @m5s as int;

	declare @m6k as int;
	declare @m6j as int;
	declare @m6s as int;

	declare @m7k as int;
	declare @m7j as int;
	declare @m7s as int;

	declare @m8k as int;
	declare @m8j as int;
	declare @m8s as int;

	declare @m9k as int;
	declare @m9j as int;
	declare @m9s as int;

	declare @m10k as int;
	declare @m10j as int;
	declare @m10s as int;

	declare @m11k as int;
	declare @m11j as int;
	declare @m11s as int;

	declare @m12k as int;
	declare @m12j as int;
	declare @m12s as int;

	
	
			
			set @m1k=0;
				set @m1j=0;
				set @m1s=0;

				set @m2k=0;
				set @m2j=0;
				set @m2s=0;

				set @m3k=0;
				set @m3j=0;
				set @m3s=0;

				set @m4k=0;
				set @m4j=0;
				set @m4s=0;

				set @m5k=0;
				set @m5j=0;
				set @m5s=0;

				set @m6k=0;
				set @m6j=0;
				set @m6s=0;

				set @m7k=0;
				set @m7j=0;
				set @m7s=0;

				set @m8k=0;
				set @m8j=0;
				set @m8s=0;

				set @m9k=0;
				set @m9j=0;
				set @m9s=0;

				set @m10k=0;
				set @m10j=0;
				set @m10s=0;

				set @m11k=0;
				set @m11j=0;
				set @m11s=0;

				set @m12k=0;
				set @m12j=0;
				set @m12s=0;

		

				
				declare @help as varchar(4);

				set @help=convert(varchar(4), (convert(int,@y)-1)); 
				print N'In begining'
				print @y;
				print @help;

while(@help <= (convert(int,@y)))
begin
		print N'In beginng while'
		print @help
		print @y
		print N'OK'
		
		declare a cursor for
		select convert(varchar(2),vs.mesac) as mesac,vs.pocet as Po4etVs,j.pocet as Po4etJal,k.pocet as Po4etKrav
		from(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union 
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union 
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as vs

		left join

			(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t 
				where t.PORLAK=1 
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK=1 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as j
		on vs.CHOVNAR=j.CHOVNAR and vs.rok=j.rok and vs.mesac=j.mesac

		left join

			(
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,t.CHOVNAR
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK>1 
				group by CHOVNAR,YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,6)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,6),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,3)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,3),YEAR(t.datnar),MONTH(t.DATNAR)
				union
				select COUNT(*) as pocet,YEAR(t.datnar) as rok,MONTH(t.datnar) as mesac,substring(t.CHOVNAR,1,1)
				from PLIS.dbo.function_instead_of_View_CP_Mlieko_ZoznamZivoNarodenychTeliat(@CHOVATEL) as t
				where t.PORLAK>1 
				group by substring(CHOVNAR,1,1),YEAR(t.datnar),MONTH(t.DATNAR)
			) as k
		on vs.CHOVNAR=k.CHOVNAR and vs.rok=k.rok and vs.mesac=k.mesac


		where vs.CHOVNAR=@c
		and vs.rok=@y and vs.mesac between 1 and 9 or vs.CHOVNAR=@c and vs.rok=@y-1 and vs.mesac between 10 and 12

		order by vs.mesac 
		
		open a 
		fetch next from a into @m,@vs,@j,@kr
		
		while @@FETCH_STATUS=0
		begin
		if(@m='10')
		begin
		set @m1k=@kr;
		set @m1j=@j;
		set @m1s=@vs;
		end
		
		if(@m='11')
		begin
		set @m2k=@kr;
		set @m2j=@j;
		set @m2s=@vs;
		end
		
		if(@m='12')
		begin
		set @m3k=@kr;
		set @m3j=@j;
		set @m3s=@vs;
		end
		
		if(@m='1')
		begin
		set @m4k=@kr;
		set @m4j=@j;
		set @m4s=@vs;
		end
		
		if(@m='2')
		begin
		set @m5k=@kr;
		set @m5j=@j;
		set @m5s=@vs;
		end
		
		if(@m='3')
		begin
		set @m6k=@kr;
		set @m6j=@j;
		set @m6s=@vs;
		end
		
		if(@m='4')
		begin
		set @m7k=@kr;
		set @m7j=@j;
		set @m7s=@vs;
		end
		
		if(@m='5')
		begin
		set @m8k=@kr;
		set @m8j=@j;
		set @m8s=@vs;
		end
		
		if(@m='6')
		begin
		set @m9k=@kr;
		set @m9j=@j;
		set @m9s=@vs;
		end
		
		if(@m='7')
		begin
		set @m10k=@kr;
		set @m10j=@j;
		set @m10s=@vs;
		end
		
		if(@m='8')
		begin
		set @m11k=@kr;
		set @m11j=@j;
		set @m11s=@vs;
		end
		
		if(@m='9')
		begin
		set @m12k=@kr;
		set @m12j=@j;
		set @m12s=@vs;
		end
		
		fetch next from a into @m,@vs,@j,@kr
		end
		
		close a
		deallocate a

			insert into #aTable values (
																@c,
																cast(convert(int,@y)-1 as varchar(4))+'/'+@y,
																'Krava',
																@m1k,
																@m2k,
																@m3k,
																@m4k,
																@m5k,
																@m6k,
																@m7k,
																@m8k,
																@m9k,
																@m10k,
																@m11k,
																@m12k
															)
				insert into #aTable values (
																@c,
																cast(convert(int,@y)-1 as varchar(4))+'/'+@y,
																'Jalovica',
																@m1j,
																@m2j,
																@m3j,
																@m4j,
																@m5j,
																@m6j,
																@m7j,
																@m8j,
																@m9j,
																@m10j,
																@m11j,
																@m12j
															)
		
		insert into #aTable values (
																@c,
																cast(convert(int,@y)-1 as varchar(4))+'/'+@y,
																'Spolu',
																@m1s,
																@m2s,
																@m3s,
																@m4s,
																@m5s,
																@m6s,
																@m7s,
																@m8s,
																@m9s,
																@m10s,
																@m11s,
																@m12s
															)
	
		insert into #aTable values(
																@c,
																cast(convert(int,@y)-1 as varchar(4))+'/'+@y,
																'Nápočet',
																@m1s,
																@m1s+@m2s,
																@m1s+@m2s+@m3s,
																@m1s+@m2s+@m3s+@m4s,
																@m1s+@m2s+@m3s+@m4s+@m5s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s+@m11s,
																@m1s+@m2s+@m3s+@m4s+@m5s+@m6s+@m7s+@m8s+@m9s+@m10s+@m11s+@m12s
		)

				set @m1k=0;
				set @m1j=0;
				set @m1s=0;

				set @m2k=0;
				set @m2j=0;
				set @m2s=0;

				set @m3k=0;
				set @m3j=0;
				set @m3s=0;

				set @m4k=0;
				set @m4j=0;
				set @m4s=0;

				set @m5k=0;
				set @m5j=0;
				set @m5s=0;

				set @m6k=0;
				set @m6j=0;
				set @m6s=0;

				set @m7k=0;
				set @m7j=0;
				set @m7s=0;

				set @m8k=0;
				set @m8j=0;
				set @m8s=0;

				set @m9k=0;
				set @m9j=0;
				set @m9s=0;

				set @m10k=0;
				set @m10j=0;
				set @m10s=0;

				set @m11k=0;
				set @m11j=0;
				set @m11s=0;

				set @m12k=0;
				set @m12j=0;
				set @m12s=0;


 Set @y= convert(varchar(4),(convert(int,@y)-1));

print N'----------------'
print @help;
print @y;
print N'--------------------'
	end		

	set @y=@rok;

	insert into #aTable (CHOVATEL,rok,od,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12)  (
	select a.CHOVATEL
	  ,a.[rok]+'-'+b.[rok] as rok
      ,a.[od]
      ,isnull(a.[m1],0)-isnull(b.m1,0)  as j
      ,isnull(a.[m2],0)-isnull(b.m2,0) as f
      ,isnull(a.[m3],0)-isnull(b.m3,0) as m
      ,isnull(a.[m4],0)-isnull(b.m4,0) as a
      ,isnull(a.[m5],0)-isnull(b.m5,0) as maj
      ,isnull(a.[m6],0)-isnull(b.m6,0) as j
      ,isnull(a.[m7],0)-isnull(b.m7,0) as j2
      ,isnull(a.[m8],0)-isnull(b.m8,0) as a
      ,isnull(a.[m9],0)-isnull(b.m9,0) as s
      ,isnull(a.[m10],0)-isnull(b.m10,0) as o
      ,isnull(a.[m11],0)-isnull(b.m11,0) as n
      ,isnull(a.[m12],0)-isnull(b.m12,0) as d
  FROM #aTable as a
  full join #aTable as b
  on (a.CHOVATEL=b.CHOVATEL and a.od=b.od and (convert(int,substring(b.rok,6,4))+1)=convert(int,substring(a.rok,6,4)))
  where a.CHOVATEL=@c
  and a.rok=cast(convert(int,@y)-1 as varchar(4))+'/'+@y
  )
  
   

  print N'Sled poslednoto'
  
  select * from #aTable
			drop table #aTable
END

/*

declare @c varchar(9);
declare @r varchar(9);
declare @kolko int;

set @c = '102501011';
set @r = '2014';
set @kolko = 9;

exec C_ZZ_Mleko_telata_3C @c, @r, @kolko


*/



go

-- =============================================
-- Author:		Vladimir Durech, pssr
-- Create date: 2017-08-23
-- Description:	Procedura vrati id z KonZapMenovky, kde ak neexistuje zaznam, tak ho vytvori
-- =============================================
CREATE PROCEDURE  dbo.S_KonZapMen_id
	@chov varchar(9),
	@rokev varchar(6)
AS
BEGIN
	declare @id int = null
	set @id = isnull(( select id from SM_KonZapMen where chov = @chov and rokev=@rokev ), -1 )
	--Ak chov a rok este nie su v KZMen, tak sa doplni zaznam
	if @id = -1
	begin
		insert into SM_KonZapMen
		values (@chov, @rokev)
	end

	set @id = ( select id from SM_KonZapMen where chov = @chov and rokev=@rokev )

	select @id
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- Description:	priemerne MO za mliekovu kravu, ci narodene telata pochadzaju z prirodzenej plemenitby, alebo inseminacie
-- zistuje sa, ci byk, ktorym bola krava oplodnena, patri do inseminacie alebo nie, na to sluzi priznak z CM_Byci - bb_insem,
-- tento priznak moze mat hodnoty = '-' (t.j. prirodzena plemenitba PPL), 'I' - inseminacia, alebo NULL
-- ak je bb_insem NULL berieme do uvahy cislo registra byka, ak ma < 500 patri do inseminacie, ak ma >= 501 patri do PPL

CREATE PROCEDURE [dbo].[MedziobdobiePodlaPPLaInsMliekovy_test](@krava varchar(14))
AS
BEGIN

declare @v_bb_insem char(1);

declare @v_PPL float; /*suma medziobd PPL*/
declare @v_Ins float; /*suma medziobd Ins*/
set @v_PPL = 0;
set @v_Ins = 0;

declare @v_pocetPPL int;
declare @v_pocetIns int;
set @v_pocetPPL = 0;
set @v_pocetIns = 0;

declare @v_priemerPPL float;
declare @v_priemerIns float;
set @v_priemerPPL = 0;
set @v_priemerIns = 0;

/*kurzorove premenne*/

declare @v_datotel date;
declare @v_oteclin varchar(3);
declare @v_otecreg int;
declare @v_medziobd int;

declare krava_cursor cursor for

/*
select t.DATNAR, t.CISTELATA, t.OTECLIN, t.OTECREG, t.OUC, p.Medziobd from plis.dbo.CM_Telata as t
left join plis.dbo.Cp_Meso_TelataPoLaktacii as p on (t.MATKA=p.Ciskrava) where t.MATKA=@krava
and t.DATNAR=p.DATOTEL group by t.CISTELATA,t.OTECLIN,t.OTECREG,t.OUC,t.DATNAR,p.Medziobd
order by t.DATNAR
*/

select  l.DATOTEL,  t.OTECLIN, t.OTECREG, l.MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   left outer join CM_Telata t on t.DATNAR=l.DATOTEL and t.MATKA=l.CISKRAVY   
   where l.CISKRAVY=@krava and k.priznakku = '1'
   union
   select  N.DATOTEL,  t.OTECLIN, t.OTECREG, n.MEDZIOBD from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV  
    left outer join CM_Telata t on t.DATNAR=n.DATOTEL and t.MATKA=n.CISKRAVY   
   where n.CISKRAVY=@krava and k.priznakku = '1' 
   order by l.DATOTEL  

OPEN krava_cursor   
FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg,  @v_medziobd

	WHILE @@FETCH_STATUS = 0   
	BEGIN  	   	
		if (@v_oteclin is not null and @v_otecreg is not null and @v_medziobd is not null)
		begin
			select @v_bb_insem=BB_INSEM from CM_Byci b where b.LIN = @v_oteclin and b.REG = @v_otecreg;
			 print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1));
			 print '		reg: ' + cast(@v_otecreg as varchar(14)) + '	bb_insem priznak ' + cast(@v_bb_insem as varchar(1));  
			if (@v_bb_insem = 'I')
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;
			
			if (@v_bb_insem = '-')
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			
			if (@v_bb_insem is null)
			begin
				if (@v_otecreg >= 501)
					begin
						set @v_PPL = @v_PPL + @v_medziobd;
						set @v_pocetPPL = @v_pocetPPL + 1;
					end;
					else
					begin
						set @v_Ins = @v_Ins + @v_medziobd;
						set @v_pocetIns = @v_pocetIns + 1;
					end;
			end;			
			
			/*if (@v_otecreg >= 501)
			begin
				set @v_PPL = @v_PPL + @v_medziobd;
				set @v_pocetPPL = @v_pocetPPL + 1;
			end;
			else
			begin
				set @v_Ins = @v_Ins + @v_medziobd;
				set @v_pocetIns = @v_pocetIns + 1;
			end;*/
		end;
		begin
			print 'neznama linia, alebo medziobd je null'
		end;
		print 'ppl: ' + cast(@v_PPL as varchar(14)) + ' / ' + cast(@v_pocetPPL as varchar(14)) ;
		print 'ins: ' + cast(@v_Ins as varchar(14)) + ' / ' + cast(@v_pocetIns as varchar(14)) ;
		print '\n'
		
	FETCH NEXT FROM krava_cursor INTO @v_datotel, @v_oteclin, @v_otecreg,  @v_medziobd
	END
	
CLOSE krava_cursor   
DEALLOCATE krava_cursor

if (@v_pocetPPL <> 0)
set @v_priemerPPL = @v_PPL / @v_pocetPPL;

if (@v_pocetIns <> 0)
set @v_priemerIns = @v_Ins / @v_pocetIns;

select NULLIF(@v_priemerIns,0) as Ins, NULLIF(@v_priemerPPL,0) as PPL

/*
exec [MedziobdobiePodlaPPLaInsMliekovy] 'SK000800300388'
*/
END

/*


exec [MedziobdobiePodlaPPLaInsMliekovy_test] 'SK000597521308'






select  l.DATOTEL,  t.OTECLIN, t.OTECREG, l.MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   left outer join CM_Telata t on t.DATNAR=l.DATOTEL and t.MATKA=l.CISKRAVY   
   where l.CISKRAVY=@krava and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null   
   union
   select  N.DATOTEL,  t.OTECLIN, t.OTECREG, n.MEDZIOBD from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV  
    left outer join CM_Telata t on t.DATNAR=n.DATOTEL and t.MATKA=n.CISKRAVY   
   where n.CISKRAVY=@krava and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null 
   order by l.DATOTEL  










select  l.DATOTEL,  t.OTECLIN, t.OTECREG, l.MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   left outer join CM_Telata t on t.DATNAR=l.DATOTEL and t.MATKA=l.CISKRAVY   
   where l.CISKRAVY='SK000597521308'  and k.priznakku = '1' 
   union
   select  N.DATOTEL,  t.OTECLIN, t.OTECREG, n.MEDZIOBD from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV  
    left outer join CM_Telata t on t.DATNAR=n.DATOTEL and t.MATKA=n.CISKRAVY   
   where n.CISKRAVY='SK000597521308'  and k.priznakku = '1' 
   order by l.DATOTEL  */
go



-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Priprava TXT sUboru kontrol pre gen. hodnotenie SIM populacie v DE
-- EDIT:		2018-04-20 - David Florek - Zmenene aby vyberalo zo ZSTDM namiesto TDMSIM
-- EDIT:        2018-07-12 (FREKV), link to calving data,   kontrola na poradie laktacie calvig data a testdays
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_testdays2_skuska]
AS
BEGIN
	select * into #temp_recordings from (
	(select arch.CISKRAVY,
	         CISCHOVU,
	         DATKONTR,
	         MLIEKPR as MLIEKO,
	        isnull(PERCTUKU, 0) as TUKP,
	        isnull(PERCBIELK, 0) as BIELKP,
	        isnull(BUNECELEM, 0) as SB,
	      
			(case when detail.MLIEKOMER = 2 then 'R' else 
			      (case when arch.FREKVENCIA is not null then arch.FREKVENCIA else '2'  end) end) as FREKV,
			 arch.PORPREBLAK
	from CM_ArchKon arch
	  join CM_Krava krav on arch.CISKRAVY = krav.CISKRAVY
	  left outer join NM_HDDETAIL detail on arch.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where CISCHOVU is not null
	  and MLIEKPR is not null
	  and INTERVAL is not null and arch.PORPREBLAK is not null
	  and TYPPLEM in (11, 13, 14) 

union 	SELECT  kon.CISKRAVY, kon.CISCHOVU, kon.DATKONTR, kon.MLIEKPR as MLIEKO , isnull(PERCTUKU, 0) as TUKP,
	          isnull(PERCBIELK, 0) as BIELKP,
	          isnull(BUNECELEM, 0) as SB,
	       	  (case when detail.MLIEKOMER = 2 then 'R' else 
			  (case when kon.FREKVENCIA is not null then kon.FREKVENCIA else '2'  end) end) as FREKV,
			  kon.PORPREBLAK  
FROM           dbo.CM_Kontroly as kon
			   join CM_Krava krav on kon.CISKRAVY = krav.CISKRAVY
	           left outer join NM_HDDETAIL detail on kon.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	           where CISCHOVU is not null
	           and MLIEKPR is not null
	           and INTERVAL is not null  and kon.PORPREBLAK is not null
	           and TYPPLEM in (11, 13, 14) and kon.CISKRAVY NOT IN  (SELECT CM_ArchKon.CISKRAVY FROM CM_ArchKon WHERE kon.CISKRAVY = CM_Archkon.CISKRAVY and kon.DATKONTR = CM_Archkon.DATKONTR)
/*union	SELECT  
	 CISKRAVY
	, CISCHOVU
	, DATKONTR
	, MLIEKO
	, TUKP
	, BIELKP
	, t.SB
	, case when detail.MLIEKOMER = 2 then 'R' else '2' end as FREKV
	, porlak as PORPREBLAK
	  FROM [plis].[dbo].[CM_ZSTDM] as t
	  left outer join NM_HDDETAIL detail on t.CISCHOVU = detail.KRAJ + detail.OKRES + detail.PODNIK + detail.CHOV
	  where LEFT(t.TYP, 1) = 'S'
	  and CISCHOVU is not null
	  and t.SB is not null  and t.CISKRAVY NOT IN (select CM_Archkon.CISKRAVY FROM CM_ArchKon  where t.CISKRAVY = CM_Archkon.CISKRAVY and t.DATKONTR = CM_ArchKon.DATKONTR)
	 and t.CISKRAVY NOT IN 	(select CM_Kontroly.CISKRAVY FROM CM_Kontroly  where t.CISKRAVY = CM_Kontroly.CISKRAVY and t.DATKONTR = CM_Kontroly.DATKONTR)  
*/			   
			   
			   )
	
	  ) as tab
	  where tab.CISKRAVY  in (select CISKRAVY from  dbo.View_CP_LaktacieNaplak as ln  where tab.CISKRAVY = ln.CISKRAVY and tab.PORPREBLAK = ln.PORLAK);

	SELECT 
		(SELECT CISLOKRAJINY FROM NC_CiselnikKrajin where KODKRAJINYKRATKY = left(CISKRAVY, 2)) as CISLOKRAJINY
		,right(CISKRAVY, 12) as CISLOZVIERATA
		,RIGHT('00000000000'+convert(varchar(11), CISCHOVU), 11) as CISCHOVU
		,'00' as REGIONPOVODU
		,isnull(convert(varchar(8), DATKONTR, 112), '00000000') as DATKONTR
		,RIGHT('0000'+convert(varchar(4), MLIEKO*10), 4) as MLIEKO
		,RIGHT('0000'+convert(varchar(4), TUKP*100), 4) as TUKP
		,RIGHT('0000'+convert(varchar(4), BIELKP*100), 4) as BIELKP
		,RIGHT('00000'+convert(varchar(5), SB), 5) as SB
		, 'C' as METHOD
		, case (SELECT SPVYKON from NM_HDDETAIL where kraj+okres+podnik+chov = CISCHOVU) 
			when 1 then 'S' when 2 then 'T' when 6 then 'M' when 7 then 'M' else ' ' end as SCHEME
		, '4' as TESTINT
		,convert(varchar(1), isnull(FREKV, 1)) as FREKV
		, '0' as T1
		, '000' as T2
		, '0' as T3
--		into temp_polozky_recordings
	FROM #temp_recordings
--	 where DATKONTR < '2018-10-15'

	
--	EXEC xp_cmdshell 'bcp "select CISLOKRAJINY +CISLOZVIERATA +CISCHOVU +REGIONPOVODU +DATKONTR +MLIEKO +TUKP +BIELKP +SB +METHOD +SCHEME +TESTINT +FREKV +T1 +T2 +T3 from plis.dbo.temp_polozky_recordings" queryout "e:\ROZBORAK\Data\svk.55.txt" -T -c -t,'

--	drop table temp_polozky_recordings
END


go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 03.07.2014
-- Last update: 03.07.2014
-- Description:	Prepocet koeficientu pribuznosti pre dva jedince
-- Input: otec, matka
-- Output: Spolocni predkovia - 1 line
-- =============================================
CREATE FUNCTION [dbo].[Pribuznost_prepocet_priparovaniePredk] (@otec as varchar(14), @matka as varchar(14)) RETURNS VARCHAR(250)
    
AS
BEGIN
	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	
	set @pribuznost=0;
	set @pribuz=0;
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @pribuz=@pribuz+(SELECT POWER(0.50000,(@j+@k+1)));
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @pribuz=@pribuz+(SELECT POWER(0.50000,(@j+@k+1)));
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k<(select count (*) FROM (select distinct spolocny_predok from @aTable) as id) or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			return @spolocny_predkovia;
END
go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_KravyPodlaRokovALakt]	
AS
BEGIN
	/*********************************************

		using table:CM_Krava,

		changing table:CP_Meso_StadaPodlaVeku

		used for: Mesova krava -> (4) Zloženie stáda podľa veku a prebiehajúcej laktácie  report results

	********************************************/
	TRUNCATE TABLE CP_Meso_StadaPodlaVeku

	SET NOCOUNT ON;
	declare @chov varchar(9);
	set @chov='';
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=0;
	set @pocet=0;
	

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;

	declare  chovately cursor 
	for SELECT  DISTINCT     CHOVATEL
		FROM    CM_Krava AS k
		WHERE    (PRIZNAKKU = '2') AND (DOVVYR IS NULL)
		GROUP BY CHOVATEL

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					print @chov;
				
						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
						
							set @count=@count+@pocet;
							
							
							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt1 into @pocet,@l
						end
						set @rok=1;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=2;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt2 into @pocet,@l
						end
						set @rok=2;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and porpreblak is not null
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.999999999999999)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							if(@l is not NULL)
							begin
							set @count=@count+@pocet;
							end

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt3 into @pocet,@l
						end
						set @rok=3;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt4 
						fetch next from lakt4 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt4 into @pocet,@l
						end
						set @rok=4;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;
						
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.99999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt5 
						fetch next from lakt5 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=5;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt5 into @pocet,@l
						end
						set @rok=5;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt6 
						fetch next from lakt6 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt6 into @pocet,@l
						end
						set @rok=6;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.99999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt7 into @pocet,@l
						end
						set @rok=7;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.99999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
								
							fetch next from lakt8 into @pocet,@l
						end
						set @rok=8;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt9 into @pocet,@l
						end
						set @rok=9;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.999999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt10 into @pocet,@l
						end
						set @rok=10;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.999999999999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
								print @l10;
							fetch next from lakt11 into @pocet,@l
						end
						set @rok=11;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.9999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt12 into @pocet,@l
						end
						set @rok=12;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.9999999999999999)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							
							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt13 into @pocet,@l
						end
						set @rok=13;
						insert into dbo.CP_Meso_StadaPodlaVeku values(convert(varchar,@rok),@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))>= 14)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end
							print @l
							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_Meso_StadaPodlaVeku values('14 a viac',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '2') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))is null)
							and	CHOVATEL=@chov
							and porpreblak is not null
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							
							set @count=@count+@pocet;
							

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l>=10)
							begin
								set @l10=@l10+@pocet;
							end

							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_Meso_StadaPodlaVeku values('Bez dát. nar',@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=0;

					FETCH NEXT FROM chovately INTO @chov;
			end

			print @count;

			close chovately;
			deallocate chovately;
			
		update  CP_Meso_StadaPodlaVeku
		set l10=null
		where l10=0;
END

go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_23]
    @rok varchar(4)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_23 as z
	where z.rok = @rok 
	end
go


/***masova rocenka - Zastupenie plemennic podla dlzky servis periody
Masova rocenka 2017 - str.39 **/
 CREATE procedure [dbo].[Roc_MPHD_15]
	@datumOd date,
	@datumDo date 
	
as 
begin

delete from Roc_MPHD_Tab_15 where rok = DATEPART(year,@datumOd)

----declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
	declare @plemenice table
	(
	IPLCA varchar (14),
	IDAIN date,
	PSER varchar(7),
	PRIZNAKKU int
	)

	insert @plemenice
	  select i.IPLCA, i.IDAIN, 
		(case when z.PSER <= 40 then '40'
				when z.PSER >= 41 and  z.PSER <= 75 then '41_75'
				when z.PSER >= 76 and  z.PSER <= 90 then '76_90'
				when z.PSER >= 91 and  z.PSER <= 120 then '91_120'
				when z.PSER >= 120 then '120' end) as PSER,
				k.PRIZNAKKU
		from CM_Insvyk as i
		  left outer join CM_Krava as k on k.CISKRAVY = i.IPLCA
		  left outer join CM_ZSI as z on i.IPLCA = z.PLCA
		  where 
			z.PSER > 0
			and k.PRIZNAKKU = 2
			and i.IDAIN between @datumOd and @datumDo
			and i.IVYSE > 6 
			and i.IPOIN <> '99'
		  order by i.IDAIN desc

/*Create table Roc_MPHD_Tab_15
--declare @tab15 table
	(
	pser_40 int,
	pser_41_75 int,
	pser_76_90 int,
	pser_91_120 int,
	pser_120 int,
	pser_vsetky int,
	perc_40 float,
	perc_41_75 float,
	perc_76_90 float,
	perc_91_120 float,
	perc_120 float,
	rok int
	)
	*/

	insert Roc_MPHD_Tab_15
	select sum(case when pser = '40' then 1 else 0 end) as pser_40,
		sum(case when pser = '41_75' then 1 else 0 end) as pser_41_75,
		sum(case when pser = '76_90' then 1 else 0 end) as pser_76_90,
		sum(case when pser = '91_120' then 1 else 0 end) as pser_91_120,
		sum(case when pser = '120' then 1 else 0 end) as pser_120,
		count(*) as pser_vsetky, 
		cast((sum(case when pser = '40' then 1 else 0 end) * 100.00  / count(*)) as decimal(7,2)) as perc_40,
		cast((sum(case when pser = '41_75' then 1 else 0 end) * 100.00  / count(*)) as decimal(7,2)) as perc_41_75,
		cast((sum(case when pser = '76_90' then 1 else 0 end) * 100.00  / count(*)) as decimal(7,2)) as perc_76_90,
		cast((sum(case when pser = '91_120' then 1 else 0 end) * 100.00 / count(*)) as decimal(7,2)) as perc_91_120,
		cast((sum(case when pser = '120' then 1 else 0 end) * 100.00  / count(*)) as decimal(7,2)) as perc_120,
		datepart(year, @datumOd) as rok
		 from @plemenice 

		-- select * from Roc_MPHD_Tab_15

end
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016
-- Description:	Prepocet HUHD
-- rok/mesiac/dekada
-- =============================================

CREATE PROCEDURE CR_prepocet_KUHD @rok INT, @mesiac INT, @dekada INT 

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)


    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
		SELECT chovatel FROM dbo.CR_KUHD_MesUzavCH_1x WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
		DELETE FROM CR_KUHD_MesUzavCH_1x_backup WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
		--INSERT CR_KUHD_MesUzavCH_1x_backup
		--	SELECT * FROM dbo.CR_KUHD_MesUzavCH_1x WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
				

							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)

							EXEC dbo.CR_KUHD_mesacne @chov,@rok,@mesiac,@dekada

	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


go

-- =============================================
-- Author:		Michal Pavlasek
-- Create date:	11.12.2018
-- Description:	Zobrazi ekonomicky prehlad pre dotacie za podniky, parameter rok, 
-- a potom este rokStr a mesiacStr, kde sa davaju aktualne data z faktur, ktore estenie su v heliose
-- =============================================
CREATE PROCEDURE [ER_HeliosPodnikyDotaciePercenta]
    @rok int,
    @rokStr varchar(2),
    @mesiacStr varchar(2)

AS
  BEGIN
    select
      View_ER_HeliosDotacieOpravnene.ucet,
      isnull(View_ER_HeliosDotacieOpravnene.podnikKod, aktualne.podnik)        as podnik,
      isnull(View_ER_HeliosDotacieOpravnene.podnikNazov, aktualne.podnikNazov) as podnikNazov,
      aktualne.spolu                                                           as spolu,
      aktualne.dotaciaSpolu                                                    as dotaciaSpolu,
      aktualne.percento                                                        as percento,
      View_ER_HeliosDotacieOpravnene.dotaciaSuma                               as dotaciaDoteraz,
      View_ER_HeliosDotacieOpravnene.sumaOpravene                              as sumaOpravnenaDoteraz,
      case when View_ER_HeliosDotacieOpravnene.sumaOpravene > 0
        then
          View_ER_HeliosDotacieOpravnene.dotaciaSuma / (View_ER_HeliosDotacieOpravnene.sumaOpravene * 0.01)
      else 0 end                                                               as percentoDoteraz,
      case when View_ER_HeliosDotacieOpravnene.sumaOpravene > 0
        then
          (View_ER_HeliosDotacieOpravnene.dotaciaSuma + isnull(aktualne.dotaciaSpolu, 0)) /
          ((View_ER_HeliosDotacieOpravnene.sumaOpravene + isnull(aktualne.spolu, 0)) * 0.01)
      else 0 end                                                               as percentoNove
    from View_ER_HeliosDotacieOpravnene
      left outer join (
                        select
                          ucet.CisloUctu                                                     as ucet,
                          substring(Chov, 1, 6)                                              as podnik,
                          podnik.NAZOV                                                       as podnikNazov,
                          sum(Suma * Pocet)                                                  as spolu,
                          sum(EC_RiadokFaktury.Dotacia * Pocet)                              as dotaciaSpolu,
                          sum(EC_RiadokFaktury.Dotacia * Pocet) / (sum(Suma * Pocet) * 0.01) as percento
                        from EC_RiadokFaktury
                          left outer join EC_CISPROD produkt
                            on EC_RiadokFaktury.Produkt = produkt.KOD1 + produkt.KOD2 + produkt.KOD3
                          inner join EC_NazvyUctov ucet on produkt.UCET = ucet.CisloUctu
                          left outer join NM_PODNIK podnik
                            on substring(Chov, 1, 6) = podnik.KRAJ + podnik.OKRES + podnik.podnik

                        where substring(Datum, 1, 2) = @rokStr and substring(Datum, 3, 2) = @mesiacStr and Potvrdeny = 1 and
                              Zruseny = 0
                        group by ucet.CisloUctu, substring(Chov, 1, 6), podnik.NAZOV
                      ) as aktualne on aktualne.podnik = podnikKod and aktualne.ucet = View_ER_HeliosDotacieOpravnene.ucet
    where rok = @rok

    ORDER BY View_ER_HeliosDotacieOpravnene.ucet, View_ER_HeliosDotacieOpravnene.podnikKod;



  END
go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 17.02.2014
-- Last update: 28.07.2014
-- Description:	Skopirovanie CM_Krava, CM_Byci, CM_Telata, Ainbreeding2 (interbull data)
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_kopirovanie_krav] 
AS
BEGIN
	declare @ciskravy as varchar(14);
	declare @cistelata as varchar(14);
	declare @ouscis as varchar(14);
	declare @ouc as varchar(14);
	declare @ma as varchar(14);
	declare @datnar as date;
	declare @pl1 as varchar(2);
	declare @pohlavie as varchar(2);
	declare @uscislo as varchar(14);
	declare @meno as varchar(40);
	declare @otuscis as varchar(14);
	declare @matka as varchar(14);


	

	declare @IB_uscislo as varchar(64);
	declare @IB_otec as varchar(64);
	declare @IB_matka as varchar(64);
	declare @IB_datnar as varchar(64);
	declare @IB_meno as varchar(64);
	declare @IB_verifikacia as varchar(64);
	declare @IB_organiz as varchar(64);
	
	declare byk cursor for
	SELECT USCISLO,MENO,OTUSCIS,MATKA,DATNAR,PL1,POHLAVIE
	FROM PLIS.dbo.CM_Byci
	open byk
	fetch next from byk into @uscislo, @meno, @otuscis, @matka, @datnar, @pl1, @pohlavie;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if ((select COUNT(*) from plis.dbo.Ainbreeding where uscislo=@uscislo)=0)
			 begin
				INSERT INTO PLIS.dbo.Ainbreeding
					([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
				VALUES
				(@uscislo,@otuscis,@matka,@datnar,@pohlavie,@meno,@pl1,'PSSRbyk')
				print N'pridany byk '+convert(varchar,@uscislo);
	   
			end
			else begin
				print N'existujuci nepridany byk '+convert(varchar,@uscislo);
			end
			fetch next from byk into @uscislo, @meno, @otuscis, @matka, @datnar, @pl1, @pohlavie;
		end
	close byk;
	deallocate byk;
	
	set @ciskravy=null;
	set @cistelata=null;
	set @ouscis=null;
	set @ouc=null;
	set @ma=null;
	set @uscislo=null;
	set @meno=null;
	set @otuscis=null;
	set @matka=null;
	set @pl1=null;
	set @pohlavie=null;
	set @datnar=null;
	
	declare krava cursor for
	SELECT CISKRAVY, OUSCIS, MA, DATNAR, PL1, POHLAVIE
	FROM PLIS.dbo.CM_Krava where PRIZNAKKU <> '0'
	/*dopisanie podmienky, krava moze mat priznak inseminacie 0, kde kravy
	s tymto priznakom nemaju doplnenych rodicov, aj ked tato krava je evidovana v CM_Telatach, kde tych rodicov ma,
	preto sa dostane potom kurzorom pre telata do ainbreeding so znamymi rodicmi, ak toto tela pride do cm_krava s
	priznakomku = '0', tu sa jej nikdy rodicia nedopisuju*/
	open krava
	fetch next from krava into @ciskravy, @ouscis, @ma, @datnar, @pl1, @pohlavie;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if ((select COUNT(*) from plis.dbo.Ainbreeding where uscislo=@ciskravy)=0)
			 begin
				if ((@ouscis is not null and @ma is not null))
				begin
					INSERT INTO PLIS.dbo.Ainbreeding
						([uscislo],[otec],[matka],[datnar],[pohlavie],[plemeno],[povoddat])
					VALUES
					(@ciskravy,@ouscis,@ma,@datnar,@pohlavie,@pl1,'PSSRkrava')
					print N'pridana krava '+convert(varchar,@ciskravy);
				end
			end
			else begin
				print N'existujuca nepridana krava '+convert(varchar,@ciskravy);
			end
			fetch next from krava into @ciskravy, @ouscis, @ma, @datnar, @pl1, @pohlavie;
		end
	close krava;	
	deallocate krava;
	
	DELETE FROM [PLIS].[dbo].[Ainbreeding] WHERE otec is null and matka is null 

	
	set @ciskravy=null;
	set @cistelata=null;
	set @ouscis=null;
	set @ouc=null;
	set @ma=null;
	set @uscislo=null;
	set @meno=null;
	set @otuscis=null;
	set @matka=null;
	set @pl1=null;
	set @pohlavie=null;
	set @datnar=null;
	

	DELETE FROM [PLIS].[dbo].[Ainbreeding] WHERE otec is null and matka is null 
	
	declare ib cursor for
	SELECT [uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], [IB_uscislo],
			[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz]
	FROM PLIS.dbo.Ainbreeding2
	open ib
	fetch next from ib into @uscislo, @ouscis, @matka, @datnar, @pohlavie, @meno, @pl1, @IB_uscislo,
			@IB_otec, @IB_matka, @IB_datnar, @IB_meno, @IB_verifikacia, @IB_organiz;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if ((select COUNT(*) from plis.dbo.Ainbreeding where uscislo=@uscislo)=0)
			 begin
				INSERT INTO PLIS.dbo.Ainbreeding
					([uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], [povoddat],	[IB_uscislo],
			[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz])
				VALUES
				(@uscislo, @ouscis, @matka, @datnar, @pohlavie, @meno, @pl1, 'IB', @IB_uscislo,
			@IB_otec, @IB_matka, @IB_datnar, @IB_meno, @IB_verifikacia, @IB_organiz)
				print N'pridane ib '+convert(varchar,@uscislo);
	   
			end
			else begin
				print N'existujuce nepridane ib '+convert(varchar,@uscislo);
			end
			fetch next from ib into @uscislo, @ouscis, @matka, @datnar, @pohlavie, @meno, @pl1, @IB_uscislo,
			@IB_otec, @IB_matka, @IB_datnar, @IB_meno, @IB_verifikacia, @IB_organiz;
		end
	close ib;
	deallocate ib;
	
	set @ciskravy=null;
	set @cistelata=null;
	set @ouscis=null;
	set @ouc=null;
	set @ma=null;
	set @uscislo=null;
	set @meno=null;
	set @otuscis=null;
	set @matka=null;
	set @pl1=null;
	set @pohlavie=null;
	set @datnar=null;
	
	DELETE FROM [PLIS].[dbo].[Ainbreeding] WHERE otec is null and matka is null 
	
	declare tela cursor for
	SELECT CISTELATA,OUC,MATKA,DATNAR,PL1,POHLAVIE
	FROM PLIS.dbo.CM_Telata
	open tela
	fetch next from tela into @cistelata, @ouc, @matka, @datnar, @pl1, @pohlavie;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if ((select COUNT(*) from plis.dbo.Ainbreeding where uscislo=@cistelata)=0)
			 begin
				INSERT INTO PLIS.dbo.Ainbreeding
					([uscislo],[otec],[matka],[datnar],[pohlavie],[plemeno],[povoddat])
				VALUES
				(@cistelata,@ouc,@matka,@datnar,@pohlavie,@pl1,'PSSRtela')
				print N'pridane tela '+convert(varchar,@cistelata);
	   
			end
			else begin
				print N'existujuce nepridane tela '+convert(varchar,@cistelata);
			end
			fetch next from tela into @cistelata, @ouc, @matka, @datnar, @pl1, @pohlavie;
		end
	close tela;
	deallocate tela;
END
go

CREATE PROCEDURE [dbo].[C_ZZ_Meso_MedziObdobZostava]
AS
BEGIN
/*******************************************

!  please run affter updating table cp_MedziObdMesove (C_VZ_MedziobdobieMesove procedure) !

	using table:CM_Krava,CP_MedziObdMesove

	changing table:cp_Meso_MediobdobieReport

	used for:(6)Rozbor medziobdobia kr�v K�MP 

*****************************************/

TRUNCATE TABLE cp_Meso_MediobdobieReport

declare @chov as varchar(9);
declare @l as int;
declare @hranica as varchar(15);
declare @spolu int;

declare @Pmedzi0 as int;
declare @Pmedzi2 as int;
declare @Pmedzi3 as int;
declare @Pmedzi4 as int;
declare @Pmedzi5 as int;
declare @Pmedzi6 as int;
declare @Pmedzi7 as int;
declare @Pmedzi8 as int;
declare @Pmedzi9 as int;
declare @PmedziX as int;

declare @l2h0 as int;
declare @l3h0 as int;
declare @l4h0 as int;
declare @l5h0 as int;
declare @l6h0 as int;
declare @l7h0 as int;
declare @l8h0 as int;
declare @l9h0 as int;
declare @l2h1 as int;
declare @l2h2 as int;
declare @l2h3 as int;
declare @l2h4 as int;
declare @l2h5 as int;
declare @l3h1 as int;
declare @l3h2 as int;
declare @l3h3 as int;
declare @l3h4 as int;
declare @l3h5 as int;
declare @l4h1 as int;
declare @l4h2 as int;
declare @l4h3 as int;
declare @l4h4 as int;
declare @l4h5 as int;
declare @l5h1 as int;
declare @l5h2 as int;
declare @l5h3 as int;
declare @l5h4 as int;
declare @l5h5 as int;
declare @l6h1 as int;
declare @l6h2 as int;
declare @l6h3 as int;
declare @l6h4 as int;
declare @l6h5 as int;
declare @l7h1 as int;
declare @l7h2 as int;
declare @l7h3 as int;
declare @l7h4 as int;
declare @l7h5 as int;
declare @l8h1 as int;
declare @l8h2 as int;
declare @l8h3 as int;
declare @l8h4 as int;
declare @l8h5 as int;
declare @l9h1 as int;
declare @l9h2 as int;
declare @l9h3 as int;
declare @l9h4 as int;
declare @l9h5 as int;

declare @lspolu0 as int;
declare @lspolu2 as int;
declare @lspolu3 as int;
declare @lspolu4 as int;
declare @lspolu5 as int;
declare @lspolu6 as int;
declare @lspolu7 as int;
declare @lspolu8 as int;
declare @lspolu9 as int;

declare @hspolu0 as int;
declare @hspolu1 as int;
declare @hspolu2 as int;
declare @hspolu3 as int;
declare @hspolu4 as int;
declare @hspolu5 as int;


	

declare chov cursor for
select distinct k.CHOVATEL
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union

select distinct substring(k.chovatel,1,6)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union 

select distinct substring(k.chovatel,1,3)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union

select distinct substring(k.chovatel,1,1)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null


open chov;
fetch next from chov into @chov;

while @@FETCH_STATUS=0
begin


		 set @spolu=	(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE  @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK is not null
		 and k.porpreblak !=1)
		 --------------------------------------------------------------
		
		 set @l2h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK = 2
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null
		 )
				
		 set @l2h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l2h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l2h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l2h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l2h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 set @hspolu5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)


		 set @hspolu4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @hspolu3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu1=(select count(*)
		from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and ( t.Medziobd<=320) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)
		 
		 set @hspolu0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and ( t.Medziobd is null) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi2=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 ---------------------------------------------------------
		
		 set @l3h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l3h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l3h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l3h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l3h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l3h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi3=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null)
		 --------------------------------------------
		  
		 set @l4h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)		 
		 
		 set @l4h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL  LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l4h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL  LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l4h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l4h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l4h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)

		 set @Pmedzi4=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l5h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l5h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l5h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l5h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l5h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l5h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd >= 401
		 and k.PORPREBLAK is not null)

		 set @lspolu5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)

		 set @Pmedzi5=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)
		 -----------------------------------------------

		 set @l6h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)
		
		 set @l6h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l6h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l6h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l6h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l6h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)


		 set @lspolu6=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)

		 set @Pmedzi6=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l7h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l7h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l7h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l7h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l7h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l7h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu7=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)

		 set @Pmedzi7=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l8h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l8h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l8h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l8h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l8h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l8h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu8=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)

		 set @Pmedzi8=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l9h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l9h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l9h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l9h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l9h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l9h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu9=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)

		 set @Pmedzi9=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)


		 set @PmedziX=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=2
		 and k.PORPREBLAK is not null)


		 ---------------------------------------------------
	
	
	
	insert into cp_Meso_MediobdobieReport values(@chov,'bez medziobdobia',@l2h0,(@l2h0*100)/convert(float,@spolu)*1.00,
												 @l3h0,(@l3h0*100)/convert(float,@spolu)*1.00,@l4h0,(@l4h0*100)/convert(float,@spolu)*1.00,
												 @l5h0,(@l5h0*100)/convert(float,@spolu)*1.00,@l6h0,(@l6h0*100)/convert(float,@spolu)*1.00,
												 @l7h0,(@l7h0*100)/convert(float,@spolu)*1.00,@l8h0,(@l8h0*100)/convert(float,@spolu)*1.00,
												 @l9h0,(@l9h0*100)/convert(float,@spolu)*1.00,@hspolu0,
												 (@hspolu0*100)/convert(float,@spolu)*1.00);
	

	insert into cp_Meso_MediobdobieReport values(@chov,'do 320',@l2h1,(@l2h1*100)/convert(float,@spolu)*1.00,
												 @l3h1,(@l3h1*100)/convert(float,@spolu)*1.00,@l4h1,(@l4h1*100)/convert(float,@spolu)*1.00,
												 @l5h1,(@l5h1*100)/convert(float,@spolu)*1.00,@l6h1,(@l6h1*100)/convert(float,@spolu)*1.00,
												 @l7h1,(@l7h1*100)/convert(float,@spolu)*1.00,@l8h1,(@l8h1*100)/convert(float,@spolu)*1.00,
												 @l9h1,(@l9h1*100)/convert(float,@spolu)*1.00,@hspolu1,
												 (@hspolu1*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'321-365',@l2h2,(@l2h2*100)/convert(float,@spolu)*1.00,
												 @l3h2,(@l3h2*100)/convert(float,@spolu)*1.00,@l4h2,
												 (@l4h2*100)/convert(float,@spolu)*1.00,@l5h2,
												 (@l5h2*100)/convert(float,@spolu)*1.00,@l6h2,(@l6h2*100)/convert(float,@spolu)*1.00,
												 @l7h2,(@l7h2*100)/convert(float,@spolu)*1.00,@l8h2,(@l8h2*100)/convert(float,@spolu)*1.00,
												 @l9h2,(@l9h2*100)/convert(float,@spolu)*1.00,@hspolu2,(@hspolu2*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'366-385',@l2h3,(@l2h3*100)/convert(float,@spolu)*1.00,@l3h3,
												 (@l3h3*100)/convert(float,@spolu)*1.00,@l4h3,(@l4h3*100)/convert(float,@spolu)*1.00,@l5h3,
												 (@l5h3*100)/convert(float,@spolu)*1.00,@l6h3,(@l6h3*100)/convert(float,@spolu)*1.00,@l7h3,
												 (@l7h3*100)/convert(float,@spolu)*1.00,@l8h3,(@l8h3*100)/convert(float,@spolu)*1.00,@l9h3,
												 (@l9h3*100)/convert(float,@spolu)*1.00,@hspolu3,(@hspolu3*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'386-400',@l2h4,(@l2h4*100)/convert(float,@spolu)*1.00,@l3h4,(
												 @l3h4*100)/convert(float,@spolu)*1.00,@l4h4,(@l4h4*100)/convert(float,@spolu)*1.00,@l5h4, 
												 (@l5h4*100)/convert(float,@spolu)*1.00,@l6h4,(@l6h4*100)/convert(float,@spolu)*1.00,@l7h4,
												 (@l7h4*100)/convert(float,@spolu)*1.00,@l8h4,(@l8h4*100)/convert(float,@spolu)*1.00,@l9h4,
												 (@l9h4*100)/convert(float,@spolu)*1.00,@hspolu4,(@hspolu4*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'nad 400',@l2h5,(@l2h5*100)/convert(float,@spolu)*1.00,@l3h5,
												 (@l3h5*100)/convert(float,@spolu)*1.00,@l4h5,(@l4h5*100)/convert(float,@spolu)*1.00,@l5h5,
												 (@l5h5*100)/convert(float,@spolu)*1.00,@l6h5,(@l6h5*100)/convert(float,@spolu)*1.00,@l7h5,
												 (@l7h5*100)/convert(float,@spolu)*1.00,@l8h5,(@l8h5*100)/convert(float,@spolu)*1.00,@l9h5,
												 (@l9h5*100)/convert(float,@spolu)*1.00,@hspolu5,(@hspolu5*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Spolu',@lspolu2,(@lspolu2*100)/convert(float,@spolu)*1.00,
												 @lspolu3,(@lspolu3*100)/convert(float,@spolu)*1.00,@lspolu4,
												 (@lspolu4*100)/convert(float,@spolu)*1.00,@lspolu5,(@lspolu5*100)/convert(float,@spolu)*1.00,
												 @lspolu6,(@lspolu6*100)/convert(float,@spolu)*1.00,@lspolu7,(@lspolu7*100)/convert(float,@spolu)*1.00,
												 @lspolu8,(@lspolu8*100)/convert(float,@spolu)*1.00,@lspolu9,(@lspolu9*100)/convert(float,@spolu)*1.00,
												 @spolu,(@spolu*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Priem. medziobd.',@Pmedzi2,null,@Pmedzi3,null,@Pmedzi4,null,@Pmedzi5,null,@Pmedzi6,null,@Pmedzi7,null,@Pmedzi8,null,@Pmedzi9,null,@PmedziX,null);

	fetch next from chov into @chov;
end

close chov;
deallocate chov;

END
go

CREATE PROCEDURE [dbo].[CR_KUHD_selekcne]

@chov VARCHAR(9),
@rok INT,
@mesiac INT--,
--@dekada INT

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 20.5.2016, 
-- Description:	Selekcne hranice mlieka a tuku pre KUHD
-- @chov, @rok, @mesiac
-- ===================================================================

AS

BEGIN

DECLARE @start DATE
DECLARE @datum2 DATE
DECLARE @end DATE


--SET @chov = '801506011'
--SET @rok = 2016
--SET @mesiac = 5
--SET @dekada = 9


	SELECT @start = /*CASE @dekada
--	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/

	SELECT @end = /*CASE @dekada
	WHEN 1 THEN */ EOMONTH(@start) -- koniec dekady
	/*WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	END*/

	PRINT 'Chov:				' + CONVERT(VARCHAR,@chov);
	PRINT 'Rok:				' + CONVERT(VARCHAR,@rok);
	PRINT 'Mesiac:				' + CONVERT(VARCHAR,@mesiac);
	--PRINT 'Mesiac:				' + CONVERT(VARCHAR,@dekada);
	--PRINT 'Zaciatok dekady:	' + CONVERT(VARCHAR,@start);
	--PRINT 'Koniec dekady:		' + CONVERT(VARCHAR,@end);
	PRINT '--------------------------------------';


	DECLARE @HH TABLE 
			( 
			ciskravy VARCHAR(14),
			pocet_kontrol INT,
			kontrola DATE
			)
	INSERT INTO @HH
	        ( ciskravy, pocet_kontrol, kontrola )
	SELECT ko.CISKRAVY, COUNT(ko.CISKRAVY) AS pocet_kontrol, MAX(ko.DATKONTR) AS kontrola FROM dbo.CM_Kontroly ko
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak na ON (na.CISKRAVY = ko.CISKRAVY)
	WHERE CISCHOVU = @chov
	GROUP BY ko.CISKRAVY

	-- debug info
	-- SELECT * FROM @HH WHERE pocet_kontrol < 3 AND kontrola >= @start ORDER BY ciskravy ASC
   
	
	-- vypocet 1 a 2 kontrola, pocet kusov, priemer mlieka a smerodajna odchylka
	DECLARE @pocet12 INT, @mliekopr12 DOUBLE PRECISION, @so12 DOUBLE PRECISION
	SELECT @pocet12 = COUNT(ko.CISKRAVY), @mliekopr12 = ROUND(AVG(ko.MLIEKPR),2), @so12 = ROUND(STDEVP(ko.MLIEKPR),2) FROM  @HH h
		LEFT JOIN dbo.CM_Kontroly ko ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL
		WHERE h.pocet_kontrol < 3
		AND ko.DATKONTR BETWEEN @start AND @end


	DECLARE @min1ko DOUBLE PRECISION, @min1ko_1L DOUBLE PRECISION
	SET @min1ko = ROUND(@mliekopr12 - @so12,2)
	SET @min1ko_1L = ROUND(@mliekopr12 - @so12 * 1.25,2)

	-- vymaz a zapis

	DELETE FROM CR_KUHD_MesUzavCH_Hran WHERE CHOVATEL = @chov AND rok = @rok AND mesiac = @mesiac --AND dekada = @dekada
	
	INSERT INTO CR_KUHD_MesUzavCH_Hran (CHOVATEL, CISKRAVY, HRAN12KO,HRANTB100, HRANTB200, /*dekada,*/ mesiac, rok)

	SELECT @chov, ciskravy, 1 AS HRAN12KO, NULL AS HRANTB100, NULL AS HRANTB200, /*@dekada,*/ @mesiac, @rok FROM
	(
	SELECT h.ciskravy, ko.MLIEKPR, n.PORLAK , @min1ko_1L AS minmlieko, 1 AS Q FROM  @HH h
	LEFT JOIN dbo.CM_Kontroly ko ON (h.ciskravy = ko.CISKRAVY)
	LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11
	LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL
	WHERE h.pocet_kontrol < 3
	AND ko.DATKONTR BETWEEN @start AND @end AND ko.MLIEKPR <= @min1ko_1L AND n.PORLAK = 1
	)A
	UNION
	SELECT @chov, ciskravy, 1 AS HRAN12KO, NULL AS HRANTB100, NULL AS HRANTB200, /*@dekada,*/ @mesiac, @rok FROM
	(
	SELECT h.ciskravy, ko.MLIEKPR, n.PORLAK, @min1ko AS minmlieko,  2 AS Q FROM  @HH h
	LEFT JOIN dbo.CM_Kontroly ko ON (h.ciskravy = ko.CISKRAVY)
	LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11
	LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL
	WHERE h.pocet_kontrol < 3
	AND ko.DATKONTR BETWEEN @start AND @end AND ko.MLIEKPR <= @min1ko AND n.PORLAK > 1
	)B
	ORDER BY A.ciskravy



	-- vypocet tuku a bielkoviny pre kravy na 100 dnoch
	DECLARE @pocet100 INT, @T100 DOUBLE PRECISION, @SOT100 DOUBLE PRECISION
	DECLARE @TB100 DOUBLE PRECISION, @TBSO100 DOUBLE PRECISION

		SELECT @pocet100 = COUNT(ko.CISKRAVY), @T100 = ROUND(AVG(n.TUKNOR),2), @SOT100 = ROUND(STDEVP(n.TUKNOR),2),
		@TB100 = ROUND(AVG(n.TUKNOR + n.BIELKNOR),2), @TBSO100 = ROUND(STDEVP(n.TUKNOR + n.BIELKNOR),2)
		FROM @HH h
		LEFT JOIN dbo.CM_Kontroly ko  ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL 
		WHERE ko.CISCHOVU = @chov AND ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 100 AND n.LAKTDNI < 115) 
    
	DECLARE @min100T DOUBLE PRECISION,  @min100Tkoef DOUBLE PRECISION
	SET @min100T = ROUND(@T100 - @SOT100,2)
	SET @min100Tkoef = ROUND(@T100 - @SOT100 * 1.25,2)

	---- zapis
	INSERT INTO CR_KUHD_MesUzavCH_Hran (CHOVATEL, CISKRAVY, HRAN12KO,HRANTB100, HRANTB200, /*dekada,*/ mesiac, rok)
	SELECT @chov, n.ciskravy, NULL AS HRAN12KO, 1 AS HRANTB100, NULL AS HRANTB200, /*@dekada,*/ @mesiac, @rok
		FROM @HH h
		LEFT JOIN dbo.CM_Kontroly ko  ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11 
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL 
		WHERE ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 100 AND n.LAKTDNI < 115) AND n.TUKNOR < @min100T
		AND n.PORLAK = 1
	
	UNION

	SELECT @chov, n.ciskravy, NULL AS HRAN12KO, 1 AS HRANTB100, NULL AS HRANTB200, /*@dekada,*/ @mesiac, @rok
		FROM @HH h
		LEFT JOIN dbo.CM_Kontroly ko  ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11 
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL 
		WHERE ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 100 AND n.LAKTDNI < 115) AND n.TUKNOR < @min100Tkoef
		AND n.PORLAK > 1

	-- vypocet tuku a bielkoviny pre kravy na 200 dnoch
	DECLARE @pocet200 INT, @t200 DOUBLE PRECISION, @so200 DOUBLE PRECISION
	DECLARE @TB200 DOUBLE PRECISION, @TBSO200 DOUBLE PRECISION
		
		SELECT @pocet200 = COUNT(ko.CISKRAVY), @t200 = ROUND(AVG(n.TUKNOR),2), @so200 = ROUND(STDEVP(n.TUKNOR),2),
		@TB200 = ROUND(AVG(n.TUKNOR + n.BIELKNOR),2), @TBSO200 = ROUND(STDEVP(n.TUKNOR + n.BIELKNOR),2)
		FROM dbo.CM_Kontroly ko
		LEFT JOIN @HH h ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy)
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy)
		WHERE ko.CISCHOVU = @chov AND ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 200 AND n.LAKTDNI < 215) AND kr.DOVVYR IS NULL AND n.ZMENA = 11
    
	DECLARE @min200T DOUBLE PRECISION,  @min200Tkoef DOUBLE PRECISION
	SET @min200T = ROUND(@t200 - @so200,2)
	SET @min200Tkoef = ROUND(@t200 - @so200 * 1.25,2)

		---- zapis
	INSERT INTO CR_KUHD_MesUzavCH_Hran (CHOVATEL, CISKRAVY, HRAN12KO,HRANTB100, HRANTB200, /*dekada,*/ mesiac, rok)
	SELECT @chov, h.ciskravy, NULL AS HRAN12KO, NULL AS HRANTB100, 1 AS HRANTB200, /*@dekada,*/ @mesiac, @rok
		FROM @HH h
		LEFT JOIN dbo.CM_Kontroly ko  ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11 
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL 
		WHERE ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 200 AND n.LAKTDNI < 215) AND n.TUKNOR < @min200T
		AND n.PORLAK = 1
	
	UNION

	SELECT @chov, h.ciskravy, NULL AS HRAN12KO, NULL AS HRANTB100, 1 AS HRANTB200, /*@dekada,*/ @mesiac, @rok
		FROM @HH h
		LEFT JOIN dbo.CM_Kontroly ko  ON (h.ciskravy = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = h.ciskravy) AND n.ZMENA = 11 
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = h.ciskravy) AND kr.DOVVYR IS NULL 
		WHERE ko.DATKONTR BETWEEN @start AND @end
		AND (n.LAKDNIN = 200 AND n.LAKTDNI < 215) AND n.TUKNOR < @min200Tkoef
		AND n.PORLAK > 1




			PRINT 'SKSKO: ' + CONVERT(VARCHAR, @pocet12)			-- pocet krav na 1 a 2 kontrole
			PRINT 'PRKO: ' + CONVERT(VARCHAR, @mliekopr12) 			-- priemer mlieka na 1 a 2 kontrole
			PRINT 'SKO: ' + CONVERT(VARCHAR, @so12)					-- smerodajna odchylka na 1 a 2 kontrole			
			PRINT 'min1ko: ' + CONVERT(VARCHAR, @min1ko)			-- minimalne mlieko pre kravy na 1 a 2 kontrole
			PRINT 'min1ko_1L: ' + CONVERT(VARCHAR, @min1ko_1L)		-- minimalne mlieko pre kravy na 1 a 2 kontrole a 1 laktacii
			PRINT '--------------------------------------'
			PRINT 'SEKST100: ' + CONVERT(VARCHAR, @pocet100)		-- pocet krav na 100 dnoch
			PRINT 'PRT100: ' + CONVERT(VARCHAR, @T100)				-- priemer tuku na 100 dnoch
			PRINT 'ST100: ' + CONVERT(VARCHAR, @SOT100)				-- smerodajna odchylka tuku na 100 dnoch
			PRINT 'SMINX100T: ' + CONVERT(VARCHAR, @min100T)		-- minimalny TB na 100 dnoch	
			PRINT 'SMIN1X100T: ' + CONVERT(VARCHAR, @min100Tkoef)	-- minimalny TB na 100 dnoch a 1 laktacii
			PRINT '--------------------------------------'
			PRINT 'SEKST200: ' + CONVERT(VARCHAR, @pocet200)		-- pocet krav na 200 dnoch
			PRINT 'PRTB200: ' + CONVERT(VARCHAR, @t200)				-- priemer TB na 200 dnoch
			PRINT 'ST200: ' + CONVERT(VARCHAR, @so200)				-- smerodajna odchylka TB na 200 dnoch
			PRINT 'SMINX200T: ' + CONVERT(VARCHAR, @min200T)		-- minimalny TB na 200 dnoch
			PRINT 'SMIN1X200T: ' + CONVERT(VARCHAR, @min200Tkoef)	-- minimalny TB na 200 dnoch a 1 laktacii
			
			PRINT 'SMIN1X200T: ' + CONVERT(VARCHAR, @TB200)	-- minimalny TB na 200 dnoch a 1 laktacii	



END
go




CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MedziObdobZostavaB_CHOV]
	@ParChov varchar(9)
AS
BEGIN
/***********************************************
	! please run affter C_Aktual_KodDojKodMedzi AND C_ZZ_UZAVRETELAKTSKLADBA_FINAL!

	USING TABLE:CM_Krava,CC_Dojivost,CC_Medziobd,CP_KravaPoslednaUzavLakt

	CHANGING TABLE:CP_MedziobdZostavaB

	USED:(9.B) Medziobdobie podľa úžitkovosti za poslednú uzavretú laktáciu 
*********************************************/

--TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaB
	delete plis.dbo.CP_MedziobdZostavaB where chovatel = @ParChov
	
	declare @c as varchar(9)
	declare @kod1 as int --medziobdobie
	declare @kod2 as int --mlieko
	declare @nazovml as varchar(20)
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @ls as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @ps as float;
	declare @s as int;

	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov
	
	
	union 
	
	select distinct substring(chovatel,1,6)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov

	
	union
	
	select distinct substring(chovatel,1,3)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov
	
	union
	
	select distinct substring(chovatel,1,1)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null and chovatel = @ParChov
	/*select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null*/

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_Mlieko_MedziObdobZostavaB')
			DROP TABLE PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB					
		select l.Kod_Medz, l.Kod_Doj into PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB 
				from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
				inner join PLIS.dbo.CM_Krava as k 
				on k.CISKRAVY=l.cislokrava 
				where k.CHOVATEL like @C+'%'  
				and k.DOVVYR is null	
				
		declare mleko cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open mleko
		fetch next from mleko into @nazovml,@kod2
		
		while @@FETCH_STATUS=0
		begin
			declare hran cursor for
			select kod
			from plis.dbo.CC_Medziobd

			open hran
			fetch next from hran into @kod1

			while @@FETCH_STATUS=0
			begin			
				set @s=(select count(*)
				 from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
				where l.Kod_Medz is not null
				and l.Kod_Medz!=1
				and l.Kod_Doj is not null)
				
				if(@s=0) begin set @s=NULL; end
				
				if(@kod1=1)
				begin
					set @l1=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=1 )
					set @p1=(convert(float,@l1*100)*1.00)/@s;
				end

				if(@kod1=2)
				begin
					set @l2=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=2 )
					set @p2=(convert(float,@l2*100)*1.00)/@s;
				end

				if(@kod1=3)
				begin
					set @l3=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=3 )
					set @p3=(convert(float,@l3*100)*1.00)/@s;
				end

				if(@kod1=4)
				begin
					set @l4=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=4 )
					set @p4=(convert(float,@l4*100)*1.00)/@s;
				end

				if(@kod1=5)
				begin
					set @l5=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							 and l.KOD_MEDZ=5 )
					set @p5=(convert(float,@l5*100)*1.00)/@s;
				end

				if(@kod1=6)
				begin
					set @l6=(select count(*) 
							from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=6 )
					set @p6=(convert(float,@l6*100)*1.00)/@s;
				end


				set @ls=(select count(*) 
						from PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
						where l.KOD_DOJ=@kod2 
						and l.KOD_MEDZ is not null 
						and KOD_MEDZ!=1 )
				set @ps=(convert(float,@ls*100)*1.00)/@s;
					
				
				fetch next from hran into @kod1
			end
			close hran
			deallocate hran;

			insert into plis.dbo.CP_MedziobdZostavaB values(@c,@nazovml,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@ls,@ps,NULL,@s); 


			fetch next from mleko into @nazovml,@kod2
		end

		--insert into plis.dbo.CP_MedziobdZostavaB values(@c,@nazovml,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@ls,@ps,NULL,@s); 
		
		close mleko;
		deallocate mleko;

		fetch next from chovatel into @C;
	end

	close chovatel
	deallocate chovatel;
	
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_Mlieko_MedziObdobZostavaB')
		DROP TABLE PLIS.dbo.TEMPTABLE_Mlieko_MedziObdobZostavaB		
	
END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave pre zvazy
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_VyrObl]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null, 
	  [DRUHHZ][varchar] (2) null,
      --[CharChov_KOD][varchar] (2) null,--charakter chovu= chovatelsky zvaz
      --[CharChov][varchar] (30) null,
	  [VyrObl_kod][varchar] (2) null,
	  [VyrObl][varchar] (30) null,
	  [EkoChov][varchar](1) NULL
	 	  
      ) --ON [PRIMARY]

declare @kravy table                                   ----od Vlada
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		ciskravy varchar(14),
		PORPREBLAK int,
		--[CharChov_KOD][varchar] (2) null,
  --      [CharChov][varchar] (30) null
		[VyrObl_kod][varchar] (2) null,
		[VyrObl][varchar] (30) null
		
	)

----if (@region is null) 
----begin
----	if (len(@chov) = 1)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----			(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----			--and (reg.REGION=@region or @region is null) 
----			and lakt.kraj = @chov
----			and a.PRIZNAK=1	
----			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----				or (Lakt.DATUKNORL >= @datumOd 
----				and Lakt.DATUKNORL <= @datumDo))
----			and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 3)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.okres = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 6)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.podnik = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else if (len(@chov) = 9)
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and lakt.CHOVATEL = @chov
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'
----	end
----	else
----	begin
----		insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		-- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				--and (reg.REGION=@region or @region is null) 
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  
----	end

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		--left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		
----	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		--and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end
---- ELSE
---- begin
---- 	insert into @Laktacie
----		 SELECT
---- 			 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--reg.Region,
----			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----			 DOVVYR, DATVYR, b.DRUHHZ, b.KOD, b.NAZOV,
----			  (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----						else null end)as EkoChov
----		 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
----		 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		 left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
----		 left outer join  NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 
----		 	where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
----				(reg.REGION=@region or @region is null)
----				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----				and a.PRIZNAK=1	
----				and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
----					or (Lakt.DATUKNORL >= @datumOd 
----					and Lakt.DATUKNORL <= @datumDo))
----				and eko.ZRUS is null AND eko.TYPZV='1'	  

----	Insert @kravy
----	select 
----		@chov as CHOV, 
----		@region as Region,		
----		k.ciskravy,
----		PORPREBLAK,
----		b.KOD as CharChov_KOD,
----		b.NAZOV as CharChov
----	from CM_Krava as k
----		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
----		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
----		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
----	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
----		and	k.DOVVYR is null and k.PRIZNAKKU='1'
---- 		and (reg.REGION=@region or @region is null) 
----			and a.PRIZNAK=1	
----end

insert into @Laktacie	--moje povodne
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, b.DRUHHZ, /*b.KOD, b.NAZOV,*/ obl.KOD, obl.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
--,c.KOD, c.NAZOV, d.FSEKTOR, e.NAZOV
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
 left outer join NC_VyrObl as obl on obl.KOD = a.VYROBL

 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) 
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
		or (Lakt.DATUKNORL >= @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null AND eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL   
 

 Insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,		
		k.ciskravy,
		PORPREBLAK,
		--b.KOD as CharChov_KOD,
		--b.NAZOV as CharChov
		--ust.kod as KapUst_kod,
		--ust.NAZOV as KapUst 
		obl.KOD as VyrObl_kod,
		obl.NAZOV as VyrObl
	from CM_Krava as k
		left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
		left outer join NC_CharChov as b on (b.KOD=a.CHARCHOV) and (b.DRUHHZ=a.TYPZV) 
		left outer join NC_VyrObl as obl on obl.KOD = a.VYROBL
	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	

declare @PocZapojL1 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod,
		VyrObl 
	from @kravy as k
	 where k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ VyrObl_kod, VyrObl 	
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	(
	[CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL2] int NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
 	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod as VyrObl_kod,
		VyrObl as VyrObl  
	from @kravy as k
	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD,CharChov*/ VyrObl_kod, VyrObl 		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV
--pl.TYPS,
--		case when @plem is not null then pl.TYPS end 
--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocZapojLCelk] int NULL,
	----[CharChov_KOD][varchar] (2) null,
 ----   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null

	--[SPVykonu_kod][varchar](30) null,
	--[SPVykonu][varchar](45)null,
	--[Sektor_kod][varchar](2)null,
	--[Sektor][varchar](40)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		--CharChov_KOD,
		--CharChov
		VyrObl_kod as VyrObl_kod,
		VyrObl as VyrObl  
	from @kravy as k
	group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, /*CharChov_KOD ,CharChov*/ VyrObl_kod, VyrObl 		--,c.KOD, c.NAZOV, d.FSEKTOR ,e.NAZOV

declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
		--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV1,
	--CharChov_KOD as CharChov_KOD,
	--CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  
	--SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakV2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakV2,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakVCelk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	count(*) as PocLakVCelk,
	----CharChov_KOD as CharChov_KOD,
 ----   CharChov as Charchov
 	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 	

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	Insert into @lakt1
	(CHOV,Region,
	--PlemTyp, 
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1, /*CharChov_KOD ,CharChov*/ VyrObl_kod, VyrObl 	)
	
select 
	@chov as CHOV, 
	@region as Region,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as m where m.PORLAK='1') as PocLakV1, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL1,
    --CharChov_KOD as CharChov_KOD,
    --CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--					case when @plem is not null then l.PLEM end 
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
--[PlemTyp] [varchar] (10) Null,
--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null) and l.PORLAK>='2' ) as PocLakV2,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
   --CharChov_KOD as CharChov_KOD,
   -- CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	--[PocLakVcelk] [float] NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	--(select count(*) from @Laktacie as l where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)) as PocLakVcelk,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
--[CharChov_KOD][varchar] (2) null,
--    [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, /*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov 
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov   
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null
	[VyrObl_kod][varchar] (2) null,
	[VyrObl][varchar] (30) null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
	VyrObl_kod as VyrObl_kod,
	VyrObl as VyrObl  

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,/*l.CharChov_KOD ,l.CharChov*/ l.VyrObl_kod, l.VyrObl 
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

--IF EXISTS(
--SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--WHERE 
--	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--	and DatumOd = @datumOd and DatumDo = @datumDo
--)
--BEGIN
--	DELETE FROM CR_LaktacneZostavy  WHERE 
--	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--	--(chov like @chov+'%' or @chov is null) 
--	and DatumOd = @datumOd and DatumDo = @datumDo
--END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+/*('ChZ'+l.CharChov_KOD)*/ ('Obl'+l.VyrObl_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	null as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	--l.PLEM as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL1.CharChov_KOD=l.CharChov_KOD*/ ZapojL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*ZapojL2.CharChov_KOD=l.CharChov_KOD*/ ZapojL2.VyrObl_kod = l.VyrObl_kod )
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and /*ZapojLCelk.CharChov_KOD=l.CharChov_KOD*/ ZapojLCelk.VyrObl_kod = l.VyrObl_kod) 
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV1.CharChov_KOD=l.CharChov_KOD*/ LAKV1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKV2.CharChov_KOD=l.CharChov_KOD*/ LAKV2.VyrObl_kod = l.VyrObl_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*LAKVC.CharChov_KOD=l.CharChov_KOD*/ LAKVC.VyrObl_kod = l.VyrObl_kod )
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)and /*L1.CharChov_KOD=l.CharChov_KOD*/ L1.VyrObl_kod = l.VyrObl_kod) 
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and /*L2.CharChov_KOD=l.CharChov_KOD*/ L2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and /*lCelk.CharChov_KOD=l.CharChov_KOD*/ lCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and /*NL1.CharChov_KOD=l.CharChov_KOD*/ NL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and /*NL2.CharChov_KOD=l.CharChov_KOD*/ NL2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and /*NlCelk.CharChov_KOD=l.CharChov_KOD*/ NlCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and /*ZL1.CharChov_KOD=l.CharChov_KOD*/ ZL1.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and /*ZL2.CharChov_KOD=l.CharChov_KOD*/ ZL2.VyrObl_kod = l.VyrObl_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and /*ZCelk.CharChov_KOD=l.CharChov_KOD*/ ZCelk.VyrObl_kod = l.VyrObl_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end
go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 22.02.2014
-- Last update: 27.06.2014
-- Description:	Prevod InterBull databazy do nasho systemu us cisel a pod
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_prevod_IB]
AS
BEGIN
	declare @IB_uscislo as varchar(19);
	declare @IB_otec as varchar(19);
	declare @IB_matka as varchar (19);
	declare @IB_datnar as varchar(9);
	declare @IB_meno as varchar(40);
	declare @IB_verifikacia as varchar(2);
	declare @IB_organiz as varchar(35);
	declare @uscislo as varchar(14);	
	declare @otec as varchar(14);	
	declare @matka as varchar(14);	
	declare @datnar as date;
	declare @pohlavie as varchar(2);
	declare @meno as varchar(40);
	declare @povoddat as varchar(14);
	declare @plemeno as varchar(6);
	declare @mesiac as varchar(2);
	declare @den as varchar(2);
	declare krava cursor  for
	select [IB_uscislo],[IB_otec],[IB_matka],[IB_datnar],[IB_meno],[IB_verifikacia],[IB_organiz]
	from plis.dbo.Ainbreeding2 WHERE uscislo is null
	open krava
	fetch next from krava into @IB_uscislo, @IB_otec, @IB_matka, @IB_datnar, @IB_meno, @IB_verifikacia, @IB_organiz;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if (@IB_uscislo is not null)
			 begin
			   if ((SUBSTRING(@IB_uscislo,7,1))='M')
			   begin
				set @pohlavie='01';	 
			   end
			   if ((SUBSTRING(@IB_uscislo,7,1))='F')
			   begin
				set @pohlavie='02';	 
			   end
			   if ((SUBSTRING(@IB_datnar,5,2))='00')
			   begin
			    set @mesiac='01';
			   end else
			   begin
				set @mesiac=(SUBSTRING(@IB_datnar,5,2));
			   end
			   if ((SUBSTRING(@IB_datnar,7,2))='00')
			   begin
			    set @den='01';
			   end else
			   begin
				set @den=(SUBSTRING(@IB_datnar,7,2));
			   end		   
			   set @datnar=convert(datetime,((SUBSTRING(@IB_datnar,1,4))+@mesiac+@den),112);   
			   set @uscislo=(SELECT TOP 1 dvaznaky FROM plis.dbo.CC_CountryISO where triznaky=(SUBSTRING(@IB_uscislo,4,3)))+(SUBSTRING(@IB_uscislo,8,12));
			   set @otec=(SELECT TOP 1 dvaznaky FROM plis.dbo.CC_CountryISO where triznaky=(SUBSTRING(@IB_otec,4,3)))+(SUBSTRING(@IB_otec,8,12));
			   set @matka=(SELECT TOP 1 dvaznaky FROM plis.dbo.CC_CountryISO where triznaky=(SUBSTRING(@IB_matka,4,3)))+(SUBSTRING(@IB_matka,8,12));
			   set @plemeno=(SUBSTRING(@IB_uscislo,1,3));
			   update plis.dbo.Ainbreeding2
				set uscislo=@uscislo, otec=@otec, matka=@matka, datnar=@datnar, pohlavie=@pohlavie, plemeno=@plemeno, meno=@IB_meno,
				povoddat='IB'
				where IB_uscislo=@IB_uscislo;
			   set @IB_uscislo= null;
			   set @IB_otec=null;
			   set @IB_matka=null;
			   set @IB_datnar=null;
			   set @IB_meno=null;
			   set @IB_verifikacia=null;
			   set @IB_organiz=null;
				print N'krava '+convert(varchar,@uscislo);
			end
			fetch next from krava into @IB_uscislo, @IB_otec, @IB_matka, @IB_datnar, @IB_meno, @IB_verifikacia, @IB_organiz;
		end
	close krava;
	deallocate krava; 
	
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Meso_OcakOtel]
AS
BEGIN
	/***************************************
		
		using table:CM_Krava,CM_Insvyk

		changing table:CP_Meso_OcakavaneOrtel

		used for: selecting all Krava having CM_Insvyk.IVYSE in('7','8','9') and calculating when probablly they will born.
		used in Masova krava inseminacii web page.

	***************************************/
	
TRUNCATE TABLE CP_Meso_OcakavaneOrtel

	declare @k as varchar(14);
	declare @datinsem as date;
	declare @bik as varchar(10);
	declare @datOcOt as date;

	declare insem cursor for
	select  distinct i.IPLCA   
	from CM_Krava as k
	inner join CM_Insvyk as i
	on k.CISKRAVY=i.IPLCA
	where i.IVYSE in('7','8','9')
	and k.PRIZNAKKU=2

	open insem
	fetch next from insem into @k

	while @@FETCH_STATUS=0

	begin

		declare posins cursor for
		select top 1 i.IDAIN,i.IBLIN+'-'+convert(varchar,i.IBREG),DATEADD(day,285,i.IDAIN)
		from CM_Krava as k
		inner join CM_Insvyk as i
		on k.CISKRAVY=i.IPLCA
		where i.IVYSE in('7','8','9')
		and k.PRIZNAKKU=2
		and i.IPLCA=@k
		group by i.IPLCA,i.IDAIN,i.IBLIN,i.IBREG,i.IVYSE,k.CISKRAVY
		order by i.IDAIN DESC

		open posins 
		fetch next from posins into @datinsem,@bik,@datOcOt

		while @@FETCH_STATUS=0
		begin
			fetch next from posins into @datinsem,@bik,@datOcOt
		end
		close posins
		deallocate posins

			insert into CP_Meso_OcakavaneOrtel values (@k,@datinsem,@bik,@datOcOt);

		fetch next from insem into @k
	end

	close insem
	deallocate insem;

END

go


/***masova rocenka - dlzka inseminacneho intervalu, servis periody a medziobdobia
Masova rocenka 2017 - str.39 **/
 CREATE procedure [dbo].[Roc_MPHD_14]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_14 where rok = DATEPART(year,@datumOd)

--create table Roc_MPHD_Tab_14 
--(
--insInterval float,
--servisPerioda float,
--medziobdobie float,
--rok int
--)

--alter table Roc_MPHD_Tab_14 
--add rozdielinsInterval float, 
--	rozdielservisPerioda float, 
--	rozdielmedziobdobie float

insert into Roc_MPHD_Tab_14 
(insInterval, servisPerioda, medziobdobie, rok)

----declare @datumOd date = '2017-01-01' , @datumDo date = '2017-12-31'
select *
	from (
	-- inseminacny interval
		 select avg(CM_ZSI.PINT) as insInterval
		 from CM_Insvyk
				left outer join CM_Krava on CM_Insvyk.IPLCA = CM_Krava.CISKRAVY
				left outer join CM_ZSI on CM_Insvyk.IPLCA = CM_ZSI.PLCA
		 where PRIZNAKKU = 2
		   and CM_Insvyk.IDAIN between @datumOd and @datumDo
		   and CM_Insvyk.IVYSE <> 1
		   and CM_Insvyk.IVYSE <> 2
		   and CM_Insvyk.IPOIN = 1
		   and CM_Krava.PRIZNAKKU = 2
		   and CM_ZSI.PINT > 0) as interval,
		 (
	-- servis perioda
		 select avg(CM_ZSI.PSER) as servisPerioda
		 from CM_Insvyk
				left outer join CM_Krava on CM_Insvyk.IPLCA = CM_Krava.CISKRAVY
				left outer join CM_ZSI on CM_Insvyk.IPLCA = CM_ZSI.PLCA
		 where CM_Insvyk.IDAIN between @datumOd and @datumDo
		   and CM_Insvyk.IPOREIN = 0
		   --and CM_Insvyk.IPOIN <> '99'
		   and CM_Insvyk.IVYSE > 6
		   and CM_Krava.PRIZNAKKU = 2
		   and CM_ZSI.PSER > 0) as perioda,
		 (
	-- medziobdobie
		 select avg(CM_ZSI.PMED) as medziobdobie, DATEPART(year,@datumOd) as rok
		 from CM_Insvyk
				left outer join CM_Krava on CM_Insvyk.IPLCA = CM_Krava.CISKRAVY
				left outer join CM_ZSI on CM_Insvyk.IPLCA = CM_ZSI.PLCA
		 where PRIZNAKKU = 2
		   and CM_Insvyk.IDAIN between @datumOd and @datumDo
		   and CM_Insvyk.IPOIN = 1
		   and CM_Krava.PRIZNAKKU = 2
		   and CM_ZSI.PMED > 0 and CM_ZSI.PMED < 1000) as medziobdobie   ----vo fande mala Idka este podmienku, ze medziobdobie musi byt mensie ako 1000

update Roc_MPHD_Tab_14
set rozdielinsInterval = (select(select insInterval from Roc_MPHD_Tab_14 where rok = DATEPART(YEAR, @datumOd)) -  (select insInterval from Roc_MPHD_Tab_14 where rok = (DATEPART(YEAR, @datumOd)-1)))
where rok = DATEPART(YEAR, @datumOd) 

update Roc_MPHD_Tab_14
set rozdielservisPerioda = (select(select servisPerioda from Roc_MPHD_Tab_14 where rok = DATEPART(YEAR, @datumOd)) -  (select servisPerioda from Roc_MPHD_Tab_14 where rok = (DATEPART(YEAR, @datumOd)-1)))
where rok = DATEPART(YEAR, @datumOd) 

update Roc_MPHD_Tab_14
set rozdielmedziobdobie = (select(select medziobdobie from Roc_MPHD_Tab_14 where rok = DATEPART(YEAR, @datumOd)) -  (select medziobdobie from Roc_MPHD_Tab_14 where rok = (DATEPART(YEAR, @datumOd)-1)))
where rok = DATEPART(YEAR, @datumOd) 



	   end
go


-- =============================================
---- procedura pre report
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch, ktore boli spracovane v danom mesiaci.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- Tabulka sa naplni procedurou CR_TMHD_pripustenie_mes
---- M. Holesova
-- =============================================


CREATE procedure [dbo].[CR_TMHD_pripust_1]
    @rok int,
	@mesiac int,
	@CHOV varchar(9) = ''
	
as
begin
select * from (
	select np.NAZOV as podnik, nch.NAZOV as NazovChov,cistelata,
		p.chov, mesiac, rok     
		,hd.TECHUSMD as tech_ustaj
		,us.POPIS as tech_ustaj_popis,
		--datnar,
		--datvaz1,
		--hmot1,
		--datvaz2,
		--hmot2,
		--dp,
		--DatPrip1,
		--DatPrip2,
		--datPr,
		--datPlanPripust
		--ZnakPripus,
		(case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) >= 
							dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) <
							dateadd ( month,4,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102))
						then mesiacPripus
				else case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) < 
						dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then '99'
				else case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) > 
						dateadd ( month,4,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then ''
				end end end ) as mesiacPripus,

		(case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) < 
						dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then '99999'
						else rokPripus end ) as rokPripus,
		generovane
		
     
	   FROM CR_TMHD_pripust_mes as p

		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(p.chov,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = p.chov
		left join NM_HDDETAIL as hd 
			on hd.KRAJ + hd.OKRES + hd.PODNIK + hd.CHOV = p.chov
		left join CC_TechUstMD as us 
			on us.KOD = hd.TECHUSMD
	  
	   where (p.chov like @CHOV+'%' or @CHOV is null)	and p.rok = @rok and p.mesiac =@mesiac and rokPripus <> 0  and mesiacPripus <> 0
	   --order by mesiacPripus, cistelata
	) t
	where (t.chov like @CHOV+'%' or @CHOV is null)	and t.rok = @rok and t.mesiac =@mesiac and t.rokPripus <> 0  and t.mesiacPripus <> 0
	order by chov--,mesiacPripus, cistelata
end
go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 12.02.2014
-- Last update: 27.06.2014
-- Description:	Odstranenie duplicit dat z table Ainbreeding2 
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_IB_odstranenie_duplicit]
AS
BEGIN
	DELETE FROM PLIS.dbo.Ainbreeding2 where IB_verifikacia='U';
	declare @IB_uscislo as varchar(19);
	declare krava cursor  for
	SELECT IB_uscislo from plis.dbo.Ainbreeding2 group by IB_uscislo HAVING (COUNT(*))>1
	open krava
	fetch next from krava into @IB_uscislo;
	WHILE @@FETCH_STATUS = 0 
		begin
			 if (@IB_uscislo is not null)
			 begin
				if ((SELECT COUNT(*) as pocet FROM [PLIS].[dbo].[Ainbreeding2] WHERE IB_uscislo=@IB_uscislo)=2)
				begin
					DELETE TOP (1)
					FROM PLIS.dbo.Ainbreeding2 WHERE IB_uscislo=@IB_uscislo;
					set @IB_uscislo= null;
				end
				
			   
			end
			fetch next from krava into @IB_uscislo;
		end
	close krava;
	deallocate krava;
END
go


CREATE PROCEDURE [dbo].[CR_poslanie_prirastky_teliat_emailom]

	@CHOV [varchar](9)

as	
Begin

	declare @Table  TABLE
	(	
		[chov] [varchar](9) NULL,
		[cistelata] [varchar](14) NULL,
		[datnar] [date] NULL,
		[pohlavie] [varchar](2) NULL,
		[matka] [varchar](15) NULL,
		[ouc] [varchar](15) NULL,
		[lin_reg] [varchar](15) NULL,
		[plemeno] [varchar](30) NULL,
		[hmotnar] float NULL,	
		[prizsprac] [varchar](1) NULL,
		[datvaz] [varchar](30) NULL,
		[poslhmot] [varchar](30) NULL,
		[aktualdatvaz] [varchar](30) NULL,
		[aktualhmot] [varchar](30) NULL,
		[odposlprip] [numeric](24,0) NULL,
		[odnarprip] [numeric](25,0) NULL,
		[mesiac] int NULL,
		[rok] int NULL,
		[den] int NULL
	)

Insert @Table EXEC plis.dbo.CR_prirastky_teliat_maso @prizsprac='0', @chov=@CHOV

Select substring(cistelata,1,2) + ' ' + substring(cistelata,3,3) + ' ' + substring(cistelata,6,3) + ' ' + substring(cistelata,9,3) + ' ' + substring(cistelata,12,3) AS [Ušné číslo], 
convert(varchar(10), datnar, 104) AS [Dátum narodenia], pohlavie AS [Pohl.], substring(matka,1,2) + ' ' + substring(matka,3,3) + ' ' + substring(matka,6,3) + ' ' + substring(matka,9,3) + ' ' + substring(matka,12,3) AS [Matka], 
isnull(lin_reg, substring(ouc,1,2) + ' ' + substring(ouc,3,3) + ' ' + substring(ouc,6,3) + ' ' + substring(ouc,9,3) + ' ' + substring(ouc,12,3)) AS [Otec], plemeno AS [Plemeno], 
CASE WHEN datvaz='' or datvaz is null or poslhmot='999' or poslhmot='' or poslhmot is null THEN convert(varchar(10), datnar, 104) ELSE substring(datvaz,1,10) END AS [Predchádzajúce váženie zo dňa], 
CASE WHEN poslhmot='' or poslhmot is null or poslhmot='999' THEN hmotnar ELSE poslhmot END AS [Predchádzajúca hmotnosť],
DATEDIFF(day, datnar, CONVERT(date, substring(aktualdatvaz,1,10), 104)) AS [Vek v dňoch], 
substring(aktualdatvaz,1,10) AS [Aktuálne váženie zo dňa], aktualhmot AS [Aktuálna hmotnosť], odposlprip AS [Prírastok od posl.], odnarprip AS [Prírastok od nar.] from @Table

End


go




CREATE PROCEDURE [dbo].[C_ZZ_Meso_Telata]

AS
BEGIN
/***************************************
	
	!  please run affter C_aktual_prepocMasoveVazenia !

	using table:CM_Vazenia,CM_Telata

	canging table:CP_Meso_TelataVahy

	used for: Create table were are all vaha for each telata. Used for detail view of Mesove Telata and 
	for taking details for Mesova Krava when she was litlle.

******************************************/


TRUNCATE TABLE CP_Meso_TelataVahy

declare @t as varchar(14);
declare @t120 as float;
declare @tp120 as float;
declare @tj120 as float;
declare @t210 as float;
declare @tp210 as float;
declare @tj210 as float;
declare @t365 as float;
declare @tp365 as float;
declare @tj365 as float;
declare @t500 as float;
declare @tp500 as float;
declare @tj500 as float;
declare @hmotnost as float;
declare @prir as float;
declare @zivprir as float;
declare @dniprepoc as int;
declare @hn as int;
declare @c as varchar(10);
declare @nar float;
	
	declare telata cursor for
select DISTINCT CISTELATA from CM_Vazenia
	
	open telata
	fetch next from telata into @t;

	while @@FETCH_STATUS=0
	begin
		
		declare vaj cursor for
		select HMOTPREPOC,PRIRPREPOC,ZIVPRIRPREPOC,DNIPREPOC
		from CM_Vazenia
		where CISTELATA=@t
		and DNIPREPOC is not null; 
			
		open vaj
		fetch next from vaj into @hmotnost,@prir,@zivprir,@dniprepoc

		while @@FETCH_STATUS=0
		begin
		set @hn= (select HMOTNAR from CM_Telata where CISTELATA=@t)
			
			if(@hn is null)
			begin
				set @hn=35;
			end

			if(@dniprepoc=120)
			begin
				set @t120=@hmotnost;
				set @tp120=@prir;
				set @tj120=@zivprir;
			end

			if(@dniprepoc=210)
			begin
				set @t210=@hmotnost;
				set @tp210=@prir;
				set @tj210=@zivprir;
			end

			if(@dniprepoc=365)
			begin
				set @t365=@hmotnost;
				set @tp365=@prir;
				set @tj365=@zivprir;
			end


			if(@dniprepoc=500)
			begin
				set @t500=@hmotnost;
				set @tp500=@prir;
				set @tj500=@zivprir;
			end

			fetch next from vaj into @hmotnost,@prir,@zivprir,@dniprepoc
		end
		close vaj
		deallocate vaj;

		set @c=(select CHOVATEL from CM_Telata where CISTELATA=@t)
		set @nar=(select HMOTNAR from CM_Telata where CISTELATA=@t)


		insert into CP_Meso_TelataVahy values (@t,@nar,@t120,@tp120,@tj120,@t210,@tp210,@tj210,@t365,@tp365,@tj365,@t500,@tp500,@tj500,@c)


		set @t120 =null;
set @tp120 =null;
set @tj120 =null;
set @t210 =null;
set @tp210 =null;
set @tj210 =null;
set @t365 =null;
set @tp365 =null;
set @tj365 =null;
set @t500 =null;
set @tp500 =null;
set @tj500 =null;



		fetch next from telata into @t;
	end
	
	close telata;
	deallocate telata;
   
END
go


/***masova rocenka - pocet vsetkych inseminacii a telnost po vsetkych inseminaciach
Masova rocenka 2017 - str.38 **/
 CREATE procedure [dbo].[Roc_MPHD_13]
	
	@datumOd date ,
	@datumDo date 

as 
begin
/***premazanie dat, ak je uz vypocitany dany rok**/

delete from Roc_MPHD_Tab_13 where rok = DATEPART(year,@datumOd)

update Roc_MPHD_Tab_13 
set telnostKravy = null,telnostJalovice = null, telnostSpolu = null
where rok = (DATEPART(year,@datumOd)-1)

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

--Create table Roc_MPHD_Tab_13
--(
--rok int,
--kravy_ins int,
--jalovice_ins int,
--reinseminacie int,
--spolu__ins int,
--telnostKravy float,
--telnostJalovice float,
--telnostSpolu float
--)


Declare @Roc_MPHD_Tab_13_ins table
	(
	rok int,
	kravy int,
	jalovice int,
	reinseminacie int,
	spolu int
	)

Declare @Roc_MPHD_Tab_13_telnost table
	(
	rok int,
	telnostKravy float,
	telnostJalovice float,
	telnostSpolu float
	)


insert @Roc_MPHD_Tab_13_ins

	select DATEPART(YEAR, @datumOd) as rok,
		  kravy.pocet    as kravy,
		  jalovice.pocet as jalovice,
		  reins.pocet    as reinseminacie,
		  /*spolu.pocet*/ kravy.pocet + jalovice.pocet + reins.pocet  as spolu
	from 
	(
    select count(*) as pocet
    from CM_Insvyk
    where CM_Insvyk.IDAIN >= @datumOd and CM_Insvyk.IDAIN <= @datumDo
		  and CM_Insvyk.IPOIN <> 99
          and IKRJA = 1
          and CM_Insvyk.IPLCA in ( select cistelata from CM_Telata
										where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
								  union
									select CISKRAVY from CM_Krava
										where PRIZNAKKU = 2
							    )
	) as kravy,
	(
    select count(*) as pocet
    from CM_Insvyk
    where CM_Insvyk.IDAIN >= @datumOd and CM_Insvyk.IDAIN <= @datumDo
          and CM_Insvyk.IPOIN <> 99
          and IKRJA = 3
          and CM_Insvyk.IPLCA in ( select cistelata from CM_Telata
										where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
								  union
									select CISKRAVY from CM_Krava
										where PRIZNAKKU = 2
								)
	) as jalovice,
	(
    select count(*) as pocet
    from CM_Insvyk
    where CM_Insvyk.IDAIN >= @datumOd and CM_Insvyk.IDAIN <= @datumDo
          and CM_Insvyk.IPOIN = 99
          and CM_Insvyk.IPLCA in ( select cistelata from CM_Telata
										where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2)
								  union
									select CISKRAVY from CM_Krava
										where PRIZNAKKU = 2
							     )
	) as reins;

insert @Roc_MPHD_Tab_13_telnost

select DATEPART(YEAR,(dateadd(year,-1,@datumOD))) as rok ,
		kIvyseGt6.pocetPrvych* 100.0 / kIvyseNe1and2.pocetPrvych  as telnostKravy,
        jIvyseGt6.pocetPrvych* 100.0 / jIvyseNe1and2.pocetPrvych  as telnostJalovice,
       (kIvyseGt6.pocetPrvych + jIvyseGt6.pocetPrvych) * 100.0 / (kIvyseNe1and2.pocetPrvych + jIvyseNe1and2.pocetPrvych)  as telnostSpolu
from
  /***kravy***/
  (select convert(float, count(*)) as pocetPrvych
   from CM_Insvyk
   where IPLCA in (select CISKRAVY as usneCislo from CM_Krava
					   where PRIZNAKKU = 2
                   union
					   select cistelata from CM_Telata
					   where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2))
         and CM_Insvyk.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and CM_Insvyk.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
         and CM_Insvyk.IPOIN <> 99
         and CM_Insvyk.IKRJA = 1
         and CM_Insvyk.IVYSE > 6) as kIvyseGt6,
  
  (select convert(float, count(*)) as pocetPrvych
   from CM_Insvyk
   where IPLCA in (select CISKRAVY from CM_Krava
						where PRIZNAKKU = 2
                   union
					select cistelata from CM_Telata
						where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2))
         and CM_Insvyk.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and CM_Insvyk.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
         and CM_Insvyk.IPOIN <> 99
         and CM_Insvyk.IKRJA = 1
         --and CM_Insvyk.IVYSE <> 1
         --and CM_Insvyk.IVYSE <> 2
		 ) as kIvyseNe1and2,

  /***jalovice***/
  (select convert(float, count(*)) as pocetPrvych
   from CM_Insvyk
   where IPLCA in (select CISKRAVY from CM_Krava
						where PRIZNAKKU = 2
                   union
					 select cistelata from CM_Telata
						where PRIZNAKKU = 2)
         and CM_Insvyk.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and CM_Insvyk.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
         and CM_Insvyk.IPOIN <> 99
         and CM_Insvyk.IKRJA = 3
         and CM_Insvyk.IVYSE > 6) as jIvyseGt6,
  (select convert(float, count(*)) as pocetPrvych
   from CM_Insvyk
   where IPLCA in (select CISKRAVY from CM_Krava
					   where PRIZNAKKU = 2
                   union
					select cistelata from CM_Telata
						where PRIZNAKKU = 2 and CISTELATA not in (Select CISKRAVY from CM_Krava where PRIZNAKKU = 2))
         and CM_Insvyk.IDAIN >= dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and CM_Insvyk.IDAIN <= dateadd(year,-1,@datumDo) /*'2016-12-31'*/
         and CM_Insvyk.IPOIN <> 99
         and CM_Insvyk.IKRJA = 3
         --and CM_Insvyk.IVYSE <> 1
         --and CM_Insvyk.IVYSE <> 2
		 ) as jIvyseNe1and2

		--select * from @Roc_MPHD_Tab_13_ins
		--select * from @Roc_MPHD_Tab_13_telnost

		
		insert into Roc_MPHD_Tab_13
		(rok, kravy_ins , jalovice_ins,reinseminacie, spolu__ins)
		select * from @Roc_MPHD_Tab_13_ins


		update  Roc_MPHD_Tab_13
		set telnostKravy = (select telnostKravy from  @Roc_MPHD_Tab_13_telnost)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))  
				
		update  Roc_MPHD_Tab_13
		set telnostJalovice = (select telnostJalovice from  @Roc_MPHD_Tab_13_telnost)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))
		
		update  Roc_MPHD_Tab_13
		set telnostSpolu  = (select telnostSpolu from  @Roc_MPHD_Tab_13_telnost)
			where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))


			/***rozdiel medzi rokmi***/
		update Roc_MPHD_Tab_13
		set rozdielinsKravy = (select(select kravy_ins from Roc_MPHD_Tab_13 where rok = DATEPART(YEAR, @datumOd)) -  (select kravy_ins from Roc_MPHD_Tab_13 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

		update Roc_MPHD_Tab_13
		set rozdielinsJal = (select(select jalovice_ins from Roc_MPHD_Tab_13 where rok = DATEPART(YEAR, @datumOd)) -  (select jalovice_ins from Roc_MPHD_Tab_13 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

		update Roc_MPHD_Tab_13
		set rozdielreins = (select(select reinseminacie from Roc_MPHD_Tab_13 where rok = DATEPART(YEAR, @datumOd)) -  (select reinseminacie from Roc_MPHD_Tab_13 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

		update Roc_MPHD_Tab_13
		set rozdielinsSpolu = (select(select spolu__ins from Roc_MPHD_Tab_13 where rok = DATEPART(YEAR, @datumOd)) -  (select spolu__ins from Roc_MPHD_Tab_13 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 
	
	end
go

/****** Script for SelectTopNRows command from SSMS  ******/
/**select do rocenky -- Exec Roc_MLHD_9 -- nasledne do excelu  **/
----Rozdelenie chovov v kontrole uzitkovosti ---str 20

CREATE procedure  [dbo].[Roc_MLHD_9]
	
	as 
	begin

declare @pocet_chovov_v_ku_spolu int, @pocet_chovov_do20krav int, @pocet_chovov_do50krav int, @pocet_chovov_do100krav int, @pocet_chovov_do220krav int, @pocet_chovov_do500krav int,@pocet_chovov_nad500krav int
		,@chovy_ustaj_vazne int, @chovy_ustaj_volne int,  @chovy_metod_AT int,  @chovy_metod_A4 int,
		@pocet_krav_do20krav int, @pocet_krav_do50krav int, @pocet_krav_do100krav int, @pocet_krav_do220krav int, @pocet_krav_do500krav int,@pocet_krav_nad500krav int,
		@krav_metod_AT int ,@krav_metod_A4 int,
		@krav_ustaj_vazne int, @krav_ustaj_volne int,
		@pocet_krav_v_ku_spolu int

set @pocet_chovov_v_ku_spolu = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									left outer join NM_CHOVMAS as c on c.kraj+c.OKRES+ c.PODNIK+c.CHOV = k.CHOVATEL 
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and c.ZRUS is null
								group by k.CHOVATEL
								)t )

set @pocet_krav_v_ku_spolu = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
								--group by k.CHOVATEL
								)t )

set @pocet_chovov_do20krav = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST in('1','2')
								group by k.CHOVATEL
								) u)

set @pocet_chovov_do50krav = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST = '3'
								group by k.CHOVATEL
								) m)

set @pocet_chovov_do100krav = (select Count(*)
								from (
									select distinct k.CHOVATEL
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '4'
									group by k.CHOVATEL
									)n )

set @pocet_chovov_do220krav = (select Count(*) 	from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST = '5'
								group by k.CHOVATEL
								)o )

set @pocet_chovov_do500krav = (select Count(*)
								from (
									select distinct k.CHOVATEL
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '6'
									group by k.CHOVATEL
									)r)

set @pocet_chovov_nad500krav = (select Count(*)
								from (
									select distinct k.CHOVATEL
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '7'
									group by k.CHOVATEL
									) f)
--declare @kapUst_podielStad table
--(
--do20 float,
--do50 float,
--do100 float,
--do220 float,
--do500 float,
--nad500 float,
--rok varchar(4)
--)
--insert into @kapUst_podielStad 
--(rok)
--select '2017' as rok

--update  @kapUst_podielStad set
--do20 =  (@pocet_chovov_do20krav / @pocet_chovov_v_ku_spolu)*100 ,
--do50 = (@pocet_chovov_do50krav / @pocet_chovov_v_ku_spolu)*100,
--do100 =	(@pocet_chovov_do100krav / @pocet_chovov_v_ku_spolu)*100 ,
--do220 =	(@pocet_chovov_do220krav / @pocet_chovov_v_ku_spolu)*100,
--do500 =	(@pocet_chovov_do500krav/ @pocet_chovov_v_ku_spolu)*100,
--nad500 = (@pocet_chovov_nad500krav/ @pocet_chovov_v_ku_spolu)*100 
--	--select @pocet_chovov_v_ku_spolu

--select * from @kapUst_podielStad
--select @pocet_chovov_v_ku_spolu as ku_spolu
--select @pocet_chovov_do20krav as do20krav
--select @pocet_chovov_do50krav as do50krav
--select @pocet_chovov_do100krav as do100krav
--select @pocet_chovov_do220krav as do220krav
--select @pocet_chovov_do500krav as do500krav
--select @pocet_chovov_nad500krav as nad500krav


set @chovy_ustaj_vazne = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.CHARUS in('1','2')
								group by k.CHOVATEL
								) h)

set @chovy_ustaj_volne = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.CHARUS in ('3','4')
								group by k.CHOVATEL
								) j)

set @krav_ustaj_vazne = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.CHARUS in('1','2')
								--group by k.CHOVATEL
								) hk)

set @krav_ustaj_volne = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.CHARUS in ('3','4')
								--group by k.CHOVATEL
								) jk)

--select @chovy_ustaj_vazne as chovy_ustaj_vazne
--select @chovy_ustaj_volne as chovy_ustaj_volne

set @chovy_metod_AT = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.TECHUSMD ='00'
										and h.SPVYKON in('2','6','7')
								group by k.CHOVATEL
								) d)

set @chovy_metod_A4 = (select Count(*) from (
								select distinct k.CHOVATEL
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.TECHUSMD ='00'
										and h.SPVYKON = '1'
								group by k.CHOVATEL
								) s)

set @krav_metod_AT = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.TECHUSMD ='00'
										and h.SPVYKON in('2','6','7')
								--group by k.CHOVATEL
								) dk)

set @krav_metod_A4 = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.TECHUSMD ='00'
										and h.SPVYKON = '1'
								--group by k.CHOVATEL
								) sk)

--select @chovy_metod_AT as chovy_metod_AT
--select @chovy_metod_A4 as chovy_metod_A4
		

set @pocet_krav_do20krav = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST in('1','2')
								
								) u)

set @pocet_krav_do50krav = (select Count(*) from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST = '3'
								--group by k.CHOVATEL
								) m)

set @pocet_krav_do100krav = (select Count(*)
								from (
									select distinct k.CISKRAVY
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '4'
									--group by k.CHOVATEL
									)n )

set @pocet_krav_do220krav = (select Count(*) 	from (
								select distinct k.CISKRAVY
									from CM_Krava as k
									left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
									where k.DOVVYR is null and k.DATVYR is null
										and k.PRIZNAKKU='1'
										and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
										and h.KAPMAST = '5'
								--group by k.CHOVATEL
								)o )

set @pocet_krav_do500krav = (select Count(*)
								from (
									select distinct k.CISKRAVY
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '6'
									--group by k.CHOVATEL
									)r)

set @pocet_krav_nad500krav = (select Count(*)
								from (
									select distinct k.CISKRAVY
										from CM_Krava as k
										left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = k.CHOVATEL
										where k.DOVVYR is null and k.DATVYR is null
											and k.PRIZNAKKU='1'
											and h.PRIZNAK ='01' and h.SPVYKON not in ('0','4','5') and h.TECHUSMD ='00'
											and h.KAPMAST = '7'
									--group by k.CHOVATEL
									) f)

--select @pocet_krav_v_ku_spolu  as krav_spolu
--select @pocet_chovov_v_ku_spolu as chov_spolu
--select @pocet_chovov_do20krav as do20krav
--select @pocet_krav_do20krav as pocet_krav_do20krav
--select @pocet_chovov_do50krav as do50krav
--select @pocet_krav_do50krav as pocet_krav_do50krav
--select @pocet_chovov_do100krav as do100krav
--select @pocet_krav_do100krav as pocet_krav_do100krav
--select @pocet_chovov_do220krav as do220krav
--select @pocet_krav_do220krav as pocet_krav_do220krav
--select @pocet_chovov_do500krav as do500krav
--select @pocet_krav_do500krav as pocet_krav_do500krav
--select @pocet_chovov_nad500krav as nad500krav
--select @pocet_krav_nad500krav as pocet_krav_nad500krav

--select @chovy_ustaj_vazne as chovy_ustaj_vazne
--select @krav_ustaj_vazne as Pocet_krav_ustaj_vazne
--select @chovy_ustaj_volne as chovy_ustaj_volne
--select @krav_ustaj_volne as pocet_krav_ustaj_volne

--select @chovy_metod_AT as chovy_metod_AT
--select @krav_metod_AT as pocet_krav_metod_AT
--select @chovy_metod_A4 as chovy_metod_A4
--select @krav_metod_A4 as pocet_krav_metod_A4


declare @chovy_uzitkovosti table
(
krav_spolu int,
chov_spolu int,
CH_do20krav int,
pocet_krav_do20krav int,
CH_do50krav int,
pocet_krav_do50krav int,
CH_do100krav int,
pocet_krav_do100krav int,
CH_do220krav int,
pocet_krav_do220krav int,
CH_do500krav int,
pocet_krav_do500krav int,
CH_nad500krav int,
pocet_krav_nad500krav int,
chovy_ustaj_vazne int,
Pocet_krav_ustaj_vazne int,
chovy_ustaj_volne int,
pocet_krav_ustaj_volne int,
chovy_metod_AT int,
pocet_krav_metod_AT int,
chovy_metod_A4 int,
pocet_krav_metod_A4 float
)
insert into @chovy_uzitkovosti 
select @pocet_krav_v_ku_spolu  as krav_spolu,
 @pocet_chovov_v_ku_spolu as chov_spolu,
 @pocet_chovov_do20krav as do20krav,
 @pocet_krav_do20krav as pocet_krav_do20krav,
 @pocet_chovov_do50krav as do50krav,
 @pocet_krav_do50krav as pocet_krav_do50krav,
@pocet_chovov_do100krav as do100krav,
 @pocet_krav_do100krav as pocet_krav_do100krav,
 @pocet_chovov_do220krav as do220krav,
@pocet_krav_do220krav as pocet_krav_do220krav,
 @pocet_chovov_do500krav as do500krav,
 @pocet_krav_do500krav as pocet_krav_do500krav,
 @pocet_chovov_nad500krav as nad500krav,
@pocet_krav_nad500krav as pocet_krav_nad500krav,

 @chovy_ustaj_vazne as chovy_ustaj_vazne,
 @krav_ustaj_vazne as Pocet_krav_ustaj_vazne,
 @chovy_ustaj_volne as chovy_ustaj_volne,
@krav_ustaj_volne as pocet_krav_ustaj_volne,

 @chovy_metod_AT as chovy_metod_AT,
 @krav_metod_AT as pocet_krav_metod_AT,
 @chovy_metod_A4 as chovy_metod_A4,
 @krav_metod_A4 as pocet_krav_metod_A4 


 select * from @chovy_uzitkovosti 

 end
go

-- =============================================
-- Author:		Michal Pavlasek
-- Create date:	27.08.2018
-- Description:	Prida novy zaznam o dotacii z heliosu, alebo upravi, ak uz taky je.
-- =============================================
CREATE PROCEDURE [ER_HeliosPridajDotacia]
    @chov varchar(9),
    @faktura varchar(10),
    @produkt varchar(5),
    @dotacia decimal(10,2),
    @region varchar(3),
    @podnikNazov varchar(255),
    @kodUctovania varchar(3)

AS
  BEGIN

    declare @fakturaId int;

    select @fakturaId = IDR from ER_HeliosRiadokFaktury where Chov = @chov and Produkt = @produkt and Faktura = @faktura;

    update ER_HeliosDotacie SET
      Chov = @chov,
      Faktura = @faktura,
      Produkt = @produkt,
      Dotacia = @dotacia,
      Region = @region,
      PodnikNazov = @podnikNazov,
      KodUctovania = @KodUctovania,
      ID_Faktura = @fakturaId
    where Chov = @chov and Produkt = @produkt and Faktura = @faktura

    if @@rowcount = 0
      begin
        insert into ER_HeliosDotacie (Chov, Faktura, Produkt, Dotacia, Region, PodnikNazov, KodUctovania, ID_Faktura)
        values (@chov, @faktura, @produkt, @dotacia, @region, @podnikNazov, 	@kodUctovania, @fakturaId);
      end
  END
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_KapMast_VyrObl_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

---- prepocet pre chov
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
--				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--    OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;                    
            
--			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--			EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END



--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor


----SET @counter = 0;

---- prepocet pre podnik
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--   OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;
                    
            
--                            PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--                             EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END
--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor

	   --SET @counter = 0;


----DECLARE prepocet_cursor CURSOR		-- prepocet pre okres
----FOR
----SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

----    OPEN prepocet_cursor
----   FETCH NEXT FROM prepocet_cursor INTO @chov

----   WHILE @@FETCH_STATUS = 0
----       BEGIN
----           SET @counter = @counter + 1;
                    
            
----                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
----                             EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

----           FETCH NEXT FROM prepocet_cursor INTO @chov

----       END


----	   SET @counter = 0;
----CLOSE prepocet_cursor
----DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_KapMast @chov, @datumOd, @datumDo, @region
							 EXEC CR_ZostavaLaktacie_VyrObl @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_KapMast @chov, @datumOd, @datumDo, @region
	EXEC CR_ZostavaLaktacie_VyrObl @chov, @datumOd, @datumDo, @region


END

go

-- =============================================
-- Author:		Milan Englart, PSSR
-- Create date: 28.03.2014
-- Last update: 28.07.2014
-- Description:	Prepocet koeficientu pribuznosti v tabulke Ainbreeding
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_prepocet_koef] 
    
AS
BEGIN
	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec as varchar(14);	
	declare @matka as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	
	declare krava cursor  for
	select uscislo, otec, matka
	from plis.dbo.Ainbreeding 
	where uscislo is not null and datnar is not null ORDER BY datnar ASC
	open krava 
	fetch next from krava into @uscislo, @otec, @matka;
	WHILE @@FETCH_STATUS = 0 
	begin
		set @pribuznost=0;
		set @pribuz=0;
		if ((SELECT  count(*) FROM [PLIS].[dbo].[Ainbreeding_Prepocitana] where uscislo=@uscislo)=0)
		begin  
			INSERT plis.dbo.Ainbreeding_Prepocitana (uscislo, cas, proces2) 
					VALUES (@uscislo, CURRENT_TIMESTAMP, (N'Prepocitavana krava : '+convert(varchar,@uscislo)));
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O' );
			 					INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
			 						VALUES (@uscislo, @predok2, @generacia2, 'M' );	
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1,'O');
				 				INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
				 					VALUES (@uscislo, @predok2, @generacia2,'M');
				 				set @pribuz=1;
				 				
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1,'M');
				 				INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, spolocny_predok, generacia, ukoho) 
				 					VALUES (@uscislo, @predok2, @generacia2,'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec, @generacia2);
						end;
						set @matka=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec, @generacia2);
						end;
						set @matka=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
		/*	set @pribuz=0;
			set @spolpredpribuz=0;
			if ((SELECT COUNT(*) FROM plis.dbo.Ainbreeding_Zhoda 
					WHERE USCISLO=@uscislo and spolocny_predok is not null and generacia is not null)>=2)
			    begin 
					set @j=0;
					set @k=0;
					set @pomocna=(SELECT COUNT(*) FROM plis.dbo.Ainbreeding_Zhoda 
								  WHERE USCISLO=@uscislo and spolocny_predok is not null);
					if (@pomocna>2)
					begin
						set @pomocna2=1;
						while (@pomocna2<=(@pomocna/2))
						begin
							set @spolocnypredok=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
								(ORDER BY uscislo, spolocny_predok ASC) as rownumber, spolocny_predok
								FROM plis.dbo.Ainbreeding_Zhoda
								WHERE USCISLO=@uscislo and ukoho='O') AS foo WHERE rownumber=@pomocna2);
							/**set @poradie=(SELECT TOP (1) porcislo FROM (SELECT  ROW_NUMBER() OVER 
								(ORDER BY uscislo, spolocny_predok ASC) as rownumber, porcislo
								FROM plis.dbo.Ainbreeding_Zhoda
								WHERE USCISLO=@uscislo and spolocny_predok=@spolocnypredok and ukoho='O' ) AS foo WHERE rownumber=@pomocna2);	**/
							set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber,
								generacia FROM plis.dbo.Ainbreeding_Zhoda
								WHERE USCISLO=@uscislo and spolocny_predok=@spolocnypredok and ukoho='O') AS foo WHERE rownumber=@pomocna2)-1);
							/**set @j=((SELECT TOP (1) generacia FROM plis.dbo.Ainbreeding_Zhoda WHERE porcislo=@poradie)-1);**/
							set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber,
								generacia FROM plis.dbo.Ainbreeding_Zhoda
								WHERE USCISLO=@uscislo and spolocny_predok=@spolocnypredok and ukoho='M') AS foo WHERE rownumber=@pomocna2)-1);
							/**set @k=((SELECT TOP (1) generacia FROM plis.dbo.Ainbreeding_Zhoda WHERE (porcislo=(@poradie+1)))-1);**/
							set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
								where uscislo=(SELECT TOP (1) spolocny_predok from [PLIS].[dbo].[Ainbreeding_Zhoda]
								where uscislo=@uscislo and generacia is not null))
							if (@spolpredpribuz>0)
							begin			
								set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
								set @i=6;
							end;
							else begin
								set @pribuz=(@pribuz+(SELECT POWER(0.50000,(@j+@k+1))));
								set @i=6;
							end;
						end;
					end;
					else begin
						set @j=((SELECT TOP (1) generacia FROM plis.dbo.Ainbreeding_Zhoda
							WHERE USCISLO=@uscislo and ukoho='O')-1);
						set @k=((SELECT TOP (1) generacia FROM plis.dbo.Ainbreeding_Zhoda
							WHERE USCISLO=@uscislo and ukoho='M')-1);
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
							where uscislo=(Select TOP (1) spolocny_predok from [PLIS].[dbo].[Ainbreeding_Zhoda]
							where uscislo=@uscislo and generacia is not null))
						if (@spolpredpribuz>0)
						begin
							set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz)));
							set @i=6;
						end;
						else begin
							set @pribuz=(@pribuz+(SELECT POWER(0.50000,(@j+@k+1))));
							set @i=6;
					end;
					end;
					
					
					
				end ;
				if (@pribuz>0) 
					begin
						INSERT plis.dbo.Ainbreeding_Zhoda (uscislo, koefpribuz) VALUES (@uscislo, @pribuz);
						
						UPDATE PLIS.dbo.Ainbreeding SET koefpribuz=@pribuz WHERE uscislo=@uscislo;
					end;
			
			*/
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					set @otec=(select top (1) otec from plis.dbo.Ainbreeding 
							where uscislo=@uscislo);
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					set @matka=(select top (1) matka from plis.dbo.Ainbreeding 
							where uscislo=@uscislo);
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O' );
			 					INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
			 						VALUES (@uscislo, @predok2, @generacia2, 'M' );	
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1,'O');
				 				INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
				 					VALUES (@uscislo, @predok2, @generacia2,'M');
				 				set @pribuz=1;
				 				
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1,'M');
				 				INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, spolocny_predok, generacia, ukoho) 
				 					VALUES (@uscislo, @predok2, @generacia2,'O');
				 				set @pribuz=1;
				 				
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM PLIS.dbo.Ainbreeding_Zhoda WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							set @otec=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec, @generacia2);
							end;
							set @matka=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM PLIS.dbo.Ainbreeding_Zhoda WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							set @otec=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec, @generacia2);
							end;
							set @matka=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;

			set @pomocna=(SELECT COUNT(*) FROM plis.dbo.Ainbreeding_Zhoda2 WHERE USCISLO=@uscislo);
			if (@pomocna>2)
			begin
				set @pomocna2=1;
				while (@pomocna2<=(@pomocna/2))
				begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
							FROM plis.dbo.Ainbreeding_Zhoda2
							WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia
							FROM plis.dbo.Ainbreeding_Zhoda2
							WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
					set @spolpredpribuz=0;
					set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM plis.dbo.Ainbreeding_Zhoda2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));
					if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=0;					
					end
					set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
					set @pomocna2=@pomocna2+1;
				end
			end
			else begin
				set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM plis.dbo.Ainbreeding_Zhoda2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
				set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM plis.dbo.Ainbreeding_Zhoda2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
				set @spolpredpribuz=0;
				set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM plis.dbo.Ainbreeding_Zhoda2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=0;					
				end
				set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
			end
		
			if (@pribuz>0) 
			begin
				INSERT plis.dbo.Ainbreeding_Zhoda2 (uscislo, koefpribuz) VALUES (@uscislo, @pribuz);
				UPDATE PLIS.dbo.Ainbreeding SET koefpribuz=@pribuz WHERE uscislo=@uscislo;
			end;
		end;
		fetch next from krava into @uscislo, @otec, @matka;
		end  ;
	close krava;
	deallocate krava; 
END
go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_TelataPoLaktacie]
AS
BEGIN
	
	/******************************************
		!  please run affter C_aktual_prepocMasoveVazenia !

		using table:CM_Krava,CM_Telata,CM_Vazenia
		
		changing table: Cp_Meso_TelataPoLaktacii

		used for: writing each Krava and her data for some Otelenie.

	*****************************************/

	declare @medzi int;
	declare @chovatel varchar(9);
	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @hmot1 int;
	declare @hmot2 int;
	declare @hmot3 int;
	declare @hmot int;
	declare @t1h120 float;
	declare @t1p120 float;
	declare @t1h210 float;
	declare @t1p210 float;
	declare @t2h120 float;
	declare @t2p120 float;
	declare @t2h210 float;
	declare @t2p210 float;
	declare @t3h120 float;
	declare @t3p120 float;
	declare @t3h210 float;
	declare @t3p210 float;
	declare @t1urctel varchar(1);
	declare @t2urcetel varchar(1);
	declare @t3urcetel varchar(1);
	declare @count as int;
	declare @porlak_telata int;

	set @count=0;
	set @hmot=0;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	declare @laktpas date;
	declare @lakt int;
	declare @pohlpas int;
	set @lakt=0;
	declare @hmotOtel as int;
	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;
	set @laktpas=NULL;
	set @pohlpas = null;
	declare kravy cursor for
	select  distinct k.CISKRAVY
	from CM_Krava as k
	inner join CM_Telata as t
	on k.CISKRAVY=t.MATKA or k.CISKRAVY = t.RECIPIENTKA  /*ik*/
	where k.PRIZNAKKU=2
	order by k.CISKRAVY 

	
	open kravy ;
	fetch next from kravy into @krava;

	
	
	TRUNCATE TABLE Cp_Meso_TelataPoLaktacii
	
	

	while @@FETCH_STATUS=0
	begin
		set @lakt = 0;
		declare @poc int;
		set @poc = 0;
		declare @Tnar as datetime;

		declare datum cursor for
		select distinct DATNAR
		from CM_Telata
		where MATKA=@krava or RECIPIENTKA = @krava /*ik*/

		
		open datum
		fetch next from datum into @Tnar;
		while @@FETCH_STATUS=0
		begin

		--print @Tnar;
		--print @krava;
		--print N'---------------------------'
		declare @i int;
		set @i=0;

		declare telata cursor for 
		select  t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,
		t.DATNAR,t.POHLAVIE,t.HMOTNAR,t.PORLAK,t.HMOTOT
		from CM_Krava as k
		inner join CM_Telata as t
		on k.CISKRAVY=t.MATKA or k.CISKRAVY = t.RECIPIENTKA /*ik*/ 
		where  k.CISKRAVY=@krava
		and  t.DATNAR=@Tnar 
		order by t.DATNAR ASC

		declare @datumNarKrava as datetime;

		set @datumNarKrava= (select DATNAR from CM_Krava where CISKRAVY=@krava)

		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot,@porlak_telata,@hmotOtel;
		set @i=1;
		while @@FETCH_STATUS=0
		begin
	--	set @Tnar=@datotel;
		print N'Krava '+@krava;
		print N'telia cislo '+convert(varchar,@i)
	--	print @Tnar;
	--	print @t
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				set @hmot1=@hmot;
				set @t1h120=(select  top 1  HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120 order by DATVAZ DESC);
				set @t1p120=(select  top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120 order by DATVAZ DESC);
				set @t1h210=(select  top 1 HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210 order by DATVAZ DESC)
				set @t1p210=(select  top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210 order by DATVAZ DESC);
				set @t1urctel=(select  top 1 URCTEL from CM_Telata where CISTELATA=@t)
				set @count=@count+1;
				if(@t is null)
				begin
					set @t1='bez UČ';
					set @t1Poch=@pocl;
					set @hmot1=@hmot;
					set @t2urcetel=(select top 1 URCTEL from CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				set @hmot2=@hmot;
				set @t2h120=(select top 1 HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2p120=(select top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2h210=(select top 1 HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t2p210=(select top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t2urcetel=(select top 1 URCTEL from CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t2='bez UČ';
					set @t2Poch=@pocl;
					set @hmot2=@hmot;
					set @t2urcetel=(select top 1 URCTEL from CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				set @hmot3=@hmot;
				set @t3h120=(select top 1 HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3p120=(select top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3h210=(select top 1 HMOTPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t3p210=(select top 1 PRIRPREPOC from CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t3urcetel=(select top 1 URCTEL from CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t3='bez UČ';
					set @t3Poch=@pocl;
					set @hmot3=@hmot;
					set @t3urcetel=(select top 1 URCTEL from CM_Telata where CISTELATA=@t)
				end
			end
			set @i=@i+1;
	
			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot,@porlak_telata,@hmotOtel;

			set @d=NULL;
		end

		close telata;
		deallocate telata;
		
		
		declare @vekRok as int;
		declare @vekDni as int;


		set @vekRok=(select ROUND(AVG(DATEDIFF(dd, @datumNarKrava, @datotel) / 30.45), 0))
		set @vekDni=(select CONVERT(int, AVG(DATEDIFF(dd, @datumNarKrava, @datotel) % 30.45)) )		

		--set @hmotOtel=(select distinct HMOTOT from plis.dbo.CM_Telata where MATKA=@krava and DATNAR=@Tnar ) 

		set @chovatel=(select top 1 CHOVATEL from CM_Krava where CISKRAVY=@krava)
		
			set @poc = @poc + 1;				
			/*ak datum predchadzajuceho otelenia a aktualneho otelenia v kurzore nie je null*/
			if (@laktpas is not null and @datotel is not null)
			begin
				/*ak predchadzajuce ani terajsie nie je et alebo ak pohlavie predchadzajuceho otelenia je null a pohlavie aktualneho otelenia je null (berie sa ze to nie je et)*/
				if ((@pohlpas <> 81 and @pohlpas <> 82 and @pocl <> 81 and @pocl <> 82) or @pohlpas is null or @pocl is null)
				begin 
					set @medzi=(DATEDIFF(Day,@laktpas,@datotel));
					set @laktpas=@datotel;
					set @pohlpas = @pocl;
					
				end;
				else begin					
					set @laktpas=@datotel;
					set @pohlpas = @pocl;	
				end;						
			end;			
			else 
				begin
					set	@medzi = null;
					set @laktpas=@datotel;
					set @pohlpas = @pocl;	
				end;			
				
		
			/*
			print @count;
			print @i;						
			print @chovatel;
			print @krava;
			print 'lakt ' +cast(@laktpas as varchar(10));
			print 'mo'+cast(@medzi as varchar(2));		
			print 'pohlavie '+cast(@pohlpas as varchar(2));
			*/
		
		 
		
		 insert into Cp_Meso_TelataPoLaktacii
		 values(@chovatel,@krava,@porlak_telata,@medzi,@vekRok,@vekDni,@datotel,
		 @hmotOtel,@t1,@t1Poch,@hmot1,@t1h120,@t1p120,@t1h210,@t1p210,@t1urctel,
		 @t2,@t2Poch,@hmot2,@t2h120,@t2p120,@t2h210,@t2p210,@t2urcetel,@t3,@t3Poch,
		 @hmot3,@t3h120,@t3p120,@t3h210,@t3p210,@t3urcetel,@otec,@ouc); 
				
						
						
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
						set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	
		fetch next from datum into @Tnar;				
		end

		 close datum
		deallocate datum;

		-- print N'-------------------------------------'
		 set @count=0;
		 set @laktpas=NULL;
		 set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	set @datumNarKrava=null;
	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END

go


/***masova rocenka - pocet prvych inseminacii a telnost po prvych inseminaciach
Masova rocenka 2017 - str.38 **/
 CREATE procedure [dbo].[Roc_MPHD_12]
	
	@datumOd date ,
	@datumDo date 
	
as 
begin

delete from Roc_MPHD_Tab_12 where rok = DATEPART(year,@datumOd)
update Roc_MPHD_Tab_12
set telnostKravy1ins = null,telnostJalovice1ins = null, telnostSpolu1ins = null
where rok = (DATEPART(year,@datumOd)-1)

--declare @datumOD date = '2017-01-01', @datumDo date = '2017-12-31'

--Create table Roc_MPHD_Tab_12
--(
--rok int,
--kravy_prve_ins int,
--jalovice_prve_ins int,
--spolu_prve_ins int,
--telnostKravy1ins float,
--telnostJalovice1ins float,
--telnostSpolu1ins float
--)


Declare @Roc_MPHD_Tab_12_ins table
	(
	rok int,
	kravy_prve_ins int,
	jalovice_prve_ins int,
	spolu_prve_ins int
	)

Declare @Roc_MPHD_Tab_12_telnost table
	(
	rok int,
	telnostKravy1ins float,
	telnostJalovice1ins float,
	telnostSpolu1ins float
	)

insert into @Roc_MPHD_Tab_12_ins
(rok, kravy_prve_ins, jalovice_prve_ins, spolu_prve_ins)

select DATEPART(YEAR, @datumOD) as rok, 
		kravy.pocetPrvych as kravy_prve_ins, 
		telata.pocetPrvych as jalovice_prve_ins, 
		kravy.pocetPrvych+telata.pocetPrvych as spolu_prve_ins
from (select count(*) as pocetPrvych
      from CM_Insvyk
      where	IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
						  union
							select cistelata from CM_Telata	where PRIZNAKKU = 2)
			and CM_Insvyk.IDAIN between @datumOD and @datumDo
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 1) as kravy,

     (select count(*) as pocetPrvych
      from CM_Insvyk
      where IPLCA in (select CISTELATA as usneCislo from CM_Telata where PRIZNAKKU = 2)
        and CM_Insvyk.IDAIN between @datumOD and @datumDo
        and CM_Insvyk.IPOIN = 1
        and CM_Insvyk.IKRJA = 3) as telata


insert into  @Roc_MPHD_Tab_12_telnost
(rok,telnostKravy1ins, telnostJalovice1ins, telnostSpolu1ins )
select DATEPART(YEAR,(dateadd(year,-1,@datumOD))) as rok ,
	   kIvyseGt6.pocetPrvych / kIvyseNe1and2.pocetPrvych * 100 as telnostKravy1ins,
       jIvyseGt6.pocetPrvych / jIvyseNe1and2.pocetPrvych * 100 as telnostJalovice1ins,
       (kIvyseGt6.pocetPrvych + jIvyseGt6.pocetPrvych) / (kIvyseNe1and2.pocetPrvych + jIvyseNe1and2.pocetPrvych) * 100 as telnostSpolu1ins
	from
		--kravy
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
					  union
						select cistelata from CM_Telata	where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 1
			and CM_Insvyk.IVYSE > 6
			) as kIvyseGt6,
		 
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
					  union
						select cistelata from CM_Telata	where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 1
			--and CM_Insvyk.IVYSE <> 1
			--and CM_Insvyk.IVYSE <> 2
			) as kIvyseNe1and2,
		
		--jalovice
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
					  union
						select cistelata from CM_Telata	where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 3
			and CM_Insvyk.IVYSE > 6) as jIvyseGt6,
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
					  union
						select cistelata from CM_Telata	where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 3
			--and CM_Insvyk.IVYSE <> 1
			--and CM_Insvyk.IVYSE <> 2
			) as jIvyseNe1and2
		--spolu
		/*
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
						  union 
						  select CISTELATA as usneCislo from CM_Telata where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 3
			and CM_Insvyk.IVYSE > 6) as sIvyseGt6,
		 (select convert(float, count(*)) as pocetPrvych
		  from CM_Insvyk
		  where IPLCA in (select CISKRAVY as usneCislo from CM_Krava where PRIZNAKKU = 2
						  union 
						  select CISTELATA as usneCislo from CM_Telata where PRIZNAKKU = 2 and cistelata not in (select ciskravy from CM_Krava))
			and CM_Insvyk.IDAIN between dateadd(year,-1,@datumOD) /*'2016-01-01'*/ and dateadd(year,-1,@datumDo) /*'2016-12-31'*/
			and CM_Insvyk.IPOIN = 1
			and CM_Insvyk.IKRJA = 3
			--and CM_Insvyk.IVYSE <> 1
			--and CM_Insvyk.IVYSE <> 2
			) as sIvyseNe1and2
			*/

		--select * from @Roc_MPHD_Tab_12_ins
		--select * from @Roc_MPHD_Tab_12_telnost


		insert into Roc_MPHD_Tab_12
		(rok, kravy_prve_ins , jalovice_prve_ins, spolu_prve_ins)
		select * from @Roc_MPHD_Tab_12_ins


		update  Roc_MPHD_Tab_12
		set telnostKravy1ins = (select telnostKravy1ins from  @Roc_MPHD_Tab_12_telnost)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))  
				
		update  Roc_MPHD_Tab_12
		set telnostJalovice1ins = (select telnostJalovice1ins from  @Roc_MPHD_Tab_12_telnost)
		where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))
		
		update  Roc_MPHD_Tab_12
		set telnostSpolu1ins  = (select telnostSpolu1ins from  @Roc_MPHD_Tab_12_telnost)
			where rok = (select datepart(year,(dateadd(year,-1,@datumOD))))


			/***rozdiel medzi rokmi***/
		update Roc_MPHD_Tab_12
		set rozdielinsKravy = (select(select kravy_prve_ins from Roc_MPHD_Tab_12 where rok = DATEPART(YEAR, @datumOd)) -  (select kravy_prve_ins from Roc_MPHD_Tab_12 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

		update Roc_MPHD_Tab_12
		set rozdielinsJal = (select(select jalovice_prve_ins from Roc_MPHD_Tab_12 where rok = DATEPART(YEAR, @datumOd)) -  (select jalovice_prve_ins from Roc_MPHD_Tab_12 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

		update Roc_MPHD_Tab_12
		set rozdielinsSpolu = (select(select spolu_prve_ins from Roc_MPHD_Tab_12 where rok = DATEPART(YEAR, @datumOd)) -  (select spolu_prve_ins from Roc_MPHD_Tab_12 where rok = (DATEPART(YEAR, @datumOd)-1)))
		where rok = DATEPART(YEAR, @datumOd) 

	End
go

 -- Zoznam teliat pre chov za mesiac
-- vstupne parametre: chov, rok, mesiac, dekada 
--
-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc
--			1.1: 1.2.2016 oprava pocitania kusov + dekada
--			1.2: 4.3.2016 pridanie O_PK byka
--			1.3: 21.6.2016 oprava LinReg otca matky		
--			1.4: 23.6.2016  - C_Zoznam_teliat_za_mesiac1 - testovacia verzia / nezapisuju sa data pri spracovani
 
CREATE PROCEDURE [dbo].[C_Zoznam_teliat_za_mesiac1] 
	@chov varchar(9), --= null
	@rok int,
	@mesiac int,
	@dekada INT
	
 AS
 DECLARE @aktualny_rok INT ,  @start_day INT ,  @end_day INT ,  @start DATE , @end DATE, @IDR BIGINT
 DECLARE @text VARCHAR(200) = 'Start OK. '
 SET @aktualny_rok = YEAR(GETDATE())

	
	-- debug informacie
	DECLARE @datum_start datetime = getdate()
	--


	SELECT @start = CASE @dekada
	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	END

	SELECT @end = CASE @dekada
	WHEN 1 THEN  EOMONTH(@start) -- koniec dekady
	WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	END

	PRINT 'Zaciatok dekady:	' + CONVERT(VARCHAR,@start);
	PRINT 'Koniec dekady:		' + CONVERT(VARCHAR,@end);
	PRINT '--------------------------------------';
	

 DECLARE @vymazcount int
 SELECT @vymazcount = COUNT(*) FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada
 DELETE FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada

 PRINT 'Vymazal som ' + CAST(@vymazcount AS VARCHAR) + ' teliat z tabulky CR_Zoznam_teliat_za_mesiac....'

 SET @text = @text + 'Vymazanie OK. '
 
 DECLARE @zoznam TABLE (cistelata VARCHAR(14) , matka VARCHAR(14) , IDR BIGINT , chov VARCHAR(9) ,  datnar DATE , pohlavie VARCHAR(2) , SI BIGINT , SU BIGINT )

 PRINT 'Zaciatok obdobia: ' + CONVERT(VARCHAR, @start)
 PRINT 'Koniec obdobia: ' + CONVERT(VARCHAR, @end)


 SELECT @IDR = IDR
 FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY
 WHERE  ( KONIEC BETWEEN @start AND @end )
        AND CHOV = @chov

		PRINT 'informacia o IDR...'
		PRINT 'IDR Vstupov: ' + CONVERT(VARCHAR, @IDR)

		SET @text = @text + ' IDR: ' + CONVERT(VARCHAR, @IDR) + ' '

 INSERT INTO @zoznam
        ( cistelata , matka ,IDR , chov ,
          datnar , pohlavie , SI , SU )
        SELECT  t.CISTELATA , t.MATKA , sch.IDR ,
                sch.CHOV , t.DATNAR , t.POHLAVIE ,
                t.SPRACINSERT , t.SPRACUPDATE
        FROM    VstupyPLIS.dbo.CP_SPRAC_CHOVY sch
                INNER JOIN plis.dbo.CM_Telata t ON ( sch.IDR = t.SPRACINSERT ) OR ( sch.IDR = t.SPRACUPDATE )
        WHERE   CHOV = @chov AND IDR = @IDR

		-- SELECT * FROM @zoznam -- debug zobrazenie

		DECLARE @pocet_teliat INT
		SELECT @pocet_teliat = COUNT(*) FROM @zoznam
		SET @text = @text + ' Pocet teliat: ' + CONVERT(VARCHAR, @pocet_teliat) + ' '

		
		INSERT INTO plis.dbo.CR_Zoznam_teliat_za_mesiac
		(chov, Cislo_Telata, Dat_Nar, Pohlavie, ET, PK, Plemeno
		, Preukaz, Farba, Matka, Por_Lakt, teln, M_PK, MM, OM, MO, OO, O_Meno, Lin_Reg, Otec, OM_Lin_Reg, OO_Lin_Reg
		,mesiac, rok, dekada, typ_vlozenia, IDR
		, O_PK
		)
		(		
		SELECT
		@chov AS chov
		,t.CISTELATA AS Cislo_Telata
		,n.DATOTEL AS Dat_Nar
		,p.SKRATKA AS Pohlavie
		,t.ZNAKET AS ET
		,dbo.c_telaPlemennaKniha(z.cistelata) AS PK
		
		,t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2 + '-' + CONVERT(VARCHAR, ISNULL(t.KR2, 0)) + ' ' + ISNULL(t.PL3
               + '-' + CONVERT(VARCHAR, ISNULL(t.KR3, 0)) + ' ' + ISNULL(t.PL4 + '-' + CONVERT(VARCHAR, ISNULL(t.KR4, 0)) + ' ' + ISNULL(t.PL5,
         ''), ''), ''),'') AS Plemeno
		
		,povod.PRETLAC AS Preukaz
		,t.FARBA AS Farba
		,t.MATKA AS Matka
		,t.PORLAK AS Por_Lakt
		,t.DOBANOS AS teln
		,k.PK AS M_PK
		,k.MA AS MM
		,k.OUSCIS AS OM
		,b.MATKA AS MO
		,b.OTUSCIS AS OO
		,b.MENO AS O_Meno
		,om.LIN + '-' + RIGHT(1000 + om.REG, 3) AS Lin_Reg
		,t.OUC AS otec
		,k.OTECLIN + '-' + RIGHT(1000 + k.OTECREG, 3) AS OM_Lin_Reg
		,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3)) AS OO_LIN_REG
		,@mesiac AS MESIAC
		,@rok AS ROK
		,@dekada AS DEKADA
		,IIF(z.SI = z.SU, '1', IIF(z.SI < z.SU OR z.SI IS NULL, '2', '3')) AS typ_vlozenia
		,@IDR AS IDR
		,oo.PK 
		FROM   @zoznam z
        LEFT JOIN plis.dbo.CM_Telata t ON ( t.CISTELATA = z.cistelata OR ( t.MATKA = z.matka AND t.DATNAR = z.datnar AND t.POHLAVIE = z.pohlavie  ))
        LEFT JOIN plis.dbo.CM_Krava k ON ( t.MATKA = k.CISKRAVY )
        LEFT JOIN plis.dbo.CM_Naplak n ON ( k.CISKRAVY = n.CISKRAVY OR ( k.CISKRAVY = n.CISKRAVY AND n.DATOTEL = t.DATNAR ))
        LEFT JOIN plis.dbo.CM_Byci b ON ( t.OUC = b.USCISLO )
	    LEFT JOIN plis.dbo.CC_Pohlavie p ON ( t.POHLAVIE = p.KOD )
        LEFT JOIN plis.dbo.CC_Povod povod ON ( t.PREUKAZ = povod.KOD )
        LEFT JOIN plis.dbo.CM_Byci om ON ( om.USCISLO = t.OUC )
        LEFT JOIN plis.dbo.CM_Byci oo ON ( oo.USCISLO = b.OTUSCIS ) 
		)

		DECLARE @insertcount int
		SELECT @insertcount = COUNT(*) FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada
		PRINT 'Insertol som ' + CAST(@vymazcount AS VARCHAR) + ' teliat do tabulky CR_Zoznam_teliat_za_mesiac....'
		PRINT 'pre chov: ' + CAST(@chov AS VARCHAR) + ' s parametrami:' + CAST(@rok AS VARCHAR) + '/' + CAST(@mesiac AS VARCHAR) + '/' +CAST(@dekada AS VARCHAR)
		PRINT ''

		SET @text = @text + ' Vlozenych do DB: ' + CONVERT(VARCHAR, @insertcount) + ' '

		;WITH CTE AS(
		 SELECT Cislo_Telata, chov, mesiac, rok, dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY Cislo_Telata ORDER BY Cislo_Telata)
		 FROM dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada AND Cislo_Telata IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1

		PRINT 'SELECT * FROM CR_Zoznam_teliat_za_mesiac WHERE chov='+ CAST(@chov AS VARCHAR) + ' AND rok ='+CAST(@rok AS VARCHAR) + ' AND mesiac=' + CAST(@mesiac AS VARCHAR) + ' AND dekada=' +CAST(@dekada AS VARCHAR)
		EXEC C_Zoznam_teliat_za_mesiac_sumar @chov, @rok, @mesiac, @dekada


		SET @text = @text + ' Koniec PROC OK. '

		-- debug informacie
		DELETE FROM plis.dbo.CR_Zoznam_teliat_SPRAC WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada
		DECLARE @datum_end datetime = getdate()
		INSERT INTO CR_Zoznam_teliat_SPRAC (chov, rok, mesiac, dekada, datum_start, datum_end, info)
		VALUES
		(@chov, @rok, @mesiac, @dekada, @datum_start, @datum_end, @text)
		--


 
go

-- =============================================
-- Author:		David Florek
-- Create date:	25.08.2017
-- Description:	Vrati zoznam zmien na danom riadku faktury
-- =============================================
CREATE PROCEDURE [dbo].[EC_ZmenyRiadkuFaktury]
	@id int
AS
BEGIN
	select
	zmeny.Datum,
	zmeny.Autor,
	pracku.MENO + ' ' + pracku.PRIEZVISKO as MenoAutora,
	zmeny.Typ,
	zmeny.Komentar

	from
	(select DatumPotvrdenia as Datum, Potvrdil as Autor, 'Potvrdenie' as Typ, '' as Komentar
	from EC_RiadokFaktury_Hist
	where IDR = @id and KodZmeny = 1

	union all
	select DatumZrusenia as Datum, Zmenil as Autor, 'Zrušenie' as Typ, KomentarKZruseniu as Komentar
	from EC_RiadokFaktury_Hist
	where IDR = @id and KodZmeny = 3

	union all
	select DatumZmeny as Datum, Zmenil as Autor, TypZmeny as Typ, KomentarKZmene as Komentar
	from EC_RiadokFaktury_Hist
	where IDR = @id and DatumZmeny is not null) zmeny

	left outer join aspnetdb.dbo.aspnet_Users users on LOWER(zmeny.Autor) = LOWER(users.UserName)
	left outer join aspnetdb.dbo.User_PRACKU usersPrac on users.UserId = usersPrac.UserId
	left outer join NM_PRACKU pracku on usersPrac.IDPRACKU = pracku.IDPRACKU

	order by zmeny.Datum;
END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-04-27
-- Description:	Aktualizovanie tabulku CM_ByciTDMSB datami z narodneho hodnotenia
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_BykyTDMSB_PLIS]
	@rok varchar(4),
	@mesiac varchar(2)

AS
BEGIN
DELETE FROM CM_BykyTDMSB where ROKSPRAC = @rok and MESSPRAC = @mesiac

insert into CM_BykyTDMSB
SELECT @rok
	  ,@mesiac
	  ,plem
      ,[BYK]
      ,b.LIN
      ,B.REG
      ,b.MENO
      ,[DATUMN]
      ,[ROK]
      ,[SIRE]
      ,o.LIN
      ,o.REG
      ,[DAM]
      ,[BREEDG]
      ,[PLEMENO]
      ,[NH]
      ,[ND]
      ,[NR]
      ,[N]
      ,[MLIEKO]
      ,[TUK]
      ,[TUKP]
      ,[BIELK]
      ,[BIELKP]
      ,[SC305]
      ,[RPHSC]
      ,[SCREL]
  FROM [CP_BLUP_BYKYTDM_SC] as t
  left join CM_Byci as b on t.BYK = b.USCISLO
  left join CM_Byci as o on t.SIRE = o.USCISLO
END
go


/***masova rocenka - pocet vykonanych inseminacii
Masova rocenka 2017 - str.37 **/
 CREATE procedure [dbo].[Roc_MPHD_11]
	
	@datumOd date,
	@datumDo date 

as 
begin
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

delete from Roc_MPHD_Tab_11 where rok = DATEPART(YEAR, @datumOd)

declare @Roc_MPHD_Tab_11 table
	(
	prvePocet int,
	prvePerc float,
	vsetkyPocet int,
	podielVset float,
	rok int
	)

insert  @Roc_MPHD_Tab_11
select prve.prvePocet, prve.prvePocet/(0.01*prveCelkovo.prvePocet) as prvePerc, vsetky.vsetkyPocet, vsetky.vsetkyPocet/(0.01*vsetkyCelkovo.vsetkyPocet) as podielVset, DATEPART(year, @datumOd) as rok
from (select count(*) as prvePocet
      from CM_Insvyk
             left outer join CM_Byci on CM_Insvyk.IBLIN = CM_Byci.LIN and CM_Insvyk.IBREG = CM_Byci.REG
      where IDAIN >= @datumOd--'2017-01-01'
        and IDAIN <= @datumDo--'2017-12-31'
        and BB_USE = 'Výkrmový'
        and IPOIN = 1) as prve,
     (select count(*) as vsetkyPocet
      from CM_Insvyk
             left outer join CM_Byci on CM_Insvyk.IBLIN = CM_Byci.LIN and CM_Insvyk.IBREG = CM_Byci.REG
      where IDAIN >= @datumOd--'2017-01-01'
        and IDAIN <= @datumDo--'2017-12-31'
        and (BB_USE = 'Výkrmový')) as vsetky,
     (select count(*) as prvePocet
      from CM_Insvyk
             left outer join CM_Byci on CM_Insvyk.IBLIN = CM_Byci.LIN and CM_Insvyk.IBREG = CM_Byci.REG
      where IDAIN >= @datumOd--'2017-01-01'
        and IDAIN <= @datumDo--'2017-12-31'
        and IPOIN = 1) as prveCelkovo,
     (select count(*) as vsetkyPocet
      from CM_Insvyk
             left outer join CM_Byci on CM_Insvyk.IBLIN = CM_Byci.LIN and CM_Insvyk.IBREG = CM_Byci.REG
      where IDAIN >= @datumOd--'2017-01-01'
        and IDAIN <= @datumDo--'2017-12-31'
     ) as vsetkyCelkovo;

	 
insert into Roc_MPHD_Tab_11 
(prvePocet,prvePerc, vsetkyPocet, podielVset,rok)
select prvePocet,prvePerc, vsetkyPocet, podielVset,rok from @Roc_MPHD_Tab_11

update Roc_MPHD_Tab_11 
set rozdielprvePoce = (select(select prvePocet from @Roc_MPHD_Tab_11 where rok = Datepart(year,@datumOd) ) - (select prvePocet from Roc_MPHD_Tab_11 where rok = (Datepart(year,@datumOd) -1)))
	where rok = DATEPART(YEAR, @datumOd)

update Roc_MPHD_Tab_11
set rozdielprvePerc = (select(select prvePerc from @Roc_MPHD_Tab_11 where rok = Datepart(year,@datumOd) ) - (select prvePerc from Roc_MPHD_Tab_11 where rok = (Datepart(year,@datumOd) -1)))
	where rok = DATEPART(YEAR, @datumOd)

update Roc_MPHD_Tab_11
set rozdielvsetkyPocet = (select(select vsetkyPocet from @Roc_MPHD_Tab_11 where rok = Datepart(year,@datumOd) ) - (select vsetkyPocet from Roc_MPHD_Tab_11 where rok = (Datepart(year,@datumOd) -1)))
	where rok = DATEPART(YEAR, @datumOd)

update Roc_MPHD_Tab_11
set rozdielpodielVset = (select(select podielVset from @Roc_MPHD_Tab_11 where rok = Datepart(year,@datumOd) ) - (select podielVset from Roc_MPHD_Tab_11 where rok = (Datepart(year,@datumOd) -1)))
	where rok = DATEPART(YEAR, @datumOd)



	 end
go

CREATE PROCEDURE [dbo].[CR_Rozdiel_Tuku_V_Preblak_prepocet] 
@ciskravy varchar(14)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' and left(chov,1)='8'

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_Rozdiel_Tuku_V_Preblak @chov, @ciskravy

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
		CLOSE prepocet_cursor
		DEALLOCATE prepocet_cursor
end
go


-- =============================================
-- Author:		<PSSR, š.p>
-- Create date: 
-- Description:	Výbery pre Zväz chovateľov MD
-- =============================================
CREATE PROCEDURE [dbo].[C_Priprava_dat_Obtiaznost_porodov]


AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
TRUNCATE TABLE [plis].[dbo].[CP_ZCHMD_KRAVY]
 /* naplnenie tabulky CP_ZCHMD_KRAVY*/

  insert into plis.dbo.CP_ZCHMD_KRAVY
       ( CISKRAVY, CHOVATEL, DATNAR, DATPOSOTEL, PLEMENO,  MATKA, OTECLIN, OTECREG, OUC, HMOTNAR, HMOT120, DATUM120, 
	    HMOT210, DATUM210, HMOT365, DATUM365, HMOT500, DATUM500, ZAVER )
 (select ciskravy, kr.chovatel, kr.Datnar,
(select  max(datnar) as DatPosOtel  from  CM_Telata
where matka = kr.CISKRAVY
group by MATKA) as DatposOtel, 
 ISNULL(PL1, '') + ' ' + CASE WHEN CONVERT(varchar, KR1) 
                         <> '0' THEN CONVERT(varchar, KR1) ELSE '' END + ' ' + ISNULL(PL2, '') + ' ' + CASE WHEN CONVERT(varchar, KR2) 
                         <> '0' THEN CONVERT(varchar, KR2) ELSE '' END + ' ' + ISNULL(PL3, '') + ' ' + CASE WHEN CONVERT(varchar, KR3) 
                         <> '0' THEN CONVERT(varchar, KR3) ELSE '' END + ' ' + ISNULL(PL4, '') + ' ' + CASE WHEN CONVERT(varchar, KR4) 
                         <> '0' THEN CONVERT(varchar, KR4) ELSE '' END + ' ' + ISNULL(PL5, '') AS PLEMENO, 
						  MA as MATKA, OTECLIN, OTECREG, OUSCIS as OUC, 
v.vahaNar as hmotnar,  convert(int, nullif(v.vaha120, 0)) as hmot120, (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 120  
group by  vv.DATVAZ ) as datum120, 
convert(int, nullif(v.vaha210, 0)) as hmot210, (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 210
group by  vv.DATVAZ ) as datum210, 
convert(int, nullif(v.vaha365, 0)) as hmot365,  (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 365
group by  vv.DATVAZ ) as datum365, 
convert(int, nullif(v.vaha500, 0)) as hmot500,  (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 500
group by  vv.DATVAZ ) as datum500, kr.dovvyr as zaver
from CM_Krava as kr
left outer join CP_Meso_TelataVahy as v on kr.CISKRAVY = v.cistelata
where PRIZNAKKU = '2' )
  
 /* naplnenie tabuľky CP_ZCHMD_Telata*/   
TRUNCATE TABLE [PLIS].[dbo].[CP_ZCHMD_Telata]
insert into plis.dbo.CP_ZCHMD_Telata
     ( CISTELATA, CHOVATEL, DATNAR, POHLAVIE, PLEMENO,  MATKA, OTECLIN, OTECREG, OUC, HMOTNAR,OBTIAZPOR, ZLAKTACIE, HMOT120, DATUM120, 
	   HMOT210, DATUM210, HMOT365, DATUM365, HMOT500, DATUM500, ZAVER )

(select te.CISTELATA, te.chovatel, te.Datnar, te.POHLAVIE,

 ISNULL(PL1, '') + ' ' + CASE WHEN CONVERT(varchar, KR1) 
                         <> '0' THEN CONVERT(varchar, KR1) ELSE '' END + ' ' + ISNULL(PL2, '') + ' ' + CASE WHEN CONVERT(varchar, KR2) 
                         <> '0' THEN CONVERT(varchar, KR2) ELSE '' END + ' ' + ISNULL(PL3, '') + ' ' + CASE WHEN CONVERT(varchar, KR3) 
                         <> '0' THEN CONVERT(varchar, KR3) ELSE '' END + ' ' + ISNULL(PL4, '') + ' ' + CASE WHEN CONVERT(varchar, KR4) 
                         <> '0' THEN CONVERT(varchar, KR4) ELSE '' END + ' ' + ISNULL(PL5, '') AS PLEMENO, te.MATKA, te.OTECLIN, te.OTECREG, te.OUC, 
te.HMOTNAR, te.PRIEBPOR, te.porlak,  convert(int, nullif(v.vaha120, 0))  as hmot120, (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 120  
group by  vv.DATVAZ ) as datum120, 
 convert(int, nullif(v.vaha210, 0)) as hmot210, (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 210
group by  vv.DATVAZ ) as datum210, 
 convert(int, nullif(v.vaha365, 0)) as hmot365,  (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 365
group by  vv.DATVAZ ) as datum365, 
  convert(int, nullif(v.vaha500, 0)) as hmot500,  (select top 1  max(vv.datvaz) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 500
group by  vv.DATVAZ ) as datum500, te.dovvyr
from CM_Telata as te
left outer join CP_Meso_TelataVahy as v on te.CISTELATA = v.cistelata
where PRIZNAKKU = '2' )
 
 /* naplnenie tabuľky CP_ZCHMD_Ciselnik*/   
TRUNCATE TABLE [PLIS].[dbo].[CP_ZCHMD_Ciselnik]
insert into plis.dbo.CP_ZCHMD_Ciselnik
     (CHOVATEL, NAZPOD, MIESTOPOD, NAZMAS
      )
(select (hd.kraj+hd.okres+ hd.podnik+ hd.chov) as Chovatel,  p.Nazov as NazPod, p.OBEC as MiestoPod,  ch.NAZOV as NazMas   from NM_HDDETAIL as hd
left outer join NM_CHOVMAS as ch on (hd.kraj + hd.okres + hd.podnik + hd.CHOV) = (ch.kraj + ch.okres + ch.podnik + ch.chov)
left outer join NM_PODNIK  as p on (hd.kraj + hd.okres + hd.podnik) = (p.kraj + p.okres + p.podnik) 
where hd.PRIZNAK = '01' and hd.SPVYKON = '4')

/* naplnenie tabuľky CP_ZCHMD_SJAL*/   
TRUNCATE TABLE [plis].[dbo].[CP_ZCHMD_SJAL]
insert into plis.dbo.CP_ZCHMD_SJAL 
(    CISJAL, CHOVNAR, CHOVATEL, DATNAR, PORLAK, POHLAVIE, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, OTECLIN, OTECREG,
     OPL1, OKR1,  OPL2, OKR2,  OPL3, OKR3, OPL4, OKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )

(SELECT        k.CISTELATA AS CISJAL, k.CHOVNAR, k.CHOVATEL, k.DATNAR, k.PORLAK, k.POHLAVIE, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.OTECLIN, 
                         k.OTECREG, b.PL1 AS OPL1, b.KR1 AS PKR1, b.PL2 AS OPL2, b.KR2 AS PKR2, b.PL3 AS OPL3, b.KR3 AS OKR3, b.PL4 AS OPL4, b.KR4 AS PKR4, b.PL5 AS OPL5, 
                         k.MATKA, m.PL1 AS MPL1, m.KR1 AS MKR1, m.PL2 AS MPL2, m.KR2 AS MKR2, m.PL3 AS MPL3, m.KR3 AS MKR3, m.PL4 AS MPL4, m.KR4 AS MKR4, 
                         m.PL5 AS MPL5, k.FARBA, k.ZNAKET,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOREG, b.MATKA AS MO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS MM,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b1
                               WHERE        (b.IDOT = IDBYKA)) AS MOO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS MMO,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) AS MOM,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS MMM
FROM            dbo.CM_Telata AS k LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON k.IDOT = b.IDBYKA LEFT OUTER JOIN
                         dbo.CM_Krava AS m ON k.IDMA = m.IDKRAVY
WHERE        (k.PRIZNAKKU = '2') AND (k.CISTELATA IS NOT NULL) and CISTELATA not in (select ciskravy  from cm_krava) )

/* naplnenie tabuľky CP_ZCHMD_SKRAV*/   
TRUNCATE TABLE [plis].[dbo].[CP_ZCHMD_SKRAV]
insert into plis.dbo.CP_ZCHMD_SKRAV 
(    CISKRAVY,  CHOVATEL, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, ZNMATBYK, ZNAKET, ZDRAVTR, OTECLIN, OTECREG,
     matka, DATVYR, DOVVYR,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )
( SELECT     CISKRAVY, k.CHOVATEL, k.DATNAR, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.ZNMATBYK, k.ZNAKET, k.ZDRAVTR, k.OTECLIN, k.OTECREG, k.MA, k.DATVYR, k.DOVVYR, 
              
			  ( select LIN FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOLIN,
			  ( select REG FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOREG,  
			   b.matka as MO,
			  (select OTECLIN  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMLIN,
			  (select OTECREG  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMREG,
			  (select MA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS MM,
			  (select LIN FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOLIN,
			  (select REG FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOREG,
			  (select MATKA  FROM CM_BYCI as b1 where b.IDOT = b1.IDBYKA) AS MOO,
			  (select OTECLIN  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOLIN,
			  (select OTECREG  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOREG,
			  (select MA  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS MMO,
			  (select LIN  FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMLIN,
			  (select REG FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMREG,
			  (select MATKA FROM CM_BYCI as b where (select IDOT  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) as MOM, 
			  
              (select OTECLIN FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMLIN,
			  (select OTECREG FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMREG,
			  (select MA  FROM CM_KRAVA as k1 where ( select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY)=  k1.IDKRAVY) AS MMM

		 	
FROM            dbo.CM_Krava as k
left outer join
CM_byci as b  on k.IDOT = b.IDBYKA
WHERE         (k.PRIZNAKKU = '2') )

/* vybery prvych a poslednych insemenacii krav */ 
TRUNCATE TABLE [plis].[dbo].[CP_ZCHMD_PripPlem]
insert into [plis].[dbo].[CP_ZCHMD_PripPlem]
(CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL
) 
(
SELECT i.IPLCA,  k.porpreblak as porlak, ii.IPOIN as pocins, i.IDAIN as datins1, i.IBLIN as byklin1,  i.IBREG as bzkreg1,
                  ii.idain as datins, ii.iblin as byklin, ii.ibreg as bykreg,  ii.ivyse as vysep
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1
							   inner join (		 SELECT    i.IPLCA, i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG,  i.IVYSE
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin <> '99'   
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika ) as ii on i.iplca = ii.iplca 
							   inner  join dbo.CM_Krava as k on i.IPLCA = k.ciskravy and
							      (k.PRIZNAKKU = '2') 
)

END


go

CREATE procedure [dbo].[Rocenka_OV_Tab_VBon]
    @TypPlem varchar(2),
	@rok varchar(4),
	@TypChovu varchar(1)	
as
begin

	--23.01.2018 - fix 0 hodnoty, oprava nazvov plemena
	select * --,p.NAZOVD
	from dbo.SP_Rocenka_VBon as z
	--left outer join plis.dbo.SC_Plemena as p on p.KODPL2 = z.Plemeno
		where  -- z.rok = @rok and 
	 z.TypPlem = @TypPlem and z.Rok= @rok and @TypChovu= z.TypChovu
	 and PocZvDobeBonit <> 0
end


--		exec [Rocenka_OV_Tab_VBon] 'C ', 2017, '2'
go



CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA]
AS
BEGIN
	/**********************************************

	! please run affter C_Aktual_KodDojKodMedzi !

		using table:CM_Naplak,CM_Krava,CM_Laktacie

		canging table:CP_MedziobdZostavaA

		used for:(9.A) Rozbor medziobdobia podľa prebiehajúcej laktácie 

	*********************************************/

	TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaA


	declare @kod as int;
	declare @nazov as varchar(20);
	declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		declare hran cursor for
		select kod,nazov
		from plis.dbo.CC_Medziobd

		open hran
		fetch next from hran into @kod,@nazov

		while @@FETCH_STATUS=0
		begin
			
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod);
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod);
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod);
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod);
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod);
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod);
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod);
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod);
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod);
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ=@kod and KOD_MEDZ is not null and KOD_MEDZ!=1);
			set @s=(select COUNT(*)
					from PLIS.dbo.CM_Naplak as l
					inner join PLIS.dbo.CM_Krava as k
					on k.CISKRAVY=l.CISKRAVY
					where k.CHOVATEL=@C
					and k.DOVVYR is null);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);

			------------------------------------------------------
		
					set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena in (30,40));
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena in (30,40));
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_DOJ=@kod and zmena in (30,40));
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and zmena in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'N');

----------------------------------------------------------------
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ=@kod and zmena not in (30,40) );
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ=@kod and zmena not in (30,40));
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and kod_medz=@kod and zmena not in (30,40));
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and zmena not in (30,40) and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1*100)*1.00)/@s;
			set @p2=(convert(float,@l2*100)*1.00)/@s;
			set @p3=(convert(float,@l3*100)*1.00)/@s;
			set @p4=(convert(float,@l4*100)*1.00)/@s;
			set @p5=(convert(float,@l5*100)*1.00)/@s;
			set @p6=(convert(float,@l6*100)*1.00)/@s;
			set @p7=(convert(float,@l7*100)*1.00)/@s;
			set @p8=(convert(float,@l8*100)*1.00)/@s;
			set @p9=(convert(float,@l9*100)*1.00)/@s;
			set @pSpolu=(convert(float,@spolu*100)*1.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL=@c and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA values  (@C,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,'C');
	


--------------------------------------------------------------------------------------

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
			
			set @l1=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l2=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l3=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l4=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l5=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l6=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l7=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l8=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l9=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @spolu=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @s=(select COUNT(*) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null  and KOD_MEDZ is not null and KOD_MEDZ!=1);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;

			insert into plis.dbo.cp_medziobdZostavaA values(@c,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)

			set @l1=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=1 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l2=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=2 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l3=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=3 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l4=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=4 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l5=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=5 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l6=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=6 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l7=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=7 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l8=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK=8 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @l9=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and l.PORLAK>=9 and KOD_MEDZ is not null and KOD_MEDZ!=1 );
			set @spolu=(select avg(MEDZIOBD) from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL=@C and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 );
		
			insert into plis.dbo.cp_medziobdZostavaA values(@c,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)

		fetch next from chovatel into @C;
	end

	close chovatel;
	deallocate chovatel;


END

go

CREATE procedure  [dbo].[Roc_MLHD_13]
	@datumOd date,
	@datumDo date

	as 
	begin

		SET ANSI_WARNINGS  OFF;
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

/***mastale s najlepsou uzitkovostou krav podla kg BIELKOVIN - cistokrvne ***/

		delete from Roc_MLHD_Tab_13 where rok = datepart(year,@datumOd);
		
	--holstein
	declare @mastale_H table(
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)
	--slovenske strakate
	declare @mastale_S table( 
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)
	--Pinzgauske
		declare @mastale_P table( 
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)


insert into @mastale_H 
(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel


		
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5 in ('H','R')
							and eko.ZRUS is null AND eko.TYPZV='1'
							
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	--select * from @prvostky_H

	insert into @mastale_S 
(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5  in ('S ','MB')
							and eko.ZRUS is null AND eko.TYPZV='1'
																	
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	
	insert into @mastale_P 
	(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel
		
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5 ='P'
							and eko.ZRUS is null AND eko.TYPZV='1'
							
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	
	----insert into @prvostky_B
	----(chov,pocet_krav_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
	----	select top 100 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
	----			o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
	----			r.stpec_5 as plem,
	----			ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
	----			ROUND(AVG(Lakt.LAKTDNI),2) as lakt_dni,
	----			ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
	----			ROUND(AVG(Lakt.TUKNOR),2) as tuk,
	----			ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
	----			ROUND(AVG(MEDZIOBD),2) as medziobd 
		
	----	FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
	----						left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	----						left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
	----						--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
	----						left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
	----						left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
	----						left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
	----						left outer join  NC_CharUst as u on u.KOD = h.CHARUS
	----						left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
	----					 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
	----							or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
	----						and r.rok = DATEPART(YEAR,@datumOd)
	----						and r.stpec_5 = 'B'
	----						and eko.ZRUS is null 
	----						AND eko.TYPZV='1'
	----						and Lakt.MLIEKCEL <>''
	----						and Lakt.ZMENA in ('30','40')
							
							
										
	----				group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
	----				having count(lakt.CISKRAVY) >10
	----				order by ROUND(AVG(Lakt.BIELKNOR),2) desc


	insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)
			
		select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst, 
			plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
			tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'Hol' as Plem_typ
		from @mastale_H
	
	insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)

		select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			 okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst,
			plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
			tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'SLst' as Plem_typ
		from @mastale_S

insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)

			select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst,
				plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
				tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'Pin' as Plem_typ
		from @mastale_P

	
/***mastale s najlepsou uzitkovostou krav podla kg BIELKOVIN - krizence ***/

	--holstein
	declare @mastale_Hk table(
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)
	--slovenske strakate
	declare @mastale_Sk table( 
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)
	--Pinzgauske
		declare @mastale_Pk table( 
		chov varchar(9),
		okres varchar(100),
		podnik varchar(100),
		mastal  varchar(100),
		char_ust  varchar(30),
		plem  varchar(10),
		pocet_N_lakt float,
		lakt_dni float,
		mlieko float, 
		tuk_P float,
		tuk float,
		bielk_P float,
		bielk float,
		medziobd float,
		vek_otel varchar(7)
		)


insert into @mastale_Hk 
(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.KOD as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel


		
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5 not in ('H','R')
							and SUBSTRING(r.stpec_5,1,1) in ('H','R')
							and eko.ZRUS is null AND eko.TYPZV='1'
							
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.KOD,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	--select * from @prvostky_H

	insert into @mastale_Sk 
(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.KOD as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5 not in ('S','MB')
							and SUBSTRING(r.stpec_5,1,2) in ('S ','MB')
							and eko.ZRUS is null AND eko.TYPZV='1'
																	
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.KOD,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	
	insert into @mastale_Pk 
	(chov, okres, podnik, mastal, char_ust, plem, pocet_N_lakt, lakt_dni, mlieko, tuk_P, tuk, bielk_P, bielk, medziobd,vek_otel )
		select top 50 lakt.Oznacenie as chov, 
				o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.KOD as char_ust,
				r.stpec_5 as plem,
				Lakt.PocLakNcelk as pocet_N_lakt,
				Lakt.LakDniNCelk as lakt_dni,
				Lakt.MliekNorCelk  as mlieko,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				Lakt.TukNorCelk  as tuk,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				Lakt.BielkNorCelk as bielk,
				Lakt.MedziobdL2 as medziobd,
				Lakt.MedziobdL1 as vek_otel
		
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= Oznacenie)
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.Oznacenie,1,6)
							left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.Oznacenie,1,3)
							left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join NC_CharUst as u on u.KOD = h.CHARUS
							left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.Oznacenie
						 where  len(Oznacenie)=9 and Oznacenie = Filter
 							and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and r.rok = DATEPART(YEAR,@datumOd)
							and r.stpec_5 <>'P'
							and SUBSTRING(r.stpec_5,1,1) ='P'
							and eko.ZRUS is null AND eko.TYPZV='1'
							
					group by lakt.Oznacenie, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.KOD,r.stpec_5,Lakt.PocLakNcelk, 
						Lakt.LakDniNCelk,Lakt.MliekNorCelk,  Lakt.TukNorCelk, Lakt.BielkNorCelk, Lakt.MedziobdL2 , Lakt.MedziobdL1
					order by ROUND(BielkNorCelk,2) desc
	
	----insert into @prvostky_Bk
	----(chov,pocet_krav_na_chove, /*bielk_max, */okres, podnik, mastal, char_ust, plem,pocet_N_lakt, lakt_dni, mlieko, tuk, bielk, medziobd )
	----	select top 100 lakt.CHOVATEL as chov, count(lakt.CISKRAVY) as pocet_prvostok_na_chove, /*max(lakt.BIELKNOR) as bielk_max,*/
	----			o.NAZOV as okres, p.NAZOVSKR as podnik, eko.NAZOV as mastal, u.NAZOV as char_ust,
	----			r.stpec_5 as plem,
	----			ROUND(AVG(Lakt.LAKDNIN),2)as pocet_N_lakt,	
	----			ROUND(AVG(Lakt.LAKTDNI),2) as lakt_dni,
	----			ROUND(AVG(Lakt.MLIEKNOR),2) as mlieko,
	----			ROUND(AVG(Lakt.TUKNOR),2) as tuk,
	----			ROUND(AVG(Lakt.BIELKNOR),2) as bielk,
	----			ROUND(AVG(MEDZIOBD),2) as medziobd 
		
	----	FROM dbo.View_CP_LaktaciePreZostavy as Lakt	 
	----						left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
	----						left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
	----						--left outer join CR_LaktacneZostavy_Opr as lo on lo.Filter = k.CHOVATEL
	----						left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
	----						left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
	----						left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.CHOVATEL
	----						left outer join  NC_CharUst as u on u.KOD = h.CHARUS
	----						left outer join Roc_MLHD_Tab_22A as r on r.KRAJ + r.OKRES + r.PODNIK + r.stlpec_6c = Lakt.CHOVATEL
	----					 where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
	----							or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
	----						and r.rok = DATEPART(YEAR,@datumOd)
	----						and r.stpec_5 = 'B'
	----						and eko.ZRUS is null 
	----						AND eko.TYPZV='1'
	----						and Lakt.MLIEKCEL <>''
	----						and Lakt.ZMENA in ('30','40')
							
							
										
	----				group by lakt.CHOVATEL, o.NAZOV, p.NAZOVSKR, eko.NAZOV, u.NAZOV, r.stpec_5 --, k.PL1 + ' '+ isnull(k.PL2,'') + ' '+ isnull(k.PL3,'')
	----				having count(lakt.CISKRAVY) >10
	----				order by ROUND(AVG(Lakt.BIELKNOR),2) desc

	--declare @kravy_fin table(
	--	Por bigint,
	--	--chov varchar(9),
	--	Okres varchar(100),
	--	Podnik varchar(100),
	--	Mastal  varchar(100),
	--	Mastal_cis varchar(5),
	--	CharUst  varchar(30),
	--	Prev_plem  varchar(10),
	--	Poc_n_lakt float,
	--	LaktDni float,
	--	mlieko float, 
	--	tuk_P float,
	--	tuk_KG int,
	--	bielk_P float,
	--	bielk_KG int,
	--	medziobd int,
	--	vek_otel varchar(8),
	--	rok varchar(4),
	--	Plem_typ varchar(6)
	--	)
	insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)
			
		select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst,
			plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
			tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'Hol+K' as Plem_typ
		from @mastale_Hk
		--order by bielk desc
	
	insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)

		select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			 okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst,
			plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
			tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'SLst+K' as Plem_typ
		from @mastale_Sk
		

	insert into Roc_MLHD_Tab_13
			(Por,Okres,Podnik,Mastal,Mastal_cis,CharUst,Prev_plem,Poc_n_lakt,LaktDni,mlieko,tuk_P
		,tuk_KG,bielk_P,bielk_KG,medziobd,vek_otel,rok ,Plem_typ)

		select ROW_NUMBER() OVER(ORDER BY bielk desc) AS Por,
			okres as Okres, podnik as Podnik, mastal as Mastal,substring(chov,7,3) as Mastal_cis,
			(case when char_ust = '1' then 'VÄZ-BEZ'
					when char_ust = '2' then 'VÄZ-DOJ'
					else 'VOĽNÁ' end) as CharUst,
			plem as Prev_plem, pocet_N_lakt as Poc_n_lakt, round(lakt_dni,0) as LaktDni, round(mlieko,0) as mlieko,
			tuk_P as tuk_P, round(tuk,0) as tuk_KG, bielk_P as bielk_P, round(bielk,0) as bielk_KG,round(medziobd,0) as medziobd, vek_otel as  vek_otel ,
			datepart(year,@datumOd) as rok,
			'Pin+K' as Plem_typ
		from @mastale_Pk

		SET ANSI_WARNINGS ON;
End
go


/***masova rocenka - najvyzivanejsi byci masovych plemien 
Masova rocenka 2017 - str.37 **/
 CREATE procedure [dbo].[Roc_MPHD_10]
	
	@datumOd date ,
	@datumDo date 

as 
begin

delete from Roc_MPHD_Tab_10 where rok = DATEPART(YEAR, @datumOd)

--create table Roc_MPHD_Tab_10
--(
--LIN varchar (3),
--REG varchar (3),
--MENO varchar(40),
--rokNar int,
--PL1 varchar (3),
--pocetPrvych int,
--pocetVsetkych int,
--rok int
--)

insert Roc_MPHD_Tab_10
select byk.LIN, byk.REG, MENO, year(DATNAR) as rokNar, PL1, pocetPrvych, pocetVsetkych, DATEPART(year, @datumOd) as rok
from CM_Byci as byk
       inner join (select top 10 byk.LIN as l, byk.REG as r, count(*) as pocetVsetkych
                   from CM_Insvyk as ins
                          left outer join CM_Byci as byk on ins.IBLIN = byk.LIN and ins.IBREG = byk.REG
                   where ins.IDAIN >= @datumOd
                     and ins.IDAIN <= @datumDo
                     and byk.BB_USE = 'Výkrmový'
                   group by byk.LIN, byk.REG
                   order by pocetVsetkych desc) as vsetky on LIN = vsetky.l and reg = vsetky.r
       left outer join (select byk.LIN l, byk.REG r, count(*) as pocetPrvych
                        from CM_Insvyk as ins
                               left outer join CM_Byci as byk on ins.IBLIN = byk.LIN and ins.IBREG = byk.REG
                        where ins.IDAIN >= @datumOd
                          and ins.IDAIN <= @datumDo
                          and byk.BB_USE = 'Výkrmový'
                          and IPOIN = 1
                        group by byk.LIN, byk.REG) as prve on LIN = prve.l and reg = prve.r;





end
go


-- =============================================

---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch bez ohladu na to, ci boli spracovane v danom mesiaci, alebo nie.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_stvrtrok_Opr]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

DECLARE @cistelata varchar(14)

	select distinct CISTELATA, CHOVATEL into #cistelata
		from View_CP_SumarMladyDobytokJal_new where CHOVATEL = @chov
		
	DECLARE @counter int
	SET @counter = 0;

	DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(*) FROM #cistelata
								WHERE CHOVATEL = @chov 
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)
		
	IF ( SELECT COUNT(distinct v.CISTELATA) FROM #cistelata as v 
							left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVATEL = t.CHOVATEL
							WHERE v.CHOVATEL = @chov
									and t.DOVVYR is null and t.DATVYR is null
									and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
									and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA) 
									 ) >= 1
		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM #cistelata as v 
						left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVATEL = t.CHOVATEL
						WHERE v.CHOVATEL = @chov 
								and t.DOVVYR is null and t.DATVYR is null
								and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
								and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
				
				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and t.DOVVYR is null and t.DATVYR is null
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
			PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)
			
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

			INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1 then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1 - @h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360 - @h1 ) * 1000 / NULLIF(@dp, 0)), @d1) 
			
			--print '@h1'
			--print @h1 
			--print '@h2n' 
			--print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor

			
			-- CREATE TABLE CR_TMHD_pripustenie_stvrtR
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int,
			--	rokPripus int
			--	)
			
		insert into CR_TMHD_pripustenie_stvrtR
		select
					cistelata,
					chov,
					datnar,
					datvaz1 , 
					hmot1 ,
					rp1 ,
					datvaz2, 
					hmot2 ,
					rp2 ,
					dp ,
					DatPrip1 ,
					DatPrip2 ,
					datPr ,
					datPlanPripust ,
					ZnakPripus ,
					MesiacPripusF,
					rok , 
					mesiac ,
					generovane , 
				(case when hmot2 > 360 then DATEPART(MONTH,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360  and DatPrip1 <= DatPrip2 then DATEPART(MONTH,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as mesiacPripus,
				
				(case when hmot2 > 360  then DATEPART(YEAR,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360 and DatPrip1 <= DatPrip2 then DATEPART(YEAR,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as rokPripus
			
				from #abc1 
end
end
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_KodSomBunky]
	
AS
BEGIN

/**********************************************
	used table:CM_Kontroly,CM_ArchKon,CC_LDintervaly,CC_SBintervaly

	changing table:CM_Kontroly (KodIntSB,KodIntLD),CM_ArchKon (KodIntSB,KodIntLD,JeKontroly)

	used for: Updating colomns in 2 tables,affter that used for (10) Prehľad o somatických bunkách 
******************************************/

declare @od int;
declare @do int;
declare @kod as int;

declare hranica cursor for
select OdSB,DoSB,KodIntSB
from CC_SBintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update CM_Kontroly
	set KodIntSB=@kod
	where BUNECELEM between @od and @do
	
	
	update CM_ArchKon
	set KodIntSB=@kod
	where BUNECELEM between @od and @do
	fetch next from hranica into @od,@do,@kod;
end	

close hranica
deallocate hranica


declare hranica cursor for
select OdLD,DoLD,KodIntLD
from dbo.CC_LDintervaly

open hranica 
fetch next from hranica into @od,@do,@kod

while @@FETCH_STATUS=0
begin
	update CM_Kontroly
	set KodIntLD=@kod
	where LAKTDNI between @od and @do
	
	
	update CM_ArchKon
	set KodIntLD=@kod
	where LAKTDNI between @od and @do

	update CM_Kontroly
	set KodIntSB=null
	where BUNECELEM is null

	update CM_ArchKon
	set KodIntSB=null
	where BUNECELEM is null

	fetch next from hranica into @od,@do,@kod;
end	

close hranica
deallocate hranica

update a
set a.JeKontroly=1
from CM_ArchKon a
inner join CM_Kontroly b
on a.CISKRAVY=b.CISKRAVY
	and a.DATKONTR=b.DATKONTR

update CM_ArchKon
set JeKontroly=0
where  JeKontroly is null

END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description: uprava a export CP_BLUP_PROOFC do DBF (PLEMENO H)
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFC_H]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select tph from CP_BLUP_K95) * m305) / (m305 + (select mh from CP_BLUP_K95)),
			bperc = (100 * b305 - (select bph from CP_BLUP_K95) * m305) / (m305 + (select mh from CP_BLUP_K95))

		SELECT --p.cislo   
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31')

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95 SET
		M0H = (select m305 from #temp_stdevS_1),
		M1H = (select m100 from #temp_stdevS_1),
		M2H = (select m200 from #temp_stdevS_1),
		M3H = (select m300 from #temp_stdevS_1),
		M4H = (select mp from #temp_stdevS_1),
		T0H = (select t305 from #temp_stdevS_1),
		T1H = (select t100 from #temp_stdevS_1),
		T2H = (select t200 from #temp_stdevS_1),
		T3H = (select t300 from #temp_stdevS_1),
		T4H = (select tp from #temp_stdevS_1),
		B0H = (select b305 from #temp_stdevS_1),
		B1H = (select b100 from #temp_stdevS_1),
		B2H = (select b200 from #temp_stdevS_1),
		B3H = (select b300 from #temp_stdevS_1),
		B4H = (select bp from #temp_stdevS_1),
		TPERH = (select tperc from #temp_stdevS_1),
		BPERH = (select bperc from #temp_stdevS_1)


	-- vypocet smerodajnych odchylok na zakladnu - rok 2010
	SELECT --p.cislo 
		430 as ssmh,
		15 as ssth,
		12 as ssbh,
		0.18 as sstph,
		0.10 as ssbph,      
		stdev(m305) as sm0h,
		stdev(m100) as sm1h,
		stdev(m200) as sm2h, 
		stdev(m300) as sm3h, 
		stdev(mp) as sm4h, 
		stdev(t305) as st0h, 
		stdev(t100) as st1h, 
		stdev(t200) as st2h, 
		stdev(t300) as st3h, 
		stdev(tp) as st4h, 
		stdev(b305) as sb0h, 
		stdev(b100) as sb1h, 
		stdev(b200) as sb2h, 
		stdev(b300) as sb3h, 
		stdev(bp) as sb4h, 
		stdev(tperc) as stperch, 
		stdev(bperc) as sbperch
		into #temp_stdevC
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31')

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + ' ' + ISNULL(k.PL2, '') + ' ' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + ' ' + ISNULL(k.PL3, '') 
							+ ' ' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + ' ' + ISNULL(k.PL4, '') + ' ' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + ' ' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevC)) * (select ssmh from #temp_stdevC) AS M305, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevC) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1H from CP_BLUP_K95)) / (select sm1h from #temp_stdevC)) * (select ssmh from #temp_stdevC) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevC)) * (select ssth from #temp_stdevC) AS T305, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevC) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1H from CP_BLUP_K95)) / (select st1h from #temp_stdevC)) * (select ssth from #temp_stdevC) AS T100, 
		((p.tperc - (select TPERH from CP_BLUP_K95)) / (select stperch from #temp_stdevC)) * (select sstph from #temp_stdevC) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevC)) * (select ssbh from #temp_stdevC) AS B305, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevC) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1H from CP_BLUP_K95)) / (select sb1h from #temp_stdevC)) * (select ssbh from #temp_stdevC) AS B100, 
		((p.bperc - (select BPERH from CP_BLUP_K95)) / (select sbperch from #temp_stdevC)) * (select ssbph from #temp_stdevC) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo
	ORDER BY p.cislo

	DELETE FROM CP_BLUP_KRAVYTDM 
	WHERE plem = 'H'

	INSERT INTO CP_BLUP_KRAVYTDM
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMH from CP_BLUP_K95) + t305 * (select EWTH from CP_BLUP_K95) + b305 * (select EWBH from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		'H'
	FROM #temp_vysledny

END
go


/***masova rocenka - sumarne vysledky za plemen - podla plemien
Masova rocenka 2017 - str.28**/
 CREATE procedure [dbo].[Roc_MPHD_1]
	
	@datumOd date ,
	@datumDo date 

as 
begin

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
delete from Roc_MPHD_Tab_1 where rok = DATEPART(YEAR, @datumOd)

declare @zvierata table 
	(
		ciszvierata varchar(14),
		datvaz date,
		dnivaz int,
		hmot float,
		dniprepoc int, 
		hmotprepoc float,
		hmotnar float,
		prirast float,
		typplem varchar(3),
		plemeno varchar(10),
		pohlavie varchar(2),
		pohl varchar (7),
		datvyr date, 
		dovvyr varchar(2)
	)

	Insert into @zvierata 
	(ciszvierata ,  datvaz, dnivaz, hmot, dniprepoc, hmotprepoc, hmotnar, prirast, typplem, plemeno, pohlavie, pohl, datvyr, dovvyr)

	Select v.CISTELATA as ciszvierata, v.DATVAZ, v.DNIVAZ, v.hmot, v.DNIPREPOC, v.HMOTPREPOC, t.HMOTNAR, v.ZIVPRIRPREPOC, t.TYPPLEM,
			case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when t.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when t.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when t.TYPPLEM = '131' then 'Gal'
				when t.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when t.TYPPLEM = '151' then 'High'
				when t.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when t.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when t.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when t.TYPPLEM in ('51','53','54') then 'Pin'
				when t.TYPPLEM in ('11','13','14') then 'Slst'
				
				when ((t.TYPPLEM is null and t.PL1 is null) 
						or (t.TYPPLEM is null and t.PL1<>'X') 
						or (t.TYPPLEM not in ('111','112','113','114','115',
											'121','122','123','124','125', 
											'131', 
											'151', 
											'161','162','163','164','165', 
											'171','172','173','174','175', 
											'201','202','203','204','205',
											'191','192','193','194','195', 
											'51','53','54', 
											'11','13','14' ) and t.PL1<>'X')) then 'Osta'
				----when ((t.TYPPLEM is null and t.PL1 is null) 
				----				or (t.TYPPLEM is null and t.PL1<>'X') 
				----				or (t.TYPPLEM not in (--'101','102','103','104','105',
				----										'111','112','113','114','115',
				----										'121','122','123','124','125', 
				----										'131',
				----										'141','142','143','144','145', 
				----										'151', 
				----										'161','162','163','164','165', 
				----										'171','172','173','174','175', 
				----										--'181',
				----										'201','202','203','204','205',
				----										--'191','192','193','194','195', 
				----										'51','53','54', 
				----										'11','13','14') and t.PL1<>'X')) then 'Osta'
				when t.PL1 = 'X' then 'Nez'
			end as plemeno,
			t.POHLAVIE,
			case when t.pohlavie in ('01','11','31','41','51','81') then 'byk'
					when t.pohlavie in ('02','22','32','42','52','82') then 'jal'
				end as pohl,
			t.DATVYR, t.DOVVYR 
	from CM_Vazenia as v
		left outer join CM_Telata as t on v.CISTELATA = t.CISTELATA
		left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVATEL
	
	where DATVAZ >= @datumOd and DATVAZ <= @datumDo
		and v.CISTELATA not in (select CISKRAVY from CM_Krava)
		and (t.DOVVYR is null or (t.DATVYR >= @datumOd and t.DATVYR <= @datumDo))
		and t.PRIZNAKKU = '2'
		and ch.TYPZV= 1
		and ch.chov not in ('010','700', '699') 
		and left(ch.chov,1) ='7'
		and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
			and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
											 where SPVYKON= '4' and PRIZNAK in ('01','99') /*AND TECHUSMD <> '00'*/)
	union 
		Select v.CISTELATA, v.DATVAZ, v.DNIVAZ, v.hmot, v.DNIPREPOC, v.HMOTPREPOC, t.HMOTNAR, v.ZIVPRIRPREPOC, k.TYPPLEM,
			case --when t.TYPPLEM in ('101','102','103','104','105') then 'BBM' 
				when t.TYPPLEM in ('111','112','113','114','115') then 'AA'
				when t.TYPPLEM in ('121','122','123','124','125') then 'BdA'
				when t.TYPPLEM = '131' then 'Gal'
				when t.TYPPLEM in ('141','142','143','144','145') then 'HEM'
				when t.TYPPLEM = '151' then 'High'
				when t.TYPPLEM in ('161','162','163','164','165') then 'Char'
				when t.TYPPLEM in ('171','172','173','174','175') then 'Lim'
				--when t.TYPPLEM = '181' then 'SDM'
				when t.TYPPLEM in ('201','202','203','204','205') then 'Sim_maso'
				--when t.TYPPLEM in ('191','192','193','194','195') then 'Piem'
				when t.TYPPLEM in ('51','53','54') then 'Pin'
				when t.TYPPLEM in ('11','13','14') then 'Slst'
				when ((t.TYPPLEM is null and t.PL1 is null) 
						or (t.TYPPLEM is null and t.PL1<>'X') 
						or (t.TYPPLEM not in ('111','112','113','114','115',
											'121','122','123','124','125', 
											'131', 
											'151', 
											'161','162','163','164','165', 
											'171','172','173','174','175', 
											'201','202','203','204','205',
											'191','192','193','194','195', 
											'51','53','54', 
											'11','13','14' ) and t.PL1<>'X')) then 'Osta'
				----when ((t.TYPPLEM is null and t.PL1 is null) 
				----				or (t.TYPPLEM is null and t.PL1<>'X') 
				----				or (t.TYPPLEM not in (--'101','102','103','104','105',
				----										'111','112','113','114','115',
				----										'121','122','123','124','125', 
				----										'131',
				----										'141','142','143','144','145', 
				----										'151', 
				----										'161','162','163','164','165', 
				----										'171','172','173','174','175', 
				----										--'181',
				----										'201','202','203','204','205',
				----										--'191','192','193','194','195', 
				----										'51','53','54', 
				----										'11','13','14') and t.PL1<>'X')) then 'Osta'
				when t.PL1 = 'X' then 'Nez'
			end as plemeno,
			 k.POHLAVIE,
			 case when k.pohlavie in ('01','11','31','41','51','81') then 'byk'
				when k.pohlavie in ('02','22','32','42','52','82') then 'jal'
				end as pohl,
			  k.DATVYR, k.DOVVYR 
		from CM_Vazenia as v
			left outer join CM_Krava as k on k.CISKRAVY = v.CISTELATA
			left outer join CM_Telata as t on v.CISTELATA = t.CISTELATA
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = t.CHOVATEL
		where v.DATVAZ >= @datumOd and v.DATVAZ <= @datumDo
			--and v.DNIVAZ is not null
			and (k.DOVVYR is null or (k.DATVYR >= @datumOd and k.DATVYR <= @datumDo))
			and k.PRIZNAKKU = '2'
			and ch.TYPZV= 1
			and ch.chov not in ('010','700', '699') 
			and left(ch.chov,1) ='7'
			and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
				and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
												 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
		order by HMOT
		
	declare @ziv_prir table
	(
		plemeno varchar(9),
		pohl varchar(3),
		dniprepoc int,
		prirBEZobmedz float
	)
	insert @ziv_prir
		select plemeno, pohl, dniprepoc , avg(prirast)as prirBEZobmedz from @zvierata where prirast > 0 and dniprepoc is not null and pohl='byk'
		group by plemeno,pohl, dniprepoc
	union 
		select plemeno, pohl, dniprepoc , avg(prirast)as prirBEZobmedz from @zvierata where prirast > 0 and dniprepoc is not null and pohl='jal'
		group by plemeno,pohl, dniprepoc
	union 
		select 'SR' as plemeno, pohl, dniprepoc , avg(prirast)as prirBEZobmedz from @zvierata where prirast > 0 and dniprepoc is not null and pohl='byk'
		group by pohl, dniprepoc
	union 
		select 'SR' as plemeno, pohl, dniprepoc , avg(prirast)as prirBEZobmedz from @zvierata where prirast > 0 and dniprepoc is not null and pohl='jal'
		group by pohl, dniprepoc

		--select * from @ziv_prir

		
/******************** 
vypocet pre g/den ....vo fande je obmedzenie, ze zivotnyprirastok prepocitany nesmie byt vacsi ako 1200, ked sme si dali aj tu obmedzenie, ale na 1300, 
		tak boli menej zhodne vysledky s rocenkou ako ked sme nedali ziadne obmedzenie...preto sme sa s p.Kobrtkovou a p.Rosincinovou zhodli, 
		ze to bude bez obmedzenia
**********************/
		/*
		select avg(prirast)as prirBEZobmedz from @zvierata where prirast > 0 and dniprepoc = '120' and pohl='byk' --and plemeno = 'Sim_maso'
		select avg(prirast)as prirSobmedz from @zvierata where prirast > 0 and prirast < 1300 and dniprepoc = '120' and pohl='byk'

		select avg(prirast)as prirBEZobmedz  from @zvierata where prirast > 0 and dniprepoc = '120' and pohl='jal' --and plemeno = 'Sim_maso'
		select avg(prirast)as prirSobmedz from @zvierata where prirast > 0 and prirast < 1300 and dniprepoc = '120' and pohl='jal'

		select avg(prirast)as prirBEZobmedz_Sim_maso  from @zvierata where prirast > 0 and dniprepoc = '120' and pohl='byk' and plemeno = 'Sim_maso'
		select avg(prirast)as prirSobmedz_Sim_maso  from @zvierata where prirast > 0 and prirast < 1300 and dniprepoc = '120' and pohl='byk'

		select avg(prirast)as prirBEZobmedz_Sim_maso from @zvierata where prirast > 0 and dniprepoc = '120' and pohl='jal' and plemeno = 'Sim_maso'
		select avg(prirast)as prirSobmedz_Sim_maso from @zvierata where prirast > 0 and prirast < 1300 and dniprepoc = '120' and pohl='jal'
		*/
	
	declare @sumar table
		(
		plemeno varchar(10),
		jal_120ks int,
		byk_120ks int,
		jal_210ks int,
		byk_210ks int,
		jal_365ks int,
		byk_365ks int,
		jal_500ks int,
		byk_500ks int,
		jal_120kg float,
		jal_120_vaha int,
		byk_120kg float,
		byk_120_vaha int,
		jal_210kg float,
		jal_210_vaha int,
		byk_210kg float,
		byk_210_vaha int,
		jal_365kg float,
		jal_365_vaha int,
		byk_365kg float,
		byk_365_vaha int,
		jal_500kg float,
		jal_500_vaha int,
		byk_500kg float,
		byk_500_vaha int,
		jal_g_den_120 float, 
		byk_g_den_120 float, 
		jal_g_den_210 float, 
		byk_g_den_210 float, 
		jal_g_den_365 float, 
		byk_g_den_365 float, 
		jal_g_den_500 float, 
		byk_g_den_500 float
		)

	insert into @sumar (plemeno,jal_120ks, byk_120ks,jal_210ks ,byk_210ks ,jal_365ks ,byk_365ks ,jal_500ks, byk_500ks, 
						jal_120kg, jal_120_vaha, byk_120kg, byk_120_vaha, jal_210kg, jal_210_vaha, byk_210kg, byk_210_vaha, jal_365kg, jal_365_vaha, byk_365kg, byk_365_vaha, jal_500kg, jal_500_vaha, byk_500kg, byk_500_vaha,
						jal_g_den_120, byk_g_den_120, jal_g_den_210, byk_g_den_210, jal_g_den_365, byk_g_den_365, jal_g_den_500, byk_g_den_500)
		select 'AA' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'AA' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'AA' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'AA' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'AA' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'AA' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'AA' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'AA' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'AA' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_120kg,
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end)  as jal_120_vaha,
				avg(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_120kg,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_120_vaha,
				avg(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_210kg,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_210_vaha,
				avg(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_210kg,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'AA' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'AA' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'AA') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'AA') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'AA') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'AA') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'AA') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'AA') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'AA') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'AA') as byk_g_den_500
		from @zvierata 
	/*union 
		select 'BBM' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BBM' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BBM' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BBM' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BBM' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BBM' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BBM' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BBM' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BBM' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BBM' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BBM' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'BBM') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'BBM') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'BBM') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'BBM') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'BBM') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'BBM') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'BBM') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'BBM') as byk_g_den_500
		from @zvierata */
	union 
		select 'BdA' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BdA' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BdA' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BdA' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BdA' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BdA' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BdA' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BdA' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BdA' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'BdA' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'BdA' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'BdA') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'BdA') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'BdA') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'BdA') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'BdA') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'BdA') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'BdA') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'BdA') as byk_g_den_500
		from @zvierata 
	union 
		select 'HEM' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'HEM' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'HEM' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'HEM' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'HEM' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'HEM' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'HEM' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'HEM' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'HEM' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'HEM' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'HEM' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'HEM') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'HEM') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'HEM') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'HEM') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'HEM') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'HEM') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'HEM') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'HEM') as byk_g_den_500
		from @zvierata 
	union 
		select 'Gal' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Gal' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Gal' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Gal' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Gal' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Gal' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Gal' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Gal' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Gal' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Gal' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Gal' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Gal') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Gal') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Gal') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Gal') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Gal') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Gal') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Gal') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Gal') as byk_g_den_500
		from @zvierata 
	union 
		select 'High' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'High' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'High' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'High' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'High' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'High' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'High' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'High' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'High' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'High' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'High' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'High') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'High') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'High') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'High') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'High') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'High') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'High') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'High') as byk_g_den_500
		from @zvierata 
	union 
		select 'Char' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Char' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Char' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Char' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Char' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Char' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Char' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Char' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Char' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Char' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Char' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Char') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Char') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Char') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Char') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Char') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Char') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Char') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Char') as byk_g_den_500
		from @zvierata 
	union 
		select 'Lim' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Lim' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Lim' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Lim' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Lim' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Lim' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Lim' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Lim' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Lim' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Lim' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Lim' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Lim') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Lim') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Lim') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Lim') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Lim') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Lim') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Lim') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Lim') as byk_g_den_500
		from @zvierata 
	/*union	
		select 'SDM' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'SDM' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'SDM' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'SDM' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'SDM' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'SDM' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'SDM' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'SDM' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'SDM' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'SDM' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'SDM' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'SDM') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'SDM') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'SDM') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'SDM') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'SDM') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'SDM') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'SDM') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'SDM') as byk_g_den_500
		from @zvierata */
	union 
		select 'Sim_maso' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Sim_maso' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Sim_maso' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Sim_maso' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Sim_maso' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Sim_maso' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Sim_maso' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Sim_maso' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Sim_maso' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Sim_maso' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Sim_maso' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Sim_maso') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Sim_maso') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Sim_maso') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Sim_maso') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Sim_maso') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Sim_maso') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Sim_maso') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Sim_maso') as byk_g_den_500
		from @zvierata 
	/*union 
		select 'Piem' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Piem' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Piem' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Piem' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Piem' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Piem' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Piem' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Piem' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Piem' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Piem' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Piem' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Piem') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Piem') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Piem') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Piem') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Piem') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Piem') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Piem') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Piem') as byk_g_den_500
		from @zvierata */
	union 
		select 'Pin' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Pin' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Pin' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Pin' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Pin' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Pin' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Pin' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Pin' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Pin' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Pin' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Pin' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Pin') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Pin') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Pin') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Pin') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Pin') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Pin') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Pin') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Pin') as byk_g_den_500
		from @zvierata 
	union 
		select 'Slst' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Slst' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Slst' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Slst' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Slst' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Slst' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Slst' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Slst' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Slst' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Slst' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Slst' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Slst') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Slst') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Slst') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Slst') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Slst') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Slst') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Slst') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Slst') as byk_g_den_500
		from @zvierata 
	union 
		select 'Osta' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Osta' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Osta' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Osta' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Osta' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Osta' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Osta' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Osta' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Osta' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Osta' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Osta' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Osta') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Osta') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Osta') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Osta') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Osta') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Osta') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Osta') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Osta') as byk_g_den_500
		from @zvierata 
	union 
		select 'Nez' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Nez' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Nez' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Nez' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Nez' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Nez' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Nez' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Nez' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Nez' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' and plemeno = 'Nez' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' and plemeno = 'Nez' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'Nez') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'Nez') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'Nez') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'Nez') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'Nez') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'Nez') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'Nez') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'Nez') as byk_g_den_500
		from @zvierata 
	union 
		select 'SR' as plemeno, 
				sum(case when dniprepoc = '120' and pohl= 'jal' then 1 else 0 end) as jal_120ks,
				sum(case when dniprepoc = '120' and pohl= 'byk' then 1 else 0 end) as byk_120ks,
				sum(case when dniprepoc = '210' and pohl= 'jal' then 1 else 0 end) as jal_210ks,
				sum(case when dniprepoc = '210' and pohl= 'byk' then 1 else 0 end) as byk_210ks,
				sum(case when dniprepoc = '365' and pohl= 'jal' then 1 else 0 end) as jal_365ks,
				sum(case when dniprepoc = '365' and pohl= 'byk' then 1 else 0 end) as byk_365ks,
				sum(case when dniprepoc = '500' and pohl= 'jal' then 1 else 0 end) as jal_500ks,
				sum(case when dniprepoc = '500' and pohl= 'byk' then 1 else 0 end) as byk_500ks, 
				avg( case when dniprepoc = '120' and pohl= 'jal' then hmotprepoc end) as jal_120kg,
				sum( case when dniprepoc = '120' and pohl= 'jal' then hmotprepoc end) as jal_120_vaha,
				avg( case when dniprepoc = '120' and pohl= 'byk' then hmotprepoc end) as byk_120kg,
				sum( case when dniprepoc = '120' and pohl= 'byk' then hmotprepoc end) as byk_120_vaha,
				avg( case when dniprepoc = '210' and pohl= 'jal' then hmotprepoc end) as jal_210kg,
				sum( case when dniprepoc = '210' and pohl= 'jal' then hmotprepoc end) as jal_210_vaha,
				avg( case when dniprepoc = '210' and pohl= 'byk' then hmotprepoc end) as byk_210kg,
				sum( case when dniprepoc = '210' and pohl= 'byk' then hmotprepoc end) as byk_210_vaha,
				avg( case when dniprepoc = '365' and pohl= 'jal' then hmotprepoc end) as jal_365kg,
				sum( case when dniprepoc = '365' and pohl= 'jal' then hmotprepoc end) as jal_365_vaha,
				avg( case when dniprepoc = '365' and pohl= 'byk' then hmotprepoc end) as byk_365kg,
				sum( case when dniprepoc = '365' and pohl= 'byk' then hmotprepoc end) as byk_365_vaha,
				avg( case when dniprepoc = '500' and pohl= 'jal' then hmotprepoc end) as jal_500kg,
				sum( case when dniprepoc = '500' and pohl= 'jal' then hmotprepoc end) as jal_500_vaha,
				avg( case when dniprepoc = '500' and pohl= 'byk' then hmotprepoc end) as byk_500kg,
				sum( case when dniprepoc = '500' and pohl= 'byk' then hmotprepoc end) as byk_500_vaha,
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'jal' and plemeno = 'SR') as jal_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '120' and pohl= 'byk' and plemeno = 'SR') as byk_g_den_120, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'jal' and plemeno = 'SR') as jal_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '210' and pohl= 'byk' and plemeno = 'SR') as byk_g_den_210, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'jal' and plemeno = 'SR') as jal_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '365' and pohl= 'byk' and plemeno = 'SR') as byk_g_den_365, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'jal' and plemeno = 'SR') as jal_g_den_500, 
				(select prirBEZobmedz from @ziv_prir where dniprepoc = '500' and pohl= 'byk' and plemeno = 'SR') as byk_g_den_500
		from @zvierata 
			

		----select * from @sumar

/****vaha pri narodeni***/
	declare @pri_nar table
		(
		cistelata varchar(14),
		hmotnar float,
		--typplem varchar(3),
		plemeno varchar(10),
		pohl varchar(7),
		datvyr date, 
		dovvyr varchar(2)
	)
	insert @pri_nar
	select distinct ciszvierata, hmotnar, plemeno, pohl, DATVYR, DOVVYR
	from @zvierata
	where hmotnar is not null and hmotnar > 0
	and dniprepoc is not null
	

	declare @pri_nar_jal table
		(
		plemeno varchar(10),
		jal_pocet int,
		jal_vaha int 
		)

	declare @pri_nar_byk table
		(
		plemeno varchar(10),
		byk_pocet int,
		byk_vaha int
		)
		 
	insert into @pri_nar_jal
		(plemeno, jal_pocet,  jal_vaha)
		select plemeno, 
				sum (case when pohl = 'jal' then 1 else 0 end) as jal_pocet, 
				case when pohl = 'jal' then avg(hmotnar) end as jal_vaha
			from @pri_nar
				
		group by plemeno, pohl
	union 
		select 'SR' as plemeno, 
				sum (case when pohl = 'jal' then 1 else 0 end) as jal_pocet, 
				case when pohl = 'jal' then avg(hmotnar) end as jal_vaha
			from @pri_nar
		group by pohl
		
	delete from @pri_nar_jal where jal_vaha is null
	--select * from @pri_nar_jal

	insert into @pri_nar_byk
		(plemeno, byk_pocet, byk_vaha)
		select plemeno, 
				sum (case when pohl = 'byk' then 1 else 0 end) as byk_pocet, 
				case when pohl = 'byk' then avg(hmotnar) end as byk_vaha
			from @pri_nar
			group by plemeno, pohl
	union 
		select 'SR' as plemeno, 
				sum (case when pohl = 'byk' then 1 else 0 end) as byk_pocet, 
				case when pohl = 'byk' then avg(hmotnar) end as byk_vaha
			from @pri_nar
			group by pohl
		
	delete from @pri_nar_byk where byk_vaha is null
	--select * from @pri_nar_byk
	
	/*create table Roc_MPHD_Tab_1
	/*declare @roc_tab1 table*/
	(
		plemeno varchar(9),
		byk_nar_ks int,
		byk_nar_kg float,
		jal_nar_ks int,
		jal_nar_kg float,
		byk_120ks int,
		jal_120ks int,
		byk_210ks int,
		jal_210ks int,
		byk_365ks int,
		jal_365ks int,
		byk_500ks int,
		jal_500ks int,
		byk_120kg float,
		jal_120kg float,
		byk_210kg float,
		jal_210kg float,
		byk_365kg float,
		jal_365kg float,
		byk_500kg float,
		jal_500kg float,
		byk_g_den_120 float, 
		jal_g_den_120 float, 
		byk_g_den_210 float, 
		jal_g_den_210 float, 
		byk_g_den_365 float, 
		jal_g_den_365 float, 
		byk_g_den_500 float,
		jal_g_den_500 float, 
		rok int
	)*/
		
insert into Roc_MPHD_Tab_1
		--@roc_tab1
		(
		plemeno, byk_nar_ks, byk_nar_kg, jal_nar_ks, jal_nar_kg, byk_120ks, jal_120ks, byk_210ks, jal_210ks, byk_365ks, jal_365ks, byk_500ks, jal_500ks, byk_120kg, jal_120kg, byk_210kg, jal_210kg, byk_365kg, jal_365kg, byk_500kg, jal_500kg,
		byk_g_den_120, jal_g_den_120, byk_g_den_210, jal_g_den_210, byk_g_den_365, jal_g_den_365, byk_g_den_500, jal_g_den_500, rok 
		)
	select s.plemeno, b.byk_pocet as byk_nar_ks, b.byk_vaha as byk_nar_kg,
		j.jal_pocet as jal_nar_ks, j.jal_vaha as jal_nar_kg,
		s.byk_120ks, s.jal_120ks, s.byk_210ks, s.jal_210ks, s.byk_365ks, s.jal_365ks, s.byk_500ks, s.jal_500ks, 
		s.byk_120kg, s.jal_120kg, s.byk_210kg, s.jal_210kg, s.byk_365kg, s.jal_365kg, s.byk_500kg, s.jal_500kg, 
		s.byk_g_den_120, s.jal_g_den_120, s.byk_g_den_210, s.jal_g_den_210, s.byk_g_den_365, s.jal_g_den_365, s.byk_g_den_500, s.jal_g_den_500,  
		DATEPART(YEAR, @datumOd) as rok
	from @sumar  as s
		left outer join @pri_nar_byk as b on s.plemeno = b.plemeno
		left outer join @pri_nar_jal as j on s.plemeno = j.plemeno

End
go


CREATE PROCEDURE [dbo].[C_Zoznam_teliat_za_mesiac_header]

	@CHOV [varchar](9) = null

AS

BEGIN



SELECT distinct
	a.KRAJ+a.OKRES+a.PODNIK+a.chov as chov,
		a.nazov as chov_nazov,
		b.NAZOV as podnik_nazov,
		c.NAZOV as kraj_nazov,		
		d.NAZOV as okres_nazov,
		a.OBEC as obec_nazov,	
		d.REGION as Region,
		e.NAZOV as region_nazov

INTO #TempTable

FROM NM_CHOVMAS a

	LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
	LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
	LEFT JOIN NC_REGION e ON (e.REG = d.REGION)


WHERE a.ZRUS is null --and b.ZRUS is null
and a.TYPZV = 1 
and a.KRAJ+a.OKRES+a.PODNIK+a.chov like @CHOV+'%' or @CHOV is null 

END

SELECT * FROM #TempTable


go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_telata_3B_CHOV] 
	@ParChov varchar(9)	
AS
BEGIN
	
	delete plis.dbo.cp_meso_telata_3b_1 where chovatel = @ParChov

	declare @c as varchar(9);
	declare @y as varchar(4);
	declare @m as varchar(2);

	declare @m1k as int;
	declare @m1j as int;
	declare @m1s as int;

	declare @m2k as int;
	declare @m2j as int;
	declare @m2s as int;

	declare @m3k as int;
	declare @m3j as int;
	declare @m3s as int;

	declare @m4k as int;
	declare @m4j as int;
	declare @m4s as int;

	declare @m5k as int;
	declare @m5j as int;
	declare @m5s as int;

	declare @m6k as int;
	declare @m6j as int;
	declare @m6s as int;

	declare @m7k as int;
	declare @m7j as int;
	declare @m7s as int;

	declare @m8k as int;
	declare @m8j as int;
	declare @m8s as int;

	declare @m9k as int;
	declare @m9j as int;
	declare @m9s as int;

	declare @m10k as int;
	declare @m10j as int;
	declare @m10s as int;

	declare @m11k as int;
	declare @m11j as int;
	declare @m11s as int;

	declare @m12k as int;
	declare @m12j as int;
	declare @m12s as int;

 
	declare yearT cursor for
	select distinct  convert(varchar,YEAR(DATNAR)) as rok
	from plis.[dbo].[View_CP_meso_zoznamTelata]
	where chovatel=@ParChov

	open yearT;
	fetch next from yearT into @y;

	while @@FETCH_STATUS=0
	begin 
		
		set @m1k=0;
			set @m1j=0;
			set @m1s=0;

			set @m2k=0;
			set @m2j=0;
			set @m2s=0;

			set @m3k=0;
			set @m3j=0;
			set @m3s=0;

			set @m4k=0;
			set @m4j=0;
			set @m4s=0;

			set @m5k=0;
			set @m5j=0;
			set @m5s=0;

			set @m6k=0;
			set @m6j=0;
			set @m6s=0;

			set @m7k=0;
			set @m7j=0;
			set @m7s=0;

			set @m8k=0;
			set @m8j=0;
			set @m8s=0;

			set @m9k=0;
			set @m9j=0;
			set @m9s=0;

			set @m10k=0;
			set @m10j=0;
			set @m10s=0;

			set @m11k=0;
			set @m11j=0;
			set @m11s=0;

			set @m12k=0;
			set @m12j=0;
			set @m12s=0;

		declare monthT cursor for
			select distinct  convert(varchar,month(DATNAR)) as montha
			from plis.[dbo].[View_CP_meso_zoznamTelata]
			where chovatel=@ParChov
			and Year(DATNAR)=@y

		open monthT
		fetch next from monthT into @m

		while @@FETCH_STATUS=0
		begin 
			
			

			if(@m=1)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m1s,@m1j,@m1k;

				close t
				deallocate t
			end

			if(@m=2)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m2s,@m2j,@m2k;

				close t
				deallocate t
			end

			if(@m=3)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m3s,@m3j,@m3k;

				close t
				deallocate t
			end

			if(@m=4)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m4s,@m4j,@m4k;

				close t
				deallocate t
			end


			if(@m=5)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m5s,@m5j,@m5k;

				close t
				deallocate t
			end


			if(@m=6)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m6s,@m6j,@m6k;

				close t
				deallocate t
			end


			if(@m=7)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m7s,@m7j,@m7k;

				close t
				deallocate t
			end


			if(@m=8)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m8s,@m8j,@m8k;

				close t
				deallocate t
			end

			if(@m=9)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m9s,@m9j,@m9k;

				close t
				deallocate t
			end

			if(@m=10)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m10s,@m10j,@m10k;

				close t
				deallocate t
			end

			if(@m=11)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m11s,@m11j,@m11k;

				close t
				deallocate t
			end


			if(@m=12)
			begin
				declare  t cursor for
				select distinct (v1.pocet) as pocV,v2.pocet as pocJ,v3.pocet as pocK
				from plis.dbo.CM_Telata as t
				left join plis.[dbo].[View_CP_Meso_3B_3cast] as v1
				on t.CHOVATEL=v1.chovatel 
				left join plis.[dbo].[View_CP_Meso_3B_2cast] as v2
				on t.chovatel=v2.chovatel and v1.mesac=v2.mesac and v1.rok=v2.rok
				left join plis.[dbo].[View_CP_Meso_3B_1cast] as v3
				on t.chovatel=v3.chovatel and v1.mesac=v3.mesac and v1.rok=v3.rok

				where t.chovatel=@ParChov
				and v1.rok=@y
				and v1.mesac=@m

				open t
				fetch next from t into @m12s,@m12j,@m12k;

				close t
				deallocate t
			end
			fetch next from monthT into @m
		end

		insert into plis.dbo.cp_meso_telata_3b_1 values (
															@ParChov,
															@y,
															'Krava',
															@m1k,
															@m2k,
															@m3k,
															@m4k,
															@m5k,
															@m6k,
															@m7k,
															@m8k,
															@m9k,
															@m10k,
															@m11k,
															@m12k
														)
			insert into plis.dbo.cp_meso_telata_3b_1 values (
															@ParChov,
															@y,
															'Jalovica',
															@m1j,
															@m2j,
															@m3j,
															@m4j,
															@m5j,
															@m6j,
															@m7j,
															@m8j,
															@m9j,
															@m10j,
															@m11j,
															@m12j
														)
	
	insert into plis.dbo.cp_meso_telata_3b_1 values (
															@ParChov,
															@y,
															'Spolu',
															@m1s,
															@m2s,
															@m3s,
															@m4s,
															@m5s,
															@m6s,
															@m7s,
															@m8s,
															@m9s,
															@m10s,
															@m11s,
															@m12s
														)

			
		close monthT
		deallocate monthT
		fetch next from yearT into @y;
	end

	close yearT
	deallocate yearT

END

go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_13]
    @rok varchar(4),
	@Plem_typ varchar(6)
	
	
as
begin

	
	select 
		Por
      ,upper(Okres) as Okres
      ,Podnik
      ,upper(Mastal) as Mastal
      ,Mastal_cis
      ,CharUst
      ,Prev_plem
      ,Poc_n_lakt
      ,LaktDni
      ,mlieko
      ,tuk_P
      ,tuk_KG
      ,bielk_P
      ,bielk_KG
      ,medziobd
      ,vek1ot_Mes
      ,vek1ot_Den
      ,rok
      ,Plem_typ
	  ,vek_otel	from dbo.Roc_MLHD_Tab_13 as z
	where   z.rok = @rok and z. Plem_typ=@Plem_typ
end
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_KravyPodlaRokovALakt]	
AS
BEGIN
	
	/*******************************************

		using table:CM_Krava

		changing table:CP_StadaPodlaVeku

		used for: Mlieko Krava -> (4) Zloženie stáda podľa veku a prebiehajúcej laktácie 

	******************************************/

	TRUNCATE TABLE [PLIS].[dbo].CP_StadaPodlaVeku

	SET NOCOUNT ON;
	declare @chov varchar(9);
	set @chov='';
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=0;
	set @pocet=0;
	

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;

	declare  chovately cursor 
	for SELECT  DISTINCT     CHOVATEL
		FROM    dbo.CM_Krava AS k
		WHERE    (PRIZNAKKU = '1') AND (DOVVYR IS NULL)
		GROUP BY CHOVATEL

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					--print @chov;
				
						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt1 into @pocet,@l
						end
						set @rok=1;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=2;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt2 into @pocet,@l
						end
						set @rok=2;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt3 into @pocet,@l
						end
						set @rok=3;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt4 
						fetch next from lakt4 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt4 into @pocet,@l
						end
						set @rok=4;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt5 
						fetch next from lakt5 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=5;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt5 into @pocet,@l
						end
						set @rok=5;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt6 
						fetch next from lakt6 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt6 into @pocet,@l
						end
						set @rok=6;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt7 into @pocet,@l
						end
						set @rok=7;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt8 into @pocet,@l
						end
						set @rok=8;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt9 into @pocet,@l
						end
						set @rok=9;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt10 into @pocet,@l
						end
						set @rok=10;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt11 into @pocet,@l
						end
						set @rok=11;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt12 into @pocet,@l
						end
						set @rok=12;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt13 into @pocet,@l
						end
						set @rok=13;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 14 and 14.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					FETCH NEXT FROM chovately INTO @chov;
			end

			--print @count;

			close chovately;
			deallocate chovately;
    
END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description:	Import dat o suboru ACCC pre upravu a export do DBF
-- =============================================
CREATE PROCEDURE [dbo].[C_blupACCC]

AS
BEGIN

	declare @fileData nvarchar(max)
	declare @filepath varchar(256) = 'e:\rozborak\data\blup\h\'
	declare @filename varchar(10) = 'accc'
	declare @dlzkariadka int = 48
	declare @exitstatus int
	declare @riadok varchar(1024)

declare
	@acccdata_h table
	(
		cislo varchar(15),
		nd decimal(6,0),
		nr decimal(6,0),
		relm decimal(7,4),
		relt decimal(7,4),
		relb decimal(7,4)
	)

	-- ACCS HOL
	-- ziskanie samotnych dat suboru
	set @fileData = (Select VstupyPLIS.dbo.CLRM_CitajSubor(@filepath,@filename))

	-- citanie a zapis dat z riadkov suboru
	while (DATALENGTH(@fileData) > 0)
	begin
		set @riadok = (select left(@fileData, @dlzkariadka))
		set @fileData = Right(@fileData, len(@fileData) - @dlzkariadka - 1)

		insert into @acccdata_h (
			cislo,
			nd,
			nr,
			relm,
			relt,
			relb)
		select 
			SUBSTRING(@riadok, 0, 15),
			SUBSTRING(@riadok, 16, 6),
			SUBSTRING(@riadok, 22, 6),
			SUBSTRING(@riadok, 28, 7),
			SUBSTRING(@riadok, 35, 7),
			SUBSTRING(@riadok, 42, 7)
	end

	select * from @acccdata_h

END
go

CREATE procedure [dbo].[Rocenka_MPHD_99_porody_graf]
	
	@rok int
	
	as
	begin
	
	select plemeno, januar_perc, februar__perc, marec__perc, april__perc, maj__perc, jun__perc, jul__perc, august__perc, 
	september__perc, oktober__perc, november__perc, december__perc, rok, nazpl, kodpl
	 
	  from Roc_MPHD_TAB99_porody_graf
	  left outer join (select kodpl, nazpl from CC_Plemena
			union select 'SR' as kodpl, 'Výsledky za Slovensko' as nazpl
			union select 'XX' as kodpl, 'Neznáme' as nazpl
			union select 'OS' as kodpl, 'Ostatné' as nazpl
			union select 'LI' as kodpl, 'Limousin' as nazpl) as plemena on plemena.kodpl=plemeno
	where @rok = rok
	order by (
	CASE plemeno

	WHEN 'AA'
	THEN 1

	WHEN 'BA'
	THEN 2
	
	WHEN 'BB'
	THEN 3

	WHEN 'GL'
	THEN 4

	WHEN 'HE'
	THEN 5

	WHEN 'HL'
	THEN 6

	WHEN 'CH'
	THEN 7

	WHEN 'LI'
	THEN 8

	WHEN 'P'
	THEN 9

	WHEN 'PI'
	THEN 10

	WHEN 'SD'
	THEN 11

	WHEN 'S'
	THEN 12
	
	WHEN 'SM'
	THEN 13
	
	WHEN 'OS'
	THEN 14

	WHEN 'XX'
	THEN 15

	WHEN 'SR'
	THEN 16 End) ASC
	
end

go

-- =============================================
-- ROVNAKA AKO [ZistiRodokmenTabulka] az na pocet generacii ktore sa vykonaju, nevola sa v plise, 
--sluzi na VNUTORNE testovacie volania (moznost menit generacie, @h <= 4, 3, ...), 
-- na zistenie rodokmena z tabulky ainbreeding, 
-- =============================================
CREATE FUNCTION [dbo].[ZistiRodokmenTabulka2](@usnecislo varchar(14))
RETURNS @tab table(rodokmen varchar(14))
AS
begin 

declare @otec varchar(14)
set @otec = ''

declare @matka varchar(14)
set @matka = ''

declare @i int;
set @i = 1;

declare @j int;
set @j = 1;

declare @h int;
set @h = 1;

declare @counter int;
set @counter = 1;

declare @pole varchar(500)
set @pole = '';


insert into @tab values (@usnecislo); --otec 1 generacia

while @h<=4 --3 generacie
	begin
	set @i = 1;
		while @i <= @j
			begin
				set @usnecislo = REPLACE(@usnecislo,'$','');
				select    @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;			
				if (@usnecislo = '              ') begin set @otec = null; set @matka = null; end; /*aby sa neprenasali cisla predosle do pola na nespravne miesto*/
				if (@otec is not null and @matka is not null)	
					begin	
						set @pole = @pole+@otec+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(@otec),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is null and @matka is not null)	
					begin				
						set @pole = @pole+'              '+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(null),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is not null and @matka is null)	
					begin				
						set @pole = @pole+@otec+','+'              '+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(@otec),(null)	
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
				if (@otec is null and @matka is null) 
					begin
						set @pole = @pole+'              '+','+'              '+','; 		
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(null),(null)		
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
			end;	
		set @j = POWER(2,@h);
	set @h = @h + 1;
	end;
return 

end;


/*
declare  @tab table(rodokmen  varchar(500))
insert into @tab values('John'),('Sarah'),('George')

select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))

select rodokmen from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))
use plis
select rodokmen from dbo.ZistiRodokmenTabulka('SK000800389967')

select rodokmen from dbo.ZistiRodokmenTabulka2('AU000297005572')

select rodokmen from dbo.ZistiRodokmenTabulka2('AU000297005572') 

SELECT * FROM dbo.ZistiRodokmenTabulka2('AU000297005572') 
 as tab where (select count(rodokmen) from dbo.ZistiRodokmenTabulka2('AU000297005572') 
  where rodokmen = tab.rodokmen) > 1

select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')
group by rodokmen having count(rodokmen) >= 2

SELECT count(rodokmen) FROM dbo.ZistiRodokmenTabulka('SK000800389967') 
as tab where (select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800389967') where rodokmen = tab.rodokmen) > 1

cely rodokmen - 'SK000005829866'
1.us cislo >>>
select * from ainbreeding where uscislo = 'SK000005829866'

select * from ainbreeding where uscislo = 'DE000101587579'
select * from ainbreeding where uscislo = 'SK000087308846'


select * from ainbreeding where uscislo = 'US000002034426'
select * from ainbreeding where uscislo = 'DE000107688741'
select * from ainbreeding where uscislo = 'SK000011005861'
select * from ainbreeding where uscislo = 'SK000049529823'


select * from ainbreeding where uscislo = 'US000001810994'
select * from ainbreeding where uscislo = 'US000011882992'
select * from ainbreeding where uscislo = 'US000001884044'
select * from ainbreeding where uscislo = 'DE000107549971'
select * from ainbreeding where uscislo = 'CA000000381318'
select * from ainbreeding where uscislo = 'CA000003354231'
select * from ainbreeding where uscislo = 'SK001676183823'
select * from ainbreeding where uscislo = 'SK000050306803'

select * from ainbreeding where uscislo = 'US000001620273'
select * from ainbreeding where uscislo = 'US000009190030'
select * from ainbreeding where uscislo = 'CA000000343514'
select * from ainbreeding where uscislo = 'US000010613001'
select * from ainbreeding where uscislo = 'US000001663473'
select * from ainbreeding where uscislo = 'US000008589641'
select * from ainbreeding where uscislo = 'CA000000363162'
select * from ainbreeding where uscislo = 'DE000107112359'
select * from ainbreeding where uscislo = 'CA000000343514'
select * from ainbreeding where uscislo = 'CA000003170800'
select * from ainbreeding where uscislo = 'CA000000290516'
select * from ainbreeding where uscislo = 'CA000002824773'
select * from ainbreeding where uscislo = 'CA000000330200'
select * from ainbreeding where uscislo = 'SK000016761823'
select * from ainbreeding where uscislo = 'SK001676183823'
select * from ainbreeding where uscislo = 'SK000085868823'


*/
go

CREATE procedure [dbo].[Roc_MPHD_Najchov]
		@podnik varchar(6),
		@datumOd date,
		@datumDo date

as
	begin
		--declare @datumOd date = '2018-01-01', @datumDo date = '2018-09-30', @podnik varchar(6) = '106704'

		if @podnik is null
			begin  /****za SR***/
				/**priem_stav_krav**/
				declare @pocetKrav_SR int
				set @pocetKrav_SR = (select count(*) as priem_stav_krav from Roc_MPHD_Tab_zaklad
														 where KrJal='K'
															 and rok = DATEPART(YEAR, @datumOd)
															 and (Datvyr is null or Datvyr >= @datumOd))


				/**priem_stav_MD**/
				declare @pocetMD_SR int
				set @pocetMD_SR = (select count(*) as priem_stav_MD from Roc_MPHD_Tab_zaklad
													 where KrJal <>'K'
														 and rok = DATEPART(YEAR, @datumOd)
														 and (Datvyr is null or Datvyr >= @datumOd))


				/****pocet_vaz_v_210_dnoch**/
				declare @pocetVazenych210_SR int
				set @pocetVazenych210_SR = (select count(*) as pocet_vaz_v_210_dnoch from Roc_MPHD_Tab_zaklad ----pocet vazenych v
																		where KrJal <> 'K'
																			and rok = DATEPART(YEAR, @datumOd)
																			and Hm210 is not null
																			and CisloZv not in (select ciskravy from CM_Krava))

				/***priem_hmot_v_210_dnoch***/
				declare @HM_210_SR int
				set @HM_210_SR = (select AVG(Hm210) as priem_hmot_v_210_dnoch from Roc_MPHD_Tab_zaklad ----pocet vazenych v
													where KrJal <> 'K'
														and rok = DATEPART(YEAR, @datumOd)
														and Hm210 is not null
														and CisloZv not in (select ciskravy from CM_Krava))


				/***Medziobdobie****/
				declare @medziobd_SR float
				set @medziobd_SR = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad
														where Porlak > '1' and KrJal='K'
															and Medziobd > 100 and  Medziobd <= 1200
															and rok = DATEPART(YEAR, @datumOd))

				/***index***/
				declare @index_SR float
				set @index_SR = @HM_210_SR*(365/ @medziobd_SR)

				insert Roc_MPHD_Tab_Najchov
				select 'SR' as KrajOkr,
							 null as Podnik,
							 null as Podnik_nazov,
							 null as Prev_plem,
							 @pocetKrav_SR,
							 @pocetMD_SR,
							 @pocetVazenych210_SR,
							 @HM_210_SR,
							 @medziobd_SR,
							 @index_SR,
							 DATEPART(year,@datumOd)

			end
		else
			begin
				/******za chovy****/
				/**priem_stav_krav**/
				declare @pocetKrav int
				set @pocetKrav = (select count(*) as priem_stav_krav from Roc_MPHD_Tab_zaklad
													where kraj + okres + podnik  = @podnik
														and KrJal='K'
														and rok = DATEPART(YEAR, @datumOd)
														and (Datvyr is null or Datvyr >= @datumOd))


				/**priem_stav_MD**/
				declare @pocetMD int
				set @pocetMD = (select count(*) as priem_stav_MD from Roc_MPHD_Tab_zaklad
												where kraj + okres + podnik  = @podnik
													and KrJal <>'K'
													and rok = DATEPART(YEAR, @datumOd)
													and (Datvyr is null or Datvyr >= @datumOd))


				/****pocet_vaz_v_210_dnoch**/
				declare @pocetVazenych210 int
				set @pocetVazenych210 = (select count(*) as pocet_vaz_v_210_dnoch from Roc_MPHD_Tab_zaklad ----pocet vazenych v
																 where kraj + okres + podnik  = @podnik
																	 and KrJal <> 'K'
																	 and rok = DATEPART(YEAR, @datumOd)
																	 and Hm210 is not null
																	 and CisloZv not in (select ciskravy from CM_Krava))

				/***priem_hmot_v_210_dnoch***/
				declare @HM_210 int
				set @HM_210 = (select AVG(Hm210) as priem_hmot_v_210_dnoch from Roc_MPHD_Tab_zaklad ----pocet vazenych v
											 where kraj + okres + podnik  = @podnik
												 and KrJal <> 'K'
												 and rok = DATEPART(YEAR, @datumOd)
												 and Hm210 is not null
												 and CisloZv not in (select ciskravy from CM_Krava))


				/***Medziobdobie****/
				declare @medziobd float
				set @medziobd = (select avg(medziobd) as Medziobdobie	from Roc_MPHD_Tab_zaklad
												 where kraj + okres + Podnik  = @podnik
													 and Porlak > '1' and KrJal='K'
													 and Medziobd > 100 and  Medziobd <= 1200
													 and rok = DATEPART(YEAR, @datumOd))

				/***index***/
				declare @index float
				set @index = @HM_210*(365/ @medziobd)

				/******podiel plemena na chove******/ ---tu sa do podielu rataju aj kravy aj mlady dobytok
				declare @KR1 int
				set @kr1 = (select sum(kr1) from Roc_MPHD_Tab_zaklad where rok = datepart(year, @datumOd) and Kraj+Okres+Podnik =  @podnik)

				declare @podiely table				-----PL1 a ich podiel v chove
				(
					Podnik varchar (6),
					PL1 varchar(3),
					KR1 float,
					PodielPerc float
				)

				Insert into @podiely
						(PL1, Podnik,  KR1, PodielPerc)

				select distinct	 z.pl1 as PL1,
													z.kraj + z.okres + z.podnik  as podnik,
													sum(z.KR1)as KR1,
													(sum(z.KR1)*100.0 / @KR1) as PodielPerc
				from Roc_MPHD_Tab_zaklad as z
				where z.kraj + z.okres + z.podnik = @podnik
					and rok = DATEPART(YEAR, @datumOd)
				group by z.PL1, z.kraj + z.okres + z.podnik


				declare @counter int,  @podniky varchar(6)
				declare @plemena table
				(
					PL1 varchar(3),
					KR1 float,
					PodielPerc float,
					Podnik varchar (9),
					por int
				)

				declare @ZoznamPL1 table
				(
					Podnik VARCHAR(9),
					plem varchar(10)
				--cisteplem varchar(1)
				)

				DECLARE poradie_cursor CURSOR LOCAL
				FOR
					SELECT Podnik FROM @podiely group by Podnik

				OPEN poradie_cursor
				FETCH NEXT FROM poradie_cursor INTO @Podniky
				WHILE @@FETCH_STATUS = 0
					BEGIN
						--print @chovatelia
						delete from @plemena
						insert into @plemena
								(PL1, KR1, PodielPerc, Podnik, por)
						select PL1,KR1, PodielPerc, Podnik,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and Podnik = @podniky

						declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'')
						--declare @cistPlem varchar(1) = (select case when PodielPerc = 100 then '*' else '' end from @plemena)

						insert into @ZoznamPL1
						select @podniky,@PL1--, @cistPlem

						FETCH NEXT FROM poradie_cursor INTO @podniky
					END

				CLOSE poradie_cursor
				DEALLOCATE poradie_cursor

				declare @plemeno varchar(10)
				set @plemeno = (select plem  from @ZoznamPL1  where Podnik = @podnik)


				--declare @najchov_KUMP table
				--create table Roc_MPHD_Tab_Najchov
				--(
				--KrajOkr varchar(3),
				--Podnik varchar(3),
				--Podnik_nazov varchar(35),
				--Prev_plem varchar(10),
				--Priem_stav_krav int,
				--Priem_stav_MD int,
				--poc_vaz_210 int,
				--Hm210 int,
				--Medziobd float,
				--Inde_x float,
				--rok int
				--)

				insert Roc_MPHD_Tab_Najchov
				select SUBSTRING(@podnik,1,3),
							 SUBSTRING(@podnik,4,3),
							 (select NAZOVSKR from NM_PODNIK where KRAJ + OKRES + PODNIK = @podnik),
							 @plemeno,
							 @pocetKrav,
							 @pocetMD,
							 @pocetVazenych210,
							 @HM_210,
							 @medziobd,
							 @index,
							 DATEPART(year,@datumOd)

			end
	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[Pribuznost_prepocet_priparovanieKoefTableValued] 
(	
	@otec as varchar(14), @matka as varchar(14)
)
RETURNS @table TABLE(pribuznost float, pocet_predkov_otec int, pocet_predkov_matka int) 
AS
begin

/*predpriprava - ak su rodokmene otca s matkou uplne odlisne, vrat koeficient 0,
tym padom odpadne pocitanie koeficientu pribuznosti*/

declare @pocet_zhodnych int;
set @pocet_zhodnych =0;

select @pocet_zhodnych = count(rodokmen) from dbo.ZistiRodokmenTabulka(@matka) where rodokmen 
in(select rodokmen from dbo.ZistiRodokmenTabulka(@otec)); --kolko zhodnych predkov je medzi matkou a otcom (vratane otca a matky)

declare @pocet_predkov_o int; --pocet znamych predkov otec (max. 15)
declare @pocet_predkov_m int; --pocet znamych predkov matka (max. 15)
select @pocet_predkov_o= count(rodokmen)from dbo.ZistiRodokmenTabulka(@otec);
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTabulka(@matka);
 
if @pocet_zhodnych = 0 begin insert into @table values (0,@pocet_predkov_o,@pocet_predkov_m); return;  end;
/*koniec predpripravy*/


	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	
	set @pribuznost=0;
	set @pribuz=0;
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @spolpredpribuz=0;
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));
					if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=0;					
					end
					set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @spolpredpribuz=0;
				set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=0;					
				end
				set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k=2 or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			insert into @table values (isnull(round(@pribuz*100,2),0),@pocet_predkov_o,@pocet_predkov_m)
			return;
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Funkcnost:
-- pomocou jedineho query: select @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;
-- (funkcia max je tam vlozena, aby tento query vratil null, aj ked neexistuju rodicia daneho usneho cisla, 
-- ak by tam max nebolo, vrati ziadne riadky pri neznamych rodicoch (je potrebne aby vratilo NULL))
-- funkcia hlada otcov a matky, ktorych jednak vklada do @tab, funkcia vracia tabulku @tab, a takisto vklada rodicov aj do retazca,
-- z ktoreho vybera nasledujuceho otca alebo matku, a zistuje jeho otca a matku atd...(nesiaha sa selectom do @tab)
-- podmienka vonkajsieho cyklu @h<=3 urcuje hlbku generacie (@h<=3 je do hlbky 3, t.j. 15 predkov, zacina sa od otca a matky ako 1. gen.)
-- (@h<=5 by bola do hlbky generacie 5, t.j. 62 predkov)
-- v pripade, ak ma byk usne cislo dlzku mensiu ako 14 znakov, doplni $ do 14 znakov. 
-- pri vyhladavani rodicov so znakom $, ho zmeni na usne cislo bez $, t.j. take, ake je v databaze.
-- v pripade ak nema usne cislo rodicov, namiesto nich ulozi do pola 14 prazdnych medzier.
-- v @pole su jednotlive usne cisla oddelene ciarkou.
-- pri zmene hlbky rodokmena, treba nastavit @h<=3, inu hodnotu a zvysit dlzku @pole.
-- jednotlivi rodicia idu za radom v @tab nasledovne: 
-- O,M,OO,MO,OM,MM,OOO,MOO,OMO,MMO,OOM,MOM,OMM,MMM,OOOO,MOOO,OMOO,MMOO,OOMO,MOMO,OMMO,MMMO,
-- OOOM, MOOM, OMOM, MMOM, OOMM, MOMM, OMMM, MMMM atd. vzdy od otca
-- =============================================
CREATE FUNCTION [dbo].[ZistiRodokmenTabulka_a_Custom](@usnecislo varchar(14))
RETURNS @tab table(rodokmen varchar(14))
AS
begin 

declare @otec varchar(14)
set @otec = ''

declare @matka varchar(14)
set @matka = ''

declare @c_otec varchar(14)
declare @c_matka varchar(14)

declare @i int;
set @i = 1;

declare @j int;
set @j = 1;

declare @h int;
set @h = 1;

declare @counter int;
set @counter = 1;

declare @pole varchar(500)
set @pole = '';


insert into @tab values (@usnecislo); --otec 1 generacia

while @h<=3 --3 generacie
	begin
	set @i = 1;
		while @i <= @j
			begin
				set @usnecislo = REPLACE(@usnecislo,'$','');
				select    @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;			
				if (@otec is null OR @matka is null) begin
					select    @c_otec = max(otec), @c_matka = max(matka) from CustomDB_Data where uscislo = @usnecislo;
					if (@otec is null) begin set @otec = @c_otec; end;
					if( @matka is null) begin set @matka = @c_matka; end;
				end;
				if (@usnecislo = '              ') begin set @otec = null; set @matka = null; end; /*aby sa neprenasali cisla predosle do pola na nespravne miesto*/
				if (@otec is not null and @matka is not null)	
					begin	
						set @pole = @pole+@otec+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(@otec),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is null and @matka is not null)	
					begin				
						set @pole = @pole+'              '+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(null),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is not null and @matka is null)	
					begin				
						set @pole = @pole+@otec+','+'              '+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(@otec),(null)	
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
				if (@otec is null and @matka is null) 
					begin
						set @pole = @pole+'              '+','+'              '+','; 		
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(null),(null)		
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
			end;	
		set @j = POWER(2,@h);
	set @h = @h + 1;
	end;
return 

end;


/*
declare  @tab table(rodokmen  varchar(500))
insert into @tab values('John'),('Sarah'),('George')

select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))

select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('US000001964484'))
use plis
select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('SK000800389967')
select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('VV123456789500')
select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('MO123456789123')

select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('MO123456789000')

select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')
group by rodokmen having count(rodokmen) >= 2

SELECT count(rodokmen) FROM dbo.ZistiRodokmenTabulka('SK000800389967') 
as tab where (select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800389967') where rodokmen = tab.rodokmen) > 1

select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('CZ000166562031')

select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('SK000812191501')

select rodokmen from dbo.ZistiRodokmenTabulka_a_Custom('EE000000000035')

*/
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_LaktaciePodlaOtcov]
	
	
AS
BEGIN

/*******************************************

	using table:CM_Krava,

	using view: View_CP_KravaPoOtcoNormLakt

	changing table: CP_UZITKOVOSTKRAVPOOTCOCH

	used for:(1) Úžitkovosť kráv po otcoch za normované laktácie  report

**********************************************/
	
	SET NOCOUNT ON;


	DECLARE @PO1 INT;
	DECLARE @PO2 INT;

	SET @PO1=0;
	SET @PO2=0;

	declare @chov varchar(9);
	declare @Ucislo varchar(14);
	declare @lakt int;
	declare @po4et int;
	declare @mlekoP float;
	declare @tukP float;
	declare @bielkP float;
	declare @belTukP float;
	declare @vek float;
	declare @vekD int;

	declare @vekM int;
	declare @vekD1 int;

	declare @otec varchar(10);

declare @msms as datetime;
set @msms=GETDATE();

	SET @lakt =0;
	SET @po4et =0;
	SET @mlekoP =0;
	SET @tukP =0;
	SET @bielkP =0;
	SET @belTukP =0;
	SET @vek =0;
	set @vek=0;
	set @otec='';
	set @Ucislo='';
	set @chov='';

	TRUNCATE TABLE CP_UZITKOVOSTKRAVPOOTCOCH	

	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_KravaPoOtcoNormLakt')
		DROP TABLE TEMP_KravaPoOtcoNormLakt
	
	select * into TEMP_KravaPoOtcoNormLakt
		from [View_CP_KravaPoOtcoNormLakt]

    declare  chovately cursor 
	for select DISTINCT chovatel
		from CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			DECLARE @POCNLACT INT;
						SET @POCNLACT=0;

			DECLARE @MLEKO FLOAT;
			DECLARE @TaB FLOAT;
			DECLARE @TUK FLOAT;
			DECLARE @BELK FLOAT;
			DECLARE @BELKATUK FLOAT;
			DECLARE @KRAVYCHOV INT;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;

			DECLARE @M1 FLOAT;
			DECLARE @T1 FLOAT;
			DECLARE @B1 FLOAT;
			DECLARE @BAT1 FLOAT;
			DECLARE @P1 INT;

			DECLARE @M2 FLOAT;
			DECLARE @T2 FLOAT;
			DECLARE @B2 FLOAT;
			DECLARE @BAT2 FLOAT;
			DECLARE @P2 INT;

			DECLARE @MN FLOAT;
			DECLARE @TN FLOAT;
			DECLARE @BN FLOAT;
			DECLARE @BATN FLOAT;
			DECLARE @PN INT; 

			declare @i int;
			set @i=0;

			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;

			SET @M2 = 0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			declare @vek1 float;
			DECLARE @L1 INT;
			DECLARE @L2 INT;
			set @vek1=0;
			SET @L1=0;
			SET @L2=0;
		--	print @chov;
			----------------------------------------------------------------------------------------------------

			declare otec cursor 
			for select DISTINCT OUSCIS
				from CM_Krava
				where DOVVYR is null
				and PRIZNAKKU='1'
				and OUSCIS is not null
				and chovatel=@chov;

			open otec
			fetch next from otec into @Ucislo;
			while @@FETCH_STATUS=0
			begin
				
					
					--print @ucislo;
					
				declare kravy cursor
				for select porlak,po4etkrav,primermleko,primerTuk,asBielkpriem,priembeltuk,vekM,VekD,otec
				from View_CP_KravaPoOtcoNormLakt
				where chovatel=@chov
				and OUSCIS=@Ucislo
				
				


				open kravy
				fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
				WHILE @@FETCH_STATUS = 0 
					BEGIN
					/*	print @lakt;
						print @po4et;
						print @mlekop;
						print @tukP;
						print @bielkP;
						print @belTukP;
						print @vek;
						print @otec;*/
					
							
						IF(@lakt=1)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								SET @L1=@po4et+@L1
								SET @MLEKO=@MLEKO+@mlekoP;
								SET @BELKATUK=@BELKATUK+@belTukP;
								set @vekM=@vek1;
								set @vekD1=@vekD;
								SET @M1 =@mlekoP+@M1;
								SET @T1 =@tukP+@T1;
								SET @B1 =@bielkP+@B1;
								SET @BAT1 =@belTukP+@BAT1;
								SET @P1=@po4eT+@P1;
								SET @PO1=@PO1+1;
							END
					else	IF(@LAKT=2)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								--SET @KRAVYCHOV=@KRAVYCHOV+@po4et;
								SET @L2=@po4et+@L2;
								SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;

								SET @M2 =@mlekoP+@M2;
								SET @T2 =@tukP+@T2;
								SET @B2 =@bielkP+@B2;
								SET @BAT2 =@belTukP+@BAT2;
								SET @P2=@po4et+@P2;
								SET @PO2=@PO2+1;
							END

						
						

					else		IF(@LAKT!=2 and @lakt!=1)
								BEGIN
									if(@Ucislo='')
										begin set @Ucislo=NULL; end

									SET @TaB=@TaB+@belTukP;
									SET @TUK=@TUK+@tukP;
									SET @BELK=@BELK+@bielkP;
									SET @POCNLACT=@POCNLACT+@po4et;
									SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;
									set @POCNLACT=(select count(*)
													from CM_Krava
													where priznakku=1
													and DOVVYR is null
													and chovatel=@chov
													and OUSCIS=@Ucislo
													and POCNORLAK>2);
									set @i=@i+1;
									SET @MN =@MN+@mlekoP;
									SET @TN = @TN+@tukP;
									SET @BN =@BN+@bielkP;
									SET @BATN =@BATN+@belTukP;
						
								END

						
					fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
			
					end

					close kravy;
				Deallocate kravy;
				SET @KRAVYCHOV=(select count(*)from cm_krava where chovatel=@chov and DOVVYR is null and PRIZNAKKU='1')
				-------------------------------------------------------------------------------------------------------------------------------------------------------
				
					 set @POCNLACT=(select SUM(po4etkrav) from TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK>2);

					 declare @po1a int;
					 declare @po2a int;

					 set @PO1a=(select SUM(po4etkrav) from TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK=1);

					 set @PO2a=(select SUM(po4etkrav) from TEMP_KravaPoOtcoNormLakt where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK=2);



				IF(@POCNLACT>0)
					BEGIN
					set @MN=@MN/@POCNLACT;
					set @TN=@TN/@POCNLACT;
					SET @BN=@BN/@POCNLACT;
					SET @BATN=@BATN/@POCNLACT;
					END
					
					if(@POCNLACT= 0 or @POCNLACT is null)
					begin
						set @MN=null;
						set @tn=null;
						set @bn=null;
						set @BATN=null;
					end
					
					IF(@PO1a>1)
					BEGIN
						
						SET	@M1=@M1/@PO1a
						SET	@T1=@T1/@PO1a
						SET @B1=@B1/@PO1a
						SET @BAT1=@BAT1/@PO1a
						SET @vek1=@VEK1/@PO1
					END

					IF(@PO2a>1)
					BEGIN
						
						SET	@M2=@M2/@PO2a
						SET	@T2=@T2/@PO2a
						SET @B2=@B2/@PO2a
						SET @BAT2=@BAT2/@PO2a
						
					END
					
					IF(@PO2=0)
					begin
					SET @M2 =NULL;
					SET @T2 =NULL;
					SET @B2 =NULL;
					SET @BAT2 =NULL;
					end

				IF(@PO1=0)
					BEGIN
						
						SET	@M1=NULL
						SET	@T1=NULL
						SET @B1=NULL
						SET @BAT1=NULL
						SET @vek1=NULL
					END
			
				set @i=(select COUNT(*) 
						from CM_Krava as k
						--inner join plis.dbo.CM_Laktacie as p
						--on k.CISKRAVY=p.CISKRAVY
						where PRIZNAKKU=1 
						and DOVVYR is null 
						 and k.chovatel=@chov
						 and k.OUSCIS=@Ucislo 
						 and k.POCNORLAK>2 );
						 --and zmena in (30,40));
				
				--	set @vekD=convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) % 30
				--	set @vek1=convert(int,@vek1)+convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) / 30
				
				
				INSERT INTO CP_UZITKOVOSTKRAVPOOTCOCH VALUES(@otec,@Ucislo,@L1,@M1,@T1,@B1,@BAT1,@vekM,@vekD1,@L2,@M2,@T2,@B2,@BAT2,@I,@MN,@TN,@BN,@BATN,@MLEKO,@TUK,@BELK,@BELKATUK,@KRAVYCHOV,@chov,@POCNLACT);
				--print N'insert'
				--print datediff(ms,@msms,getdate());
				set @msms=GETDATE();
				
				set @vek1=0;
				set @vekD=0;
				SET @POCNLACT=0;
				set @i=0;
				SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;
			set @po1=0;
			set @PO2=0;
			SET @M2 =0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @L1=0;
			SET @L2=0;
			set @vek1=0;
			SET @po4et =0;
	
				
				
				
				fetch next from otec into @Ucislo;
				
				end	

				close otec;
		Deallocate otec;
					------------------------------ TEN HOVATEL SKON4IL-----------------------------------
			FETCH NEXT FROM chovately INTO @chov ;
			--print N'____________________________________________________________________'
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @KRAVYCHOV=0;
			

			end
	

		close chovately;
		Deallocate chovately;
		
		
----------------------------------
-- dopocet pre podniky a okresy
----------------------------------

    declare  chovately cursor 
	for -- podniky
		select distinct substring(chovatel,1,6)
		from CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null

		union
		-- okresy
		select distinct substring(chovatel,1,3)
		from CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null

		-- print '-- zaciatok: ' + CONVERT( VARCHAR(24), GETDATE(), 121)



		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;			
		
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_kravy_v_chovoch')
				DROP TABLE TEMP_kravy_v_chovoch	
			
			-- print '-- c01z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
			
			select * into TEMP_kravy_v_chovoch
				from CM_Krava 
				where DOVVYR is null
				and PRIZNAKKU='1'
				and chovatel like @chov+'%';	
			-- print '-- c01k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)										



			SET @POCNLACT=0;


			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;

			set @i=0;

			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;

			SET @M2 = 0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;

			set @vek1=0;
			SET @L1=0;
			SET @L2=0;
		--	print @chov;
		
		
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc1')
				DROP TABLE TEMP_chovy_v_prepOtc1
			
			-- print '-- c1z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
			select * into TEMP_chovy_v_prepOtc1
				from TEMP_KravaPoOtcoNormLakt where CHOVATEL like @chov+'%'
			-- print '-- c1k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)		
			----------------------------------------------------------------------------------------------------

			declare otec cursor 
			for select DISTINCT OUSCIS
				from TEMP_kravy_v_chovoch
				where OUSCIS is not null;

			open otec
			fetch next from otec into @Ucislo;
			while @@FETCH_STATUS=0
			begin
				
				IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc')
					DROP TABLE TEMP_chovy_v_prepOtc
				
				-- print '-- c2z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				select * into TEMP_chovy_v_prepOtc
					from TEMP_chovy_v_prepOtc1 where OUSCIS=@Ucislo
				-- print '-- c2k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)										
					--print @ucislo;
					
				declare kravy cursor
				for select porlak,po4etkrav,primermleko,primerTuk,asBielkpriem,priembeltuk,vekM,VekD,otec
				from TEMP_chovy_v_prepOtc
				
				


				open kravy
				fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
				WHILE @@FETCH_STATUS = 0 
					BEGIN
					/*	print @lakt;
						print @po4et;
						print @mlekop;
						print @tukP;
						print @bielkP;
						print @belTukP;
						print @vek;
						print @otec;*/
					
							
						IF(@lakt=1)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								SET @L1=@po4et+@L1
								SET @MLEKO=@MLEKO+@mlekoP;
								SET @BELKATUK=@BELKATUK+@belTukP;
								set @vekM=@vek1;
								set @vekD1=@vekD;
								SET @M1 =@mlekoP+@M1;
								SET @T1 =@tukP+@T1;
								SET @B1 =@bielkP+@B1;
								SET @BAT1 =@belTukP+@BAT1;
								SET @P1=@po4eT+@P1;
								SET @PO1=@PO1+1;
							END
					else	IF(@LAKT=2)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								--SET @KRAVYCHOV=@KRAVYCHOV+@po4et;
								SET @L2=@po4et+@L2;
								SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;

								SET @M2 =@mlekoP+@M2;
								SET @T2 =@tukP+@T2;
								SET @B2 =@bielkP+@B2;
								SET @BAT2 =@belTukP+@BAT2;
								SET @P2=@po4et+@P2;
								SET @PO2=@PO2+1;
							END

						
						

					else		IF(@LAKT!=2 and @lakt!=1)
								BEGIN
									if(@Ucislo='')
										begin set @Ucislo=NULL; end

									SET @TaB=@TaB+@belTukP;
									SET @TUK=@TUK+@tukP;
									SET @BELK=@BELK+@bielkP;
									SET @POCNLACT=@POCNLACT+@po4et;
									SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;
									-- print '-- c3z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
									set @POCNLACT=(select count(*)
													from TEMP_kravy_v_chovoch
													where OUSCIS=@Ucislo
													and POCNORLAK>2);
									-- print '-- c3k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)														
									set @i=@i+1;
									SET @MN =@MN+@mlekoP;
									SET @TN = @TN+@tukP;
									SET @BN =@BN+@bielkP;
									SET @BATN =@BATN+@belTukP;
						
								END

						
					fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek1,@vekD , @otec ;
			
					end

					close kravy;
				Deallocate kravy;
				
				-- print '-- c4z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				SET @KRAVYCHOV=(select count(*)from TEMP_kravy_v_chovoch)
				-------------------------------------------------------------------------------------------------------------------------------------------------------
				-- print '-- c4k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c5z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					 set @POCNLACT=(select SUM(po4etkrav) from TEMP_chovy_v_prepOtc where PORLAK>2);
					-- print '-- c5k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c6z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					 set @PO1a=(select SUM(po4etkrav) from TEMP_chovy_v_prepOtc where PORLAK=1);
					-- print '-- c6k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
					-- print '-- c7z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	

					 set @PO2a=(select SUM(po4etkrav) from TEMP_chovy_v_prepOtc where PORLAK=2);
					-- print '-- c7k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	



				IF(@POCNLACT>0)
					BEGIN
					set @MN=@MN/@POCNLACT;
					set @TN=@TN/@POCNLACT;
					SET @BN=@BN/@POCNLACT;
					SET @BATN=@BATN/@POCNLACT;
					END
					
					if(@POCNLACT= 0 or @POCNLACT is null)
					begin
						set @MN=null;
						set @tn=null;
						set @bn=null;
						set @BATN=null;
					end
					
					IF(@PO1a>1)
					BEGIN
						
						SET	@M1=@M1/@PO1a
						SET	@T1=@T1/@PO1a
						SET @B1=@B1/@PO1a
						SET @BAT1=@BAT1/@PO1a
						SET @vek1=@VEK1/@PO1
					END

					IF(@PO2a>1)
					BEGIN
						
						SET	@M2=@M2/@PO2a
						SET	@T2=@T2/@PO2a
						SET @B2=@B2/@PO2a
						SET @BAT2=@BAT2/@PO2a
						
					END
					
					IF(@PO2=0)
					begin
					SET @M2 =NULL;
					SET @T2 =NULL;
					SET @B2 =NULL;
					SET @BAT2 =NULL;
					end

				IF(@PO1=0)
					BEGIN
						
						SET	@M1=NULL
						SET	@T1=NULL
						SET @B1=NULL
						SET @BAT1=NULL
						SET @vek1=NULL
					END
					
				-- print '-- c8z: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				set @i=(select COUNT(*) 
						from TEMP_kravy_v_chovoch as k
						--inner join plis.dbo.CM_Laktacie as p
						--on k.CISKRAVY=p.CISKRAVY
						where k.OUSCIS=@Ucislo 
						 and k.POCNORLAK>2 );
						 --and zmena in (30,40));
				-- print '-- c8k: ' + CONVERT( VARCHAR(24), GETDATE(), 121)	
				--	set @vekD=convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) % 30
				--	set @vek1=convert(int,@vek1)+convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) / 30
				
				
				INSERT INTO CP_UZITKOVOSTKRAVPOOTCOCH VALUES(@otec,@Ucislo,@L1,@M1,@T1,@B1,@BAT1,@vekM,@vekD1,@L2,@M2,@T2,@B2,@BAT2,@I,@MN,@TN,@BN,@BATN,@MLEKO,@TUK,@BELK,@BELKATUK,@KRAVYCHOV,@chov,@POCNLACT);
				--print N'insert'
				--print datediff(ms,@msms,getdate());
				set @msms=GETDATE();
				
				set @vek1=0;
				set @vekD=0;
				SET @POCNLACT=0;
				set @i=0;
				SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;
			set @po1=0;
			set @PO2=0;
			SET @M2 =0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @L1=0;
			SET @L2=0;
			set @vek1=0;
			SET @po4et =0;
	
				
				
				
				fetch next from otec into @Ucislo;
				
				end	

				close otec;
		Deallocate otec;
					------------------------------ TEN HOVATEL SKON4IL-----------------------------------
			FETCH NEXT FROM chovately INTO @chov ;
			--print N'____________________________________________________________________'
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @KRAVYCHOV=0;
			

			end
	

		close chovately;
		Deallocate chovately;

	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_kravy_v_chovoch')
		DROP TABLE TEMP_kravy_v_chovoch	

	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc')
		DROP TABLE TEMP_chovy_v_prepOtc
		
	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_chovy_v_prepOtc1')
		DROP TABLE TEMP_chovy_v_prepOtc1		

	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMP_KravaPoOtcoNormLakt')
		DROP TABLE TEMP_KravaPoOtcoNormLakt

END


go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 10.02.2015 15:37
-- Update:		20.05.2015 
--				10.11.2015 - osetrene na typ chovu TMHD
--				11.11.2015 - osetrenie aby SUM stlpca s % => 100.00 %
-- Description:	Jalovice TMHD sumar
-- =============================================
CREATE PROCEDURE [dbo].[C_TMHD_sumar]
	@CHOVATEL [varchar] (9)
	--,@r [int]
AS
BEGIN

	declare @r int = len(@CHOVATEL)

	/*
		Najprv sa vypisu vsetky chovy podla zadania a zisti sa ich typ zaradenia
	*/
	select *, dbo.HDchov_typ_KU (chovatel) as typ  
	into #chov
	from(
		select chovatel from [dbo].[View_CP_SumarMladyDobytokJal_new] AS a
		WHERE 
			(@r = 9 and chovatel = @CHOVATEL)
			OR	((@r = 6 OR @r = 3) AND chovatel LIKE @CHOVATEL + '%')
		group by chovatel
	) t

/*Nacitanie udajov do docasnej tabulky*/
	SELECT
		----prirprepoc, zivprir - su len stare nazvy, nie je to prepoc prit. a ziv. je brany normalne z vazeni teliat !!!!!!
		vekmes, Hmot, ROUND(prir,0) as prirprepoc, ROUND(zivprir,0) as zivpriras, 
		a.chovatel,	a.raspas, a.idain, pohlavie, vekdni, datnar, datvaz, CISTELATA, ZnakPrip, ZnakTelnost,
	CASE WHEN raspas = 'A' THEN 1 ELSE NULL END as raspasA,
	CASE WHEN raspas = 'B' THEN 1 ELSE NULL END as raspasB,
	CASE WHEN raspas = 'C' THEN 1 ELSE NULL END as raspasC,
	CASE WHEN raspas = 'A' THEN HMOT ELSE NULL END as hmotnostA,
	CASE WHEN raspas = 'B' THEN HMOT ELSE NULL END as hmotnostB,
	CASE WHEN raspas = 'C' THEN HMOT ELSE NULL END as hmotnostC
	INTO #temp_THMD_sumar
	FROM [dbo].[View_CP_SumarMladyDobytokJal_new] AS a
	WHERE 
	----chovatel = @CHOVATEL	
	--(@r = 9 and chovatel = @CHOVATEL)
	--OR	((@r = 6 OR @r = 3) AND chovatel LIKE @CHOVATEL + '%')
	chovatel in (select chovatel from #Chov where typ = 'TMHD')

	/*Vytvorenie prazdnej docasnej tabulky*/
		SELECT 
			substring(vek, 1, 2) as ID, substring(vek, 5, len(vek)-4) as vek, 
			NULL AS pocet, /*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ 
			NULL AS hmotnost, NULL AS pripprepoc, NULL AS zivpriras, NULL as chovatel,
			NULL AS pocetA, NULL AS percentA, NULL AS hmotnostA,
			NULL AS pocetB, NULL AS percentB, NULL AS hmotnostB,
			NULL AS pocetC, NULL AS percentC, NULL AS hmotnostC
		INTO #temp_THMD_sumar_Void
			FROM
			(
				SELECT '01. do 1 mes.' AS vek
				UNION 
				SELECT '02. 1 - 2 mes.'  AS vek
				UNION 
				SELECT '03. 2 - 3 mes.'  AS vek
				UNION 
				SELECT '04. 3 - 4 mes.'  AS vek
				UNION 
				SELECT '05. 4 - 5 mes.' AS vek
				UNION 
				SELECT '06. 5 - 6 mes.' AS vek
				UNION 
				SELECT '07. do 6 mes.' AS vek
				UNION 
				SELECT '08. 6 - 12 mes.' AS vek
				UNION 
				SELECT '09. 12 mes. (+-15 dní)' AS vek
				UNION 
				SELECT '10. 12 - 18 mes. pripustené' AS vek
				UNION 
				SELECT '11. 12 - 18 mes. nepripustené' AS vek
				UNION 
				SELECT '12. 18 - 24 mes. pripustené' AS vek
				UNION 
				SELECT '13. 18 - 24 mes. nepripustené' AS vek
				UNION 
				SELECT '14. 12 - 24 mes. celkom' AS vek
				UNION 
				SELECT '15. 12 - 24 mes. teľné' AS vek
				UNION 
				SELECT '16. nad 24 mes. pripustené' AS vek
				UNION 
				SELECT '17. nad 24 mes. nepripustené' AS vek
				UNION 
				SELECT '18. nad 24 mes. celkom' AS vek
				UNION 
				SELECT '19. nad 24 mes. teľné 7 mes' AS vek
				UNION 
				SELECT '20. nad 24 mes. teľné 8 a viac' AS vek
				UNION 
				SELECT '21. celkom jalovice za maštaľ' AS vek
				UNION 
				SELECT '22. celkom býčkov za maštaľ' AS vek
				UNION 
				SELECT '23. neurčené pohlavie' AS vek
				--UNION 
				--SELECT '24. priemerný prírastok [g] za maštaľ' AS vek
				UNION 
				SELECT '24. celkom za maštaľ' AS vek
			) as a


/*Spracovanie evidencie a ulozenie do docasnej tabulky*/
SELECT * 
	INTO #temp_THMD_sumar_Pre
	FROM (
			SELECT 
				substring(vek, 1, 2) as ID, substring(vek, 5, len(vek)-4) as vek, 
				COUNT(*) AS pocet, ROUND(AVG(Hmot),0) AS hmotnost, ROUND(AVG(prirprepoc), 0) AS pripprepoc, ROUND(AVG(zivpriras), 0) AS zivpriras, 
				substring(chovatel, 1, @r) as chovatel,
				SUM(raspasA) AS pocetA, 
				--(SUM(raspasA)*100.00) / COUNT(*) AS percentA,
				--AVG(hmotnostA) AS hmotnostA,
				ROUND((SUM(raspasA)*100.00) / COUNT(*), 1) AS percentA,
				ROUND(AVG(hmotnostA),0) AS hmotnostA,
				SUM(raspasB) AS pocetB, 
				--(SUM(raspasB)*100.00) / COUNT(*) AS percentB,
				--AVG(hmotnostB) AS hmotnostB,
				ROUND((SUM(raspasB)*100.00) / COUNT(*), 1) AS percentB,
				ROUND(AVG(hmotnostB),0) AS hmotnostB,
				SUM(raspasC) AS pocetC,
				--(SUM(raspasC)*100.00) / COUNT(*) AS percentC,
				--AVG(hmotnostC) AS hmotnostC
				ROUND((SUM(raspasC)*100.00) / COUNT(*), 1) AS percentC,
				ROUND(AVG(hmotnostC),0) AS hmotnostC
		
			FROM
			(
				SELECT 
					CASE WHEN vekmes = 0 THEN '01. do 1 mes.' 
						WHEN vekmes = 1 THEN '02. 1 - 2 mes.' 
						WHEN vekmes = 2 THEN '03. 2 - 3 mes.' 
						WHEN vekmes = 3 THEN '04. 3 - 4 mes.' 
						WHEN vekmes = 4 THEN '05. 4 - 5 mes.' 
						WHEN vekmes = 5 THEN '06. 5 - 6 mes.' 
						WHEN vekmes BETWEEN 6 AND 11 THEN '08. 6 - 12 mes.' 
						WHEN vekmes BETWEEN 12 AND 17  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '10. 12 - 18 mes. pripustené' 
																							ELSE '11. 12 - 18 mes. nepripustené' END
						WHEN vekmes BETWEEN 18 AND 23  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '12. 18 - 24 mes. pripustené' 
																								ELSE '13. 18 - 24 mes. nepripustené' END
						WHEN vekmes > 23  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '16. nad 24 mes. pripustené' 
																					ELSE '17. nad 24 mes. nepripustené' END
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT 
					CASE 
						WHEN vekmes BETWEEN 0 AND 5  THEN '07. do 6 mes.' 	
						WHEN vekmes =  11 and vekdni > 15 or  vekmes =  12 and vekdni < 15 THEN '09. 12 mes. (+-15 dní)'
						WHEN vekmes BETWEEN 12 AND 23  AND ZnakTelnost IS NOT NULL THEN '15. 12 - 24 mes. teľné'
						WHEN vekmes > 23 AND ZnakTelnost IS NOT NULL  THEN 
							CASE WHEN DATEDIFF(DAY, idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 THEN '19. nad 24 mes. teľné 7 mes'
								 WHEN DATEDIFF(DAY, idain, GETDATE()) / 30.42 >= 8.000 THEN '20. nad 24 mes. teľné 8 a viac'
							END
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT 
					CASE 
						WHEN vekmes BETWEEN 12 AND 23 THEN '14. 12 - 24 mes. celkom'
						WHEN vekmes > 23 THEN '18. nad 24 mes. celkom'
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT '21. celkom jalovice za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND datnar IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT '22. celkom býčkov za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND datnar IS NOT NULL AND POHLAVIE LIKE '%1'
			UNION
				SELECT '23. neurčené pohlavie' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NULL
			UNION
				SELECT '24. celkom za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
			) as s
			WHERE vek is not null	
			GROUP BY substring(chovatel, 1, @r), vek	
		) as b

		/*
			Prepocet stlca s % na 100.00
			update 11/2015
		*/
		update #temp_THMD_sumar_Pre
		set percentC = 100 - (percentB + percentA)
		where percentA + percentB + percentC <> 100


		select * 
		FROM
		(
			SELECT * FROM #temp_THMD_sumar_Pre
			UNION
			SELECT * FROM #temp_THMD_sumar_Void	
				WHERE Vek not in (SELECT Vek FROM #temp_THMD_sumar_Pre)
		) as tab
		ORDER BY ID



END


--if exists (select * from plis.sys.tables where name = '#temp_THMD_sumar')
--drop table #temp_THMD_sumar


----
--use plis
--exec C_TMHD_sumar '406535931'

--exec C_TMHD_sumar '713562801'
go



 Create procedure [dbo].[Rocenka_MPHD_99_porody_cvicne]
	
	@rok int
	
	as
	begin
	
	select rok, mesiac, pocet, plemeno, nazpl, pocet_rok,

	CONVERT(decimal(10,4), pocet)/CONVERT(decimal(10,4), pocet_rok) * 100 as percento
	  from Roc_MPHD_Tab_99_porody
	  left outer join (select kodpl, nazpl from CC_Plemena
			union select 'XX' as kodpl, 'Neznáme' as nazpl
			union select 'OS' as kodpl, 'Ostatné' as nazpl
			union select 'LI' as kodpl, 'Limousin' as nazpl) as plemena on plemena.kodpl=plemeno
	where @rok = rok
	order by plemeno, mesiac

	end
 
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MaximalnaLaktPodlaMlieko]
AS
BEGIN

/*******************
! Please run affter procedure: C_aktual_kodDojKodMedzi !
using table table:CC_Dojivost (nazov,kod),CM_Krava (chovatel,CISKRAVY,porlakmax,PRIZNAKKU),CM_Laktacie (CISKRAVY,PORLAK,KOD_DOJ)
changing table: table: CP_DojvostPodlaMaxLaktacia
used :(7) Štruktúra žijúcich kráv podľa dojnosti

!!! Hodnotiace prehľady v KÚ mlieka - (7) Štruktúra žijúcich kráv podľa dojnosti - 
- uz nepouziva tabulku [C_ZZ_Mlieko_MaximalnaLaktPodlaMlieko] - ale bezi priamo vyberom nad databazou

******************/
	
	TRUNCATE TABLE [PLIS].[dbo].CP_DojvostPodlaMaxLaktacia
	declare @c varchar(14)

	declare @kod as int
	declare @nazov as varchar(20)
	declare @p1 as int;
	declare @p2 as int;
	declare @pn as int;
	declare @spolu1 int;
	declare @spolu2 int;
	declare @spolu3 int;

	declare @spolu1n int;
	declare @spolu2n int;
	declare @spolu3n int;

	declare @spolu1c int;
	declare @spolu2c int;
	declare @spolu3c int;

	declare chov cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	group by CHOVATEL
	having count(*)>=1 

	open chov
	fetch next from chov into @c;

	while @@FETCH_STATUS=0
	begin
		
		declare hranica cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open hranica
		fetch next from hranica into @nazov,@kod

		while @@FETCH_STATUS=0
		begin
			
			
			
			set @p1=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as n
				on k.CISKRAVY=n.CISKRAVY and k.porlakmax=n.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and n.PORLAK=1
			and n.KOD_DOJ=@kod)

			set @p2=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as l
				on k.CISKRAVY=l.CISKRAVY and k.porlakmax=l.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and l.PORLAK>=2
			and l.KOD_DOJ=@kod )

			set @pn=(select count(*)
				from plis.dbo.CM_Krava as k
				full join plis.dbo.CM_Laktacie as l
				on k.CISKRAVY=l.CISKRAVY and k.porlakmax=l.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and l.KOD_DOJ=@kod)

				set @spolu1=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.PORLAK=1
			)

			set @spolu2=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.PORLAK>=2
			)

			set @spolu3=(select count(p.CISKRAVY) as pocet
			from plis.dbo.CM_Krava as k
			full join plis.dbo.CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			)

			if(@spolu1=0) set @spolu1=NULL;
			if(@spolu2=0) set @spolu2=NULL;
			if(@spolu3=0) set @spolu3=NULL;

			

			insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3,@c,NULL);


			
			
			
			
			fetch next from hranica into @nazov,@kod;
		end

		close hranica;
		deallocate hranica;

		--insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1n,(@spolu1n*100)/@spolu1n,@spolu2n,(@spolu2n*100)/@spolu2n,@spolu3n,(@spolu3n*100)/@spolu3n,@c,'N')
		insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1,(@spolu1*100)/@spolu1,@spolu2,(@spolu2*100)/@spolu2,@spolu3,(@spolu3*100)/@spolu3,@c,Null)
		--insert into plis.dbo.CP_DojvostPodlaMaxLaktacia values('Spolu',@spolu1c,(@spolu1c*100)/@spolu1c,@spolu2c,(@spolu2c*100)/@spolu2c,@spolu3c,(@spolu3c*100)/@spolu3c,@c,'C')

		fetch next from chov into @c;
	end

	close chov;
	deallocate chov;


END

go

 
 -- =============================================
-- Author:		PSSR,š.p.
-- Create date: 18.11.2011
-- Description:	Zaradenie teliat mlieka - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarteliatml_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR int
	declare @DATZAPIS [datetime] 
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit] 
	declare @CHOVTEL [varchar](9) 
	declare @CISTEL [varchar](14) 
	declare @PORPREBLAK_ [varchar](2)
	declare @POHLTEL [varchar](2)
	declare @DATNAR [date]
	declare @OTECLIN [varchar](3),		@T_OTECLIN [varchar](3) 
	declare @OTECREG_ [varchar](3),		@T_OTECREG [int] 
	declare @OTEC [varchar](14),		@T_OTEC [varchar](14)
	declare @MATKA [varchar](14),		@T_MATKA [varchar](14)
	declare @PL1 [varchar](2)			
	declare @KR1 [decimal](6,2)
	declare @PL2 [varchar](2)
	declare @KR2 [decimal](5,2)
	declare @PL3 [varchar](2)
	declare @KR3 [decimal](5,2)
	declare @PL4 [varchar](2)
	declare @KR4 [decimal](5,2)
	declare @PL5 [varchar](2)
	declare @FARBA [varchar](2)
	declare @ZNAKET [bit] 
	declare @DI [varchar](1)
	
	declare @errorflag bit
	declare @navrat_hodn [varchar](1)	
	declare @OtecJeVCM_Byci [bit]
	declare @MatkaJeVCM_Krava [bit]
	declare @NajdenyOtecJeVCM_Byci [bit]
	declare @NajdenaMatkaJeVCM_Krava [bit]
	declare @PL1_POM [varchar](2)
	declare @IDTELATA int
		
	declare 
		@pov_PL1 [varchar](2),
		@pov_KR1 [decimal](5,2),
		@pov_PL2 [varchar](2),
		@pov_KR2 [decimal](5,2),
		@pov_PL3 [varchar](2),
		@pov_KR3 [decimal](5,2),
		@pov_PL4 [varchar](2),
		@pov_KR4 [decimal](5,2),
		@pov_PL5 [varchar](2)
		
	declare @MFARBA [varchar](2)
	declare @OFARBA [varchar](2)		
	DECLARE @sql_update nvarchar(2000)	
	declare @pom_IDBYKA int
	declare @pom_OUSCIS varchar(15)
	declare @pom_IDKRAVY int		
	declare @pom_TYPPLEM varchar(3)
	declare @operacia varchar(3)
	declare @PORPREBLAK int	
	declare @OTECREG int	
	declare @OT varchar (15), @povod varchar (1), @DobaNos int, @povod_ varchar(1), @DobaNos_ int, @MATKA_ [varchar](14), @_OTECLIN varchar(3), @_OTECREG int		
	declare @dupl int	
	declare @dvojca int
	declare @IdTelBezCis as table
	(	
		IDTELATA int,
		POHLAVIE varchar(2)
	)
	declare @pov_OTECLIN [varchar](3)
	declare @pov_OTECREG [varchar](3)
	declare @pov_OTEC [varchar](14)
	declare @exist_cistel int

	-- neznamy povod -- 20161026
	declare @OTECLINNEZ [varchar](3)
	declare @MATKANEZ [varchar](14)
	
  	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	

	-- vyber doposial nespracovanych zaradeni 
	declare db_cursor_zarteliatml cursor
	FOR
	SELECT IDR
      ,CHOV
      ,CISTEL
      ,convert(int, nullif(PORPREBLAK, '')) as PORPREBLAK
      ,nullif(POHLTEL, '') as POHLTEL
      ,convert(date, nullif(DATNAR, ''), 104) as DATNAR
      ,nullif(OTECLIN, '')
      ,case when ISNUMERIC(OTECREG) = 1 then convert(int, OTECREG) else null end as OTECREG
	  ,nullif(OTEC, '') as OTEC
      ,nullif(MATKA, '')
      ,nullif(PL1, '')
      ,case when ISNUMERIC(KR1) = 0 then 0 else convert(decimal(6,2),replace(KR1,',','.')) end as KR1
      ,nullif(PL2, '')
      ,case when ISNUMERIC(KR2) = 0 then 0 else convert(decimal(5,2),replace(KR2,',','.')) end as KR2
      ,nullif(PL3, '')
      ,case when ISNUMERIC(KR3) = 0 then 0 else convert(decimal(5,2),replace(KR3,',','.')) end as KR3
      ,nullif(PL4, '')
      ,case when ISNUMERIC(KR4) = 0 then 0 else convert(decimal(5,2),replace(KR4,',','.')) end as KR4
      ,NULL as PL5 -- neprichadza zo zberaca
	  ,RIGHT('00'+nullif(FARBA, ''),2) --nullif(FARBA, '')
      ,nullif(ZNAKET, '')
      ,nullif(DI, '')
	FROM VstupyPLIS.dbo.CP_HD08_ZARTELIATML where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL) 
	order by convert(date, nullif(DATNAR, ''), 104) -- 20170206
	
	OPEN db_cursor_zarteliatml

	-- cyklus cez vsetky nespracovane zaradenia teliat ML
	FETCH NEXT
	FROM db_cursor_zarteliatml INTO 	
		 @IDR
		,@CHOVTEL
		,@CISTEL
		,@PORPREBLAK_
		,@POHLTEL
		,@DATNAR
		,@OTECLIN
		,@OTECREG_
		,@OTEC
		,@MATKA
		,@PL1
		,@KR1
		,@PL2
		,@KR2
		,@PL3
		,@KR3
		,@PL4
		,@KR4
		,@PL5
		,@FARBA
		,@ZNAKET
		,@DI
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke zaradeni nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD08_ZARTELIATML set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran zarteliatml
   		begin try		
		
			set @OtecJeVCM_Byci = (select 0)
			set @MatkaJeVCM_Krava = (select 0)
			set @NajdenyOtecJeVCM_Byci = (select 0)
			set @NajdenaMatkaJeVCM_Krava = (select 0)
			set @errorflag = (select 0)		
			set @dupl = 0	
			set @dvojca = 0	
			set @OT = null
			set @povod = null
			set @DobaNos = null
			set @pov_OTECLIN = null
			set @pov_OTECREG = null
			set @pov_OTEC = null
			-- neznamy povod -- 20161026
			set @OTECLINNEZ = null
			set @MATKANEZ = null
			set @OFARBA = null
			set @MFARBA = null    
				
			-- OPRAVA dat zo vstupu -------------------------------
			-- oprava podielu krvi cistokrvnych zvierat (0 -> 100)
			if (@KR1 = 0 and @PL1 is not null)
				set @KR1 = 100
				
			-- ak su podiely krvi zadane v desatinach %
			if (@KR1 + @KR2 + @KR3 + @KR4) > 990
			begin
				set @KR1 = @KR1/10
				set @KR2 = @KR2/10
				set @KR3 = @KR3/10
				set @KR4 = @KR4/10
			end	

			-- oprava podielov krvi  (0 -> null)
			if (@KR1 = 0)
				set @KR1 = (select null)
			if (@KR2 = 0)
				set @KR2 = (select null)
			if (@KR3 = 0)
				set @KR3 = (select null)
			if (@KR4 = 0)
				set @KR4 = (select null)
			

			-- zarovnanie plemena
			set @PL1 = LTRIM(@PL1)
			set @PL2 = LTRIM(@PL2)
			set @PL3 = LTRIM(@PL3)
			set @PL4 = LTRIM(@PL4)
			set @PL5 = LTRIM(@PL5)
			
			-- zarovnanie linie otca
			set @OTECLIN = LTRIM(@OTECLIN)

			-- zmena registra otca na cislo
			set @OTECREG = CONVERT(int, @OTECREG_)
			if @OTECREG = 0
				set @OTECREG = NULL
			
			-- znulovanie neznamych linii otcov 
			if UPPER(@OTECLIN) = 'IL' or UPPER(@OTECLIN) = 'NEZ' or @OTECLIN = '997' or @OTECLIN is null
			begin
				-- neznamy povod -- 20161026
				if UPPER(@OTECLIN) = 'NEZ' 
					set @OTECLINNEZ = UPPER(@OTECLIN)
				else
					set @OTECLIN = null

				set @OTECREG = null
			end
				
			if @MATKA = 'SK999999999999'
			begin
				-- neznamy povod -- 20161026
				set @MATKANEZ = @MATKA

				--set @MATKA = null
			end

			-- 20161109
			if @MATKA = 'SK888888888888'
			begin
				set @MATKA = null
			end
			
			-- zmena poradia prebiehajucej laktacie na cislo
			set @PORPREBLAK = CONVERT(int, @PORPREBLAK_)
			if @PORPREBLAK = 0
				set @PORPREBLAK = NULL
				
			-- nahrada prazdnej CISLOZV na NULL
			if @CISTEL = 'SK000000000000'
				set @CISTEL = NULL				
			
			if (@PL1 is not null)	
			begin
				set @povod = 4
				set @DobaNos = 0
			end	

			set @POHLTEL = right('00'+ rtrim(@POHLTEL), 2)
			if @POHLTEL = '00' or @POHLTEL = '**'
				set @POHLTEL = null

			delete from @IdTelBezCis

			set @IDTELATA = null
			set @_OTECLIN = null
			set @_OTECREG = null

			set	@pov_PL1 = null
			set	@pov_KR1 = null
			set	@pov_PL2 = null
			set	@pov_KR2 = null
			set	@pov_PL3 = null
			set	@pov_KR3 = null
			set	@pov_PL4 = null
			set	@pov_KR4 = null
			set	@pov_PL5 = null
			set @exist_cistel = 0

			set @T_MATKA =	@MATKA 
			set @T_OTECLIN = @OTECLIN 
			set @T_OTECREG = @OTECREG 
			set @T_OTEC = @OTEC

			-------------------------------------------------------						
			
			if (@DI = '1') or (@DI = '2')
			begin
				if (@DI = '2')
					set @operacia = 'UPD'
				else	
					set @operacia = 'INS'
					
				-- kontrola: je tela s danym cislom uz v CM_Telata
				if (@DI = '1')			
				begin
					exec @dupl = PLIS.dbo.C_aktual_zisti_dupl_tela  @MATKA, @DATNAR, @CISTEL, @POHLTEL 
					if @dupl = 1
					begin
						-- ak ma ist o doplnenie cisla telata (a dalsich udajov) telatu bez cisla - spracuje sa ako update (aj cisla zvierata)
						insert into @IdTelBezCis
						select IDTELATA, POHLAVIE from plis.dbo.CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR and CISTELATA is null

						if (select count(*) from @IdTelBezCis) = 1
						begin
							set @IDTELATA = (select IDTELATA from @IdTelBezCis)
						end
						else 
						begin
							if (select count(*) from @IdTelBezCis) > 1
								set @IDTELATA = (select top(1) IDTELATA from @IdTelBezCis where POHLAVIE = @POHLTEL)
						end

						-- kontrola, ci uz tela s danym cislom existuje -- 2016-07-06
						if (@CISTEL is not null)
						begin
							if (select count(*) from CM_Telata where CISTELATA = @CISTEL) > 0
								set @exist_cistel = 1
						end
						
						if (@IDTELATA is not null and @exist_cistel = 0)
						--if @IDTELATA is not null -- 2016-07-06
						begin
							set @DI = '2'
							set @operacia = 'UPD'
						end
						else
						begin
							-- priradenie chyby 43
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 43, @operacia
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end	
						end
					end
					else
					begin
						-- zistenie ci ide o dvojca -- 20170206
						exec @dvojca = plis.dbo.C_aktual_zisti_tela_dvojca  @MATKA, @DATNAR, @CISTEL, @POHLTEL
					end
				end
				else
				if (@DI = '2')
				begin
					select @IDTELATA = IDTELATA from PLIS.dbo.CM_Telata where (CISTELATA = @CISTEL)
					if @IDTELATA is null
						select top(1) @IDTELATA = IDTELATA from plis.dbo.CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR and POHLAVIE = @POHLTEL

					if (select COUNT(*) from PLIS.dbo.CM_Telata where (IDTELATA = @IDTELATA)) = 0
					begin
						-- priradenie chyby 111
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 111, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end	
					end	
					else
					--if (SELECT CHOVATEL FROM PLIS.dbo.CM_Telata WHERE IDTELATA = @IDTELATA) != @CHOVTEL
					-- kontrola na rozdielny chov len v pripade ak ide o inu KU v zmysle ML, MP (ML a TMHD sa nerozlisi)
					if ((SELECT CHOVATEL FROM PLIS.dbo.CM_Telata WHERE IDTELATA = @IDTELATA) != @CHOVTEL) 
						and not((plis.dbo.HDchov_typ_KU((SELECT CHOVATEL FROM PLIS.dbo.CM_Telata WHERE IDTELATA = @IDTELATA)) in ('ML', 'TMHD')) and (plis.dbo.HDchov_typ_KU(@CHOVTEL) in ('ML', 'TMHD')))
					begin
						-- priradenie chyby 64 (tela je z ineho chovu)
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 64, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end	
					end											
				end		
				
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVTEL)) = 0
				begin
					-- priradenie chyby 04
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 4, @operacia
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVTEL = (select null)
					end
				end			
				
				/*if not((@DI = '2') and (@PORPREBLAK is null))
					-- kontrola: pre kravu v KU neexistuje laktacia s danym poradim 
					if (select COUNT(*) from plis.dbo.CM_Laktacie where CISKRAVY = @MATKA and PORLAK = @PORPREBLAK) = 0 and 
						(select COUNT(*) from plis.dbo.CM_Naplak where CISKRAVY = @MATKA and PORLAK = @PORPREBLAK) = 0*/
					if (((select isnull(PORPREBLAK, 0) from plis.dbo.CM_Krava where CISKRAVY = @MATKA) >= isnull(@PORPREBLAK, 0))
					      and (@MATKA in (select MATKA from CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR and not(pohlavie in ('11','22','31','32','41','42','26','51','52')) ))  and (@DI = '1'))
					-- pre @DI = '2' kontola odpada
					begin
						-- priradenie chyby 44
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 44, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1') 
						begin
							set @PORPREBLAK = null
						end
					end	
				
				if not((@DI = '2') and (@POHLTEL is null))
					-- kontrola: Nesprávny kód pohlavia teľaťa 
					if (@POHLTEL not in (select KOD from plis.dbo.CC_Pohlavie)) or (@POHLTEL is null)
					begin
						-- priradenie chyby 25
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 25, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @POHLTEL = null
						end
					end				
				
				if not((@DI = '2') and (@DATNAR is null))
					-- kontrola: platny datum narodenia
					if (@DATNAR is null)
					begin
						-- priradenie chyby 12
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 12, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end
					end			
					else
					begin
						if (select datediff(day, @DATNAR, GETDATE())) < 0
						begin
							-- priradenie chyby 12
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 12, @operacia
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @DATNAR = null
							end
						end							
					end

				-- kontrola: otec nie je uvedeny
				if ((@OTECLIN is null or @OTECREG is null) and @OTEC is null) and (@DI = '1')
				--if (@OTECLIN is null or @OTECREG is null) and (@DI = '1')
				begin
					-- priradenie chyby 90
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 90, @operacia
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end		
				if (@OTECLIN is not null and @OTECREG is not null or @OTEC is not null)	
				begin	
					-- kontrola: otec nie je v CM_Byci
					--if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG)) = 0
				if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG or USCISLO = @OTEC and @OTEC is not null)) = 0
				begin
					-- priradenie chyby 07
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 7, @operacia
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @OTECLIN = (select null)
						set @OTECREG = (select null)
						set @OTEC = null
					end	
				end	
				else
				begin
					set @OtecJeVCM_Byci = (select 1)
					end
				end
					
				-- kontrola: matka nie je uvedena
				if (@MATKA is null)
				begin
					-- priradenie chyby 91
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 91, @operacia
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end	
				else
				begin								
					-- kontrola: matka nie je v CM_Krava
					if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @MATKA)) = 0
					begin
						-- priradenie chyby 06
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 6, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA = (select null)
						end	
					end	
					else
					begin
						set @MatkaJeVCM_Krava = (select 1)
					end								
				end	
				
				-- kontrola: chybny podiel krvi plemien a pripadny prepocet plemien
					
				--if ((@OtecJeVCM_Byci = 1 or @NajdenyOtecJeVCM_Byci = 1) and (@MatkaJeVCM_Krava = 1 or @NajdenaMatkaJeVCM_Krava = 1))
				--begin
				--	-- ak je povod ne-preukazny a hlasil plemennu skladbu - zober ju
				--	if not(@povod in ('2','3','5') and @PL1 is not null)
				--	begin
				--		select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OTEC, @MATKA, null)
				--	end
				--	else
				--	begin
				--		set @OTEC = @pov_OTEC
				--		set @OTECLIN = @pov_OTECLIN
				--		set @OTECREG = @pov_OTECREG
				--		set @povod = 4
				--		set @DobaNos = 0
				--	end
				--end
				--else
				if (@PL1 is not null)
				begin
					-- kontrola: chybny kod plemena
					set @PL1_POM = (select @PL1)
					if not((@PL1 is null or @PL1 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL2 is null or @PL2 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL3 is null or @PL3 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL4 is null or @PL4 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL5 is null or @PL5 in (select kodpl from PLIS.dbo.CC_Plemena)))		
					begin
						-- priradenie chyby 10
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 10, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end		
					
					if not (
					(
					((@PL1 is not null and @KR1 is not null) and (@PL2 is null and @KR2 is null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (@KR1 = 100)) or 

					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) = 100)) or 
												
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) = 100)) or 		
								
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) = 100)) or 
																	
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is not null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) <= 100))
					)	
					and
						(ISNULL(@KR1, 0) >= ISNULL(@KR2, 0)) and (ISNULL(@KR2, 0) >= ISNULL(@KR3, 0)) and (ISNULL(@KR3, 0) >= ISNULL(@KR4, 0)) and (100 - (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0)) <= ISNULL(@KR4, 0))
					)					
					begin
						-- priradenie chyby 11
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 11, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end	
					set @PL1 = @PL1_POM
				end
			
				
				if not((@DI = '2') and (@FARBA is null))
					-- kontrola: nespravny kod farby
					if (select COUNT(*) from PLIS.dbo.CC_Farby where (KODF = @FARBA)) = 0
					begin
						-- priradenie chyby 13
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 13, @operacia
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @FARBA = (select null)
						end	
					end		
				
				-- kontrola: nespravne oznacenie ET
				if @ZNAKET > 1 
				begin
					-- priradenie chyby 45
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 45, @operacia
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @ZNAKET = (select null)
					end	
				end				

				-- neboli chyby typu 2			
				if (@errorflag != 1)		
				begin
					-- zaradenie telata
					if (@DI = '1') 
					begin	
						-- znulovanie plemena ak nebolo spravne zadane
						-- urcenie povodu -- 20161110
						if (@DATNAR is not null and @POHLTEL is not null)
							exec PLIS.dbo.C_aktual_zisti_povod_telata @MATKA, @DATNAR, @POHLTEL, @OT output, @povod output, @DobaNos output
						if (@OT is not null) 
						begin
							select @T_OTEC = USCISLO, @T_OTECLIN = LIN, @T_OTECREG = REG from CM_Byci where IDBYKA = @OT	
						end	

						if (@povod != '1')
						begin
							if (@OTECLIN is not null )
								set @T_OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)	
							else							
							begin
								select @T_OTECLIN = LIN, @T_OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 
							end 
							set @povod = 4
							set @DobaNos = 0						
						end

						-- spustat prepocet plemena okrem pripadu, ked nie je znamy ote ani matka a plemeno je zadane --20161109
						if not ((@PL1 is not null) and ((dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, @T_OTEC) is null) and (dbo.C_aktual_zisti_IDKRAVY(@T_MATKA) is null)))
							or (@PL1 is null)
						begin
							-- ak je povod ne-preukazny a hlasil plemennu skladbu - zober ju
							if not(@povod in ('2','3','5') and @PL1 is not null)
							begin
								select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@T_OTEC, @T_MATKA, null)
							end
							else
							begin
								set @T_OTEC = @OTEC
								set @T_OTECLIN = @OTECLIN
								set @T_OTECREG = @OTECREG
								set @povod = 4
								set @DobaNos = 0
							end
						end
								
						if (@PL1 is NULL)
						begin
							select @KR1 = NULL, @PL2 = NULL, @KR2 = NULL, @PL3 = NULL, @KR3 = NULL, @PL4 = NULL, @KR4 = NULL, @PL5 = NULL
						end			
						-- neznamy povod -- 20161026		
						--if @OTECLIN is null and @OTEC is null and @OTECLINNEZ is not null
						--	set @OTECLIN = @OTECLINNEZ
								
						-- zviera s usnym cislom je v subore teliat
					INSERT INTO [PLIS].[dbo].[CM_Telata]
								([CISTELATA],[CHOVNAR],[OTECLIN],[OTECREG]
								,[OUC],[MATKA],[HMOTOT],[DATNAR],[HMOTNAR]
								,[PL1],[KR1],[PL2],[KR2],[PL3],[KR3],[PL4],[KR4],[PL5],[TYPPLEM]
								,[FARBA],[PORLAK],[POHLAVIE],[ZNAKET]
								,[PREUKAZ],[DOBANOS],[CHOVATEL],[PRIEBPOR],[URCTEL],[PRICOBTPOR],[PRICUHYN]
								,[DOVVYR],[DATVYR],[PRIZNAKKU],[IDMA]
								,[IDOT], SPRACINSERT, SPRACUPDATE)	
							values (@CISTEL, @CHOVTEL, @T_OTECLIN, @T_OTECREG
								,isnull(dbo.C_aktual_zisti_USCISBYKA(@T_OTECLIN, @T_OTECREG), @T_OTEC), @T_MATKA, null, @DATNAR, 30
								,@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, 
								PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5,@FARBA)
								,@FARBA, @PORPREBLAK, @POHLTEL, @ZNAKET
								,@povod, @DobaNos, @CHOVTEL, null, null, null, null
								,null, null, '1', PLIS.dbo.C_aktual_zisti_IDKRAVY(@T_MATKA)
								,PLIS.dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, null), @IDParChov, @IDParChov)			
						end
					
					-- oprava 
					else if (@DI = '2')	
					begin
						-- urcenie povodu -- 20161110
						select @T_OTECLIN = OTECLIN, @T_OTECREG = OTECREG, @T_OTEC = OUC, @T_MATKA = MATKA from PLIS.dbo.CM_Telata where IDTELATA = @IDTELATA
						if (@T_OTEC is null)
							select @T_OTEC = USCISLO from PLIS.dbo.CM_Byci where @T_OTECLIN = LIN and @T_OTECREG = REG
					
						if (@OTECLIN is not null) 
						begin
							set @T_OTECLIN = @OTECLIN
							set @T_OTECREG = @OTECREG 
							set @T_OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)
						
							set @povod = 4
							set @DobaNos = 0	
						end
						else if (@OTEC is not null)
							begin
								set @T_OTEC = @OTEC
								select @T_OTECLIN = LIN, @T_OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC  

								set @povod = 4
								set @DobaNos = 0	
							end
					
						if (@MATKA is not null)
						begin
							set @T_MATKA = @MATKA

							set @povod = 4
							set @DobaNos = 0	
						end
						
								            -- prepocet farby telata ak sa opravovala alebo nahlasovala matka alebo otec 

						if ((@MATKA is not null and @farba is null) or (@OTECLIN is not null and @farba is null) or (@OTEC is not null and @farba is null) )

                       begin 
                             if @Matka is not null 
		                        begin  
                                  select @MFARBA = FARBA from PLIS.dbo.CM_Krava where (CISKRAVY = @MATKA)
		                        end

                            if @Matka is null and (@OTECLIN is not null or @OTEC is not null)
                    		     begin
			                       select @POM_IDKRAVY = IDMA from PLIS.dbo.CM_Telata where (CISTELATA = @CISTEL)
				                   select @MFARBA = FARBA from PLIS.dbo.CM_Krava where (IDKRAVY = @POM_IDKRAVY)
			                     end
                           if (@OTECLIN is not null and @OTECREG is not null or @OTEC is not null)
		                         begin
			                       select @OFARBA = FARBA from PLIS.dbo.CM_BYCI where (LIN = @OTECLIN and REG = @OTECREG or USCISLO = @OTEC and @OTEC is not null)
			                     end
                           if @Matka is not null and (@OTECLIN is null and  @OTEC is  null)
		                         begin
			                       select @POM_IDBYKA = IDOT from PLIS.dbo.CM_Telata where (CISTELATA = @CISTEL)
				                   select @OFARBA = FARBA from PLIS.dbo.CM_BYCI where (IDBYKA = @POM_IDBYKA)
	                       		 end
	   	
		  
                           if (@MFarba is null) or (@OFarba is null) 
								begin
									set @Farba = null
								end
								else
								begin
									-- zistenie farby telata
									if @MFarba < @OFarba
										set @Farba = @MFarba
									else
										set @Farba = @OFarba
		                       end

                       end
						
						-- prepocet plemena okrem pripadu, ze nie je znamy aspon jeden rodic a je zadane plemeno -- 20161108
						if not(((dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, @T_OTEC) is null) or (dbo.C_aktual_zisti_IDKRAVY(@T_MATKA) is null)) and (@PL1 is not null))
							or (@PL1 is null)
						begin
							-- ak je povod ne-preukazny a hlasil plemennu skladbu - zober ju
							if not(@povod in ('2','3','5') and @PL1 is not null)
							begin
								select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@T_OTEC, @T_MATKA, null)
							end
							else
							begin
								set @T_OTEC = @OTEC
								set @T_OTECLIN = @OTECLIN
								set @T_OTECREG = @OTECREG
								set @povod = 4
								set @DobaNos = 0
							end
						end
					
							
						-- ak nedoslo k zmene v plemennej skladbe (po hlaseni alebo vypocte) neprepisuj povod
						select @pov_PL1 = PL1,@pov_KR1 = KR1, @pov_PL2 = PL2, @pov_KR2 = KR2, @pov_PL3 = PL3, @pov_KR3 = KR3, @pov_PL4 = PL4, @pov_KR4 = KR4, @pov_PL5 = PL5 from PLIS.dbo.CM_Telata where IDTELATA = @IDTELATA
						if (@pov_PL1 = @PL1 and isnull(@pov_KR1,0) = isnull(@KR1,0) and 
							isnull(@pov_PL2,0) = isnull(@PL2,0) and isnull(@pov_KR2,0) = isnull(@KR2,0) and 
							isnull(@pov_PL3,0) = isnull(@PL3,0) and isnull(@pov_KR3,0) = isnull(@KR3,0) and 
							isnull(@pov_PL4,0) = isnull(@PL4,0) and isnull(@pov_KR4,0) = isnull(@KR4,0) and 
							isnull(@pov_PL5,0) = isnull(@PL5,0) and @PL1 is not null) 
						begin
							set @PL1 = null
							set @povod = 4
							set @DobaNos = 0
						end


						-- vytvorenie dynamickeho update prikazu
						set @sql_update = ''
						if @CISTEL is not null
							set @sql_update = @sql_update + 'CISTELATA = ''' + @CISTEL + ''', '		
--						if @CHOVTEL is not null kobrtkova 2017/09/25
--							set @sql_update = @sql_update + 'CHOVATEL = ''' + @CHOVTEL + ''', '						
						if @PORPREBLAK is not null
							set @sql_update = @sql_update + 'PORLAK = ' + convert(varchar, @PORPREBLAK) + ', '			
						if @POHLTEL is not null
							set @sql_update = @sql_update + 'POHLAVIE = ''' + @POHLTEL + ''', '					

						-- neznamy povod -- 20161026
						if @OTECLINNEZ is not null
						begin				
							set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLINNEZ + ''', OTECREG = NULL, OUC = NULL, IDOT = NULL, '
						end
						else
						if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null)
						begin				
							set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, OUC = ''' + @OTEC + ''', IDOT = NULL, '
						end
						else
						--------------
						if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC) is not null and @OTECLIN is null)
						begin		
							if @T_OTECLIN is not null
								set @sql_update = @sql_update + 'OTECLIN = ''' + @T_OTECLIN + ''', OTECREG = ' + isnull(convert(varchar, @T_OTECREG), 'NULL') + ', '
							else
								set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, '
							set @sql_update = @sql_update + 'OUC = ''' + @OTEC + ''', IDOT = ' + convert(varchar, dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC)) + ', '
						end
						else
						--------------
						begin											

							if @T_OTECLIN is not null
								set @sql_update = @sql_update + 'OTECLIN = ''' + @T_OTECLIN + ''', '
							if @T_OTECREG is not null						   
								set @sql_update = @sql_update + 'OTECREG = ' + convert(varchar, @T_OTECREG) + ', '	
							if @T_OTECLIN is not null and @T_OTECREG is not null
							begin
								set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, null)
								if @pom_IDBYKA is not null
									set @sql_update = @sql_update + 'IDOT = ' + convert(varchar, @pom_IDBYKA) + ', '
								set @pom_OUSCIS = PLIS.dbo.C_aktual_zisti_USCISBYKA(@T_OTECLIN, @T_OTECREG)
								if @pom_OUSCIS is not null
									set @sql_update = @sql_update + 'OUC = ''' + @pom_OUSCIS + ''', '							
							end			
						end
						-- neznamy povod -- 20161026
						if (@MATKA is not null and dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)
						begin				
							set @sql_update = @sql_update + 'MATKA = ''' + @MATKA + ''', IDMA = NULL, '
						end
						else
						begin										
							if @T_MATKA is not null
							begin
								set @sql_update = @sql_update + 'MATKA = ''' + @T_MATKA + ''', '	
								set @pom_IDKRAVY = PLIS.dbo.C_aktual_zisti_IDKRAVY(@T_MATKA)
								if @pom_IDKRAVY is not null
									set @sql_update = @sql_update + 'IDMA = ' + convert(varchar, @pom_IDKRAVY) + ', '						
							end				
						end						
						if @DATNAR is not null
							set @sql_update = @sql_update + 'DATNAR = ''' + convert(varchar, @DATNAR) + ''', '
							
						if @PL1 is not null
						begin
							set @sql_update = @sql_update + 'PL1 = ''' + @PL1 + ''', KR1 = ' + convert(varchar, @KR1) + ', ' 
							if @PL2 is not null
								set @sql_update = @sql_update + 'PL2 = ''' + @PL2 + ''', KR2 = ' + convert(varchar, @KR2) + ', ' 
							else
								set @sql_update = @sql_update + 'PL2 = NULL, KR2 = NULL, ' 
							if @PL3 is not null
								set @sql_update = @sql_update + 'PL3 = ''' + @PL3 + ''', KR3 = ' + convert(varchar, @KR3) + ', ' 
							else
								set @sql_update = @sql_update + 'PL3 = NULL, KR3 = NULL, ' 							
							if @PL4 is not null
								set @sql_update = @sql_update + 'PL4 = ''' + @PL4 + ''', KR4 = ' + convert(varchar, @KR4) + ', ' 
							else
								set @sql_update = @sql_update + 'PL4 = NULL, KR4 = NULL, ' 							
							if @PL5 is not null
								set @sql_update = @sql_update + 'PL5 = ''' + @PL5 + ''', '
							else
								set @sql_update = @sql_update + 'PL5 = NULL, ' 
															
							set @pom_TYPPLEM = PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, @FARBA)
							if @pom_TYPPLEM is not NULL				
								set @sql_update = @sql_update + 'TYPPLEM = ''' + @pom_TYPPLEM + ''', '													
						end
						if @FARBA is not null
							set @sql_update = @sql_update + 'FARBA = ''' + @FARBA + ''', '					
						if @povod is not null
							set @sql_update = @sql_update + 'PREUKAZ = ''' + @povod + ''', '	
						if @DobaNos is not null
							set @sql_update = @sql_update + 'DOBANOS = ' + convert(varchar, @DobaNos) + ', '						
						if @ZNAKET is not null
							set @sql_update = @sql_update + 'ZNAKET = ' + convert(varchar, @ZNAKET) + ', '
						if @sql_update != ''
						begin
							set @sql_update = @sql_update + 'PRIZNAKKU = ''1'', SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' '					
							set @sql_update = @sql_update + 'where IDTELATA = ' + convert(varchar, @IDTELATA) + ''	
							set @sql_update = 'update PLIS.dbo.CM_Telata set ' + @sql_update
							exec (@sql_update)
						end   						
					end 
				end			
			end
			else 
			-- mazanie zaznamu o telati
			if (@DI = '3')
			begin
				if @CISTEL is not null 
				begin
					delete from CM_Telata where CISTELATA = @CISTEL
					delete from CM_Vazenia where CISTELATA = @CISTEL
				end
				else
					if @MATKA is not null and @DATNAR is not null
						delete from CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR
			end
			else
			-- iny typ informacie
			begin
				-- priradenie chyby 99
				exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatml_zapis_chybu] @IDR, 99, 'INS'
			end

			-- zaznam v kontajneri zaradeni nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD08_ZARTELIATML set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR		
			
      			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'8'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran zarteliatml;		
		
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'8'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran zarteliatml				
			
			FETCH NEXT
		FROM db_cursor_zarteliatml INTO 	
			 @IDR				
			,@CHOVTEL
			,@CISTEL
			,@PORPREBLAK_
			,@POHLTEL
			,@DATNAR
			,@OTECLIN
			,@OTECREG_
			,@OTEC
			,@MATKA
			,@PL1
			,@KR1
			,@PL2
			,@KR2
			,@PL3
			,@KR3
			,@PL4
			,@KR4
			,@PL5
			,@FARBA
			,@ZNAKET
			,@DI	
	end 
	
	CLOSE db_cursor_zarteliatml
	DEALLOCATE db_cursor_zarteliatml	
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Zarteliatml_aktualizacia ...OK'		
END
 
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.9.2017
-- Description:	Vyber udajov do reportu Rocenka MLHD tabulka 1 (Vysledky kontroly mliekovej uzitkovosti za Slovensko)
-- za rok 2017 - bol datumOd = '2017-01-01' a datumDo = '2018-02-05'
-- =============================================
CREATE procedure 
  [dbo].[Roc_MLHD_Tab1_rocenka_prepocet]
	@datumOd date,
	@datumDo date
	
as	
begin
  
  delete from Roc_MLHD_Tab_1_rocenka where rok = datepart (year,@datumOd);
  
insert into Roc_MLHD_Tab_1_rocenka
 ([oblast]
      ,[stpec_7]
      ,[stpec_8]
      ,[stpec_9]
      ,[stpec_10]
      ,[stpec_11]
      ,[stpec_12]
      ,[stpec_13]
      
      ,[stpec_15]
      ,[stpec_16]
      ,[stpec_17]
      ,[stpec_18]
      ,[stpec_19]
      ,[stpec_20]
      ,[stpec_21]
      ,[stpec_22]
      ,[stpec_23]
      ,[stpec_24]
      ,[stpec_25]
      ,[stpec_26]
      ,[stpec_27]
      ,[stpec_28]
      ,[stpec_29]
      ,[rok]
      ,[Por]
      ,[DatumOd]
      ,[DatumDo]
      ,[datumGenerovania]
	  ,[stpec_14]
	  )
select 
  (case when filter = 'SR' then 'SLOVENSKO'
   when filter = 'SR,Obl1' then 'ZA VÝROBNÚ OBLASŤ 1'
   when filter = 'SR,Obl2' then 'ZA VÝROBNÚ OBLASŤ 2'
   when filter = 'SR,ChZ1' then 'ZA ŠĽACHTIT. CHOVY STRAKATÉ'	
   when filter = 'SR,ChZ2' then 'ZA ŠĽACHTIT. CHOVY PINZGAU'
   when filter = 'SR,ChZ3' then 'ZA ŠĽACHTIT. CHOVY HOLSTEIN'
   when filter = 'SR,ChZ5' then 'ZA ŠĽACHTIT. CHOVY BRAUNVIEH'
   when filter = 'SR,ChZ0' then 'OSTATNÉ CHOVY'
   when filter = 'SR, ,S01' then 'POĽNOHOSP. DRUŽSTVÁ'
   when filter = 'SR, ,S02' then 'ŠTÁTNE MAJETKY'
   when filter = 'SR, ,S03' then 'POĽNOHOSP. ŠKOLY'
   when filter = 'SR, ,S08' then 'SÚKROMNÝ SEKTOR'
   --when filter = 'SR, ,S00' then 'OSTATNÉ SEKTORY'
   when filter = 'SR,KUst2' then 'ZA MAŠTALE DO 20'
   when filter = 'SR,KUst3' then 'MAŠT. 21-50'
   when filter = 'SR,KUst4' then 'MAŠT. 51-100'
   when filter = 'SR,KUst5' then 'MAŠT. 101-220'
   when filter = 'SR,KUst6' then 'MAŠT. 221-500'
   when filter = 'SR,KUst7' then 'MAŠT. 501 A VIAC'
  else ''
  END  ) as oblast

  , PocLakN1 as stpec_7
      ,round(LakdniNL1,0) as stpec_8
      ,round(MliekNorL1,0) as stpec_9
      , round((TukNorL1*100)/MliekNorL1,2) as stpec_10
      ,round(TukNorL1,0) as stpec_11
      ,round((BielkNorL1*100)/MliekNorL1,2) as stpec_12
      ,round(BielkNorL1,0) as stpec_13
      --,as stpec_14Den
      --,as stpec_14Mesiac
      ,PocLakN2 as stpec_15
      ,round(LakDniNL2,0) as stpec_16
      ,round(MliekNorL2,0) as stpec_17
      ,round((TukNorL2*100)/MliekNorL2,2) as stpec_18
	  
      ,round(TukNorL2,0) as stpec_19
      ,round((BielkNorL2*100)/MliekNorL2,2) as stpec_20
      ,round(BielkNorL2,0) as stpec_21
      ,round(MedziobdL2,0) as stpec_22
      ,PocLakNcelk as stpec_23      
	  ,round(LakDniNCelk,0) as stpec_24
      ,round(MliekNorCelk,0) as stpec_25
      ,round((TukNorCelk*100)/MliekNorCelk,2) as stpec_26
      ,round(TukNorCelk,0) as stpec_27
      ,round((BielkNorCelk*100)/MliekNorCelk,2) as stpec_28
      ,round(BielkNorCelk,0) as stpec_29
      ,datepart (year,@datumOd)as rok
     ,(case when filter = 'SR' then '1'
   when filter = 'SR,Obl1' then '2'
   when filter = 'SR,Obl2' then '3'
   when filter = 'SR,ChZ1' then '4'	
   when filter = 'SR,ChZ2' then '5'
   when filter = 'SR,ChZ3' then '6'
   when filter = 'SR,ChZ5' then '7'
   when filter = 'SR,ChZ0' then '8'
   when filter = 'SR, ,S01' then '9'
   when filter = 'SR, ,S02' then '10'
   when filter = 'SR, ,S03' then '11'
   when filter = 'SR, ,S08' then '12'
   --when filter = 'SR, ,S00' then '13'
   when filter = 'SR,KUst2' then '13'
   when filter = 'SR,KUst3' then '14'
   when filter = 'SR,KUst4' then '15'
   when filter = 'SR,KUst5' then '16'
   when filter = 'SR,KUst6' then '17'
   when filter = 'SR,KUst7' then '18'
  else ''
  END  ) as Por
      ,DatumOd as DatumOd
      ,DatumDo as DatumDo
      ,datumGenerovania as datumGenerovania
	  ,MedziobdL1 as stpec_14
	  FROM CR_LaktacneZostavy_Opr where DatumOd = @datumOd and DatumDo = @datumDo 
	  and Filter in ('SR','SR,Obl1','SR,Obl2','SR,ChZ1','SR,ChZ2' ,'SR,ChZ3' ,'SR,ChZ5','SR,ChZ0' ,'SR, ,S01','SR, ,S02','SR, ,S03','SR, ,S08',
	  'SR,KUst2' ,'SR,KUst3' , 'SR,KUst4','SR,KUst5' , 'SR,KUst6','SR,KUst7') 


end
go

CREATE procedure [dbo].[Rocenka_MPHD_9_plemTYP]
	
	@rok int
	--@plemeno varchar(9)

	as 
	begin

	select 	
    plemeno,
    isnull(prir_byk,0) as prir_byk,
    isnull(ins_byk,0) as ins_byk,
    isnull(nezn_byk,0) as nezn_byk,
    isnull(prir_tela,0) as prir_tela,
    isnull(ins_tela,0) as ins_tela,
    isnull(nezn_tela,0) as nezn_tela,
    isnull(prir_priem,0) as prir_priem,
    isnull(ins_priem,0) as ins_priem,
    isnull(nezn_priem,0) as nezn_priem,
    rok 
  from Roc_MPHD_Tab_9_plemTYP
	where @rok = rok 
	--@plemeno = plemeno
	 
	
		end
go







CREATE PROCEDURE [dbo].[C_VyberyHOL] @rndtb varchar(20)
	
AS

declare @CP_SPOL_BYCI varchar(40), @SQL varchar(max),
	@OUTPUT_TABLE varchar(40), @POCET VARCHAR(20)
	set @OUTPUT_TABLE = 'OUT' + @rndtb

BEGIN	

SELECT @SQL = 'CREATE TABLE CP_HOL_Plemenice' + @rndtb + '(
	[Uscislo] [varchar](15) NOT NULL,
	[ImportCis] [varchar](15) NULL,
	[Meno] [varchar](40) NULL,
	[Meno1] [varchar](15) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[Kr2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[Kr4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[Farba] [varchar](2) NULL,
	[Olin] [varchar](3) NULL,
	[Oreg] [int] NULL,
	[OUSCIS] [varchar](15) NULL,
	[MUSCIS] [varchar](15) NULL,
	[Datnar] [varchar](10) NULL,
	[Dovvyr] [varchar](2) NULL,
	[DatVyr] [varchar](10) NULL,
	[Pohlavie] [varchar](2) NULL,
	[Majitel] [varchar](9) NULL
)'
EXEC(@SQL)
PRINT  GETDATE()
SELECT @SQL = 'insert into CP_HOL_Plemenice' + @rndtb + ' 
       (  UsCislo, ImportCis, Meno, Meno1, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, FARBA, Olin, Oreg, OUSCIS, 
                         MUSCIS, DATNAR, DOVVYR, DATVYR, Pohlavie, Majitel)
 
        (select UsCislo, ''              '', Meno,  ''              '', PL1, KR1, PL2, KR2, PL3, KR3,
		 PL4, KR4, PL5, FARBA, Olin, Oreg, case when OUSCIS = ''SK00000000000Y ''then ''SK000000000000 '' else OUSCIS end, 
         case when MUSCIS = ''SK00000000000X ''then ''SK000000000000 '' else MUSCIS end, CONVERT(CHAR(10),DATNAR,120),  DOVVYR, CONVERT(CHAR(10),DATVYR, 120),  Pohlavie, Majitel
	    from dbo.View_CP_VybHolPlemenice
       )'
EXEC(@SQL)
PRINT  GETDATE()
PRINT @SQL

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_HOL_Plemenice'', ''' + @POCET + ''')'
EXEC (@SQL)



/* vybery potomstvo*/
SELECT @SQL = 'CREATE TABLE CP_HOL_Potomstvo' +  @rndtb + '(
	[CisJal] [varchar](14) NOT NULL,
	[ChovNar] [varchar](9) NOT NULL,
	[PK] [varchar](3) NULL,
	[OtecLin] [varchar](3) NULL,
	[OtecReg] [int] NULL,
	[Matka] [varchar](15) NULL,
	[DatNar] [varchar](10) NULL,
	[HmotNar] [float] NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[Kr2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[Kr4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[TypPLem] [varchar](3) NULL,
	[Farba] [varchar](2) NULL,
	[PorLak] [int] NULL,
	[Pohlavie] [varchar](2) NULL,
	[ZnakET] [bit] NULL,
	[Preukaz] [varchar](1) NULL,
	[Dobanos] [float] NULL,
	[DatPrip] [varchar](10) NULL,
	[DatVys] [varchar](10) NULL,
	[ZnakBrez] [varchar](1) NULL,
	[BykLin] [varchar](3) NULL,
	[BykReg] [int] NULL,
	[CisByk] [varchar](15) NULL,
	[DovVyr] [varchar](2) NULL,
	[DatVyr] [varchar](10) NULL
)'
EXEC (@SQL)
PRINT GETDATE()
SELECT @SQL = 'insert into CP_HOL_Potomstvo' +  @rndtb + '
       ( CisJal, ChovNAR, PK, OtecLIN, OtecREG, Matka, Datnar, Hmotnar, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5,  TYPPLEM, Farba, 
         PorLak, Pohlavie, ZNAKET, preukaz, DOBANOS, DatPrip, ZnakBrez, BykLin, BykReg, Cisbyk,  DOVVYR, DATVYR

	   )
	   (select 
	   CisJal, ChovNAR, PK, OtecLIN, OtecREG, case when MATKA = ''SK00000000000X ''then ''SK000000000000 '' else MATKA end, CONVERT(CHAR(10),Datnar, 120) , Hmotnar, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, TYPPLEM, Farba, 
       PorLak, Pohlavie, ZNAKET, preukaz, DOBANOS, CONVERT(CHAR(10),DatPrip, 120), ZnakBrez, BykLin, BykReg, Cisbyk, DOVVYR, CONVERT(CHAR(10),DATVYR, 120)
	   from dbo.View_CP_VybHolPotomstvo
	   )'
EXEC (@SQL)
PRINT GETDATE()
PRINT @SQL
SELECT @POCET = @@ROWCOUNT

SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_HOL_Potomstvo'', ''' + @POCET + ''')'
EXEC (@SQL)


/* vybery poslednych insemenacii PRIPPLEM*/ 
SELECT @SQL = 'CREATE TABLE CP_HOL_PripPlem' +  @rndtb + '(
	[UsCislo] [varchar](15) NOT NULL,
	[Blin] [varchar](3) NULL,
	[Breg] [int] NULL,
	[BUsCis] [varchar](15) NULL,
	[BMeno] [varchar](40) NULL,
	[PorPrip] [int] NULL,
	[DatPrip] [varchar](10) NULL,
	[ZnBrez] [varchar](1) NULL
)'
EXEC (@SQL)

PRINT GETDATE()
SELECT @SQL = 'insert into CP_HOL_PripPlem' +  @rndtb + '
       ( UsCislo, BLIN, BREG, BUsCis, BMeno, PorPrip, DatPrip, ZnBrez
       )

(SELECT        k. USCISLO, i.IBLIN as BLIN, i.IBREG as BREG, i.USCISLO as BUSCIS, i.MENO as BMENO, i.IPOIN as PorPrip, CONVERT(CHAR(10),i.IDAIN, 120) as DatPrip,
              i.IVYSE as ZnBrez
FROM            dbo.View_CP_VybHolPlemenice k
 INNER  JOIN
 dbo.View_CP_poslednaInseminacia AS i ON substring (k.Uscislo, 1, 14)  = i.IPLCA and year(i.idain) > ''2014''
 )'
EXEC (@SQL)
PRINT GETDATE()
PRINT @SQL
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_HOL_PripPlem'', ''' + @POCET + ''')'
EXEC (@SQL)


 /* vybery laktacií  z ukončených aj naplaku*/ 
 
SELECT @SQL = 'CREATE TABLE CP_HOL_Laktacie' +  @rndtb + '(
	[UsCislo] [varchar](15) NOT NULL,
	[PorLakt] [int] NULL,
	[DatOtel] [varchar](10) NULL,
	[PohlTel] [varchar](2) NULL,
	[Zmena] [varchar](2) NULL,
	[Ukoncena] [varchar](1) NULL,
	[Dni] [float] NULL,
	[Mlieko] [decimal](7, 0) NULL,
	[Tuk] [decimal](7, 2) NULL,
	[TukPerc] [decimal](7, 2) NULL,
	[Bielk] [decimal](7, 2) NULL,
	[BielkPerc] [decimal](7, 2) NULL,
	[NormDni] [float] NULL,
	[NormMlieko] [float] NULL,
	[NormTuk] [decimal](7, 2) NULL,
	[NormTukPer] [decimal](7, 2) NULL,
	[NormBielk] [decimal](7, 2) NULL,
	[NormBielPer] [decimal](7, 2) NULL
)'
EXEC (@SQL)

PRINT GETDATE()
SELECT @SQL = 'insert into  CP_HOL_Laktacie' +  @rndtb + '
    (UsCislo, PorLakt, DatOtel, PohlTel, Zmena, Ukoncena, Dni, Mlieko, Tuk, TukPerc, Bielk, BielkPerc, NormDni, NormMlieko, NormTuk, NormTukPer,
	 NormBielk, NormBielPer)
SELECT        l.CISKRAVY + '''' as Uscislo, l.PORLAK AS PorLakt, CONVERT(CHAR(10),l.DATOTEL, 120), l.POHLAVIE AS PohlTel, l.ZMENA, ''1'' AS Ukoncena,
          (case  when na.laktdni is null then l.laktdni else na.laktdni end)  as DNI, 
          (case when na.MLIEKCEL is null then (convert(decimal (7,0), (case when l.MLIEKCEL < l.MLIEKNOR then  l.MliekNor  else  l.MliekCel end))) else na.MLIEKCEL end)  AS Mlieko,
		  (case when na.TUKCEL is null then (convert(decimal (7,2), (case when l.TUKCEL < l.TUKNOR then  l.TUKNor  else  l.TUKCel end))) else na.TUKCEL end) AS Tuk, 
          (case when na.TUKCEL is null then (convert(decimal (7,2),  l.TUKCEL / l.MLIEKCEL * 100)) else (convert(decimal (7,2),  na.TUKCEL / na.MLIEKCEL * 100)) end ) AS TukPerc,
	     (case when na.BIELKCEL is null then (convert(decimal (7,2),  (case when l.BIELKCEL < l.BIELKNOR then  l.BIELKNOR  else  l.BIELKCEL end))) else na.BIELKCEL end)  AS Bielk, 
		 (case when na.BIELKCEL is null then (convert (decimal (7,2), l.BIELKCEL / l.MLIEKCEL * 100)) else (convert (decimal (7,2), na.BIELKCEL / na.MLIEKCEL * 100)) end ) AS BielkPerc, 
		  case when l.LAKTDNI < l.LAKDNIN then 0 else l.LAKDNIN end as NormDni,
		  convert(decimal (7,0) , (case when l.LAKTDNI < l.LAKDNIN then 0 else l.MLIEKNOR end)) AS NormMlieko, 
          convert(decimal (7,2), ( case when l.laktdni < l.lakdnin  then 0 else  l.TUKNOR end ))  AS NormTuk,
		  convert(decimal (7,2), l.TUKNOR / l.MLIEKNOR * 100) AS NormTukPer, 
		  convert(decimal (7,2),l.BIELKNOR) AS NormBielk, convert (decimal (7,2), (l.BIELKNOR / l.MLIEKNOR * 100)) AS NormBielPer
		   FROM [dbo].[CM_Laktacie] as l
                 left outer join
                 CM_Krava AS k ON l.CISKRAVY = k.CISKRAVY
				 left outer join
                 CM_NAPLAK AS na  ON l.CISKRAVY = na.CISKRAVY and l.PORLAK = na.PORLAK
           where 
		  (      (k.TYPPLEM in (
                  ''62'', ''66'', ''72'', ''73'', ''76'', ''77'', ''82'', ''83'', ''84'', ''86'', ''87'', ''88'', ''92'', ''93'', ''94'', ''95'', ''96'', ''97'', ''98'', ''99'') and PRIZNAKKU = 1) 
	            OR (RTrim(PL1) IN (''H'', ''R'') AND PRIZNAKKU = ''1'')
			    OR
                (PRIZNAKKU = 1 AND (RTRIM(PL2) IN (''H'', ''R'')) AND KR2 = 50)
				OR   (PRIZNAKKU = 1 AND PL1 = ''J'')
			)
           and   
         ( not  ( (l.laktdni  < 0 and l.laktdni is not null) or (l.TUKCEL < 0 and l.TUKCEL is not null) 
                or (l.BIELKCEL < 0 and l.bielkcel is not null) or (l.TUKNOR < 0 and l.tuknor is not null) or 
				(l.BIELKNOR < 0 and l.bielknor is not null) or (l.MLIEKCEL< 0 and l.mliekcel  is not null )
				or 	(l.MLIEKNOR< 0 and l.mliekNOr  is not null )))
union
(SELECT        n.CISKRAVY + '''' as Uscislo, n.PORLAK AS PorLakt, n.DATOTEL, n.POHLAVIE AS PohlTel, n.ZMENA, ''0'' AS Ukoncena, n.LAKTDNI AS Dni,
          convert(decimal (7,0), (case when n.MLIEKCEL < n.MLIEKNOR then  n.MliekNor  else  n.MliekCel end))  AS Mlieko,
		  convert(decimal (7,2), (case when n.TUKCEL < n.TUKNOR then  n.TUKNor  else  n.TUKCel end)) AS Tuk, 
           convert(decimal (7,2),  n.TUKCEL / n.MLIEKCEL * 100) AS TukPerc,
	      convert(decimal (7,2),  (case when n.BIELKCEL < n.BIELKNOR then  n.BIELKNOR  else  n.BIELKCEL end)) AS Bielk, 
		  convert (decimal (7,2), n.BIELKCEL / n.MLIEKCEL * 100) AS BielkPerc, 
		  convert(decimal (7,0), (case when n.LAKTDNI < n.LAKDNIN then 0 else n.LAKDNIN end)) as NormDni,
		  convert(decimal (7,0), (case when n.LAKTDNI < n.LAKDNIN then 0 else n.MLIEKNOR end)) AS NormMlieko, 
          convert(decimal (7,2), ( case when n.laktdni < n.lakdnin  then 0 else  n.TUKNOR end ))  AS NormTuk,
		  convert(decimal (7,2), n.TUKNOR / n.MLIEKNOR * 100) AS NormTukPer, 
		  convert(decimal (7,2),n.BIELKNOR) AS NormBielk, convert (decimal (7,2), n.BIELKNOR / n.MLIEKNOR * 100) AS NormBielPer
FROM            dbo.CM_Naplak AS n left outer  JOIN
                         dbo.CM_Krava AS k ON n.CISKRAVY = k.CISKRAVY
  where  
   (( k.TYPPLEM in (
                  ''62'', ''66'', ''72'', ''73'', ''76'', ''77'', ''82'', ''83'', ''84'', ''86'', ''87'', ''88'', ''92'', ''93'', ''94'', ''95'', ''96'', ''97'', ''98'', ''99'') and priznakku = 1  )

             OR   (RTrim(PL1) IN (''H'', ''R'') AND PRIZNAKKU = ''1'')
             OR   (PRIZNAKKU = 1 AND (RTRIM(PL2) IN (''H'', ''R'')) AND KR2 = 50)
			 OR   (PRIZNAKKU = 1 AND PL1 = ''J'') )           
 
        and 
   ( not exists (select  1 from CM_Laktacie as la where n.CISKRAVY = la.CISKRAVY  and n.PORLAK = la.PORLAK))
and 
(not  ( (n.laktdni  < 0 and n.laktdni is not null) or (n.TUKCEL < 0 and n.TUKCEL is not null) 
                or (n.BIELKCEL < 0 and n.bielkcel is not null) or (n.TUKNOR < 0 and n.tuknor is not null) or 
				(n.BIELKNOR < 0 and n.bielknor is not null)or (n.MLIEKCEL< 0 and n.mliekcel  is not null ) or
				(n.MLIEKNOR< 0 and n.mliekNOr  is not null )))
  
)'
EXEC (@SQL)
PRINT GETDATE()
PRINT @SQL
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_HOL_Laktacie'', ''' + @POCET + ''')'
EXEC (@SQL)


 /* vybery KRAVTDM*/
SELECT @SQL = 'CREATE TABLE CP_HOL_KRAVTDM' +  @rndtb + '(
	[KRAVA] [varchar](15) NULL,
	[POZN] [varchar](2) NULL,
	[DATUMN] [varchar](10) NULL,
	[ROK] [int] NULL,
	[SIRE] [varchar](15) NULL,
	[DAM] [varchar](15) NULL,
	[BREEDG] [varchar](2) NULL,
	[PLEMENO] [varchar](30) NULL,
	[NH] [int] NULL,
	[ND] [int] NULL,
	[NR] [int] NULL,
	[N] [int] NULL,
	[MLIEKO] [int] NULL,
	[TUK] [int] NULL,
	[TUKP] [decimal](3, 2) NULL,
	[BIELK] [int] NULL,
	[BIELKP] [decimal](3, 2) NULL,
	[SPI] [int] NULL,
	[M305] [decimal](6, 1) NULL,
	[RPHM] [int] NULL,
	[M100] [decimal](7, 1) NULL,
	[MREL] [decimal](5, 4) NULL,
	[T305] [decimal](7, 2) NULL,
	[RPHT] [int] NULL,
	[T100] [decimal](7, 2) NULL,
	[TP] [decimal](7, 2) NULL,
	[TPERC] [decimal](7, 2) NULL,
	[TREL] [decimal](5, 4) NULL,
	[B305] [decimal](7, 2) NULL,
	[RPHB] [int] NULL,
	[B100] [decimal](7, 2) NULL,
	[BP] [decimal](5, 2) NULL,
	[BPERC] [decimal](5, 2) NULL,
	[BREL] [decimal](5, 4) NULL,
	[REL] [decimal](5, 4) NULL
)'
EXEC (@SQL)
PRINT GETDATE()
SELECT @SQL = 'insert into CP_HOL_KRAVTDM' +  @rndtb + ' 
       ( KRAVA ,POZN, DATUMN,ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL)
 
        ( select KRAVA , POZN, CONVERT(CHAR(10),DATUMN, 120),ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL
	    from dbo.CP_BLUP_KRAVYTDM
		where plem = ''H''
       )'
EXEC (@SQL)
PRINT GETDATE()
PRINT @SQL
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_HOL_KRAVTDM'', ''' + @POCET + ''')'
EXEC (@SQL)

SELECT @SQL = 'select * from ' + @OUTPUT_TABLE
EXEC (@SQL)

  
 
END


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Funkcnost:
-- pomocou jedineho query: select @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;
-- (funkcia max je tam vlozena, aby tento query vratil null, aj ked neexistuju rodicia daneho usneho cisla, 
-- ak by tam max nebolo, vrati ziadne riadky pri neznamych rodicoch (je potrebne aby vratilo NULL))
-- funkcia hlada otcov a matky, ktorych jednak vklada do @tab, funkcia vracia tabulku @tab, a takisto vklada rodicov aj do retazca,
-- z ktoreho vybera nasledujuceho otca alebo matku, a zistuje jeho otca a matku atd...(nesiaha sa selectom do @tab)
-- podmienka vonkajsieho cyklu @h<=3 urcuje hlbku generacie (@h<=3 je do hlbky 3, t.j. 15 predkov, zacina sa od otca a matky ako 1. gen.)
-- (@h<=5 by bola do hlbky generacie 5, t.j. 62 predkov)
-- v pripade, ak ma byk usne cislo dlzku mensiu ako 14 znakov, doplni $ do 14 znakov. 
-- pri vyhladavani rodicov so znakom $, ho zmeni na usne cislo bez $, t.j. take, ake je v databaze.
-- v pripade ak nema usne cislo rodicov, namiesto nich ulozi do pola 14 prazdnych medzier.
-- v @pole su jednotlive usne cisla oddelene ciarkou.
-- pri zmene hlbky rodokmena, treba nastavit @h<=3, inu hodnotu a zvysit dlzku @pole.
-- jednotlivi rodicia idu za radom v @tab nasledovne: 
-- O,M,OO,MO,OM,MM,OOO,MOO,OMO,MMO,OOM,MOM,OMM,MMM,OOOO,MOOO,OMOO,MMOO,OOMO,MOMO,OMMO,MMMO,
-- OOOM, MOOM, OMOM, MMOM, OOMM, MOMM, OMMM, MMMM atd. vzdy od otca
-- =============================================
CREATE FUNCTION [dbo].[ZistiRodokmenTabulka](@usnecislo varchar(14))
RETURNS @tab table(rodokmen varchar(14))
AS
begin 

declare @otec varchar(14)
set @otec = ''

declare @matka varchar(14)
set @matka = ''

declare @i int;
set @i = 1;

declare @j int;
set @j = 1;

declare @h int;
set @h = 1;

declare @counter int;
set @counter = 1;

declare @pole varchar(500)
set @pole = '';


insert into @tab values (@usnecislo); --otec 1 generacia

while @h<=3 --3 generacie
	begin
	set @i = 1;
		while @i <= @j
			begin
				set @usnecislo = REPLACE(@usnecislo,'$','');
				select    @otec = max(otec), @matka = max(matka) from Ainbreeding where uscislo = @usnecislo;			
				if (@usnecislo = '              ') begin set @otec = null; set @matka = null; end; /*aby sa neprenasali cisla predosle do pola na nespravne miesto*/
				if (@otec is not null and @matka is not null)	
					begin	
						set @pole = @pole+@otec+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(@otec),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is null and @matka is not null)	
					begin				
						set @pole = @pole+'              '+','+@matka+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);	
						insert into @tab values(null),(@matka)
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;
				if (@otec is not null and @matka is null)	
					begin				
						set @pole = @pole+@otec+','+'              '+','; 
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(@otec),(null)	
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
				if (@otec is null and @matka is null) 
					begin
						set @pole = @pole+'              '+','+'              '+','; 		
						set @usnecislo =left((SUBSTRING(@pole,@counter,14))+'$$$$$$$$$$$$$$',14);
						insert into @tab values(null),(null)		
						set @i = @i + 1;
						set @counter = @counter + 15;
					end;				
			end;	
		set @j = POWER(2,@h);
	set @h = @h + 1;
	end;
return 

end;


/*
declare  @tab table(rodokmen  varchar(500))
insert into @tab values('John'),('Sarah'),('George')

select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))

select rodokmen from dbo.ZistiRodokmenTabulka('SK000800583767') where rodokmen in(
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484'))
use plis
select rodokmen from dbo.ZistiRodokmenTabulka('SK000800389967')
select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')

select rodokmen from dbo.ZistiRodokmenTabulka('US000001964484')
group by rodokmen having count(rodokmen) >= 2

SELECT count(rodokmen) FROM dbo.ZistiRodokmenTabulka('SK000800389967') 
as tab where (select count(rodokmen) from dbo.ZistiRodokmenTabulka('SK000800389967') where rodokmen = tab.rodokmen) > 1

*/
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Kravy_21_test]
AS
BEGIN
	
	TRUNCATE TABLE CP_Mlieko_Kravy_21

	declare @c varchar(9);
	/*declare @ouc as varchar(14);
	declare @o as varchar(7);
	declare @meno as varchar(50)
	declare @nazlin as varchar (30)
	declare @plemena as varchar(80)
	declare @poc12 as int;
	declare @pocnad12 as int;
	declare @po412P as float;
	declare @po4nad12P as float;
	declare @s as int
	declare @pocOtec as int;
	declare @percOtec as float;
	declare @kolko as int;
	declare @i as int
set @i=0
set @kolko=9
while @i<4
*/
begin
	declare chov cursor for
	SELECT distinct [CHOVATEL]
	FROM [View_CP_TelataPocetDO38Mes]

	open chov
	fetch next from chov into @c

	while @@FETCH_STATUS=0
	begin

	insert into CP_Mlieko_Kravy_21([Chovatel]
      ,[OUC]
      ,[otec]
      ,[MENO]
      ,[nazlin]
      ,[plemena]
      ,[Poc12]
      ,[PocNad12]
      ,[po4et12Perc]
      ,[po4etNad12Perc]
      ,[po4et]
      ,[preOtec]
      ,[percOtec])	
	
	(select a.CHOVATEL,  a.ouc,a.OTECLIN+'-'+ right('000'+convert(varchar(3),a.OTECREG),3) as otec,
	b.MENO,l.nazlin,

		ISNULL(b.PL1 + '-' + CONVERT (varchar, b.KR1), '') + '  ' + ISNULL(ISNULL(b.PL2, '') 
		+ '-' + CONVERT (varchar, b.KR2), '') + '  ' + ISNULL(b.PL3 + '-' + CONVERT (varchar, b.KR3), '') + '  ' 
		+ ISNULL(b.PL4 + '-' + CONVERT (varchar, b.KR4), '') + '  ' + ISNULL(b.PL5 + '-' + 
		CONVERT (varchar, 100 - (b.KR1 + b.KR2 + b.KR3 + b.KR4)), '') AS plemena,
		m12.po4et as DO12Mes,
		m38.po4et as Nad38Mes,
		convert(float,m12.po4et)*1.00000/convert(float,p12.pocet)*1.00000 as do12mespoc, 
		convert(float,m38.po4et)*1.00000/convert(float,p38.pocet)*1.00000 as nad38mespoc,
		null,
		a.po4et,
		convert(float,a.po4et)*1.00000/s.pocet as PocetPreChov


			from (
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, CHOVATEL
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							   AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							   AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY CHOVATEL, OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 6) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							   AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							   AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 6), OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 3) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') 
							   AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 3), OUC, OTECLIN, OTECREG
			UNION
			SELECT        COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, substring(CHOVATEL, 1, 1) AS chovatel
			FROM            dbo.CM_Telata AS t
			WHERE        (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> '62') 
							   AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 between 0 and 38)
			GROUP BY substring(CHOVATEL, 1, 1), OUC, OTECLIN, OTECREG) as a
			left join CM_Byci as b on
			a.OUC=b.USCISLO
			left join View_cp_telataPoOtecDo12m as m12
			on (a.CHOVATEL=m12.chovatel  and (a.OTECLIN=m12.OTECLIN or  (a.oteclin is null and m12.oteclin is null))and (a.OTECREG=m12.OTECREG or  (a.otecreg is null and m12.otecreg is null)))
			left join View_CP_telataPoOtcoNad12m as m38
			on (a.CHOVATEL=m38.chovatel  and (a.OTECLIN=m38.OTECLIN  or  (a.oteclin is null and m38.oteclin is null) )and (a.OTECREG=m38.OTECREG or  (a.otecreg is null and m38.otecreg is null)) )
			left join View_cp_telataDo12mes as p12
			on a.CHOVATEL=p12.CHOVATEL
			left join View_CP_TelataNad12mes as p38
			on a.CHOVATEL=p38.CHOVATEL
			left join View_CP_TelataPocetDO38Mes as s
			on a.CHOVATEL=s.CHOVATEL
				left join CC_Linie as l
			on b.LIN=l.lin


			where a.CHOVATEL=@c)

			

		
		

	fetch next from chov into @c
	end

	close chov
	deallocate chov
	
	
	
	
	end

END
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 29.09.2016
-- Description:	info o reprodukcii bahnice v skrátenej forme 
--				- vrati 9 miestny kod (co miesto to 1 rok) 
-- =============================================
CREATE FUNCTION [dbo].[S_Bahnica_reprodukcia_skrat_forma]
(
	@bahcis varchar(8)
)
RETURNS varchar(9)
AS
BEGIN

	--		declare @bahcis varchar(9) = '00399649'
	declare @potomstvo varchar(9) = ''
	declare @rok varchar(4) = (select year(GETDATE()) )

	declare @tab table(
	  riadok int,
	  rok varchar(4),
	  pocet int
	)

	declare @go int = 0
	declare @max int-- = (select count(*) from SM_KonZap  where bahcis = @bahcis)

	insert @tab
	select RowNumber, substring(rokev1, 1, 2) + rokev2, pocet from (
		select 
		ROW_NUMBER() OVER (ORDER BY rokev2) AS RowNumber,
		rokev1, rokev2, --count(*) as pocet
		(select count(*) from SM_KonZapPotomok p  where p.ID_KonZap = kz.id) as pocet
		from SM_KonZap kz 
		--inner join SM_KonZapPotomok p on p.ID_KonZap = kz.id
		--	SM_KonZapPotomok p
		--	left outer join SM_KonZap kz on kz.id = p.ID_KonZap
		where bahcis = @bahcis and kz.datobah is not null
		group by rokev1, rokev2,  kz.id
		--order by rokev1, rokev2 desc
	) t

	--select * from @tab

	--set @max = (select count(*) from @tab)
	set @max = (select year(GETDATE()) - year(datnar) from SM_BAHNICA where bahcis =  @bahcis)
	if (@max > 9)
		set @max = 9

	--select * from @tab

	--select top 1 * from @tab where rok not in (select top 1 rok from @tab order by rok desc) order by rok desc


	while  @go < @max
	begin	
		--declare @poc  int = (select top 1 pocet from @tab where riadok = @max - @go)
		declare @poc  varchar(1) = CAST( (select top 1 pocet from @tab where rok = (@rok - @go) order by pocet desc)  as varchar(1))	--fix order kvoli duplicite - treba opravit duplicitz
		if (@poc is null)
			set @poc = '-'
		else if (@poc = '0')
			set @poc = 'J'
		set @potomstvo = @potomstvo + @poc
		--select top 1 * from @tab where riadok = @max - @go
		set @go = @go + 1
	end

	return @potomstvo;

END

go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MedziObdobZostavaB]
AS
BEGIN
/***********************************************
	! please run affter C_Aktual_KodDojKodMedzi AND C_ZZ_UZAVRETELAKTSKLADBA_FINAL!

	USING TABLE:CM_Krava,CC_Dojivost,CC_Medziobd,CP_KravaPoslednaUzavLakt

	CHANGING TABLE:CP_MedziobdZostavaB

	USED:(9.B) Medziobdobie podľa úžitkovosti za poslednú uzavretú laktáciu 
*********************************************/

TRUNCATE TABLE CP_MedziobdZostavaB
	
	declare @c as varchar(9)
	declare @kod1 as int --medziobdobie
	declare @kod2 as int --mlieko
	declare @nazovml as varchar(20)
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @ls as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @ps as float;
	declare @s as int;

	declare chovatel cursor for
	select distinct chovatel
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	
	union 
	
	select distinct substring(chovatel,1,6)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	
	union
	
	select distinct substring(chovatel,1,3)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,1)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	/*select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null*/

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_Mlieko_MedziObdobZostavaB')
			DROP TABLE TEMPTABLE_Mlieko_MedziObdobZostavaB					
		select l.Kod_Medz, l.Kod_Doj into TEMPTABLE_Mlieko_MedziObdobZostavaB 
				from CP_KravaPoslednaUzavLakt as l 
				inner join CM_Krava as k 
				on k.CISKRAVY=l.cislokrava 
				where k.CHOVATEL like @C+'%'  
				and k.DOVVYR is null	
				
		declare mleko cursor for
		select nazov,kod
		from CC_Dojivost

		open mleko
		fetch next from mleko into @nazovml,@kod2
		
		while @@FETCH_STATUS=0
		begin
			declare hran cursor for
			select kod
			from CC_Medziobd

			open hran
			fetch next from hran into @kod1

			while @@FETCH_STATUS=0
			begin			
				set @s=(select count(*)
				 from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
				where l.Kod_Medz is not null
				and l.Kod_Medz!=1
				and l.Kod_Doj is not null)
				
				if(@s=0) begin set @s=NULL; end
				
				if(@kod1=1)
				begin
					set @l1=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=1 )
					set @p1=(convert(float,@l1*100)*1.00)/@s;
				end

				if(@kod1=2)
				begin
					set @l2=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=2 )
					set @p2=(convert(float,@l2*100)*1.00)/@s;
				end

				if(@kod1=3)
				begin
					set @l3=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=3 )
					set @p3=(convert(float,@l3*100)*1.00)/@s;
				end

				if(@kod1=4)
				begin
					set @l4=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=4 )
					set @p4=(convert(float,@l4*100)*1.00)/@s;
				end

				if(@kod1=5)
				begin
					set @l5=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							 and l.KOD_MEDZ=5 )
					set @p5=(convert(float,@l5*100)*1.00)/@s;
				end

				if(@kod1=6)
				begin
					set @l6=(select count(*) 
							from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
							where l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=6 )
					set @p6=(convert(float,@l6*100)*1.00)/@s;
				end


				set @ls=(select count(*) 
						from TEMPTABLE_Mlieko_MedziObdobZostavaB as l 
						where l.KOD_DOJ=@kod2 
						and l.KOD_MEDZ is not null 
						and KOD_MEDZ!=1 )
				set @ps=(convert(float,@ls*100)*1.00)/@s;
					
				
				fetch next from hran into @kod1
			end
			close hran
			deallocate hran;

			insert into CP_MedziobdZostavaB values(@c,@nazovml,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@ls,@ps,NULL,@s); 


			fetch next from mleko into @nazovml,@kod2
		end
		
		close mleko;
		deallocate mleko;

		fetch next from chovatel into @C;
	end

	close chovatel
	deallocate chovatel;
	
	IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_Mlieko_MedziObdobZostavaB')
		DROP TABLE TEMPTABLE_Mlieko_MedziObdobZostavaB		
	
END

go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 06.09.2012
-- Description:	Zisti ci tela je duplicitne hlasene
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_zisti_dupl_tela]
	@ParMatka [varchar](14),
    @ParDatOtel [date],
    @ParTela [varchar](14),
    @ParPohlavie [varchar](2)
    
AS	
BEGIN
	declare @pocet [int]
	declare @Dupl [bit]

	-- zmazanie docasnej tabulky PLIS.dbo.pom_telata ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'pom_telata') drop table PLIS.dbo.pom_telata
	
	if (select COUNT(*) from PLIS.dbo.CM_Telata where CISTELATA = @ParTela) = 0
	begin
		select * into PLIS.dbo.pom_telata from PLIS.dbo.CM_Telata where MATKA = @ParMatka and DATNAR = @ParDatOtel
		set @pocet = (select COUNT(*) from PLIS.dbo.pom_telata)		

		if (@pocet > 0)
		begin
			set @Dupl = 1	
			-- dvojcata
			if ((select top 1 POHLAVIE from PLIS.dbo.pom_telata) 
				in (select '11'
					union select '22'
					union select '26'
					union select '31'
					union select '32'
					union select '81'
					union select '82'))
				and (@pocet = 1) and (@ParPohlavie in (select '11'
													union select '22'
													union select '26'
													union select '31'
													union select '32'
													union select '81'
													union select '82')) 
				set @Dupl = 0
			else
				-- trojcata
				if ((select top 1 POHLAVIE from PLIS.dbo.pom_telata) 
					in (select '51'
						union select '52'
						union select '81'
						union select '82'))
					and (@pocet = 1 or @pocet = 2 or @pocet = 3 or @pocet = 4 or @pocet = 5 or @pocet = 6) and (@ParPohlavie in (select '51'
														union select '52'
														union select '81'
														union select '82'))
					set @Dupl = 0
		end
		else
			set @Dupl = 0
	end
	else
		set @Dupl = 1	
	
	-- zmazanie docasnej tabulky PLIS.dbo.pom_telata ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'pom_telata') drop table PLIS.dbo.pom_telata	

	return(@Dupl)
END


go



 CREATE procedure [dbo].[Rocenka_MPHD_9]
	
	@rok varchar(4)

	as 
	begin

	select 	* from Roc_MPHD_Tab_9
	where @rok = rok
	
		end
 
go








-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Vybery pre pinzgausky zvaz
-- =============================================
CREATE PROCEDURE [dbo].[C_VyberyPIN]  @rndtb varchar(20)
AS


declare @CP_SPOL_BYCI varchar(40), @SQL varchar(max),
	@OUTPUT_TABLE varchar(40), @POCET VARCHAR(20)
	set @OUTPUT_TABLE = 'OUT' + @rndtb


BEGIN


BEGIN /* vybery plemenice PIN  */

SELECT @SQL = 'CREATE TABLE CP_PIN_PLEMENICE' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[PK] [varchar](3) NULL,
	[DATNAR] [varchar](10) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[ZNMATBYK] [varchar](1) NULL,
	[ZNAKET] [bit] NOT NULL,
	[ZDRAVTR] [varchar](1) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[MATKA] [varchar](14) NULL,
	[DATVYR] [varchar](10) NULL,
	[DOVVYR] [varchar](2) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_PIN_Plemenice' + @rndtb + '
       ( CISKRAVY, CHOVATEL, PK,  DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, ZNMATBYK, ZNAKET, ZDRAVTR, OTECLIN, OTECREG, MATKA, DATVYR,  DOVVYR, OOLIN, OOREG, MO,
	     OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM)
	    (SELECT  
		       k.CISKRAVY, k.CHOVATEL, k.PK as PK,  CONVERT(CHAR(10),k.DATNAR, 120) , k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.ZNMATBYK, isnull(k.ZNAKET, 0), k.ZDRAVTR, k.OTECLIN, k.OTECREG, k.MA, CONVERT(CHAR(10),k.DATVYR, 120) ,  k.DOVVYR,
  
			  ( select LIN FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOLIN,
			  ( select REG FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOREG,  
			   b.matka as MO,
			  (select OTECLIN  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMLIN,
			  (select OTECREG  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMREG,
			  (select MA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS MM,
			  (select LIN FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOLIN,
			  (select REG FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOREG,
			  (select MATKA  FROM CM_BYCI as b1 where b.IDOT = b1.IDBYKA) AS MOO,
			  (select OTECLIN  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOLIN,
			  (select OTECREG  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOREG,
			  (select MA  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS MMO,
			  (select LIN  FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMLIN,
			  (select REG FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMREG,
			  (select MATKA FROM CM_BYCI as b where (select IDOT  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) as MOM, 
			  
              (select OTECLIN FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMLIN,
			  (select OTECREG FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMREG,
			  (select MA  FROM CM_KRAVA as k1 where ( select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY)=  k1.IDKRAVY) AS MMM
FROM            dbo.CM_Krava as k
left outer join
CM_byci as b  on k.IDOT = b.IDBYKA
WHERE         (k.PRIZNAKKU = ''1'') and 
  (case when k.pl1  in (''P'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50 
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_Plemenice'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_Plemenice'
END


BEGIN /* vybery jalovic*/

SELECT @SQL = 'CREATE TABLE CP_PIN_JAL' + @rndtb + '(
	[CISJAL] [varchar](14) NULL,
	[CHOVNAR] [varchar](9) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[PK] [varchar](3) NULL,
	[DATNAR] [varchar](10) NULL,
	[PORLAK] [varchar](2) NULL,
	[POHLAVIE] [varchar](2) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[DOVVYR] [varchar](2) NULL,
	[DATVYR] [varchar](10) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OPL1] [varchar](2) NULL,
	[OKR1] [varchar](6) NULL,
	[OPL2] [varchar](2) NULL,
	[OKR2] [varchar](6) NULL,
	[OPL3] [varchar](2) NULL,
	[OKR3] [varchar](6) NULL,
	[OPL4] [varchar](2) NULL,
	[OKR4] [varchar](6) NULL,
	[OPL5] [varchar](2) NULL,
	[MATKA] [varchar](14) NULL,
	[MPL1] [varchar](2) NULL,
	[MKR1] [varchar](6) NULL,
	[MPL2] [varchar](2) NULL,
	[MKR2] [varchar](6) NULL,
	[MPL3] [varchar](2) NULL,
	[MKR3] [varchar](6) NULL,
	[MPL4] [varchar](2) NULL,
	[MKR4] [varchar](6) NULL,
	[MPL5] [varchar](2) NULL,
	[FARBA] [varchar](2) NULL,
	[ZNAKET] [bit] NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_PIN_JAL' + @rndtb + '(
     CISJAL, CHOVNAR, CHOVATEL, DATNAR, PORLAK, POHLAVIE, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, DOVVYR, DATVYR, OTECLIN, OTECREG,
     OPL1, OKR1,  OPL2, OKR2,  OPL3, OKR3, OPL4, OKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )
(select  CISJAL, CHOVNAR, CHOVATEL, CONVERT(CHAR(10),DATNAR, 120), PORLAK, POHLAVIE, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, DOVVYR, CONVERT(CHAR(10),DATVYR, 120),  OTECLIN, OTECREG,
     OPL1, PKR1,  OPL2, PKR2,  OPL3, OKR3, OPL4, PKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM from dbo.View_CP_PIN_JAL
      where PRIZNAKKU = 1 )'

EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_JAL'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_JAL'
END


BEGIN /* vybery ukoncenych laktacii*/
SELECT @SQL='CREATE TABLE CP_PIN_LAKT'+ @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[DATOTEL] [varchar](10) NULL,
	[DATUKONL] [varchar](10) NULL,
	[LAKTDNI] [float] NULL,
	[MLIEKO] [float] NULL,
	[TUK] [float] NULL,
	[BIELK] [float] NULL,
	[LAKTOZA] [float] NULL,
	[SOMBUN] [float] NULL,
	[SPOSOBKU] [varchar](1) NULL,
	[ZMENA] [varchar](2) NULL,
	[INDPER] [float] NULL,
	[INDLAK] [float] NULL
)'
EXEC (@SQL)

SELECT @SQL='insert into CP_PIN_LAKT'+ @rndtb + '(
        CISKRAVY ,PORLAK, DATOTEL, DATUKONL, LAKTDNI,  MLIEKO, TUK , BIELK, LAKTOZA, SOMBUN, SPOSOBKU, ZMENA, INDPER, INDLAK)
	   (select l.CISKRAVY ,[PORLAK], CONVERT(CHAR(10),DATOTEL, 120),CONVERT(CHAR(10),DATUKONL, 120),[LAKTDNI],
        convert( decimal (7,0), case when ZMENA in (''30'',''40'') then mlieknor else mliekcel end) as MLIEKO,
		convert( decimal (7,2),case when ZMENA in (''30'',''40'') then tuknor else tukcel end) as TUK,
		convert (decimal (7,2),case when ZMENA in (''30'',''40'') then bielknor else bielkcel end) as BIELK,
		convert (decimal (7,2), case when ZMENA in (''30'',''40'') then laktozan else laktozac end) as LAKTOZA,
		0 as sombun, SPOSOBKU, ZMENA, convert ( decimal (7,0) ,INDPER) as INDPER, convert (decimal (7,2),  INDLAK ) as INDLAK
       from CM_Laktacie as l
	   left outer join
CM_KRAVA as k  on l.ciskravy = k.CISKRAVY

WHERE         (k.PRIZNAKKU = ''1'') and 
 (case when k.pl1  in (''P'' ) and k.kr1 > 0   then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'')   then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50 
and
			   not  ( (l.laktdni  < 0 and l.laktdni is not null) or (l.TUKCEL < 0 and l.TUKCEL is not null) 
                or (l.BIELKCEL < 0 and l.bielkcel is not null) or (l.TUKNOR < 0 and l.tuknor is not null) or 
				(l.BIELKNOR < 0 and l.bielknor is not null) or (l.MLIEKCEL< 0 and l.mliekcel  is not null )
				or 	(l.MLIEKNOR< 0 and l.mliekNOr  is not null ))

 
		   )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_LAKT'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_JAL'
END


BEGIN /* vybery prebiehajucich laktacii*/ 
SELECT @SQL = 'CREATE TABLE CP_PIN_LAKTPREB' + @rndtb + ' (
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[DATOTEL] [varchar](10) NULL,
	[HMOTN] [float] NULL,
	[LAKTDNI] [float] NULL,
	[MLIEKO] [decimal](7, 0) NULL,
	[TUK] [decimal](7, 2) NULL,
	[BIELK] [decimal](7, 2) NULL,
	[LAKTOZA] [decimal](7, 2) NULL,
	[SPOSOBKU] [varchar](1) NULL,
	[ZMENA] [varchar](2) NULL,
	[INDPER] [float] NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_PIN_LaktPreb' + @rndtb + ' (
  CISKRAVY, PORLAK, DATOTEL, HMOTN, LAKTDNI,  MLIEKO, TUK, BIELK, LAKTOZA, SPOSOBKU, ZMENA, INDPER)
  (select n.CISKRAVY, PORLAK, CONVERT(CHAR(10),DATOTEL, 120), HMOTKR,
        case when lakdnin is not null  or lakdnin > 0 then LAKDNIN else laktdni end  as VLAKTDNI, 
        convert(decimal (7,0), case when lakdnin is not null  or  lakdnin > 0 then mlieknor else mliekcel end)  as MLIEKO,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0 then tuknor else tukcel end) as TUK,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0 then bielknor else bielkcel end) as BIELK,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0then laktozan else laktozac end) as LAKTOZA,
		 
		 m.SPVYKON, ZMENA, convert (decimal (7,0), INDPER ) as INDPER
       from CM_Naplak as n
	   left outer join
CM_KRAVA as k  on n.ciskravy = k.CISKRAVY
left outer join
NM_HDDETAIL as m on n.CHOVATEL = m.KRAJ + m.Okres + m.PODNIK + m.CHOV

WHERE         (k.PRIZNAKKU = ''1'') and 
 (case when k.pl1  in (''P'' ) and k.kr1 > 0   then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'')   then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50 
and
			   not  ( (n.laktdni  < 0 and n.laktdni is not null) or (n.TUKCEL < 0 and n.TUKCEL is not null) 
                or (n.BIELKCEL < 0 and n.bielkcel is not null) or (n.TUKNOR < 0 and n.tuknor is not null) or 
				(n.BIELKNOR < 0 and n.bielknor is not null) or (n.MLIEKCEL< 0 and n.mliekcel  is not null )
				or 	(n.MLIEKNOR< 0 and n.mliekNOr  is not null ))
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_LaktPreb'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_LaktPreb'
END


BEGIN /* výbery vážení z KUTMHD*/
SELECT @SQL = 'CREATE TABLE CP_PIN_VAZENIA_TMHD' + @rndtb + ' (
	[CISTELATA] [varchar](14) NULL,
	[DATVAZ] [varchar](10) NULL,
	[HMOT] [float] NULL,
	[ZIVOTNY_PRIRASTOK] [int] NULL,
	[RP] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_PIN_VAZENIA_TMHD' + @rndtb + ' (
   CISTELATA, DATVAZ, HMOT, ZIVOTNY_PRIRASTOK, RP) 
	(SELECT  v.CISTELATA, CONVERT(CHAR(10),DATVAZ, 120) , HMOT, round (ZIVPRIR, 2) as ZIVOTNY_PRIRASTOK, RASTPAS
   FROM [dbo].[CM_Vazenia] as v 
  left outer join CM_Krava as k on v.CISTELATA = k.CISKRAVY
  left outer join CM_Telata as t on v.CISTELATA = t.CISTELATA
  where v.PRIZNAKKU = ''1'' and (k.PL1 = ''P'' or t.PL1 = ''P'') and zivprir > 0
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_VAZENIA_TMHD'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_VAZENIA_TMHD'
END


BEGIN /*výbery  inseminácia krav všetky KU aj KUMP*/

SELECT @SQL = 'CREATE TABLE CP_PIN_PripPlem' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_PIN_PripPlem' + @rndtb + '
(   CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL ) 
(		 SELECT    i.IPLCA as ciskravy, k.PORPREBLAK,  i4.IPOIN as porins, CONVERT(CHAR(10),i.idain, 120) as DATINS1, i.IBLIN as BYKLIN1, i.IBREG as BYKREG1, CONVERT(CHAR(10),i4.IDAIN, 120) as datins,  i4.IBLIN as byklin, i4.IBREG as bykreg, i4.IVYSE as znaktel
		  
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1 and year(i.idain) > ''2014''
							   left outer join
	

	(SELECT      i.IPLCA,   i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG, i.IBLIN + ''-'' + RIGHT(''000'' + CONVERT(varchar, i.IBREG), 3) AS byk, i.IVYSE
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) AS dat_insem
                               FROM            dbo.CM_Insvyk AS i
                               GROUP BY IPLCA) AS i3 ON i.IPLCA = i3.IPLCA AND i.IDAIN = i3.dat_insem AND  year(i.idain) > ''2014'' ) as i4 
							   on i.iplca = i4.iplca	
						   INNER JOIN
						   CM_Krava as k  on i.IPLCA = k.CISKRAVY and 
						   (case when k.pl1  in (''P'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_PripPlem'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_PripPlem'
END


BEGIN /* výbery  inseminácia jalovic všetky KU aj KUMP*/
SELECT @SQL = 'CREATE TABLE CP_PIN_PripJal' + @rndtb + ' (
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL='insert into CP_PIN_PripJal' + @rndtb + '
(   CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL ) 
(		 SELECT    i.IPLCA as ciskravy, ''00'',  i4.IPOIN as porins, CONVERT(CHAR(10),i.idain, 120) as DATINS1, i.IBLIN as BYKLIN1, i.IBREG as BYKREG1, CONVERT(CHAR(10),i4.IDAIN, 120) as datins,  i4.IBLIN as byklin, i4.IBREG as bykreg, i4.IVYSE as znaktel
		  
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1 and year(i.idain) > ''2014''
							   left outer join
	

	(SELECT      i.IPLCA,   i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG, i.IBLIN + ''-'' + RIGHT(''000'' + CONVERT(varchar, i.IBREG), 3) AS byk, i.IVYSE
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) AS dat_insem
                               FROM            dbo.CM_Insvyk AS i
                               GROUP BY IPLCA) AS i3 ON i.IPLCA = i3.IPLCA AND i.IDAIN = i3.dat_insem AND  year(i.idain) > ''2014'' ) as i4 
							   on i.iplca = i4.iplca	
						   INNER JOIN
						   CM_Telata as k  on i.IPLCA = k.CISTELATA and 
						   (case when k.pl1  in (''P'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50 
			  	and (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava))				    
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_PripJal'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_PripJal'
END 


BEGIN /* vybery z KUMP */
SELECT @SQL='CREATE TABLE CP_PIN_PLEMENICE_MP' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[PK] [varchar](3) NULL,
	[DATNAR] [varchar](10) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[ZNMATBYK] [varchar](1) NULL,
	[ZNAKET] [bit] NOT NULL,
	[ZDRAVTR] [varchar](1) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[MATKA] [varchar](14) NULL,
	[DATVYR] [varchar](10) NULL,
	[DOVVYR] [varchar](2) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)

SELECT @SQL='insert into CP_PIN_Plemenice_MP' + @rndtb + '
       ( CISKRAVY, CHOVATEL, PK,  DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, ZNMATBYK, ZNAKET, ZDRAVTR, OTECLIN, OTECREG, MATKA, DATVYR,  DOVVYR, OOLIN, OOREG, MO,
	     OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM)
	    (SELECT  
		       k.CISKRAVY, k.CHOVATEL, k.PK as PK, CONVERT(CHAR(10), k.DATNAR, 120), k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.ZNMATBYK, k.ZNAKET, k.ZDRAVTR, k.OTECLIN, k.OTECREG, k.MA, CONVERT(CHAR(10),k.DATVYR, 120),  k.DOVVYR,
       
			  ( select LIN FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOLIN,
			  ( select REG FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOREG,  
			   b.matka as MO,
			  (select OTECLIN  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMLIN,
			  (select OTECREG  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMREG,
			  (select MA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS MM,
			  (select LIN FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOLIN,
			  (select REG FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOREG,
			  (select MATKA  FROM CM_BYCI as b1 where b.IDOT = b1.IDBYKA) AS MOO,
			  (select OTECLIN  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOLIN,
			  (select OTECREG  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOREG,
			  (select MA  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS MMO,
			  (select LIN  FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMLIN,
			  (select REG FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMREG,
			  (select MATKA FROM CM_BYCI as b where (select IDOT  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) as MOM, 
			  
              (select OTECLIN FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMLIN,
			  (select OTECREG FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMREG,
			  (select MA  FROM CM_KRAVA as k1 where ( select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY)=  k1.IDKRAVY) AS MMM

	
FROM            dbo.CM_Krava as k
left outer join
CM_byci as b  on k.IDOT = b.IDBYKA



WHERE         (k.PRIZNAKKU = ''2'') and 
  (case when k.pl1  in (''P'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''P'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''P'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''P'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''P'')   then 12.5 else 0 end)  >= 50 

 )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_PLEMENICE_MP'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_PLEMENICE_MP'
END 


BEGIN /* vybery jalovic _MP */
SELECT @SQL='CREATE TABLE CP_PIN_JAL_MP' + @rndtb + ' (
	[CISJAL] [varchar](14) NULL,
	[CHOVNAR] [varchar](9) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[PK] [varchar](3) NULL,
	[DATNAR] [varchar](10) NULL,
	[PORLAK] [varchar](2) NULL,
	[POHLAVIE] [varchar](2) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[DOVVYR] [varchar](2) NULL,
	[DATVYR] [varchar](10) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OPL1] [varchar](2) NULL,
	[OKR1] [varchar](6) NULL,
	[OPL2] [varchar](2) NULL,
	[OKR2] [varchar](6) NULL,
	[OPL3] [varchar](2) NULL,
	[OKR3] [varchar](6) NULL,
	[OPL4] [varchar](2) NULL,
	[OKR4] [varchar](6) NULL,
	[OPL5] [varchar](2) NULL,
	[MATKA] [varchar](14) NULL,
	[MPL1] [varchar](2) NULL,
	[MKR1] [varchar](6) NULL,
	[MPL2] [varchar](2) NULL,
	[MKR2] [varchar](6) NULL,
	[MPL3] [varchar](2) NULL,
	[MKR3] [varchar](6) NULL,
	[MPL4] [varchar](2) NULL,
	[MKR4] [varchar](6) NULL,
	[MPL5] [varchar](2) NULL,
	[FARBA] [varchar](2) NULL,
	[ZNAKET] [bit] NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)

SELECT @SQL='insert into CP_PIN_JAL_MP' + @rndtb + '
(    CISJAL, CHOVNAR, CHOVATEL, DATNAR, PORLAK, POHLAVIE, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5,DOVVYR, DATVYR, OTECLIN, OTECREG,
     OPL1, OKR1,  OPL2, OKR2,  OPL3, OKR3, OPL4, OKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )
(select  CISJAL, CHOVNAR, CHOVATEL, CONVERT(CHAR(10),DATNAR, 120), PORLAK, POHLAVIE, PL1, format(convert(decimal (5,2), KR1) , ''g15'') as KR1, PL2, format(convert(decimal (5,2), KR2) , ''g15'') as KR2, PL3, format(convert(decimal (5,2), KR3) , ''g15'') as KR3, PL4,
 format(convert(decimal (5,2), KR1) , ''g15'') as  KR4, PL5,DOVVYR, CONVERT(CHAR(10),DATVYR, 120), OTECLIN, OTECREG,
     OPL1, PKR1,  OPL2, PKR2,  OPL3, OKR3, OPL4, PKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM from dbo.View_CP_PIN_JAL
      where PRIZNAKKU = 2 )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_JAL_MP'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_JAL_MP'
END 


BEGIN /* výbery vážení z KUMP*/
SELECT @SQL='CREATE TABLE CP_PIN_VAZENIA_KUMP' + @rndtb + '(
	[CISTELATA] [varchar](14) NULL,
	[DATVAZ] [varchar](10) NULL,
	[HMOT] [float] NULL,
	[ZIVOTNY_PRIRASTOK] [int] NULL,
	[RP] [varchar](1) NULL
)'
EXEC (@SQL)
SELECT @SQL='insert into CP_PIN_VAZENIA_KUMP' + @rndtb + '
(   CISTELATA, DATVAZ, HMOT, ZIVOTNY_PRIRASTOK, RP) 
(SELECT  v.CISTELATA, CONVERT(CHAR(10),DATVAZ, 120), HMOT, round (ZIVPRIR, 2) as ZIVOTNY_PRIRASTOK, RASTPAS
   FROM [dbo].[CM_Vazenia] as v 
  left outer join CM_Krava as k on v.CISTELATA = k.CISKRAVY
  left outer join CM_Telata as t on v.CISTELATA = t.CISTELATA
  where v.PRIZNAKKU = ''2'' and (k.PL1 = ''P'' or t.PL1 = ''P'') and zivprir > 0 )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_VAZENIA_KUMP'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_VAZENIA_KUMP'
END


BEGIN /* výbery KRAVTDM*/
SELECT @SQL='CREATE TABLE CP_PIN_KRAVTDM' + @rndtb +'(
	[KRAVA] [varchar](15) NULL,
	[POZN] [varchar](2) NULL,
	[DATUMN] [varchar](10) NULL,
	[ROK] [int] NULL,
	[SIRE] [varchar](15) NULL,
	[DAM] [varchar](15) NULL,
	[BREEDG] [varchar](2) NULL,
	[PLEMENO] [varchar](30) NULL,
	[NH] [int] NULL,
	[ND] [int] NULL,
	[NR] [int] NULL,
	[N] [int] NULL,
	[MLIEKO] [int] NULL,
	[TUK] [int] NULL,
	[TUKP] [decimal](3, 2) NULL,
	[BIELK] [int] NULL,
	[BIELKP] [decimal](3, 2) NULL,
	[SPI] [int] NULL,
	[M305] [decimal](6, 1) NULL,
	[RPHM] [int] NULL,
	[M100] [decimal](7, 1) NULL,
	[MREL] [decimal](5, 4) NULL,
	[T305] [decimal](7, 2) NULL,
	[RPHT] [int] NULL,
	[T100] [decimal](7, 2) NULL,
	[TP] [decimal](7, 2) NULL,
	[TPERC] [decimal](7, 2) NULL,
	[TREL] [decimal](5, 4) NULL,
	[B305] [decimal](7, 2) NULL,
	[RPHB] [int] NULL,
	[B100] [decimal](7, 2) NULL,
	[BP] [decimal](5, 2) NULL,
	[BPERC] [decimal](5, 2) NULL,
	[BREL] [decimal](5, 4) NULL,
	[REL] [decimal](5, 4) NULL
)'
EXEC (@SQL)

SELECT @SQL='insert into CP_PIN_KRAVTDM' + @rndtb + ' 
       ( KRAVA ,POZN, DATUMN,ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL)
 
        ( select KRAVA , POZN, CONVERT(CHAR(10),DATUMN, 120) ,ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL
	    from dbo.CP_BLUP_KRAVYTDM
		where plem = ''P''
       )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_PIN_KRAVTDM'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_PIN_KRAVTDM'
END

END
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 13.11.2015
-- Description:	Struktura Zijucih krav podla dojivosti Max. laktacie
--				Povodny select prekopany z kurzora na klasicke selecty + dany do procedury
--				Osetrenie aby SUM stlpcov s % => 100.00
-- =============================================
CREATE PROCEDURE C_StrukturaZijucichKravPodlaDojivostiMax
	@CHOVATEL varchar (9),
	@skupina varchar (2)
AS
BEGIN

declare @sto decimal(5,2)
declare @prvy varchar(14)
declare @pocet decimal(5,2) = 0


DECLARE @Data TABLE (
	nazovSkupina varchar(20) NULL,
	pocet1lakt int NULL,
	perc1lakt decimal(5,2) NULL,
	poc2lakt int NULL,
	perc2lakt decimal(5,2) NULL,
	pocNlakt int NULL,
	percNlakt decimal(5,2) NULL,
	chovatel varchar(9) NULL,
	KodLakt varchar(2) NULL
)

		insert into @Data (nazovSkupina)		
		select nazov from cc_dojivost

				
		select p.* 
		into #table
		from CM_Krava as k
			full join CM_Laktacie as p
			on k.CISKRAVY=p.CISKRAVY and k.porlakmax=p.PORLAK
		where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL LIKE @chovatel + '%'
			and (SKUPINA = @skupina OR (@skupina = 'N' AND SKUPINA IS NULL) OR (@skupina = '00'))


	
		set @pocet =  (select count(ciskravy) from #table where PORLAK=1) 		
		update @Data 
		set
			pocet1lakt = pocet,
			perc1lakt = percento
		from (
			select 
				(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
					count(ciskravy) as pocet, (count(ciskravy)*100 / @pocet) as percento
				from #table 
				where PORLAK = 1 
				group by Kod_Doj	
			) t
		where nazovSkupina = nazov


		set @pocet =  (select count(ciskravy) from #table where porLak >= 2) 	

		update @Data 
		set 
			poc2lakt = pocet,
			perc2lakt = percento
		from (
			select 
				(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
					count(ciskravy) as pocet, (count(ciskravy)*100 / @pocet) as percento
				from #table 
				where porLak >= 2 
				group by Kod_Doj
			) t
		where nazovSkupina = nazov


		set @pocet =  (select count(ciskravy) from #table) 	

		update @Data 
		set 
			pocNlakt = pocet,
			percNlakt = percento
		from (
			select 
				(select nazov from CC_Dojivost where kod = KOD_DOJ) as nazov, 
					count(ciskravy) as pocet, (count(ciskravy)*100 / @pocet) as percento
				from #table 
				group by Kod_Doj
			) t
		where nazovSkupina = nazov


/*
	Aby sme mali sto percent aj na desatinne presne, tak upravime prvu hodnotu ktora je ne-NULL v stlpcoch s %
*/
	/* Pre prvu laktaciu */
	set @sto = (select sum(perc1lakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where perc1lakt is not null )
		update @Data
		set perc1lakt = perc1lakt + (100 - @sto)
		where nazovSkupina = @prvy
	end

	/* Pre druhu laktaciu */
	set @sto = (select sum(perc2lakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where perc2lakt is not null )
		update @Data
		set perc2lakt = perc2lakt + (100 - @sto)
		where nazovSkupina = @prvy
	end

	/* Pre N laktacii */
	set @sto = (select sum(percNlakt) from @Data)
	if(@sto <> 100.00)
	begin
		set @prvy = ( select top 1 nazovSkupina from @Data d where percNlakt is not null )
		update @Data
		set percNlakt = percNlakt + (100 - @sto)
		where nazovSkupina = @prvy
	end



		--select * from @data

		select 
		nazovSkupina,
		isnull(pocet1lakt, 0) as pocet1lakt,
		isnull(perc1lakt, 0) as perc1lakt,
		isnull(poc2lakt, 0) as poc2lakt,
		isnull(perc2lakt, 0) as perc2lakt,
		isnull(pocNlakt, 0) as pocNlakt,
		isnull(percNlakt, 0) as percNlakt
		from @data

END


go


CREATE PROCEDURE C_ZZ_BykROdokmen 
	
AS
BEGIN


TRUNCATE TABLE [PLIS].[dbo].[Test_CP_MLIEKO_BYK_RODOKMEN_POLOVICA]

declare @b as varchar(14)

declare byk cursor for SELECT distinct [USCISLO]
      
  FROM [PLIS].[dbo].[CM_Byci]
  
  open byk
  fetch next from byk into @b
	
	while @@FETCH_STATUS=0
	begin
	insert into [PLIS].[dbo].[Test_CP_MLIEKO_BYK_RODOKMEN_POLOVICA] select * FROM [PLIS].[dbo].[View_CP_MLIEKO_BYK_RODOKMEN_POLOVICA] where BYK=@b;
	fetch next from byk into @b
	end
	
	close byk
	deallocate byk

END
go

-- =============================================
-- Author:		pssr,s.p.
-- Create date: 21.03.2016
-- Description:	Prepocet dat v tabulke CP_ChovPL pre daneho chovatela
-- =============================================
CREATE PROCEDURE C_ChovPL_prep
	@parChov varchar(9)
AS
BEGIN
	DELETE FROM [PLIS].[dbo].[CP_CHOVPL]
		WHERE CHOVATEL = @parChov

	INSERT INTO [PLIS].[dbo].[CP_CHOVPL]
			   ([CHOVATEL]
			   ,[PL]
			   ,[KRV])
	SELECT CHOVATEL,
				PL,
				KRV
		   FROM [PLIS].[dbo].[View_CP_ChovPL1] WHERE CHOVATEL = @parChov

	INSERT INTO [PLIS].[dbo].[CP_CHOVPL]
			   ([CHOVATEL]
			   ,[PL]
			   ,[KRV])
	SELECT CHOVATEL,
				PL,
				KRV
		   FROM [PLIS].[dbo].[View_CP_ChovPL2] WHERE CHOVATEL = @parChov

	INSERT INTO [PLIS].[dbo].[CP_CHOVPL]
			   ([CHOVATEL]
			   ,[PL]
			   ,[KRV])
	SELECT CHOVATEL,
				PL,
				KRV
		   FROM [PLIS].[dbo].[View_CP_ChovPL3] WHERE CHOVATEL = @parChov

	INSERT INTO [PLIS].[dbo].[CP_CHOVPL]
			   ([CHOVATEL]
			   ,[PL]
			   ,[KRV])
	SELECT CHOVATEL,
				PL,
				KRV
		   FROM [PLIS].[dbo].[View_CP_ChovPL4] WHERE CHOVATEL = @parChov

	INSERT INTO [PLIS].[dbo].[CP_CHOVPL]
			   ([CHOVATEL]
			   ,[PL]
			   ,[KRV])
	SELECT CHOVATEL,
				PL,
				KRV
		   FROM [PLIS].[dbo].[View_CP_ChovPL5] WHERE CHOVATEL = @parChov

END

go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 29.09.2016
-- Update:		08.03.2017 - fix prazdny LUC or NULL LUC vrati ako NULL
-- Description:	Doplni bodkami v LUC na zaciatok ..457
-- =============================================
CREATE FUNCTION [dbo].[S_uprav_LUC]
(
	@LUC varchar(5)
)
RETURNS varchar(14)
AS
BEGIN
	if @LUC is NULL or @LUC = '' return NULL;

	if (len(@LUC) != 5)
		set @LUC =  (Select LEFT('     ', 5-len(@LUC)) + @LUC)

	return 
		(select replace(@LUC, ' ', '.'))
		--(select case when len(@LUC) = 5 then replace(@LUC, ' ', '.') else  LEFT('.....', 5-len(@LUC))+@LUC END as LUC)

END

go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Naj_kravy]

AS
BEGIN
/*****************************************
	USING TABLE: CM_Krava,CM_Laktacie

	CHANGING TABLE: CP_Mlieko_NajKrava

	USED: (8) Zoznam najlepších kráv 
******************************************/

TRUNCATE TABLE CP_Mlieko_NajKrava

declare @C varchar(9);
declare @K varchar (14);
	
	declare chovatel cursor for
	select distinct chovatel
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;
	while @@FETCH_STATUS=0
	begin
		
		declare krava cursor for
		select ciskravy
		from cm_krava
		where CHOVATEL=@c
		and PRIZNAKKU='1'
		and DOVVYR is NULL
		and POCVSETLAK>0;

		open krava
		fetch next from krava into @k;

		while @@FETCH_STATUS=0
		begin
			insert into CP_Mlieko_NajKrava values(@K,
															@C,
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K),
															(select count(*)
																from CM_Laktacie
																where ciskravy=@K
																and zmena in (30,40)),
															(select sum(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select sum(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
																(select avg(MLIEKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(TUKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40)),
															(select avg(BIELKNOR)
																from CM_Laktacie
																where ciskravy=@K and zmena in (30,40))
																
															);
			fetch next from krava into @k;
		end
		close krava
		deallocate krava


		fetch next from chovatel into @C;
	end
	close chovatel;
	deallocate chovatel;

END

go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 28.08.2015 10:37
-- Update:		
-- Description:	Vysledky KUMP v chove mladeho dobytka
-- =============================================
CREATE PROCEDURE [dbo].[C_Vysledky_KUMP_v_chove_MD]
	@CHOV [varchar](9)
AS
BEGIN
	Select 'Sk000000000000' as Cis_Tel,
 '23.01.2002' as Datum_Nar,
 '02' as Pohlavie,
'P12.5 M 6.3 R 6.2' as Plemeno,
'SK000042054042' as Matka,
'04' as Por_lak,
'CHU-763' as Otec,
'25' as Hmot_Nar,
'1' as Priebeh_Por,
'0' as Porad_Ins,
'21.1.2002' as Datum_Ins,
'9' as ZT,
'10.11.2001' as Pripust_Bykom,
'10.02.2002' as Datum_Ocak_Otel,
'119' as Hmot_Tel_120dni,
'186' as Hmot_Tel_210dni,
'209' as Hmot_Tel_365dni,
'253' as Hmot_Tel_500dni,
'783' as Zivot_Priras_120dni,
'767' as Zivot_Priras_210dni,
'504' as Zivot_Priras_365dni,
'465' as Zivot_Priras_500dni,
'119' as Zivot_Priras_120dni,
'-17.26' as PH210,
'21.11.2012' as Nasl_Vazenie_Od,
'25.11.2012' as Nasl_Vazenie_Do,
'0' as Zaver


END



--EXEC C_Vysledky_KUMP_v_chove_MD ''
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 22.11.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Zarteliatml 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarteliatml_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int],
	@ParOp [varchar](3)
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	if @ParOp = 'INS'
		select @PriznakChyby = ZNCH_CT_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby
	else if @ParOp = 'UPD' 
		select @PriznakChyby = ZNCH_CT_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
	
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_ZARTELIATML(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go

/****** Script for SelectTopNRows command from SSMS  ******/
/** Rocenka MLHD ---- VYSLEDKY KONTROLY UZITKOVOSTI PODLA PLEMIEN ---str. 9 **/
/***vyber do tabulky plemien v rocenke***/
CREATE procedure  [dbo].[Roc_MLHD_2]
	
	@datumOd date,
	@datumDo date

	as 
	begin

	
Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null
	 
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[typPlem] [varchar] (5) Null,
		ciskravy varchar(14),
		PORPREBLAK int
	)
	
	insert into @Laktacie			
	 SELECT
 		 PORLAK, Lakt.CHOVATEL,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
			when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
		 Lakt.DOVVYR, Lakt.DATVYR
		
	 FROM View_CP_LaktaciePreZostavy as Lakt
	 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(Lakt.CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

		where ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and (eko.ZRUS is null or(eko.ZRUS is not null and  cast(eko.datumZrusenia as date) > @datumOd))
		and eko.TYPZV = 1
		and MLIEKCEL <>''
		and ZMENA in('30','40')

		--select typplem, convert(decimal(5,2),AVG(PORLAK *1.0)) from @Laktacie group by typPlem

	Declare @Laktacie_Vs table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null	  
      )

	  insert into @Laktacie_Vs
			 SELECT
 				 PORLAK, CHOVATEL, ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when typPlem in('11','13','14') then 'SlStr' 
						when TYPPLEM in('51', '53','54') then 'SlPin'
						when TYPPLEM in('96','97','98','99') then 'Hol'
						when TYPPLEM in('21','22','23') then 'Brau'
					end ) as typPlem
				from @Laktacie

	declare @priem_lakt table
	(
	typplem varchar(10),
	priem_lakt float
	) 
	insert @priem_lakt
		select typplem, convert(decimal(5,2),AVG(PORLAK *1.0)) as priem_lakt from @Laktacie group by typPlem
		union
		select vs.typplem, convert(decimal(5,2),AVG(vs.PORLAK *1.0)) as priem_lakt from @Laktacie_Vs as vs group by vs.typPlem


--Create table Roc_MLHD_TAB_2 
--(
-- plemeno varchar(70),
-- podiel varchar(30), 
-- DatumOd date,
-- DatumDo date,
-- Filter varchar(25), 
-- datumGenerovania date, 
-- PlemTyp varchar(10), 
-- PocLakV1 float, 
-- PocLakN1 float, 
-- LakdniNL1 float,
-- MliekNorL1 float,
-- TukNorL1 float, 
-- BielkNorL1 float,
-- MedziobdL1 varchar(10),
-- PocLakV2 float,
-- PocLakN2 float,
-- LakDniNL2 float,
-- MliekNorL2 float,
-- TukNorL2 float, 
-- BielkNorL2 float, 
-- MedziobdL2 varchar(10),
-- PocLakVcelk float,
-- PocLakNcelk float, 
-- LakDniNCelk float, 
-- MliekNorCelk float,
-- TukNorCelk float, 
-- BielkNorCelk float,
-- priem_lakt float, 
-- rok int
--)

insert into Roc_MLHD_TAB_2
 (plemeno , podiel, DatumOd, DatumDo, Filter, datumGenerovania, PlemTyp, PocLakV1, PocLakN1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, MedziobdL1,
 PocLakV2, PocLakN2, LakDniNL2, MliekNorL2, TukNorL2, BielkNorL2, MedziobdL2, PocLakVcelk ,PocLakNcelk, LakDniNCelk, MliekNorCelk, TukNorCelk, BielkNorCelk)
		 
/**SLOVENSKE STRAKATE**/
/*87,5-100%*/
	select 'SLOVENSKE STRAKATE' as plemeno, '87,5-100%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 
		 from CR_LaktacneZostavy_Opr where filter ='SR,11' and DatumOd = @datumOd and DatumDo = @datumDo
/*75-87,5%*/
union
	select  'SLOVENSKE STRAKATE' as plemeno, '75-87,5%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,13' and DatumOd = @datumOd and DatumDo = @datumDo
/*50-75 %*/
union
	select 'SLOVENSKE STRAKATE' as plemeno, '50-75%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,14' and DatumOd = @datumOd and DatumDo = @datumDo
/*PLEM.SPOLU */
union
	select 'SLOVENSKE STRAKATE' as plemeno, 'SPOLU' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,SlStr' and DatumOd = @datumOd and DatumDo = @datumDo

/***SLOVENSKE PINZGAUSKE***/
/*87,5-100%*/
union
	select 'SLOVENSKE PINZGAUSKE' as plemeno, '87,5-100%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,51' and DatumOd = @datumOd and DatumDo = @datumDo
/*75-87,5%*/
union
	select 'SLOVENSKE PINZGAUSKE' as plemeno, '75-87,5%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,53' and DatumOd = @datumOd and DatumDo = @datumDo
/*50-75 %*/
union
	select 'SLOVENSKE PINZGAUSKE' as plemeno, '50-75%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,54' and DatumOd = @datumOd and DatumDo = @datumDo
/*PLEM.SPOLU */
union
	select 'SLOVENSKE PINZGAUSKE' as plemeno, 'SPOLU' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,SlPin' and DatumOd = @datumOd and DatumDo = @datumDo

/***HOLSTEINSKE***/
/*94-100%*/
union
	select 'HOLSTEINSKE' as plemeno, '94-100%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,99' and DatumOd = @datumOd and DatumDo = @datumDo
/*87,5-94 %*/
union
	select 'HOLSTEINSKE' as plemeno, '87,5-94%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,98' and DatumOd = @datumOd and DatumDo = @datumDo
/*75 - 87,5%*/
union
	select 'HOLSTEINSKE' as plemeno, '75-87,5%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,97' and DatumOd = @datumOd and DatumDo = @datumDo
/*50-75%*/
union
	select 'HOLSTEINSKE' as plemeno, '50-75%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,96' and DatumOd = @datumOd and DatumDo = @datumDo
/*PLEM.SPOLU */
union
	select 'HOLSTEINSKE' as plemeno, 'SPOLU' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,Hol' and DatumOd = @datumOd and DatumDo = @datumDo

/***BRAUNVIEH***/
/*87,5-100%*/
union
	select 'BRAUNVIEH' as plemeno, '87,5-100%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,21' and DatumOd = @datumOd and DatumDo = @datumDo
/*75-87,5%*/
union
	select 'BRAUNVIEH' as plemeno, '75-87,5%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,22' and DatumOd = @datumOd and DatumDo = @datumDo
/*50-75%*/
union
	select 'BRAUNVIEH' as plemeno, '50-75%' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,23' and DatumOd = @datumOd and DatumDo = @datumDo
/*PLEM.SPOLU */
union
	select  'BRAUNVIEH' as plemeno, 'SPOLU' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,Brau' and DatumOd = @datumOd and DatumDo = @datumDo
/**OSTATNE**/
/*VSETKY*/
union
	select 'OSTATNE' as plemeno, 'SPOLU' as podiel, DatumOd,DatumDo,Filter, datumGenerovania, PlemTyp, 
		 PocLakV1, PocLakN1, LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,MedziobdL1,PocLakV2,PocLakN2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, CONVERT(VARCHAR,MedziobdL2),PocLakVcelk,PocLakNcelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk
		 from CR_LaktacneZostavy_Opr where filter ='SR,0000' and DatumOd = @datumOd and DatumDo = @datumDo

update Roc_MLHD_TAB_2
set priem_lakt = (select priem_lakt from @priem_lakt where typplem = PlemTyp )

update Roc_MLHD_TAB_2
set rok = (select DATEPART(YEAR, @datumOd))


--select * from Roc_MLHD_TAB_2
end
go



CREATE procedure [dbo].[Rocenka_MPHD_8]
	
	@rok varchar(4)

	as 
	begin

	select 
	case when kraj ='BA' then 1
				when kraj ='TT' then 2
				when kraj ='TN' then 3
				when kraj ='NT' then 4
				when kraj ='ZA' then 5
				when kraj ='BB' then 6
				when kraj ='PE' then 7
				when kraj ='KE' then 8
				when kraj ='SR' then 9
			end  as poradie,
	
	case when kraj ='BA' then 'Bratislavský'
				when kraj ='TT' then 'Trnavský'
				when kraj ='TN' then 'Trenčiansky'
				when kraj ='NT' then 'Nitriansky'
				when kraj ='ZA' then 'Žilinský'
				when kraj ='BB' then 'Banskobystrický'
				when kraj ='PE' then 'Prešovský'
				when kraj ='KE' then 'Košický'
				when kraj ='SR' then 'Slovensko' end as	kraj, 
	
	do_15,do_19,do_23 ,do_27,do_31,do_35,nad_36, spolu, do_15_perc, do_19_perc, do_23_perc, do_27_perc, do_31_perc, do_35_perc, nad_36_perc, rok
	
	from Roc_MPHD_Tab_8
	where @rok = rok
	order by poradie

	end
go

-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 09.08.2017
-- Description:	Doplni datumy tym, ktory nemaju na zaklade rodicov resp potomkov
-- =============================================
CREATE PROCEDURE [dbo].[S_Pribuznost_DoplnDatumy_sprac_nove] 
AS
BEGIN			
	
	--  0. Zmazanie udajov z tab.
	truncate table Ainbreeding_Ovce_sprac

	--	1. Naplnenie novymi udajmi
	INSERT INTO Ainbreeding_Ovce_sprac
			([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
		SELECT  jedcis, otecCis, matkaCis, datnar, pohl, null, null, tab from SP_Ovecky


	--	2. Vypocet DatNarodenia

	update Ainbreeding_Ovce_sprac
	set datnar = (select top 1  dateadd(yy, 1, datnar) from Ainbreeding_Ovce_sprac s where s.uscislo = Ainbreeding_Ovce_sprac.otec and   s.datnar is not null)
	where datnar is null

	update Ainbreeding_Ovce_sprac
	set datnar = (select top 1 dateadd(yy, 1, datnar) from Ainbreeding_Ovce_sprac s where s.uscislo = Ainbreeding_Ovce_sprac.matka and s.datnar is not null)
	where datnar is null


	update Ainbreeding_Ovce_sprac
	set datnar =  (select dateadd(yy, -1, min(datnar)) from Ainbreeding_Ovce_sprac s where s.otec = Ainbreeding_Ovce_sprac.uscislo and   s.datnar is not null)
	where datnar is null

	update Ainbreeding_Ovce_sprac
	set datnar =  (select dateadd(yy, -1, min(datnar)) from Ainbreeding_Ovce_sprac s where s.matka = Ainbreeding_Ovce_sprac.uscislo and   s.datnar is not null)
	where datnar is null


	--	3. Update Koeficientov zo starych
	update Ainbreeding_Ovce_sprac
	set koefpribuz = (select top 1 koefpribuz from Ainbreeding_Ovce where Ainbreeding_Ovce.uscislo = Ainbreeding_Ovce_sprac.uscislo)


END
go














-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 
-- Description:	Vybery pre slov strakaty zvaz
-- =============================================
CREATE PROCEDURE [dbo].[C_VyberySIM] @rndtb varchar(20)

	
AS

	declare @SQL varchar(max), @OUTPUT_TABLE varchar(40), @POCET VARCHAR(20)
	set @OUTPUT_TABLE = 'OUT' + @rndtb

BEGIN	

BEGIN /* vybery Plemenice*/
SELECT @SQL = 'CREATE TABLE CP_SIM_PLEMENICE' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[ZNMATBYK] [varchar](1) NULL,
	[ZNAKET] [bit] NOT NULL,
	[ZDRAVTR] [varchar](1) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[MATKA] [varchar](14) NULL,
	[DATVYR] [varchar](10) NULL,
	[DOVVYR] [varchar](2) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC(@SQL)


SELECT @SQL =  'insert into CP_SIM_Plemenice' + @rndtb + '
       ( CISKRAVY, CHOVATEL, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, ZNMATBYK, ZNAKET, ZDRAVTR, OTECLIN, OTECREG, MATKA, DATVYR,  DOVVYR, OOLIN, OOREG, MO,
	     OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM)
 
       (SELECT     CISKRAVY, k.CHOVATEL, CONVERT(CHAR(10),k.DATNAR, 120), k.PL1, format(CONVERT(decimal(5, 2), k.KR1), ''g15'') as KR1, k.PL2, format(CONVERT(decimal(5, 2), k.KR2), ''g15'') as KR2, k.PL3,
	   format(CONVERT(decimal(5, 2), k.KR3), ''g15'') as KR3, k.PL4, format(CONVERT(decimal(5, 2), k.KR4), ''g15'') as KR4, k.PL5, k.ZNMATBYK, isnull(k.ZNAKET, 0), k.ZDRAVTR, k.OTECLIN, k.OTECREG, k.MA, CONVERT(CHAR(10),k.DATVYR, 120), k.DOVVYR, 
              
			  ( select LIN FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOLIN,
			  ( select REG FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOREG,  
			   b.matka as MO,
			  (select OTECLIN  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMLIN,
			  (select OTECREG  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMREG,
			  (select MA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS MM,
			  (select LIN FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOLIN,
			  (select REG FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOREG,
			  (select MATKA  FROM CM_BYCI as b1 where b.IDOT = b1.IDBYKA) AS MOO,
			  (select OTECLIN  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOLIN,
			  (select OTECREG  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOREG,
			  (select MA  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS MMO,
			  (select LIN  FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMLIN,
			  (select REG FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMREG,
			  (select MATKA FROM CM_BYCI as b where (select IDOT  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) as MOM, 
			  
              (select OTECLIN FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMLIN,
			  (select OTECREG FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMREG,
			  (select MA  FROM CM_KRAVA as k1 where ( select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY)=  k1.IDKRAVY) AS MMM
FROM            dbo.CM_Krava as k
	left outer join CM_byci as b  on k.IDOT = b.IDBYKA
WHERE         (k.PRIZNAKKU = ''1'') and 
  (case when k.pl1  in (''S'',''MB'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''S'',''MB'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''S'',''MB'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''S'',''MB'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''S'',''MB'')   then 12.5 else 0 end)  >= 50 )'

EXEC(@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_PLEMENICE'', ''' + @POCET + ''')'
EXEC (@SQL)
END


BEGIN /* vybery jalovic*/

SELECT @SQL = 'CREATE TABLE CP_SIM_JAL'+ @rndtb + '(
	[CISJAL] [varchar](14) NULL,
	[CHOVNAR] [varchar](9) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL,
	[PORLAK] [varchar](2) NULL,
	[POHLAVIE] [varchar](2) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[DOVVYR] [varchar](2) NULL,
	[DATVYR] [varchar](10) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OPL1] [varchar](2) NULL,
	[OKR1] [varchar](6) NULL,
	[OPL2] [varchar](2) NULL,
	[OKR2] [varchar](6) NULL,
	[OPL3] [varchar](2) NULL,
	[OKR3] [varchar](6) NULL,
	[OPL4] [varchar](2) NULL,
	[OKR4] [varchar](6) NULL,
	[OPL5] [varchar](2) NULL,
	[MATKA] [varchar](14) NULL,
	[MPL1] [varchar](2) NULL,
	[MKR1] [varchar](6) NULL,
	[MPL2] [varchar](2) NULL,
	[MKR2] [varchar](6) NULL,
	[MPL3] [varchar](2) NULL,
	[MKR3] [varchar](6) NULL,
	[MPL4] [varchar](2) NULL,
	[MKR4] [varchar](6) NULL,
	[MPL5] [varchar](2) NULL,
	[FARBA] [varchar](2) NULL,
	[ZNAKET] [bit] NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC(@SQL)

SELECT @SQL = 'insert into CP_SIM_JAL' + @rndtb + '(
    CISJAL, CHOVNAR, CHOVATEL, DATNAR, PORLAK, POHLAVIE, PL1,  KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5,   DOVVYR, DATVYR,  OTECLIN, OTECREG,
     OPL1, OKR1,  OPL2, OKR2,  OPL3, OKR3, OPL4, OKR4, OPL5, 
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )
(select CISJAL, CHOVNAR, CHOVATEL, CONVERT(CHAR(10),DATNAR, 120), PORLAK, POHLAVIE, PL1,  KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5,   DOVVYR, CONVERT(CHAR(10),DATVYR, 120),  OTECLIN, OTECREG,
     OPL1, PKR1,  OPL2, PKR2,  OPL3, OKR3, OPL4, PKR4, OPL5, 
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MM from dbo.View_CP_SIM_JAL)'

EXEC(@SQL)


SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_JAL'', ''' + @POCET + ''')'
EXEC (@SQL)
END

SELECT @SQL='CREATE TABLE CP_SIM_LAKT'+ @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[DATOTEL] [varchar](10) NULL,
	[DATUKONL] [varchar](10) NULL,
	[LAKTDNI] [float] NULL,
	[MLIEKO] [float] NULL,
	[TUK] [float] NULL,
	[BIELK] [float] NULL,
	[LAKTOZA] [float] NULL,
	[SOMBUN] [float] NULL,
	[SPOSOBKU] [varchar](1) NULL,
	[ZMENA] [varchar](2) NULL,
	[INDPER] [float] NULL,
	[INDLAK] [float] NULL
)'
EXEC(@SQL)

SELECT @SQL='insert into CP_SIM_Lakt'+ @rndtb + '(
       CISKRAVY ,PORLAK, DATOTEL, DATUKONL, LAKTDNI, MLIEKO, TUK, BIELK, LAKTOZA, SOMBUN, SPOSOBKU, ZMENA, INDPER, INDLAK)
	   (select l.CISKRAVY ,[PORLAK], CONVERT(CHAR(10),DATOTEL, 120),CONVERT(CHAR(10),DATUKONL, 120),
	    (case when ZMENA in (''30'',''40'') then LAKDNIN else LAKTDNI end) as LAKTDNI,
       convert( decimal (7,2), case when ZMENA in (''30'',''40'') then mlieknor else mliekcel end) as MLIEKO,
		convert( decimal (7,2),case when ZMENA in (''30'',''40'') then tuknor else tukcel end) as TUK,
		convert( decimal (7,2),case when ZMENA in (''30'',''40'') then bielknor else bielkcel end) as BIELK,
		case when ZMENA in (''30'',''40'') then laktozan else laktozac end as LAKTOZA,
		0 as sombun, SPOSOBKU, ZMENA, INDPER, convert( decimal (7,1),INDLAK) as INDLAK
       from CM_Laktacie as l
	   left outer join
CM_KRAVA as k  on l.ciskravy = k.CISKRAVY

WHERE         (k.PRIZNAKKU = ''1'') and 
  (case when k.pl1  in (''S'',''MB'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''S'',''MB'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''S'',''MB'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''S'',''MB'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''S'',''MB'')   then 12.5 else 0 end)  >= 50 
and
			   not  ( (l.laktdni  < 0 and l.laktdni is not null) or (l.TUKCEL < 0 and l.TUKCEL is not null) 
                or (l.BIELKCEL < 0 and l.bielkcel is not null) or (l.TUKNOR < 0 and l.tuknor is not null) or 
				(l.BIELKNOR < 0 and l.bielknor is not null) or (l.MLIEKCEL< 0 and l.mliekcel  is not null )
				or 	(l.MLIEKNOR< 0 and l.mliekNOr  is not null ))
             
	   )'
EXEC(@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_Lakt'', ''' + @POCET + ''')'
EXEC (@SQL)
END



BEGIN /* vybery prvych a poslednych insemenacii krav */ 
SELECT @SQL = 'CREATE TABLE CP_SIM_PripPLem' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_SIM_PripPlem'+ @rndtb + '
(CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL
) 
(
SELECT i.IPLCA,  k.porpreblak as porlak, ii.IPOIN as pocins, CONVERT(CHAR(10),i.IDAIN, 120) as datins1, i.IBLIN as byklin1,  i.IBREG as bzkreg1,
                  CONVERT(CHAR(10),ii.idain, 120) as datins, ii.iblin as byklin, ii.ibreg as bykreg,  ii.ivyse as vysep
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1
							   inner join (		 SELECT    i.IPLCA, i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG,  i.IVYSE
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin <> ''99''   
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika ) as ii on i.iplca = ii.iplca 
							   inner  join dbo.CM_Krava as k on i.IPLCA = k.ciskravy and
							      (k.PRIZNAKKU = ''1'') and 
            (case when k.pl1  in (''S'',''MB'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''S'',''MB'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''S'',''MB'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''S'',''MB'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''S'',''MB'')   then 12.5 else 0 end)  >= 50 
							    
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_PripPLem'', ''' + @POCET + ''')'
EXEC (@SQL)
END


BEGIN /* vybery prvych a poslednych insemenacii jalovic */ 
SELECT @SQL = 'CREATE TABLE CP_SIM_PripJal'+ @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_SIM_PripJal'+ @rndtb + '
(CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL
) 
(
SELECT i.IPLCA,  ''00'' as porlak, ii.IPOIN as pocins, CONVERT(CHAR(10),i.IDAIN, 120) as datins1, i.IBLIN as byklin1,  i.IBREG as bzkreg1,
                  CONVERT(CHAR(10),ii.idain, 120) as datins, ii.iblin as byklin, ii.ibreg as bykreg,  ii.ivyse as vysep
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1
							   inner join (		 SELECT    i.IPLCA, i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG,  i.IVYSE
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin <> ''99''   
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika ) as ii on i.iplca = ii.iplca 
							   inner  join dbo.CM_Telata as k on i.IPLCA = k.cistelata and
							      (k.PRIZNAKKU = ''1'') and 
            (case when k.pl1  in (''S'',''MB'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''S'',''MB'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''S'',''MB'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''S'',''MB'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''S'',''MB'')   then 12.5 else 0 end)  >= 50  
			and (CISTELATA NOT IN
                             (SELECT        CISKRAVY
                               FROM            dbo.CM_Krava))				    
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_PripJal'', ''' + @POCET + ''')'
EXEC (@SQL)

END


BEGIN /* vybery prebiehajucich laktacii*/
SELECT @SQL= 'CREATE TABLE CP_SIM_LAKTPREB' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[DATOTEL] [varchar](10) NULL,
	[HMOTN] [float] NULL,
	[LAKTDNI] [float] NULL,
	[MLIEKO] [decimal](7, 0) NULL,
	[TUK] [decimal](7, 2) NULL,
	[BIELK] [decimal](7, 2) NULL,
	[LAKTOZA] [decimal](7, 2) NULL,
	[SPOSOBKU] [varchar](1) NULL,
	[ZMENA] [varchar](2) NULL,
	[INDPER] [float] NULL
)'
EXEC (@SQL)

SELECT @SQL= 'insert into CP_SIM_LaktPreb'+ @rndtb + '
  (CISKRAVY, PORLAK, DATOTEL, HMOTN, LAKTDNI,  MLIEKO, TUK, BIELK, LAKTOZA, SPOSOBKU, ZMENA, INDPER)
  (select n.CISKRAVY, PORLAK, CONVERT(CHAR(10),DATOTEL, 120), HMOTKR,
        case when lakdnin is not null  or lakdnin > 0 then LAKDNIN else laktdni end  as VLAKTDNI, 
       convert( decimal (7, 0),case when lakdnin is not null  or  lakdnin > 0 then mlieknor else mliekcel end) as MLIEKO,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0 then tuknor else tukcel end) as TUK,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0 then bielknor else bielkcel end) as BIELK,
		convert( decimal (7,2),case when lakdnin is not null  or lakdnin > 0then laktozan else laktozac end) as LAKTOZA,
		 
		 m.SPVYKON, ZMENA, convert (decimal (7,0), INDPER) as INDPER
       from CM_Naplak as n
	   left outer join
CM_KRAVA as k  on n.ciskravy = k.CISKRAVY
left outer join
NM_HDDETAIL as m on n.CHOVATEL = m.KRAJ + m.Okres + m.PODNIK + m.CHOV

WHERE         (k.PRIZNAKKU = ''1'') and 
  (case when k.pl1  in (''S'',''MB'' ) and k.kr1 > 0  then k.kr1 else 0 end 
			  +  case when k.pl2  in (''S'',''MB'' )  then k.kr2 else 0 end
			  +  case when k.pl3  in (''S'',''MB'')   then k.kr3 else 0 end
			  +  case when k.pl4  in (''S'',''MB'')   then k.kr4 else 0 end
			  +  case when k.pl5  in (''S'',''MB'')   then 12.5 else 0 end)  >= 50 

and
			   not  ( (n.laktdni  < 0 and n.laktdni is not null) or (n.TUKCEL < 0 and n.TUKCEL is not null) 
                or (n.BIELKCEL < 0 and n.bielkcel is not null) or (n.TUKNOR < 0 and n.tuknor is not null) or 
				(n.BIELKNOR < 0 and n.bielknor is not null) or (n.MLIEKCEL< 0 and n.mliekcel  is not null )
				or 	(n.MLIEKNOR< 0 and n.mliekNOr  is not null ))
             
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_LaktPreb'', ''' + @POCET + ''')'
EXEC (@SQL)
END


BEGIN /* výbery vážení z KUTMHD*/

SELECT @SQL='CREATE TABLE CP_SIM_VAZENIA_TMHD'+ @rndtb + '(
	[CISTELATA] [varchar](14) NULL,
	[DATVAZ] [varchar](10) NULL,
	[HMOT] [float] NULL,
	[ZIVOTNY_PRIRASTOK] [int] NULL,
	[RP] [varchar](1) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_SIM_VAZENIA_TMHD' + @rndtb + '
(   CISTELATA, DATVAZ, HMOT, ZIVOTNY_PRIRASTOK, RP) 
(SELECT  v.CISTELATA, CONVERT(CHAR(10), DATVAZ, 120), HMOT, ZIVPRIR as ZIVOTNY_PRIRASTOK, RASTPAS
   FROM [dbo].[CM_Vazenia] as v 
  left outer join CM_Krava as k on v.CISTELATA = k.CISKRAVY
  left outer join CM_Telata as t on v.CISTELATA = t.CISTELATA
  where v.PRIZNAKKU = ''1'' and (k.PL1  in  (''S'',''MB'' ) or t.PL1 in  (''S'',''MB'' )) and ZIVPRIR > 0
)'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_VAZENIA_TMHD'', ''' + @POCET + ''')'
EXEC (@SQL)

END
	

BEGIN /* vybery KRAVTDM*/
SELECT @SQL = 'CREATE TABLE CP_SIM_KRAVTDM'+ @rndtb + '(
	[KRAVA] [varchar](15) NULL,
	[POZN] [varchar](2) NULL,
	[DATUMN] [varchar](10) NULL,
	[ROK] [int] NULL,
	[SIRE] [varchar](15) NULL,
	[DAM] [varchar](15) NULL,
	[BREEDG] [varchar](2) NULL,
	[PLEMENO] [varchar](30) NULL,
	[NH] [int] NULL,
	[ND] [int] NULL,
	[NR] [int] NULL,
	[N] [int] NULL,
	[MLIEKO] [int] NULL,
	[TUK] [int] NULL,
	[TUKP] [decimal](3, 2) NULL,
	[BIELK] [int] NULL,
	[BIELKP] [decimal](3, 2) NULL,
	[SPI] [int] NULL,
	[M305] [decimal](6, 1) NULL,
	[RPHM] [int] NULL,
	[M100] [decimal](7, 1) NULL,
	[MREL] [decimal](5, 4) NULL,
	[T305] [decimal](7, 2) NULL,
	[RPHT] [int] NULL,
	[T100] [decimal](7, 2) NULL,
	[TP] [decimal](7, 2) NULL,
	[TPERC] [decimal](7, 2) NULL,
	[TREL] [decimal](5, 4) NULL,
	[B305] [decimal](7, 2) NULL,
	[RPHB] [int] NULL,
	[B100] [decimal](7, 2) NULL,
	[BP] [decimal](5, 2) NULL,
	[BPERC] [decimal](5, 2) NULL,
	[BREL] [decimal](5, 4) NULL,
	[REL] [decimal](5, 4) NULL
)'
EXEC (@SQL)

SELECT @SQL = 'insert into CP_SIM_KRAVTDM'+ @rndtb + ' 
       ( KRAVA ,POZN, DATUMN,ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL)
 
        ( select KRAVA , POZN, CONVERT(CHAR(10),DATUMN, 120), ROK, SIRE, DAM , BREEDG, PLEMENO, NH, ND, NR, N, MLIEKO, TUK, TUKP, BIELK, BIELKP, SPI, M305, RPHM, M100,  MREL, T305, RPHT, T100, 
         TP, TPERC, TREL, B305, RPHB, B100, BP, BPERC, BREL, REL
	    from dbo.CP_BLUP_KRAVYTDM
		where plem = ''S''
       )'
EXEC (@SQL)

SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_SIM_KRAVTDM'', ''' + @POCET + ''')'
EXEC (@SQL)

END


go

-- =============================================
-- Author:		David Florek
-- Create date:	03.08.2017
-- Description:	Prepocita riadky faktury pre KUMP. Zapise jednotlive riadky do EC_RiadokFaktury.
-- Edit:			28.08.2017 Pridany kurzor a pridanie generovania do historie.
-- Edit:			13.09.2017 Pridany prepocet dotacie a zlavy.
-- =============================================
CREATE PROCEDURE [dbo].[EC_KUMP_PrepocitajFakturu]
	@datum DATE = null,
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@jeDotacia bit = 0
AS
BEGIN
	if @datum is null set @datum = GETDATE();
	if @rok is null set @rok = CAST(YEAR(@datum) as varchar(4));
	if @mesiac is null set @mesiac = CAST(MONTH(@datum) as varchar(2));

	If(OBJECT_ID('tempdb..#zoznam') Is Not Null)
		Drop Table #zoznam

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Výber zoznamu chovov.';

	select
		a.CHOV as Chov,
		'KUMP' as Typ,
		SUBSTRING(@rok, 4, 1) + '1' + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + d.PODNIK + d.KRAJ + d.OKRES as Faktura,
		a.POCJED as Pocet,
		SUBSTRING(@rok, 3, 2) + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + dbo.Posledny_pracovny_den_mesiaca(@mesiac, @rok) as Datum,
		a.KODPROD as Produkt,
		prod.JEDCENA as Suma,
		a.POCJED * prod.JEDCENA as SumaCelkom,
		ISNULL(a.PRIPLATOK, 0) as Priplatok,
		a.PRIPLATOKPERC as PriplatokPerc

	into #zoznam

		from (
			--select
			--	s.CHOV,
			--	s.HD_KRAVA as POCJED,
			--	dbo.CP_KUMP_DAJPRODUKT(s.CHOV, @datum) as KODPROD,
			--	s.DATUM,
			--	d.UPRAVA as PRIPLATOK,
			--	case
			--		when (select count(*) from NM_HDDETAIL xx where d.KRAJ + d.OKRES + d.PODNIK = xx.KRAJ + xx.OKRES + xx.PODNIK and dbo.HDchov_typ_KU(xx.KRAJ + xx.OKRES + xx.PODNIK + xx.CHOV) = 'ML') > 0
			--			then ISNULL(CAST(REPLACE(PRIPLATOK, '+', '') as decimal(10, 2)), 0) - 10
			--		else ISNULL(CAST(REPLACE(PRIPLATOK, '+', '') as decimal(10, 2)), 0)
			--	end as PRIPLATOKPERC

			--from NE_STATISTIKY_FAKT s
			--join NM_HDDETAIL d on s.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			--join NM_CHOVMAS ch on d.KRAJ = ch.KRAJ and d.OKRES = ch.OKRES and d.PODNIK = ch.PODNIK and d.CHOV = ch.CHOV
			--and (d.SPVYKON = '4')
			--where d.PRIZNAK = '01'

			--union all
			select 
				s.CHOV,
				s.HD_TELA as POCJED,
				case
					when s.HD_TELA + s.HD_KRAVA <= 10 then '16001'
					when s.HD_TELA + s.HD_KRAVA > 10 and s.HD_TELA + s.HD_KRAVA <= 50 then '16002'
					when s.HD_TELA + s.HD_KRAVA > 50 and s.HD_TELA + s.HD_KRAVA <= 120 then '16003'
					when s.HD_TELA + s.HD_KRAVA > 120 and s.HD_TELA + s.HD_KRAVA <= 250 then '16004'
					else '16005'
				end as KODPROD,
				s.DATUM,
				ISNULL(REPLACE(d.UPRAVA, '+', ''), 0) as PRIPLATOK,
				case when
					(select count(d2.CHOV) from NM_HDDETAIL d2
					where d2.KRAJ + d2.OKRES + d2.PODNIK = d.KRAJ + d.OKRES + d.PODNIK
					and d2.SB = '1'
					and d2.PRIZNAK = '01'
					and d2.SPVYKON in ('1', '2', '3', '6', '7')) > 0 then -10
					else ISNULL(REPLACE(d.PRIPLATOK, '+', ''), 0) end as PRIPLATOKPERC

			from NE_STATISTIKY_FAKT s
			join NM_HDDETAIL d on s.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			join NM_CHOVMAS ch on d.KRAJ = ch.KRAJ and d.OKRES = ch.OKRES and d.PODNIK = ch.PODNIK and d.CHOV = ch.CHOV
			and (d.SPVYKON = '4')
			where d.PRIZNAK = '01'

			union all
			select 
				s.CHOV,
				s.HD_KRAVA as POCJED,
				case
					when s.HD_TELA + s.HD_KRAVA <= 10 then '16101'
					when s.HD_TELA + s.HD_KRAVA > 10 and s.HD_TELA + s.HD_KRAVA <= 50 then '16102'
					when s.HD_TELA + s.HD_KRAVA > 50 and s.HD_TELA + s.HD_KRAVA <= 120 then '16103'
					when s.HD_TELA + s.HD_KRAVA > 120 and s.HD_TELA + s.HD_KRAVA <= 250 then '16104'
					else '16105'
				end as KODPROD,
				s.DATUM,
				ISNULL(REPLACE(d.UPRAVA, '+', ''), 0) as PRIPLATOK,
				case when
					(select count(d2.CHOV) from NM_HDDETAIL d2
					where d2.KRAJ + d2.OKRES + d2.PODNIK = d.KRAJ + d.OKRES + d.PODNIK
					and d2.SB = '1'
					and d2.PRIZNAK = '01'
					and d2.SPVYKON in ('1', '2', '3', '6', '7')) > 0 then -10
					else ISNULL(REPLACE(d.PRIPLATOK, '+', ''), 0) end as PRIPLATOKPERC

			from NE_STATISTIKY_FAKT s
			join NM_HDDETAIL d on s.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			join NM_CHOVMAS ch on d.KRAJ = ch.KRAJ and d.OKRES = ch.OKRES and d.PODNIK = ch.PODNIK and d.CHOV = ch.CHOV
			and (d.SPVYKON = '4')
			where d.PRIZNAK = '01'

			union all
			select
				s.CHOV,
				case
					when s.HD_KRAVA = 0 then s.HD_TELA
					else s.HD_KRAVA
				end as POCJED,
				case
					when (s.HD_KRAVA <= 650) or (s.HD_KRAVA = 0 and s.HD_TELA <= 650) then '19010'
					when (s.HD_KRAVA > 650 and s.HD_KRAVA <= 1200) or (s.HD_KRAVA = 0 and s.HD_TELA > 650 and s.HD_TELA <= 1200) then '19011'
					when (s.HD_KRAVA > 1200 and s.HD_KRAVA <= 2000) or (s.HD_KRAVA = 0 and s.HD_TELA > 1200 and s.HD_TELA <= 2000) then '19012'
					else '19013'
				end as KODPROD,
				s.DATUM,
				0 as PRIPLATOK,
				0 as PRIPLATOKPERC

			from NE_STATISTIKY_FAKT s
			join NM_HDDETAIL d on s.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where d.SPVYKON = '4' and d.PLIS = '1'
		) a

		left outer join NM_HDDETAIL d on a.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		left outer join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
		left outer join NM_PRACKU prac on d.IDZOO = prac.REGISTR_CISLO
		join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = KODPROD

		where
			a.POCJED <> '0'
			and a.POCJED is not null
			and a.DATUM = @datum
		order by a.CHOV, KODPROD;

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Prejdenie zoznamu chovov.';

	declare riadok cursor for
	select * from #zoznam;

	declare
		@id int,
		@chov varchar(9),
		@typ varchar(10),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Vkladanie riadkov faktúr.';
	declare @poc int = 0;

	--Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	open riadok;
	fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
	WHILE @@FETCH_STATUS = 0
		begin
			--insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatokPerc, @jeDotacia;

			--select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

			set @sumaCelkom = @pocet * (@suma + @priplatok) * (100 + @priplatokPerc) / 100;
			set @dotacia = 0;
			set @zlavCel = (@pocet * @suma) - (@pocet * (@suma + @priplatok)) * ((100 + @priplatokPerc) / 100);

			insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, oSuma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
			values (@chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

			select @id = SCOPE_IDENTITY();

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KodZmeny)
			values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Generovanie', GETDATE(), 'system', 0);

			--delete from @T;
			set @poc = @poc + 1;

			fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
		end

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec vkladania riadkov, bolo vložených ' + cast(@poc as varchar) + ' riadkov.';

	close riadok;
	deallocate riadok;

	Drop Table #zoznam;
	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec čistenia. Prepočet hotový.';
END


go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_PoslednaLaktZaradenyKravy]

AS
BEGIN
	

	/***********************************
		using table: CM_Krava,CM_Laktacie

		changing table: CP_KravaPoslednaUzavLaktZaradeny

		used: (6) Uzávierka KÚHD posledných uzavretých laktácií 
	********************************/
	SET NOCOUNT ON;

	TRUNCATE TABLE CP_KravaPoslednaUzavLaktZaradeny
	declare @msms as datetime;
	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from CM_Krava
	where dovvyr is not null
	and priznakku='1'

	open chova
	fetch next from chova into @chov
	set @msms=GETDATE();
	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is not null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							--print @ciskrava

							set @maxLakt=(select max(PORLAK) from CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is NOT null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into CP_KravaPoslednaUzavLaktZaradeny values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt))
								--print datediff(ms,@msms,getdate());
								set @msms=GETDATE();
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				--print N'Done'
			end
			close chova;
			deallocate chova;
	
END

go



 CREATE procedure [dbo].[Rocenka_MPHD_7_plemTYP]
	
	@rok int
	--@plemeno varchar(10)

	as 
	begin

	--declare @rok int = 2017, @plemeno varchar(10) = 'AA'
	select   plemeno,plemtyp,
		case --when plemtyp = '101' then 'BBM1'  
		--when plemtyp = '102'then 'BBM2'  
		--	when plemtyp = '103' then 'BBM3'  
		--	when plemtyp = '104' then 'BBM4'  
		--	when plemtyp = '105' then 'BBM5'  
		when plemtyp ='111' then 'AAM1'
			when plemtyp ='112' then 'AAM2'
			when plemtyp ='113' then 'AAM3'
			when plemtyp ='114' then 'AAM4'
			when plemtyp ='115' then 'AAM5'
		when plemtyp ='121' then 'BAM1'
			when plemtyp ='122' then 'BAM2'
			when plemtyp ='123' then 'BAM3'
			when plemtyp ='124' then 'BAM4'
			when plemtyp ='125' then 'BAM5' 
		when plemtyp ='131' then 'GLM1'
		when plemtyp ='141' then 'HEM1'
			when plemtyp ='142' then 'HEM2'
			when plemtyp ='143' then 'HEM3'
			when plemtyp ='144' then 'HEM4'
			when plemtyp ='145' then 'HEM5'
		when plemtyp ='151' then 'HLM1'
		when plemtyp ='161' then 'CHM1'
			when plemtyp ='162' then 'CHM2'
			when plemtyp ='163' then 'CHM3'
			when plemtyp ='164' then 'CHM4'
			when plemtyp ='165' then 'CHM5'
		when plemtyp ='171' then 'LIM1'
			when plemtyp ='172' then 'LIM2'
			when plemtyp ='173' then 'LIM3'
			when plemtyp ='174' then 'LIM4'
			when plemtyp ='175' then 'LIM5'
		when plemtyp ='201' then 'SMM1'
			when plemtyp ='202' then 'SMM2'
			when plemtyp ='203' then 'SMM3'
			when plemtyp ='204' then 'SMM4'
			when plemtyp ='205' then 'SMM5'
		when plemtyp ='191' then 'PIM1'
			when plemtyp ='192' then 'PIM2'
			when plemtyp ='193' then 'PIM3'
			when plemtyp ='194' then 'PIM4'
			when plemtyp ='195' then 'PIM5'
		when plemtyp ='51' then 'PM0'
			when plemtyp ='53' then 'PM1'
			when plemtyp ='54' then 'PM2'
		when plemtyp ='11' then 'SM0'
			when plemtyp ='13' then 'SM1'
		when plemtyp ='14' then 'SM2' end as plemeno_nazov,
						do350, do350_p, do380, do380_p, do410, do410_p, do440, do440_p, do470, do470_p, nad471, nad471_p, spolu, rok
	from Roc_MPHD_Tab_7_plemTYP as pt 
  	--where pt.plemeno = @plemeno
union

select plemeno,'999'as plemtyp, 'spolu' as plemeno_nazov, do350, do350_p, do380, do380_p, do410, do410_p, do440, do440_p, do470, do470_p, nad471, nad471_p, spolu, rok
from Roc_MPHD_Tab_7 as roc 
  			where roc.plemeno not in ('SR','Nez','Osta')
					 




		end
 
go

-- =============================================
-- Author:		David Florek
-- Create date:	21.07.2017
-- Description:	Vrati vyfiltrovany zoznam poslanych mailov chovatelom
-- Edit:			25.07.2017 - Hlada v maily namiesto v username, pridany zdroj.
-- Edit:			26.07.2017 - Zoradovanie iba podla datumu od najnovsieho.
-- =============================================
CREATE PROCEDURE [dbo].[CP_Daj_Zoznam_Odoslanych_Mailov]
	@username varchar(50) = null,
	@kraj varchar(1) = null,
	@okres varchar(2) = null,
	@podnik varchar(3) = null,
	@chov varchar(3) = null,
	@prijemca varchar(50) = null,
	@datumOd DATE = null,
	@datumDo DATE = null,
	@rok int = null,
	@mesiac int = null

AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	select distinct
		prac.MENO + ' ' + prac.PRIEZVISKO as Odosielatel,
		mail.Email as OdosielatelMail,
		sprac.CHOV,
		mail.Prijemca as Prijemca,
		mail.Datum as Datum,
		sprac.KONIEC as DatumUkoncenia,
		sprac.Mesiac as mesiacSpracovania,
		sprac.ROK as rokSpracovania,
		mail.Zdroj as zdroj
		
		from CP_SPRAC_MAIL_LOG mail

		join NM_PRACKU prac on mail.Email = prac.Email
		join aspnetdb.dbo.User_PRACKU uprac on prac.IDPRACKU = uprac.IDPRACKU
		join aspnetdb.dbo.aspnet_Users u on uprac.UserId = u.UserId
		join VstupyPLIS.dbo.CP_SPRAC_CHOVY sprac on mail.IDR = sprac.IDR
		--join aspnetdb.dbo.aspnet_Membership m on u.UserId = m.UserId

		where
			(@username is null or @username = '' or mail.Email like '%' + LOWER(@username) + '%')
		and (@kraj is null or @kraj = '' or SUBSTRING(sprac.CHOV, 1, 1) = @kraj)
		and (@okres is null or @okres = '' or SUBSTRING(sprac.CHOV, 2, 2) = @okres)
		and (@podnik is null or @podnik = '' or SUBSTRING(sprac.CHOV, 4, 3) = @podnik)
		and (@chov is null or @chov = '' or SUBSTRING(sprac.CHOV, 7, 3) = @chov)
		and (@prijemca is null or @prijemca = '' or LOWER(mail.Prijemca) like '%' + LOWER(@prijemca) + '%')
		and (@datumOd is null or @datumOd = '' or @datumOd < mail.Datum)
		and (@datumDo is null or @datumDo = '' or @datumDo > mail.Datum)
		and (@rok is null or @rok = 0 or @rok = sprac.ROK)
		and (@mesiac is null or @mesiac = 0 or @mesiac = sprac.MESIAC)

		and prac.CORG = '00'
		--and m.IsLockedOut = 0

		order by mail.Datum desc;
END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PrVekSt] 
(	
	@chov varchar(9) 

)

RETURNS @T table(nazov varchar(13),Pocbah varchar(8),pocbar varchar(8), pocjar varchar(8), pocjah varchar(8), pocmbar2 varchar(8), pocmbar1 varchar(8))
AS
begin
	declare @pocbah int = 0, @pocbah2 int = 0, @pocbar int = 0, @pocbar2 int = 0, @pocjar int = 0, @pocjah int = 0, @pocmbar1 int = 0, @pocmbar2 int = 0
	declare @svekbah int = 0, @svekbar int = 0,@svekjar int = 0,@svekjah int = 0,@svekmbar1 int = 0,@svekmbar2 int = 0
	declare @prvekbah varchar(8), @prvekbar varchar(8),@prvekjar varchar(8),@prvekjah varchar(8),@prvekmbar1 varchar(8),@prvekmbar2 varchar(8)
	SELECT @pocbah2 = @pocbah2 + pocet,@pocbah = @pocbah + case when roknar>0 then pocet else 0 end,
	       @svekbah = @svekbah + case when roknar>0 then svekmes else 0 end
	  FROM function_SP_bahroknar(@chov)
	SELECT @pocbar2 = @pocbar2 + pocet,@pocbar = @pocbar + case when roknar>0 then pocet else 0 end,
	       @svekbar = @svekbar + case when roknar>0 then svekmes else 0 end
	  FROM function_SP_barroknar(@chov)
	SELECT @pocjar = @pocjar + pocjar, @svekjar=@svekjar+svekmesjar, @pocjah = @pocjah + pocjah, @svekjah=@svekjah+svekmesjah,
	 @pocmbar2 = @pocmbar2 + pocmbar2, @svekmbar2=@svekmbar2+svekmesmbar2,@pocmbar1 = @pocmbar1 + pocmbar1, @svekmbar1=@svekmbar1+svekmesmbar1
	  FROM function_SP_pocjarmbar(@chov)
	  where roknar>0
	set @prvekbah = case when @pocbah>0 then str((@svekbah/@pocbah)/12,2)+'r '+str((@svekbah/@pocbah)%12,2)+'m' else '  - ' end;
	set @prvekbar = case when @pocbar>0 then str((@svekbar/@pocbar)/12,2)+'r '+str((@svekbar/@pocbar)%12,2)+'m' else '  - ' end;
	set @prvekjar = case when @pocjar>0 then str((@svekjar/@pocjar)/12,2)+'r '+str((@svekjar/@pocjar)%12,2)+'m' else '  - ' end;
	set @prvekjah = case when @pocjah>0 then str((@svekjah/@pocjah)/12,2)+'r '+str((@svekjah/@pocjah)%12,2)+'m' else '  - ' end;
	set @prvekmbar1 = case when @pocmbar1>0 then str((@svekmbar1/@pocmbar1)/12,2)+'r '+str((@svekmbar1/@pocmbar1)%12,2)+'m' else '  - ' end;
	set @prvekmbar2 = case when @pocmbar2>0 then str((@svekmbar2/@pocmbar2)/12,2)+'r '+str((@svekmbar2/@pocmbar2)%12,2)+'m' else '  - ' end;
	insert into @T (nazov,Pocbah,pocbar, pocjar, pocjah, pocmbar2, pocmbar1) values ('Počet celkom',str(@pocbah2,8),str(@pocbar2,8),str(@pocjar,8), str(@pocjah,8), str(@pocmbar2,8),str(@pocmbar1,8))
	insert into @T (nazov,Pocbah,pocbar, pocjar, pocjah, pocmbar2, pocmbar1) values ('Priemerný vek', @prvekbah, @prvekbar,@prvekjar, @prvekjah, @prvekmbar2,@prvekmbar1)
	RETURN 
end


go

/***masova rocenka - -- hmotnost byckov a jaloviciek podla plemien a pohlavia graf strana  43 rok 2017**/
CREATE procedure [dbo].[Roc_MPHD_GRAF_HMOT_120_240]

    @datumOd date ,
    @datumDo date

as
  begin


    declare @dniVaz table (den int);
    insert @dniVaz(den) values(120),(210);

    declare @vaz table (den int, PLEMPRIS varchar(2), pohlavie int, hmotnost float, pocet int);


    DECLARE cursorDen CURSOR
    FOR SELECT den FROM @dniVaz
    OPEN cursorDen
    declare @den int;
    FETCH NEXT FROM cursorDen into @den
    WHILE (@@FETCH_STATUS = 0)
      BEGIN
        PRINT @den;
        insert into @vaz
          select @den as den, isnull(CC_PlemTyp.PLEMPRIS, 'XX') as PLEMPRIS, RIGHT(CM_Telata.POHLAVIE, 1) as pohlavie, avg(HMOTPREPOC) as hmotnost, count(*) as pocet from CM_Vazenia
            inner join CM_Telata on CM_Vazenia.CISTELATA = CM_Telata.CISTELATA and CM_Vazenia.PRIZNAKKU = 2 and DATVAZ between @datumOd and @datumDo and DNIPREPOC = @den and RIGHT (CM_Telata.POHLAVIE, 1) in (1, 2)
            left outer join CC_PlemTyp on TYPPLEM = CC_PlemTyp.TYPC

          group by RIGHT (CM_Telata.POHLAVIE, 1), CC_PlemTyp.PLEMPRIS

          union

          select
            @den as den,
            'SR'                         as PLEMPRIS,
            RIGHT(CM_Telata.POHLAVIE, 1) as pohlavie,
            avg(HMOTPREPOC)              as hmotnost,
            count(*)                     as pocet
          from CM_Vazenia
            inner join CM_Telata on CM_Vazenia.CISTELATA = CM_Telata.CISTELATA and CM_Vazenia.PRIZNAKKU = 2 and
                                    DATVAZ between @datumOd and @datumDo and DNIPREPOC = @den and
                                    RIGHT(CM_Telata.POHLAVIE, 1) in (1, 2)

          group by RIGHT(CM_Telata.POHLAVIE, 1)


        FETCH NEXT FROM cursorDen
        INTO @den;
      END

    select * from @vaz;




  End
go








-- =============================================
-- Author:		<PSSR, š.p>
-- Create date: 
-- Description:	Výbery pre Zväz chovateľov MD
-- =============================================
CREATE PROCEDURE [dbo].[C_VyberyZCHMD] @rndtb varchar(20)


AS

declare @CP_SPOL_BYCI varchar(40), @SQL varchar(max),
	@OUTPUT_TABLE varchar(40), @POCET VARCHAR(20)
	set @OUTPUT_TABLE = 'OUT' + @rndtb

BEGIN
	SET NOCOUNT ON;



BEGIN /* naplnenie tabulky CP_ZCHMD_KRAVY*/
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_Kravy' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL, 
	[DATPOSOTEL] [varchar](10) NULL,
	[PLEMENO] [varchar](36) NULL,
	[MATKA] [varchar](15) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [int] NULL,
	[OUC] [varchar](15) NULL,
	[HMOTNAR] [float] NULL,
	[HMOT120] [float] NULL,
	[DATUM120] [varchar](10) NULL,
	[HMOT210] [float] NULL,
	[DATUM210] [varchar](10) NULL,
	[HMOT365] [float] NULL,
	[DATUM365] [varchar](10) NULL,
	[HMOT500] [float] NULL,
	[DATUM500] [varchar](10) NULL,
	[ZAVER] [varchar](2) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_KRAVY' + @rndtb + '
       ( CISKRAVY, CHOVATEL, DATNAR, DATPOSOTEL, PLEMENO,  MATKA, OTECLIN, OTECREG, OUC, HMOTNAR, HMOT120, DATUM120, 
	    HMOT210, DATUM210, HMOT365, DATUM365, HMOT500, DATUM500, ZAVER )
 (select ciskravy, kr.chovatel, CONVERT(CHAR(10),kr.Datnar, 120),
(select  CONVERT(CHAR(10),max(datnar), 120)  as DatPosOtel  from  CM_Telata
where matka = kr.CISKRAVY
group by MATKA) as DatposOtel, 
 ISNULL(PL1, '''') + '' '' + CASE WHEN CONVERT(varchar, KR1) 
                         <> ''0'' THEN CONVERT(varchar, KR1) ELSE '''' END + '' '' + ISNULL(PL2, '''') + '' '' + CASE WHEN CONVERT(varchar, KR2) 
                         <> ''0'' THEN CONVERT(varchar, KR2) ELSE '''' END + '' '' + ISNULL(PL3, '''') + '' '' + CASE WHEN CONVERT(varchar, KR3) 
                         <> ''0'' THEN CONVERT(varchar, KR3) ELSE '''' END + '' '' + ISNULL(PL4, '''') + '' '' + CASE WHEN CONVERT(varchar, KR4) 
                         <> ''0'' THEN CONVERT(varchar, KR4) ELSE '''' END + '' '' + ISNULL(PL5, '''') AS PLEMENO, 
						  MA as MATKA, OTECLIN, OTECREG, OUSCIS as OUC, 
v.vahaNar as hmotnar,  convert(int, nullif(v.vaha120, 0)) as hmot120, (select top 1  CONVERT(CHAR(10),max(vv.datvaz), 120)  from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 120  
group by  vv.DATVAZ ) as datum120, 
convert(int, nullif(v.vaha210, 0)) as hmot210, (select top 1  CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 210
group by  vv.DATVAZ ) as datum210, 
convert(int, nullif(v.vaha365, 0)) as hmot365,  (select top 1  CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 365
group by  vv.DATVAZ ) as datum365, 
convert(int, nullif(v.vaha500, 0)) as hmot500,  (select top 1  CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = kr.ciskravy  and vv.DNIPREPOC = 500
group by  vv.DATVAZ ) as datum500, kr.dovvyr as zaver
from CM_Krava as kr
left outer join CP_Meso_TelataVahy as v on kr.CISKRAVY = v.cistelata
where PRIZNAKKU = ''2'' )'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_KRAVY'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_KRAVY'
END

  
BEGIN  /* naplnenie tabuľky CP_ZCHMD_Telata*/   
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_Telata' + @rndtb + '(
	[CISTELATA] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL,
	[POHLAVIE] [varchar](2) NULL,
	[PLEMENO] [varchar](36) NULL,
	[MATKA] [varchar](14) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OUC] [varchar](15) NULL,
	[HMOTNAR] [float] NULL,
	[OBTIAZPOR] [varchar](1) NULL,
	[ZLAKTACIE] [varchar](2) NULL,
	[HMOT120] [float] NULL,
	[DATUM120] [varchar](10) NULL,
	[HMOT210] [float] NULL,
	[DATUM210] [varchar](10) NULL, 
	[HMOT365] [float] NULL,
	[DATUM365] [varchar](10) NULL,
	[HMOT500] [float] NULL,
	[DATUM500] [varchar](10) NULL,
	[ZAVER] [varchar](2) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_Telata' + @rndtb + '
     ( CISTELATA, CHOVATEL, DATNAR, POHLAVIE, PLEMENO,  MATKA, OTECLIN, OTECREG, OUC, HMOTNAR,OBTIAZPOR, ZLAKTACIE, HMOT120, DATUM120, 
	   HMOT210, DATUM210, HMOT365, DATUM365, HMOT500, DATUM500, ZAVER )

(select te.CISTELATA, te.chovatel, CONVERT(CHAR(10), te.Datnar, 120), te.POHLAVIE,

 ISNULL(PL1, '''') + '' '' + CASE WHEN CONVERT(varchar, KR1) 
                         <> ''0'' THEN CONVERT(varchar, KR1) ELSE '''' END + '' '' + ISNULL(PL2, '''') + '' '' + CASE WHEN CONVERT(varchar, KR2) 
                         <> ''0'' THEN CONVERT(varchar, KR2) ELSE '''' END + '' '' + ISNULL(PL3, '''') + '' '' + CASE WHEN CONVERT(varchar, KR3) 
                         <> ''0'' THEN CONVERT(varchar, KR3) ELSE '''' END + '' '' + ISNULL(PL4, '''') + '' '' + CASE WHEN CONVERT(varchar, KR4) 
                         <> ''0'' THEN CONVERT(varchar, KR4) ELSE '''' END + '' '' + ISNULL(PL5, '''') AS PLEMENO, te.MATKA, te.OTECLIN, te.OTECREG, te.OUC, 
te.HMOTNAR, te.PRIEBPOR, te.porlak,  convert(int, nullif(v.vaha120, 0))  as hmot120, (select top 1 CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 120  
group by  vv.DATVAZ ) as datum120, 
 convert(int, nullif(v.vaha210, 0)) as hmot210, (select top 1   CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 210
group by  vv.DATVAZ ) as datum210, 
 convert(int, nullif(v.vaha365, 0)) as hmot365,  (select top 1   CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 365
group by  vv.DATVAZ ) as datum365, 
  convert(int, nullif(v.vaha500, 0)) as hmot500,  (select top 1   CONVERT(CHAR(10),max(vv.datvaz), 120) from CM_Vazenia as vv where vv.cistelata = te.CISTELATA  and vv.DNIPREPOC = 500
group by  vv.DATVAZ ) as datum500, te.dovvyr
from CM_Telata as te
left outer join CP_Meso_TelataVahy as v on te.CISTELATA = v.cistelata
where PRIZNAKKU = ''2'' )'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_Telata'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_Telata'
END
 
BEGIN  /* naplnenie tabuľky CP_ZCHMD_Ciselnik*/   
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_Ciselnik' + @rndtb + '(
	[CHOVATEL] [varchar](9) NULL,
	[NAZPOD] [varchar](50) NULL,
	[MIESTOPOD] [varchar](40) NULL,
	[NAZMAS] [varchar](30) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_Ciselnik' + @rndtb + '
     (CHOVATEL, NAZPOD, MIESTOPOD, NAZMAS
      )
(select (hd.kraj+hd.okres+ hd.podnik+ hd.chov) as Chovatel, substring( p.Nazov, 1, 50) as NazPod, p.OBEC as MiestoPod,  ch.NAZOV as NazMas   from NM_HDDETAIL as hd
left outer join NM_CHOVMAS as ch on (hd.kraj + hd.okres + hd.podnik + hd.CHOV) = (ch.kraj + ch.okres + ch.podnik + ch.chov)
left outer join NM_PODNIK  as p on (hd.kraj + hd.okres + hd.podnik) = (p.kraj + p.okres + p.podnik) 
where hd.PRIZNAK = ''01'' and hd.SPVYKON = ''4'')'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_Ciselnik'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_Ciselnik'
END

BEGIN /* naplnenie tabuľky CP_ZCHMD_SJAL*/ 
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_SJAL' + @rndtb + '(
	[CISJAL] [varchar](14) NULL,
	[CHOVNAR] [varchar](9) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL,
	[PORLAK] [varchar](2) NULL,
	[POHLAVIE] [varchar](2) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[OPL1] [varchar](2) NULL,
	[OKR1] [varchar](6) NULL,
	[OPL2] [varchar](2) NULL,
	[OKR2] [varchar](6) NULL,
	[OPL3] [varchar](2) NULL,
	[OKR3] [varchar](6) NULL,
	[OPL4] [varchar](2) NULL,
	[OKR4] [varchar](6) NULL,
	[OPL5] [varchar](2) NULL,
	[MATKA] [varchar](14) NULL,
	[MPL1] [varchar](2) NULL,
	[MKR1] [varchar](6) NULL,
	[MPL2] [varchar](2) NULL,
	[MKR2] [varchar](6) NULL,
	[MPL3] [varchar](2) NULL,
	[MKR3] [varchar](6) NULL,
	[MPL4] [varchar](2) NULL,
	[MKR4] [varchar](6) NULL,
	[MPL5] [varchar](2) NULL,
	[FARBA] [varchar](2) NULL,
	[ZNAKET] [bit] NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_SJAL' + @rndtb + '
(    CISJAL, CHOVNAR, CHOVATEL, DATNAR, PORLAK, POHLAVIE, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, OTECLIN, OTECREG,
     OPL1, OKR1,  OPL2, OKR2,  OPL3, OKR3, OPL4, OKR4, OPL5,  
     matka,  MPL1, MKR1,  MPL2, MKR2, MPL3, MKR3, MPL4, MKR4, MPL5, FARBA, ZNAKET,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )

(SELECT        k.CISTELATA AS CISJAL, k.CHOVNAR, k.CHOVATEL, CONVERT(CHAR(10),k.DATNAR, 120), k.PORLAK, k.POHLAVIE, k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.OTECLIN, 
                         k.OTECREG, b.PL1 AS OPL1, b.KR1 AS PKR1, b.PL2 AS OPL2, b.KR2 AS PKR2, b.PL3 AS OPL3, b.KR3 AS OKR3, b.PL4 AS OPL4, b.KR4 AS PKR4, b.PL5 AS OPL5, 
                         k.MATKA, m.PL1 AS MPL1, m.KR1 AS MKR1, m.PL2 AS MPL2, m.KR2 AS MKR2, m.PL3 AS MPL3, m.KR3 AS MKR3, m.PL4 AS MPL4, m.KR4 AS MKR4, 
                         m.PL5 AS MPL5, k.FARBA, k.ZNAKET,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b3
                                                           WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) AS OOREG, b.MATKA AS MO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS OMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        (k.IDMA = IDKRAVY)) AS MM,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Byci AS b3
                                                                                       WHERE        (k.IDOT = IDBYKA)) = IDBYKA)) = IDBYKA)) AS OOOREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b1
                               WHERE        (b.IDOT = IDBYKA)) AS MOO,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS OMOREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k2
                               WHERE        (b.IDMA = IDKRAVY)) AS MMO,
                             (SELECT        LIN
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMLIN,
                             (SELECT        REG
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Byci AS b
                                                           WHERE        ((SELECT        IDOT
                                                                                       FROM            dbo.CM_Krava AS k1
                                                                                       WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) = IDBYKA)) AS OOMREG,
                             (SELECT        MATKA
                               FROM            dbo.CM_Byci AS b
                               WHERE        ((SELECT        IDOT
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDBYKA)) AS MOM,
                             (SELECT        OTECLIN
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMLIN,
                             (SELECT        OTECREG
                               FROM            dbo.CM_Krava AS k4
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS OMMREG,
                             (SELECT        MA
                               FROM            dbo.CM_Krava AS k1
                               WHERE        ((SELECT        IDMA
                                                           FROM            dbo.CM_Krava AS k1
                                                           WHERE        (k.IDMA = IDKRAVY)) = IDKRAVY)) AS MMM
FROM            dbo.CM_Telata AS k LEFT OUTER JOIN
                         dbo.CM_Byci AS b ON k.IDOT = b.IDBYKA LEFT OUTER JOIN
                         dbo.CM_Krava AS m ON k.IDMA = m.IDKRAVY
WHERE        (k.PRIZNAKKU = ''2'') AND (k.CISTELATA IS NOT NULL) and CISTELATA not in (select ciskravy  from cm_krava) )'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_SJAL'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_SJAL'
END

BEGIN /* naplnenie tabuľky CP_ZCHMD_SKRAV*/   
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_SKRAV' + @rndtb + '(
	[CisKravy] [varchar](14) NULL,
	[CHOVATEL] [varchar](9) NULL,
	[DATNAR] [varchar](10) NULL,
	[PL1] [varchar](2) NULL,
	[KR1] [varchar](6) NULL,
	[PL2] [varchar](2) NULL,
	[KR2] [varchar](6) NULL,
	[PL3] [varchar](2) NULL,
	[KR3] [varchar](6) NULL,
	[PL4] [varchar](2) NULL,
	[KR4] [varchar](6) NULL,
	[PL5] [varchar](2) NULL,
	[ZnMatByk] [varchar](1) NULL,
	[ZnakET] [bit] NULL,
	[ZdravTr] [varchar](1) NULL,
	[OTECLIN] [varchar](3) NULL,
	[OTECREG] [varchar](3) NULL,
	[MATKA] [varchar](14) NULL,
	[DatVyr] [varchar](10) NULL,
	[DovVyr] [varchar](2) NULL,
	[OOLIN] [varchar](3) NULL,
	[OOREG] [varchar](3) NULL,
	[MO] [varchar](15) NULL,
	[OMLIN] [varchar](3) NULL,
	[OMREG] [varchar](3) NULL,
	[MM] [varchar](15) NULL,
	[OOOLIN] [varchar](3) NULL,
	[OOOREG] [varchar](3) NULL,
	[MOO] [varchar](15) NULL,
	[OMOLIN] [varchar](3) NULL,
	[OMOREG] [varchar](3) NULL,
	[MMO] [varchar](15) NULL,
	[OOMLIN] [varchar](3) NULL,
	[OOMREG] [varchar](3) NULL,
	[MOM] [varchar](15) NULL,
	[OMMLIN] [varchar](3) NULL,
	[OMMREG] [varchar](3) NULL,
	[MMM] [varchar](15) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_SKRAV' + @rndtb + '
(    CISKRAVY,  CHOVATEL, DATNAR, PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5, ZNMATBYK, ZNAKET, ZDRAVTR, OTECLIN, OTECREG,
     matka, DATVYR, DOVVYR,
	 OOLIN, OOREG, MO, OMLIN, OMREG, MM, OOOLIN, OOOREG, MOO, OMOLIN, OMOREG, MMO, OOMLIN, OOMREG, MOM, OMMLIN, OMMREG, MMM )
( SELECT     CISKRAVY, k.CHOVATEL, CONVERT(CHAR(10),k.DATNAR, 120), k.PL1, k.KR1, k.PL2, k.KR2, k.PL3, k.KR3, k.PL4, k.KR4, k.PL5, k.ZNMATBYK, k.ZNAKET, k.ZDRAVTR, k.OTECLIN, k.OTECREG, k.MA,
CONVERT(CHAR(10),k.DATVYR, 120), k.DOVVYR, 
              
			  ( select LIN FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOLIN,
			  ( select REG FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA)  AS  OOREG,  
			   b.matka as MO,
			  (select OTECLIN  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMLIN,
			  (select OTECREG  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS OMREG,
			  (select MA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) AS MM,
			  (select LIN FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOLIN,
			  (select REG FROM CM_BYCI as b where  ( select IDOT FROM CM_BYCI as b where (select IDOT FROM CM_BYCI as b3 where k.IDOT = b3.IDBYKA)  = b.IDBYKA) = b.IDBYKA)  AS  OOOREG,
			  (select MATKA  FROM CM_BYCI as b1 where b.IDOT = b1.IDBYKA) AS MOO,
			  (select OTECLIN  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOLIN,
			  (select OTECREG  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS OMOREG,
			  (select MA  FROM CM_KRAVA as k2 where b.IDMA = k2.IDKRAVY) AS MMO,
			  (select LIN  FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMLIN,
			  (select REG FROM CM_BYCI as b where  (select IDOT FROM CM_BYCI as b  where (select IDOT FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) = b.IDBYKA) as OOMREG,
			  (select MATKA FROM CM_BYCI as b where (select IDOT  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = b.IDBYKA) as MOM, 
			  
              (select OTECLIN FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMLIN,
			  (select OTECREG FROM CM_KRAVA as k4 where   (select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY) = k4.IDKRAVY) AS OMMREG,
			  (select MA  FROM CM_KRAVA as k1 where ( select IDMA  FROM CM_KRAVA as k1 where k.IDMA = k1.IDKRAVY)=  k1.IDKRAVY) AS MMM

		 	
FROM            dbo.CM_Krava as k
left outer join
CM_byci as b  on k.IDOT = b.IDBYKA
WHERE         (k.PRIZNAKKU = ''2'') )'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_SKRAV'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_SKRAV'
END

BEGIN /* vybery prvych a poslednych insemenacii krav */ 
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_PripPLem' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_PripPlem' + @rndtb + '
(CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL
) 
(
SELECT i.IPLCA,  k.porpreblak as porlak, ii.IPOIN as pocins, CONVERT(CHAR(10),i.IDAIN, 120) as datins1, i.IBLIN as byklin1,  i.IBREG as bzkreg1,
                  CONVERT(CHAR(10),ii.idain, 120)  as datins, ii.iblin as byklin, ii.ibreg as bykreg,  ii.ivyse as vysep
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1
							   inner join (		 SELECT    i.IPLCA, i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG,  i.IVYSE
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin <> ''99''   
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika ) as ii on i.iplca = ii.iplca 
							   inner  join dbo.CM_Krava as k on i.IPLCA = k.ciskravy and
							      (k.PRIZNAKKU = ''2'') 
)'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_PripPLem'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_PripPLem'
END 


BEGIN /* vybery prvych a poslednych insemenacii jalovic */ 
SELECT @SQL = 'CREATE TABLE CP_ZCHMD_PripJal' + @rndtb + '(
	[CISKRAVY] [varchar](14) NULL,
	[PORLAK] [varchar](2) NULL,
	[POCINS] [float] NULL,
	[DATINS1] [varchar](10) NULL,
	[BYKLIN1] [varchar](3) NULL,
	[BYKREG1] [varchar](3) NULL,
	[DATINS] [varchar](10) NULL,
	[BYKLIN] [varchar](3) NULL,
	[BYKREG] [varchar](3) NULL,
	[ZNAKTEL] [varchar](1) NULL
)'
EXEC (@SQL)
SELECT @SQL = 'insert into CP_ZCHMD_PripJal' + @rndtb + '
(CISKRAVY, PORLAK, POCINS, DATINS1, BYKLIN1, BYKREG1, DATINS, BYKLIN, BYKREG, ZNAKTEL
) 
(
SELECT i.IPLCA,  ''00'' as porlak, ii.IPOIN as pocins, CONVERT(CHAR(10), i.IDAIN, 120) as datins1, i.IBLIN as byklin1,  i.IBREG as bzkreg1,
                  CONVERT(CHAR(10),ii.idain, 120) as datins, ii.iblin as byklin, ii.ibreg as bykreg,  ii.ivyse as vysep
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin = 1
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika and i.IPOIN = 1
							   inner join (		 SELECT    i.IPLCA, i.IDAIN, i.IPOIN, i.IBLIN, i.IBREG,  i.IVYSE
                
FROM            dbo.CM_Insvyk AS i INNER JOIN
                             (SELECT        IPLCA, MAX(IDAIN) as ika
                               FROM            dbo.CM_Insvyk AS i
							    where ipoin <> ''99''   
								
                               GROUP BY IPLCA
							   ) AS i2 ON i.IPLCA = i2.IPLCA  AND i.IDAIN = i2.ika ) as ii on i.iplca = ii.iplca 
							   inner  join dbo.CM_Telata as k on i.IPLCA = k.cistelata and
							      (k.PRIZNAKKU = ''2'')
)'
EXEC (@SQL)
SELECT @POCET = @@ROWCOUNT
SELECT @SQL = 'insert into ' + @OUTPUT_TABLE + '
values (''CP_ZCHMD_PripJal'', ''' + @POCET + ''')'
EXEC (@SQL)
PRINT 'CP_ZCHMD_PripJal'

END
END


go

CREATE procedure  [dbo].[Roc_MLHD_17]
	@datumOd date,
	@datumDo date

	as 
	begin
	
		delete from Roc_MLHD_Tab_17 where rok = datepart(year,@datumOd);
		
--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
declare @kravyB table(
	ciskravy varchar(14)
	)
	insert into @kravyB 
		select distinct Lakt.CISKRAVY
		from  dbo.View_CP_LaktaciePreZostavy as Lakt
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('B0','B1','B2','B3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
	--select * from @kravy
	/**braunvieh**/
	declare @kravyB2 table
	( ciskravy varchar(14),
	CHOVATEL varchar(9),
	plem_typ varchar(3),
	pocet_lakt int, 
	mlieko_nor int,
	tuk int,
	tuk_P float,
	bielk int,
	bielk_P float,
	lakt_dni int,
	MLK_L float
		)
	insert into @kravyB2
		select distinct top 10 kr.ciskravy,
			l.CHOVATEL,
			l.PLEM as PlemTyp,
			count(l.PORLAK) as pocet_lakt, 
			sum(l.MLIEKNOR)as mlieko_nor,
			round(sum(l.TUKNOR),0) as tuk,
			sum(l.TUKNOR)/sum(l.MLIEKNOR) *100 as tuk_P,
      round(sum(l.BIELKNOR),0) as bielk,
			sum(l.BIELKNOR)/sum(l.MLIEKNOR) *100 as bielk_P,
			sum(l.LAKDNIN) as lakt_dni,
			round(sum(l.MLIEKNOR)/ count(l.PORLAK),0) as MLK_L

		from @kravyB as kr
			inner join dbo.View_CP_LaktaciePreZostavy  as l on l.ciskravy = kr.ciskravy
			left outer join CM_Krava as k on k.ciskravy = kr.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(l.CHOVATEL,1,6)
			--where l.ZMENA in ('30','40')
			group by kr.ciskravy,l.CHOVATEL,l.PLEM
			order by sum(l.MLIEKNOR) desc
			
insert into Roc_MLHD_Tab_17 

	select ROW_NUMBER() OVER(ORDER BY mlieko_nor desc) AS Por,
		--substring(kr2.ciskravy, 1,2) + ' ' +substring(kr2.ciskravy, 3,3)+ ' ' +substring(kr2.ciskravy, 6,3)+ ' ' +substring(kr2.ciskravy, 9,3)+ ' ' +substring(kr2.ciskravy, 12,3) as Ciskravy,
			kr2.ciskravy as Ciskravy,
			plem_typ as PlTyp,
			ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') +  ISNULL(k.PL3 +  CONVERT(varchar, k.KR3), '') +  ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
						+  ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') as Plemeno,
			o.NAZOV as Okres,
			p.NAZOVSKR as Podnik,
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			 kr2.pocet_lakt as Poc_lakt,
			 kr2.mlieko_nor as mlieko,
			 kr2.tuk as tuk_KG,
			 round(kr2.tuk_P,2,2) as tuk_P,
			 kr2.bielk as bielk_KG,
			 round(kr2.bielk_P,2,2) as bielk_P,
			 kr2.lakt_dni as Lakt_dni,
			 convert(int,kr2.MLK_L) as MLK_PocL,
			 (select datepart(year,@datumOd)) as rok,
			 'Brau' as Plem_typ

	from @kravyB2 as kr2
		left outer join CM_Krava as k on k.ciskravy = kr2.ciskravy
		left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
		left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(kr2.CHOVATEL,1,6)
		left outer join NC_OKRES as o on o.kraj + o.OKRES = p.KRAJ + p.OKRES 
	order by mlieko_nor desc
		

/**Slovenske strakate**/
declare @kravyS table(
	ciskravy varchar(14)
	)
	insert into @kravyS 
		select distinct Lakt.CISKRAVY
		from  dbo.View_CP_LaktaciePreZostavy as Lakt
		LEFT OUTER JOIN CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				--and Lakt.PLEM in ('S0','S1','S2','S3')
				and k.TYPPLEM IN ('11','12','13','14')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
	--select * from @kravy

	declare @kravyS2 table
	( ciskravy varchar(14),
	CHOVATEL varchar(9),
	plem_typ varchar(3),
	pocet_lakt int, 
	mlieko_nor int,
	tuk int,
	tuk_P float,
	bielk int,
	bielk_P float,
	lakt_dni int,
	MLK_L float
		)
	insert into @kravyS2
		select distinct top 30 kr.ciskravy,
			l.CHOVATEL,
			l.PLEM as PlemTyp,
      count(l.PORLAK) as pocet_lakt,
      sum(l.MLIEKNOR)as mlieko_nor,
      round(sum(l.TUKNOR),0) as tuk,
      sum(l.TUKNOR)/sum(l.MLIEKNOR) *100 as tuk_P,
      round(sum(l.BIELKNOR),0) as bielk,
      sum(l.BIELKNOR)/sum(l.MLIEKNOR) *100 as bielk_P,
      sum(l.LAKDNIN) as lakt_dni,
			round(sum(l.MLIEKNOR)/ count(l.PORLAK),0) as MLK_L
	
		from @kravyS as kr
			inner join dbo.View_CP_LaktaciePreZostavy  as l on l.ciskravy = kr.ciskravy
			left outer join CM_Krava as k on k.ciskravy = kr.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(l.CHOVATEL,1,6)
			where l.ZMENA in ('30','40')
			group by kr.ciskravy,l.CHOVATEL,l.PLEM
			order by sum(l.MLIEKNOR) desc

	insert into Roc_MLHD_Tab_17 
		select ROW_NUMBER() OVER(ORDER BY mlieko_nor desc) AS Por,
		--substring(kr2.ciskravy, 1,2) + ' ' +substring(kr2.ciskravy, 3,3)+ ' ' +substring(kr2.ciskravy, 6,3)+ ' ' +substring(kr2.ciskravy, 9,3)+ ' ' +substring(kr2.ciskravy, 12,3) as Ciskravy,
			kr2.ciskravy as Ciskravy,
			plem_typ as PlTyp,
			ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') +  ISNULL(k.PL3 +  CONVERT(varchar, k.KR3), '') +  ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
						+  ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') as Plemeno,
			o.NAZOV as Okres,
			p.NAZOVSKR as Podnik,
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			 kr2.pocet_lakt as Poc_lakt,
			 kr2.mlieko_nor as mlieko,
			 kr2.tuk as tuk_KG,
			 round(kr2.tuk_P,2,2) as tuk_P,
			 kr2.bielk as bielk_KG,
			 round(kr2.bielk_P,2,2) as bielk_P,
			 kr2.lakt_dni as Lakt_dni,
			 convert(int,kr2.MLK_L) as MLK_PocL,
			 (select datepart(year,@datumOd)) as rok,
			 'SLst' as Plem_typ
	from @kravyS2 as kr2
		left outer join CM_Krava as k on k.ciskravy = kr2.ciskravy
		left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
		left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(kr2.CHOVATEL,1,6)
		left outer join NC_OKRES as o on o.kraj + o.OKRES = p.KRAJ + p.OKRES 
	order by mlieko_nor desc

	/**Slov. pinzgau**/

		
declare @kravyP table(
	ciskravy varchar(14)
	)
	insert into @kravyP 
		select distinct Lakt.CISKRAVY
		from  dbo.View_CP_LaktaciePreZostavy as Lakt
		left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('P0','P1','P2','P3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and k.OTECLIN not in ('NEZ','RER','TUR','PGR','TIT')
	--select * from @kravy

	declare @kravyP2 table
	( ciskravy varchar(14),
	CHOVATEL varchar(9),
	plem_typ varchar(3),
	pocet_lakt int, 
	mlieko_nor int,
	tuk int,
	tuk_P float,
	bielk int,
	bielk_P float,
	lakt_dni int,
	MLK_L float
		)
	insert into @kravyP2
		select distinct top 20 kr.ciskravy,
			l.CHOVATEL,
			l.PLEM as PlemTyp,
      count(l.PORLAK) as pocet_lakt,
      sum(l.MLIEKNOR)as mlieko_nor,
      round(sum(l.TUKNOR),0) as tuk,
      sum(l.TUKNOR)/sum(l.MLIEKNOR) *100 as tuk_P,
      round(sum(l.BIELKNOR),0) as bielk,
      sum(l.BIELKNOR)/sum(l.MLIEKNOR) *100 as bielk_P,
      sum(l.LAKDNIN) as lakt_dni,
			round(sum(l.MLIEKNOR)/ count(l.PORLAK),0) as MLK_L
	
		from @kravyP as kr
			inner join dbo.View_CP_LaktaciePreZostavy  as l on l.ciskravy = kr.ciskravy
			left outer join CM_Krava as k on k.ciskravy = kr.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(l.CHOVATEL,1,6)
			where l.ZMENA in ('30','40')
			group by kr.ciskravy,l.CHOVATEL,l.PLEM
			order by sum(l.MLIEKNOR) desc

			
	insert into Roc_MLHD_Tab_17 

	select ROW_NUMBER() OVER(ORDER BY mlieko_nor desc) AS Por,
		--substring(kr2.ciskravy, 1,2) + ' ' +substring(kr2.ciskravy, 3,3)+ ' ' +substring(kr2.ciskravy, 6,3)+ ' ' +substring(kr2.ciskravy, 9,3)+ ' ' +substring(kr2.ciskravy, 12,3) as Ciskravy,
			kr2.ciskravy as Ciskravy,
			plem_typ as PlTyp,
			ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') +  ISNULL(k.PL3 +  CONVERT(varchar, k.KR3), '') +  ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
						+  ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') as Plemeno,
			o.NAZOV as Okres,
			p.NAZOVSKR as Podnik,
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			 kr2.pocet_lakt as Poc_lakt,
			 kr2.mlieko_nor as mlieko,
			 kr2.tuk as tuk_KG,
			 round(kr2.tuk_P,2,2) as tuk_P,
			 kr2.bielk as bielk_KG,
			 round(kr2.bielk_P,2,2) as bielk_P,
			 kr2.lakt_dni as Lakt_dni,
			 convert(int,kr2.MLK_L) as MLK_PocL,
			 (select datepart(year,@datumOd)) as rok,
			 'Pin' as Plem_typ
	from @kravyP2 as kr2
		left outer join CM_Krava as k on k.ciskravy = kr2.ciskravy
		left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
		left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(kr2.CHOVATEL,1,6)
		left outer join NC_OKRES as o on o.kraj + o.OKRES = p.KRAJ + p.OKRES 
	order by mlieko_nor desc

	/**Holstein**/

	declare @kravyH table(
	ciskravy varchar(14)
	)
	insert into @kravyH 
		select distinct Lakt.CISKRAVY
		from  dbo.View_CP_LaktaciePreZostavy as Lakt
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('H0','H1','H2','H3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
	--select * from @kravy

	declare @kravyH2 table
	( ciskravy varchar(14),
	CHOVATEL varchar(9),
	plem_typ varchar(3),
	pocet_lakt int, 
	mlieko_nor int,
	tuk int,
	tuk_P float,
	bielk int,
	bielk_P float,
	lakt_dni int,
	MLK_L float
		)
	insert into @kravyH2
		select distinct top 40 kr.ciskravy,
			l.CHOVATEL,
			l.PLEM as PlemTyp,
      count(l.PORLAK) as pocet_lakt,
      sum(l.MLIEKNOR)as mlieko_nor,
      round(sum(l.TUKNOR),0) as tuk,
      sum(l.TUKNOR)/sum(l.MLIEKNOR) *100 as tuk_P,
      round(sum(l.BIELKNOR),0) as bielk,
      sum(l.BIELKNOR)/sum(l.MLIEKNOR) *100 as bielk_P,
      sum(l.LAKDNIN) as lakt_dni,
      round(sum(l.MLIEKNOR)/ count(l.PORLAK),0) as MLK_L
	
		from @kravyH as kr
			inner join dbo.View_CP_LaktaciePreZostavy  as l on l.ciskravy = kr.ciskravy
			left outer join CM_Krava as k on k.ciskravy = kr.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(l.CHOVATEL,1,6)
			where l.ZMENA in ('30','40')
			group by kr.ciskravy,l.CHOVATEL,l.PLEM
			order by sum(l.MLIEKNOR) desc
			
	insert into Roc_MLHD_Tab_17 
	select ROW_NUMBER() OVER(ORDER BY mlieko_nor desc) AS Por,
		--substring(kr2.ciskravy, 1,2) + ' ' +substring(kr2.ciskravy, 3,3)+ ' ' +substring(kr2.ciskravy, 6,3)+ ' ' +substring(kr2.ciskravy, 9,3)+ ' ' +substring(kr2.ciskravy, 12,3) as Ciskravy,
			kr2.ciskravy as Ciskravy,
			plem_typ as PlTyp,
			ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') +  ISNULL(k.PL3 +  CONVERT(varchar, k.KR3), '') +  ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
						+  ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') as Plemeno,
			o.NAZOV as Okres,
			p.NAZOVSKR as Podnik,
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			 kr2.pocet_lakt as Poc_lakt,
			 kr2.mlieko_nor as mlieko,
			 kr2.tuk as tuk_KG,
			 round(kr2.tuk_P,2,2) as tuk_P,
			 kr2.bielk as bielk_KG,
			 round(kr2.bielk_P,2,2) as bielk_P,
			 kr2.lakt_dni as Lakt_dni,
			 convert(int,kr2.MLK_L) as MLK_PocL,
			 (select datepart(year,@datumOd)) as rok,
			 'Hol' as Plem_typ
	from @kravyH2 as kr2
		left outer join CM_Krava as k on k.ciskravy = kr2.ciskravy
		left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
		left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(kr2.CHOVATEL,1,6)
		left outer join NC_OKRES as o on o.kraj + o.OKRES = p.KRAJ + p.OKRES 
	order by mlieko_nor desc
		




		End
go



CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA_chov] 
AS
BEGIN
	/**********************************************

	! please run affter C_Aktual_KodDojKodMedzi !

		using table:CM_Naplak,CM_Krava,CM_Laktacie

		canging table:CP_MedziobdZostavaA

		used for:(9.A) Rozbor medziobdobia podľa prebiehajúcej laktácie 

	*********************************************/

	declare @c as varchar(9)
	

	/*create table #aTable  
	(
	[chovatel] varchar(9)
      ,[groupNazov]  varchar(30)
      ,[l1] int
      ,[pl1] float
      ,[l2] int
      ,[pl2] float
      ,[l3] int
      ,[pl3] float
      ,[l4] int
      ,[pl4] float
      ,[l5] int
      ,[pl5] float
      ,[l6] int
      ,[pl6] float
      ,[l7] int
      ,[pl7] float
      ,[l8] int
      ,[pl8] float
      ,[l9] int
      ,[pl9] float
      ,[Spolu] int
      ,[pSpolu] float
      ,[Pmedziobd] int
      ,[SpoluChov] int
      ,[znakLakt] varchar(1)
	)*/
	
	TRUNCATE TABLE CP_MedziobdZostavaA_CopyTest
	
	declare @t1 as datetime;
	set @t1=datediff(SECOND,getdate(),GETDATE());
	
	declare @t2 as datetime;
	declare @t3 as datetime;

	declare @kod as int;
	declare @nazov as varchar(20);
	--declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

	declare chovatel cursor for
	select distinct chovatel
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,6)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null	
	
	union
	
	select distinct substring(chovatel,1,3)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,1)
	from CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		declare hran cursor for
		select kod,nazov
		from CC_Medziobd

		open hran
		fetch next from hran into @kod,@nazov
		
	
		IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
			DROP TABLE TEMPTABLE_s			
		select l.PORLAK into TEMPTABLE_s from CM_Naplak as l inner join CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 and PRIZNAKKU = '1'

	
		while @@FETCH_STATUS=0
		begin
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE TEMPTABLE
			select l.PORLAK, l.KOD_MEDZ into TEMPTABLE from CM_Naplak as l inner join CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and PRIZNAKKU = '1' and KOD_MEDZ=@kod
		
		begin
				set @l1=(select COUNT(*) from TEMPTABLE where PORLAK=1 );
				set @l2=(select COUNT(*) from TEMPTABLE where PORLAK=2 );
				set @l3=(select COUNT(*) from TEMPTABLE where PORLAK=3 );
				set @l4=(select COUNT(*) from TEMPTABLE where PORLAK=4 );
				set @l5=(select COUNT(*) from TEMPTABLE where PORLAK=5 );
				set @l6=(select COUNT(*) from TEMPTABLE where PORLAK=6 );
				set @l7=(select COUNT(*) from TEMPTABLE where PORLAK=7 );
				set @l8=(select COUNT(*) from TEMPTABLE where PORLAK=8 );
				set @l9=(select COUNT(*) from TEMPTABLE where PORLAK>=9);
				set @spolu= @l2+@l3+@l4+@l5+@l6+@l7+@l8+@l9;
				set @s=(select COUNT(*)	from TEMPTABLE_s);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from CM_Laktacie where CHOVATEL like @c +'%' and KOD_MEDZ=@kod)
			insert into CP_MedziobdZostavaA_CopyTest  values  (@c ,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);
		end

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
		
		
		begin
			set @l1=(select COUNT(*) from TEMPTABLE_s where PORLAK=1 );
																																																					
			set @l2=(select COUNT(*) from TEMPTABLE_s where PORLAK=2 );
																																																						
			set @l3=(select COUNT(*) from TEMPTABLE_s where PORLAK=3 );
																																																						
			set @l4=(select COUNT(*) from TEMPTABLE_s where PORLAK=4 );
																																																						
			set @l5=(select COUNT(*) from TEMPTABLE_s where PORLAK=5 );
																																																						
			set @l6=(select COUNT(*) from TEMPTABLE_s where PORLAK=6 );
																																																						
			set @l7=(select COUNT(*) from TEMPTABLE_s where PORLAK=7 );
																																																						
			set @l8=(select COUNT(*) from TEMPTABLE_s where PORLAK=8 );
																																																						
			set @l9=(select COUNT(*) from TEMPTABLE_s where PORLAK>=9 );
		
			set @spolu=(select COUNT(*) from TEMPTABLE_s);
		
			set @s=@spolu
	
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
				
			insert into CP_MedziobdZostavaA_CopyTest  values(@c ,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)
			
			IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE TEMPTABLE
				
			select l.PORLAK, l.MEDZIOBD into TEMPTABLE from CM_Naplak as l inner join CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 and PRIZNAKKU = '1'
			
			set @l1=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=1);
			set @l2=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=2);
			set @l3=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=3);
			set @l4=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=4);
			set @l5=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=5);
			set @l6=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=6);
			set @l7=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=7);
			set @l8=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=8);
			set @l9=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK>=9);
			set @spolu=(select avg(MEDZIOBD) from TEMPTABLE);
			
			insert into CP_MedziobdZostavaA_CopyTest  values(@c ,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)
			
end

fetch next from chovatel into @C;
end

close chovatel
deallocate chovatel

IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
	DROP TABLE TEMPTABLE
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
	DROP TABLE TEMPTABLE_s			
	
END
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 21.3.2016
-- Description:	Prepocet EKRMD
-- =============================================

CREATE PROCEDURE [dbo].[CR_prepocet_EKRMD] @rok INT, @mesiac INT

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)

    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR

	SELECT CHOVVAZ FROM cm_vazenia WHERE DATEPART(YEAR, DATVAZ) = @rok AND DATEPART(MONTH, DATVAZ) = @mesiac GROUP BY CHOVVAZ ORDER BY CHOVVAZ
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
							PRINT 'Prepocitavam chov: ' + CONVERT(VARCHAR, @chov) 
														+ ' za obdobie ' 
														+ CONVERT(VARCHAR,@rok)
														+ ' / '
														+ CONVERT(VARCHAR,@mesiac)
														+ ' - '
														+ CONVERT(VARCHAR, @counter)

							EXEC dbo.CR_EKRMD_mes @chov,@rok,@mesiac

            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor
go


/**************************************
	! Please run affter procedure: C_aktual_kodDojKodMedzi and C_ZZ_PoslednaUzavreteLaktSkladba_Final !
using table:CC_Dojivost,CM_Krava,CP_KravaPoslednaUzavLakt
changing table:C_ZZ_Mlieko_PoslednaUzavretaPodlaMlieko
used :(7) Štruktúra žijúcich kráv podľa dojnosti

!!! Hodnotiace prehľady v KÚ mlieka - (7) Štruktúra žijúcich kráv podľa dojnosti - 
- uz nepouziva tabulku CP_DojvostPodlaPoslednaLaktacia - ale bezi priamo vyberom nad databazou

***************************************/

CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_PoslednaUzavretaPodlaMlieko]
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_DojvostPodlaPoslednaLaktacia
	declare @c varchar(14)

	declare @kod as int
	declare @nazov as varchar(20)
	declare @p1 as int;
	declare @p2 as int;
	declare @pn as int;
	declare @spolu1 int;
	declare @spolu2 int;
	declare @spolu3 int;

	declare @spolu1n int;
	declare @spolu2n int;
	declare @spolu3n int;

	declare @spolu1c int;
	declare @spolu2c int;
	declare @spolu3c int;

	declare chov cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	group by CHOVATEL
	having count(*)>=1 

	open chov
	fetch next from chov into @c;

	while @@FETCH_STATUS=0
	begin
		
		declare hranica cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open hranica
		fetch next from hranica into @nazov,@kod

		while @@FETCH_STATUS=0
		begin
			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod and p.zmena in (30,40))

			set @spolu1n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.zmena in (30,40))

			set @spolu2n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.zmena in (30,40))


			set @spolu3n=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena in (30,40))


			if(@spolu1n=0) set @spolu1n=NULL;
			if(@spolu2n=0) set @spolu2n=NULL;
			if(@spolu3n=0) set @spolu3n=NULL;

			--if(@p1=0) set @p1=NULL;
			--if(@p2=0) set @p2=NULL
			--if(@pn=0) set @pn=NULL


			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1n,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2n,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3n,@c,'N');
			
			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod and p.zmena not in (30,40))

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod and p.zmena not in (30,40))

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod and p.zmena  not in (30,40))

						set @spolu1c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.zmena not in (30,40))

			set @spolu2c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.zmena not in (30,40))


			set @spolu3c=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena  not in (30,40))


			if(@spolu1c=0) begin set @spolu1c=NULL; end
			if(@spolu2c=0) set @spolu2c=NULL;
			if(@spolu3c=0) set @spolu3c=NULL;

			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1c,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2c,@pn,
																			convert(float,(@pn*100)*1.00)/@spolu3c,@c,'C');

			
			
			set @p1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			and p.KOD_DOJ=@kod)

			set @p2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
			and p.KOD_DOJ=@kod )

			set @pn=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.KOD_DOJ=@kod)

			set @spolu1=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt=1
			)

			set @spolu2=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.poslLakt>=2
		)


			set @spolu3=(select count(p.cislokrava) as pocet
			from plis.dbo.CM_Krava as k
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as p
			on p.cislokrava=k.CISKRAVY 
			where k.PRIZNAKKU = 1
			and k.DOVVYR is null
			and k.CHOVATEL=@c
			and p.zmena is not null
			)

			if(@spolu1=0) begin set @spolu1=null end;
			if(@spolu2=0) begin set @spolu2=null end;
			if(@spolu3=0) begin set @spolu3=null end;

			insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values (@nazov,@p1,convert(float,(@p1*100)*1.00)/@spolu1,
																			@p2,convert(float,(@p2*100)*1.00)/@spolu2,
																			@pn,convert(float,(@pn*100)*1.00)/@spolu3,@c,NULL);


			
			
			
			fetch next from hranica into @nazov,@kod;
		end

		close hranica;
		deallocate hranica;


		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1n,(@spolu1n*100)/@spolu1n,@spolu2n,(@spolu2n*100)/@spolu2n,@spolu3n,(@spolu3n*100)/@spolu3n,@c,'N')
		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1,(@spolu1*100)/@spolu1,@spolu2,(@spolu2*100)/@spolu2,@spolu3,(@spolu3*100)/@spolu3,@c,Null)
		insert into plis.dbo.CP_DojvostPodlaPoslednaLaktacia values('Spolu',@spolu1c,(@spolu1c*100)/@spolu1c,@spolu2c,(@spolu2c*100)/@spolu2c,@spolu3c,(@spolu3c*100)/@spolu3c,@c,'C')
					
			
		fetch next from chov into @c;
	end

	close chov;
	deallocate chov;


END

go

CREATE procedure [dbo].[CR_EKRMD_1/4]
@chov VARCHAR(14)='',
@rok INT,
@mesiacOD INT,
@mesiacDO INT
as
begin

	
	select np.NAZOV as podnik, nch.NAZOV as NazovChov,cistelata,
		ek.chov
		,hd.TECHUSMD as tech_ustaj
		,us.POPIS as tech_ustaj_popis,
  		plemeno,
		datnar,
		pohlavie,
		PK,
		ET,
		farba,
		matka,
		otecLIN,
		otecREG,
		otecUscislo,
		otecMeno,
		datvaz1,mesiac1,den1,hmot1,rp1,
		datvaz2,mesiac2,den2,hmot2,rp2,
		datvaz3,mesiac3,den3,hmot3,rp3,
		datvaz4,mesiac4,den4,hmot4,rp4,
		datvaz5,mesiac5,den5,hmot5,rp5,
		datvaz6,mesiac6,den6,hmot6,rp6,
		zprir,
		dp,
		planprip,
		DatPlanPripust,
		vekPripus,
		byk,
		datinsem,
		ocotel,
		ocprip,
		porlakmax,
		pocvsetlak,
		pocnorlak,
		mliekopr,
		tukper,
		bielkper,
		mliekomax,
		tukmax,
		bielmax,
		rok,
		mesiacSprac,
		mesiacOD,
		mesiacDO,
		generovane,
		plemskladba
	   FROM [plis].[dbo].[CR_EKRMD_stvrtR] as ek 

		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(ek.chov,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = ek.chov
		left join NM_HDDETAIL as hd 
			on hd.KRAJ + hd.OKRES + hd.PODNIK + hd.CHOV = ek.chov
		left join CC_TechUstMD as us 
			on us.KOD = hd.TECHUSMD
	  
	   where (ek.chov like @CHOV+'%' or @CHOV is null)	and ek.rok = @rok and ek.mesiacOD =	@mesiacOD and ek.mesiacDO = @mesiacDO
	   end
go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 19.12.2011
-- Description:	Zaradenie masovych teliat - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarteliatmas_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR int
	declare @DATZAPIS [datetime] 
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit] 
	declare @CHOVUS [varchar](9),		@T_CHOVUS [varchar](9)
	declare @CISLOZV[varchar](14),		@T_CISLOZV [varchar](14)
	declare @DATNAR [date]		,		@T_DATNAR [date]
	declare @ZLAKT_ [varchar](2),		@T_ZLAKT [int] 
	declare @HMOTOT [decimal](6,2),		@T_HMOTOT [decimal](6,2) 	 
	declare @POHLTEL [varchar](2),		@T_POHLTEL [varchar](2)
	declare @PRIEBPOR [varchar](2),		@T_PRIEBPOR [varchar](2) 
	declare @PRITAZPOR [varchar](2),	@T_PRITAZPOR [varchar](2)
	declare @HMOTNAR [decimal](6,2),	@T_HMOTNAR [decimal](6,2) 
	declare @UHYNPRIC [varchar](2),		@T_UHYNPRIC [varchar](2)
	declare @DATUH [date]		,		@T_DATUH [date]	 
	declare @PL1 [varchar](2)	 
	declare @KR1 [decimal](6,2) 		
	declare @PL2 [varchar](2)	
	declare @KR2 [decimal](5,2) 		
	declare @PL3 [varchar](2)	 
	declare @KR3 [decimal](5,2) 		
	declare @PL4 [varchar](2)	 
	declare @KR4 [decimal](5,2) 	
	declare @PL5 [varchar](2)	
	declare @FARBA [varchar](2)	,		@T_FARBA [varchar](2) 
	declare @MATKA [varchar](14),		@T_MATKA [varchar](14) 
	declare @MATKAP [varchar](14),		@T_MATKAP [varchar](14)
	declare @OTECLIN [varchar](3),		@T_OTECLIN [varchar](3) 
	declare @OTECREG_ [varchar](3),		@T_OTECREG [int] 
	declare @OTEC [varchar](14),		@T_OTEC [varchar](14)
	declare @URCEN [varchar](2)	,		@T_URCEN [varchar](2) 
	declare @DI [varchar](1)	,		@T_DI [varchar](1) 
	
	declare @errorflag bit
	declare @navrat_hodn [varchar](1)	
	declare @OtecJeVCM_Byci [bit]
	declare @MatkaJeVCM_Krava [bit]
	declare @NajdenyOtecJeVCM_Byci [bit]
	declare @NajdenaMatkaJeVCM_Krava [bit]
	declare @PL1_POM [varchar](2)
	declare @_MEDZIOBDOBIE int
	declare @_CHOVATEL [varchar](9)
	declare @_DOVVYR [varchar](2)
    declare @_PRIZNAKKU [varchar] (1)
	declare @T_DOVVYR [varchar](2)
	declare @T_DATVYR [date]	
	declare @_DATNAR_PRED [date]
	declare @_PORLAK_PRED [int]
	declare @TypyChybyOp [varchar](3)
	declare @_PREUKAZ [varchar](1)
	declare @OT varchar (15), @povod varchar (1), @DobaNos int, /*@povod_ varchar(1), @DobaNos_ int,*/ @MATKA_ [varchar](14), @_OTECLIN varchar(3), @_OTECREG int
	declare @_ZNAKET bit
		
	declare 
		@pov_PL1 [varchar](2),
		@pov_KR1 [decimal](5,2),
		@pov_PL2 [varchar](2),
		@pov_KR2 [decimal](5,2),
		@pov_PL3 [varchar](2),
		@pov_KR3 [decimal](5,2),
		@pov_PL4 [varchar](2),
		@pov_KR4 [decimal](5,2),
		@pov_PL5 [varchar](2)
		
	DECLARE @sql_update nvarchar(2000)	
	declare @pom_IDBYKA int
	declare @pom_OUSCIS varchar(15)
	declare @pom_IDKRAVY int	
	declare @pom_MATKA varchar(14)
	declare @pom_TYPPLEM varchar(3)		
	declare @ZLAKT int	
	declare @OTECREG int	
	declare @dupl int
	declare @dvojca int
	declare @IDTELATA int
	declare @IdTelBezCis as table
	(	
		IDTELATA int,
		POHLAVIE varchar(2)
	)
	declare @exist_cistel int
	-- neznamy povod -- 20161026
	declare @OTECLINNEZ [varchar](3)
	declare @MATKANEZ [varchar](14)

  	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov

	-- vyber doposial nespracovane zaradenia
	declare db_cursor_zarteliatmas cursor
	FOR
	SELECT IDR
      ,CHOV
	  ,CISLOZV
	  ,convert(date, nullif(DATNAR, ''), 104) as DATNAR
	  ,convert(int, nullif(ZLAKT, '')) as ZLAKT
	  ,convert(decimal(6,2),nullif(HMOTOT, '')) as HMOTOT
	  ,nullif(POHL, '') as POHL
	  ,nullif(PRIEBPOR, '') 
	  ,nullif(PRITAZPOR, '')
	  ,convert(decimal(6,2),nullif(HMOTNAR, '')) as HMOTNAR
	  ,nullif(UHYNPRIC, '')
	  ,convert(date, nullif(DATUH, ''), 104) as DATUH
      ,nullif(PL1, '')
      ,case when ISNUMERIC(KR1) = 0 then 0 else convert(decimal(6,2),replace(KR1,',','.')) end as KR1
      ,nullif(PL2, '')
      ,case when ISNUMERIC(KR2) = 0 then 0 else convert(decimal(5,2),replace(KR2,',','.')) end as KR2
      ,nullif(PL3, '')
      ,case when ISNUMERIC(KR3) = 0 then 0 else convert(decimal(5,2),replace(KR3,',','.')) end as KR3
      ,nullif(PL4, '')
      ,case when ISNUMERIC(KR4) = 0 then 0 else convert(decimal(5,2),replace(KR4,',','.')) end as KR4
	  ,NULL as PL5
	  ,RIGHT('00'+nullif(FARBA, ''),2) --nullif(FARBA, '')
      ,nullif(MATKA, '')
      ,nullif(MATKAP, '')
      ,nullif(OTECLIN, '')
      ,case when ISNUMERIC(OTECREG) = 1 then convert(int, OTECREG) else null end as OTECREG
	  ,nullif(OTEC, '') as OTEC
	  ,nullif(URCEN, '')
	  ,nullif(DI, '')

	FROM VstupyPLIS.dbo.CP_HD16_ZARTELIATMAS where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
	order by convert(date, nullif(DATNAR, ''), 104) -- 20170206
	
	OPEN db_cursor_zarteliatmas

	-- cyklus cez vsetky riadky nespracovane zaradenia teliat MP
	FETCH NEXT
	FROM db_cursor_zarteliatmas INTO 	
		 @IDR						
		,@CHOVUS
		,@CISLOZV
		,@DATNAR
		,@ZLAKT_
		,@HMOTOT 
		,@POHLTEL 
		,@PRIEBPOR
		,@PRITAZPOR
		,@HMOTNAR 
		,@UHYNPRIC
		,@DATUH
		,@PL1
		,@KR1
		,@PL2
		,@KR2
		,@PL3
		,@KR3
		,@PL4
		,@KR4
		,@PL5
		,@FARBA
		,@MATKA
		,@MATKAP
		,@OTECLIN 
		,@OTECREG_
		,@OTEC
		,@URCEN
		,@DI
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke zaradeni nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD16_ZARTELIATMAS set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran zarteliatmas
   		begin try		
			
			set @OtecJeVCM_Byci = (select 0)
			set @MatkaJeVCM_Krava = (select 0)
			set @NajdenyOtecJeVCM_Byci = (select 0)
			set @NajdenaMatkaJeVCM_Krava = (select 0)
			set @errorflag = (select 0)	
			set @dupl = 0	
			set @dvojca = 0
			set @PL1_POM = 0
			set @_MEDZIOBDOBIE = null
			set @_CHOVATEL = null
			set @_DOVVYR = null
			set @_PRIZNAKKU = null
			set @_DATNAR_PRED  = null
			set @_PORLAK_PRED  = null
			set @TypyChybyOp  = null
			set @_PREUKAZ  = null
			set @OT = null
			set @povod = null
			set @DobaNos = null
			--set @povod_ = null
			--set @DobaNos_ = null
			set @MATKA_ = null
			set @_OTECLIN = null 
			set @_OTECREG = null
			set @_ZNAKET = null

			-- neznamy povod -- 20161026
			set @OTECLINNEZ = null
			set @MATKANEZ = null
				
			-- OPRAVA dat zo vstupu -------------------------------
			-- oprava podielu krvi cistokrvnych zvierat (0 -> 100)
			if (@KR1 = 0 and @PL1 is not null)
				set @KR1 = 100
				
			-- ak su podiely krvi zadane v desatinach %
			if (@KR1 + @KR2 + @KR3 + @KR4) > 990
			begin
				set @KR1 = @KR1/10
				set @KR2 = @KR2/10
				set @KR3 = @KR3/10
				set @KR4 = @KR4/10
			end	

			-- oprava podielov krvi  (0 -> null)
			if (@KR1 = 0)
				set @KR1 = (select null)
			if (@KR2 = 0)
				set @KR2 = (select null)
			if (@KR3 = 0)
				set @KR3 = (select null)
			if (@KR4 = 0)
				set @KR4 = (select null)
			
			-- zarovnanie plemena
			set @PL1 = LTRIM(@PL1)
			set @PL2 = LTRIM(@PL2)
			set @PL3 = LTRIM(@PL3)
			set @PL4 = LTRIM(@PL4)
			set @PL5 = LTRIM(@PL5)
			
			-- nahrada prazdnej MATKAP na NULL
			if @MATKAP = 'SK000000000000'
				set @MATKAP = NULL

			-- nahrada prazdnej CISLOZV na NULL
			if @CISLOZV = 'SK000000000000'
				set @CISLOZV = NULL		
				
			-- zarovnanie linie otca
			set @OTECLIN = LTRIM(@OTECLIN)

			-- zmena registra otca na cislo
			set @OTECREG = CONVERT(int, @OTECREG_)
			if @OTECREG = 0
				set @OTECREG = NULL

			-- znulovanie neznamych linii otcov 
			if UPPER(@OTECLIN) = 'IL' or UPPER(@OTECLIN) = 'NEZ' or @OTECLIN = '997' or @OTECLIN is null
			begin
				-- neznamy povod -- 20161026
				if UPPER(@OTECLIN) = 'NEZ' 
					set @OTECLINNEZ = UPPER(@OTECLIN)
				else
					set @OTECLIN = null

				set @OTECREG = null
			end
				
			if @MATKA = 'SK999999999999'
			begin
				-- neznamy povod -- 20161026
				set @MATKANEZ = @MATKA

				--set @MATKA = null
			end

			-- 20161109
			if @MATKA = 'SK888888888888'
			begin
				set @MATKA = null
			end
			
			-- zmena poradia prebiehajucej laktacie na cislo
			set @ZLAKT = CONVERT(int, @ZLAKT_)
			if @ZLAKT = 0
				set @ZLAKT = NULL
				
			-- zmena '0' v pricine uhynu na NULL
			if @UHYNPRIC = '0'
				set @UHYNPRIC = NULL
				
			-- zmena '0' v urceni telata na NULL
			if @URCEN = '0'
				set @URCEN = NULL	
				
			if (@PL1 is not null)	
			begin
				set @povod = 4
				set @DobaNos = 0
			end					
			-------------------------------------------------------			
			
			set @T_CHOVUS =	@CHOVUS 
			set @T_CISLOZV = @CISLOZV
			set @T_DATNAR = @DATNAR	
			set @T_ZLAKT = @ZLAKT
			set @T_HMOTOT = @HMOTOT 
			set @T_POHLTEL = @POHLTEL 
			set @T_PRIEBPOR = @PRIEBPOR  
			set @T_PRITAZPOR = @PRITAZPOR 
			set @T_HMOTNAR = @HMOTNAR 
			set @T_UHYNPRIC = @UHYNPRIC 
			set @T_DATUH = @DATUH 
			set @T_FARBA = @FARBA 
			set @T_MATKA = @MATKA 
			set @T_MATKAP =	@MATKAP 
			set @T_OTECLIN = @OTECLIN 
			set @T_OTECREG = @OTECREG 
			set @T_URCEN = @URCEN 
			set @T_DI =	@DI 	
			set @T_DATVYR = null
			set @T_DOVVYR = null	
			set @T_OTEC = @OTEC
			set @IDTELATA = null

			set	@pov_PL1 = null
			set	@pov_KR1 = null
			set	@pov_PL2 = null
			set	@pov_KR2 = null
			set	@pov_PL3 = null
			set	@pov_KR3 = null
			set	@pov_PL4 = null
			set	@pov_KR4 = null
			set	@pov_PL5 = null
			set @exist_cistel = 0

			-- ak ide o embryotransfer
			if (@POHLTEL in ('81', '82'))
				set @pom_MATKA = @MATKAP
			else
				set @pom_MATKA = @MATKA
			
			-- nacitanie niektorych potrebnych udajov z CM_Krava
			select @_CHOVATEL=CHOVATEL, @_DOVVYR = DOVVYR from PLIS.dbo.CM_Krava where (CISKRAVY = @pom_MATKA)		

			if (@_CHOVATEL is null)
				select @_CHOVATEL=CHOVATEL from PLIS.dbo.CM_Telata where (CISTELATA = @pom_MATKA)	
			 
			if @DI = '1'
				set @TypyChybyOp = 'INS'
			else if @DI = '2' or @DI = '4'
				set @TypyChybyOp = 'UPD'
				
			-- kontrola: je tela s danym cislom uz v CM_Telata
			if @DI = '1'
			begin
				exec @dupl = PLIS.dbo.C_aktual_zisti_dupl_tela  @T_MATKA, @T_DATNAR, @T_CISLOZV, @T_POHLTEL 
				if @dupl = 1
				begin
					-- ak ma ist o doplnenie cisla telata (a dalsich udajov) telatu bez cisla - spracuje sa ako update (aj cisla zvierata)
					insert into @IdTelBezCis
					select IDTELATA, POHLAVIE from plis.dbo.CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR and CISTELATA is null

					if (select count(*) from @IdTelBezCis) = 1
					begin
						set @IDTELATA = (select IDTELATA from @IdTelBezCis)
					end
					else 
					begin
						if (select count(*) from @IdTelBezCis) > 1
							set @IDTELATA = (select top(1) IDTELATA from @IdTelBezCis where POHLAVIE = @POHLTEL)
					end
						
					-- kontrola, ci uz tela s danym cislom existuje -- 2016-07-06
					if (@CISLOZV is not null)
					begin
						if (select count(*) from CM_Telata where CISTELATA = @CISLOZV) > 0
							set @exist_cistel = 1
					end

					if (@IDTELATA is not null and @exist_cistel = 0)
					--if @IDTELATA is not null -- 2016-07-06
					begin
						set @DI = '2'
						set @TypyChybyOp = 'UPD'
					end
					else
					begin
						-- priradenie chyby 43
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 43, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end		
					end	
				end
				else
				begin
					-- zistenie ci ide o dvojca -- 20170206
					exec @dvojca = plis.dbo.C_aktual_zisti_tela_dvojca  @T_MATKA, @T_DATNAR, @T_CISLOZV, @T_POHLTEL
				end
			end	else
			if @DI = '2' or @DI = '4'
			begin	
				select @IDTELATA = IDTELATA from plis.dbo.CM_Telata where CISTELATA = @CISLOZV
				if @IDTELATA is null
					select top(1) @IDTELATA = IDTELATA from plis.dbo.CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR and POHLAVIE = @POHLTEL

				if (select COUNT(*) from PLIS.dbo.CM_Telata where (IDTELATA = @IDTELATA)) = 0
				begin
					-- priradenie chyby 111
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 111, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end	
				else
				if (SELECT CHOVATEL FROM PLIS.dbo.CM_Telata WHERE IDTELATA = @IDTELATA) != @CHOVUS and @DI = '2' -- kontrola len pri oprave nie pri presune na MP chov --20170517
				begin
					-- priradenie chyby 64 (tela je z ineho chovu)
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 64, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end							
			end

			---- kontrola: neoznacene tela ???
			--if @CISLOZV is null
			--begin
			--	-- priradenie chyby 201
			--	exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 201, @TypyChybyOp
			--	if (@navrat_hodn = '2')
			--	begin
			--		set @errorflag = (select 1)
			--	end	
			--end	
			
			if @DI != '4' and @DI != '3'
			begin
				-- kontrola: nespravny dovod tazkeho porodu
				if not (@PRITAZPOR in (select KOD from plis.dbo.CC_Obtiaznostporodu)) and (@PRITAZPOR is not null)
				begin
					-- priradenie chyby 228
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 228, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @T_PRITAZPOR = (select null)
					end		
				end			
				
				-- kontrola: nespravne urcenie telata
				if not (@URCEN in (select KOD from plis.dbo.CC_UrcenieTelata)) and (@URCEN is not null)
				begin
					-- priradenie chyby 202
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 202, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	else
					if (@navrat_hodn = '1')
					begin
						set @T_URCEN = (select null)
					end	
				end	
						
				-- kontrola: nespravny dovod uhynu telata
				if not (@UHYNPRIC in (select KOD from plis.dbo.CC_DovodUhynu)) and (@UHYNPRIC is not null)
				begin
					-- priradenie chyby 203
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 203, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	else
					if (@navrat_hodn = '1')
					begin
						set @T_UHYNPRIC = (select null)
					end	
				end			

				-- kontrola: platny datum uhynu
				if (@DATUH is not null)
				begin
					if (datediff(day, @DATUH, GETDATE())) < 0 or (datediff(day, @DATNAR, @DATUH)) < 0
					begin
						-- priradenie chyby 204
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 204, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @T_DATUH = null
						end
					end	else
					begin
						set @T_DATVYR = (select @T_DATUH)
						set @T_DOVVYR = '59'
					end							
				end

				---- kontrola: Chov narodenia <> chov ustajnenia --20170619
				--if @_CHOVATEL != @CHOVUS
				--begin
				--	-- priradenie chyby 221
				--	exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 221, @TypyChybyOp
				--	if (@navrat_hodn = '2')
				--	begin
				--		set @errorflag = (select 1)
				--	end else
				--	if (@navrat_hodn = '1')
				--	begin
				--		set @T_CHOVUS = (select null)
				--	end	
				--end	
				
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
				where (KRAJ+OKRES+PODNIK+CHOV = @CHOVUS)
				and PRIZNAK = '01' and (SPVYKON = '4' or SPVYKON = '5')) = 0
				begin
					-- priradenie chyby 04
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 4, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @T_CHOVUS = (select null)
					end
				end			

				if not(@DI = '2' and @POHLTEL is null)	
				begin
					-- kontrola: Nesprávny kód pohlavia teľaťa 
					if not ((@POHLTEL in (select KOD from plis.dbo.CC_Pohlavie)) or (@POHLTEL is null))
					begin
						-- priradenie chyby 25
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 25, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @POHLTEL = null
						end
					end	
				end			
				
				if (@DI = '1')	
				begin	
					-- kontrola: platny datum narodenia
					if (@DATNAR is null)
					begin
						-- priradenie chyby 12
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 12, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end
					end			
					else
					begin
						if (select datediff(day, @DATNAR, GETDATE())) < 0
						begin
							-- priradenie chyby 12
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 12, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @T_DATNAR = null
							end
						end							
					end
				end

				-- kontrola: otec nie je uvedeny
				if 
				--((@OTECLIN is null or @OTECREG is null) and @OTEC is null) and (@DI = '1') --upravene 23.10.2017 
				(@OTEC is null and (@OTECLIN is null or ( @OTECLIN <>'NEZ' and @OTECREG is null )))and (@DI = '1')
				--if (@OTECLIN is null or @OTECREG is null) and (@DI = '1')
				begin
					-- priradenie chyby 90
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 90, @TypyChybyOp
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end		
				
				if (@OTECLIN is not null and @OTECREG is not null or @OTEC is not null)	
				begin	
					-- kontrola: otec nie je v CM_Byci
					--if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG)) = 0
					if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG or USCISLO = @OTEC and @OTEC is not null)) = 0
					begin
						-- priradenie chyby 07
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 7, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @T_OTECLIN = (select null)
							set @T_OTECREG = (select null)
							set @T_OTEC = null
						end	
					end	
					else
					begin
						set @OtecJeVCM_Byci = (select 1)
					end
				end
				
				-- kontrola: matka nie je uvedena
				if (@MATKA is null) 
				begin
					if (@DI = '1')
					begin
						-- priradenie chyby 91
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 91, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end
					end 
					--else
					--if (@DI = '2')
					--begin	
					--	set @MatkaJeVCM_Krava = (select 1)
					--end			
				end	
				
				if (@pom_MATKA is not null)
				begin								
					-- kontrola: matka nie je v CM_Krava
					if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @pom_MATKA)) = 0
					begin
						if (select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @pom_MATKA)) = 0  -- pridana kontrola na hladanie matky v tabulke teliat --20170619
						begin
							-- priradenie chyby 06 
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 6, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @T_MATKA = (select null)
							end	
						end
						else
						begin
							-- kontrola: Chov narodenia <> chov ustajnenia -- pridana kontrola na hladanie matky na rovnakom chove --20170619
							if @_CHOVATEL != @CHOVUS AND @_CHOVATEL != '444444444' /* kobrtkova*/
							begin
								-- priradenie chyby 221
								exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 221, @TypyChybyOp
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @T_CHOVUS = (select null)
								end	
							end	
						end	
					end	
					else
					begin
						set @MatkaJeVCM_Krava = (select 1)
						-- kontrola: Chov narodenia <> chov ustajnenia --20170619  + kontrola na BB typ KU - Kobrtkova
						if @_CHOVATEL != @CHOVUS AND @_CHOVATEL != '444444444' AND  @_PRIZNAKKU != '1' 
						begin
							-- priradenie chyby 221
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 221, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @T_CHOVUS = (select null)
							end	
						end	
					end								
				end	

				-- v KU MP nebude takato kontrola --20170810
				----if (@ZLAKT is not null and ) and @MatkaJeVCM_Krava = 1)	
				--if not(@DI = '2' and @ZLAKT is null)	
				--begin	
				--	-- kontrola: nespravne poradie laktacie 
				--	set @_PORLAK_PRED = (SELECT PORPREBLAK FROM PLIS.dbo.CM_Krava where CISKRAVY = @pom_MATKA)
				--	if @_PORLAK_PRED is null
				--		set @_PORLAK_PRED = (SELECT TOP 1 PORLAK FROM PLIS.dbo.CM_Telata where MATKA = @pom_MATKA order by DATNAR asc)
				--	if @_PORLAK_PRED is not null
				--	begin
				--		if (@_PORLAK_PRED + 1 - @dvojca != @ZLAKT) and @DI = 1
				--			or @_PORLAK_PRED != @ZLAKT and @DI = 2
				--		begin
				--			-- priradenie chyby 44
				--			exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 44, @TypyChybyOp
				--			if (@navrat_hodn = '2')
				--			begin
				--				set @errorflag = (select 1)
				--			end else
				--			if (@navrat_hodn = '1')
				--			begin
				--				set @T_ZLAKT = null
				--			end
				--		end	
				--	end		
				--end	

				-- ak ide o embryotransfer
				if (@POHLTEL in ('81', '82'))
				begin
					if @MATKAP is not NULL		
					begin
						-- kontrola: recipientka nie je v CM_Krava
						if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @MATKAP)) = 0
						begin
							-- priradenie chyby 205
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 205, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @T_MATKAP = (select null)
							end	
						end			
					end
					else
					begin
						if (@DI = '1')
						begin
							-- priradenie chyby 206
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 206, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end
						end 
					end
				end

				-- kontrola: chybny podiel krvi plemien a pripadny prepocet plemien
				if (@PL1 is not null)
				begin
					-- kontrola: chybny kod plemena
					set @PL1_POM = (select @PL1)
					if not((@PL1 is null or @PL1 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL2 is null or @PL2 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL3 is null or @PL3 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL4 is null or @PL4 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL5 is null or @PL5 in (select kodpl from PLIS.dbo.CC_Plemena)))		
					begin
						-- priradenie chyby 10
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 10, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end				
					
					if not (
					(
					((@PL1 is not null and @KR1 is not null) and (@PL2 is null and @KR2 is null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (@KR1 = 100)) or 

						((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) = 100)) or 
												
						((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) = 100)) or 		
								
						((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) = 100)) or 
																	
						((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is not null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) <= 100))
						)	
						and
						 (ISNULL(@KR1, 0) >= ISNULL(@KR2, 0)) and (ISNULL(@KR2, 0) >= ISNULL(@KR3, 0)) and (ISNULL(@KR3, 0) >= ISNULL(@KR4, 0)) and (100 - (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0)) <= ISNULL(@KR4, 0))
						) 
						begin
							-- priradenie chyby 11
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 11, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end	
					set @PL1 = @PL1_POM
				end
			
				
				if not(@DI = '2' and @PL1 is null) and @FARBA is not null
				begin
					-- kontrola: nespravny kod farby
					if (select COUNT(*) from PLIS.dbo.CC_Farby where (KODF = @FARBA)) = 0
					begin
						-- priradenie chyby 13
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 13, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @T_FARBA = (select null)
						end	
					end	
				end	
				
				if (@DI = '1') and (@dvojca = 0) -- 20170830
				begin
					-- kontrola: Medziobdobie <240, zmetanie < 210 
					set @_DATNAR_PRED = (SELECT TOP 1 DATNAR FROM PLIS.dbo.CM_Telata where MATKA = @pom_MATKA order by DATNAR asc)
					if @_DATNAR_PRED is not null
					begin
						set @_MEDZIOBDOBIE = DATEDIFF(day, @_DATNAR_PRED, @DATNAR)
						if (@_MEDZIOBDOBIE < 240 and @_MEDZIOBDOBIE > 0) or (@_MEDZIOBDOBIE < 210 and @_MEDZIOBDOBIE > 0 and @POHLTEL = '71')
						begin
							-- priradenie chyby 22
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 22, @TypyChybyOp
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @_MEDZIOBDOBIE = null
							end
						end			
					end
				end
				
				if not(@DI = '2' and @PRIEBPOR is null)
				begin
					-- kontrola: Nesprávny priebeh pôrodu 
					if not ((@PRIEBPOR in (select KOD from plis.dbo.CC_Porody)) or (@PRIEBPOR is null))
					begin
						-- priradenie chyby 24
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 24, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @T_PRIEBPOR = (select null)
						end
					end		
				end
				
				if @DI = '1'
				begin
					-- kontrola: Hlasenie otelenia vyradenej krave
					if @_DOVVYR is not null
					begin
						-- priradenie chyby 26
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 26, @TypyChybyOp
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end
					end	
				end	
			end

			-- neboli chyby typu 2			
			if (@errorflag != 1) and (@DI != '3')		
			begin
				--exec PLIS.dbo.C_aktual_zisti_povod_telata  @T_MATKA, @T_DATNAR, @T_POHLTEL, @OT output, @povod output, @DobaNos output
				if @T_POHLTEL = '81' or @T_POHLTEL = '82'
					set @_ZNAKET = 1
				else
					set @_ZNAKET = 0
				
				set @_PORLAK_PRED = (SELECT PORPREBLAK FROM PLIS.dbo.CM_Krava where CISKRAVY = @pom_MATKA)

				if @_PORLAK_PRED is null
					set @_PORLAK_PRED = (SELECT TOP 1 PORLAK FROM PLIS.dbo.CM_Telata where MATKA = @pom_MATKA order by DATNAR asc)

                if @_PORLAK_PRED is null
				    set @_PORLAK_PRED = 0
				
				if (@T_ZLAKT is not null)
				begin
					set @ZLAKT = IIF(@T_ZLAKT > @_PORLAK_PRED, @T_ZLAKT, @_PORLAK_PRED) 
				end
						
				-- zaradenie telata
				if (@DI = '1') 
				begin
					-- urcenie povodu -- 20161110
					if (@DATNAR is not null and @POHLTEL is not null)
						exec PLIS.dbo.C_aktual_zisti_povod_telata @pom_MATKA, @DATNAR, @POHLTEL, @OT output, @povod output, @DobaNos output

					if (@OT is not null) 
					begin
						select @T_OTEC = USCISLO, @T_OTECLIN = LIN, @T_OTECREG = REG from CM_Byci where IDBYKA = @OT	
					end

					if (@povod != '1')
					begin
						if (@OTECLIN is not null )
							set @T_OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)	
						else							
						begin
							select @T_OTECLIN = LIN, @T_OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 
						end 
						set @povod = 4
						set @DobaNos = 0						
					end

					-- spustat prepocet plemena okrem pripadu, ked nie je znamy ote ani matka a plemeno je zadane --20161109
					if not ((@PL1 is not null) and ((dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, @T_OTEC) is null) and (dbo.C_aktual_zisti_IDKRAVY(@T_MATKA) is null)))
						or (@PL1 is null)
					begin
						-- ak je povod ne-preukazny a hlasil plemennu skladbu - zober ju
						if not(@povod in ('2','3','5') and @PL1 is not null)
						begin
							select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@T_OTEC, @T_MATKA, null)
						end
						else
						begin
							set @T_OTEC = @OTEC
							set @T_OTECLIN = @OTECLIN
							set @T_OTECREG = @OTECREG
							set @povod = 4
							set @DobaNos = 0
						end
					end
				
					-- znulovanie plemena ak nebolo spravne zadane		
					if (@PL1 is NULL)
					begin
						select @KR1 = NULL, @PL2 = NULL, @KR2 = NULL, @PL3 = NULL, @KR3 = NULL, @PL4 = NULL, @KR4 = NULL, @PL5 = NULL
					end

					-- neznamy povod -- 20161026		
					--if @T_OTECLIN is null and @T_OTEC is null and @OTECLINNEZ is not null
					--	set @T_OTECLIN = @OTECLINNEZ

					---- natvrdo nastavime por. lakt. + 1
					--if (dbo.C_aktual_zisti_IDKRAVY(@pom_MATKA) is not null)
					--	set @T_ZLAKT = ISNULL(@T_ZLAKT, ISNULL(@_PORLAK_PRED, 0) + 1 - @dvojca)
					--else
					--	set @T_ZLAKT = isnull(@T_ZLAKT, 1)

					if (@T_ZLAKT is null)
					begin
						set @T_ZLAKT = ISNULL(@_PORLAK_PRED, 0) + 1 - @dvojca
						set @ZLAKT = @T_ZLAKT
					end
															
					-- zviera s usnym cislom nie je v subore teliat
					INSERT INTO [PLIS].[dbo].[CM_Telata]
						([CISTELATA],[CHOVNAR],[OTECLIN],[OTECREG]
						,[OUC],[MATKA],[HMOTOT],[DATNAR],[HMOTNAR]
						,[PL1],[KR1],[PL2],[KR2],[PL3],[KR3],[PL4],[KR4],[PL5],[TYPPLEM]
						,[FARBA],[PORLAK],[POHLAVIE],[ZNAKET]
						,[PREUKAZ],[DOBANOS],[CHOVATEL],[PRIEBPOR],[URCTEL],[PRICOBTPOR],[PRICUHYN]
						,[DOVVYR],[DATVYR],[PRIZNAKKU],[IDMA]
						,[IDOT], SPRACINSERT, SPRACUPDATE, RECIPIENTKA, IDRECIPIENT )	
					values (@T_CISLOZV, @T_CHOVUS, @T_OTECLIN, @T_OTECREG
						,isnull(dbo.C_aktual_zisti_USCISBYKA(@T_OTECLIN, @T_OTECREG), @T_OTEC), @T_MATKA, @T_HMOTOT, @T_DATNAR, @T_HMOTNAR
						,@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, 
						PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, @T_FARBA)
						,@T_FARBA, @T_ZLAKT, @T_POHLTEL, @_ZNAKET
						,@povod, @DobaNos, @T_CHOVUS, @T_PRIEBPOR, @T_URCEN, @T_PRITAZPOR, @T_UHYNPRIC
						,@T_DOVVYR, @T_DATVYR, '2', PLIS.dbo.C_aktual_zisti_IDKRAVY(@MATKA)
						,PLIS.dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, null), @IDParChov, @IDParChov,@T_MATKAP, dbo.C_aktual_zisti_IDKRAVY(@T_MATKAP))			
				end
				-- oprava 
				else if (@DI = '2')	
				begin	
					-- urcenie povodu -- 20161110
					select @T_OTECLIN = OTECLIN, @T_OTECREG = OTECREG, @T_OTEC = OUC, @T_MATKA = MATKA from PLIS.dbo.CM_Telata where IDTELATA = @IDTELATA
					if (@T_OTEC is null)
						select @T_OTEC = USCISLO from PLIS.dbo.CM_Byci where @T_OTECLIN = LIN and @T_OTECREG = REG
					
					if (@OTECLIN is not null) 
					begin
						set @T_OTECLIN = @OTECLIN
						set @T_OTECREG = @OTECREG 
						set @T_OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)
						
						set @povod = 4
						set @DobaNos = 0	
					end
					else if (@OTEC is not null)
						begin
							set @T_OTEC = @OTEC
							select @T_OTECLIN = LIN, @T_OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC  

							set @povod = 4
							set @DobaNos = 0	
						end
					
					if (@MATKA is not null)
					begin
						set @T_MATKA = @MATKA

						set @povod = 4
						set @DobaNos = 0	
					end

					-- prepocet plemena okrem pripadu, ze nie je znamy aspon jeden rodic a je zadane plemeno -- 20161108
					if not(((dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, @T_OTEC) is null) or (dbo.C_aktual_zisti_IDKRAVY(@T_MATKA) is null)) and (@PL1 is not null))
						or (@PL1 is null)
					begin
						-- ak je povod ne-preukazny a hlasil plemennu skladbu - zober ju
						if not(@povod in ('2','3','5') and @PL1 is not null)
						begin
							select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@T_OTEC, @T_MATKA, null)
						end
						else
						begin
							set @T_OTEC = @OTEC
							set @T_OTECLIN = @OTECLIN
							set @T_OTECREG = @OTECREG
							set @povod = 4
							set @DobaNos = 0
						end
					end

					-- ak nedoslo k zmene v plemennej skladbe (po hlaseni alebo vypocte) neprepisuj povod
					select @pov_PL1 = PL1,@pov_KR1 = KR1, @pov_PL2 = PL2, @pov_KR2 = KR2, @pov_PL3 = PL3, @pov_KR3 = KR3, @pov_PL4 = PL4, @pov_KR4 = KR4, @pov_PL5 = PL5 from PLIS.dbo.CM_Telata where IDTELATA = @IDTELATA
					if (@pov_PL1 = @PL1 and isnull(@pov_KR1,0) = isnull(@KR1,0) and 
						isnull(@pov_PL2,0) = isnull(@PL2,0) and isnull(@pov_KR2,0) = isnull(@KR2,0) and 
						isnull(@pov_PL3,0) = isnull(@PL3,0) and isnull(@pov_KR3,0) = isnull(@KR3,0) and 
						isnull(@pov_PL4,0) = isnull(@PL4,0) and isnull(@pov_KR4,0) = isnull(@KR4,0) and 
						isnull(@pov_PL5,0) = isnull(@PL5,0) and @PL1 is not null) 
					begin
						set @PL1 = null
						set @povod = 4
						set @DobaNos = 0
					end

					-- vytvorenie dynamickeho update prikazu
					set @sql_update = ''
					if @T_CISLOZV is not null
						set @sql_update = @sql_update + 'CISTELATA = ''' + @CISLOZV + ''', '		
					if @T_CHOVUS is not null
						set @sql_update = @sql_update + 'CHOVATEL = ''' + @T_CHOVUS + ''', '					
					if @T_ZLAKT is not null
						set @sql_update = @sql_update + 'PORLAK = ' + convert(varchar, @T_ZLAKT) + ', '				
					if @T_POHLTEL is not null
						set @sql_update = @sql_update + 'POHLAVIE = ''' + @T_POHLTEL + ''', '	
						
					-- neznamy povod -- 20161026
					if (@OTECLINNEZ is not null)
					begin				
						set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLINNEZ + ''', OTECREG = NULL, OUC = NULL, IDOT = NULL, '
					end
					else
					if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null)
					begin				
						set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, OUC = ''' + @OTEC + ''', IDOT = NULL, '
					end
					else
					if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC) is not null and @OTECLIN is null)
					begin		
						if @T_OTECLIN is not null
							set @sql_update = @sql_update + 'OTECLIN = ''' + @T_OTECLIN + ''', OTECREG = ' + isnull(convert(varchar, @T_OTECREG), 'NULL') + ', '
						else
							set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, '
						set @sql_update = @sql_update + 'OUC = ''' + @OTEC + ''', IDOT = ' + convert(varchar, dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC)) + ', '
					end
					else
					begin											
						if @T_OTECLIN is not null
							set @sql_update = @sql_update + 'OTECLIN = ''' + @T_OTECLIN + ''', '
						if @T_OTECREG is not null
							set @sql_update = @sql_update + 'OTECREG = ' + convert(varchar, @T_OTECREG) + ', '	
						if @T_OTECLIN is not null and @T_OTECREG is not null
						begin
							set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@T_OTECLIN, @T_OTECREG, null)
							if @pom_IDBYKA is not null
								set @sql_update = @sql_update + 'IDOT = ' + convert(varchar, @pom_IDBYKA) + ', '
							set @pom_OUSCIS = PLIS.dbo.C_aktual_zisti_USCISBYKA(@T_OTECLIN, @T_OTECREG)
							if @pom_OUSCIS is not null
								set @sql_update = @sql_update + 'OUC = ''' + @pom_OUSCIS + ''', '	
						end				
					end
						
					-- neznamy povod -- 20161026
					if (@MATKA is not null and dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)
					begin				
						set @sql_update = @sql_update + 'MATKA = ''' + @MATKA + ''', IDMA = NULL, '
					end
					else
					begin										
						if @T_MATKA is not null
						begin
							set @sql_update = @sql_update + 'MATKA = ''' + @T_MATKA + ''', '	
							set @pom_IDKRAVY = PLIS.dbo.C_aktual_zisti_IDKRAVY(@T_MATKA)
							if @pom_IDKRAVY is not null
								set @sql_update = @sql_update + 'IDMA = ' + convert(varchar, @pom_IDKRAVY) + ', '						
						end			
					end						
							
					if @T_DATNAR is not null
						set @sql_update = @sql_update + 'DATNAR = ''' + convert(varchar, @T_DATNAR) + ''', '
					if @T_HMOTOT is not null
						set @sql_update = @sql_update + 'HMOTOT = ' + convert(varchar, @T_HMOTOT) + ', '
					if @T_PRIEBPOR is not null
						set @sql_update = @sql_update + 'PRIEBPOR = ''' + @T_PRIEBPOR + ''', '
					if @T_PRITAZPOR is not null
						set @sql_update = @sql_update + 'PRICOBTPOR = ''' + @T_PRITAZPOR + ''', '
					if @T_HMOTNAR is not null
						set @sql_update = @sql_update + 'HMOTNAR = ' + convert(varchar, @T_HMOTNAR) + ', '
					if @T_UHYNPRIC is not null
						set @sql_update = @sql_update + 'PRICUHYN = ''' + @T_UHYNPRIC + ''', '	
					if @T_DOVVYR is not null
					begin
						set @sql_update = @sql_update + 'DOVVYR = ''' + @T_DOVVYR + ''', '
						set @sql_update = @sql_update + 'DATVYR = ''' + convert(varchar, @T_DATVYR) + ''', '	
					end
					if @T_URCEN is not null
						set @sql_update = @sql_update + 'URCTEL = ''' + @T_URCEN + ''', '	
						
					if @PL1 is not null
					begin
						set @sql_update = @sql_update + 'PL1 = ''' + @PL1 + ''', KR1 = ' + convert(varchar, @KR1) + ', ' 
						if @PL2 is not null
							set @sql_update = @sql_update + 'PL2 = ''' + @PL2 + ''', KR2 = ' + convert(varchar, @KR2) + ', ' 
						else
							set @sql_update = @sql_update + 'PL2 = NULL, KR2 = NULL, ' 
						if @PL3 is not null
							set @sql_update = @sql_update + 'PL3 = ''' + @PL3 + ''', KR3 = ' + convert(varchar, @KR3) + ', ' 
						else
							set @sql_update = @sql_update + 'PL3 = NULL, KR3 = NULL, ' 							
						if @PL4 is not null
							set @sql_update = @sql_update + 'PL4 = ''' + @PL4 + ''', KR4 = ' + convert(varchar, @KR4) + ', ' 
						else
							set @sql_update = @sql_update + 'PL4 = NULL, KR4 = NULL, ' 							
						if @PL5 is not null
							set @sql_update = @sql_update + 'PL5 = ''' + @PL5 + ''', '
						else
							set @sql_update = @sql_update + 'PL5 = NULL, ' 

						set @pom_TYPPLEM = PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5, @T_FARBA)
						if @pom_TYPPLEM is not NULL				
							set @sql_update = @sql_update + 'TYPPLEM = ''' + @pom_TYPPLEM + ''', '													
					end
					if @T_FARBA is not null
						set @sql_update = @sql_update + 'FARBA = ''' + @T_FARBA + ''', '										
					if @povod is not null
						set @sql_update = @sql_update + 'PREUKAZ = ''' + @povod + ''', '	
					if @DobaNos is not null
						set @sql_update = @sql_update + 'DOBANOS = ' + convert(varchar, @DobaNos) + ', '						
					if @_ZNAKET is not null
						set @sql_update = @sql_update + 'ZNAKET = ' + convert(varchar, @_ZNAKET) + ', '				
					if @sql_update != ''
					begin
						set @sql_update = @sql_update + 'PRIZNAKKU = ''2'', SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' '
						set @sql_update = @sql_update + 'where IDTELATA = ' + convert(varchar, @IDTELATA) + ''	
						set @sql_update = 'update PLIS.dbo.CM_Telata set ' + @sql_update
						exec (@sql_update)
					end   						
				end 
				else if (@DI = '4')	
				begin			
					update PLIS.dbo.CM_Telata set
						-- presun na MP chov a zrusenie vyradenia -- 20170517
						CHOVATEL =  @CHOVUS,
						DOVVYR = null,
						DATVYR = null,
						PRIZNAKKU = '2', SPRACUPDATE = @IDParChov, 
						SPRACINSERT = @IDParChov -- aby v zostave zoznamu teliat po presune do MP pribudlo nove tela --20170615
						where IDTELATA = @IDTELATA
				end
				else
				-- iny typ informacie
				begin
					-- priradenie chyby 99
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarteliatmas_zapis_chybu] @IDR, 99, @TypyChybyOp
				end
				
				
				if (dbo.C_aktual_zisti_IDKRAVY(@pom_MATKA) is null) and (@DI = '1' or @DI = '2')
				-- matka nie je v CM_Krava - insert do tabulky CM_Krava			
				begin
					-- 20170810
					--if (@DI = '1')
					--	set @T_ZLAKT = isnull(@T_ZLAKT, 1)

					-- matka je v subore teliat
					-- zaradi sa len ak je v KU MP alebo PRIZNAKKU = 4  20170616
					if (select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @pom_MATKA and (PRIZNAKKU = '2' or PRIZNAKKU = '4' ))) > 0
					begin
						INSERT INTO [PLIS].[dbo].[CM_Krava]
								([CISKRAVY],[CHOVATEL],[SKUPINA],[PK],[OTECLIN],[OTECREG]
								,[OUSCIS],[MA],[IDOT],[IDMA],[DATNAR]
								,[PL1],[KR1],[PL2],[KR2],[PL3],[KR3],[PL4],[KR4],[PL5]
								,[FARBA],[ZNMATBYK],[ZNAKET],[POHLAVIE]
								,[ZDRAVTR],[PLEMENNA],[PORPREBLAK],[DATPOSKONT],[DOVVYR],[DATVYR],[DATZAR],[TRUZIT],[PORLAKMAX]
								,[MLIEKOMAX],[TUKMAX],[BIELMAX],[LAKTOZAMAX],[POCVSETLAK],[POCNORLAK],[MLIEKOPR],[TUKPRKG]
								,[TUKPRPER],[BIELPRKG],[BIELPRPER],[LAKTPRKG],[LAKTPRPER],[TYPPLEM],[FARMACEHZ],[PRIZNAKKU]
								,[KRJA],[PINT],[PSER],[PMED]
								,[BB_ANIMALCODE],[BB_NAME],[BB_IMPORTED],[BB_BREEDING_NAME],[BB_OWNER],[BB_KEEPER],[BB_USE]
								,[BB_COUNTRYCODE],[BB_CATEGORY],[BB_HERDBOOK_NUMBER], SPRACINSERT, SPRACUPDATE)	
						select @pom_MATKA, @CHOVUS, null,  null, OTECLIN, OTECREG
								,OUC, MATKA, IDOT, IDMA, DATNAR
								,PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5
								,FARBA, null, ZNAKET, POHLAVIE
								--,null, null, @T_ZLAKT, null, /*DOVVYR*/ null, /*DATVYR*/ null, GETDATE(), null, null --20170810
								,null, null, @ZLAKT, null, /*DOVVYR*/ null, /*DATVYR*/ null, GETDATE(), null, null
								, null, null, null, null, @T_ZLAKT, null, null, null
								, null, null, null, null, null, TYPPLEM, null, '2'
								, '1', null, null, null
								, null, null, null, null, null, null, null
								, null, null, null, @IDParChov, @IDParChov
						from PLIS.dbo.CM_Telata where (CISTELATA = @pom_MATKA)		
					    --vyradenie telata ked sa oteli
						update CM_Telata set DATVYR = CAST(GETDATE() as DATE), DOVVYR = '63' where CISTELATA = @pom_MATKA and PRIZNAKKU = '2'		
					end
					--nevytvarat nove prazdne kravy --20170616
					--else
					-- matka nie je v CM_Telata 
					--begin	
					--	if (@pom_MATKA is not null and @pom_MATKA != 'SK999999999999')
					--	insert into PLIS.dbo.CM_Krava (CISKRAVY,CHOVATEL,SKUPINA,PK,OTECLIN,OTECREG,OUSCIS,MA
					--	,IDOT,IDMA,DATNAR,PL1,KR1,PL2,KR2,PL3,KR3,PL4,KR4,PL5,FARBA,ZNMATBYK,ZNAKET
					--	,POHLAVIE,ZDRAVTR,PLEMENNA,PORPREBLAK,DATPOSKONT,DOVVYR,DATVYR,DATZAR,TRUZIT,PORLAKMAX
					--	,MLIEKOMAX,TUKMAX,BIELMAX,LAKTOZAMAX,POCVSETLAK,POCNORLAK,MLIEKOPR,TUKPRKG,TUKPRPER,BIELPRKG
					--	,BIELPRPER,LAKTPRKG,LAKTPRPER,TYPPLEM,FARMACEHZ,PRIZNAKKU,KRJA,PINT,PSER,PMED,BB_ANIMALCODE
					--	,BB_NAME,BB_IMPORTED,BB_BREEDING_NAME,BB_OWNER,BB_KEEPER,BB_USE,BB_COUNTRYCODE,BB_CATEGORY
					--	,BB_HERDBOOK_NUMBER, SPRACINSERT, SPRACUPDATE)
					--	values (@pom_MATKA,@CHOVUS,null,null,null,null,null,null,null,null,null,null,null,null,
					--	null,null,null,null,null,null,null,null,null,null,null,null,@T_ZLAKT,null,null,null,GETDATE(),null,null,
					--	null,null,null,null,@T_ZLAKT,null,null,null,null,null,null,null,null,null,null,/*'2'*/'3','1',null,null,null,null, --20170615
					--	null,null,null,null,null,null,null,null,null, @IDParChov, @IDParChov)
					--end
				end
				else
				-- matka je v CM_Krava - update dat
				begin
					-- 20170810
					--if (@DI = '1')
					---- por. laktacie povysit o jednu ak nejde o dvojcata
					if (@ZLAKT is not null)
					begin 
						update PLIS.dbo.CM_Krava set
							--PORPREBLAK = isnull(PORPREBLAK, isnull(@_PORLAK_PRED, 0)) - @dvojca + 1, SPRACUPDATE = @IDParChov --20170810
							PORPREBLAK = @ZLAKT, SPRACUPDATE = @IDParChov
						where CISKRAVY = @pom_MATKA    
					end		 					 			 	
				end		
			end				
		
			-- mazanie zaznamu o telati
			if (@DI = '3')
			begin
				if @CISLOZV is not null 
				begin
					delete from CM_Telata where CISTELATA = @CISLOZV 
					delete from CM_Vazenia where CISTELATA = @CISLOZV
				end
				else
					if @MATKA is not null and @DATNAR is not null
						delete from CM_Telata where MATKA = @MATKA and DATNAR = @DATNAR
			end

			-- zaznam v kontajneri zaradeni nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD16_ZARTELIATMAS set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR		
			
      			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'16'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran zarteliatmas;		
		
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'16'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran zarteliatmas	
			
		FETCH NEXT
		FROM db_cursor_zarteliatmas INTO 	
			 @IDR			
			,@CHOVUS
			,@CISLOZV
			,@DATNAR
			,@ZLAKT_
			,@HMOTOT 
			,@POHLTEL 
			,@PRIEBPOR
			,@PRITAZPOR
			,@HMOTNAR 
			,@UHYNPRIC
			,@DATUH
			,@PL1
			,@KR1
			,@PL2
			,@KR2
			,@PL3
			,@KR3
			,@PL4
			,@KR4
			,@PL5
			,@FARBA
			,@MATKA
			,@MATKAP
			,@OTECLIN 
			,@OTECREG_
			,@OTEC
			,@URCEN
			,@DI
	end 
	
	CLOSE db_cursor_zarteliatmas
	DEALLOCATE db_cursor_zarteliatmas
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Zarteliatmas_aktualizacia ...OK'		
 END


go



CREATE procedure [dbo].[Rocenka_MPHD_7]
	
	@rok varchar(4)

	as 
	begin

	select 
	case when plemeno ='AA' then 1
				when plemeno ='BdA' then 2
				--when plemeno ='BBM' then 3
				when plemeno ='Gal' then 3
				when plemeno ='HEM' then 4
				when plemeno ='High' then 5
				when plemeno ='Char' then 6
				when plemeno ='Lim' then 7
				--when plemeno ='SDM' then 8
				--when plemeno ='Piem' then 8
				when plemeno ='Pin' then 8 
				when plemeno ='Sim_maso' then 9
				when plemeno ='Slst' then 10
				when plemeno ='Osta' then 11
				when plemeno ='Nez' then 12
				when plemeno ='SR' then 13 end  as poradie,
	
	case when plemeno ='AA' then 'Aberdeen Angus'
				when plemeno ='BdA' then 'Blonde d´Aquitaine'
				when plemeno ='BBM' then 'Belgické modré'
				when plemeno ='Gal' then 'Galloway'
				when plemeno ='High' then 'Highland'
				when plemeno ='Char' then 'Charolais'
				when plemeno ='Lim' then 'Limousine'
				when plemeno ='Hem' then 'Hereford'
				when plemeno ='Sim_maso' then 'Simentál mäsový'
				when plemeno ='Piem' then 'Piemontese'
				when plemeno ='Pin' then 'Pinzgauské'
				when plemeno ='SDM' then 'Maďarský stepný dobytok'
				when plemeno ='Slst' then 'Slovenské strakaté'
				when plemeno ='Osta' then 'Ostatné plemená'
				when plemeno ='Nez' then 'Neznáme'
				when plemeno ='SR' then 'Výsledky za Slovensko' end as	plemeno, 
	
	do350, do350_p, do380, do380_p, do410, do410_p, do440, do440_p, do470, do470_p, nad471, nad471_p, spolu, rok
	
	from Roc_MPHD_Tab_7
	where @rok = rok
	order by poradie

	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description: mliekova zostava
-- =============================================
create PROCEDURE [dbo].[Zostava_9C] (@chovatel varchar(9))
AS
BEGIN

   declare @pocet_do320 float;
   declare @pocet_od321az365 float;
   declare @pocet_od366az385 float;
   declare @pocet_od386az400 float;
   declare @pocet_od401 float;
   declare @pocet_spolu float;
   
   set @pocet_do320 = 0;
   set @pocet_od321az365 = 0;
   set @pocet_od366az385 = 0;
   set @pocet_od386az400 = 0;
   set @pocet_od401 = 0;
   set @pocet_spolu = 0;
   
   declare @v_ciskravy varchar(14);
   declare @v_priemerMOzaUk_aj_PrebzaKravu float;
   
   declare @v_celkovePriemerneMO float;
   set @v_celkovePriemerneMO = 0;
   
   declare krava_cursor1 cursor for 
   
/*
  select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from (   
   select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l, CM_Krava k     
   where l.CISKRAVY = k.CISKRAVY and l.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1'   
   union
   select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n, CM_Krava k     
   where n.CISKRAVY = k.CISKRAVY and n.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1'  ) as tab 
   group by tab.CISKRAVY
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 
*/
select  tab2.CISKRAVY, tab2.priemerMOzaUk_aj_Preb from(   
   select tab.ciskravy, SUM(medziobd)/nullif((COUNT(isnull(MEDZIOBD,0))-1),0) as priemerMOzaUk_aj_Preb from (   
   select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
   on l.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV
   where l.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null     
   union
   select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
   left outer join CM_Krava k
   on n.CISKRAVY = k.CISKRAVY left outer join
   NM_CHOVMAS chovmas on k.chovatel = chovmas.KRAJ + chovmas.OKRES + chovmas.PODNIK + chovmas.CHOV    
   where n.CHOVATEL like @chovatel+'%' and k.dovvyr is null and k.priznakku = '1' and chovmas.ZRUS is null  ) 
   as tab 
   group by tab.CISKRAVY
   ) as tab2 where tab2.priemerMOzaUk_aj_Preb is not null 

	OPEN krava_cursor1   
	FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu

		WHILE @@FETCH_STATUS = 0   
		BEGIN   
				set @v_priemerMOzaUk_aj_PrebzaKravu =  round(@v_priemerMOzaUk_aj_PrebzaKravu,0);
				set @v_celkovePriemerneMO = @v_celkovePriemerneMO + @v_priemerMOzaUk_aj_PrebzaKravu;
				if (@v_priemerMOzaUk_aj_PrebzaKravu <=320)
					begin
						set @pocet_do320 = @pocet_do320 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 321 and @v_priemerMOzaUk_aj_PrebzaKravu <= 365)
					begin
						set @pocet_od321az365 = @pocet_od321az365 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 366 and @v_priemerMOzaUk_aj_PrebzaKravu <= 385)
					begin
						set @pocet_od366az385 = @pocet_od366az385 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 386 and @v_priemerMOzaUk_aj_PrebzaKravu <= 400)
					begin
						set @pocet_od386az400 = @pocet_od386az400 + 1;
					end
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu >= 401)
					begin
						set @pocet_od401 = @pocet_od401 + 1;
					end
				
				
				if (@v_priemerMOzaUk_aj_PrebzaKravu is not null) /*prvostky sa neberu do uvahy*/
					begin
						set @pocet_spolu = @pocet_spolu + 1;
					end
			
				
					  
		FETCH NEXT FROM krava_cursor1 INTO @v_ciskravy, @v_priemerMOzaUk_aj_PrebzaKravu
		END
	if (@pocet_spolu!=0)
	begin	
	set @v_celkovePriemerneMO = round(@v_celkovePriemerneMO / @pocet_spolu,0)			
	end 
	
	declare @v_percento_do320 float;
	declare @v_percento_od321az365 float;
	declare @v_percento_od366az385 float;
	declare @v_percento_od386az400 float;
	declare @v_percento_od401 float;
	declare @v_percento_spolu float;
	
	set @v_percento_do320 = 0;
	set @v_percento_od321az365 = 0;
	set @v_percento_od366az385 = 0;
	set @v_percento_od386az400 = 0;
	set @v_percento_od401 = 0;
	set @v_percento_spolu = 0;
	
	if (@pocet_spolu != 0)
	begin
	set @v_percento_do320 =  round(@pocet_do320 * 100 / @pocet_spolu, 1)
	set @v_percento_od321az365 = round(@pocet_od321az365 * 100 / @pocet_spolu,1)
	set @v_percento_od366az385 = round(@pocet_od366az385 * 100 / @pocet_spolu,1)
	set @v_percento_od386az400 = round(@pocet_od386az400 * 100 / @pocet_spolu,1)
	set @v_percento_od401 = round(@pocet_od401 * 100 / @pocet_spolu,1)
	set @v_percento_spolu = round(((@pocet_do320 + @pocet_od321az365 + 
	@pocet_od366az385 + @pocet_od386az400 + @pocet_od401) * 100) / @pocet_spolu,1)
	end;
	
	select 1 as poradie ,	'do 320 dní ' as dni, @pocet_do320 as pocet,  @v_percento_do320 as percento
	union 
	select 2 as poradie,	'321-365 dní ' as dni,	@pocet_od321az365 as pocet,  @v_percento_od321az365 as percento
	union 
	select 3 as poradie,	'366-385 dní ' as dni,	@pocet_od366az385 as pocet,  @v_percento_od366az385 as percento
	union 
	select 4 as poradie,	'386-400 dní ' as dni,	@pocet_od386az400 as pocet ,  @v_percento_od386az400 as percento
	union 
	select 5 as poradie,	'nad 401 dní ' as dni,	@pocet_od401 as pocet,  @v_percento_od401 as percento
	union 
	select 6 as poradie,	'spolu ' as dni, @pocet_spolu as pocet, @v_percento_spolu as percento
	union 
	select 7 as poradie,	'priemerné MO ' as dni, @v_celkovePriemerneMO as pocet, null as percento
	order by poradie
	
	CLOSE krava_cursor1   
	DEALLOCATE krava_cursor1
END
go

CREATE PROCEDURE [dbo].[C_VZ_MedziobdobieMesove] 
	
AS
BEGIN
	
	SET NOCOUNT ON;
	declare @chov_id varchar(9);
	declare @ucislo varchar(14)
	set @chov_id='';
	declare @porlakt as int;
	DECLARE @W INT;

	TRUNCATE TABLE [PLIS].[dbo].[CP_MedziObdMesove]		


	DECLARE cur_Chovatel CURSOR FOR 
		select  distinct K.CISKRAVY, k.CHOVATEL
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null;
	  -- select distinct matka from plis.dbo.CM_Telata where PRIZNAKKU='2'


	  SET @W= (select  distinct COUNT( K.CISKRAVY)
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null)

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO @ucislo, @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			declare @medzi int
			set @medzi=0;
			declare @d int;
			set @d=0;
							declare c cursor for SELECT  TOP 1  DATEDIFF(DAY,T.DATNAR,T2.DATNAR)AS MEDZ,T2.PORLAK
							FROM DBO.CM_Telata AS T
							INNER JOIN (SELECT TOP 1 * FROM CM_Telata WHERE MATKA=@ucislo ORDER BY DATNAR DESC) AS T2 
							ON T.MATKA=T2.MATKA
							and t.DATNAR not in (SELECT top 1  v.DATNAR
  FROM [PLIS].[dbo].[CM_Krava] as k
  inner join plis.dbo.CM_Telata as v on k.CISKRAVY=v.MATKA
  where k.DOVVYR is null
  and k.PRIZNAKKU=2
  and v.MATKA=@ucislo  order by v.DATNAR desc)
							order by t.DATNAR desc;

							open c;
							FETCH NEXT FROM c INTO @d,@porlakt;
							WHILE @@FETCH_STATUS = 0
							begin
							
								
									begin 
										SET @MEDZI=@MEDZI+@d ;
										insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@d,@porlakt);
										
									end

								
							FETCH NEXT FROM c INTO @d,@porlakt;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @ucislo,@chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;


END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.9.2017
-- Description:	Vyber udajov do reportu Rocenka MLHD tabulka 1 (Vysledky kontroly mliekovej uzitkovosti za Slovensko)
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_Tab1]
	@datumOd varchar(10),
	@datumDo varchar(10)
	
as	
begin
select * from 
Roc_MLHD_Tab_1_rocenka

where DatumOd = @datumOd and DatumDo=@datumDo

end
go

-- =============================================
----pre rocenku MLHD 
----procedura -prepocet procedur Roc_MLHD_ZostavaLaktacie
----							 Roc_MLHD_ZostavaLaktacie_plemeno
---- za okres, kraj a podnik.
---- prepocty sa ukladju do tabulky CR_LaktacneZostavy_Opr
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[Roc_MLHD_Zostava_Laktacie_LaktPlem_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
			EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 
			

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


--SET @counter = 0;

-- prepocet pre podnik
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

   OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							 EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
								EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
								EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
							EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
							EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC Roc_MLHD_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 
	EXEC Roc_MLHD_ZostavaLaktacie_plemeno @chov, @datumOd, @datumDo, @region, @plem 


END

go

/***masova rocenka - -- prirastok byckov a jaloviciek podla plemien a pohlavia graf strana  44 rok 2017**/
CREATE procedure [dbo].[Roc_MPHD_GRAF_PRIR_120_240]

    @datumOd date ,
    @datumDo date

as
  begin


    declare @dniVaz table (den int);
    insert @dniVaz(den) values(120),(210);

    declare @vaz table (den int, PLEMPRIS varchar(2), pohlavie int, prirastok float, pocet int);


    DECLARE cursorDen CURSOR
    FOR SELECT den FROM @dniVaz
    OPEN cursorDen
    declare @den int;
    FETCH NEXT FROM cursorDen into @den
    WHILE (@@FETCH_STATUS = 0)
      BEGIN
        PRINT @den;
        insert into @vaz
          select @den as den, isnull(CC_PlemTyp.PLEMPRIS, 'XX') as PLEMPRIS, RIGHT(CM_Telata.POHLAVIE, 1) as pohlavie, avg(PRIRPREPOC) as prirastok, count(*) as pocet from CM_Vazenia
            inner join CM_Telata on CM_Vazenia.CISTELATA = CM_Telata.CISTELATA and CM_Vazenia.PRIZNAKKU = 2 and DATVAZ between @datumOd and @datumDo and DNIPREPOC = @den and RIGHT (CM_Telata.POHLAVIE, 1) in (1, 2)
            left outer join CC_PlemTyp on TYPPLEM = CC_PlemTyp.TYPC

          group by RIGHT (CM_Telata.POHLAVIE, 1), CC_PlemTyp.PLEMPRIS

          union

          select
            @den as den,
            'SR'                         as PLEMPRIS,
            RIGHT(CM_Telata.POHLAVIE, 1) as pohlavie,
            avg(PRIRPREPOC)              as prirastok,
            count(*)                     as pocet
          from CM_Vazenia
            inner join CM_Telata on CM_Vazenia.CISTELATA = CM_Telata.CISTELATA and CM_Vazenia.PRIZNAKKU = 2 and
                                    DATVAZ between @datumOd and @datumDo and DNIPREPOC = @den and
                                    RIGHT(CM_Telata.POHLAVIE, 1) in (1, 2)

          group by RIGHT(CM_Telata.POHLAVIE, 1)


        FETCH NEXT FROM cursorDen
        INTO @den;
      END

    select * from @vaz ORDER BY pohlavie, den, PLEMPRIS;




  End
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_MedziObdobZostavaB_chovatel](@chovatel varchar(9),@kolko int)
AS
BEGIN
/***********************************************
	! please run affter C_Aktual_KodDojKodMedzi AND C_ZZ_UZAVRETELAKTSKLADBA_FINAL!

	USING TABLE:CM_Krava,CC_Dojivost,CC_Medziobd,CP_KravaPoslednaUzavLakt

	CHANGING TABLE:CP_MedziobdZostavaB

	USED:(9.B) Medziobdobie podľa úžitkovosti za poslednú uzavretú laktáciu 
*********************************************/

--TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaB
	
	declare @c as varchar(9)
	declare @kod1 as int --medziobdobie
	declare @kod2 as int --mlieko
	declare @nazovml as varchar(20)
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @ls as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @ps as float;
	declare @s as int;
	
	create table #aTable 
	([chovatel]varchar(9)
      ,[Mleko] varchar(20)
      ,[BezMedzi] int
      ,[pBezMedzi] float
      ,[320]int
      ,[p320]float
      ,[321-365] int
      ,[p321-365] float
      ,[366-385] int
      ,[p366-385] float
      ,[386-400] int
      ,[p386-400] float
      ,[400] int
      ,[p400] float
      ,[SpoluGroup] int
      ,[pSpoluGroup] float
      ,[ZnakLakt]varchar(4)
      ,[SpoluChov]int
	)

	/*declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		*/
		
		declare mleko cursor for
		select nazov,kod
		from plis.dbo.CC_Dojivost

		open mleko
		fetch next from mleko into @nazovml,@kod2
		
		while @@FETCH_STATUS=0
		begin
			declare hran cursor for
			select kod
			from plis.dbo.CC_Medziobd

			open hran
			fetch next from hran into @kod1

			while @@FETCH_STATUS=0
			begin
				
				set @s=(select count(*)
				 from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
				inner join PLIS.dbo.CM_Krava as k 
				on k.CISKRAVY=l.cislokrava  
				 where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
				 and k.DOVVYR is null 
				 and l.Kod_Medz is not null
				and l.Kod_Medz!=1
				and l.Kod_Doj is not null)
				
				if(@s=0) begin set @s=NULL; end
				
				if(@kod1=1)
				begin
					set @l1=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=1 )
					set @p1=(convert(float,@l1*100)*1.00)/@s;
				end

				if(@kod1=2)
				begin
					set @l2=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=2 )
					set @p2=(convert(float,@l2*100)*1.00)/@s;
				end

				if(@kod1=3)
				begin
					set @l3=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=3 )
					set @p3=(convert(float,@l3*100)*1.00)/@s;
				end

				if(@kod1=4)
				begin
					set @l4=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=4 )
					set @p4=(convert(float,@l4*100)*1.00)/@s;
				end

				if(@kod1=5)
				begin
					set @l5=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava 
							 where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%'
							 and k.DOVVYR is null 
							 and l.KOD_DOJ=@kod2 
							 and l.KOD_MEDZ=5 )
					set @p5=(convert(float,@l5*100)*1.00)/@s;
				end

				if(@kod1=6)
				begin
					set @l6=(select count(*) 
							from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
							inner join PLIS.dbo.CM_Krava as k 
							on k.CISKRAVY=l.cislokrava  
							where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%'
							and k.DOVVYR is null 
							and l.KOD_DOJ=@kod2 
							and l.KOD_MEDZ=6 )
					set @p6=(convert(float,@l6*100)*1.00)/@s;
				end


				set @ls=(select count(*) 
						from PLIS.dbo.CP_KravaPoslednaUzavLakt as l 
						inner join PLIS.dbo.CM_Krava as k 
						on k.CISKRAVY=l.cislokrava 
						where k.CHOVATEL like SUBSTRING(@chovatel,1,CONVERT(int,@kolko))+'%' 
						and k.DOVVYR is null 
						and l.KOD_DOJ=@kod2 
						and l.KOD_MEDZ is not null 
						and KOD_MEDZ!=1 )
				set @ps=(convert(float,@ls*100)*1.00)/@s;
					
				
				fetch next from hran into @kod1
			end
			close hran
			deallocate hran;

			insert into #aTable values(@chovatel,@nazovml,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@ls,@ps,NULL,@s); 



			fetch next from mleko into @nazovml,@kod2
		end
		
		close mleko;
		deallocate mleko;

/*
		fetch next from chovatel into @C;
	end

	close chovatel
	deallocate chovatel;*/
	
	
	select * from #aTable
			drop table #aTable
			
END
go

CREATE PROCEDURE [dbo].[CR_KUMP_MlDobytka_sumar] 
	@chov varchar(9),
	@rok int,
	@mesiac int

AS
BEGIN

--	Vysledky KUMP v chove mladeho dobytka / mesacne...sumar
--	vstupne parametre: chov, rok, mesiac
--
--	Autor: M.Holes



DECLARE @check INT

SELECT @check = COUNT(*) FROM CR_KUMP_CHMlD_MES_sumar WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac

	IF @check > 0
	BEGIN
		DELETE FROM CR_KUMP_CHMlD_MES_sumar WHERE chovatel= @chov AND rok = @rok AND mesiac = @mesiac
	END


------drop table CR_KUMP_CHMlD_MES_sumar
--create table CR_KUMP_CHMlD_MES_sumar
--(		
--		CHOVATEL varchar(14)null,
--		jalovicky int,
--		jal_pocet120 int,
--		jal_vaha120 int,
--		jal_zp120 int,
--		jal_pocet210 int,
--		jal_vaha210 int,
--		jal_zp210 int,
--		jal_pocet365 int,
--		jal_vaha365 int,
--		jal_zp365 int,
--		jal_pocet500 int,
--		jal_vaha500 int,
--		jal_zp500 int,
--		bycky int,
--		byc_pocet120 int,
--		byc_vaha120 int,
--		byc_zp120 int,
--		byc_pocet210 int,
--		byc_vaha210 int,
--		byc_zp210 int,
--		byc_pocet365 int,
--		byc_vaha365 int,
--		byc_zp365 int,
--		byc_pocet500 int,
--		byc_vaha500 int,
--		byc_zp500 int,
--		spolu int,
--		spolu_pocet120 int,
--		spolu_vaha120 int,
--		spolu_zp120 int,
--		spolu_pocet210 int,
--		spolu_vaha210 int,
--		spolu_zp210 int,
--		spolu_pocet365 int,
--		spolu_vaha365 int,
--		spolu_zp365 int,
--		spolu_pocet500 int,
--		spolu_vaha500 int,
--		spolu_zp500 int,
--		pocet_nar int,
--		pocet_odchov int,
--		mesiac int,
--		rok int,
--		generovane date
--		)

INSERT INTO CR_KUMP_CHMlD_MES_sumar
		(
		CHOVATEL,
		jalovicky,
		jal_pocet120,
		jal_vaha120,
		jal_zp120,
		jal_pocet210,
		jal_vaha210,
		jal_zp210,
		jal_pocet365,
		jal_vaha365,
		jal_zp365,
		jal_pocet500,
		jal_vaha500,
		jal_zp500,
		bycky,
		byc_pocet120,
		byc_vaha120,
		byc_zp120,
		byc_pocet210,
		byc_vaha210,
		byc_zp210,
		byc_pocet365,
		byc_vaha365,
		byc_zp365,
		byc_pocet500,
		byc_vaha500,
		byc_zp500,
		spolu,
		spolu_pocet120,
		spolu_vaha120,
		spolu_zp120,
		spolu_pocet210,
		spolu_vaha210,
		spolu_zp210,
		spolu_pocet365,
		spolu_vaha365,
		spolu_zp365,
		spolu_pocet500,
		spolu_vaha500,
		spolu_zp500,
		pocet_nar,
		pocet_odchov,
		mesiac,
		rok,
		generovane
		)

		
	 select	distinct 
			t.CHOVATEL,
			(SELECT count(CISTELATA) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jalovicky,	
			(SELECT count(tel_vaha120) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_pocet120,	
			(SELECT avg(tel_vaha120*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_vaha120,
			(SELECT avg(tel_zp120 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_zp120,		
			
			(SELECT count(tel_vaha210) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_pocet210,	
			(SELECT avg(tel_vaha210*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_vaha210,
		 	(SELECT avg(tel_zp210 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_zp210,	
		
			(SELECT count(tel_vaha365) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_pocet365,	
			(SELECT avg(tel_vaha365*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_vaha365,
			(SELECT avg(tel_zp365 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_zp365,	
			
			(SELECT count(tel_vaha500) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_pocet500,	
			(SELECT avg(tel_vaha500*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_vaha500,
			(SELECT avg(tel_zp500 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('02','22','32','42','52','82','92')) as jal_zp500,	
			
			(SELECT count(CISTELATA) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				 and tela_pohl in ('01','11','31','41','51','81','91')) as bycky,
			(SELECT count(tel_vaha120) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				 and tela_pohl in ('01','11','31','41','51','81','91')) as byc_pocet120,	
			(SELECT avg(tel_vaha120*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				 and tela_pohl in ('01','11','31','41','51','81','91')) as byc_vaha120,
			(SELECT avg(tel_zp120 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				 and tela_pohl in ('01','11','31','41','51','81','91')) as byc_zp120,		
			
			(SELECT count(tel_vaha210) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_pocet210,	
			(SELECT avg(tel_vaha210*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_vaha210,
		 	(SELECT avg(tel_zp210 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				 and tela_pohl in ('01','11','31','41','51','81','91')) as byc_zp210,	
			
			(SELECT count(tel_vaha365) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_pocet365,	
			(SELECT avg(tel_vaha365*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_vaha365,
			(SELECT avg(tel_zp365 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_zp365,	
			
			(SELECT count(tel_vaha500) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_pocet500,
			(SELECT avg(tel_vaha500*1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_vaha500,
			(SELECT avg(tel_zp500 *1.0) FROM [plis].[dbo].[CR_KUMP_CHMlD_MES_1] where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																				and tela_pohl in ('01','11','31','41','51','81','91')) as byc_zp500,	
	
			count(cistelata) as spolu,
			count(tel_vaha120) as spolu_pocet120,
			avg(tel_vaha120*1.0) as spolu_vaha120,
			avg(tel_zp120 *1.0) as spolu_zp120,		
				
			count(tel_vaha210) as spolu_pocet210,
			avg(tel_vaha210*1.0)as spolu_vaha210,
		 	avg(tel_zp210 *1.0) as spolu_zp210,	
				
			count(tel_vaha365) as spolu_pocet365,
			avg(tel_vaha365*1.0) as spolu_vaha365,
			avg(tel_zp365 *1.0) as spolu_zp365,	
				
			count(tel_vaha500) as spolu_pocet500,
			avg(tel_vaha500*1.0) as spolu_vaha500,
			avg(tel_zp500 *1.0) as spolu_zp500,	
			(select count(t.CISTELATA) from CR_KUMP_CHMlD_MES_1 as t where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																		and (select datepart(YEAR,t.tela_datnar))=(select datepart(YEAR,getdate()))) pocet_nar,
			(select count(CISTELATA) from CM_Telata as t where CHOVATEL=@chov and rok=@rok and mesiac=@mesiac
																		and (select datepart(YEAR,dateadd(day,120,t.DATNAR)))=(select datepart(YEAR,getdate())) and dateadd(day,120,t.DATNAR)<getdate()) as pocet_odchov,
			mesiac,
			rok,
			GETDATE() as generovane

		from CR_KUMP_CHMlD_MES_1 as t
			where t.CHOVATEL=@chov  and rok=@rok and mesiac=@mesiac
				group by CHOVATEL,mesiac,rok
--select * from CR_KUMP_CHMlD_MES_sumar
		end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BarRokNar] 
(	
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
SELECT     TOP (100) PERCENT KROKR, PODNIK, STADO, RokNar, CASE WHEN Roknar = 0 THEN ' ?' ELSE STR(YEAR(GETDATE()) - RokNar, 2) END AS vek, 
SUM(1) AS pocet,CASE WHEN Roknar = 0 THEN 0 ELSE sum(datediff(month,DatNar,getdate())) end as Svekmes
FROM    dbo.SM_BARAN
WHERE     (DOVOD = '0') AND (DATVYR IS NULL) AND (KrOkr+Podnik+stado= @chovatel)
GROUP BY KROKR, PODNIK, STADO, RokNar
ORDER BY KROKR, PODNIK, STADO, RokNar)
go

-- =============================================
-- Author:		David Florek
-- Create date:	08.08.2017
-- Description:	Prepocita riadky faktury pre ovce. Zapise jednotlive riadky do EC_RiadokFaktury.
-- Edit:			28.08.2017 Pridany kurzor a pridanie generovania do historie.
-- =============================================
CREATE PROCEDURE [dbo].[EC_OV_PrepocitajFakturu]
	@datum DATE = null,
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@jeDotacia bit = 0
AS
BEGIN
	if @datum is null set @datum = GETDATE();
	if @rok is null set @rok = YEAR(@datum);
	if @mesiac is null set @mesiac = MONTH(@datum);

	If(OBJECT_ID('tempdb..#zoznam') Is Not Null)
		Drop Table #zoznam;

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Výber zoznamu chovov.';

	select
		vsetky.CHOV as Chov,
		'OV' as Typ,
		SUBSTRING(@rok, 4, 1) + '3' + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + d.PODNIK + d.KRAJ + d.OKRES as Faktura,
		vsetky.POCJEDN as Pocet,
		SUBSTRING(@rok, 3, 2) + REPLICATE('0',2 - LEN(@mesiac)) + @mesiac + dbo.Posledny_pracovny_den_mesiaca(@mesiac, @rok) as Datum,
		vsetky.KODPROD as Produkt,
		prod.JEDCENA as Suma,
		vsetky.POCJEDN * prod.JEDCENA as SumaCelkom,
		ISNULL(vsetky.PRIPLATOK, 0) as Priplatok,
		vsetky.PRIPLATOKPERC as PriplatokPerc

	into #zoznam

		from (
			select distinct
			stat.CHOV as CHOV, stat.OV_BAHNICA as POCJEDN,
			dbo.OV_DAJPRODUKT(stat.CHOV, @datum) as KODPROD,
			0 as PRIPLATOK,
			case
				when d.PLEM = 'V' then -50
				else 0
			end as PRIPLATOKPERC
			from
				NE_STATISTIKY stat
				inner join NM_OVDETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where /*dbo.OV_DAJPRODUKT(stat.CHOV, @datum) <> '36001'*/ ((dbo.OV_DAJPRODUKT(stat.CHOV, @datum) <> '36001') or (dbo.OV_DAJPRODUKT(stat.CHOV, @datum) =  '36001' and (@mesiac = 6 or @mesiac = 12)))
				and stat.DATUM = @datum
				and stat.OV_BAHNICA is not null
				and stat.OV_BAHNICA <> 0
				and d.VYKKU = '1'
				and d.CISKON <> '0'
				and d.CISKON is not null

			union all
			select distinct
			stat.CHOV as CHOV,
			(select count(*) from SM_OVCE where MLRANO + MLOBED + MLVECER > 0 and KROKR + PODNIK + STADO = stat.CHOV and MONTH(DODBERU) = @mesiac and YEAR(DODBERU) = @rok) as POCJEDN,
			'34001' as KODPROD,
			0 as PRIPLATOK,
			0 as PRIPLATOKPERC
			from
				NE_STATISTIKY stat
				inner join NM_OVDETAIL d on stat.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
			where stat.DATUM = @datum
				and d.VYKKU = '1'
				and d.MLIEKOMER = '1'

		) vsetky

	inner join NM_OVDETAIL d on vsetky.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
	inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = vsetky.KODPROD
	where vsetky.POCJEDN > 0;

	declare riadok cursor for
	select * from #zoznam;

	declare
		@id int,
		@chov varchar(9),
		@typ varchar(10),
		@faktura varchar(10),
		@pocet int,
		@datumFak varchar(6),
		@produkt varchar(5),
		@suma decimal(10, 2),
		@sumaCelkom decimal(10, 2),
		@priplatok decimal(10, 2),
		@priplatokPerc decimal(10, 2),
		@dotacia decimal(10, 2),
		@zlavCel decimal(10, 2);

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Vkladanie riadkov faktúr.';
	declare @poc int = 0;

	--Declare @T Table (JednCena decimal(10, 2), Dotacia decimal(10,2), ZlavCel decimal(10, 2));

	open riadok;
	fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
	WHILE @@FETCH_STATUS = 0
		begin
			--insert into @T exec EC_PrepocitajCenu @chov, @produkt, @pocet, @priplatokPerc, @jeDotacia;

			--select @suma = JednCena, @dotacia = Dotacia, @zlavCel = ZlavCel from @t;

			set @sumaCelkom = @pocet * (@suma + @priplatok) * (100 + @priplatokPerc) / 100;
			set @dotacia = 0;
			set @zlavCel = (@pocet * @suma) - (@pocet * (@suma + @priplatok)) * ((100 + @priplatokPerc) / 100);

			insert into EC_RiadokFaktury (Chov, Typ, Faktura, Pocet, Datum, Produkt, Suma, oSuma, SumaCelkom, Priplatok, PriplatokPerc, Dotacia, ZlavCel)
			values (@chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @suma, @sumaCelkom, @priplatok, @priplatokPerc, @dotacia, @zlavCel);

			SELECT @id = SCOPE_IDENTITY();

			insert into EC_RiadokFaktury_Hist (IDR, Pocet, Produkt, Suma, SumaCelkom, Priplatok, PriplatokPerc, TypZmeny, DatumZmeny, Zmenil, KodZmeny)
			values (@id, @pocet, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc, 'Generovanie', GETDATE(), 'system', 0);

			--delete from @T;

			set @poc = @poc + 1;

			fetch next from riadok into @chov, @typ, @faktura, @pocet, @datumFak, @produkt, @suma, @sumaCelkom, @priplatok, @priplatokPerc;
		end

	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec vkladania riadkov, bolo vložených ' + cast(@poc as varchar) + ' riadkov.';

	close riadok;
	deallocate riadok;

	Drop Table #zoznam;
	print FORMAT(GETDATE(), 'dd.MM.yyyy hh:mm:ss') + ' : Koniec čistenia. Prepočet hotový.';
END
go

-- =============================================
-- Author:		David Florek
-- Create date:	13.09.2017
-- Description:	Prepocita cenu, dotaciu a zlavu
-- =============================================
CREATE PROCEDURE [dbo].[EC_PrepocitajCenu]
	@chov varchar(9),
	@produkt varchar(5),
	@pocJedn int,
	@priplatok decimal(10, 2),
	@priplatokPerc decimal(10, 2),
	@jeDotacia bit
AS
BEGIN
	declare @podnikDotacia bit;
	declare @jednCena decimal(10, 2);
	declare @jednCena2 decimal(10, 2);
	declare @pomc decimal(10, 2);

	declare @dotacia decimal(10, 2);
	declare @zlavcel decimal(10, 2);


	select @podnikDotacia = narokNaDotacie from NM_PODNIK where KRAJ + OKRES + PODNIK = LEFT(@chov, 6);


	--if @jeDotacia = 1
	--begin
	--	if @podnikDotacia = 1
	--		select @jednCena2 = CenaSDot2 from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt;
	--	else
	--		select @jednCena2 = CenaSDot from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt;
		
	--	set @jednCena = @jednCena2 * (100 + @priplatokPerc) / 100;
	--	set @pomc = (select JEDCENA from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt) * (100 + @priplatokPerc) / 100;
		
	--	set @dotacia = IIF(@podnikDotacia = 1, @jednCena - @pomc, 0);
	--	set @zlavcel = (@jednCena - @jednCena2) * @pocJedn;

	--end else begin
	--	if @podnikDotacia = 1
	--	begin
	--		set @jednCena = (select JEDCENA from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt) * (100 + @priplatokPerc) / 100;
	--		set @zlavcel = (@jednCena - (select JEDCENA from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt)) * @pocJedn;
	--		set @dotacia = 0;
	--	end else begin
	--		set @jednCena = (select CENASDOT from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt) * (100 + @priplatokPerc) / 100;
	--		set @zlavcel = (@jednCena - (select CENASDOT from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt)) * @pocJedn;
	--		set @dotacia = 0;
	--	end
	--end

	set @jednCena = (select JEDCENA from EC_CISPROD where KOD1 + KOD2 + KOD3 = @produkt);
	set @zlavcel = (@pocJedn * @jednCena) - (@pocJedn * (@jednCena + @priplatok)) * ((100 + @priplatokPerc) / 100);
	set @dotacia = 0;
	
	select @jednCena as JednCena, @dotacia as Dotacia, @zlavcel as ZlavCel;
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_TelataPoLaktacie]
AS
BEGIN
/****************************************
	using table:CM_Krava,CM_Laktacie,CM_Telata

	changing table: Cp_TelataPoLaktacii

	used for: view of details of Krava
*********************************************/
	TRUNCATE TABLE Cp_TelataPoLaktacii


	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);

	declare @l as int;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';

	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;

	declare kravy cursor for
	select CISKRAVY
	from CM_Krava
	where PRIZNAKKU=1;

	open kravy ;
	fetch next from kravy into @krava;

	while @@FETCH_STATUS=0
	begin

		declare @i int;
		set @i=0;


		declare lakt cursor for
		select PORLAK
		from CM_Laktacie
		where CISKRAVY=@krava

		open lakt
		fetch next from lakt into @lakt;

		while @@FETCH_STATUS=0
		begin

			declare telata cursor for 
			select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,l.PORLAK
			from CM_Krava as k
		
			inner join CM_Laktacie as l
			on k.CISKRAVY=l.CISKRAVY

			left join CM_Telata as t
			on k.CISKRAVY=t.MATKA and t.PORLAK=l.PORLAK
			where  k.CISKRAVY=@krava and l.PORLAK = @lakt


			open telata;
			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			set @i=1;
			set @t1=null;
			set @t2=null;
			set @t3=null;
			set @t1Poch=null;
			set @t2Poch=null;
			set @t3Poch=null;		
		
			while @@FETCH_STATUS=0
			begin
				if(@i=1)
				begin
					set @t1=@t;
					set @t1Poch=@pocl;
					if(@t is null)
					begin
					set @t1='bez UČ';
					set @t1Poch=@pocl;
					end
				end
				if(@i=2)
				begin
					set @t2=@t;
					set @t2Poch=@pocl;
					if(@t is null)
					begin
					set @t2='bez UČ';
					set @t2Poch=@pocl;
					end
				end
				if(@i=3)
				begin
					set @t3=@t;
					set @t3Poch=@pocl;
					if(@t is null)
					begin
					set @t3='bez UČ';
					set @t3Poch=@pocl;

					end
				end
			
				set @i=@i+1;

				fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			
			end

			close telata;
			deallocate telata;

		  
			fetch next from lakt into @lakt;

			insert into Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l);		
		end
	
		close lakt;
		deallocate lakt;


		fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;	 				
	
END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 19.12.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Zarteliatmas 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarteliatmas_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int],
	@ParOp [varchar](3)
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	if @ParOp = 'INS'
		select @PriznakChyby = ZNCH_CM_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby
	else if @ParOp = 'UPD' 
		select @PriznakChyby = ZNCH_CM_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
		
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_Zarteliatmas(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go

-- =============================================
-- Author:		<Author,,Machynova Anna>
-- Create date: <Create Date,,23.2.2015>
-- Description:	<Description,,vytvori tabulku potomkov vybraneho otca>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PotOtca] 
(	
	-- Add the parameters for the function here
 @pcapcis varchar(8))

RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
select KrOkr,stado,LUC,PUC,JedCis,Macis,Datnar,KDPRir from GM_APotomok where otcis=@pCapcis
union  select KrOkr,stado,LUC,PUC,JedCis,Macis,DatNar,KDPRir from GM_Potomok where otcis=@pCapcis
)
go

CREATE procedure [dbo].[Rocenka_MPHD_6_plemTYP]
	
	@rok int
	--@plemeno varchar(9)

	as 
	begin

	--select 	* from Roc_MPHD_Tab_6_plemTYP
	--where @rok = rok and @plemeno = plemeno
	 
	select plemeno, plemtyp, 
		case --when plemtyp = '101' then 'BBM1'  
		--when plemtyp = '102'then 'BBM2'  
		--	when plemtyp = '103' then 'BBM3'  
		--	when plemtyp = '104' then 'BBM4'  
		--	when plemtyp = '105' then 'BBM5'  
		when plemtyp ='111' then 'AAM1'
			when plemtyp ='112' then 'AAM2'
			when plemtyp ='113' then 'AAM3'
			when plemtyp ='114' then 'AAM4'
			when plemtyp ='115' then 'AAM5'
		when plemtyp ='121' then 'BAM1'
			when plemtyp ='122' then 'BAM2'
			when plemtyp ='123' then 'BAM3'
			when plemtyp ='124' then 'BAM4'
			when plemtyp ='125' then 'BAM5' 
		when plemtyp ='131' then 'GLM1'
		when plemtyp ='141' then 'HEM1'
			when plemtyp ='142' then 'HEM2'
			when plemtyp ='143' then 'HEM3'
			when plemtyp ='144' then 'HEM4'
			when plemtyp ='145' then 'HEM5'
		when plemtyp ='151' then 'HLM1'
		when plemtyp ='161' then 'CHM1'
			when plemtyp ='162' then 'CHM2'
			when plemtyp ='163' then 'CHM3'
			when plemtyp ='164' then 'CHM4'
			when plemtyp ='165' then 'CHM5'
		when plemtyp ='171' then 'LIM1'
			when plemtyp ='172' then 'LIM2'
			when plemtyp ='173' then 'LIM3'
			when plemtyp ='174' then 'LIM4'
			when plemtyp ='175' then 'LIM5'
		when plemtyp ='201' then 'SMM1'
			when plemtyp ='202' then 'SMM2'
			when plemtyp ='203' then 'SMM3'
			when plemtyp ='204' then 'SMM4'
			when plemtyp ='205' then 'SMM5'
		when plemtyp ='191' then 'PIM1'
			when plemtyp ='192' then 'PIM2'
			when plemtyp ='193' then 'PIM3'
			when plemtyp ='194' then 'PIM4'
			when plemtyp ='195' then 'PIM5'
		when plemtyp ='51' then 'PM0'
			when plemtyp ='53' then 'PM1'
			when plemtyp ='54' then 'PM2'
		when plemtyp ='11' then 'SM0'
			when plemtyp ='13' then 'SM1'
		when plemtyp ='14' then 'SM2' end as plemeno_nazov,
						vek_1OT, 
		isnull(medz_2otel, 0) as medz_2otel, 
		isnull(medz_3otel, 0) as medz_3otel, 
		isnull(medz_4otel, 0) as medz_4otel, 
		isnull(medz_5otel, 0) as medz_5otel, 
		isnull(medz_celk_otel, 0) as medz_celk_otel, 
		rok 
	from Roc_MPHD_Tab_6_plemTYP as pt 
  	--where pt.plemeno= @plemeno
union

select plemeno,'999'as plemtyp, 'spolu' as plemeno_nazov, vek_1OT, 
	isnull(medz_2otel, 0) as medz_2otel, 
	isnull(medz_3otel, 0) as medz_3otel, 
	isnull(medz_4otel, 0) as medz_4otel, 
	isnull(medz_5otel, 0) as medz_5otel, 
	isnull(medz_celk_otel, 0) as medz_celk_otel, 
	rok
from Roc_MPHD_Tab_6 as roc 
  			where roc.plemeno not in ('SR','Nez','Osta')
					 




		end
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_20]
    @rok varchar(4)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_20 as z
	where z.rok = @rok 
	order by Por
	end
go

-- =============================================
-- Author:		David Florek
-- Create date:	07.09.2017
-- Description:	Potvrdi riadky faktury podla filtrov
-- =============================================
CREATE PROCEDURE [dbo].[EC_PotvrdRiadkyFakturyPodlaFiltrov]
	@rok varchar(4) = null,
	@mesiac varchar(2) = null,
	@kraj varchar(1) = null,
	@okres varchar(2) = null,
	@podnik varchar(3) = null,
	@chov varchar(3) = null,
	@typ varchar(10) = null,
	@region varchar(2) = null,
	@ico varchar(10) = null,
	@faktura varchar(10) = null,
	@login varchar(255)
AS
BEGIN
	If(OBJECT_ID('tempdb..#faktury') Is Not Null)
		Drop Table #faktury

	select
		fak.IDR as IDR
	into #faktury
	from EC_RiadokFaktury fak
		inner join (
			select KRAJ, OKRES, PODNIK, CHOV, IDZOO, IDKON from NM_HDDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_OVDETAIL
			union all select KRAJ, OKRES, PODNIK, CHOV, CISZOO as IDZOO, CISKON as IDKON from NM_KODETAIL
			) d on fak.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV
		inner join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
	where
		(@rok is null or SUBSTRING(fak.Datum, 1, 2) = RIGHT(@rok, 2))
		and (@mesiac is null or SUBSTRING(fak.Datum, 3, 2) = REPLICATE('0',2 - LEN(@mesiac)) + @mesiac)
		and (@kraj is null or d.KRAJ = @kraj)
		and (@okres is null or d.OKRES = @okres)
		and (@podnik is null or d.PODNIK = @podnik)
		and (@chov is null or d.CHOV = @chov)
		and (@typ is null or fak.Typ = @typ)
		and (@region is null
			or @region = (
				case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
				when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '21'
				when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
				when fak.Typ = 'OV' or fak.Typ = 'KY' then (select s.STRED from NM_PracSPU s where s.IDPAM =  d.IDKON)
				else p.REGION end)
			)
		and (@ico is null or p.ICO = @ico)
		and (@faktura is null or fak.Faktura like '%' + @faktura + '%')
		and fak.Potvrdeny = 0 and fak.Zruseny = 0;

		declare riadok cursor for select * from #faktury;

		declare @idr int;
		declare @pocetUprav int;

	open riadok;
	fetch next from riadok into @idr;
	WHILE @@FETCH_STATUS = 0
		begin
			select @pocetUprav = count(*) from EC_RiadokFaktury_Hist where IDR = @idr and KodZmeny in (2, 5);

			if @pocetUprav = 0 begin
				exec EC_PotvrdRiadokFaktury @idr, @login;
				--print @idr;
			end
			fetch next from riadok into @idr;
		end
	close riadok;
	deallocate riadok;

	Drop Table #faktury;

END
go


CREATE PROCEDURE [dbo].[C_aktual_prepocMasoveVazenia_CHOV_povod]
	@parChov varchar(9)
AS
BEGIN
--	update plis.dbo.CM_Vazenia set HMOTPREPOC=null, DNIPREPOC=null,DNIVAZ=null, PRIRPREPOC=null, PRIR=null, ZIVPRIR=null, ZIVPRIRPREPOC=null;
	declare @dh as int;
	declare @ph as int;
	declare @hh as int;
	declare @datum1 as datetime;  --helping for remembering last date for conrols
	declare @kg as float;
	declare @DD1 as int;
	declare @DD3 as int
	declare @prirastok as float;
	declare @day as int;
	DECLARE @CHOMT AS FLOAT;
	DECLARE @ZIVPRIRPREPOC AS FLOAT;
	DECLARE @PRIRPREPOC AS FLOAT;
	DECLARE @ZIVPRIR AS FLOAT;
	DECLARE @hmotprepocpredos AS FLOAT;
	declare @hmot as float;
	declare @hmot2 as float;
	declare @hmotnar as float;
	declare @v as int;
	declare @dniprepoc as int;
	declare @d as datetime;    --datum kontroly
	declare @t as varchar(14);
	declare @rastpas as char;
	DECLARE @DN AS DATETIME;    -- datum narodeniny
	declare @vaha as float;
	DECLARE @DD AS INT;
	DECLARE @DniVaz2 AS INT;
	Declare @Dpk as int;
	declare @Vpk as float;
	declare telata cursor  for 
	select distinct CISTELATA
	from plis.dbo.CM_Vazenia where cistelata in (select CISTELATA from plis.dbo.CM_Telata where CHOVATEL = @parChov)
	open telata
	fetch next from telata into @t;
	WHILE @@FETCH_STATUS = 0 
			BEGIN
			
			update plis.dbo.CM_Vazenia set HMOTPREPOC=null, DNIPREPOC=null,DNIVAZ=null, PRIRPREPOC=null, PRIR=null, ZIVPRIR=null, ZIVPRIRPREPOC=null
				where CISTELATA = @t
			
			set @DN=(select TOP 1 datnar from plis.dbo.CM_Telata where CISTELATA=@t);
			set @hmot=(select TOP 1 hmotnar from plis.dbo.CM_Telata where CISTELATA=@t);
			set @hmotnar=@hmot;
						declare vaj cursor for
						select DATVAZ,HMOT
						from plis.dbo.CM_Vazenia
						where CISTELATA=@t;
						open vaj
						fetch next from vaj into @d,@v;
						while @@FETCH_STATUS=0
						begin			
							set @DniVaz2=datediff(day,@DN,@d);
							update plis.dbo.CM_Vazenia
							set DNIVAZ=@DniVaz2,
								DNIPREPOC=(SELECT TOP 1 PREPHOD FROM [PLIS].[dbo].[CC_VAZINTERVAL] WHERE 
								@DniVaz2 BETWEEN DH AND HH)
							where DATVAZ=@d and CISTELATA=@t;
							fetch next from vaj into @d,@v;
							end
						close vaj 
						deallocate vaj;
					declare @i int;
					declare @y int;
					set @i=0;
					set @y=0;
					declare hranice cursor for
					select DH,PREPHOD,HH
					from plis.dbo.CC_VAZINTERVAL
					open hranice
					fetch next from hranice into @dh,@ph,@hh
					while @@FETCH_STATUS=0
					begin	
						declare vaj1 cursor for
						select DATVAZ,HMOT,DNIVAZ,DNIPREPOC
						from plis.dbo.CM_Vazenia
						where CISTELATA=@t;
						open vaj1
						fetch next from vaj1 into @d,@v,@dd, @dniprepoc;
						while @@FETCH_STATUS=0
						begin								
								if(@hmot is null) 
									begin 
									set @hmot=35;
									end					
								if(@hmotnar is null) 
									begin 
									set @hmot=35;
									end
								set @ZIVPRIR=(((@v-@hmotnar)/@DD1)*1000);
								if(@dh<=@dd and @dd<=@hh)
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/(@DD1-@Dpk))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/@DD1)*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/@DD1)*1000);
									set @hmot=@v;
								end
								set @ZIVPRIRPREPOC=(((@CHOMT-@hmotnar)/@dniprepoc)*1000);
								if(@ph='120' and @CHOMT>0)
								begin			
								set @hmotprepocpredos=@hmotnar;
								set @dniprepoc=0;	
								set @hmot2=@hmotnar;	
								set @DD3=0;							
								end	
								if(@ph='210' and @CHOMT>0)
								begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM PLIS.dbo.CM_Vazenia
									WHERE CISTELATA=@t AND DNIPREPOC<210 ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if(@ph='365' and @CHOMT>0)
								begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM PLIS.dbo.CM_Vazenia
									WHERE CISTELATA=@t AND DNIPREPOC<365 ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if(@ph='500' and @CHOMT>0)
								begin											
								declare predos_prepoc cursor for
								SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
								FROM PLIS.dbo.CM_Vazenia
								WHERE CISTELATA=@t AND DNIPREPOC<500 ORDER BY DATVAZ DESC
								open predos_prepoc
								fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
								close predos_prepoc
								deallocate predos_prepoc;
								end
								if (@hmotprepocpredos is not null and @dniprepoc is not null)
								begin
									set @PRIRPREPOC=(((@CHOMT-@hmotprepocpredos)/(@ph-@dniprepoc))*1000);
									set @prirastok=((@hmot - @hmot2)/(@dd -  @dd3))*1000;
								end
								else begin
									if (@ph is not null and @ph>0)
									begin 
									  set @PRIRPREPOC=(((@CHOMT - @hmotnar)/@ph)*1000);
									end								
								end																
								if ((@ph='120' or @ph='210' or @ph='365') and (@dniprepoc is not null) and
									(Select COUNT(DISTINCT CISTELATA) FROM plis.dbo.CM_Vazenia where (select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) 
									in (select KODPL from plis.dbo.CC_NormyMP) AND CISTELATA=@t)>=1
									)
								begin
									set	@RASTPAS=null;
									if (@CHOMT>(Select HMOTA FROM plis.dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from plis.dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='A';
										end
									if (@CHOMT>(Select TOP 1 HMOTB FROM plis.dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from plis.dbo.CM_Telata where CISTELATA=@t) AND
										DNIVAZ=@ph) and @CHOMT<(Select TOP 1 HMOTA FROM plis.dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from plis.dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='B';
										end
									 if (@CHOMT<(Select TOP 1 HMOTB FROM plis.dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from plis.dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										AND
										@CHOMT>(Select TOP 1 HMOTC FROM plis.dbo.CC_NormyMP where KODPL=(select TOP 1 PL1 from plis.dbo.CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from plis.dbo.CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										)
										begin
											set @rastpas='C';
										end
								end
								if(@prirastok is not null and @CHOMT>0)
								begin
									update plis.dbo.CM_Vazenia 
									set HMOTPREPOC=@CHOMT,DNIPREPOC=@ph,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, PRIRPREPOC=@PRIRPREPOC, ZIVPRIRPREPOC=@ZIVPRIRPREPOC, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
									set @prirastok=null;
									set @hmotprepocpredos=null;
									set	@dniprepoc=null;
									set @CHOMT=0;
								end
							fetch next from vaj1 into @d,@v,@dd, @dniprepoc;
						end
						set @Vpk=@hmot;
						set @Dpk=@DD1;
						set @DD1=NUll;
						close vaj1;
						deallocate vaj1;
					fetch next from hranice into @dh,@ph,@hh
					end
					close hranice
					deallocate hranice
					set @i=@i+1;
					--print N'telata '+convert(varchar,@t);
				set @Vpk=null;
				set @Dpk=NUll;
				fetch next from telata into @t;
			end
	close telata;
	deallocate telata; 
END


go

-- Zoznam teliat pre chov za mesiac
-- vstupne parametre: chov, rok, mesiac 
--
-- Autor: Roman Rafaj, 20.10.2015
-- verzia	1.0: uvodna proc
--			Redmine: #2057
--			1.1: 1.2.2016 oprava pocitania kusov + dekada
--			1.2: 4.3.2016 pridanie O_PK byka
--			1.3: 21.6.2016 oprava LinReg otca matky		
--			1.4: 23.6.2016  - C_Zoznam_teliat_za_mesiac1 - testovacia verzia / nezapisuju sa data pri spracovani
--			1.5: 19.7.2016 - Uprava embrytransferu ET, 1=A, null/0 = null
--			1.6: 20.7.2016	- Oprava vstupov pre spracinsert a spracupdate - zobratie vzdy posledneho hlasenia
--			1.7: 10.2.2017	- oprava vo formate pola ET	
--			1.8: 25.7.2017	- zrusenie dekad
--			1.9: 31.10.2017 - rozsirenie vyberu teliat(( sch.IDR = t.SPRACUPDATE AND t.SPRACINSERT is null ))
 
CREATE PROCEDURE [dbo].[C_Zoznam_teliat_za_mesiac] 
	@chov varchar(9),
	@rok INT,
	@mesiac INT--,
	--@dekada INT
	
 AS

	SET NOCOUNT ON -- vypnutie message riadkov
	SET ANSI_WARNINGS OFF --vyputie message chyb pri agregacii
 
 BEGIN
 
 DECLARE @aktualny_rok INT,  @start_day INT,  @end_day INT,  @start DATE, @end DATE, @IDR BIGINT
 DECLARE @text VARCHAR(200) = 'Start OK. '
 SET @aktualny_rok = YEAR(GETDATE())

	
	-- debug informacie
	DECLARE @datum_start datetime = getdate()
	--


	SELECT @start = /*CASE @dekada
	--WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 1 THEN DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN*/ DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	/*END*/

	SELECT @end =/* CASE @dekada
	WHEN 1 THEN */ EOMONTH(@start) -- koniec dekady
	/*WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	END*/

	--PRINT 'Zaciatok dekady:	' + CONVERT(VARCHAR,@start);
	--PRINT 'Koniec dekady:		' + CONVERT(VARCHAR,@end);
	--PRINT '--------------------------------------';
	

 DECLARE @vymazcount int
 SELECT @vymazcount = COUNT(*) FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac --AND dekada = @dekada
 DELETE FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac --AND dekada = @dekada

 PRINT 'Vymazal som ' + CAST(@vymazcount AS VARCHAR) + ' teliat z tabulky CR_Zoznam_teliat_za_mesiac....'

 SET @text = @text + 'Vymazanie OK. '
 
 DECLARE @zoznam TABLE (cistelata VARCHAR(14) , matka VARCHAR(14) , IDR BIGINT , chov VARCHAR(9) ,  datnar DATE , pohlavie VARCHAR(2) , SI BIGINT , SU BIGINT )

 PRINT 'Zaciatok obdobia: ' + CONVERT(VARCHAR, @start)
 PRINT 'Koniec obdobia: ' + CONVERT(VARCHAR, @end)


 SELECT @IDR = IDR
 FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY
 WHERE  
		--( KONIEC BETWEEN @start AND @end )
		ROK = @rok AND MESIAC = MESIAC --AND DEKADA = @dekada
        AND CHOV = @chov

		PRINT 'informacia o IDR...'
		PRINT 'IDR Vstupov: ' + CONVERT(VARCHAR, @IDR)

		SET @text = @text + ' IDR: ' + CONVERT(VARCHAR, @IDR) + ' '


 INSERT INTO @zoznam
        ( cistelata , matka ,IDR , chov ,
          datnar , pohlavie , SI , SU )
        SELECT  t.CISTELATA , t.MATKA , sch.IDR ,
                sch.CHOV , t.DATNAR , t.POHLAVIE ,
                t.SPRACINSERT , t.SPRACUPDATE
        FROM    VstupyPLIS.dbo.CP_SPRAC_CHOVY sch
                INNER JOIN plis.dbo.CM_Telata t ON ( sch.IDR = t.SPRACINSERT ) OR ( sch.IDR = t.SPRACUPDATE AND t.SPRACINSERT < t.SPRACUPDATE ) or ( sch.IDR = t.SPRACUPDATE AND t.SPRACINSERT is null )--rozsirene 31.10.2017 aby aj ked je insert null zobralo update
        WHERE   CHOV = @chov AND IDR = @IDR



		
		--SELECT * FROM @zoznam -- debug zobrazenie

		DECLARE @pocet_teliat INT
		SELECT @pocet_teliat = COUNT(*) FROM @zoznam
		SET @text = @text + ' Pocet teliat: ' + CONVERT(VARCHAR, @pocet_teliat) + ' '

		PRINT @text
		
		INSERT INTO plis.dbo.CR_Zoznam_teliat_za_mesiac
		(chov, Cislo_Telata, Dat_Nar, Pohlavie, ET, PK, Plemeno
		, Preukaz, Farba, Matka, Por_Lakt, teln, M_PK, MM, OM, MO, OO, O_Meno, Lin_Reg, Otec, OM_Lin_Reg, OO_Lin_Reg
		,mesiac, rok, /*dekada,*/ typ_vlozenia, IDR
		, O_PK
		)
		(		
		SELECT
		@chov AS chov
		,t.CISTELATA AS Cislo_Telata
		,t.DATNAR AS Dat_Nar
		,p.SKRATKA AS Pohlavie
		,CASE t.ZNAKET
			WHEN 1 THEN 1
			WHEN NULL THEN NULL
			WHEN 0 THEN NULL
			END
		AS ET
		,dbo.c_telaPlemennaKniha(z.cistelata, z.matka, z.datnar) AS PK
		
		,t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2 + '-' + CONVERT(VARCHAR, ISNULL(t.KR2, 0)) + ' ' + ISNULL(t.PL3
               + '-' + CONVERT(VARCHAR, ISNULL(t.KR3, 0)) + ' ' + ISNULL(t.PL4 + '-' + CONVERT(VARCHAR, ISNULL(t.KR4, 0)) + ' ' + ISNULL(t.PL5,
         ''), ''), ''),'') AS Plemeno
		
		,povod.PRETLAC AS Preukaz
		,t.FARBA AS Farba
		,t.MATKA AS Matka
		,t.PORLAK AS Por_Lakt
		,t.DOBANOS AS teln
		,k.PK AS M_PK
		,k.MA AS MM
		,k.OUSCIS AS OM
		,b.MATKA AS MO
		,b.OTUSCIS AS OO
		,b.MENO AS O_Meno
		--,om.LIN + '-' + RIGHT(1000 + om.REG, 3) AS Lin_Reg
		--,case when om.LIN = 'NEZ' then 'NEZ'
		--	else (om.LIN + '-' + RIGHT('000' + CONVERT(varchar, om.REG), 3) ) end
		--	AS Lin_Reg
		,case when t.OTECLIN = 'NEZ' then 'NEZ'
			else (t.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, t.OTECREG), 3) ) end
			AS Lin_Reg
		,t.OUC AS otec
		--,k.OTECLIN + '-' + RIGHT(1000 + k.OTECREG, 3) AS OM_Lin_Reg
		,case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS OM_LIN_REG
		--,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3)) AS OO_LIN_REG
		,case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS OO_LIN_REG
		,@mesiac AS MESIAC
		,@rok AS ROK
		/*,@dekada AS DEKADA*/
		,IIF(z.SI = z.SU, '1', IIF(z.SI < z.SU OR z.SI IS NULL, '2', '3')) AS typ_vlozenia
		,@IDR AS IDR
		,b.PK 
		FROM   @zoznam z
        --LEFT JOIN plis.dbo.CM_Telata t ON ( t.CISTELATA = z.cistelata OR ( t.MATKA = z.matka AND t.DATNAR = z.datnar AND t.POHLAVIE = z.pohlavie  )) -- oprava kvoli zrychleniu -- 20170831
        --LEFT JOIN (select * from plis.dbo.CM_Telata where DOVVYR is null) t ON ( t.CISTELATA = z.cistelata OR ( t.MATKA = z.matka AND t.DATNAR = z.datnar AND t.POHLAVIE = z.pohlavie  )) -- oprava kvoli zrychleniu -- 20170831
        LEFT JOIN (select * from plis.dbo.CM_Telata where  DOVVYR is null) t ON ( t.CISTELATA = z.cistelata or ( t.MATKA = z.matka AND t.DATNAR = z.datnar AND t.POHLAVIE = z.pohlavie 
			and (( z.IDR = t.SPRACINSERT ) OR ( z.IDR  = t.SPRACUPDATE AND t.SPRACINSERT < t.SPRACUPDATE ) or ( z.IDR  = t.SPRACUPDATE AND t.SPRACINSERT is null)))) --13.11.2017 doplnenie porovnania s IDR...pri dvojickach vzbikali problemy 
		LEFT JOIN plis.dbo.CM_Krava k ON ( t.MATKA = k.CISKRAVY )
        LEFT JOIN plis.dbo.CM_Naplak n ON ( k.CISKRAVY = n.CISKRAVY OR ( k.CISKRAVY = n.CISKRAVY AND n.DATOTEL = t.DATNAR ))
        LEFT JOIN plis.dbo.CM_Byci b ON ( t.OUC = b.USCISLO )
	    LEFT JOIN plis.dbo.CC_Pohlavie p ON ( t.POHLAVIE = p.KOD )
        LEFT JOIN plis.dbo.CC_Povod povod ON ( t.PREUKAZ = povod.KOD )
        LEFT JOIN plis.dbo.CM_Byci om ON ( om.USCISLO = t.OUC )
        LEFT JOIN plis.dbo.CM_Byci oo ON ( oo.USCISLO = b.OTUSCIS ) 
		--where t.DOVVYR is null  -- oprava kvoli zrychleniu -- 20170831
		where t.DOVVYR is null and t.DATVYR is null and not(t.cistelata is null and t.datnar is null and t.matka is null) -- oprava kvoli zrychleniu -- 20170831
		)

		DECLARE @insertcount int
		SELECT @insertcount = COUNT(*) FROM plis.dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac --AND dekada = @dekada
		PRINT 'Insertol som ' + CAST(@vymazcount AS VARCHAR) + ' teliat do tabulky CR_Zoznam_teliat_za_mesiac....'
		PRINT 'pre chov: ' + CAST(@chov AS VARCHAR) + ' s parametrami:' + CAST(@rok AS VARCHAR) + '/' + CAST(@mesiac AS VARCHAR) --+ '/' +CAST(@dekada AS VARCHAR)
		PRINT ''

		SET @text = @text + ' Vlozenych do DB: ' + CONVERT(VARCHAR, @insertcount) + ' '

		;WITH CTE AS(
		 SELECT Cislo_Telata, chov, mesiac, rok, --dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY Cislo_Telata ORDER BY Cislo_Telata)
		 FROM dbo.CR_Zoznam_teliat_za_mesiac WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac /*AND dekada = @dekada*/ AND Cislo_Telata IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1

		PRINT 'SELECT * FROM CR_Zoznam_teliat_za_mesiac WHERE chov='+ CAST(@chov AS VARCHAR) + ' AND rok ='+CAST(@rok AS VARCHAR) + ' AND mesiac=' + CAST(@mesiac AS VARCHAR) --+ ' AND dekada=' +CAST(@dekada AS VARCHAR)
		EXEC C_Zoznam_teliat_za_mesiac_sumar @chov, @rok, @mesiac--, @dekada


		SET @text = @text + ' Koniec PROC OK. '

		-- debug informacie
		DELETE FROM plis.dbo.CR_Zoznam_teliat_SPRAC WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac --AND dekada = @dekada
		DECLARE @datum_end datetime = getdate()
		INSERT INTO CR_Zoznam_teliat_SPRAC (chov, rok, mesiac, /*dekada,*/ datum_start, datum_end, info)
		VALUES
		(@chov, @rok, @mesiac, /*@dekada,*/ @datum_start, @datum_end, @text)
		--

		END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[Function_SP_PocJarMBar]
(	
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT     TOP (100) PERCENT p.KROKR, p.PODNIK, p.STADO, v.roknar, STR(YEAR(GETDATE()) - v.roknar, 2) AS vek, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonjar < v.pocjar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocjar, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND (v.pbonjar < v.pocjar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesjar, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocjah, 
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesjah, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmbar < v.pocmbar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8) THEN 1 ELSE 0 END) AS pocmbar2, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND (v.pbonmbar < v.pocmbar / 2) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 >= 8
 ) THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesmbar2, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN 1 ELSE 0 END) AS pocmbar1,
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) AND 
 (DATEDIFF(dayofyear, Datnar, getdate()) / 30.42 < 8) THEN datediff(month,datnar,getdate()) ELSE 0 END) AS svekmesmbar1
FROM         dbo.SM_POTOMOK AS p LEFT OUTER JOIN
     dbo.View_SP_PocPot AS v ON p.KROKR = v.KROKR AND p.PODNIK = v.PODNIK AND p.STADO = v.STADO AND p.RocNar = v.RocNar 
WHERE p.krokr+p.podnik+p.stado=@chovatel
GROUP BY p.KROKR, p.PODNIK, p.STADO, v.roknar
ORDER BY p.KROKR, p.PODNIK, p.STADO, v.roknar
)
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_UzavreteLaktSkladba_Kravy] 
	
AS
BEGIN
	
	SET NOCOUNT ON;
	/*************************************
		! first staf of creating table for displaing values of (6) Uzávierka KÚHD posledných uzavretých laktácií  !
		
		using table:CM_Krava,CM_Laktacie,

		changing table: CP_KravaPoslednaUzavLakt

		used for: next step of (6) Uzávierka KÚHD posledných uzavretých laktácií 

	******************************************/
	TRUNCATE TABLE CP_KravaPoslednaUzavLakt

	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from CM_Krava
	where dovvyr is null
	and priznakku='1'

	open chova
	fetch next from chova into @chov

	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							--print @ciskrava

							set @maxLakt=(select max(PORLAK) from CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from CM_Krava as k
											left join
											CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into CP_KravaPoslednaUzavLakt values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt),Null,Null)
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				--print N'Done'
			end
			close chova;
			deallocate chova;
	
END
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Kravy_21_Chov] (@chovatel varchar(9),@kolko as int)
AS
BEGIN
	
	--TRUNCATE TABLE [PLIS].[dbo].CP_Mlieko_Kravy_21

	declare @c varchar(9);
	declare @ouc as varchar(14);
	declare @o as varchar(7);
	declare @meno as varchar(50)
	declare @nazlin as varchar (30)
	declare @plemena as varchar(80)
	declare @poc12 as int;
	declare @pocnad12 as int;
	declare @po412P as float;
	declare @po4nad12P as float;
	declare @s as int
	declare @pocOtec as int;
	declare @percOtec as float;
	
	set @c=@chovatel
	
	declare @i as int
	set @i=@kolko;



	create table #aTable  
	(
	[Chovatel] varchar(9)
      ,[OUC]varchar(14)
      ,[otec]varchar(8)
      ,[MENO]varchar(70)
      ,[nazlin]varchar(70)
      ,[plemena]varchar(150)
      ,[Poc12] int
      ,[PocNad12] int
      ,[po4et12Perc] float
      ,[po4etNad12Perc] float
      ,[po4et] int
      ,[preOtec] int
      ,[percOtec] float
	  )

	/*declare chov cursor for
	SELECT distinct substring( @chovatel,1,@kolko)
	 FROM [PLIS].[dbo].[View_CP_Mlieko_zoznamJalovic]

	open chov
	fetch next from chov into @c

	while @@FETCH_STATUS=0
	begin

		declare work cursor for

		
		SELECT DISTINCT t.OUC, t.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, t.OTECREG), 3) AS otec, 
		k.MENO, l.nazlin, 
		ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
		+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') + '  ' 
		+ ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + 
		CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, 
		p1.po4et AS Poc12, p2.po4et AS PocNad12, 
		CONVERT (float, p1.po4et * 100) * 1.00 / NULLIF (d1.pocet, 0) AS po4et12Perc, 
		CONVERT (float, p2.po4et * 100) * 1.00 / NULLIF (d2.pocet, 0) AS po4etNad12Perc, 

	    NULL AS po4et, 

		ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0) AS preOtec, 
		CONVERT (float, (ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0)) * 100) * 1.00 / 
		NULLIF (ISNULL(d1.pocet, 0) + ISNULL(d2.pocet, 0), 0) AS percOtec

			FROM plis.dbo.CM_Telata AS t 
		LEFT OUTER JOIN plis.dbo.CM_Byci AS k 
		ON isnull(t.OUC, '0') = isnull(k.USCISLO, '0') 
		LEFT OUTER JOIN (
						SELECT     COUNT(*) AS po4et, OUC, OTECLIN, OTECREG,
						substring(CHOVATEL,1,convert(int,@kolko)) as chovatel
						FROM         dbo.CM_Telata AS t
						WHERE     (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 <= 12)
						GROUP BY substring(CHOVATEL,1,convert(int,@kolko)), OUC, OTECLIN, OTECREG
		) AS p1 
		ON isnull(t.OUC, '0') = isnull(p1.OUC, '0') 
		AND SUBSTRING(t.CHOVATEL,1,convert(int,@kolko)) = p1.CHOVATEL 
		and t.OTECLIN=p1.OTECLIN 
		and t.OTECREG=p1.OTECREG

		LEFT OUTER JOIN (SELECT     COUNT(*) AS po4et, OUC, OTECLIN, OTECREG, 
		substring(CHOVATEL,1,convert(int,@kolko)) as chovatel
							FROM         dbo.CM_Telata AS t
							WHERE     (DOVVYR IS NULL) AND (CISTELATA IS NOT NULL) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (POHLAVIE LIKE '%2') 
							AND (POHLAVIE <> '62') AND (PRIZNAKKU = '1') 
							AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN
                       13 AND 38)
							GROUP BY substring(CHOVATEL,1,convert(int,@kolko)), OUC, OTECLIN, OTECREG) AS p2

		 ON isnull(t.OUC, '0') = isnull(p2.OUC, '0') 
		 AND substring(t.CHOVATEL,1,convert(int,@kolko)) = p2.CHOVATEL 
		 and t.OTECLIN=p2.OTECLIN 
		 and t.OTECREG=p2.OTECREG

		LEFT OUTER JOIN plis.dbo.CC_Linie AS l 
		ON k.LIN = l.lin 

		LEFT OUTER JOIN (
						SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,convert(int,@kolko)) as chovatel
						FROM         dbo.CM_Telata AS t
						WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) 
						AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') 
							AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 0 AND 12)
						GROUP BY substring(CHOVATEL,1,convert(int,@kolko))
		) AS d1 
		ON substring(t.CHOVATEL,1,convert(int,@kolko)) = d1.CHOVATEL 

		LEFT OUTER JOIN (
						SELECT     COUNT(*) AS pocet, substring(CHOVATEL,1,convert(int,@kolko))as chovatel
						FROM         dbo.CM_Telata AS t
						WHERE     (DOVVYR IS NULL) AND (POHLAVIE LIKE '%2') AND (POHLAVIE <> 62) AND (CISTELATA NOT IN
                          (SELECT     CISKRAVY
                            FROM          dbo.CM_Naplak)) AND (PRIZNAKKU = '1') AND (DATEDIFF(day, DATNAR, GETDATE()) / 30.42 BETWEEN 13 AND 38)
						GROUP BY substring(CHOVATEL,1,convert(int,@kolko))
		) AS d2 
		ON substring(t.CHOVATEL,1,convert(int,@kolko)) = d2.CHOVATEL 

		WHERE (t.CHOVATEL like substring(@c,1,convert(int,@kolko))+'%') AND (t.DOVVYR IS NULL) 
		AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> '62') 
		AND (t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak AS CM_Naplak_1)) 
		AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38) AND (t.PRIZNAKKU = '1')


		open work
		fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 

		while @@FETCH_STATUS=0
		begin
			insert into #aTable values (@c,@ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec)
			fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 
		end

		close work
		deallocate work;

	fetch next from chov into @c
	end

	close chov
	deallocate chov

	select * from #aTable
	drop table #aTable*/
	
	
	
	
	SELECT DISTINCT t.OUC, t.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, t.OTECREG), 3) AS otec, 
		k.MENO, l.nazlin, 
		ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
		+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') + '  ' 
		+ ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + 
		CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, 
		p1.po4et AS Poc12, p2.po4et AS PocNad12, 
		CONVERT (float, p1.po4et * 100) * 1.00 / NULLIF (d1.pocet, 0) AS po4et12Perc, 
		CONVERT (float, p2.po4et * 100) * 1.00 / NULLIF (d2.pocet, 0) AS po4etNad12Perc, 
		 NULL AS po4et, 

		ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0) AS preOtec, 
		CONVERT (float, (ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0)) * 100) * 1.00 / 
		NULLIF (ISNULL(d1.pocet, 0) + ISNULL(d2.pocet, 0), 0) AS percOtec

			FROM plis.dbo.CM_Telata AS t 
		LEFT OUTER JOIN plis.dbo.CM_Byci AS k 
		ON isnull(t.OUC, '0') = isnull(k.USCISLO, '0') 
		LEFT OUTER JOIN plis.dbo.View_cp_telataPoOtecDo12m AS p1 
		ON isnull(t.OUC, '0') = isnull(p1.OUC, '0')
		 AND substring(t.CHOVATEL,1,@i) = p1.CHOVATEL 
		 and t.OTECLIN=p1.OTECLIN 
		 and t.OTECREG=p1.OTECREG
		LEFT OUTER JOIN plis.dbo.View_CP_telataPoOtcoNad12m AS p2 
		ON isnull(t.OUC, '0') = isnull(p2.OUC, '0') 
			AND substring(t.CHOVATEL,1,@i) = p2.CHOVATEL 
			and t.OTECLIN=p2.OTECLIN 
			and t.OTECREG=p2.OTECREG
		LEFT OUTER JOIN plis.dbo.CC_Linie AS l ON k.LIN = l.lin 
		LEFT OUTER JOIN plis.dbo.View_cp_telataDo12mes AS d1 
		ON substring(t.CHOVATEL,1,@i) = d1.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.View_CP_TelataNad12mes AS d2 
		ON substring(t.CHOVATEL,1,@i) = d2.CHOVATEL 

		WHERE (t.CHOVATEL like @c+'%') AND (t.DOVVYR IS NULL) 
		AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> '62') 
		AND (t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak AS CM_Naplak_1)) 
		AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38) AND (t.PRIZNAKKU = '1')


		
	
	

END
go




-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 25.11.2011
-- Description:	zistenie otca telata, spravnosti povodu a doby nosenia prostrednictvom matky a datumu jej otelenia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_zisti_povod_telata] 

	@ParCisloKravy varchar (14),
	@ParDatumOtelenia date,
	@ParPohlavieTelata varchar (2),
	@ParIDByka varchar (15) output,
	@ParPovod varchar (1) output,
	@ParDobaNos int output
AS
BEGIN
	declare @IDAINZabr date 
	declare @OtecLinZabr varchar (3)
	declare @OtecRegZabr varchar (3)
	declare @Spor bit
	declare @DobaNos int
	declare @HranDol int
	declare @HranHor int
	declare @DobaDol int
	declare @DobaHor int
	declare @TypPlem varchar (3)
	
	set @ParIDByka = null
	set @ParPovod = null
	
	set @Spor = 0
	
	-- najdi inseminaciu - krava je telna
	select @IDAINZabr = IDAIN, @OtecLinZabr = IBLIN, @OtecRegZabr = IBREG from [PLIS].[dbo].[CM_Insvyk] as t1
		where t1.IPLCA = @ParCisloKravy
		and t1.IDAIN = (SELECT MAX(t2.IDAIN)
		FROM [PLIS].[dbo].[CM_Insvyk] as t2
		where t2.IPLCA = t1.IPLCA
		and (t2.IVYSE = '7' or t2.IVYSE = '8' or t2.IVYSE = '9')
		-- pridane kriterium vyberu inseminacii podla datumu (2016-02-25)
		and t2.IDAIN between DATEADD(month, -12, GETDATE()) and DATEADD(month, -6, GETDATE()))


	-- ide o reinseminaciu inym bykom
	if (select COUNT(*) from [PLIS].[dbo].[CM_Insvyk] where ABS(DATEDIFF(DAY, IDAIN, @IDAINZabr)) <= 16 and IPLCA = @ParCisloKravy and
		(@OtecLinZabr != IBLIN or @OtecRegZabr != IBREG)) > 0
	set @Spor = 1
	
	-- doba nosenia
	set @DobaNos = DATEDIFF(day, @IDAINZabr, @ParDatumOtelenia)
	
	-- urcenie dolnej hranice porovnavacieho intervalu
	set @TypPlem = (select TYPPLEM from PLIS.dbo.CM_Krava where CISKRAVY = @ParCisloKravy)
	if @TypPlem in (select '11'
					union select '12'
					union select '13'
					union select '14'
					union select '51'
					union select '52'
					union select '53'
					union select '54'
					union select '21'
					union select '22'
					union select '23'
					)
		set @HranDol = 269
	else 
	if @TypPlem in (select '60'
					union select '61'
					union select '95'
					union select '99'
					union select '84'
					union select '88'
					union select '94'
					union select '98'
					union select '73'
					union select '77'
					union select '83'
					union select '87'
					union select '93'
					union select '97'
					union select '62'
					union select '66'
					union select '72'
					union select '76'
					union select '82'
					union select '86'
					union select '92'
					union select '96'
					union select '70'
					union select '80'
					union select '90'
					union select '71'
					union select '81'
					union select '91'

					)
		set @HranDol = 260
	else
		set @HranDol = 263
		
	-- urcenie hornej hranice porovnavacieho intervalu	
	if @TypPlem in (select '11'
					union select '12'
					union select '13'
					union select '14'
					union select '51'
					union select '52'
					union select '53'
					union select '54'
					union select '21'
					union select '22'
					union select '23')
		set @HranHor = 310
	else 
	if @TypPlem in (select '60'
					union select '61'
					union select '95'
					union select '99'
					union select '84'
					union select '88'
					union select '94'
					union select '98'
					union select '73'
					union select '77'
					union select '83'
					union select '87'
					union select '93'
					union select '97'
					union select '62'
					union select '66'
					union select '72'
					union select '76'
					union select '82'
					union select '86'
					union select '92'
					union select '96'
					union select '70'
					union select '80'
					union select '90'
					union select '71'
					union select '81'
					union select '91')
		set @HranHor = 303
	else
		set @HranHor = 310

	-- urcenie dolnej doby	
	if @ParPohlavieTelata in (select '11'
								union select '22'
								union select '31'
								union select '32'
								union select '41'
								union select '42'
								union select '26'
								union select '51'
								union select '52'
								union select '62'
								union select '63')
		set @DobaDol = @HranDol - 6
	else
		set @DobaDol = @HranDol				

	-- urcenie hornej doby	
	if @ParPohlavieTelata in (select '11'
								union select '22'
								union select '31'
								union select '32'
								union select '41'
								union select '42'
								union select '26'
								union select '51'
								union select '52'
								union select '62'
								union select '63')
		set @DobaHor = @HranHor - 6
	else
		set @DobaHor = @HranHor			
		
	-- urcenie spravnosti povodu
	if @Spor = 1
		set @ParPovod = '2'
	else if @OtecLinZabr is null and @OtecRegZabr is null
		set @ParPovod = '5'
	else if	@DobaNos < @DobaDol or @DobaNos > @DobaHor
		set @ParPovod = '3'
	else
		set @ParPovod = '1'
	
	-- urcenie ID byka
	set @ParIDByka = (select TOP 1 IDBYKA from PLIS.dbo.CM_Byci where @OtecLinZabr = LIN and @OtecRegZabr = REG)	
	
	set @ParDobaNos = @DobaNos
END


go

-- =============================================
-- Author:		<Author,,Machynova>
-- Create date: <Create Date,,23.2.2015>
-- Description:	<Description,,pre zadaneho capa vytvori tabulku s poctom prip.a okot.koz a narodenych kozliat>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_RokyCap] 
(	
	-- Add the parameters for the function here
 @pcapcis varchar(8)	)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.KrOkr,b.Podnik,b.stado,b.RokEv1,b.rokev2,sum(1) as pocprip, 
 sum( case when (b.datokot is not NULL) or (b.narod>0) then 1 else 0 end) as pocokot, SUM(b.narod) AS bnarod, sum(b.narcap) as bnarcap,
 sum(b.odchov) as bodchov, sum(b.odchCap) as bOdchCap, sum(b.NaChov) as bNaChov,
 sum(b.NaChovCap) as bNaChovCap,m.nazov
FROM View_GP_PremKoz b LEFT OUTER JOIN dbo.View_NM_MenStadKo m
 on b.KrOkr=m.KrOkr and b.Podnik=m.podnik and b.stado=m.CHOV 
 WHERE  (b.capcis= @pcapcis)
GROUP BY b.KrOkr,b.Podnik,b.Stado,b.RokEv1,b.RokEv2,m.nazov
)
go


CREATE procedure [dbo].[Rocenka_MPHD_6]
	
	@rok varchar(4)

as 
begin

	select 
	case when plemeno ='AA' then 1
				when plemeno ='BdA' then 2
				--when plemeno ='BBM' then 3
				when plemeno ='Gal' then 3
				when plemeno ='HEM' then 4
				when plemeno ='High' then 5
				when plemeno ='Char' then 6
				when plemeno ='Lim' then 7
				--when plemeno ='SDM' then 8
				--when plemeno ='Piem' then 8
				when plemeno ='Pin' then 8 
				when plemeno ='Sim_maso' then 9
				when plemeno ='Slst' then 10
				when plemeno ='Osta' then 11
				when plemeno ='Nez' then 12
				when plemeno ='SR' then 13 end  as poradie,
	
	case when plemeno ='AA' then 'Aberdeen Angus'
				when plemeno ='BdA' then 'Blonde d´Aquitaine'
				when plemeno ='BBM' then 'Belgické modré'
				when plemeno ='Gal' then 'Galloway'
				when plemeno ='High' then 'Highland'
				when plemeno ='Char' then 'Charolais'
				when plemeno ='Lim' then 'Limousine'
				when plemeno ='Hem' then 'Hereford'
				when plemeno ='Sim_maso' then 'Simentál mäsový'
				when plemeno ='Piem' then 'Piemontese'
				when plemeno ='Pin' then 'Pinzgauské'
				when plemeno ='SDM' then 'Maďarský stepný dobytok'
				when plemeno ='Slst' then 'Slovenské strakaté'
				when plemeno ='Osta' then 'Ostatné plemená'
				when plemeno ='Nez' then 'Neznáme'
				when plemeno ='SR' then 'Výsledky za Slovensko' end as	plemeno, 
	
	vek_1OT, medz_2otel, medz_3otel, medz_4otel, medz_5otel, medz_celk_otel, rok
	
	from Roc_MPHD_Tab_6
	where @rok = rok
	order by poradie

	end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 24.11.2017
-- Description:	Vyhladanie retazca v procedurach, funkciach a view...
-- =============================================
CREATE PROCEDURE dbo.VyhladavanieSQL
	@Search varchar(255)
AS
BEGIN
		
	--SET @Search='CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena'
	SELECT 
		o.name AS Object_Name,o.type_desc
		FROM sys.sql_modules        m 
			INNER JOIN sys.objects  o ON m.object_id=o.object_id
		WHERE m.definition Like '%'+@Search+'%'
		ORDER BY 2,1
END
go

-- DROP PROCEDURE sql2pdf
CREATE PROCEDURE sql2pdf
   @filename VARCHAR(100) 
AS 
  CREATE TABLE #pdf (idnumber INT IDENTITY(1,1)
  		    ,code NVARCHAR(200))
  CREATE TABLE #xref (idnumber INT IDENTITY(1,1)
  		    ,code VARCHAR(30))
  CREATE TABLE #text (idnumber INT IDENTITY(1,1)
  		    ,code VARCHAR(200))

  DECLARE @end VARCHAR(7),
  	@beg   VARCHAR(7),
  	@a1    VARCHAR(3),
  	@a2    VARCHAR(3),
  	@ad    VARCHAR(5),
  	@cr    VARCHAR(8),
  	@pr    VARCHAR(9),
  	@ti    VARCHAR(6),
  	@xstr  VARCHAR(10),
  	@page  VARCHAR(8000),
	@pdf   VARCHAR(100),
	@trenutniRed NVARCHAR(200),
  	@rows   INT,
  	@ofset  INT,
  	@len    INT,
  	@nopg   INT,
        @fs 	INT,
	@ole    INT,
	@x 	INT,
	@file   INT,
  	@object INT
  SELECT @pdf = 'C:\' + @filename + '.pdf'  
  SET @page = ''
  SET @nopg = 0
  SET @object = 6
  SET @end = 'endobj'
  SET @beg = ' 0 obj'
  SET @a1 = '<<'
  SET @a2 = '>>'
  SET @ad = ' 0 R'
  SET @cr = CHAR(67) + CHAR(114) + CHAR (101) + CHAR(97) + CHAR(116) + CHAR (111) + CHAR(114)
  SET @pr = CHAR(80) + CHAR(114) + CHAR (111) + CHAR(100) + CHAR(117) + CHAR (99 ) + CHAR(101) + CHAR(114)
  SET @ti = CHAR(84) + CHAR(105) + CHAR (116) + CHAR(108) + CHAR(101)
  SET @xstr = ' 00000 n'
  SET @ofset = 396  
  INSERT INTO #xref(code) VALUES ('xref')
  INSERT INTO #xref(code) VALUES ('0 10')
  INSERT INTO #xref(code) VALUES ('0000000000 65535 f')
  INSERT INTO #xref(code) VALUES ('0000000017' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000790' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000869' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000144' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000247' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000321' + @xstr)
  INSERT INTO #xref(code) VALUES ('0000000396' + @xstr)  
  INSERT INTO #pdf (code) VALUES ('%' + CHAR(80) + CHAR(68) + CHAR (70) + '-1.2')
  INSERT INTO #pdf (code) VALUES ('%ÓÓÓÓ')
  INSERT INTO #pdf (code) VALUES ('1' + @beg)
  INSERT INTO #pdf (code) VALUES (@a1)
  INSERT INTO #pdf (code) VALUES ('/' + @cr + ' (Ivica Masar ' + CHAR(80) + CHAR(83) + CHAR (79) + CHAR(80) + CHAR(68) + CHAR (70) + ')')
  INSERT INTO #pdf (code) VALUES ('/' + @pr + ' (stored procedure for ms sql  pso@vip.hr)')
  INSERT INTO #pdf (code) VALUES ('/' + @ti + ' (SQL2' + CHAR(80) + CHAR(68) + CHAR (70) + ')')
  INSERT INTO #pdf (code) VALUES (@a2)
  INSERT INTO #pdf (code) VALUES (@end)
  INSERT INTO #pdf (code) VALUES ('4' + @beg)
  INSERT INTO #pdf (code) VALUES (@a1)
  INSERT INTO #pdf (code) VALUES ('/Type /Font')
  INSERT INTO #pdf (code) VALUES ('/Subtype /Type1')
  INSERT INTO #pdf (code) VALUES ('/Name /F1')
  INSERT INTO #pdf (code) VALUES ('/Encoding 5' + @ad)
  INSERT INTO #pdf (code) VALUES ('/BaseFont /Courier')
  INSERT INTO #pdf (code) VALUES (@a2)
  INSERT INTO #pdf (code) VALUES (@end)
  INSERT INTO #pdf (code) VALUES ('5' + @beg)
  INSERT INTO #pdf (code) VALUES (@a1)
  INSERT INTO #pdf (code) VALUES ('/Type /Encoding')
  INSERT INTO #pdf (code) VALUES ('/BaseEncoding /WinAnsiEncoding')
  INSERT INTO #pdf (code) VALUES (@a2)
  INSERT INTO #pdf (code) VALUES (@end)
  INSERT INTO #pdf (code) VALUES ('6' + @beg)
  INSERT INTO #pdf (code) VALUES (@a1)
  INSERT INTO #pdf (code) VALUES ('  /Font ' + @a1 + ' /F1 4' + @ad + ' ' + @a2 + '  /ProcSet [ /' + CHAR(80) + CHAR(68) + CHAR (70) + ' /Text ]')
  INSERT INTO #pdf (code) VALUES (@a2)
  INSERT INTO #pdf (code) VALUES (@end)
  INSERT INTO #text(code) (SELECT code FROM psopdf)
  SELECT @x = COUNT(*) FROM #text
  SELECT @x = (@x / 60) + 1
  WHILE  @nopg < @x
    BEGIN
      DECLARE SysKursor  INSENSITIVE SCROLL CURSOR 
      FOR SELECT SUBSTRING((code + SPACE(81)), 1, 80) FROM #text WHERE idnumber BETWEEN ((@nopg * 60) + 1) AND ((@nopg + 1) * 60 )
      FOR READ ONLY    
      OPEN SysKursor
      FETCH NEXT FROM SysKursor INTO @trenutniRed
      SELECT @object = @object + 1
      SELECT @page = @page +  ' ' + CAST(@object AS VARCHAR) + @ad
      SELECT @len = LEN(@object) + LEN(@object + 1)
      INSERT INTO #pdf (code) VALUES (CAST(@object AS VARCHAR)  + @beg)
      INSERT INTO #pdf (code) VALUES (@a1)
      INSERT INTO #pdf (code) VALUES ('/Type /Page')
      INSERT INTO #pdf (code) VALUES ('/Parent 3' + @ad)
      INSERT INTO #pdf (code) VALUES ('/Resources 6' + @ad)
      SELECT @object = @object + 1
      INSERT INTO #pdf (code) VALUES ('/Contents ' + CAST(@object AS VARCHAR) + @ad)
      INSERT INTO #pdf (code) VALUES (@a2)
      INSERT INTO #pdf (code) VALUES (@end)
      SELECT @ofset = @len + 86 + @ofset
      INSERT INTO #xref(code) (SELECT SUBSTRING('0000000000' + CAST(@ofset AS VARCHAR), 
    	LEN('0000000000' + CAST(@ofset AS VARCHAR)) - 9, 
    	LEN('0000000000' + CAST(@ofset AS VARCHAR))) + @xstr)  
      INSERT INTO #pdf (code) VALUES (CAST(@object AS VARCHAR)  + @beg)
      INSERT INTO #pdf (code) VALUES (@a1)
      SELECT @object = @object + 1
      INSERT INTO #pdf (code) VALUES ('/Length ' + CAST(@object AS VARCHAR) + @ad)
      INSERT INTO #pdf (code) VALUES (@a2)
      INSERT INTO #pdf (code) VALUES ('stream')
      INSERT INTO #pdf (code) VALUES ('BT')
      INSERT INTO #pdf (code) VALUES ('/F1 10 Tf')
      INSERT INTO #pdf (code) VALUES ('1 0 0 1 50 802 Tm')
      INSERT INTO #pdf (code) VALUES ('12 TL')
      WHILE @@Fetch_Status = 0
         BEGIN
             INSERT INTO #pdf (code) VALUES ('T* (' + @trenutniRed + ') Tj')
             FETCH NEXT FROM  SysKursor INTO @trenutniRed
          END
      INSERT INTO #pdf (code) VALUES ('ET')
      INSERT INTO #pdf (code) VALUES ('endstream')
      INSERT INTO #pdf (code) VALUES (@end)
      SELECT @rows = (SELECT COUNT(*) FROM #text WHERE idnumber BETWEEN ((@nopg * 60) + 1) AND ((@nopg + 1) * 60 ))* 90 + 45
      SELECT @nopg = @nopg + 1    
      SELECT @len = LEN(@object) + LEN(@object - 1)
      SELECT @ofset = @len + 57 + @ofset + @rows
      INSERT INTO #xref(code) (SELECT SUBSTRING('0000000000' + CAST(@ofset AS VARCHAR), 
     	LEN('0000000000' + CAST(@ofset AS VARCHAR)) - 9, 
   	LEN('0000000000' + CAST(@ofset AS VARCHAR))) + @xstr)   
      INSERT INTO #pdf (code) VALUES (CAST(@object AS VARCHAR)  + @beg)
      INSERT INTO #pdf (code) VALUES (@rows)
      INSERT INTO #pdf (code) VALUES (@end)
      SELECT @len = LEN(@object) + LEN(@rows)
      SELECT @ofset = @len + 18 + @ofset
      INSERT INTO #xref(code) (SELECT SUBSTRING('0000000000' + CAST(@ofset AS VARCHAR), 
    	LEN('0000000000' + CAST(@ofset AS VARCHAR)) - 9, 
    	LEN('0000000000' + CAST(@ofset AS VARCHAR))) + @xstr)  
      CLOSE SysKursor
      DEALLOCATE SysKursor
    END
    INSERT INTO #pdf (code) VALUES ('2' + @beg)
    INSERT INTO #pdf (code) VALUES (@a1)
    INSERT INTO #pdf (code) VALUES ('/Type /Catalog')
    INSERT INTO #pdf (code) VALUES ('/Pages 3' + @ad)
    INSERT INTO #pdf (code) VALUES ('/PageLayout /OneColumn')
    INSERT INTO #pdf (code) VALUES (@a2)
    INSERT INTO #pdf (code) VALUES (@end)
    UPDATE #xref SET code = (SELECT code FROM #xref WHERE idnumber = (SELECT MAX(idnumber) FROM #xref)) WHERE idnumber = 5
    DELETE FROM #xref WHERE idnumber = (SELECT MAX(idnumber) FROM #xref)
    INSERT INTO #pdf (code) VALUES ('3' + @beg)
    INSERT INTO #pdf (code) VALUES (@a1)
    INSERT INTO #pdf (code) VALUES ('/Type /Pages')
    INSERT INTO #pdf (code) VALUES ('/Count ' + CAST(@nopg AS VARCHAR))
    INSERT INTO #pdf (code) VALUES ('/MediaBox [ 0 0 595 842 ]')
    INSERT INTO #pdf (code) VALUES ('/Kids [' + @page + ' ]')
    INSERT INTO #pdf (code) VALUES (@a2)
    INSERT INTO #pdf (code) VALUES (@end)
    SELECT @ofset = @ofset + 79
    UPDATE #xref SET code =(SELECT SUBSTRING('0000000000' + CAST(@ofset AS VARCHAR), 
  	LEN('0000000000' + CAST(@ofset AS VARCHAR)) - 9, 
  	LEN('0000000000' + CAST(@ofset AS VARCHAR))) + @xstr) WHERE idnumber = 6
    INSERT INTO #xref(code) VALUES ('trailer')
    INSERT INTO #xref(code) VALUES (@a1)
    SELECT @object = @object + 1
    UPDATE #xref SET code = '0 ' + CAST(@object AS VARCHAR) WHERE idnumber = 2
    INSERT INTO #xref(code) VALUES ('/Size ' + CAST(@object AS VARCHAR))
    INSERT INTO #xref(code) VALUES ('/Root 2' + @ad)
    INSERT INTO #xref(code) VALUES ('/Info 1' + @ad)
    INSERT INTO #xref(code) VALUES (@a2)
    INSERT INTO #xref(code) VALUES ('startxref')
    SELECT @len = LEN(@nopg) + LEN(@page)
    SELECT @ofset = @len + 86 + @ofset
    INSERT INTO #xref(code) VALUES (@ofset)
    INSERT INTO #xref(code) VALUES ('%%' + CHAR(69) + CHAR (79) + CHAR(70))
    INSERT INTO #pdf (code) (SELECT code FROM #xref) 
    --SELECT code FROM #pdf
    SELECT @trenutniRed = 'del '+ @pdf
    EXECUTE @ole = sp_OACreate 'Scripting.FileSystemObject', @fs OUT
    EXEC master..xp_cmdshell @trenutniRed, NO_OUTPUT

    EXECUTE @ole = sp_OAMethod @fs, 'OpenTextFile', @file OUT, @pdf, 8, 1

    DECLARE SysKursor  INSENSITIVE SCROLL CURSOR 
    FOR SELECT code FROM #pdf ORDER BY idnumber
    FOR READ ONLY    
    OPEN SysKursor
    FETCH NEXT FROM SysKursor INTO @trenutniRed
    WHILE @@Fetch_Status = 0
	BEGIN
	  EXECUTE @ole = sp_OAMethod @file, 'WriteLine', Null, @trenutniRed
	  FETCH NEXT FROM  SysKursor INTO @trenutniRed 
        END
    CLOSE SysKursor
    DEALLOCATE SysKursor
    DELETE FROM psopdf
    EXECUTE @ole = sp_OADestroy @file
    EXECUTE @ole = sp_OADestroy @fs
go



CREATE PROCEDURE [dbo].[C_VZ_MedziobdobieMesove_stare] 
	
AS
BEGIN

/******************************
using table:CM_Krava,CM_Telata

changing table:CP_MedziObdMesove

used for: Creating medziobdobie for Mesova Krava used for View_CP_MedziObdMeso in volna zona -> CP_MedziObdMesove report


******************************/
	
	SET NOCOUNT ON;
	declare @chov_id varchar(9);
	declare @ucislo varchar(14)
	set @chov_id='';
	declare @porlakt as int;
	DECLARE @W INT;

	TRUNCATE TABLE [PLIS].[dbo].[CP_MedziObdMesove]		


	DECLARE cur_Chovatel CURSOR FOR 
		select  distinct K.CISKRAVY, k.CHOVATEL
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and
		(DATEDIFF(day,k.datvyr,getdate())<=365 or k.DATVYR is null);
	  -- select distinct matka from plis.dbo.CM_Telata where PRIZNAKKU='2'


	  SET @W= (select  distinct COUNT( K.CISKRAVY)
		from CM_Krava as K
		inner join (select * from CM_Telata)as T
		ON K.CISKRAVY=T.MATKA
		where K.PRIZNAKKU='2'
		and K.DOVVYR is null)

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO @ucislo, @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;
			declare @medzi int
			set @medzi=0;
			declare @d int;
			set @d=0;
							declare c cursor for SELECT  TOP 1  DATEDIFF(DAY,T.DATNAR,T2.DATNAR)AS MEDZ,T2.PORLAK
							FROM DBO.CM_Telata AS T
							INNER JOIN (SELECT TOP 1 * FROM CM_Telata WHERE MATKA=@ucislo ORDER BY DATNAR DESC) AS T2 
							ON T.MATKA=T2.MATKA
							and t.DATNAR not in (SELECT top 1  v.DATNAR
  FROM [PLIS].[dbo].[CM_Krava] as k
  inner join plis.dbo.CM_Telata as v on k.CISKRAVY=v.MATKA
  where (DATEDIFF(day,k.datvyr,getdate())<=365 or k.DATVYR is null)
  and k.PRIZNAKKU='2'
  and v.MATKA=@ucislo  order by v.DATNAR desc)
							order by t.DATNAR desc;

							open c;
							FETCH NEXT FROM c INTO @d,@porlakt;
							WHILE @@FETCH_STATUS = 0
							begin
							
								
									begin 
										SET @MEDZI=@MEDZI+@d ;
										insert into dbo.CP_MedziObdMesove([kravcislo],[chovatel],[medziobd],[porpreblak]) values (@ucislo,@chov_id,@d,@porlakt);
										
									end

								
							FETCH NEXT FROM c INTO @d,@porlakt;
							END
							close c;
							Deallocate c;

FETCH NEXT FROM cur_Chovatel INTO @ucislo,@chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;


END


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE ZistiKravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie 
/*dvakrat sa vyskytuju telata s tym istym poradim laklacie a nie su to dvojicky*/
AS
declare @v_krava varchar(14);	/*kurzor krava_kurzor*/
declare @v_chovatel varchar(14);/*kurzor krava_kurzor*/
declare @pocitadlo int;			/*kurzor krava_kurzor*/
declare @count int;
declare @matka varchar(14);
declare @cistelata1 varchar(14);
declare @cistelata2 varchar(14);

BEGIN
IF EXISTS(SELECT TABLE_NAME FROM plis.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table')
begin
DROP TABLE plis.dbo.KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table
end

create table KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table
(
krava varchar(14),
chovatel varchar(9),
cistelata1 varchar(14),
cistelata12 varchar(14)
)

set @pocitadlo = 0;
declare krava_cursor cursor for select ciskravy, chovatel from CM_Krava /*where chovatel='613027701'*/ order by chovatel;

	OPEN krava_cursor   
	FETCH NEXT FROM krava_cursor INTO @v_krava, @v_chovatel 

		WHILE @@FETCH_STATUS = 0   
			BEGIN   
				set @pocitadlo = @pocitadlo + 1;
    			print 'krava c. '+cast(@pocitadlo as varchar(10))+' '+@v_krava+' '+@v_chovatel;
				set @count = 0;				
				
					select @count = count(*)  from CM_telata t, CM_telata t2 where 
					t.MATKA = @v_krava and t2.MATKA = @v_krava and t.CISTELATA <> t2.CISTELATA and t.PORLAK = t2.porlak
					and t.DATNAR <> t2.datnar and t.CISTELATA > t2.CISTELATA 		
					
					if (@count >= 1)
					begin
						select @matka = t.matka, @cistelata1 = t.CISTELATA, @cistelata2 = t2.CISTELATA from CM_telata t, CM_telata t2 where 
						t.MATKA = @v_krava and t2.MATKA = @v_krava and t.CISTELATA <> t2.CISTELATA and t.PORLAK = t2.porlak
						and t.DATNAR <> t2.datnar and t.CISTELATA > t2.CISTELATA 
					
						insert into KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table values (@matka, @v_chovatel,@cistelata1, @cistelata2)
					end
					
				set @count = 0;			
						  
				FETCH NEXT FROM krava_cursor INTO @v_krava, @v_chovatel
		END
	
	
	CLOSE krava_cursor   
	DEALLOCATE krava_cursor
	
	
	
END
/*
exec ZistiKravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie

drop table KravyKtoreMajuTelataSChybneUvedenymPoradimLaktacie_table

*/
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 20.09.2017

-- Description:	Ak je 0 alebo '' tak prevedie na NULL
-- =============================================
CREATE FUNCTION [dbo].[S_fix_NULL]
(
	@NULL varchar(256)
)
RETURNS varchar(256)
AS
BEGIN
	if @NULL is NULL or @NULL = '' or @NULL = '0' return NULL;
	
	return @NULL;


--	if (substring(@LUC, 5, 1) = ' ')
--		begin
--			set @LUC = replace(@LUC, ' ', '')
--			set @LUC =  (Select LEFT('     ', 5-len(@LUC)) + @LUC)
--		end

--	return (select @LUC)
----		(select replace(@LUC, ' ', '.'))
--		--(select case when len(@LUC) = 5 then replace(@LUC, ' ', '.') else  LEFT('.....', 5-len(@LUC))+@LUC END as LUC)

END


--		select [dbo].[S_oprav_LUC]('145 ')

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 4.1.2016
-- Description:	Vrati mesacnu uzavierku chovov (prefix mesiac)
-- =============================================
CREATE procedure [dbo].[S_kontrol_opis_rozb_protokolu_bahnice]
    
	@stado varchar(9)=''
	
as
begin

	
	select	
	o.KROKR+o.PODNIK+o.STADO as stado
      ,o.CISVZOR
      ,o.DODBERU
      ,o.LUC
      ,o.PUC
      ,o.BAHCIS
      ,o.ZVSTAT
      ,o.JCCEHZ
      ,o.PORAD
      ,o.DATOBAH
      ,o.DATODST
      ,o.MLRANO
      ,o.MLOBED
      ,o.MLVECER
      ,o.ROZBTUK
      ,o.ROZBBIEL
      ,o.ROZBLAKT
      ,o.SOMA
      ,o.PORLAK
      ,o.VERIF	
	  ,[ML]
      ,[TL]
      ,[BL]
      ,[LL]
      ,[D]
	   from plis.dbo.SM_OVCE as o
	left join plis.dbo.SM_OVCESP as sp
	on sp.JCCEHZ = o.JCCEHZ
	--left join NM_CHOVMAS as NCH
	--on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = chovatel
	where
	 
	@stado like @stado+'%' or @stado is null
	--and m.rok = @rok and m.MESIAC = @mesiac and m.dekada = @DEKADA 
	
	order by stado
	end
go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_UzavreteLaktSkladba_ReportTable]
	
AS
BEGIN
	SET NOCOUNT ON;

	TRUNCATE TABLE [PLIS].[dbo].CP_PoslednaUzavretaLakt	
	declare @t int;
	declare @chovatel varchar(9);
	declare @laktacia int;
	declare @po4 int;
	declare @porN int;
	declare @dni int;
	declare @dniN int;
	declare @mlieko int;
	declare @mliekoN int;
	declare @tuk int;
	declare @tukN int;
	declare @TaB int;
	declare @TaBN int;
	declare @vek float;
	declare @vekN float;
	declare @medzi int;
	declare @medziN int;
	declare @bielk int;
	declare @bielkN int;
	declare @lakdni int;
	declare @lakdniN int;
	declare @ciskrava varchar(14);
	declare @dniT int;
	declare @dniNT int;
	declare @mliekoT int;
	declare @mliekoNT int;
	declare @tukT int;
	declare @tukNT int;
	declare @TaBT int;
	declare @TaBNT int;
	declare @vekT float;
	declare @vekNT int;
	declare @medziT int;
	declare @medziNT int;
	declare @bielkT int;
	declare @bielkNT int;
	declare @lakdniT int;
	declare @lakdniNT int;

	SET @dniT =0;
	SET @dniNT =0;
	SET @mliekoT =0;
	SET @mliekoNT =0;
	SET @tukT =0;
	SET @tukNT =0;
	SET @TaBT =0;
	SET @TaBNT =0;
	SET @vekT =0;
	SET @vekNT =0;
	SET @medziT =0;
	SET @medziNT =0;
	SET @bielkT =0;
	SET @bielkNT =0;
	SET @lakdniT =0;
	SET @lakdniNT =0;
	set @t=0;
	set @laktacia='';
	set @chovatel='';

	 declare chov cursor for
	 select DISTINCT chovatel
	 from plis.dbo.CP_KravaPoslednaUzavLakt

	 open  chov
	 fetch next from chov into @chovatel
	 while @@FETCH_STATUS=0
	 begin

		declare lakt cursor for
		select DISTINCT poslLakt
		from plis.dbo.CP_KravaPoslednaUzavLakt
		where chovatel=@chovatel;

		open lakt
		fetch next from lakt into @laktacia
		declare @n int;
		set @n=0;
		
		declare @pD int;
		declare @pM int;
		declare @pT int;
		declare @pB int;
		declare @pTaB int;
		declare @pMM int;
		declare @pDt int;
		declare @pMt int;
		declare @pTt int;
		declare @pBt int;
		declare @pTaBt int;
		declare @pMMt int;
		declare @pV int;
		declare @pVt int;

		declare @pN int;
		declare @pC int;

		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pDt =0;
		set @pMt =0;
		set @pTt =0;
		set @pBt =0;
		set @pTaBt =0;
		set @pMMt =0;
		set @pV=0;
		set @pVt=0;


		set @pN=0;
		set @pC=0;

		declare @i int;
		set @i=0; 

		while @@FETCH_STATUS=0
		begin

			declare data cursor for
			
			select sum(lakdni),sum(mlieko),sum(tuk),sum(bielk),sum(BaT),sum(medziobd) 
			from plis.dbo.CP_KravaPoslednaUzavLakt
			where chovatel=@chovatel
			and poslLakt=@laktacia
			and zmena in (30,40)
			

			open data
			fetch next from data into @lakdni,@mlieko,@tuk,@bielk,@TaB,@medzi;
			while @@FETCH_STATUS=0
				begin
						set @vek=(select sum(vekOtel)
									from plis.dbo.CP_KravaPoslednaUzavLakt
									where poslLakt=@laktacia
									and chovatel=@chovatel
									and zmena in (30,40)
								 )
						
						set @n=@n+1;

						set @pD=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and lakdni>0 
					and lakdni is not null
					and zmena in (30,40)
					),0)

				/*	set @pM=(select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and mlieko>0 
					and mlieko is not null
					)*/

					set @mlieko=@mlieko/nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and mlieko>0 
					and mlieko is not null
					and zmena in (30,40)
					),0)

					set @pT=(select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and tuk>0 
					and tuk is not null
					and zmena in (30,40)
					)

					set @pB=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and bielk>0 
					and bielk is not null
					and zmena in (30,40)
					),0)

					set @pTaB=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and BaT>0 
					and BaT is not null
					and zmena in (30,40)
					),0)

					set @pMM=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and medziobd>0 
					and medziobd is not null
					and zmena in (30,40)
					),0)

					
					fetch next from data into @lakdni,@mlieko,@tuk,@bielk,@TaB,@medzi;
				end

				close data;
				deallocate data;

			declare dataN cursor for
			select sum(lakdniN),sum(mliekoN),sum(tukN),sum(bielkN),sum(BaTN),sum(medziobd)
			from plis.dbo.CP_KravaPoslednaUzavLakt
			where chovatel=@chovatel
			and poslLakt=@laktacia
			and zmena in (30,40)
			
			open dataN
			fetch next from dataN into @lakdniN,@mliekoN,@tukN,@bielkN,@TaBN,@medziN;
			while @@FETCH_STATUS=0
				begin

					set @pDt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and lakdniN>0 
					and lakdniN is not null
					and zmena in (30,40)
					),0)

					set @pMt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and mliekoN>0 
					and mliekoN is not null
					and zmena in (30,40)
					),0)

					set @pTt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and tukN>0 
					and tukN is not null
					and zmena in (30,40)
					),0)

					set @pBt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and bielkN>0 
					and bielkN is not null
					and zmena in (30,40)
					),0)

					set @pTaBt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and BaTN>0 
					and BaTN is not null
					and zmena in (30,40)
					),0)

					set @pMMt=nullif((select count(*)
					from plis.dbo.CP_KravaPoslednaUzavLakt
					where chovatel=@chovatel
					and poslLakt=@laktacia
					and medziobd>0 
					and medziobd is not null
					and zmena in (30,40)
					),0)

						set @i=@i+1;
					fetch next from dataN into @lakdniN,@mliekoN,@tukN,@bielkN,@TaBN,@medziN;
				end
			close dataN;
			deallocate dataN;

			set @pv=(select count(*)
			from plis.dbo.CP_KravaPoslednaUzavLakt
			where zmena in (30,40));
													
			if(@n>=0 and @i>=0)
			begin

				set @n=(select count (*) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt=@laktacia and chovatel=@chovatel);
			set @i=(select count (*) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt=@laktacia and chovatel=@chovatel and zmena in (30,40));
			
				set @vek=(select avg (vekOtel) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt=@laktacia and chovatel=@chovatel and vekOtel>0 and vekOtel is not null);
				declare @vekD int;
				
				--print @vekT;
				--print convert(int,PARSENAME(convert(decimal(10,2),@vekT),1)) % 30;
						set @vekD=CONVERT(int, @vek )% 30.45
						set @vekT=ROUND(( convert(int,@vek)/ 30.45), 0)
					
			
			--print @vekD;
				insert into plis.dbo.CP_PoslednaUzavretaLakt values(@laktacia,@n,@i,
																		(@lakdni/@pD),
																		(@lakdniN/ @pDt),
																		(@mlieko),--/@pM),
																		(@mliekoN/@pMt),
																		(@tuk/@pT),
																		(@tukN/@pTt),
																		(@bielk/@pB),
																		(@bielkN/@pBt),
																		(@TaB/@pTaB),
																		(@TaBN/@pTaBt),
																		(@vekT),
																		(@vekD),
																		(@medzi/@pMM),
																		(@medziN/@pMMt),
																		@chovatel)

																		SET @dniT =0;
			SET @dniNt =0;
			SET @mliekoT =0;
			SET @mliekoNT =0;
			SET @tukT =0;
			SET @tukNT =0;
			SET @TaBT =0;
			SET @TaBNT =0;
			SET @vekT =0;
			SET @vekNT =0;
			SET @medziT =0;
			SET @medziNt =0;
			SET @bielkT =0;
			SET @bielkNT =0;
			SET @lakdniT =0;
			SET @lakdniNT =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pDt =0;
			set @pMt =0;
			set @pTt =0;
			set @pBt =0;
			set @pTaBt =0;
			set @pMMt =0;
			set @pV=0;
			set @pVt=0;
																		
																		
			end


			SET @dniT =0;
			SET @dniNt =0;
			SET @mliekoT =0;
			SET @mliekoNT =0;
			SET @tukT =0;
			SET @tukNT =0;
			SET @TaBT =0;
			SET @TaBNT =0;
			SET @vekT =0;
			SET @vekNT =0;
			SET @medziT =0;
			SET @medziNt =0;
			SET @bielkT =0;
			SET @bielkNT =0;
			SET @lakdniT =0;
			SET @lakdniNT =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pDt =0;
			set @pMt =0;
			set @pTt =0;
			set @pBt =0;
			set @pTaBt =0;
			set @pMMt =0;
			set @pV=0;
			set @pVt=0;
	
			fetch next from lakt into @laktacia

		set @i=0;
		set @n=0;
	
		end

		close lakt
		deallocate lakt

		SET @dniT =0;
		SET @dniNt =0;
		SET @mliekoT =0;
		SET @mliekoNT =0;
		SET @tukT =0;
		SET @tukNT =0;
		SET @TaBT =0;
		SET @TaBNT =0;
		SET @vekT =0;
		SET @vekNT =0;
		SET @medziT =0;
		SET @medziNt =0;
		SET @bielkT =0;
		SET @bielkNT =0;
		SET @lakdniT =0;
		SET @lakdniNT =0;
		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pDt =0;
		set @pMt =0;
		set @pTt =0;
		set @pBt =0;
		set @pTaBt =0;
		set @pMMt =0;
		set @pV=0;
		set @pVt=0;
	

		
		--print N'-----------------------------------------------'
		fetch next from chov into @chovatel
		
	 end

	 close chov;
	 deallocate chov;


END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 20.01.2018
-- Description:Udaje za plemena pre rocenku - tabulka: VYSLEDKY KONTROLY UZITKOVOSTI PODLA PLEMEIEN
-- spusi sa prepocet *Roc_MLHD_ZostavaLaktacie_TypPlem_prepocet* a nasledne sa spusta procedura *Roc_MLHD_2*
-- Holesova
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_ZostavaLaktacie_TypPlem]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[typPlem] [varchar] (5) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')
					--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
				
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM View_CP_LaktaciePreZostavy as Lakt
			 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					--(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					lakt.kraj = @chov	
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and (eko.ZRUS is null or(eko.ZRUS is not null and (select cast(eko.datumZrusenia as date)) > @datumOd))
					and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
						and eko.TYPZV = 1
					and lakt.MLIEKCEL <>''

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 (case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where
					lakt.okres = @chov	
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and (eko.ZRUS is null or(eko.ZRUS is not null and (select cast(eko.datumZrusenia as date)) > @datumOd))
					and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
						and eko.TYPZV = 1
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 --(case when PLEM is null then 'BEZ' 
					--else case when  PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')  --and PLEM is not null
					--THEN 'ZVYS' else PLEM end end)as Plem, 
						--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					 --(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					lakt.podnik = @chov	
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					--and eko.ZRUS is null and eko.TYPZV='1'
					and (eko.ZRUS is null or(eko.ZRUS is not null and cast(eko.datumZrusenia as date) > @datumOd))
					and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
						and eko.TYPZV = 1
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					--THEN 'OSTA' else PLEM end end)as Plem, 
						--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					--(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					lakt.chovatel = @chov
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					--and eko.ZRUS is null and eko.TYPZV='1'
					and (eko.ZRUS is null or(eko.ZRUS is not null and  cast(eko.datumZrusenia as date) > @datumOd))
					and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
						and eko.TYPZV = 1
					and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')-- and PLEM is not null 
					--THEN 'OSTA' else PLEM end end)as Plem,  
						--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					--(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					--and (PLEM=@plem or @plem is null)
					((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					--and eko.ZRUS is null and eko.TYPZV='1'
					and (eko.ZRUS is null or(eko.ZRUS is not null and  cast(eko.datumZrusenia as date) > @datumOd))
					and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
						and eko.TYPZV = 1
					and MLIEKCEL <>''

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		--(Select distinct case when pl.TYPS is null then 'BEZ' 
		--			else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
		--			THEN 'OSTA' else pl.TYPS end end), 
				--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		--inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
											
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				--and	k.DOVVYR is null 
				and (k.DOVVYR is null or(k.DOVVYR is not null and k.Datvyr > @datumOd))
				and k.PRIZNAKKU='1' 
				--and (pl.TYPS=@plem or @plem is null)	


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, Lakt.CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
			(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
		 Lakt.DOVVYR, Lakt.DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM View_CP_LaktaciePreZostavy as Lakt
	 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(Lakt.CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

		where 
		(reg.REGION=@region or @region is null) 
		--and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		--and (PLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		--and eko.ZRUS is null and eko.TYPZV='1'
		and (eko.ZRUS is null or(eko.ZRUS is not null and  cast(eko.datumZrusenia as date) > @datumOd))
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov))
		and eko.TYPZV = 1
		and MLIEKCEL <>''


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					when TYPPLEM in('95', '99') then '99'
						when TYPPLEM in('84','88','94','98') then '98'
						when TYPPLEM in('73','77','83','87','93','97') then '97'
						when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						when (PL2='S' or PL2='MB') and KR2=50 then '14'
						when PL2='P' and KR2=50 then '54'
						when (PL2='H' or PL2='R') and KR2=50 then '96'
						when PL2='B' and KR2=50 then '23'
						else '0000'
						end ) as typPlem,
			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					--and	k.DOVVYR is null 
				and (k.DOVVYR is null or(k.DOVVYR is not null and k.datvyr > @datumOd))
				and k.PRIZNAKKU='1' 
					--and (pl.TYPS=@plem or @plem is null)	
end

Declare @Laktacie_Vs table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy_Vs table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[typPlem] [varchar] (5) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)

	insert into @Laktacie_Vs
			 SELECT
 				 PORLAK, CHOVATEL,Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				(case when typPlem in('11','13','14') then 'SlStr' 
						else case when TYPPLEM in('51', '53','54') then 'SlPin'
						else case when TYPPLEM in('96','97','98','99') then 'Hol'
						else case when TYPPLEM in('21','22','23') then 'Brau'
						end end end end ) as typPlem,
				DOVVYR, DATVYR, EkoChov
				From @Laktacie

	insert into @kravy_Vs
			select chov, region, 
			(case when typPlem in('11','13','14') then 'SlStr' 
						else case when TYPPLEM in('51', '53','54') then 'SlPin'
						else case when TYPPLEM in('96','97','98','99') then 'Hol'
						else case when TYPPLEM in('21','22','23') then 'Brau'
						end end end end ) as typPlem,
			ciskravy, porpreblak
			from @kravy




--select * from @kravy where typPlem='0000'

--select * from @Laktacie where typPlem='0000'

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem
		
----select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem 

----select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem

----select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,typPlem, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.typPlem
	
	--select * from @ZmenaCelk order by CHOV


insert CR_LaktacneZostavy_Opr
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.typPlem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	
	l.typPlem as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.typPlem=l.typPlem)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.typPlem=l.typPlem)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.typPlem=l.typPlem)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.typPlem=l.typPlem)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.typPlem=l.typPlem)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.typPlem=l.typPlem)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.typPlem=l.typPlem)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.typPlem=l.typPlem)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.typPlem=l.typPlem)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.typPlem=l.typPlem)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.typPlem=l.typPlem)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.typPlem=l.typPlem)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.typPlem=l.typPlem)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.typPlem=l.typPlem)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.typPlem=l.typPlem)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	
/*****************************************/

	declare @PocZapojL1_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1_Vs
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k_Vs.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy_Vs as k_Vs

	 where 	k_Vs.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k_Vs.CHOV, 1, len(@chov))) end end,k_Vs.typPlem
		
----select * from @PocZapojL1 

declare @PocZapojL2_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2_Vs
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k_Vs.ciskravy) as PocZapojL2
	from @kravy_Vs as k_Vs
	

	where k_Vs.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k_Vs.CHOV, 1, len(@chov))) end end,k_Vs.typPlem 

----select * from @PocZapojL2 

declare @PocZapojLCelk_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk_Vs
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k_Vs.ciskravy) as PocZapojLCelk

	from @kravy_Vs as k_Vs

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k_Vs.CHOV, 1, len(@chov))) end end,typPlem

----select * from @PocZapojL1 


declare @pocLAKV1_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1_Vs
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV1

	from @Laktacie_Vs as l_Vs	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem

	--select * from @pocLAKV1 


declare @pocLAKV2_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2_Vs
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV2

	from @Laktacie_Vs as l_Vs	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem

	--select * from @pocLAKV2

declare @pocLAKVCelk_Vs table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk_Vs
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakVCelk

	from @Laktacie_Vs as l_Vs
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem

	--select * from @pocLAKVCelk 

Declare @lakt1_Vs table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1_Vs
	(CHOV,Region,typPlem, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l_Vs.DOVVYR='54' or l_Vs.DOVVYR='53' or l_Vs. DOVVYR='52' or l_Vs.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l_Vs.DOVVYR='55' or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie_Vs as l_Vs
		where  PORLAK = '1'
		and (l_Vs.ZMENA = '30' or l_Vs.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @lakt1  
	
  Declare @lakt2_Vs table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2_Vs
 select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l_Vs.DOVVYR='54' or l_Vs.DOVVYR='53' or l_Vs.DOVVYR='52' or l_Vs.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l_Vs.DOVVYR='55' or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie_Vs as l_Vs
	where 
	PORLAK >= '2'
	and (l_Vs.ZMENA = '30' or l_Vs.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom_Vs
select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l_Vs.DOVVYR='54' or l_Vs.DOVVYR='53' or l_Vs.DOVVYR='52' or l_Vs.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l_Vs.DOVVYR='55' or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie_Vs as l_Vs
	
	where (l_Vs.ZMENA = '30' or l_Vs.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1_Vs
	select 
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	Sum(case when l_Vs.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'3500' and l_Vs.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'4000' and l_Vs.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'4500' and l_Vs.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'5000' and l_Vs.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'5500' and l_Vs.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'6000' and l_Vs.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'6500' and l_Vs.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'7000' and l_Vs.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'7500' and l_Vs.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'8000' and l_Vs.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'8500' and l_Vs.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'9000' and l_Vs.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'9500' and l_Vs.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'10000' and l_Vs.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'10500' and l_Vs.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'11000' and l_Vs.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'11500' and l_Vs.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'12000' and l_Vs.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'12500' and l_Vs.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l_Vs.MLIEKNOR>'13000' and  l_Vs.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'13500' and l_Vs.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l_Vs.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie_Vs as l_Vs
	
	
	where 
	l_Vs.PORLAK = '1'
	and (l_Vs.ZMENA = '30' or l_Vs.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2_Vs
	select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	Sum(case when l_Vs.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l_Vs.MLIEKNOR>'3500' and l_Vs.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'4000' and l_Vs.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'4500' and l_Vs.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'5000' and l_Vs.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'5500' and l_Vs.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'6000' and l_Vs.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'6500' and l_Vs.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'7000' and l_Vs.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'7500' and l_Vs.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'8000' and l_Vs.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'8500' and l_Vs.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'9000' and l_Vs.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'9500' and l_Vs.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'10000' and l_Vs.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'10500' and l_Vs.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'11000' and l_Vs.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'11500' and l_Vs.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'12000' and l_Vs.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'12500' and l_Vs.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l_Vs.MLIEKNOR>'13000' and  l_Vs.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l_Vs.MLIEKNOR>'13500' and l_Vs.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when l_Vs.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie_Vs as l_Vs
	
	where 
	l_Vs.PORLAK >= '2'
	and (l_Vs.ZMENA = '30' or l_Vs.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk_Vs
	select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	Sum(case when l_Vs.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'3500' and l_Vs.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'4000' and l_Vs.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'4500' and l_Vs.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'5000' and l_Vs.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'5500' and l_Vs.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'6000' and l_Vs.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'6500' and l_Vs.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'7000' and l_Vs.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk,
	Sum(case when (l_Vs.MLIEKNOR>'7500' and l_Vs.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'8000' and l_Vs.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'8500' and l_Vs.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'9000' and l_Vs.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'9500' and l_Vs.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'10000' and l_Vs.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'10500' and l_Vs.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'11000' and l_Vs.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'11500' and l_Vs.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'12000' and l_Vs.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'12500' and l_Vs.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'13000' and  l_Vs.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l_Vs.MLIEKNOR>'13500' and l_Vs.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l_Vs.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie_Vs as l_Vs
	
	where 
	(l_Vs.ZMENA = '30' or l_Vs.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1_Vs
	select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	Sum(case when l_Vs.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l_Vs.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l_Vs.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l_Vs.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l_Vs.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l_Vs.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l_Vs.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l_Vs.ZMENA='10' or l_Vs.ZMENA='30' or l_Vs.ZMENA='31' or l_Vs.ZMENA='40' or l_Vs.ZMENA='41' 
	or l_Vs.ZMENA='42' or l_Vs.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l_Vs.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l_Vs.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l_Vs.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l_Vs.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l_Vs.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l_Vs.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l_Vs.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l_Vs.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l_Vs.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l_Vs.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l_Vs.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l_Vs.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l_Vs.DOVVYR='51' or l_Vs.DOVVYR='52' or l_Vs.DOVVYR='53' or l_Vs.DOVVYR='54' or l_Vs.DOVVYR='55' 
	or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie_Vs as l_Vs
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2_Vs
	select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,

	Sum(case when l_Vs.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l_Vs.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l_Vs.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l_Vs.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l_Vs.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l_Vs.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l_Vs.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l_Vs.ZMENA='10' or l_Vs.ZMENA='30' or l_Vs.ZMENA='31' or l_Vs.ZMENA='40' or l_Vs.ZMENA='41' 
	or l_Vs.ZMENA='42' or l_Vs.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l_Vs.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l_Vs.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l_Vs.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l_Vs.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l_Vs.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l_Vs.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l_Vs.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l_Vs.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l_Vs.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l_Vs.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l_Vs.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l_Vs.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l_Vs.DOVVYR='51' or l_Vs.DOVVYR='52' or l_Vs.DOVVYR='53' or l_Vs.DOVVYR='54' or l_Vs.DOVVYR='55' 
	or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2


	from @Laktacie_Vs as l_Vs
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end,l_Vs.typPlem
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk_Vs table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk_Vs
	select
	@chov as CHOV, 
	@region as Region,
	l_Vs.typPlem as typPlem,
	Sum(case when l_Vs.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l_Vs.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l_Vs.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l_Vs.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l_Vs.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l_Vs.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l_Vs.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l_Vs.ZMENA='10' or l_Vs.ZMENA='30' or l_Vs.ZMENA='31' or l_Vs.ZMENA='40' or l_Vs.ZMENA='41' 
	or l_Vs.ZMENA='42' or l_Vs.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l_Vs.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l_Vs.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l_Vs.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l_Vs.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l_Vs.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l_Vs.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l_Vs.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l_Vs.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l_Vs.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l_Vs.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l_Vs.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l_Vs.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l_Vs.DOVVYR='51' or l_Vs.DOVVYR='52' or l_Vs.DOVVYR='53' or l_Vs.DOVVYR='54' or l_Vs.DOVVYR='55' 
	or l_Vs.DOVVYR='56' or l_Vs.DOVVYR='57' or l_Vs.DOVVYR='58' or l_Vs.DOVVYR='59' or l_Vs.DOVVYR='60' or l_Vs.DOVVYR='61' or l_Vs.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie_Vs as l_Vs
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l_Vs.CHOVATEL, 1, len(@chov))) end end, l_Vs.typPlem
	
	--select * from @ZmenaCelk order by CHOV


insert CR_LaktacneZostavy_Opr
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l_Vs.typPlem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	
	l_Vs.typPlem as PlemTyp,
	l_Vs.EkoChov as EkoChov,
	ZapojL1_Vs.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1_Vs.PocLakV1,2) as PocLakV1, 
	ROUND(L1_Vs.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1_Vs.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1_Vs.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1_Vs.LakdniL1,2) as LakdniL1,
	ROUND(L1_Vs.LakdniNL1,2) as LakdniNL1,
	ROUND(L1_Vs.MliekNorL1,2) as MliekNorL1,
	ROUND(L1_Vs.TukNorL1,2) as TukNorL1,
	ROUND(L1_Vs.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1_Vs.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1_Vs.IPZL1,2) as IPZL1,
	L1_Vs.VyrZootechL1 as VyrZootechL1,
	L1_Vs.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2_Vs.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2_Vs.PocLakV2,2) as PocLakV2,
	ROUND(L2_Vs.PocLakN2,2) as PocLakN2,
	ROUND(L2_Vs.MedziobdL2,2) as MedziobdL2,
	ROUND(L2_Vs.LaktDniL2,2) as LaktDniL2,
	ROUND(L2_Vs.LakDniNL2,2) as LakDniNL2,
	ROUND(L2_Vs.MliekNorL2,2) as MliekNorL2,
	ROUND(L2_Vs.TukNorL2,2) as TukNorL2,
	ROUND(L2_Vs.BielkNorL2,2) as BielkNorL2,
	ROUND(L2_Vs.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2_Vs.IPZL2,2) as IPZL2,
	L2_Vs.VyrZootechL2 as VyrZootechL2,
	L2_Vs.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk_Vs.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC_Vs.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk_Vs.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk_Vs.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk_Vs.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk_Vs.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk_Vs.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk_Vs.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk_Vs.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk_Vs.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk_Vs.IPZCelk,2) as IPZCelk,
	lCelk_Vs.VyrZootechCelk as VyrZootechCelk,
	lCelk_Vs.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1_Vs.Do3500L1 AS Do3500L1,
	NL1_Vs.Do4000L1 as Do4000L1,
	NL1_Vs.Do4500L1 as Do4500L1,
	NL1_Vs.Do5000L1 as Do5000L1,
	NL1_Vs.Do5500L1 as Do5500L1,
	NL1_Vs.Do6000L1 as Do6000L1,
	NL1_Vs.Do6500L1 as Do6500L1,
	NL1_Vs.Do7000L1 as Do7000L1,
	NL1_Vs.Do7500L1 as Do7500L1,
	NL1_Vs.Do8000L1 as Do8000L1,
	NL1_Vs.Do8500L1 as Do8500L1,
	NL1_Vs.Do9000L1 as Do9000L1,
	NL1_Vs.Do9500L1 as Do9500L1,
	NL1_Vs.Do10000L1 as Do10000L1,
	NL1_Vs.Do10500L1 as Do10500L1,
	NL1_Vs.Do11000L1 as Do11000L1,
	NL1_Vs.Do11500L1 as Do11500L1,
	NL1_Vs.Do12000L1 as Do12000L1,
	NL1_Vs.Do12500L1 as Do12500L1,
	NL1_Vs.Do13000L1 as Do13000L1,
	NL1_Vs.Do13500L1 as Do13500L1,
	NL1_Vs.Do14000L1 as Do14000L1,
	NL1_Vs.Od14000L1 as Od14000L1,
	 
	NL2_Vs.Do3500L2 AS Do3500L2,
	NL2_Vs.Do4000L2 as Do4000L2,
	NL2_Vs.Do4500L2 as Do4500L2,
	NL2_Vs.Do5000L2 as Do5000L2,
	NL2_Vs.Do5500L2 as Do5500L2,
	NL2_Vs.Do6000L2 as Do6000L2,
	NL2_Vs.Do6500L2 as Do6500L2,
	NL2_Vs.Do7000L2 as Do7000L2,
	NL2_Vs.Do7500L2 as Do7500L2,
	NL2_Vs.Do8000L2 as Do8000L2,
	NL2_Vs.Do8500L2 as Do8500L2,
	NL2_Vs.Do9000L2 as Do9000L2,
	NL2_Vs.Do9500L2 as Do9500L2,
	NL2_Vs.Do10000L2 as Do10000L2,
	NL2_Vs.Do10500L2 as Do10500L2,
	NL2_Vs.Do11000L2 as Do11000L2,
	NL2_Vs.Do11500L2 as Do11500L2,
	NL2_Vs.Do12000L2 as Do12000L2,
	NL2_Vs.Do12500L2 as Do12500L2,
	NL2_Vs.Do13000L2 as Do13000L2,
	NL2_Vs.Do13500L2 as Do13500L2,
	NL2_Vs.Do14000L2 as Do14000L2,
	NL2_Vs.Od14000L2 as Od14000L2,
	 
	NlCelk_Vs.Do3500Celk AS Do3500Celk,
	NlCelk_Vs.Do4000Celk as Do4000Celk,
	NlCelk_Vs.Do4500Celk as Do4500Celk,
	NlCelk_Vs.Do5000Celk as Do5000Celk,
	NlCelk_Vs.Do5500Celk as Do5500Celk,
	NlCelk_Vs.Do6000Celk as Do6000Celk,
	NlCelk_Vs.Do6500Celk as Do6500Celk,
	NlCelk_Vs.Do7000Celk as Do7000Celk,
	NlCelk_Vs.Do7500Celk as Do7500Celk,
	NlCelk_Vs.Do8000Celk as Do8000Celk,
	NlCelk_Vs.Do8500Celk as Do8500Celk,
	NlCelk_Vs.Do9000Celk as Do9000Celk,
	NlCelk_Vs.Do9500Celk as Do9500Celk,
	NlCelk_Vs.Do10000Celk as Do10000Celk,
	NlCelk_Vs.Do10500Celk as Do10500Celk,
	NlCelk_Vs.Do11000Celk as Do11000Celk,
	NlCelk_Vs.Do11500Celk as Do11500Celk,
	NlCelk_Vs.Do12000Celk as Do12000Celk,
	NlCelk_Vs.Do12500Celk as Do12500Celk,
	NlCelk_Vs.Do13000Celk as Do13000Celk,
	NlCelk_Vs.Do13500Celk as Do13500Celk,
	NlCelk_Vs.Do14000Celk as Do14000Celk,
	NlCelk_Vs.Od14000Celk as Od14000Celk, 

	ZL1_Vs.Zmena10L1 as Zmena10L1, 
	ZL1_Vs.Zmena30L1 as Zmena30L1,
	ZL1_Vs.Zmena31L1 as Zmena31L1,
	ZL1_Vs.Zmena40L1 as Zmena40L1,
	ZL1_Vs.Zmena41L1 as Zmena41L1,	
	ZL1_Vs.Zmena42L1 as Zmena42L1,
	ZL1_Vs.Zmena43L1 as Zmena43L1,
	ZL1_Vs.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1_Vs.Zmena51L1 as Zmena51L1,
	ZL1_Vs.Zmena52L1 as Zmena52L1,
	ZL1_Vs.Zmena53L1 as Zmena53L1,
	ZL1_Vs.Zmena54L1 as Zmena54L1,
	ZL1_Vs.Zmena55L1 as Zmena55L1,
	ZL1_Vs.Zmena56L1 as Zmena56L1,
	ZL1_Vs.Zmena57L1 as Zmena57L1,
	ZL1_Vs.Zmena58L1 as Zmena58L1,
	ZL1_Vs.Zmena59L1 as Zmena59L1,
	ZL1_Vs.Zmena60L1 as Zmena60L1,
	ZL1_Vs.Zmena61L1 as Zmena61L1,
	ZL1_Vs.Zmena62L1 as Zmena62L1,
	ZL1_Vs.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2_Vs.Zmena10L2 as Zmena10L2, 
	ZL2_Vs.Zmena30L2 as Zmena30L2,
	ZL2_Vs.Zmena31L2 as Zmena31L2,
	ZL2_Vs.Zmena40L2 as Zmena40L2,
	ZL2_Vs.Zmena41L2 as Zmena41L2,	
	ZL2_Vs.Zmena42L2 as Zmena42L2,
	ZL2_Vs.Zmena43L2 as Zmena43L2,
	ZL2_Vs.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2_Vs.Zmena51L2 as Zmena51L2,
	ZL2_Vs.Zmena52L2 as Zmena52L2,
	ZL2_Vs.Zmena53L2 as Zmena53L2,
	ZL2_Vs.Zmena54L2 as Zmena54L2,
	ZL2_Vs.Zmena55L2 as Zmena55L2,
	ZL2_Vs.Zmena56L2 as Zmena56L2,
	ZL2_Vs.Zmena57L2 as Zmena57L2,
	ZL2_Vs.Zmena58L2 as Zmena58L2,
	ZL2_Vs.Zmena59L2 as Zmena59L2,
	ZL2_Vs.Zmena60L2 as Zmena60L2,
	ZL2_Vs.Zmena61L2 as Zmena61L2,
	ZL2_Vs.Zmena62L2 as Zmena62L2,
	ZL2_Vs.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk_Vs.Zmena10Celk as Zmena10Celk, 
	ZCelk_Vs.Zmena30Celk as Zmena30Celk,
	ZCelk_Vs.Zmena31Celk as Zmena31Celk,
	ZCelk_Vs.Zmena40Celk as Zmena40Celk,
	ZCelk_Vs.Zmena41Celk as Zmena41Celk,	
	ZCelk_Vs.Zmena42Celk as Zmena42Celk,
	ZCelk_Vs.Zmena43Celk as Zmena43Celk,
	ZCelk_Vs.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk_Vs.Zmena51Celk as Zmena51Celk,
	ZCelk_Vs.Zmena52Celk as Zmena52Celk,
	ZCelk_Vs.Zmena53Celk as Zmena53Celk,
	ZCelk_Vs.Zmena54Celk as Zmena54Celk,
	ZCelk_Vs.Zmena55Celk as Zmena55Celk,
	ZCelk_Vs.Zmena56Celk as Zmena56Celk,
	ZCelk_Vs.Zmena57Celk as Zmena57Celk,
	ZCelk_Vs.Zmena58Celk as Zmena58Celk,
	ZCelk_Vs.Zmena59Celk as Zmena59Celk,
	ZCelk_Vs.Zmena60Celk as Zmena60Celk,
	ZCelk_Vs.Zmena61Celk as Zmena61Celk,
	ZCelk_Vs.Zmena62Celk as Zmena62Celk,
	ZCelk_Vs.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie_Vs as l_Vs

	left outer join @PocZapojL1_Vs ZapojL1_Vs on ((ZapojL1_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1_Vs.typPlem = l_Vs.typPlem)
	left outer  join @PocZapojL2_Vs ZapojL2_Vs on ((ZapojL2_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2_Vs.typPlem = l_Vs.typPlem)
	left outer  join @PocZapojLCelk_Vs  ZapojLCelk_Vs on ((ZapojLCelk_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk_Vs.typPlem = l_Vs.typPlem)
	left outer  join @pocLAKV1_Vs  LAKV1_Vs on ((LAKV1_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1_Vs.typPlem = l_Vs.typPlem)
	left outer  join @pocLAKV2_Vs  LAKV2_Vs on ((LAKV2_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2_Vs.typPlem = l_Vs.typPlem)
	left outer join @pocLAKVCelk_Vs LAKVC_Vs on ((LAKVC_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC_Vs.typPlem = l_Vs.typPlem)
	left outer  join @lakt1_Vs  L1_Vs on ((L1_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov))or @chov is null) and L1_Vs.typPlem = l_Vs.typPlem)
	left outer  join @lakt2_Vs  L2_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= L2_Vs.CHOV or @chov is null)and L2_Vs.typPlem = l_Vs.typPlem)
	left outer  join @laktCelkom_Vs as lCelk_Vs on (( substring(l_Vs.CHOVATEL, 1, len(@chov))= lCelk_Vs.CHOV or @chov is null)and lCelk_Vs.typPlem = l_Vs.typPlem)
	left outer  join @NormLak1_Vs  NL1_Vs on ((NL1_Vs.CHOV =  substring(l_Vs.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1_Vs.typPlem = l_Vs.typPlem)
	left outer  join @NormLak2_Vs  NL2_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= NL2_Vs.CHOV or @chov is null)and NL2_Vs.typPlem = l_Vs.typPlem)
	left outer  join @NormLakCelk_Vs as NlCelk_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= NlCelk_Vs.CHOV or @chov is null)and NlCelk_Vs.typPlem=l_Vs.typPlem)
	left outer  join @ZmenaL1_Vs as ZL1_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= ZL1_Vs.CHOV or @chov is null)and ZL1_Vs.typPlem=l_Vs.typPlem)
	left outer  join @ZmenaL2_Vs as ZL2_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= ZL2_Vs.CHOV or @chov is null)and ZL2_Vs.typPlem=l_Vs.typPlem)
	left outer  join @ZmenaCelk_Vs as ZCelk_Vs on ((substring(l_Vs.CHOVATEL, 1, len(@chov))= ZCelk_Vs.CHOV or @chov is null)and ZCelk_Vs.typPlem=l_Vs.typPlem)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l_Vs.CHOVATEL, 1, 3) or @chov is null)



	/*************dopocet poradia ukoncenej laktacie do excelovskej tabulky pre rocenku *******/
	
	---------select typplem, convert(decimal(5,2),AVG(PORLAK *1.0)) from @Laktacie group by typPlem
	---------select vs.typplem, convert(decimal(5,2),AVG(vs.PORLAK *1.0)) from @Laktacie_Vs as vs group by vs.typPlem

		end
go



 CREATE procedure [dbo].[Rocenka_MPHD_5_plemTYP]
	
	@rok int
	--@plemeno varchar(9)

	as 
	begin

	--select 	* from Roc_MPHD_Tab_6_plemTYP
	--where @rok = rok and @plemeno = plemeno
	 
	select plemeno, plemtyp, 
	case --when plemtyp = '101' then 'BBM1'  
		--when plemtyp = '102'then 'BBM2'  
		--	when plemtyp = '103' then 'BBM3'  
		--	when plemtyp = '104' then 'BBM4'  
		--	when plemtyp = '105' then 'BBM5'  
		when plemtyp ='111' then 'AAM1'
			when plemtyp ='112' then 'AAM2'
			when plemtyp ='113' then 'AAM3'
			when plemtyp ='114' then 'AAM4'
			when plemtyp ='115' then 'AAM5'
		when plemtyp ='121' then 'BAM1'
			when plemtyp ='122' then 'BAM2'
			when plemtyp ='123' then 'BAM3'
			when plemtyp ='124' then 'BAM4'
			when plemtyp ='125' then 'BAM5' 
		when plemtyp ='131' then 'GLM1'
		when plemtyp ='141' then 'HEM1'
			when plemtyp ='142' then 'HEM2'
			when plemtyp ='143' then 'HEM3'
			when plemtyp ='144' then 'HEM4'
			when plemtyp ='145' then 'HEM5'
		when plemtyp ='151' then 'HLM1'
		when plemtyp ='161' then 'CHM1'
			when plemtyp ='162' then 'CHM2'
			when plemtyp ='163' then 'CHM3'
			when plemtyp ='164' then 'CHM4'
			when plemtyp ='165' then 'CHM5'
		when plemtyp ='171' then 'LIM1'
			when plemtyp ='172' then 'LIM2'
			when plemtyp ='173' then 'LIM3'
			when plemtyp ='174' then 'LIM4'
			when plemtyp ='175' then 'LIM5'
		when plemtyp ='201' then 'SMM1'
			when plemtyp ='202' then 'SMM2'
			when plemtyp ='203' then 'SMM3'
			when plemtyp ='204' then 'SMM4'
			when plemtyp ='205' then 'SMM5'
		when plemtyp ='191' then 'PIM1'
			when plemtyp ='192' then 'PIM2'
			when plemtyp ='193' then 'PIM3'
			when plemtyp ='194' then 'PIM4'
			when plemtyp ='195' then 'PIM5'
		when plemtyp ='51' then 'PM0'
			when plemtyp ='53' then 'PM1'
			when plemtyp ='54' then 'PM2'
		when plemtyp ='11' then 'SM0'
			when plemtyp ='13' then 'SM1'
		when plemtyp ='14' then 'SM2' 
		end as plemeno_nazov,
		nezist, nezist_p, lahky, lahky_p, stred, stred_p, tazky, tazky_p, operacia, operacia_p, spolu, rok
	from Roc_MPHD_Tab_5_plemTYP as pt 
  	--where pt.plemeno= @plemeno
union

select plemeno,'999'as plemtyp, 'spolu' as plemeno_nazov,  nezist, nezist_p, lahky, lahky_p, stred, stred_p, tazky, tazky_p, operacia, operacia_p,spolu, rok
from Roc_MPHD_Tab_5 as roc 
  			where roc.plemeno not in ('SR','Nez','Osta')
					 
		end
 
go

create PROCEDURE [dbo].[C_VZ_TELATA_VAZENI_210] 
	
AS
BEGIN
	
	SET NOCOUNT ON;
	declare @chov_id varchar(14);
	
	set @chov_id='';

	DECLARE @W INT;

	TRUNCATE TABLE [PLIS].[dbo].[CP_Hmot210]		


	DECLARE cur_Chovatel CURSOR FOR 
		select    DISTINCT CISTELATA
		from View_CP_TELATA210_t3
		;
	

		OPEN cur_Chovatel  
		FETCH NEXT FROM cur_Chovatel INTO  @chov_id ;
		DECLARE @A INT;
		SET @A=0;
		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			SET @A=@A+1;

			
		--	PRINT @W;
			DECLARE @UCISLO VARCHAR(14);
			DECLARE @KGT3 INT;
			DECLARE @D2 INT;
			DECLARE @KGT2 INT;
			DECLARE @D3 INT;

			declare @UID varchar(14);
			set @UID='';

			declare @IDDay int;
			set @IDDay=0;
			--DECLARE @DATNAR DATETIME;

			SET @UCISLO='';

			SET @KGT3=0;
			SET @D2=0;
			SET @KGT2=0;
			SET @D3=0;
			declare @R int;
							declare c cursor for select top 1 t3.hmot,t3.days,t3.chovatel ,t2.hmot,t2.days
												 from plis.dbo.View_cp_Telata210_t3 as T3
												 left join plis.dbo.View_cp_Telata210_t2 as T2
												 on t3.cistelata=t2.cistelata
												where t3.cistelata=@chov_id
												order by t3.days desc

							open c;
							FETCH NEXT FROM c INTO @KGT3,@D3,@UCISLO,@KGT2,@D2;
							WHILE @@FETCH_STATUS = 0
							begin
							DECLARE @XI FLOAT;
							SET @XI=0.00;
							declare @a1 float;
							declare @b1 float;
							declare @c1 float;
							declare @d float;
							declare @i int;
							set @i=0;
							
							

					/*if(@UID!=@UCISLO)
						begin
							set @UID=@Ucislo
							set @IDDay=@D2;
						end
					if(@UID = @UCISLO)
					begin
						if(@IDDay !=@D2)
						begin
							set @r=1;
						end
						else set @r=2;
					end
							IF(@KGT2 IS null)
								BEGIN
									SET @KGT2=30;
										IF(@D3<=210)
											BEGIN
												SET @XI=( ((@KGT3-@KGT2)/@D3)*(210-@D3) )+@KGT3;
												PRINT @XI;
												print N'Xi';
												PRINT @KGT3;
												print N'KG3';
												PRINT @KGT2;
												print N'KG2';
												PRINT @D2;
												print N'D2';
												PRINT @D3;
												print N'D3';
												print @chov_id;
												PRINT N'----- D2==0----- D3<210-------';
											END

										IF(@D3>210)
											BEGIN
												SET @XI=@KGT3-( ((@KGT3-@KGT2)/@D3)*(@D3-210) );
												PRINT @XI;
												print N'Xi';
												PRINT @KGT3;
												print N'KG3';
												PRINT @KGT2;
												print N'KG2';
												PRINT @D2;
												print N'D2';
												PRINT @D3;
												print N'D3';
												print @chov_id;
												PRINT N'----- D2==0----- D3>210-------';
											END
								END

							IF(@KGT2 > 0)
								BEGIN
									--SET @KGT2=30;
										IF(@D3<=210)
											BEGIN
												SET @XI=( ( (@KGT3-@KGT2)/(@D3-@D2) )*(210-@D3) )+ @KGT3;
												PRINT @XI;
												print N'Xi';
												PRINT @KGT3;
												print N'KG3';
												PRINT @KGT2;
												print N'KG2';
												PRINT @D2;
												print N'D2';
												PRINT @D3;
												print N'D3';
												print @chov_id;
												PRINT N'----- D2>0----- D3<210-------';
											END

										IF(@D3>210)
											BEGIN
												SET @XI=@KGT3-( ( (@KGT3-@KGT2)/(@D3-@D2) )*(@D3-210) );
												PRINT @XI;
												print N'Xi';
												PRINT @KGT3;
												print N'KG3';
												PRINT @KGT2;
												print N'KG2';
												PRINT @D2;
												print N'D2';
												PRINT @D3;
												print N'D3';
												print @chov_id;
												PRINT N'----- D2>0----- D3>210-------';
											END
								END*/



							
							IF(@KGT2 IS null)
								BEGIN
									SET @KGT2=30;
										IF(@D3<=210)
											BEGIN
											set @i=1;
											--declare @a1 float;
											set @a1=@KGT3-@KGT2;
											--declare @b1 float;
											set @b1=@D3;
											--declare @c1 float;
											set @c1=210-@D3;
											--declare @d float;
											set @d=@a1/@b1
												SET @XI=@kgt3-(@d*@c1) ;
												
											END
						
										IF(@D3>210)
											BEGIN
											set @i=1;
											set @a1=@KGT3-@KGT2;
											set @b1=@D3;
											set @c1=@D3-210;
											set @d=@a1/@b1

											
												SET @XI=@KGT3-(@d*@c1) ;
											END
							end
							IF(@KGT2 > 0)
								BEGIN
									--SET @KGT2=30;
										IF(@D3<=210 and @i!=1)
											BEGIN
											--declare @a1 float;
											set @a1=@KGT3-@KGT2;
											--declare @b1 float;
											set @b1=@D3-@D2;
											--declare @c1 float;
											set @c1=210-@D3;
										--	declare @d float;
										if(@b1=0)begin set @b1=NULL; end
											set @d=@a1/@b1

										
												SET @XI=(@d*@c1)+ @KGT3;
											END

										IF(@D3>210 and @i!=1)
											BEGIN
											--declare @a1 float;
											set @a1=@KGT3-@KGT2;
											--declare @b1 float;
											set @b1=@D3-@D2;
											--declare @c1 float;
											set @c1=@D3-210;
											--declare @d float;
											set @d=@a1/@b1

												SET @XI=@KGT3-(@d*@c1);
											END
								END
							--print @kgt2;
							--print @d2
							--print @kgt3;
							--print @d3
							--print @chov_id
								--print N'*********************'

								insert into [PLIS].[dbo].[CP_Hmot210] (chovatel,ucislo,hmot210) values (@UCISLO,@chov_id,@XI);

							FETCH NEXT FROM c INTO @KGT2,@D2,@UCISLO,@KGT2,@D2;
							END
							close c;
							Deallocate c;

						--	print @chov_id;
							--print @d;
							--print N'toto bolo @d';
FETCH NEXT FROM cur_Chovatel INTO @chov_id ;
 end

 close cur_Chovatel;
 Deallocate cur_Chovatel;
  print N'Done';

END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_21A]
    @rok varchar(4)
as
begin

	
	select distinct Por_okresu,z.Okres

	from dbo.Roc_MLHD_Tab_21 as z
	--left outer join plis.dbo.Roc_MLHD_Tab_22 t on z.Okres=t.Okres 
	where z.rok = @rok 
	end
go

-- =============================================
-- Author:		<Author,,Machynova>
-- Create date: <Create Date,,16.2.2015>
-- Description:	<Description,,Vyberie potomkov zadanej matky (parameter) so suborov SM_Potomok a SM_APotomok>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PotMatky] 
(	
	-- Add the parameters for the function here
 @pbahcis varchar(8))
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
select KrOkr,stado,LUC,PUC,JedCis,Macis,Datnar,KDPRir from SM_APotomok where macis=@pBahcis
union  select KrOkr,stado,LUC,PUC,JedCis,Macis,DatNar,KDPRir from SM_Potomok where macis=@pBahcis
)
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE S_UzavierkaReprodUkazStadKU_chov
	@chov varchar(9),
	@rokev1 varchar(4),
	@rokev2 varchar(2)
AS
BEGIN
		--use plis
		--declare @chov varchar(9) = '713505096'--'508512023'--'704521081'--'810706368'--'508512023'-- '505700007'--'703008369'--'505549530'--'505803356'--'309481002'--'502512090'--'704521081'--'810706368'--'708517053'
		--declare @rokev1 varchar(9) = '2015'
		--declare @rokev2 varchar(9) = '16'
		declare @rokev varchar(9) = @rokev1 + '' + @rokev2

		declare @datObah as date = ( select MAX(DATOBAH) from SM_KonZap k		
									 where k.KROKR + k.PODNIK + k.STADO = @chov and k.ROKEV1 + k.ROKEV2 = @rokev and DATOBAH is not null
									)
		declare @datpRIP as date = ( select min(DATPRIP) from SM_KonZap k		
									 where k.KROKR + k.PODNIK + k.STADO  = @chov and k.ROKEV1 + k.ROKEV2 = @rokev and DATPRIP is not null
									)
		print '@datObah:'
		PRINT @datObah
		print '@@datpRIP:'
		PRINT @datpRIP


		declare @prCasVyr1 int
		declare @prCasVyr2 int
		declare @pocJal1 int
		declare @pocJal2 int
		declare @pocJal0 int
		declare @prip int
		declare @pocPrip int
		declare @obah int

		--> pocJal1 = pocJal0 - pocet1
		--> prCasVyr2 = pocet1

		--	prCasVyr1 (28)
		set @prCasVyr1 = (select count(*)
							from  SM_BAHNICA b
							where  KROKR + PODNIK + STADO  = @chov
								and bahcis not in	(	select bahcis from SM_KonZap k		
														where k.KROKR + k.PODNIK + k.STADO = @chov and k.ROKEV1 + k.ROKEV2 = @rokev ) 
								and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah
								and b.DATZAR <= @datObah and year(b.datnar) < @rokev1)
		--	PocJal2 (6)
		set @pocJal2 = (select count(*)
						from  SM_BAHNICA b	
						where  KROKR + PODNIK + STADO  = @chov
											and bahcis not in	(	select bahcis from SM_KonZap k		
																	where k.KROKR + k.PODNIK + k.STADO = @chov and k.ROKEV1 + k.ROKEV2 = @rokev ) 
						and b.DATZAR <= @datObah
						and year(b.datnar) < @rokev1
						and ((b.DatVyr is null and b.DOVOD = 0 ) or (b.DATVYR  is not null and b.DATVYR > @datObah)) )
		--	pocJal0
		/*set @pocJal0 = (select count(distinct k.bahcis)
							from SM_KonZap k		
								--left outer join SM_KonZapBaran b on b.id = k.ID_KonZapBaran
								left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
								where  k.KROKR + k.PODNIK + k.STADO  = @chov
									and k.ROKEV1 + k.ROKEV2 = @rokev	
									--and datobah is not null and datprip is not null
									and p.id is null )
									*/
		set @pocJal0 = (select count(*)
						from SM_PremBah
						where krokr+podnik+stado = @chov 
						and rokev1+rokev2 = @rokev
						and pohl1 = '0'
						)


		--	pocet1		--> pocJal1 = pocJal0 - pocet1
						--> prCasVyr2 = pocet1
		set @prCasVyr2 = ( select count(distinct k.bahcis)
								from SM_KonZap k		
									left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
									left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
									left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
									where k.KROKR + k.PODNIK + k.STADO  = @chov
										and k.ROKEV1 + k.ROKEV2 = @rokev	
										and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah						
										and datobah is null and p.id is null
										and ((kzb.BPUC <> '     ' or k.DATOBAH is not null or k.DATPRIP is not null or p.id is not null) )--or (k.bahcis is not null) )
						)

		set @pocJal1 = @pocJal0 - @prCasVyr2

		PRINT '@prCasVyr1'
		PRINT @prCasVyr1
		PRINT '@prCasVyr2'
		PRINT @prCasVyr2
		PRINT '@pocJal0'
		PRINT @pocJal0
		PRINT '@pocJal1'
		PRINT @pocJal1
		PRINT '@pocJal2'
		PRINT @pocJal2
		--PRINT @pocJal1

		 set @prip = (select count(distinct k.bahcis)
								from SM_KonZap k		
									--left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
									--left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
									--left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
									where k.KROKR + k.PODNIK + k.STADO  = @chov
										and k.ROKEV1 + k.ROKEV2 = @rokev	
										--and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah				
									)
		PRINT '@@prip'
		print @prip

		 set @obah = (select count(distinct k.bahcis)
								from SM_KonZap k		
									--left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
									--left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
									--left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
									where k.KROKR + k.PODNIK + k.STADO  = @chov
										and k.ROKEV1 + k.ROKEV2 = @rokev
										and DATOBAH is not null	
										--and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah				
									)
		set @pocPrip = @prip + @prCasVyr1 + @pocJal2


		print 'pripustenych:'
		print @pocPrip
		print 'predc. vyr:'
		print @prCasVyr1 + @prCasVyr2
		print 'jalovych:'
		print @pocJal1 + @pocJal2
		print 'obahnenych:'
		print @obah



		select @pocPrip as 'pripustenych:', @prCasVyr1 + @prCasVyr2 as 'predc. vyr:', @pocJal1 + @pocJal2 as 'jalovych:', @obah as 'obahnenych:'
END
go

-- =============================================
-- Author:		<Vladimir Durech>, I. Kobrtkova, F. Haluskova
-- Create date: <12.08.2016>
-- Update		26.08.2016 - Miesto BarCis je vo vypise CEHZ import. barana
-- Description:	<Import Baranov - data z PLISU a FANDU (z archivov...) >
-- =============================================
CREATE PROCEDURE [dbo].[S_Excel_Import_Baranov]
AS
BEGIN


	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	--$$$$		Ziskanie synov, dcer, vnukov, vnuciek		$$$$
	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


		IF OBJECT_ID('tempdb.dbo.#tib_barany', 'U') IS NOT NULL 
		  DROP TABLE #tib_barany; 
		IF OBJECT_ID('tempdb.dbo.#tib_synovia', 'U') IS NOT NULL 
		  DROP TABLE #tib_synovia; 
		IF OBJECT_ID('tempdb.dbo.#tib_dcery', 'U') IS NOT NULL 
		  DROP TABLE #tib_dcery; 
		IF OBJECT_ID('tempdb.dbo.#tib_vnuci', 'U') IS NOT NULL 
		  DROP TABLE #tib_vnuci; 
		IF OBJECT_ID('tempdb.dbo.#tib_vnucky', 'U') IS NOT NULL 
		  DROP TABLE #tib_vnucky; 
		--declare @synovia table(

		create table #tib_synovia (
			barcis varchar(8),
			roknar varchar(4),
			pocChov int,
			pocPotom int,
			pocPrip int,
			priemVV decimal (5,2),
			pocObah int,
			priemPHML decimal (5,2),
			priemPHVV decimal (5,2)
		)

		create table #tib_dcery (
		--declare @dcery table(
			barcis varchar(8),
			roknar varchar(4),
			pocChov int,
			pocPotom int,
			pocPrip int,
			priemVV decimal (5,2),
			pocObah int,
			priemPHML decimal (5,2),
			priemPHVV decimal (5,2),
			priemMU decimal (5,2)
		)
		--declare @synovia table(
		create table #tib_vnuci (
			barcis varchar(8),
			roknar varchar(4),
			pocChov int,
			pocPotom int,
			pocPrip int,
			priemVV decimal (5,2),
			pocObah int,
			priemPHML decimal (5,2),
			priemPHVV decimal (5,2)
		)

		create table #tib_vnucky (
		--declare @dcery table(
			barcis varchar(8),
			roknar varchar(4),
			pocChov int,
			pocPotom int,
			pocPrip int,
			priemVV decimal (5,2),
			pocObah int,
			priemPHML decimal (5,2),
			priemPHVV decimal (5,2),
			priemMU decimal (5,2)
		)



		-----------------------
		-- OTCOVIA / DEDOVIA --
		-----------------------

		select --ho.*, ml.*, vv.*, b.* 
		b.krokr + b.podnik + b.stado as chov,
		isnull(
		(select top 1 nazov from [plis].[dbo].[NM_CHOVMAS] as n where  n.kraj + n.okres + n.podnik + n.chov = b.krokr + b.podnik + b.stado and cisfarmy <> '000000'),
		(select top 1 nazov from [plis].[dbo].[NM_CHOVMAS] as n where  n.kraj + n.okres + n.podnik + n.chov = b.krokr + b.podnik + b.stado )) as 'Názov chovu',
		b.LUC, b.PUC, 
		barcis, 
		b.ZVSTAT + b.JCCEHZ as CEHZ,
		b.CisLin,
		b.PLEM,
		b.DATZAR,
		b.datVyr,
		vv.PHVELVRH,
		ml.PHMLIEKO
		--case when year(p.DATNAR) is null then year(ap.DATNAR) else year(p.DATNAR) end as Rok
		into #tib_barany
		from SM_Baran b 
		--left outer join SM_Potomok p on p.OTCIS = b.BARCIS
		--left outer join SM_aPotomok ap on ap.OTCIS = b.BARCIS
		--left outer join SM_BLPHHO ho on ho.JEDCIS = b.BARCIS
		left outer join SM_BLPHML ml on ml.JEDCIS = b.BARCIS
		left outer join SM_BLPHVV vv on vv.JEDCIS = b.BARCIS
		where KROKRNAR = '999' --and( year(p.DATNAR) > 2010 or year(ap.DATNAR) > 2010)
		and b.barcis in (
							select otcis from SM_Potomok p where p.otcis = b.barcis and year(p.DATNAR) > 2010
							union
							select otcis from SM_aPotomok p where p.otcis = b.barcis and year(p.DATNAR) > 2010  
						)



		---------------
		--  SYNOVIA  --
		---------------
		insert into #tib_synovia
		select barcis, DNP as 'RokNar',  
		(count(distinct chov)) as 'PocChov',
		count(*) as 'PocPotom',
			sum(PocPrip) as PocPrip, avg(PocPotomkov)  as 'PriemVV', sum(PocObah) as PocObah, avg(pPHml) as PriemPHML, avg(pPHvv) as PriemPHVV
		 from ( 
			select barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Baran b on b.barcis = p.OTCIS 	
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010

			union 

			select barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',		
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Baran b on b.barcis = p.OTCIS 	
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010
		) t
		--order by barcis
		group by barcis, pohl, DNP
		order by BARCIS, DNP asc







		---------------
		--  DCERY    --
		---------------
		insert into #tib_dcery
		select barcis, DNP as 'RokNar',  
		count(distinct chov) as 'PocChov',
		count(*) as 'PocPot',
		sum(PocPrip) as PocPrip, avg(PocPotomkov)  as 'PriemVV', sum(PocObah) as PocObah, avg(pPHml) as PriemPHML, avg(pPHvv) as PriemPHVV, avg(PriemMU) as PriemMU
		 from (
			select barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Baran b on b.barcis = p.OTCIS 
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010


			union

			select barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Baran b on b.barcis = p.OTCIS 
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010
	
		) t
		--order by barcis
		group by barcis, pohl, DNP
		order by BARCIS, DNP asc


		---------------
		--  VNUCI    --
		---------------
		insert into #tib_vnuci
		select barcis, DNP as 'RokNar',  
		(count(distinct chov)) as 'PocChov',
		count(*) as 'PocPotom',
			sum(PocPrip) as PocPrip, avg(PocPotomkov)  as 'PriemVV', sum(PocObah) as PocObah, avg(pPHml) as PriemPHML, avg(pPHvv) as PriemPHVV
		 from ( 
			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Baran b2 on b2.barcis = p.OTCIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010

			union 

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',		
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Baran b2 on b2.barcis = p.OTCIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS	
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010

			UNION

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Bahnica b2 on b2.bahcis = p.MACIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010

			union 

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				 (select count(*) from SM_KonZap ikz
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',		
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					left outer join SM_KonZapBaran ikzb on ikzb.id = ikz.ID_KonZapBaran
					 where ikzb.BARCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Bahnica b2 on b2.bahcis = p.MACIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '4' and year(p.DATNAR) > 2010
		) t
		--order by barcis
		group by barcis, pohl, DNP
		order by BARCIS, DNP asc




		---------------
		--  VNUCKY   --
		---------------
		insert into #tib_vnucky
		select barcis, DNP as 'RokNar',  
		count(distinct chov) as 'PocChov',
		count(*) as 'PocPot',
		sum(PocPrip) as PocPrip, avg(PocPotomkov)  as 'PriemVV', sum(PocObah) as PocObah, avg(pPHml) as PriemPHML, avg(pPHvv) as PriemPHVV, avg(PriemMU) as PriemMU
		 from (
			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Baran b2 on b2.barcis = p.OTCIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010


			union

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Baran b2 on b2.barcis = p.OTCIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010

			UNION

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_POTOMOK p
				left outer join SM_Bahnica b2 on b2.bahcis = p.MACIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010


			union

			select b.barcis, b.zvstat + b.jccehz as cehz, p.jedcis, year(p.DATNAR) as DNP, p.POHL, 
				p.krokr + p.podnik + p.stado as chov,
				(SELECT AVG(MNL3L) AS PrMNL3L
				FROM SM_MlRoky  WHERE (BAHCIS = p.jedcis) AND (MNL3L > 0)) as PriemMU,
				 (select count(*) from SM_KonZap ikz
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPrip',
				(select count(*) from SM_KonZapPotomok ikzp
					left outer join SM_KonZap ikz on ikz.id = ikzp.ID_KonZap
					 where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
				 ) as  'PocPotomkov',		
				 (select count(*) from SM_KonZap ikz 
					  where ikz.BAHCIS = p.jedcis
					 and year(ikz.DATPRIP) = year(p.DATNAR)
					 and ikz.DATOBAH is not null
				 ) as  'PocObah',
				 (select phmlieko  from SM_BLPHML iml where iml.jedcis = p.jedcis ) as 'pPHml',
				 (select phvelvrh from SM_BLPHVV ivv where ivv.jedcis = p.jedcis ) as 'pPHvv'
		
			from SM_APOTOMOK p
				left outer join SM_Bahnica b2 on b2.bahcis = p.MACIS 
				left outer join SM_Baran b on b.barcis = b2.OTCIS
			where b.KROKRNAR = '999' and p.pohl = '3' and year(p.DATNAR) > 2010
	
		) t
		--order by barcis
		group by barcis, pohl, DNP
		order by BARCIS, DNP asc




	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	--$$$$		PH ziskane z FANDU		$$$$
	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	--	autorky:	Idka, Ferka

	--		select * from #BaraniImportPH

	create table #BaraniImportPH(
		KROKR varchar(3) NULL,
		PODNIK varchar(3) NULL,
		STADO varchar(3) NULL,
		LUC varchar(5) NULL,
		PUC varchar(5) NULL,
		BARCIS varchar(8) NULL,
	
		ZVSTAT varchar(2) NULL,
		JCCEHZ varchar(12) NULL,
		DATZAR varchar(10) NULL,
		DATNAR varchar(10) NULL,
		PHVELVRH float NULL,
		PHMLIEKO float NULL,
		PHVELVRH_ZAR float NULL,
		PHMLIEKO_ZAR float NULL

	)


	insert into #BaraniImportPH
	--'KROKR';'PODNIK';'STADO';'LUC';'PUC';'BARCIS';'ZVSTAT';'JCCEHZ';'DATZAR';'DATNAR';'PHVELVRH';'PHMLIEKO';'PHVELVRH_ZAR';'PHMLIEKO_ZAR'
	values
	('302','504','085','84550','0245','00482311','FR','016083510245','03.04.2013','29.10.2010','-0.0441','0.13','0.0615','9.62'),
	('302','504','085','84601','0291','00482313','FR','016377520291','03.04.2013','02.11.2011','-0.0441','2.44','0.0615','9.62'),
	('302','504','085','84701','0331','00482312','FR','016377520331','03.04.2013','02.11.2011','-0.0441','3.37','0.0615','9.62'),
	('302','504','085','84811','0239','00482310','FR','016224720239','03.04.2013','06.10.2011','-0.0441','3.32','0.0615','9.62'),
	('302','504','085','84981','0161','00482308','FR','016334320161','02.04.2013','20.11.2011','-0.0441','0.13','0.0615','9.62'),
	('302','504','085','91010','0100','00482305','FR','016113910100','02.04.2013','04.12.2010','-0.0441','3.99','0.0615','9.62'),
	('302','504','085','91121','0265','00482306','FR','016334320265','02.04.2013','22.11.2011','-0.0441','0.13','0.0615','9.62'),
	('302','504','085','91632','0320','00482299','FR','016365520320','02.04.2013','01.02.2012','-0.0441','-2.04','0.0615','9.62'),
	('302','504','085','91632','0448','00482300','FR','016365520448','02.04.2013','04.02.2012','-0.0441','0.13','0.0615','9.62'),
	('302','504','085','91641','0249','00482301','FR','016224720249','02.04.2013','07.10.2011','-0.0441','3.84','0.0615','9.62'),
	('302','504','085','91651','0193','00482302','FR','016235420193','02.04.2013','20.11.2011','-0.0441','0.13','0.0615','9.62'),
	('307','724','012','91581','0037','00469103','FR','016235420037','17.10.2012','15.11.2011','-0.1234','10.65','-0.0687',''),
	('307','724','012','91591','0092','00469102','FR','016235420092','17.10.2012','17.11.2011','-0.2593','14.19','-0.0687',''),
	('307','724','012','91601','0149','00469101','FR','016235420149','17.10.2012','18.11.2011','-0.1081','5.34','-0.0687',''),
	('307','724','012','91902','9530','00494666','AT','000871629530','19.11.2013','23.01.2012','-0.0658','-16.88','',''),
	('307','724','012','91913','0230','00505362','AT','000944010230','09.10.2014','21.01.2013','-0.0441','0.13','0.076','10.46'),
	('307','724','012','91913','4130','00505354','AT','000944034130','09.10.2014','24.01.2013','-0.0441','0.13','0.076','10.46'),
	('307','724','012','91913','7930','00505357','AT','000944017930','09.10.2014','26.01.2013','-0.0440','0.13','0.076','10.46'),
	('307','724','704','84473','08302','00332920','AT','000121590830','26.07.2006','22.10.2003','0.0037','-7.03','',''),
	('307','724','704','84493','49302','00332922','AT','000121534930','26.07.2006','28.10.2003','-0.0441','0.13','',''),
	('307','724','704','84515','17302','00332936','AT','000138741730','26.07.2006','30.01.2005','-0.1860','-6.06','',''),
	('307','724','704','84515','25303','00332928','AT','000138582530','26.07.2006','05.02.2005','-0.0441','0.13','',''),
	('307','724','704','84515','31433','00332933','AT','000138631430','26.07.2006','05.02.2005','-0.0441','0.13','',''),
	('307','724','704','84515','37130','00332934','AT','000138637130','26.07.2006','28.01.2005','-0.0441','0.13','',''),
	('307','724','704','84515','43300','00332931','AT','000138614330','26.07.2006','06.02.2005','-0.0441','0.13','',''),
	('307','724','704','84515','44302','00332935','AT','000138664430','26.07.2006','24.01.2005','-0.0441','0.13','',''),
	('307','724','704','84515','52303','00332930','AT','000138605230','26.07.2006','01.02.2005','-0.0441','0.13','',''),
	('307','724','704','84515','71302','00332929','AT','000138587130','26.07.2006','22.01.2005','-0.0441','0.13','',''),
	('307','724','704','84515','76302','00332926','AT','000138567630','26.07.2006','29.01.2005','-0.0869','11.70','',''),
	('307','724','704','84515','84302','00332925','AT','000138508430','26.07.2006','19.01.2005','-0.0441','0.13','',''),
	('307','724','704','84515','96302','00332937','AT','000138749630','26.07.2006','30.01.2005','-0.0441','0.13','',''),
	('307','724','704','84516','5510','00376164','AT','000168385510','07.12.2007','14.02.2006','-0.0441','0.13','',''),
	('307','724','704','84516','5710','00376161','AT','000168445710','07.12.2007','09.02.2006','-0.0441','0.13','',''),
	('307','724','704','84516','8110','00376162','AT','000168448110','07.12.2007','17.02.2006','-0.0441','0.13','',''),
	('307','724','704','91097','0310','00378101','AT','000359370310','03.04.2008','26.01.2007','-0.0441','0.13','',''),
	('307','724','704','91097','1110','00378102','AT','000359311110','03.04.2008','24.02.2007','-0.0441','0.13','',''),
	('308','004','002','91961','7220','00536264','AT','000872147220','08.12.2015','06.02.2011','0.0853','14.35','0.0853','14.35'),
	('308','004','002','91975','7340','00536268','AT','000215287340','08.12.2015','28.01.2015','0.0853','14.35','0.0853','14.35'),
	('309','101','007','74693','9021','00495426','CZ','000059021081','13.06.2014','26.04.2013','0.0560','0.00','0.1077',''),
	('309','101','007','74744','4110','00526117','CZ','000064110081','11.02.2015','07.05.2014','0.0228','0.00','',''),
	('505','700','001','84602','2253','00482789','HU','000132122253','12.06.2013','10.02.2012','-0.0441','0.13','0.0615','9.62'),
	('505','700','001','91842','2239','00482790','HU','000132122239','12.06.2013','08.02.2012','-0.0441','0.13','0.0615','9.62'),
	('505','700','001','91852','2288','00482791','HU','000132122288','12.06.2013','12.02.2012','-0.0441','0.13','0.0615','9.62'),
	('505','010','055','50715','1058','00537944','CZ','000001058034','18.03.2016','24.02.2015','0.0853','14.35','0.0853','14.35'),
	('506','502','355','91903','8530','00505351','AT','000660008530','06.10.2014','15.01.2013','-0.0493','-4.12','0.076','10.46'),
	('506','502','355','91913','0530','00505349','AT','000944070530','06.10.2014','19.01.2013','-0.0440','0.13','0.076','10.46'),
	('601','045','005','74744','3943','00536259','CZ','000063943081','26.11.2015','27.04.2014','0.1907','0.00','',''),
	('601','001','966','84816','5228','00417475','FR','055112405228','12.02.2010','19.11.2006','-0.2754','14.56','0.0635','11.97'),
	('601','001','966','91529','3713','00401760','CZ','000023713071','24.09.2009','16.02.2009','-0.0440','0.13','',''),
	('601','001','966','91550','2620','00443071','AT','000813402620','02.08.2011','23.01.2010','0.0273','7.03','',''),
	('603','215','003','74632','6300','00528545','CZ','000046300072','14.07.2015','14.02.2012','0.0228','0.00','',''),
	('603','821','964','84204','0484','00535987','CZ','000040484071','02.10.2015','10.03.2014','-0.0441','0.13','0.0800','11.48'),
	('603','821','964','84704','0375','00535444','FR','055150050375','16.09.2015','15.11.2014','-0.0441','0.13','0.0800','11.48'),
	('604','704','102','91914','1230','00536805','AT','000871691230','10.02.2016','27.01.2014','0.0853','14.35','0.0853','14.35'),
	('604','704','102','91975','8340','00536801','AT','000579888340','10.02.2016','24.01.2015','0.0853','14.35','0.0853','14.35'),
	('604','701','443','84250','0872','00239934','','000000000000','12.12.2001','03.03.2000','-0.0293','11.80','',''),
	('605','513','001','74883','6315','00494669','CZ','000056315053','19.11.2013','10.03.2013','0.0228','0.00','',''),
	('605','513','003','50718','0255','00485065','FR','016227890255','','12.11.2008','0.0000','0.00','',''),
	('606','041','004','91792','2279','00492011','HU','000132122279','11.10.2013','11.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91852','2125','00492006','HU','001321222125','11.10.2013','13.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91852','2237','00491998','HU','001321222237','11.10.2013','18.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91852','2271','00492002','HU','000132122271','11.10.2013','11.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91882','2155','00491980','HU','001321222155','11.10.2013','14.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91882','2212','00491984','HU','001321222212','11.10.2013','16.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','041','004','91882','2413','00491976','HU','001321222413','11.10.2013','25.02.2012','-0.0441','0.13','0.0615','9.62'),
	('606','536','102','74415','42163','00229936','','000000000000','','11.03.1995','0.0228','0.00','',''),
	('606','536','102','74415','43557','00229937','','000000000000','','01.05.1995','0.0228','0.00','',''),
	('606','536','102','74425','43010','00215591','','000000000000','','','0.0228','0.00','',''),
	('606','536','102','74425','43461','00229938','','000000000000','','02.05.1995','0.0228','0.00','',''),
	('606','536','102','74445','42147','00229939','','000000000000','','10.03.1995','0.0228','0.00','',''),
	('606','536','102','74455','42460','00229940','','000000000000','','15.03.1995','0.0228','0.00','',''),
	('606','536','102','74455','42486','00229941','','000000000000','','15.03.1995','0.0228','0.00','',''),
	('606','536','102','74455','43627','00229942','','000000000000','','13.05.1995','0.0228','0.00','',''),
	('606','708','201','78403','0015','00527356','FR','038129240015','11.06.2015','06.09.2013','-0.0374','0.00','0.1542',''),
	('606','708','201','78413','0022','00527363','FR','010088140022','11.06.2015','22.10.2013','-0.0374','0.00','0.1542',''),
	('606','708','202','92054','0156','00527368','FR','021568040156','11.06.2015','06.02.2014','0.0228','0.00','0.2105',''),
	('607','509','031','85172','9 352','00262945','SK','000000126631','17.12.2002','25.02.2002','0.0000','0.00','',''),
	('609','301','009','92034','6351','00525452','CZ','000056351053','18.11.2014','03.03.2014','0.0227','0.00','0.1077',''),
	('609','719','010','74884','0533','00525453','CZ','000060533053','18.11.2014','08.03.2014','0.0228','0.00','0.1077',''),
	('609','719','010','74884','6355','00525456','CZ','000056355053','18.11.2014','04.03.2014','0.0228','0.00','0.1077',''),
	('609','701','042','91569','3554','00460700','FR','016066103554','03.09.2012','04.11.2009','-0.2415','-6.77','0.0448','10.1446'),
	('609','701','042','91570','0195','00460701','FR','016066110195','03.09.2012','26.10.2010','-0.1395','0.13','0.0448','7.45'),
	('609','701','046','47011','0039','00494882','FR','000000510039','18.12.2013','27.02.2011','0.0000','0.00','',''),
	('609','702','100','91014','0223','00535783','FR','016229250223','24.09.2015','27.10.2014','-0.0441','0.13','0.0800','11.48'),
	('610','566','705','74461','0 521','00239938','','000000000000','21.06.2002','20.04.2001','0.0228','0.00','',''),
	('610','566','705','74461','0 531','00239939','','000000000000','21.06.2002','23.04.2001','0.0228','0.00','',''),
	('610','566','705','74461','0 56','00239937','','000000000000','21.06.2002','27.04.2001','0.0228','0.00','',''),
	('610','566','705','74461','0 58','00239940','','000000000000','21.06.2002','11.05.2001','0.0228','0.00','',''),
	('610','566','705','74461','74512','00239941','','000000000000','21.06.2002','05.03.2001','0.0228','0.00','',''),
	('611','707','002','91954','9901','00527443','CZ','000079901072','03.07.2015','14.02.2014','-0.0434','0.13','0.0800','11.48'),
	('611','707','005','74868','0323','00416561','NL','000000000323','08.01.2010','22.04.2008','0.0287','0.00','0.1218',''),
	('703','000','000','84576','0235','00376794','FR','016213770235','26.08.2008','09.11.2006','0.0853','14.35','',''),
	('703','000','000','84576','0856','00376798','FR','016350660856','26.08.2008','29.11.2006','-0.2343','-0.33','',''),
	('703','000','000','84816','7991','00376799','FR','055112607991','26.08.2008','05.11.2006','-0.0780','1.18','',''),
	('703','000','000','91026','0307','00376797','FR','016337170307','26.08.2008','16.11.2006','0.0853','14.35','',''),
	('703','000','000','91126','0386','00376793','FR','016160670386','26.08.2008','07.09.2006','-0.1055','14.35','',''),
	('703','830','371','50660','8556','00444399','CZ','000028556071','09.09.2011','28.01.2010','-0.0441','0.13','',''),
	('703','830','371','50660','8558','00444400','CZ','000028558071','09.09.2011','15.01.2010','-0.0441','0.13','',''),
	('703','830','371','84416','8703','00397160','CZ','000028703032','09.01.2009','13.04.2006','-0.0008','1.88','',''),
	('703','830','371','84416','8705','00397159','CZ','000028705032','09.01.2009','20.04.2006','-0.0441','0.13','',''),
	('703','830','371','84417','2484','00397158','CZ','000022484071','08.01.2009','24.04.2007','0.0853','14.35','',''),
	('703','830','371','84417','2487','00397157','CZ','000022487071','08.01.2009','30.04.2007','-0.0441','0.13','',''),
	('703','830','371','91026','0306','00376796','FR','016337170306','26.08.2008','16.11.2006','0.0802','5.38','',''),
	('703','830','371','91529','3711','00422540','CZ','000023711071','23.08.2010','31.01.2009','-0.0441','0.13','0.0635','11.97'),
	('703','830','371','91529','3722','00422539','CZ','000023722071','23.08.2010','06.02.2009','-0.0441','0.13','0.0635','11.97'),
	('707','000','000','92023','7058','00505373','CZ','000057058081','09.10.2014','26.04.2013','-0.0101','0.00','0.1077',''),
	('707','000','000','92083','7049','00528644','CZ','000057049081','11.08.2015','23.04.2013','0.0228','0.00','',''),
	('707','131','006','91893','4267','00505390','CZ','000084267031','09.10.2014','08.03.2013','-0.0441','0.13','0.076','10.46'),
	('710','000','000','74793','5499','00505464','CZ','000055499081','09.10.2014','27.03.2013','0.0228','0.00','0.1077',''),
	('806','098','007','91862','2218','00482787','HU','001321222218','12.06.2013','18.02.2012','-0.0441','0.13','0.0615','9.62'),
	('806','098','007','91862','2220','00482788','HU','001321222220','12.06.2013','18.02.2012','-0.0441','0.13','0.0615','9.62'),
	('806','098','007','91892','5247','00492023','CZ','000035247071','11.10.2013','22.01.2012','-0.0441','0.13','0.0615','9.62'),
	('806','098','306','74983','3335','00505484','HU','001340243335','09.10.2014','09.02.2013','0.0228','0.00','0.1077',''),
	('806','098','306','74993','3345','00505408','HU','001340243345','09.10.2014','10.02.2013','0.0228','0.00','0.1077','')


	update #BaraniImportPH
	set PHVELVRH_ZAR = null
	where PHVELVRH_ZAR = 0

	update #BaraniImportPH
	set PHMLIEKO_ZAR = null
	where PHMLIEKO_ZAR = 0



	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	--$$$$		Vyskladanie tabulky		$$$$
	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$


	--	drop table #tib_finall

	create table #tib_finall (
		_chov varchar(9),
		_barcis varchar(8),	
		krokr varchar (3),
		podnik varchar (3),
		stado varchar (3),
		chov varchar (9),
		chovNazov varchar(256),
		luc varchar(5),
		puc varchar(5),
		--barcis varchar(8),
		cehz varchar(14),
		linia varchar(32),
		plemeno varchar(10),
		datZar date,
		datVyr date,
		PHVV decimal (5,2),
		PHML decimal (5,2),
		rok varchar(4),

		s_pocChov int,
		s_pocPotom int,
		s_pocPrip int,
		s_priemVV decimal (5,2),
		s_pocObah int,
		s_priemPHML decimal (5,2),
		s_priemPHVV decimal (5,2),

		d_pocChov int,
		d_pocPotom int,
		d_pocPrip int,
		d_priemVV decimal (5,2),
		d_pocObah int,
		d_priemPHML decimal (5,2),
		d_priemPHVV decimal (5,2),
		d_priemMU decimal (5,2),

		v_pocChov int,
		v_pocPotom int,
		v_pocPrip int,
		v_priemVV decimal (5,2),
		v_pocObah int,
		v_priemPHML decimal (5,2),
		v_priemPHVV decimal (5,2),
	
		w_pocChov int,
		w_pocPotom int,
		w_pocPrip int,
		w_priemVV decimal (5,2),
		w_pocObah int,
		w_priemPHML decimal (5,2),
		w_priemPHVV decimal (5,2),
		w_priemMU decimal (5,2)

	)
	
	declare @rok int = 2011

		insert into #tib_finall
		select b.chov as _chov, b.barcis as _barcis, 
			substring(b.chov, 1, 3) as krokr, substring(b.chov, 4, 3) as podnik, substring(b.chov, 7, 3) as stado, 
			--b.*, 
			b.chov, b.[Názov chovu], b.LUC, b.PUC, b.CEHZ, b.CisLin, b.PLEM, b.DATZAR, b.DATVYR, b.PHVELVRH, b.PHMLIEKO,
			@rok as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		--into #tab
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok


	while @rok < 2016
	begin
		set @rok = @rok + 1
	
		--select  * from (
		-- 2011
		insert into #tib_finall
		--select b.chov as _chov, b.*, @rok as Rok,
		select b.chov as _chov, b.barcis as _barcis, 		
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,  @rok as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok
	end



	update #tib_finall
	set PHVV = (select PHVELVRH_ZAR from #BaraniImportPH ph where ph.barcis = #tib_finall._barcis)

	update #tib_finall
	set PHML = (select PHMLIEKO_ZAR from #BaraniImportPH ph where ph.barcis = #tib_finall._barcis)
	--where 

	update #tib_finall
	set PHVV = null, PHML = null
	where chov is null



	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
	--$$	Final selekt - treba vsak este upravy v exceli...		$$$
	--$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

	select * from #tib_finall order by _chov, _barcis, rok




	/*
	select chov, chovNazov, barcis, plemeno, linia, datzar, datvyr from #tib_finall 
	where chov is not null
	order by datzar asc


	select chov, chovNazov, barcis, plemeno, linia, datzar, datvyr from #tib_finall 
	where chov is not null and datvyr is null
	order by datzar asc



	select chov, chovNazov, barcis, plemeno, linia, datzar, datvyr from #tib_finall 
	where chov is not null and datvyr is not null
	order by datzar asc

	select * from #tib_finall


	*/


	--group by _chov
	--order by _chov, rok
	--select * from #tab order by _chov, rok
	/*
		union
		-- 2012
			--select b.*, @rok +1 as Rok,
			select b.chov as _chov, null, null, null, null, null, null, null, null, null, null, null,  @rok +1 as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok

		union
		--2013
			--select b.chov as _chov,  b.*, @rok + 2 as Rok,
			select b.chov as _chov, null, null, null, null, null, null, null, null, null, null, null,  @rok +1 as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok

		union
		-- 2014
			--select b.chov as _chov,  b.*, @rok + 3 as Rok,
			select b.chov as _chov, null, null, null, null, null, null, null, null, null, null, null,  @rok +1 as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok

		union
		-- 2015
			--select b.chov as _chov,  b.*, @rok + 4 as Rok,
			select b.chov as _chov, null, null, null, null, null, null, null, null, null, null, null,  @rok +1 as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok

		union
		-- 2016
			--select b.chov as _chov,  b.*, @rok + 5 as Rok,
			select b.chov as _chov, null, null, null, null, null, null, null, null, null, null, null,  @rok +1 as Rok,
			s.pocChov as s_pocChov, s.pocPotom as s_pocPotom, s.pocPrip as s_pocPrip, s.priemVV as s_priemVV, s.pocObah as s_pocObah, s.priemPHML as s_priemPHML, s.priemPHVV as s_priemPHVV,
			d.pocChov as d_pocChov, d.pocPotom as d_pocPotom, d.pocPrip as d_pocPrip, d.priemVV as d_priemVV, d.pocObah as d_pocObah, d.priemPHML as d_priemPHML, d.priemPHVV as d_priemPHVV, d.priemMU as d_priemMU,
			v.pocChov as v_pocChov, v.pocPotom as v_pocPotom, v.pocPrip as v_pocPrip, v.priemVV as v_priemVV, v.pocObah as v_pocObah, v.priemPHML as v_priemPHML, v.priemPHVV as v_priemPHVV,
			w.pocChov as w_pocChov, w.pocPotom as w_pocPotom, w.pocPrip as w_pocPrip, w.priemVV as w_priemVV, w.pocObah as w_pocObah, w.priemPHML as w_priemPHML, w.priemPHVV as w_priemPHVV, w.priemMU as w_priemMU
		from #tib_barany b
			left outer join #tib_synovia s on s.barcis = b.barcis and s.roknar = @rok
			left outer join #tib_dcery d on d.barcis = b.barcis and d.roknar = @rok
			left outer join #tib_vnuci v on v.barcis = b.barcis  and v.roknar = @rok
			left outer join #tib_vnucky w on w.barcis = b.barcis  and w.roknar = @rok
		) as t
		order by _chov, rok
	--end
	*/




END


--	exec [S_Excel_Import_Baranov]
go




-- =============================================
-- Author:		pssr, s.p.
-- Create date: 07.02.2017
-- Description:	aktualizacia pristupov - priradenia chovov pristupom do PLIS-u
-- =============================================
CREATE PROCEDURE [dbo].[N_aktual_pristupy]

AS
BEGIN
-------------------------------------------------------------------
--  ---------------------------------------------------------------
-- BA vedenie -----------------------------------------------------
-------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (494, 495, 831, 849, 972, 997)

	-- 494 Ryba HDSR + OVSR + KO SR
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 494, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 494, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 494, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	 -- 849 Görözdi HDSR + OVSR + KO SR
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 849, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 849, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 849, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 )))
	 
	-- 495 Dianova HDSR + OVSR 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 495, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 495, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 495, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	 
	
	 --831 Lipovsky 831 HD SR + OV SR + KO SR
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 831, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 831, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 831, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

-- 972 Benkei HDSR + OVSR 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 972, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 972, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 972, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	 
 -- 997 Lukač  Marian HD SR + OV SR + KO SR
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 997, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 997, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 997, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))	
	
------------------------------------------------------------------------
-- BB 12 ---------------------------------------------------------------
------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (356, 359, 668, 718, 807, 833, 986)

	 
	-- 356 Rajcok HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 356, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 356, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 356, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	-- 359 Nemeskurthyova HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 359, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 359, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 359, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	
	--668 Stefanovic  HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 668, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (668, '6', '01', '002', '968', '3' ),
		   (668, '6', '05', '927', '001', '4' ) 
	

	--718 Kucerova HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 718, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 718, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 718, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	

		
	--807  Žilíková HD +  OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 807, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 807, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 807, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --833  Balciarová HD +  OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 833, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 833, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 833, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
 --986  Murinčeková HD +  OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 986, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('12') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 986, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 986, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('12') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))	 
----------------------------------------------------------------------------------------
-- BIOSERVIS ---------------------------------------------------------------------------
----------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (843) 
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 843, kraj,  okres, podnik, chov, typzv from
	(SELECT ch.KRAJ, ch.OKRES, ch.PODNIK, ch.CHOV, d.PRIZNAK, ch.TYPZV

	  FROM [plis].[dbo].[NM_CHOVMAS] as ch
	  inner join NM_HDDETAIL as d on ch.KRAJ + ch.okres + ch.PODNIK + substring(ch.CHOV, 1, 2) = d.kraj + d.okres + d.podnik + substring(d.chov,1, 2 )
	  where ch.TYPZV = 1 and d.PRIZNAK = 02 and ch.ZRUS is null) as s
	  where SUBSTRING(chov, 3, 1) <> '0')
	  
	  insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (843, '8', '06', '098', '011', '1') 
	  insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (843, '7', '07', '710', '713', '1') 
  
------------------------------------------------------------------------------------------
-- DS02 ----------------------------------------------------------------------------------
------------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (439, 447, 454, 478, 484, 493, 657, 658, 659, 660, 669,  683, 685, 686, 687)
	 
	--439 Bognar HD + 1 chov OV + ko
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 439, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (439, '4', '01', '728', '009', '3' ),
		   (439, '4', '01', '818', '001', '4' ) 
	
	--447 Szuszek HD + OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 447, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 447, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 447, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	

	 --478 Polak HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 478, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 478, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
		
	--484 Kertesz HD + 1 chov OV+ KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 484, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (484, '4', '01', '728', '009', '3' ),
		   (484, '4', '01', '818', '001', '4' ) 
	
	-- 493 Ganyovics  HD + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 493, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 493, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 

	--657 Stevkova HD + OV 02 aj OV 11 KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 657, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 657, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02', '11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 657, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02', '11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --658 Balazova  HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 658, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (658, '4', '01', '728', '009', '3' ),
		   (658, '4', '01', '818', '001', '4' )  
	
	--659 Bleszak  HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 659, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (659, '4', '01', '728', '009', '3' ),
		   (659, '4', '01', '818', '001', '4' ) 
	

	--660 Rozsa 660 HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 660, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (660, '4', '01', '728', '009', '3' ),
		   (660, '4', '01', '818', '001', '4' ) 
	
	--669 Posa HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 669, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (669, '4', '01', '728', '009', '3' ),
		   (669, '4', '01', '818', '001', '4' ) 
	
	
	-- 683 Jakabovic HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 683, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (683, '4', '01', '728', '009', '3' ),
		   (683, '4', '01', '818', '001', '4' ) 
	

	
	--685 Marczel HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 685, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 686, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 686, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('02') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	

	--686 Molnar HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 686, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (686, '4', '01', '728', '009', '3' ),
		   (686, '4', '01', '818', '001', '4' ) 
	
	--687 Pasztorek 687 HD + 1 chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 687, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('02') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (687, '4', '01', '728', '009', '3' ),
		   (687, '4', '01', '818', '001', '4' ) 
	

--------------------------------------------------------------------------------
-- LM13 ------------------------------------------------------------------------
--------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in ( 369, 370, 372, 373, 677,  690, 691, 692, 693, 694, 695, 821, 852, 947, 974, 1003 )
	 

	--369 Kubin OV + KO + 1 chov KUHD + 1 chov KUMP + 1 chov KUTMHD
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 369, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 369, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (369, '5', '05', '501', '011', '1'), 
		   (369, '5', '05', '519', '902', '1'),
		   (369, '5', '05', '425', '701', '1')
	
	


	--372 Janeckova  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 372, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 372, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 372, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	-- 373 Gregor  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 373, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 373, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 373, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 -- poziadavka Gregor --20161128
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 373, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 where h.PRIZNAK = '01' and (h.KRAJ + h.OKRES = '309' or h.KRAJ + h.OKRES = '304'))
	

	 -- 852 Liška  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 852, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 852, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 852, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	--690 Janecek  HD + 1 chov OV + 1 chov KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 690, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (690, '5', '01', '508', '074', '3' ),
		   (690, '5', '02', '705', '029', '4' )   
	
	--691 Linsky   HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 691, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (691, '5', '01', '508', '074', '3' ),
		   (691, '5', '02', '705', '029', '4' )   
	
	-- 692 Tomko  HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 692, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (692, '5', '01', '508', '074', '3' ),
		   (692, '5', '02', '705', '029', '4' )   
	
	-- 693 Janidzarova  HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 693, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (693, '5', '01', '508', '074', '3' ),
		   (693, '5', '02', '705', '029', '4' )   
	
	-- 694 Bolek HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 694, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 694, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 694, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 

	
	
	-- 695  Lacko 6 HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 695, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (695, '5', '01', '508', '074', '3' ),
		   (695, '5', '02', '705', '029', '4' )   
	
	-- 821  Hrnčiar Milan, Ing  6 HD + 1 chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 821, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (821, '5', '01', '508', '074', '3' ),
		   (821, '5', '02', '705', '029', '4' )   
	
	-- 677  Holešová  Rozália   HD +  OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 677, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 677, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 677, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	-- 947  Kondor Tibor, BC     HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 947, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 947, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 947, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	--974 Chamaj Patrik  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 974, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 974, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 974, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('13') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	
	--1003  Kloptová Ivana  HD 
	
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 1003, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('13') and h.PRIZNAK = '01'))
	
	
	
---------------------------------------------------------------------------------
-- PO21 -------------------------------------------------------------------------
---------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where IDPRACKU in (387,  389, 388, 390, 391, 395, 502,  617, 618, 619, 622, 624, 654, 664, 665, 666,
											680, 681, 682, 717, 720, 832, 958, 1016 )
                               
	 

	--2. Milke 502 HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 502, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 502, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 502, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 502, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --3. Bujnak 387 HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 387, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 387, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 387, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	  
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 387, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	  
			 
	   --7. Spisak 391 HD + OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 391, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 391, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 391, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 391, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	    --7. Kaminsky HD 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 390, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
		
	
	 
	 --8. Gancarcikova 395 OV + KO + 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 395, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 395, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 395, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
   	 where (o.REGION in  ('21') and h.PRIZNAK = '01' and h.SPVYKON = '4' ))
	
	
		--9. Jankovcin 396 HD a jeden chov OV + KO
	
  
	
	   --10. Cizmar 719 HD  + OV + KO
	
	
	  --11. Plaskon 617 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 617, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 617, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 617, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values 
			(617, '7', '03', '703', '012', '4')
	
	  --12. Ilko  618 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 618, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 618, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 618, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	
	  --13. Kuchta  619 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 619, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 619, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 619, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
		
	 --14. Telepak  622 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 622, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 622, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (622, '7', '01', '102', '012', '3'),
			(622, '7', '03', '703', '012', '4') 
	
	 --15. Krafcak  624 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 624, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 624, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (624, '7', '01', '102', '012', '3'),
			(624, '7', '03', '703', '012', '4')  
	
	 --16. Benej 654 HD + OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 654, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 654, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 654, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	  --17. Hyriak  664 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 664, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 664, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (664, '7', '01', '102', '012', '3'),
			(664, '7', '03', '703', '012', '4')   
	
	  --18. Gadus  665 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 665, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 665, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (665, '7', '01', '102', '012', '3'),
			(625, '7', '03', '703', '012', '4')   
	
	  --19. Kleja  666 HD a OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 666, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 666, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 666, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 666, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	

	  --21. Szakala  680 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 680, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 680, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (680, '7', '01', '102', '012', '3'),
			(680, '7', '03', '703', '012', '4')    
	
	  --22. Ilenin  681 HD a jeden chov OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 681, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 681, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (681, '7', '01', '102', '012', '3'),
			(681, '7', '03', '703', '012', '4')

		   
	
	 --23. Quansah 682 HD a jeden chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 682, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 682, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 682, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 682, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (682, '7', '01', '102', '012', '3'),
			(682, '7', '03', '703', '012', '4')

	
	 --24. Hencovsky 717 HD a  OV a KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 717, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 717, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 717, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 717, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --25. Čečák 720 HD a jeden chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 720, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 720, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (720, '7', '01', '102', '012', '3'),
			(720, '7', '03', '703', '012', '4')    
  
	  --26. Puškár Michal Ing.  832 HD a jeden chov OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 832, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 832, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 values (832, '7', '01', '102', '012', '3'), 
			(832, '7', '03', '703', '012', '4')  

	--27. Chomjaková Mária, ing 958 HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 958, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 958, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.kraj = '8' and o.OKRES = '08' and h.PRIZNAK = '01'))
	

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 958, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 958, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	 --28. Cabovská Ivana, ing 1016 HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 1016, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('21') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 1016, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 1016, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('21') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
------------------------------------------------------------------------------------- 
-- PRE HOLSTEINSKY ZVAZ -------------------------------------------------------------
------------------------------------------------------------------------------------- 

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (732) 
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 732, substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Krava
	where (pl1 = 'H' OR PL1 = 'R') and priznakku = 1 and dovvyr is null
	group by chovatel )	

-------------------------------------------------------------------------------------
-- PRE PINZGAUSKY ZVAZ---------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (797)
                               
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 797, substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Krava
	where (pl1 = 'P'  and dovvyr is null) 
	group by chovatel )

-------------------------------------------------------------------------------------
-- PRE  ZVAZ CHOVATELOV MP---------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (985)
                               
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 985, substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Krava
	where ( priznakku = 2 and dovvyr is null) 
	group by chovatel )

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 985, substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Telata
    where ( priznakku = 2 and dovvyr is null and chovatel is not NULL) 
	group by chovatel )
-------------------------------------------------------------------------------------
-- PREVADZKA ------------------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in ( 491, 786, 804, 840, 931, 945)
	 
	--1. 491 Jaroščiaková  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 491, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 491, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 491, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	--2. 786 Kubenova HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 786, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 786, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 786, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --3. 804  Malickova HD 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 804, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 804, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 804, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --4. 840  Haluskova  OV+KY 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 840, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU  > 0 and VYKKU < 8))
	 
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 840, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU > 0 and VYKKU < 8))
	 --5. 931 Kišová HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 931, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 931, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 931, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	  --5. 945 Benkeiová EVA HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 945, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 945, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 945, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 		
  --6. 971 Behárková Janka HD 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 971, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
-------------------------------------------------------------------------------------
-- PRE ZVAZ CHOVATELOV  SLOVENSKEHO  STRAKATEHO DOBYTKA ----------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (845) 
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 845, substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Krava
	where (pl1 = 'S' OR PL1 = 'B' OR PL1 = 'MB') and priznakku = 1 and dovvyr is null
	group by chovatel )

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	( select distinct 845,  substring (chovatel, 1, 1)as KRAJ, substring (chovatel, 2, 2)as OKRES, substring (chovatel, 4, 3)as PODNIK, substring (chovatel, 7, 3)as CHOV , '1' from dbo.CM_Telata as t
     inner join NM_HDDETAIL as h on substring (t.chovatel, 1, 1) = h.KRAJ and substring (t.chovatel, 2, 2) = h.OKRES and substring (t.chovatel, 4, 3) = h.PODNIK and substring (chovatel, 7, 3) = h.CHOV
	where (pl1 = 'S' OR PL1 = 'B' OR PL1 = 'MB') and h.priznak = 01  and h.TECHUSMD != '00' ) 
	order by KRAJ, OKRES, podnik

-------------------------------------------------------------------------------------
-- PROGRAMATORI ---------------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in ( 473, 496,  500, 772, 814, 952)
	 
	--1. 473 Rosincinova  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 473, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 473, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 473, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 OR VYKKU = 3)))
	 
	--2. 496 Kobrtkova HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 496, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 496, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 496, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 


	  --6. 772 Durech HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 772, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 772, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU > 0 and vykku  < 8 ))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 772, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU > 0 and vykku < 8))
	 

	   --7. 814 Holesova HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 814, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 814, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 814, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where ( CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

  
-------------------------------------------------------------------------------------
-- TT11 -----------------------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (414, 415, 416, 417, 698, 699, 700, 701, 703, 704, 705, 706, 707, 708, 709, 712, 713, 711, 714,
											715, 716, 769, 770 )
	 
	-- 414 Mikita  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 414, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 414, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 414, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	--415 Majtan  HD + OV + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 415, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 415, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 415, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	--417 Piec  HD+OV +KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 417, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 417, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 417, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --698 Drinkova  HD + 1 chov OV+ + KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 698, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	 (select 698, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 698, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
	
	--699 Jansak  HD + OV
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 699, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 699, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 699, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --700 Kuliskova  HD + 1 chov OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 700, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (700, '2', '07', '836', '003', '3' ),
		   (700, '2', '04', '017', '001', '4' )
	
	 --701 Mokra  HD + 1 chov OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 701, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (701, '2', '07', '836', '003', '3' ),
		   (701, '2', '04', '017', '001', '4' )
	
	--703 Sulko 703 HD SR + OV SR + KO SR
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 703, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 703, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 703, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	   where ( CISKON <> '00000' and CISZOO  <> '000000' and (VYKKU = 1 or VYKKU = 3)))
	
	 --704. Tomovic HD + 1 chov OV
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 704, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (704, '2', '07', '836', '003', '3' ),
		   (704, '2', '04', '017', '001', '4' )
	
	 --705 Lauro 705  HD + 1 chov OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 705, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (705, '2', '07', '836', '003', '3' ),
		   (705, '2', '04', '017', '001', '4' ) 
	
	--706 Strnisko HD + 1 chov OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 706, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (706, '2', '07', '836', '003', '3' ),
		   (706, '2', '04', '017', '001', '4' )
	
	--707 Detko  HD + 1 chov OV + KO
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 707, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (707, '2', '07', '836', '003', '3' ),
		   (707, '2', '04', '017', '001', '4' )
	
	--708 Gago  HD + OV +KO
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 708, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 708, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 708, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (o.REGION in  ('11') and CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 --709 Minarik 709 HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 709, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (709, '2', '07', '836', '003', '3' ),
		   (709, '2', '04', '017', '001', '4' )
	

	--712 Pikna  HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 712, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (712, '2', '07', '836', '003', '3' ),
		   (712, '2', '04', '017', '001', '4' )
	

	--714 Samuhel HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 714, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (714, '2', '07', '836', '003', '3' ),
		   (714, '2', '04', '017', '001', '4' )
	
	--715 Sipek  HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 715, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (715, '2', '07', '836', '003', '3' ),
		   (715, '2', '04', '017', '001', '4' )
	
	--716 Tomanovova 716 HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 716, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (716, '2', '07', '836', '003', '3' ),
		   (716, '2', '04', '017', '001', '4' )
	
	--770 Kuliska HD + 1 chov OV + KO
	  insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 770, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (o.REGION in  ('11') and h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV  (IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	values (770, '2', '07', '836', '003', '3' ),
		   (770, '2', '04', '017', '001', '4' ) 
	

-------------------------------------------------------------------------------------
-- UPZ Nitra -------------------------------------------------------------------------
-------------------------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in ( 811, 956)
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 811, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 956, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where ( h.PRIZNAK = '01'))

-- Plemenárska inšpekcia -----------------------------------------------------
-------------------------------------------------------------------

	delete from NM_PRACCHOV
	where NM_PRACCHOV.IDPRACKU in (749, 750, 751)

	-- 749 PI Nitra HDSR + OVSR + KO SR
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 749, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 749, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 749, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))

	 -- 750 PI Banská Bystrica HDSR + OVSR + KO SR
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 750, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 750, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 750, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	-- 751 PI Prešov HDSR + OVSR 
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	(select 751, h.kraj, h.okres, podnik, chov, typzv from NM_HDDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	where (h.PRIZNAK = '01'))
	
	insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 751, h.kraj, h.okres, podnik, chov, 3 from NM_OVDETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	 insert into NM_PRACCHOV ( IDPRACKU, KRAJ, OKRES, PODNIK, CHOV, TYPZV)
	  (select 751, h.kraj, h.okres, podnik, chov, 4 from NM_KODETAIL as h
	 inner  join
	 NC_OKRES as o on h.OKRES = o.OKRES and h.KRAJ = o.kraj
	 where (CISKON <> '00000' and CISZOO  <> '000000' and VYKKU = 1))
	 
	
------------------------------------------------------------------------
------------------------------------------------------------------------
END

go

-- =============================================
-- Author:		Ing. Vladimír Ďurech
-- Create date: 07.03.2017
-- Description:	Doplnenie IDM a IDS do tabuliek, kde chybaju (nie vsade to bolo doplnene)
-- =============================================
Create PROCEDURE [dbo].[S_KonZapMen_Fix_id]
AS
BEGIN
	update SM_KonZap
	set IDS = (select  id from SM_KonZapMen m where m.chov = (select top 1 s.chov from SM_spojchov s where spchov = i.chov) and m.rokev = i.rokev)
	from 
		(select  * from SM_KonZapMen
		) i
	where SM_KonZap.KROKR + SM_KonZap.PODNIK + SM_KonZap.STADO = i.chov --(select top 1 chov from SM_spojchov where spchov = i.chov)
	and SM_KonZap.ROKEV1+SM_KonZap.ROKEV2 = i.rokev
	and SM_KonZap.ids is null


	update SM_KonZap
	set IDM = (select  id from SM_KonZapMen m where m.chov = i.chov and m.rokev = i.rokev)
	from 
		(select  * from SM_KonZapMen
		) i
	where SM_KonZap.KROKR + SM_KonZap.PODNIK + SM_KonZap.STADO = i.chov
	and SM_KonZap.ROKEV1+SM_KonZap.ROKEV2 = i.rokev
	and SM_KonZap.idm is null

	update SM_KonZapBaran
	set IDS = (select  id from SM_KonZapMen m where m.chov = (select top 1 s.chov from SM_spojchov s where spchov = i.chov) and m.rokev = i.rokev)
	from 
		(select  * from SM_KonZapMen
		) i
	where SM_KonZapBaran.KROKR + SM_KonZapBaran.PODNIK + SM_KonZapBaran.STADO = i.chov --(select top 1 chov from SM_spojchov where spchov = i.chov)
	and SM_KonZapBaran.ROKEV1+SM_KonZapBaran.ROKEV2 = i.rokev
	and SM_KonZapBaran.ids is null


	update SM_KonZapBaran
	set IDM = i.ID
	from 
		(select  * from SM_KonZapMen
		) i
	where SM_KonZapBaran.KROKR + SM_KonZapBaran.PODNIK + SM_KonZapBaran.STADO = i.chov --(select top 1 chov from SM_spojchov where spchov = i.chov)
	and SM_KonZapBaran.ROKEV1+SM_KonZapBaran.ROKEV2 = i.rokev
	and SM_KonZapBaran.idm is null

END
go


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [dbo].[C_ZZ_UzavreteLaktSkladba_Final]
AS
BEGIN
	

	/******************************
		using table:CP_PoslednaUzavretaLakt,

		changing table:CP_PoslednaUzavretaLakt

		used: final step for displaying results of (6) Uzávierka KÚHD posledných uzavretých laktácií 

	************************************/
	declare @chovatel varchar(10);

	DELETE FROM plis.dbo.CP_PoslednaUzavretaLakt
		WHERE laktacia is null;


	declare chovv cursor for
	select DISTINCT hovatel
	from plis.dbo.CP_PoslednaUzavretaLakt

	open chovv
	fetch next from chovv into @chovatel

	while @@FETCH_STATUS=0
	begin
		

		insert into plis.dbo.CP_PoslednaUzavretaLakt values(null,(select count(*) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel),
																		(select count(*) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(lakdni) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(lakdniN) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(mlieko) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(mliekoN) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(tuk) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40) ),
																		(select avg(tukN) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel  and zmena in (30,40)),
																		(select avg(bielk) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(bielkN) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel  and zmena in (30,40)),
																		(select avg(tuk+bielk) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel and zmena in (30,40)),
																		(select avg(tukN+bielkN) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel  and zmena in (30,40)),
																		(select avg(vek) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel ),
																		(select avg(vekdni) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(medziobd) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel  ),
																		(select avg(medziobd) from plis.dbo.CP_KravaPoslednaUzavLakt where poslLakt>=2 and chovatel=@chovatel  ),
																		@chovatel)



		fetch next from chovv into @chovatel
	end

	close chovv;
	deallocate chovv;
	
END

go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 26.07.2011
-- Description:	Zaradenie novej kravy - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarkrav_aktualizacia] 
	@parChov varchar(9)
	
AS
BEGIN
	declare @IDR bigint
	declare @DATZAPIS [datetime] 
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit] 
	declare @CHOVATEL [varchar](9) 
	declare @CISKRAVY [varchar](14) 
	declare @PORPREBLAK_ [varchar](2)
	declare @DATNAR [date]
	declare @OTECLIN [varchar](3)
	declare @OTECREG_ [varchar](3)
	declare @OTEC [varchar](14)
	declare @MATKA [varchar](14)
	declare @PL1 [varchar](2)
	declare @KR1 [decimal](6,2) 
	declare @PL2 [varchar](2)
	declare @KR2 [decimal](5,2) 
	declare @PL3 [varchar](2)
	declare @KR3 [decimal](5,2) 
	declare @PL4 [varchar](2)
	declare @KR4 [decimal](5,2) 
	declare @PL5 [varchar](2)
	declare @FARBA [varchar](2)
	declare @ZNMATBYK [varchar](1)
	declare @ZNAKET [bit] 
	declare @ZDRAVTR [varchar](1)
	declare @TRUZIT [varchar](3)
	declare @DI [varchar](1)
	declare @ZN [varchar](1)	
	
	declare @errorflag bit

	declare @navrat_hodn [varchar](1)	
	declare @PRIZNAKKU [varchar](1)	
	declare @DOVVYR [varchar](2)	
	declare @JeVCM_Krava [bit]
	declare @OtecJeVCM_Byci [bit]
	declare @MatkaJeVCM_Krava [bit]
	declare @chybaPlem [bit]
	declare @chybaKrv [bit]
	declare @MATKA_POM [varchar](14)
	declare @DATNAR_POM [date]
	declare @PL1_POM [varchar](2)
	declare @TYPPLEM [varchar](3)
	declare @NajdenyOtecJeVCM_Byci [bit]
	declare @NajdenaMatkaJeVCM_Krava [bit]
	declare @MATKA_ [varchar](14), @_OTECLIN varchar(3), @_OTECREG int
		
	DECLARE @sql_update nvarchar(2000)	
	declare @pom_IDBYKA int
	declare @pom_OUSCIS varchar(15)
	declare @pom_IDKRAVY int				
	declare @PORPREBLAK int	
	declare @OTECREG int	

	declare @datumPosKont date
	declare @CHOVPRIZNAKKU varchar(1)
	declare @CHOV_KRAVY varchar(9)
	
	declare @IDParChov bigint
	-- neznamy povod -- 20161026
	declare @OTECLINNEZ [varchar](3)
	declare @MATKANEZ [varchar](14)

	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	

	-- vyber doposial nespracovanych zaradeni z kontajnera CK_ZARKRAV
	declare db_cursor_zarkrav cursor
	FOR
	SELECT IDR
		,convert(date, DATZAPIS, 104) as DATZAPIS
		,CHOV
		,CISKRAVY
		,convert(int, nullif(PORPREBLAK, '')) as PORPREBLAK
		,convert(date, nullif(DATNAR, ''), 104) as DATNAR
		,nullif(OTECLIN, '')
		,convert(int, nullif(OTECREG, '')) as OTECREG
		,nullif(OTEC, '') as OTEC
		,nullif(MATKA, '')
		,nullif(PL1, '')
		,case when ISNUMERIC(KR1) = 0 then 0 else convert(decimal(6,2),replace(KR1,',','.')) end as KR1
		,nullif(PL2, '')
		,case when ISNUMERIC(KR2) = 0 then 0 else convert(decimal(5,2),replace(KR2,',','.')) end as KR2
		,nullif(PL3, '')
		,case when ISNUMERIC(KR3) = 0 then 0 else convert(decimal(5,2),replace(KR3,',','.')) end as KR3
		,nullif(PL4, '')
		,case when ISNUMERIC(KR4) = 0 then 0 else convert(decimal(5,2),replace(KR4,',','.')) end as KR4
		,NULL as PL5
		,RIGHT('00'+nullif(FARBA, ''),2) --nullif(FARBA, '')
		,nullif(ZNMATBYK, '')
		,nullif(ZNAKET, '')
		,nullif(DI, '')
	FROM VstupyPLIS.dbo.CP_HD03_ZARKRAV where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)

	OPEN db_cursor_zarkrav


	-- cyklus cez vsetky nespracovane zaradenia
	FETCH NEXT
	FROM db_cursor_zarkrav INTO 	
		@IDR
		,@DATZAPIS
		,@CHOVATEL
		,@CISKRAVY
		,@PORPREBLAK_
		,@DATNAR
		,@OTECLIN
		,@OTECREG_
		,@OTEC
		,@MATKA
		,@PL1
		,@KR1
		,@PL2
		,@KR2
		,@PL3
		,@KR3
		,@PL4
		,@KR4
		,@PL5
		,@FARBA
		,@ZNMATBYK
		,@ZNAKET
		,@DI

	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke zaradeni krav nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD03_ZARKRAV set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran zarkrav	
		begin try		
			
			set @ZN = 0
			
			if (dbo.HDchov_ma_typ_KU(@parChov, 'ML') = 1)
			set @ZN = '1'
			else if (dbo.HDchov_ma_typ_KU(@parChov, 'MP') = 1)
				set @ZN = '2'
				
		
			set @OtecJeVCM_Byci = 0
			set @MatkaJeVCM_Krava = 0
			set @errorflag = 0
			set @pom_IDBYKA = null
			set @NajdenyOtecJeVCM_Byci = 0
			set @NajdenaMatkaJeVCM_Krava = 0
			set @MATKA_ = null
			set @_OTECLIN = null
			set @_OTECREG = null
			-- neznamy povod -- 20161026
			set @OTECLINNEZ = null
			set @MATKANEZ = null		

			print @IDR
			
			-- OPRAVA dat zo vstupu -------------------------------
			-- oprava podielu krvi cistokrvnych zvierat (0 -> 100)
			if (@KR1 = 0 and @PL1 is not null)
				set @KR1 = 100

			-- ak su podiely krvi zadane v desatinach %
			if (@KR1 + @KR2 + @KR3 + @KR4) > 990
			begin
				set @KR1 = @KR1/10
				set @KR2 = @KR2/10
				set @KR3 = @KR3/10
				set @KR4 = @KR4/10
			end	
				
			-- oprava podielov krvi  (0 -> null)
			if (@KR1 = 0)
				set @KR1 = (select null)
			if (@KR2 = 0)
				set @KR2 = (select null)
			if (@KR3 = 0)
				set @KR3 = (select null)
			if (@KR4 = 0)
				set @KR4 = (select null)
			
			-- zarovnanie plemena
			set @PL1 = LTRIM(@PL1)
			set @PL2 = LTRIM(@PL2)
			set @PL3 = LTRIM(@PL3)
			set @PL4 = LTRIM(@PL4)
			set @PL5 = LTRIM(@PL5)
			
			-- zarovnanie linie otca
			set @OTECLIN = LTRIM(@OTECLIN)

			-- zmena registra otca na cislo
			set @OTECREG = CONVERT(int, @OTECREG_)
			if @OTECREG = 0
				set @OTECREG = NULL

			-- znulovanie neznamych linii otcov
			if UPPER(@OTECLIN) = 'IL' or UPPER(@OTECLIN) = 'NEZ' or @OTECLIN = '997' or @OTECLIN is null 
			begin
				-- neznamy povod -- 20161026
				if UPPER(@OTECLIN) = 'NEZ' 
					set @OTECLINNEZ = UPPER(@OTECLIN)
				else
					set @OTECLIN = null

				set @OTECREG = null
			end
			
			-- zmazanie cisla matky - ked ide o neznamy povod -- 20160526
			if @MATKA = 'SK999999999999'
			begin
				-- 20161026
				set @MATKANEZ = @MATKA

				--set @MATKA = null
			end

			-- zmena poradia prebiehajucej laktacie na cislo
			set @PORPREBLAK = CONVERT(int, @PORPREBLAK_)
			if @PORPREBLAK = 0
				set @PORPREBLAK = NULL
			-------------------------------------------------------		
				
			print @DI	
			-- zaradenie kravy
			if (@DI = '1') 
			begin
				-- kontrola: je krava v CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)) > 0
				begin
					-- krava je v CM_Krava - update kravy
					set @JeVCM_Krava = (select 1)
			
					-- kontrola na priznak KU
					select @PRIZNAKKU = PRIZNAKKU, @DOVVYR = DOVVYR from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
					-- KU mlieko
					if (@PRIZNAKKU = '1')
					begin
						-- kontrola na vyradenie kravy
						if (@DOVVYR is not null)
						begin
							if @ZN = '1'
							begin
								-- priradenie chyby 32
								exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 32, 'INS'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end		
							end	
						end
						else
						begin
							-- priradenie chyby 18
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 18, 'INS'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end			
						end
					end
					-- KU MP		
					else if (@PRIZNAKKU = '2')
					begin
						-- kontrola na vyradenie kravy
						if (@DOVVYR is not null)
						begin
							if @ZN = '2'
							begin
								-- priradenie chyby 33
								exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 33, 'INS'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end		
							end	
						end
						else
						begin
							-- priradenie chyby 34
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 34, 'INS'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end			
						end
					end
				end	
				else
				begin
					-- krava nie je v CM_Krava - insert kravy do CM_Krava
					set @JeVCM_Krava = (select 0)
				end			
				
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
				and PRIZNAK = '01') = 0
				begin
					-- priradenie chyby 04
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 4, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVATEL = (select null)
					end
				end			
				else
				-- kontrola sposobu vykonu KU na chove (masova)
				if @ZN = '2'
				begin
					if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
					where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
					and PRIZNAK = '01' and (SPVYKON = '4' or SPVYKON = '5')) = 0
					begin
						-- priradenie chyby 46
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 46, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @CHOVATEL = (select null)
						end
					end					
				end
				else
				-- kontrola sposobu vykonu KU na chove (mliekova)
				if @ZN = '1'
				begin
					if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
					where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
					and PRIZNAK = '01' and not(SPVYKON = '4' or SPVYKON = '5')) = 0
					begin
						-- priradenie chyby 47
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 47, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @CHOVATEL = (select null)
						end
					end	
				end				
					
				-- kontrola: platny datum narodenia
				if (@DATNAR is null)
				begin
					-- priradenie chyby 12
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 12, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end			
				else
				begin
					if (select datediff(day, @DATNAR, GETDATE())) < 0
					begin
						-- priradenie chyby 12
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 12, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @DATNAR = null
						end
					end					
				
					-- kontrola: od datumu narodenia uplynulo 400 dni			
					if (select DATEDIFF(day, @DATNAR, GETDATE())) < 400
					begin
						-- priradenie chyby 35
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 35, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @DATNAR = null
						end
					end				
				end

				-- kontrola: otec nie je uvedeny
				if (@OTECLIN is null and @OTEC is null)
				--if (@OTECLIN is null and @OTECREG is null)
				begin
					-- priradenie chyby 90
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 90, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end		
				--else
				---- kontrola: linia otca je IL
				--if (@OTECLIN = 'IL')
				--begin
				--	-- priradenie chyby 17
				--	exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 17, 'INS'
				--	if (@navrat_hodn = '2')
				--	begin
				--		set @errorflag = (select 1)
				--	end else
				--	if (@navrat_hodn = '1')
				--	begin
				--		set @OTECLIN = (select null)
				--		set @OTECREG = (select null)
				--	end	
				--end
				else						
				-- kontrola: otec je v CM_Byci
				if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG and @OTECLIN is not null or USCISLO = @OTEC and @OTEC is not null)) = 0
				--if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG)) = 0
				begin
					-- neevidovat chybu ak bola zadana linia otca NEZ bez cisla otca -- 20170127
					if not(@OTECLINNEZ is not null and @OTEC is null)
					begin
						-- priradenie chyby 07
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 7, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @OTECLIN = (select null)
							set @OTECREG = (select null)
							set @OTEC = null
						end	
					end
				end	
				else
				begin
					set @OtecJeVCM_Byci = (select 1)
				end
					
				-- kontrola: matka nie je uvedena
				if (@MATKA is null)
				begin
					-- priradenie chyby 91
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 91, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end	
				else
				begin								
					-- kontrola: matka importovanej kravy 
					if (@MATKA = 'SK888888888888')
					begin
						-- priradenie chyby 17
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 17, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA = (select null)
						end	
					end	
					else			
					-- kontrola: matka nie je v CM_Krava
					if ((select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @MATKA)) = 0   and (@MATKA != 'SK999999999999'))
					begin
						-- priradenie chyby 06
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 6, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA = (select null)
						end	
					end	
					else
					begin
						set @MatkaJeVCM_Krava = (select 1)
					end				
					
					-- kontrola: cislo matky nie je cislo kravy
					if (@MATKA = @CISKRAVY)
					begin
						-- priradenie chyby 16
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 16, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA = (select null)
						end	
					end					
				end	
				
				-- kontrola: chybny podiel krvi plemien a pripadny prepocet plemien
				if (@OtecJeVCM_Byci = 1)
				begin
					if (@OTECLIN is not null)
						set @OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)	
					else							
					begin
						select @OTECLIN = LIN, @OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 
					end 				
				end

 				--20161108
				--if (@OtecJeVCM_Byci = 1 and @MatkaJeVCM_Krava = 1)
				--begin
				--	select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OTEC, @MATKA, null)
				--end
				--else
				if (@PL1 is not null)
				begin
					-- kontrola: chybny kod plemena
					set @PL1_POM = (select @PL1)
					if not((@PL1 is null or @PL1 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL2 is null or @PL2 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL3 is null or @PL3 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL4 is null or @PL4 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL5 is null or @PL5 in (select kodpl from PLIS.dbo.CC_Plemena)))
					begin
						-- priradenie chyby 10
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 10, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end				

					if not (
					(
					((@PL1 is not null and @KR1 is not null) and (@PL2 is null and @KR2 is null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (@KR1 = 100)) or 

					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) = 100)) or 
											
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) = 100)) or 		
							
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) = 100)) or 
																
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is not null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) <= 100))
					)	
					and
						(ISNULL(@KR1, 0) >= ISNULL(@KR2, 0)) and (ISNULL(@KR2, 0) >= ISNULL(@KR3, 0)) and (ISNULL(@KR3, 0) >= ISNULL(@KR4, 0)) and (100 - (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0)) <= ISNULL(@KR4, 0))
					)				
					begin
						-- priradenie chyby 11
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 11, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end	
					end

					set @PL1 = (select @PL1_POM)	
				end				
				
				-- kontrola: nespravny kod farby
				if (select COUNT(*) from PLIS.dbo.CC_Farby where (KODF = @FARBA)) = 0
				begin
					-- priradenie chyby 13
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 13, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @FARBA = (select null)
					end	
				end		
				
				-- kontrola: nespravny znak matky bykov
				if (select COUNT(*) from PLIS.dbo.CC_MB where (KOD = @ZNMATBYK)) = 0 and (@ZNMATBYK is not null)
				begin
					-- priradenie chyby 14
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 14, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @ZNMATBYK = (select null)
					end	
				end				

				-- neboli chyby typu 2			
				if (@errorflag != 1)		
				begin	
					-- spustat prepocet plemena okrem pripadu, ked nie je znamy ote ani matka a plemeno je zadane --20161108
					if not ((@PL1 is not null) and ((dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null) and (dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)))
						or (@PL1 is null)
					begin
						select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OTEC, @MATKA, null)					
					end

					-- znulovanie plemena ak nebolo spravne zadane		
					if (@PL1 is NULL)
					begin
						select @KR1 = NULL, @PL2 = NULL, @KR2 = NULL, @PL3 = NULL, @KR3 = NULL, @PL4 = NULL, @KR4 = NULL, @PL5 = NULL
					end
													
					if @OTECLIN is not null
					begin
						set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, null)
					end

					if @pom_IDBYKA is null
					begin
						if @OTEC is not null
							select @pom_IDBYKA = IDBYKA from CM_Byci where USCISLO = @OTEC 
					end							
							
													
					-- krava je v CM_Krava - update dat
					if (@JeVCM_Krava = 1)
					begin
						print 'Krava JE v CM_Krava - updateujem'
						print @CISKRAVY
						-- vytvorenie dynamickeho update prikazu
						set @sql_update = ''
						if @CHOVATEL is not null
							set @sql_update = @sql_update + 'CHOVATEL =  ''' + @CHOVATEL + ''', '						
						if @PORPREBLAK is not null
							set @sql_update = @sql_update + 'PORPREBLAK = ' + convert(varchar, @PORPREBLAK) + ', '	
						
						-- neznamy povod -- 20161026
						if @OTECLINNEZ is not null
						begin				
							set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLINNEZ + ''', OTECREG = NULL, OUSCIS = NULL, IDOT = NULL, '
						end
						else
						if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null)
						begin				
							set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, OUSCIS = ''' + @OTEC + ''', IDOT = NULL, '
						end
						else
						--------------
						if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC) is not null and @OTECLIN is null)
						begin		
							if @OTECLIN is not null
								set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLIN + ''', OTECREG = ' + isnull(convert(varchar, @OTECREG), 'NULL') + ', '
							else
								set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, '
							set @sql_update = @sql_update + 'OUSCIS = ''' + @OTEC + ''', IDOT = ' + convert(varchar, dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC)) + ', '
						end
						else
						--------------
						begin											

							if @OTECLIN is not null
								set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLIN + ''', '
							if @OTECREG is not null						   
								set @sql_update = @sql_update + 'OTECREG = ' + convert(varchar, @OTECREG) + ', '	
							if @OTECLIN is not null and @OTECREG is not null
							begin
								set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, null)
								if @pom_IDBYKA is not null
									set @sql_update = @sql_update + 'IDOT = ' + convert(varchar, @pom_IDBYKA) + ', '
								set @pom_OUSCIS = PLIS.dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)
								if @pom_OUSCIS is not null
									set @sql_update = @sql_update + 'OUSCIS = ''' + @pom_OUSCIS + ''', '							
							end			
						end
						-- neznamy povod -- 20161026
						if (@MATKA is not null and dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)
						begin				
							set @sql_update = @sql_update + 'MA = ''' + @MATKA + ''', IDMA = NULL, '
						end
						else
						begin										
							if @MATKA is not null
							begin
								set @sql_update = @sql_update + 'MA = ''' + @MATKA + ''', '	
								set @pom_IDKRAVY = PLIS.dbo.C_aktual_zisti_IDKRAVY(@MATKA)
								if @pom_IDKRAVY is not null
									set @sql_update = @sql_update + 'IDMA = ' + convert(varchar, @pom_IDKRAVY) + ', '						
							end				
						end	

						if @DATNAR is not null
							set @sql_update = @sql_update + 'DATNAR = ''' + convert(varchar, @DATNAR) + ''', '
							
						if @PL1 is not null
						begin
							set @sql_update = @sql_update + 'PL1 = ''' + @PL1 + ''', KR1 = ' + convert(varchar, @KR1) + ', ' 
							if @PL2 is not null
								set @sql_update = @sql_update + 'PL2 = ''' + @PL2 + ''', KR2 = ' + convert(varchar, @KR2) + ', ' 
							else
								set @sql_update = @sql_update + 'PL2 = NULL, KR2 = NULL, ' 
							if @PL3 is not null
								set @sql_update = @sql_update + 'PL3 = ''' + @PL3 + ''', KR3 = ' + convert(varchar, @KR3) + ', ' 
							else
								set @sql_update = @sql_update + 'PL3 = NULL, KR3 = NULL, ' 							
							if @PL4 is not null
								set @sql_update = @sql_update + 'PL4 = ''' + @PL4 + ''', KR4 = ' + convert(varchar, @KR4) + ', ' 
							else
								set @sql_update = @sql_update + 'PL4 = NULL, KR4 = NULL, ' 							
							if @PL5 is not null
								set @sql_update = @sql_update + 'PL5 = ''' + @PL5 + ''', '
							else
								set @sql_update = @sql_update + 'PL5 = NULL, ' 
						end
											
						if @FARBA is not null
							set @sql_update = @sql_update + 'FARBA = ''' + @FARBA + ''', '					
						if @ZNMATBYK is not null
							set @sql_update = @sql_update + 'ZNMATBYK = ''' + @ZNMATBYK + ''', '	
						if @ZNAKET is not null
							set @sql_update = @sql_update + 'ZNAKET = ' + convert(varchar, @ZNAKET) + ', '
						if @sql_update != ''
						begin
							set @sql_update = @sql_update + 'DATZAR = ''' + convert(varchar(10), GETDATE(), 120) + ''', '
							set @sql_update = @sql_update + 'PRIZNAKKU = ''' + @ZN + ''', '
							set @sql_update = @sql_update + 'DOVVYR = null, DATVYR = null, SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' where CISKRAVY = ''' + @CISKRAVY + ''''
     						set @sql_update = 'update PLIS.dbo.CM_Krava set ' + @sql_update
     						exec (@sql_update)
     					end     					   					 	
					end			
					else
					-- krava nie je v CM_Krava - insert dat			
					begin
						print 'Krava NIE JE v CM_Krava - vkladam'
						print @CISKRAVY
						
						-- zmazanie plemena a podielov ak je nespravne zadane
						if (@PL1 is NULL)
						begin
							select @KR1 = NULL, @PL2 = NULL, @KR2 = NULL, @PL3 = NULL, @KR3 = NULL, @PL4 = NULL, @KR4 = NULL, @PL5 = NULL
						end
						
						-- zviera s usnym cislom je v subore teliat
						if (select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @CISKRAVY)) > 0
						begin
							print 'Zviera je v CM_Telata '
							INSERT INTO [PLIS].[dbo].[CM_Krava]
									([CISKRAVY],[CHOVATEL],[SKUPINA],[PK],[OTECLIN],[OTECREG]
									,[OUSCIS],[MA],[IDOT],[IDMA],[DATNAR]
									,[PL1],[KR1],[PL2],[KR2],[PL3],[KR3],[PL4],[KR4],[PL5]
									,[FARBA],[ZNMATBYK],[ZNAKET],[POHLAVIE]
									,[ZDRAVTR],[PLEMENNA],[PORPREBLAK],[DATPOSKONT],[DOVVYR],[DATVYR],[DATZAR],[TRUZIT],[PORLAKMAX]
									,[MLIEKOMAX],[TUKMAX],[BIELMAX],[LAKTOZAMAX],[POCVSETLAK],[POCNORLAK],[MLIEKOPR],[TUKPRKG]
									,[TUKPRPER],[BIELPRKG],[BIELPRPER],[LAKTPRKG],[LAKTPRPER],[TYPPLEM],[FARMACEHZ],[PRIZNAKKU]
									,[KRJA],[PINT],[PSER],[PMED]
									,[BB_ANIMALCODE],[BB_NAME],[BB_IMPORTED],[BB_BREEDING_NAME],[BB_OWNER],[BB_KEEPER],[BB_USE]
									,[BB_COUNTRYCODE],[BB_CATEGORY],[BB_HERDBOOK_NUMBER], SPRACINSERT, SPRACUPDATE)	
							-- 20161108
							select @CISKRAVY, ISNULL(@CHOVATEL, CHOVATEL), null,  null
									,case when (@OTECLIN is not NULL) then @OTECLIN else case when (@OTEC is not NULL) then NULL else OTECLIN end end
									,case when (@OTECLIN is not NULL) then @OTECREG else case when (@OTEC is not NULL) then NULL else OTECREG end end
									,case when (@OTEC is not NULL) then @OTEC else case when (@OTECLIN is not NULL) then NULL else OUC end end
									,isnull(@MATKA, MATKA)
									,case when (@OTEC is not NULL) then @pom_IDBYKA else case when (@OTECLIN is not NULL) then NULL else IDOT end end
									,case when (@MATKA is not NULL) then PLIS.dbo.C_aktual_zisti_IDKRAVY(@MATKA) else IDMA end
									,ISNULL(@DATNAR, DATNAR)
									,case when (@PL1 is not NULL) then @PL1 else PL1 end
									,case when (@PL1 is not NULL) then @KR1 else KR1 end
									,case when (@PL1 is not NULL) then @PL2 else PL2 end
									,case when (@PL1 is not NULL) then @KR2 else KR2 end
									,case when (@PL1 is not NULL) then @PL3 else PL3 end
									,case when (@PL1 is not NULL) then @KR3 else KR3 end
									,case when (@PL1 is not NULL) then @PL4 else PL4 end
									,case when (@PL1 is not NULL) then @KR4 else KR4 end
									,case when (@PL1 is not NULL) then @PL5 else PL5 end
									--,ISNULL(@PL1, PL1), ISNULL(@KR1, KR1), ISNULL(@PL2, PL2), ISNULL(@KR2, KR2), ISNULL(@PL3, PL3), ISNULL(@KR3, KR3), ISNULL(@PL4, PL4), ISNULL(@KR4, KR4), ISNULL(@PL5, PL5)
									,ISNULL(@FARBA, FARBA), @ZNMATBYK, ISNULL(@ZNAKET, ZNAKET), POHLAVIE
									,@ZDRAVTR, null, @PORPREBLAK, null, null, null, GETDATE(), @TRUZIT, null
									, null, null, null, null, null, null, null, null
									, null, null, null, null, null, null, null, ISNULL(@ZN, PRIZNAKKU)
									, '1', null, null, null
									, null, null, null, null, null, null, null
									, null, null, null, @IDParChov, @IDParChov
							from PLIS.dbo.CM_Telata where (CISTELATA = @CISKRAVY)			
						end
						else
						-- zviera s usnym cislom nie je v CM_Telata
						begin
							print 'Zviera nie je v CM_Telata '					
							INSERT INTO [PLIS].[dbo].[CM_Krava]
									([CISKRAVY],[CHOVATEL],[SKUPINA],[PK],[OTECLIN],[OTECREG]
									,[OUSCIS],[MA],[IDOT],[IDMA],[DATNAR]
									,[PL1],[KR1],[PL2],[KR2],[PL3],[KR3],[PL4],[KR4],[PL5]
									,[FARBA],[ZNMATBYK],[ZNAKET],[POHLAVIE]
									,[ZDRAVTR],[PLEMENNA],[PORPREBLAK],[DATPOSKONT],[DOVVYR],[DATVYR],[DATZAR],[TRUZIT],[PORLAKMAX]
									,[MLIEKOMAX],[TUKMAX],[BIELMAX],[LAKTOZAMAX],[POCVSETLAK],[POCNORLAK],[MLIEKOPR],[TUKPRKG]
									,[TUKPRPER],[BIELPRKG],[BIELPRPER],[LAKTPRKG],[LAKTPRPER],[TYPPLEM],[FARMACEHZ],[PRIZNAKKU]
									,[KRJA],[PINT],[PSER],[PMED]
									,[BB_ANIMALCODE],[BB_NAME],[BB_IMPORTED],[BB_BREEDING_NAME],[BB_OWNER],[BB_KEEPER],[BB_USE]
									,[BB_COUNTRYCODE],[BB_CATEGORY],[BB_HERDBOOK_NUMBER], SPRACINSERT, SPRACUPDATE)	
							values (@CISKRAVY, @CHOVATEL, null,  null, @OTECLIN, @OTECREG
									, @OTEC, @MATKA, @pom_IDBYKA, PLIS.dbo.C_aktual_zisti_IDKRAVY(@MATKA), @DATNAR
									, @PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @KR4, @PL5
									, @FARBA, @ZNMATBYK, isnull(@ZNAKET, 0), '02'
									, @ZDRAVTR, null, @PORPREBLAK, null, null, null, GETDATE(), @TRUZIT, null
									, null, null, null, null, null, null, null, null
									, null, null, null, null, null, null, null, @ZN
									, '1', null, null, null
									, null, null, null, null, null, null, null
									, null, null, null, @IDParChov, @IDParChov)				
						end
					end
					-- dodatocny vypocet plemenneho typu
					if @PL1 is not null or @FARBA is not null
					begin
						select @PL1=PL1, @KR1=KR1, @PL2=PL2, @KR2=KR2, @PL3=PL3, @KR3=KR3, @PL4=PL4, @KR4=KR4, @PL5=PL5 from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)
						UPDATE PLIS.dbo.CM_Krava SET
							TYPPLEM = PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @kr4, @PL5, @FARBA), SPRACUPDATE = @IDParChov
							WHERE (CISKRAVY = @CISKRAVY)
					end
				end
			end		
					
			-- oprava 
			else if ((@DI = '2') /*or (@DI = '4')*/)
			begin			
				-- kontrola: je krava v CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY) AND PRIZNAKKU in ('1', '2')) = 0
				begin	
					-- priradenie chyby 5
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 5, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
				end	
				else

				-- kontrola: chov zaradenia = chov z CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CHOVATEL = @CHOVATEL and CISKRAVY = @CISKRAVY)) = 0
				begin
					if (select CHOVATEL from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY) is not null
					begin
						--if @DI = '4'
						--	-- priradenie chyby 27
						--	exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 27, 'UPD'
						--else
						if @DI = '2'
							-- priradenie chyby 19
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 19, 'UPD'				
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end
					end
				end	
				
				-- presun do KU MP
				--if @DI = '4'
				--begin
				--	-- kontrola: chov je v menovke
				--	if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
				--		and PRIZNAK = '01') = 0
				--	begin
				--		-- priradenie chyby 04
				--		exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 4, 'UPD'
				--		if (@navrat_hodn = '2')
				--		begin
				--			set @errorflag = (select 1)
				--		end else
				--		if (@navrat_hodn = '1')
				--		begin
				--			set @CHOVATEL = (select null)
				--		end
				--	end			
				--	else
				--	-- kontrola sposobu vykonu KU na chove (masova)
				--	if @ZN = '2'
				--	begin
				--		if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
				--		where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
				--		and PRIZNAK = '01' and (SPVYKON = '4' or SPVYKON = '5')) = 0
				--		begin
				--			-- priradenie chyby 46
				--			exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 46, 'UPD'
				--			if (@navrat_hodn = '2')
				--			begin
				--				set @errorflag = (select 1)
				--			end else
				--			if (@navrat_hodn = '1')
				--			begin
				--				set @CHOVATEL = (select null)
				--			end
				--		end					
				--	end				
				--end
				
				-- kontrola: poradie laktacie 
				if @PORPREBLAK is not null
					if (select max(PORLAK) from PLIS.dbo.CM_Laktacie where CISKRAVY = @CISKRAVY) > @PORPREBLAK
					begin	
						-- priradenie chyby 36
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 36, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end	else
						if (@navrat_hodn = '1')
						begin
							set @PORPREBLAK = (select null)
						end
					end
				
				-- kontrola: platny datum narodenia
				if (@DATNAR is not null)
				begin
					set @DATNAR_POM = @DATNAR
					if (select datediff(day, @DATNAR, GETDATE())) < 0
					begin
						-- priradenie chyby 12
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 12, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end	else
						if (@navrat_hodn = '1')
						begin
							set @DATNAR_POM = null
						end	
					end					
				
					-- kontrola: od datumu narodenia uplynulo 400 dni			
					if (select DATEDIFF(day, @DATNAR, GETDATE())) < 400
					begin
						-- priradenie chyby 35
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 35, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end	else
						if (@navrat_hodn = '1')
						begin
							set @DATNAR_POM = null
						end	
					end
					set @DATNAR = @DATNAR_POM				
				end
				
				-- kontrola: otec je v CM_Byci
				--if not (@OTECLIN is null and @OTECREG is null)
				--	-- kontrola: linia otca je IL
				--	if (@OTECLIN = 'IL')
				--	begin
				--		-- priradenie chyby 17
				--		exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 17, 'UPD'
				--		if (@navrat_hodn = '2')
				--		begin
				--			set @errorflag = (select 1)
				--		end else
				--		if (@navrat_hodn = '1')
				--		begin
				--			set @OTECLIN = (select null)
				--			set @OTECREG = (select null)
				--		end	
				--	end
				--	else					
				if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG and @OTECLIN is not null or USCISLO = @OTEC and @OTEC is not null)) = 0
				--if (select COUNT(*) from PLIS.dbo.CM_Byci where (LIN = @OTECLIN and REG = @OTECREG)) = 0
				begin
					-- neevidovat chybu ak bola zadana linia otca NEZ bez cisla otca -- 20170127
					if not(@OTECLINNEZ is not null and @OTEC is null)
						-- pri nezadanych (znulovanych) udajoch o otcovi neuvadzat chybu -- 20160526
						if (@OTECLIN is not null or @OTEC is not null)
						begin
							-- priradenie chyby 07
							exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 7, 'UPD'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @OTECLIN = (select null)
								set @OTECREG = (select null)
								set @OTEC = null
							end	
						end
				end	
				else
				begin
					set @OtecJeVCM_Byci = (select 1)
				end
					
				-- kontrola: matka nie je uvedena
				if not (@MATKA is null)
				begin	
					set @MATKA_POM = (select @MATKA)			
					-- kontrola: matka importovanej kravy 
					if (@MATKA = 'SK888888888888')
					begin
						-- priradenie chyby 17
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 17, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA_POM = (select null)
						end	
					end	
					else			
					-- kontrola: matka nie je v CM_Krava
					if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @MATKA)) = 0
					begin
						-- priradenie chyby 06
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 6, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA_POM = (select null)
						end
					end	
					else
					begin
						set @MatkaJeVCM_Krava = (select 1)
					end				
					
					-- kontrola: cislo matky nie je cislo kravy
					if (@MATKA = @CISKRAVY)
					begin
						-- priradenie chyby 16
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 16, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @MATKA_POM = (select null)
						end
					end					
					set @MATKA = (select @MATKA_POM)
				end	
				
				-- kontrola: chybny kod plemena
				-- pre upravu je zadany otec aj matka 
				if ((@OTECLIN is not null or @OTEC is not null) and @MATKA is not null)
				begin
					if (@OtecJeVCM_Byci = 1)
					begin
						if (@OTECLIN is not null)
							set @OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)	
						else							
							select @OTECLIN = LIN, @OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 												
					end
				end
				else 
				begin
					-- pre upravu je zadany len otec, matka sa musi dohladat
					if (@OTECLIN is not null or @OTEC is not null) and @MATKA is null
					begin
						if (@OtecJeVCM_Byci = 1)
						begin
							if (@OTECLIN is not null)
								set @OTEC = dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)	
							else							
								select @OTECLIN = LIN, @OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 																			
						end

						select @MATKA_ = MA from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
						if ((select count(*) from plis.dbo.CM_Krava where CISKRAVY = @MATKA_) > 0)
						begin
							set @NajdenaMatkaJeVCM_Krava = 1
							set @MATKA = @MATKA_
						end
					end
					else
					begin
						-- pre upravu je zadana len matka, otec sa musi dohladat
						if (@MATKA is not null) and not(@OTECLIN is not null or @OTEC is not null)
						begin
							select @_OTECLIN = OTECLIN, @_OTECREG = OTECREG from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
							if ((select count(*) from plis.dbo.CM_Byci where @_OTECLIN = LIN and @_OTECREG = REG) > 0)
							begin
								select @OTECLIN = LIN, @OTECREG = REG, @OTEC = USCISLO from PLIS.dbo.CM_Byci where USCISLO = @OTEC 			
								set @NajdenyOtecJeVCM_Byci = 1
							end
						end
						else
						-- nezadany ani otec ani matka -- 20161108
						begin
							select @MATKA_ = MA from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
							if ((select count(*) from plis.dbo.CM_Krava where CISKRAVY = @MATKA_) > 0)
							begin
								set @NajdenaMatkaJeVCM_Krava = 1
								set @MATKA = @MATKA_
							end

							select @_OTECLIN = OTECLIN, @_OTECREG = OTECREG, @OTEC = OUSCIS from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
							if ((select count(*) from plis.dbo.CM_Byci where @_OTECLIN = LIN and @_OTECREG = REG) > 0)
							begin
								select @OTECLIN = LIN, @OTECREG = REG from PLIS.dbo.CM_Byci where USCISLO = @OTEC 			
								set @NajdenyOtecJeVCM_Byci = 1
							end
						end
					end
				end

				-- 20161108
				--if ((@OtecJeVCM_Byci = 1 or @NajdenyOtecJeVCM_Byci = 1) and (@MatkaJeVCM_Krava = 1 or @NajdenaMatkaJeVCM_Krava = 1))
				--begin
				--	select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OTEC, @MATKA, null)
				--end
				--else
				if @PL1 is not null
				begin
					set @PL1_POM = (select @PL1)			
					if not((@PL1 is null or @PL1 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL2 is null or @PL2 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL3 is null or @PL3 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL4 is null or @PL4 in (select kodpl from PLIS.dbo.CC_Plemena))
					and (@PL5 is null or @PL5 in (select kodpl from PLIS.dbo.CC_Plemena)))
					begin
						-- priradenie chyby 10
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 10, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end
					end				
				
				-- kontrola: chybny podiel krvi plemien
					if not (
					(
					((@PL1 is not null and @KR1 is not null) and (@PL2 is null and @KR2 is null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (@KR1 = 100)) or 

					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is null and @KR3 is null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) = 100)) or 
											
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is null and @KR4 is null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) = 100)) or 		
							
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) = 100)) or 
																
					((@PL1 is not null and @KR1 is not null) and (@PL2 is not null and @KR2 is not null) and (@PL3 is not null and @KR3 is not null) and (@PL4 is not null and @KR4 is not null) and (@PL5 is not null) and (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0) <= 100))
					)	
					and
						(ISNULL(@KR1, 0) >= ISNULL(@KR2, 0)) and (ISNULL(@KR2, 0) >= ISNULL(@KR3, 0)) and (ISNULL(@KR3, 0) >= ISNULL(@KR4, 0)) and (100 - (ISNULL(@KR1, 0) + ISNULL(@KR2, 0) + ISNULL(@KR3, 0) + ISNULL(@KR4, 0)) <= ISNULL(@KR4, 0))
					)				
					begin
						-- priradenie chyby 11
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 11, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PL1_POM = (select null)
						end
					end
					set @PL1 = (select @PL1_POM)
				end			
				
				-- kontrola: nespravny kod farby
				if @FARBA is not null
					if (select COUNT(*) from PLIS.dbo.CC_Farby where (KODF = @FARBA)) = 0
					begin
						-- priradenie chyby 13
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 13, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @FARBA = (select null)
						end
					end		
				
				-- kontrola: nespravny znak matky bykov
				if @ZNMATBYK is not null
					if (select COUNT(*) from PLIS.dbo.CC_MB where (KOD = @ZNMATBYK)) = 0
					begin
						-- priradenie chyby 14
						exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 14, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @ZNMATBYK = (select null)
						end
					end	
					
				-- neboli chyby typu 2			
				if (@errorflag != 1)		
				begin	
					-- prepocet plemena okrem pripadu, ze nie je znamy aspon jeden rodic a je zadane plemeno -- 20161108
					if not(((dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null) or (dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)) and (@PL1 is not null))
						or (@PL1 is null)
					begin
						select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OTEC, @MATKA, null)					
					end
						
					print 'Krava - update'	

					if @OTECLIN is not null
					begin
						set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, null)
					end

					if @pom_IDBYKA is null
					begin
						if @OTEC is not null
							select @pom_IDBYKA = IDBYKA from CM_Byci where USCISLO = @OTEC 
					end	

					-- update dat
					-- vytvrenie dynamickeho update prikazu
					set @sql_update = ''
					if @PORPREBLAK is not null
						set @sql_update = @sql_update + 'PORPREBLAK = ' + convert(varchar, @PORPREBLAK) + ', '	

					-- neznamy povod -- 20161026				
					if @OTECLINNEZ is not null
					begin				
						set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLINNEZ + ''', OTECREG = NULL, OUSCIS = NULL, IDOT = NULL, '
					end
					else
					if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, @OTEC) is null)
					begin				
						set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, OUSCIS = ''' + @OTEC + ''', IDOT = NULL, '
					end
					else
					--------------
					if (@OTEC is not null and dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC) is not null and @OTECLIN is null)
					begin		
						if @OTECLIN is not null
							set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLIN + ''', OTECREG = ' + isnull(convert(varchar, @OTECREG), 'NULL') + ', '
						else
							set @sql_update = @sql_update + 'OTECLIN = NULL, OTECREG = NULL, '
						set @sql_update = @sql_update + 'OUSCIS = ''' + @OTEC + ''', IDOT = ' + convert(varchar, dbo.C_aktual_zisti_IDBYKA(null, null, @OTEC)) + ', '
					end
					else
					--------------
					begin											

						if @OTECLIN is not null
							set @sql_update = @sql_update + 'OTECLIN = ''' + @OTECLIN + ''', '
						if @OTECREG is not null						   
							set @sql_update = @sql_update + 'OTECREG = ' + convert(varchar, @OTECREG) + ', '	
						if @OTECLIN is not null and @OTECREG is not null
						begin
							set @pom_IDBYKA = PLIS.dbo.C_aktual_zisti_IDBYKA(@OTECLIN, @OTECREG, null)
							if @pom_IDBYKA is not null
								set @sql_update = @sql_update + 'IDOT = ' + convert(varchar, @pom_IDBYKA) + ', '
							set @pom_OUSCIS = PLIS.dbo.C_aktual_zisti_USCISBYKA(@OTECLIN, @OTECREG)
							if @pom_OUSCIS is not null
								set @sql_update = @sql_update + 'OUSCIS = ''' + @pom_OUSCIS + ''', '							
						end			
					end
					-- neznamy povod -- 20161026
					if (@MATKA is not null and dbo.C_aktual_zisti_IDKRAVY(@MATKA) is null)
					begin				
						set @sql_update = @sql_update + 'MA = ''' + @MATKA + ''', IDMA = NULL, '
					end
					else
					begin										
						if @MATKA is not null
						begin
							set @sql_update = @sql_update + 'MA = ''' + @MATKA + ''', '	
							set @pom_IDKRAVY = PLIS.dbo.C_aktual_zisti_IDKRAVY(@MATKA)
							if @pom_IDKRAVY is not null
								set @sql_update = @sql_update + 'IDMA = ' + convert(varchar, @pom_IDKRAVY) + ', '						
						end				
					end								
										
					if @DATNAR is not null
						set @sql_update = @sql_update + 'DATNAR = ''' + convert(varchar, @DATNAR) + ''', '
						
					if @PL1 is not null
					begin
						set @sql_update = @sql_update + 'PL1 = ''' + @PL1 + ''', KR1 = ' + convert(varchar, @KR1) + ', ' 
						if @PL2 is not null
							set @sql_update = @sql_update + 'PL2 = ''' + @PL2 + ''', KR2 = ' + convert(varchar, @KR2) + ', ' 
						else
							set @sql_update = @sql_update + 'PL2 = NULL, KR2 = NULL, ' 
						if @PL3 is not null
							set @sql_update = @sql_update + 'PL3 = ''' + @PL3 + ''', KR3 = ' + convert(varchar, @KR3) + ', ' 
						else
							set @sql_update = @sql_update + 'PL3 = NULL, KR3 = NULL, ' 							
						if @PL4 is not null
							set @sql_update = @sql_update + 'PL4 = ''' + @PL4 + ''', KR4 = ' + convert(varchar, @KR4) + ', ' 
						else
							set @sql_update = @sql_update + 'PL4 = NULL, KR4 = NULL, ' 							
						if @PL5 is not null
							set @sql_update = @sql_update + 'PL5 = ''' + @PL5 + ''', '
						else
							set @sql_update = @sql_update + 'PL5 = NULL, ' 
					end	
													
					if @FARBA is not null
						set @sql_update = @sql_update + 'FARBA = ''' + @FARBA + ''', '					
					if @ZNMATBYK is not null
						set @sql_update = @sql_update + 'ZNMATBYK = ''' + @ZNMATBYK + ''', '	
	/*				if @ZNAKET is not null
						set @sql_update = @sql_update + 'ZNAKET = ' + convert(varchar, @ZNAKET) + ', '*/
					--if @DI = '4'
					--	set @sql_update = @sql_update + 'DOVVYR = NULL, DATVYR = NULL, CHOVATEL = ''' + @CHOVATEL + ''', PRIZNAKKU = ''' + @ZN + ''', '					
					if @sql_update != ''
					begin
						-- odstrani posledne znaky (', ')
						set @sql_update = LEFT(@sql_update, LEN(@sql_update) - 1) 
						-- dokoncenie update prikazu
 						set @sql_update = @sql_update + ', SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' where CISKRAVY = ''' + @CISKRAVY + ''''
 	     				set @sql_update = 'update PLIS.dbo.CM_Krava set ' + @sql_update
 	     				exec (@sql_update)
 	     			end
					-- dodatocny vypocet plemenneho typu
					if @PL1 is not null or @FARBA is not null
					begin
						select @PL1=PL1, @KR1=KR1, @PL2=PL2, @KR2=KR2, @PL3=PL3, @KR3=KR3, @PL4=PL4, @KR4=KR4, @PL5=PL5 from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)
						UPDATE PLIS.dbo.CM_Krava SET
							TYPPLEM = PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1, @KR1, @PL2, @KR2, @PL3, @KR3, @PL4, @kr4, @PL5, @FARBA), SPRACUPDATE = @IDParChov
							WHERE (CISKRAVY = @CISKRAVY) 	     		
					end
				end							
			end						

			-- zmazanie zaznamu o krave
			else if (@DI = '3')
			begin
				delete from CM_Krava where CISKRAVY = @CISKRAVY
				delete from CM_Naplak where CISKRAVY = @CISKRAVY
				delete from CM_Kontroly where CISKRAVY = @CISKRAVY
				delete from CM_Laktacie where CISKRAVY = @CISKRAVY
			end

			-- druh informacie 4 
			else if (@DI = '4')
			begin
				set @datumPosKont = null
				set @CHOVPRIZNAKKU = null
				set @CHOV_KRAVY = null

				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
				where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
				and PRIZNAK = '01' and (SPVYKON = '4' or SPVYKON = '5')) = 0
				begin
					-- priradenie chyby 46
					exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 46, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVATEL = (select null)
					end
				end	
				else
					-- masovy chov
					set @CHOVPRIZNAKKU = '2'

				select @PRIZNAKKU = PRIZNAKKU, @CHOV_KRAVY = CHOVATEL from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY
					
				-- kontrola: je krava v CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)) = 0
				begin
					-- priradenie chyby 05
					exec @navrat_hodn = plis.dbo.C_aktual_Zarkrav_zapis_chybu @IDR, 5, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end
				end
				else		
					if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
					where (KRAJ+OKRES+PODNIK+CHOV = @CHOV_KRAVY)
					and PRIZNAK = '01' and not(SPVYKON = '4' or SPVYKON = '5')) = 0
					begin
						-- priradenie chyby 47
						exec @navrat_hodn = plis.dbo.C_aktual_Zarkrav_zapis_chybu @IDR, 63, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @CHOVATEL = (select null)
						end
					end							
					
				-- samotny presun v DB
				if (@errorflag != 1)		
				begin				
					-- krava ma naplak a neukoncenu laktaciu?
					if ((select count(*) from CM_Naplak where CISKRAVY = @CISKRAVY) = 1)
						and ((select DATUKONL from CM_Naplak where CISKRAVY = @CISKRAVY) is null)
					begin
						-- zistenie datumu poslednej kontroly pre datum ukoncenia laktacie
						set @datumPosKont = (select max(DATKONTR) from CM_Kontroly where CISKRAVY = @CISKRAVY)
						set @datumPosKont = isnull(@datumPosKont, getdate())

						-- prepisanie dat z cm_naplak do cm_laktacie
						exec PLIS.dbo.C_aktual_Otelenia_laktacie @CISKRAVY, @CHOVATEL, @datumPosKont, @IDParChov
														
						-- skopirovanie suvisiacich kontrol do archivu kontrol
						exec PLIS.dbo.C_aktual_kontroly_do_archivu @CISKRAVY, 0	
					end

					update PLIS.dbo.CM_Krava 
					set CHOVATEL = @CHOVATEL, PRIZNAKKU = @CHOVPRIZNAKKU, SPRACUPDATE = @IDParChov, DOVVYR = null, DATVYR = null, RESPONDER = null, 
						DATZAR = GETDATE(), SPRACINSERT = @IDParChov -- aby v zostave zoznamu ktav po presune do MP pribudla nova krava --20170615
					where CISKRAVY = @CISKRAVY	
				end		
			end

			else
			-- iny typ informacie ()
			begin
				-- priradenie chyby 99
				exec @navrat_hodn = plis.[dbo].[C_aktual_Zarkrav_zapis_chybu] @IDR, 99, 'INS'
			end

			-- zaznam v archive zaradeni nastaveny ako spracovany	
			update VstupyPLIS.dbo.CP_HD03_ZARKRAV set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR					
			
			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'3'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState	
								
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran zarkrav;		
		
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'3'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran zarkrav	
			
		FETCH NEXT
		FROM db_cursor_zarkrav INTO 	
			@IDR								
			,@DATZAPIS
			,@CHOVATEL
			,@CISKRAVY
			,@PORPREBLAK_
			,@DATNAR
			,@OTECLIN
			,@OTECREG_
			,@OTEC
			,@MATKA
			,@PL1
			,@KR1
			,@PL2
			,@KR2
			,@PL3
			,@KR3
			,@PL4
			,@KR4
			,@PL5			
			,@FARBA
			,@ZNMATBYK
			,@ZNAKET
			,@DI
	end

	CLOSE db_cursor_zarkrav
	DEALLOCATE db_cursor_zarkrav
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Zarkrav_aktualizacia ...OK'		
END

go



 CREATE procedure [dbo].[Rocenka_MPHD_5]
	
	@rok varchar(4)

	as 
	begin

	select 
	case when plemeno ='AA' then 1
				when plemeno ='BdA' then 2
				--when plemeno ='BBM' then 3
				when plemeno ='Gal' then 3
				when plemeno ='HEM' then 4
				when plemeno ='High' then 5
				when plemeno ='Char' then 6
				when plemeno ='Lim' then 7
				--when plemeno ='SDM' then 8
				--when plemeno ='Piem' then 8
				when plemeno ='Pin' then 8 
				when plemeno ='Sim_maso' then 9
				when plemeno ='Slst' then 10
				when plemeno ='Osta' then 11
				when plemeno ='Nez' then 12
				when plemeno ='SR' then 13 end  as poradie,
	
	case when plemeno ='AA' then 'Aberdeen Angus'
				when plemeno ='BdA' then 'Blonde d´Aquitaine'
				when plemeno ='BBM' then 'Belgické modré'
				when plemeno ='Gal' then 'Galloway'
				when plemeno ='High' then 'Highland'
				when plemeno ='Char' then 'Charolais'
				when plemeno ='Lim' then 'Limousine'
				when plemeno ='Hem' then 'Hereford'
				when plemeno ='Sim_maso' then 'Simentál mäsový'
				when plemeno ='Piem' then 'Piemontese'
				when plemeno ='Pin' then 'Pinzgauské'
				when plemeno ='SDM' then 'Maďarský stepný dobytok'
				when plemeno ='Slst' then 'Slovenské strakaté'
				when plemeno ='Osta' then 'Ostatné plemená'
				when plemeno ='Nez' then 'Neznáme'
				when plemeno ='SR' then 'Výsledky za Slovensko' end as	plemeno, 
	
	nezist, nezist_p, lahky, lahky_p, stred, stred_p, tazky, tazky_p, operacia, operacia_p, rok
	
	 from Roc_MPHD_Tab_5
	where @rok = rok
	order by poradie

	end
 
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 19.07.2015
-- Description:	Z kodu pohlavia telata zisti ci je bycek (1) alebo jalovicka (2) ... (ine (0))
-- =============================================
CREATE FUNCTION [dbo].[zisti_pohlavie_telata] 
(
	@Parcistel varchar(14)
)
RETURNS int
AS
BEGIN
	declare @kodpohlavia varchar(2) = null
	DECLARE @Result int = 0

	set @kodpohlavia = (select POHLAVIE from CM_Telata where CISTELATA = @Parcistel)

	set @Result = (select case when @kodpohlavia in ('01', '11', '31', '41', '51', '81', '91') then 1
								when @kodpohlavia in ('02', '22', '32', '42', '52', '82', '92') then 2
								else 0 end)

	RETURN @Result

END
go


CREATE PROCEDURE [dbo].[CR_KUHD_podnik] @chov VARCHAR(9), @rok INT, @mesiac INT--, @dekada INT
AS 

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 02. 08. 2016
-- Description:	Prepocet KUHD zostavy pre podnik
-- =============================================

BEGIN

		IF OBJECT_ID('tempdb..#temp') IS NOT NULL
			BEGIN DROP TABLE #temp END

			-- najst vsetky chovy v podniku
			SELECT distinct CHOV INTO #temp FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV LIKE LEFT(@chov,6) + '%' AND ROK = @rok AND MESIAC = @mesiac --AND DEKADA = @dekada

DECLARE @pocet INT
SELECT @pocet = COUNT(chov) FROM #temp

	IF @pocet > 1
	BEGIN	
	
	DECLARE @podnik VARCHAR(6)
	SET @podnik = LEFT(@chov,6) 
		 PRINT '...pocitam KUHD / mlieko pre podnik: ' + CONVERT(VARCHAR, @podnik)
		 EXEC dbo.CR_KUHD_mesacne_vyvoj @podnik, @rok, @mesiac--, @dekada
	END
END

go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: 4.6.2014
-- Description:	#1255
-- =============================================
CREATE PROCEDURE ZisteniePoslednejInseminaciePoPoslednomOteleni (@KRAVA VARCHAR(14))
AS
BEGIN

declare @datinsem datetime;
declare @nar datetime;
	
/*do @nar sa vlozi posledne narodene tela kravy*/	
select top 1 @nar = t.DATNAR 
from plis.dbo.CM_Telata as t
left join plis.dbo.CP_Meso_TelataVahy as v
on t.CISTELATA=v.cistelata
left join plis.dbo.CM_Krava as k
on k.CISKRAVY=t.MATKA
left join plis.dbo.Cp_Meso_TelataPoLaktacii as p
on (k.CISKRAVY=p.Ciskrava)
where t.MATKA=@krava
and t.DATNAR=p.DATOTEL
group by t.DATNAR
order by t.DATNAR desc

/*do @datinsem sa vlozi datum poslednej inseminacie*/
SELECT top 1 @datinsem = IDAIN FROM  PLIS.DBO.CM_Insvyk 
where IPLCA=@KRAVA order by idain DESC

/*
ak ma posledne narodene tela vacsi datum ako je datum inseminacie, 
vtedy ho nechceme zobrazit, pretoze krava nie je momentalne gravidna (po insemin. sposobe)*/
if @nar > @datinsem
begin
	/*nezobraz dat ins - bude null*/
	SELECT  top 1 null as datinsem ,null as bik, null as datOcOtel, null as ipoin, null as ivyse FROM  PLIS.DBO.CM_Insvyk 
	where IPLCA=@KRAVA order by datinsem DESC
end;
            
else
begin
	/*normalne vyber poslednu inseminaciu*/
	SELECT top 1
	IDAIN as datinsem
	,IBLIN+'-'+RIGHT('000'+(convert(varchar,IBREG)),3) as bik
	,IDAOT as datOcOtel, IPOIN, IVYSE FROM PLIS.DBO.CM_Insvyk 
	where IPLCA=@KRAVA order by datinsem DESC
	end;
	
	/*
	EXEC ZisteniePoslednejInseminaciePoPoslednomOteleni 'SK000800598662 '
	*/
END
go

CREATE PROCEDURE [dbo].[Roc_MLHD_ZostavaLaktacie_TypPlem_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;
-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC Roc_MLHD_ZostavaLaktacie_TypPlem @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC Roc_MLHD_ZostavaLaktacie_TypPlem @chov, @datumOd, @datumDo, @region

	delete from CR_LaktacneZostavy_Opr where filter is null


END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 26.7.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_ZARKRAV 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Zarkrav_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int],
	@ParOp [varchar](3)
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	if @ParOp = 'INS'
		select @PriznakChyby = ZNCH_CZ_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby
	else if @ParOp = 'UPD' 
		select @PriznakChyby = ZNCH_CZ_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
	
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_ZARKRAV(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go



 CREATE procedure [dbo].[Rocenka_MPHD_4]
	
	@rok varchar(4)

	as 
	begin

	select *
	 from Roc_MPHD_Tab_4
	where @rok = rok
	
	end
 
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 19.05.2015
-- Description:	Zisti typ KU chovu
-- =============================================
CREATE FUNCTION [dbo].[HDchov_typ_KU] 
(
	@Parchov varchar(9)
)
RETURNS varchar(4)
AS
BEGIN
	declare @spvykon varchar(1) = null
	declare @priznak varchar(2) = null
	declare @techusmd varchar(2) = null
	DECLARE @Result varchar(4) = ''

	SELECT @spvykon = NM_HDDETAIL.SPVYKON, @priznak = NM_HDDETAIL.PRIZNAK, @techusmd = NM_HDDETAIL.TECHUSMD
	FROM NM_CHOVMAS INNER JOIN
	NM_HDDETAIL ON NM_CHOVMAS.KRAJ = NM_HDDETAIL.KRAJ AND NM_CHOVMAS.OKRES = NM_HDDETAIL.OKRES AND 
	NM_CHOVMAS.PODNIK = NM_HDDETAIL.PODNIK AND NM_CHOVMAS.CHOV = NM_HDDETAIL.CHOV
	WHERE ZRUS IS NULL AND NM_CHOVMAS.TYPZV = '1' AND
		NM_CHOVMAS.KRAJ + NM_CHOVMAS.OKRES + NM_CHOVMAS.PODNIK + NM_CHOVMAS.CHOV = @Parchov

	if (NOT(@spvykon = '0' OR @spvykon= '4' OR @spvykon = '5') AND @priznak = '01' AND @techusmd = '00')
		set @Result = 'ML'
	else if ((@spvykon= '4' OR @spvykon = '5') AND @priznak = '01')
		set @Result = 'MP'
	else if (@spvykon= '0' AND @priznak = '01' AND @techusmd != '00')
		set @Result = 'TMHD'	
	
	RETURN @Result

END
go

--use plis
/***** 
Rocenka KU mlieko - skr poslednu tabulku v rocenke : Vysledky kontroly [6itkovosti  hov. dobytka v SR - prepocitava hodnoty za *chov spolu* do tabulky Roc_MLHD_Tab_22A 
... prepocitava sa v pripade, ak jeden chov ma viac mastali( napr. 108520071 a 108520072...prepocita udaje za chov 10852007  
***/
 CREATE procedure [dbo].[Roc_MLHD_22_chov]
	@chov varchar(8),
	@datumOd date,
	@datumDo date

--declare @chov varchar(8), @datumOd date, @datumDo date

--set @chov = '10852007'
--set @datumOd= '2017-01-01'
--set @datumDo = '2017-12-31'
as 
begin
delete from CR_LaktacneZostavy_Opr where @chov = Oznacenie and Oznacenie = Filter and DatumOd = @datumOd and DatumDo = @datumDo

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
) --ON [PRIMARY]

declare @kravy table
	(
	CHOV varchar(8) NULL,
	ciskravy varchar(14),
	PORPREBLAK int
	)

insert into @Laktacie
		 SELECT
 			 PORLAK, substring(CHOVATEL,1,8), (select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),
			 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, Plem, 
			 DOVVYR, DATVYR,
			 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + substring(eko.CHOV,1,2)) and eko.EkoChov='1' then '1' 
						else null end)as EkoChov
		 FROM dbo.View_CP_LaktaciePreZostavy as Lakt		 
			left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV )= CHOVATEL)
		 where (substring(Lakt.CHOVATEL,1,8) in (select substring(chov,1,8) from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			and substring(lakt.chovatel,1,8) = @chov			
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
				or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null AND eko.TYPZV='1'
			
			and MLIEKCEL <>''

			--select * from @Laktacie

	Insert into @kravy
	select 
		@chov as CHOV, 
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		where (substring(k.CHOVATEL,1,8) in (select distinct CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' --and k.PORPREBLAK ='1'

		--select * from @kravy
		

	declare @PocZapojL1 table
		(
		[CHOV] [varchar](9) NULL,
		[PocZapojL1] int NULL
		)
	

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		count(k.ciskravy) as PocZapojL1
	from @kravy as k
	 where
		k.PORPREBLAK ='1'
 	--group by @chov


--select * from @PocZapojL1 
declare @PocZapojL2 table
	(
	 [CHOV] [varchar](9) NULL,
	 [PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	where k.PORPREBLAK >='2' 		
	----group by @chov
		

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		count(k.ciskravy) as PocZapojLCelk
	from @kravy as k 
	----group by @chov
		
declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	----group by @chov

		--select * from @pocLAKV1 


declare @pocLAKV2 table
	(
	[CHOV] [varchar](9) NULL,
	[PocLakV2] [float](4) NULL
	)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	----group by @chov 
	
--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	----group by @chov 
		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	----group by @chov 
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62'  ) then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	----group by @chov 
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	----group by @chov 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	----[Region] [varchar](2) NULL,
	----[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	----group by @chov
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	----group by @chov 
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	----group by @chov
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	--[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	----group by @chov 	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	----group by @chov
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60'or l.DOVVYR='61'or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	----group by @chov 
	--select * from @ZmenaCelk order by CHOV



insert dbo.CR_LaktacneZostavy_Opr 
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	@chov as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	@chov as Filer,
	getdate() as datumGenerovania,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,
	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) 
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null)) 
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null))
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null))
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null))
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null))
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null))
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null))
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null))
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null))
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null))
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	update Roc_MLHD_Tab_22A 
	set stpec_7 = PocLakN1
				, stpec_8 = LakdniNL1
				, stpec_9 = MliekNorL1
				, stpec_10 = round((TukNorL1*100)/MliekNorL1,2)
				, stpec_11 = TukNorL1
				, stpec_12 = round((BielkNorL1*100)/MliekNorL1,2)
				, stpec_13 = BielkNorL1
				, stpec_14Mesiac = (select val from string2table (k.MedziobdL1,'/') where seq = 1)
				, stpec_14Den = (select val from string2table (k.MedziobdL1,'/') where seq = 2)
				, stpec_15 = PocLakN2
				, stpec_16 = LakDniNL2
				, stpec_17 = MliekNorL2
				, stpec_18 = round((TukNorL2*100)/MliekNorL2,2) 
				, stpec_19 = TukNorL2
				, stpec_20 = round((BielkNorL2*100)/MliekNorL2,2)
				, stpec_21 = BielkNorL2
				, stpec_22 = MedziobdL2
				, stpec_23 = PocLakNcelk
				, stpec_24 = LakDniNCelk
				, stpec_25 = MliekNorCelk
				, stpec_26 = round((TukNorCelk*100)/MliekNorCelk,2)
				, stpec_27 = TukNorCelk
				, stpec_28 = round((BielkNorCelk*100)/MliekNorCelk,2)
				, stpec_29 = BielkNorCelk

				from CR_LaktacneZostavy_Opr as k  
				where k.oznacenie= @chov  and oznacenie = Filter
					and SUBSTRING(Oznacenie,1,6) = kraj + okres + podnik 
					and rok = datepart(year, k.datumOd)
					and stpec_6 = 'Chov spolu'




	end
go

CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_KravyPodlaRokovALakt]	
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_StadaPodlaVeku

	SET NOCOUNT ON;
	declare @chov varchar(9);
	set @chov='';
	declare @count int;
	set @count=0;


	declare @rok int;
	declare @l int;
	declare @pocet int;

	set @rok=0;
	set @l=0;
	set @pocet=0;
	

	declare @l1 int;
	declare @l2 int;
	declare @l3 int; 
	declare @l4 int;
	declare @l5 int;
	declare @l6 int;
	declare @l7 int;
	declare @l8 int;
	declare @l9 int;
	declare @l10 int;

	declare  chovately cursor 
	for SELECT  DISTINCT     CHOVATEL
		FROM    dbo.CM_Krava AS k
		WHERE    (PRIZNAKKU = '1') AND (DOVVYR IS NULL)
		GROUP BY CHOVATEL

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 

					set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					print @chov;
				
						declare lakt1 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 1 and 1.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt1 
						fetch next from lakt1 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=1;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt1 into @pocet,@l
						end
						set @rok=1;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt1;
						deallocate lakt1;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt2 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 2 and 2.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt2 
						fetch next from lakt2 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=2;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt2 into @pocet,@l
						end
						set @rok=2;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt2;
						deallocate lakt2;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt3 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 3 and 3.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt3 
						fetch next from lakt3 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=3;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt3 into @pocet,@l
						end
						set @rok=3;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt3;
						deallocate lakt3;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt4 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 4 and 4.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt4 
						fetch next from lakt4 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=4;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt4 into @pocet,@l
						end
						set @rok=4;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt4;
						deallocate lakt4;
						set @count=0;
						set @rok=0;
						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt5 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 5 and 5.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt5 
						fetch next from lakt5 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=5;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt5 into @pocet,@l
						end
						set @rok=5;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt5;
						deallocate lakt5;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt6 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 6 and 6.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK
							
							
							

						open lakt6 
						fetch next from lakt6 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=6;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt6 into @pocet,@l
						end
						set @rok=6;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt6;
						deallocate lakt6;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt7 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 7 and 7.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt7 
						fetch next from lakt7 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=7;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt7 into @pocet,@l
						end
						set @rok=7;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt7;
						deallocate lakt7;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


						declare lakt8 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 8 and 8.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt8 
						fetch next from lakt8 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt8 into @pocet,@l
						end
						set @rok=8;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt8;
						deallocate lakt8;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt9 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 9 and 9.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt9 
						fetch next from lakt9 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt9 into @pocet,@l
						end
						set @rok=9;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt9;
						deallocate lakt9;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

						declare lakt10 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 10 and 10.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt10 
						fetch next from lakt10 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt10 into @pocet,@l
						end
						set @rok=10;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt10;
						deallocate lakt10;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt11 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 11 and 11.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt11 
						fetch next from lakt11 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt11 into @pocet,@l
						end
						set @rok=11;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt11;
						deallocate lakt11;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					declare lakt12 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 12 and 12.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt12 
						fetch next from lakt12 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt12 into @pocet,@l
						end
						set @rok=12;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt12;
						deallocate lakt12;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt13 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 13 and 13.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt13 
						fetch next from lakt13 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt13 into @pocet,@l
						end
						set @rok=13;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt13;
						deallocate lakt13;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;


					declare lakt14 cursor
						for SELECT COUNT(*) AS po4et, PORPREBLAK 
							FROM  dbo.CM_Krava AS k
							WHERE (PRIZNAKKU = '1') 
							AND (DOVVYR IS NULL) 
							and(convert(float,(datediff(DAY,DATNAR,GETDATE())/365.00000))between 14 and 14.99)
							and	CHOVATEL=@chov
							GROUP BY PORPREBLAK

						open lakt14 
						fetch next from lakt14 into @pocet,@l
						WHILE @@FETCH_STATUS = 0 
						BEGIN 
							
							--set @rok=8;
							set @count=@count+@pocet;

							if(@l=1)
							begin
								set @l1=@pocet;
							end
							if(@l=2)
							begin
								set @l2=@pocet;
							end
							if(@l=3)
							begin
								set @l3=@pocet;
							end
							if(@l=4)
							begin
								set @l4=@pocet;
							end
							if(@l=5)
							begin
								set @l5=@pocet;
							end
							if(@l=6)
							begin
								set @l6=@pocet;
							end
							if(@l=7)
							begin
								set @l7=@pocet;
							end
							if(@l=8)
							begin
								set @l8=@pocet;
							end
							if(@l=9)
							begin
								set @l9=@pocet;
							end
							if(@l=10)
							begin
								set @l10=@pocet;
							end

							fetch next from lakt14 into @pocet,@l
						end
						set @rok=14;
						insert into dbo.CP_StadaPodlaVeku values(@rok,@l1,@l2,@l3,@l4,@l5,@l6,@l7,@l8,@l9,@l10,@count,@chov);
						close lakt14;
						deallocate lakt14;
						set @count=0;
						set @rok=0;

						set @l1=null;
					set @l2=null;
					set @l3=null;
					set @l4=null;
					set @l5=null;
					set @l6=null;
					set @l7=null;
					set @l8=null;
					set @l9=null;
					set @l10=null;

					FETCH NEXT FROM chovately INTO @chov;
			end

			print @count;

			close chovately;
			deallocate chovately;
    
END
go

CREATE PROCEDURE [dbo].[CR_KUHD_mesacne_detail]
    @chov VARCHAR(9) ,
    @rok INT ,
    @mesiac INT,
	@dekada INT

AS

 DECLARE @aktualny_rok INT ,
        @start_day INT ,
        @end_day INT ,
        @start DATE ,
        @end DATE ,
        @start1 DATE ,
        @end1 DATE ,
        @start2 DATE ,
        @end2 DATE ,
        @minusrok DATE

    DECLARE @kont_krav INT
    DECLARE @kont_krav1laktacia INT
    DECLARE @celkom_krav VARCHAR(14)
    DECLARE @celkom_krav1laktacia INT
    DECLARE @datkontr DATE
    DECLARE @datkontr1 DATE
    DECLARE @datkontr2 DATE
    DECLARE @1kontrola INT
    DECLARE @2kontrola INT
    DECLARE @1kontrola1lak INT
    DECLARE @2kontrola1lak INT
    DECLARE @mesiac_minus_1 AS INT
    DECLARE @mesiac_minus_2 AS INT
    DECLARE @rok_minus_1 AS INT
    DECLARE @rok_minus_2 AS INT
    DECLARE @sucet_mlieka_all AS FLOAT
    DECLARE @sucet_mlieka_all_LAK1 AS FLOAT
    DECLARE @priemerne_perc_tuku AS FLOAT
    DECLARE @priemerne_perc_bielk AS FLOAT
    DECLARE @somatika AS INT
    DECLARE @pocet_TB_11 AS INT
    DECLARE @pocet_TB_1115 AS INT
    DECLARE @pocet_TB_15 AS INT
    DECLARE @pocet_TB_11_LAK1 AS INT
    DECLARE @pocet_TB_1115_LAK1 AS INT
    DECLARE @pocet_TB_15_LAK1 AS INT


	BEGIN
    
		-- SET @chov = '106509091'
		-- SET @rok = 2015
		-- SET @mesiac = 11
        
		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

        SELECT  @start = DATEADD(mm, -1,
                                 CAST(CAST(@rok AS VARCHAR(4)) + '-'
                                 + CAST(@mesiac AS VARCHAR(2)) + '-'
                                 + CAST(@start_day AS VARCHAR(2)) AS DATE))
        SELECT  @end = CAST(CAST(@rok AS VARCHAR(4)) + '-'
                + CAST(@mesiac AS VARCHAR(2)) + '-'
                + CAST(@end_day AS VARCHAR(2)) AS DATE)

        SELECT  @start1 = DATEADD(mm, -1, @start)	-- zaciatok predchadzajuceho obdobia
        SELECT  @end1 = DATEADD(dd, -1, @start)		-- koniec predchadzajuceho obdobia

        SELECT  @start2 = DATEADD(mm, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)
        SELECT  @end2 = DATEADD(dd, -1, @start1)	-- zaciatok predchadzajuceho obdobia (minus 2 mesiace)

        SELECT  @minusrok = DATEADD(mm, -12, @end)


		-- vymazanie temp tabuliek ak existuju

        IF OBJECT_ID('tempdb..#kravy') IS NOT NULL
            DROP TABLE #kravy
        IF OBJECT_ID('tempdb..#kx') IS NOT NULL
            DROP TABLE #kx
        IF OBJECT_ID('tempdb..#kx1') IS NOT NULL
            DROP TABLE #kx1
        IF OBJECT_ID('tempdb..#kx2') IS NOT NULL
            DROP TABLE #kx2

        
		-------------------------------------------------------------
		-- vyber vsetkych krav v chove
		-------------------------------------------------------------

		SELECT  *
        INTO    #kravy
        FROM    dbo.View_CM_Kontroly
        WHERE   CISCHOVU = @chov
                AND DATKONTR BETWEEN @start AND @end;

		-------------------------------------------------------------
		-- vyber vsetkych krav v chove a kontrole
		-------------------------------------------------------------

        SELECT  @celkom_krav  = CISKRAVY
        FROM    dbo.CM_Krava
        WHERE   CHOVATEL = @chov
                AND ISNULL(DOVVYR, '') = '' OR DOVVYR = '00'

		---------------------------------------------------------
		-- vyber krav v kontrole s aktualnym a poslednym datumom
		---------------------------------------------------------

		DECLARE
			@AD DATE ,
            @PD DATE ,
            @PL INT ,
            @ciskravy VARCHAR(14) ,
            @LD INT

        DECLARE @kr_table TABLE
            (
              ciskravy VARCHAR(14) ,
              AD DATE ,			-- actual date / posledna kontrola
              PD DATE ,			-- previous date / predosla kontrola
              PL INT ,			-- poradie laktacie
              LD INT			-- laktacnych dni	
	        )


		DECLARE selekcia CURSOR
        FOR
            SELECT  kk.CISKRAVY AS ciskravy
            FROM    #kravy kk
            WHERE   kk.CISCHOVU = @chov

        OPEN selekcia
        FETCH NEXT FROM selekcia INTO @ciskravy

        WHILE @@FETCH_STATUS = 0
            BEGIN

                SELECT  @AD = MAX(tri.AD) ,
                        @PD = MAX(tri.PD) ,
                        @PL = MAX(tri.PL) ,
                        @LD = MAX(tri.LD)
                FROM    ( SELECT    CISKRAVY ,
                                    NULL AD ,
                                    NULL PD ,
                                    PORLAK PL ,
                                    NULL LD
                          FROM      dbo.CM_Naplak
                          WHERE     CISKRAVY = @ciskravy
                          UNION
                          SELECT TOP 1
                                    *
                          FROM      ( SELECT TOP 1
                                                CISKRAVY ,
                                                DATKONTR AD ,
                                                NULL PD ,
                                                NULL AS PL ,
                                                NULL LD
                                      FROM      dbo.CM_Kontroly
                                      WHERE     CISKRAVY = @ciskravy
                                      ORDER BY  AD DESC
                                    ) jeden
                          UNION
                          SELECT TOP 1
                                    dva.CISKRAVY ,
                                    NULL AD ,
                                    dva.DATKONTR PD ,
                                    NULL PL ,
                                    dva.LAKTDNI
                          FROM      ( SELECT TOP 2
                                                CM_Kontroly.CISKRAVY ,
                                                CM_Kontroly.DATKONTR ,
                                                dbo.CM_Naplak.LAKTDNI
                                      FROM      dbo.CM_Kontroly
                                                INNER JOIN dbo.CM_Naplak ON ( CM_Naplak.CISKRAVY = CM_Kontroly.CISKRAVY )
                                      WHERE     dbo.CM_Kontroly.CISKRAVY = @ciskravy
                                                AND dbo.CM_Naplak.PORLAK = dbo.CM_Naplak.PORLAK
                                      ORDER BY  dbo.CM_Kontroly.DATKONTR DESC
                                    ) dva
                          ORDER BY  PD ASC
                        ) tri
                GROUP BY tri.CISKRAVY


                IF @ciskravy IS NOT NULL
                    BEGIN
                        INSERT  @kr_table
                                SELECT  @ciskravy ,
                                        @AD ,
                                        @PD ,
                                        @PL ,
                                        @LD;
                    END;

                FETCH NEXT FROM selekcia INTO @ciskravy

            END

        CLOSE selekcia;
        DEALLOCATE selekcia;

		---------------------------------------------------------
		-- vypis
		---------------------------------------------------------


		SELECT
			LEFT(temp.CISCHOVU,3) AS KrOkr,
			RIGHT(LEFT(temp.CISCHOVU,6),3) AS podnik,
			RIGHT(temp.CISCHOVU,3) AS chov,
			NULL AS nazpod,
			NULL AS nazchov,
			temp.SKUPINA AS skup,
			DATEPART(MONTH, @end) AS messp,
			k.DATPOSKONT datposk,
			k.CISKRAVY AS ciskravy,
			NULL AS plemkr,					  -- plemeno kravy, cm_krava - PL1+ KR1+.....
			k.DATNAR AS datnar,
			n.DATOTEL AS datotel,
			k.PORPREBLAK AS porpreblak,
			n.ZMENA AS zmena,
			n.ZNAK AS znak,
			NULL AS spi,						--- slovensky produkcny index, CM_kravyTDM
			NULL AS perspol,
			NULL AS ml1,
			NULL AS zn1,
			NULL AS ml2,
			NULL AS zn2,
			NULL AS ml3,
			NULL AS zn3,
			NULL AS ml4,
			NULL AS zn4,
			NULL AS ml5,
			NULL AS zn5,
			NULL AS ml6,
			NULL AS zn6,
			NULL AS ml7,
			NULL AS zn7,
			NULL AS ml8,
			NULL AS zn8,
			NULL AS ml9,
			NULL AS zn9,
			NULL AS ml10,
			NULL AS zn10,
			NULL AS ml11,
			NULL AS zn11,
			NULL AS ml12,
			NULL AS zn12,
			NULL AS napdni,					-- 3.napocet lakt. / dni
			NULL AS neppert,				-- 3.napocet lakt. / percento tuku
			NULL AS napperb,				-- 3.napocet lakt. / percento bielkoviny
			NULL AS napml,					-- 3.napocet lakt. / mlieko kg
			NULL AS naptk,					-- 3.napocet lakt. / tuk kg
			NULL AS napbl,					-- 3.napocet lakt. / bielkovina kg
			NULL AS udni,					-- 100-200-305 lakt / dni
			NULL AS upert,					-- 100-200-305 lakt / percento tuku
			NULL AS uperb,					-- 100-200-305 lakt / percento bielkoviny
			NULL AS uml,					-- 100-200-305 lakt / mlieko kg
			NULL AS utk,					-- 100-200-305 lakt / tuk kg
			NULL AS ubl,					-- 100-200-305 lakt / tuk kg
			NULL AS sb1,					-- posledne 2 kontroly / SB 1000
			NULL AS sb2,					-- posledne 2 kontroly / SB 1000-1
			NULL AS ptuku1,					-- posledne 2 kontroly / percento tuku -1 mesiac
			NULL AS bielk1,					-- posledne 2 kontroly / percento bielkoviny -1 mesiac
			NULL AS ptb1,					-- posledne 2 kontroly / percento tuk bielkovina -1 mesiac
			NULL AS ptuku2,					-- posledne 2 kontroly / percento tuku -2 mesiace
			NULL AS bielk2,					-- posledne 2 kontroly / percento bielkoviny -2 mesiace
			NULL AS ptb2,					-- posledne 2 kontroly / percento tuk bielkovina -2 mesiace
			NULL AS ovekr,					-- vek kravy v celych rokoch
			NULL AS ovekm,					-- vek kravy (rok je predosly parameter) + mesiac
			NULL AS pohltel,				-- pohlavie telata
			n.PRIEBPOROD,					-- priebeh porodu
			NULL AS datins,					-- datum poslednej inseminacie
			NULL AS porins,					-- poradie inseminacie po poslednom oteleni
			NULL iaterval,					-- interval inseminacie
			null AS servper,				-- servis perioda
		--	l.MEDZIOBD AS medziob,			-- medziobdobie
			NULL AS byklin,					-- byk linia
			NULL AS bykreg,					-- byk register
			NULL AS datotoc,				-- datum ocakavaneho otelenia
			NULL AS olin,					-- otec linia
			NULL AS oreg,					-- otec register
			NULL AS otplem,					-- plemenna skladba otec
			NULL AS matka,					-- matka kravy
			NULL AS maplem,					-- matka plemeno
			NULL AS znvyr


			
			FROM #kravy temp
			INNER JOIN dbo.CM_Naplak n ON (n.CISKRAVY = temp.CISKRAVY)
			INNER JOIN dbo.CM_Krava k ON (k.CISKRAVY = n.CISKRAVY)
			-- INNER JOIN dbo.CM_Laktacie l ON (k.CISKRAVY = l.CISKRAVY)
			
			

			

			SELECT * FROM @kr_table
			
	END


go

/****** Script for SelectTopNRows command from SSMS  ******/
/** Rocenka MLHD ----PREHLAD VYSLEDKOV PODLA KRAJOV - POCET SOMATICKYCH BUNIEK VO VZORKACH MLIEKA ---str 15 **/
/**  SB do 400 tisic a nad 400 tisic**/
CREATE procedure  [dbo].[Roc_MLHD_5]

    @datumOd date,
    @datumDo date
  --declare @datumOd date = '2018-01-01', @datumDo date= '2018-09-30'
as
  begin

    select do400.kraj, do400.nazov, pocet_do_400, pocet_nad_400, pocet, spolu_SB, priemer_pocet_SB
    from (/**somaticke bunky do 400 tisic**/
         select distinct t.kraj, t.nazov, Count(*) as pocet_do_400
         from (select distinct p.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
               from CM_Kontroly as k
                      left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(k.CISCHOVU, 1, 1)
               where k.DATKONTR >= @datumOd
                 and k.DATKONTR <= @datumDo
                 and k.BUNECELEM < 400
                 and p.KRAJ <> 0
               union
               select distinct p.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
               from CM_ArchKon as ak
                      left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(ak.CISCHOVU, 1, 1)
               where ak.DATKONTR >= @datumOd
                 and ak.DATKONTR <= @datumDo
                 and ak.BUNECELEM < 400
                 and p.KRAJ <> 0) as t
         group by t.kraj, t.nazov) as do400
           left outer join (/**somaticke bunky nad 400 tisic**/
                           select distinct t.kraj, t.nazov, Count(*) as pocet_nad_400
                           from (select distinct p.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR
                                 from CM_Kontroly as k
                                        left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(k.CISCHOVU, 1, 1)
                                 where k.DATKONTR >= @datumOd
                                   and k.DATKONTR <= @datumDo
                                   and k.BUNECELEM >= 400
                                   and p.KRAJ <> 0
                                 union
                                 select distinct p.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR
                                 from CM_ArchKon as ak
                                        left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(ak.CISCHOVU, 1, 1)
                                 where ak.DATKONTR >= @datumOd
                                   and ak.DATKONTR <= @datumDo
                                   and ak.BUNECELEM >= 400
                                   and p.KRAJ <> 0) as t
                           group by t.kraj, t.nazov) as nad400 on do400.KRAJ = nad400.KRAJ
           left outer join (/**priemer SB za kraj**/
                           select distinct t.kraj,
                                           t.nazov,
                                           Count(*)                  as pocet,
                                           sum(BUNECELEM)            as spolu_SB,
                                           sum(BUNECELEM) / Count(*) as priemer_pocet_SB
                           from (select distinct p.KRAJ, p.NAZOV, k.CISKRAVY, k.DATKONTR, k.BUNECELEM
                                 from CM_Kontroly as k
                                        left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(k.CISCHOVU, 1, 1)
                                 where k.DATKONTR >= @datumOd
                                   and k.DATKONTR <= @datumDo
                                   and k.BUNECELEM is not null
                                   and p.KRAJ <> 0
                                 union
                                 select distinct p.KRAJ, p.NAZOV, ak.CISKRAVY, ak.DATKONTR, ak.BUNECELEM
                                 from CM_ArchKon as ak
                                        left outer join NC_KRAJ p on p.KRAJ = SUBSTRING(ak.CISCHOVU, 1, 1)
                                 where ak.DATKONTR >= @datumOd
                                   and ak.DATKONTR <= @datumDo
                                   and ak.BUNECELEM is not null
                                   and p.KRAJ <> 0) as t
                           group by t.kraj, t.nazov)
        as priemer on do400.KRAJ = priemer.KRAJ

    order by KRAJ

  end
go

create PROCEDURE [dbo].[C_ZZ_Meso_MedziObdobZostava_temp]
AS
BEGIN
/*******************************************

!  please run affter updating table cp_MedziObdMesove (C_VZ_MedziobdobieMesove procedure) !

	using table:CM_Krava,CP_MedziObdMesove

	changing table:cp_Meso_MediobdobieReport

	used for:(6)Rozbor medziobdobia kráv KÚMP 

*****************************************/

TRUNCATE TABLE cp_Meso_MediobdobieReport

declare @chov as varchar(9);
declare @l as int;
declare @hranica as varchar(15);
declare @spolu int;

declare @Pmedzi0 as int;
declare @Pmedzi2 as int;
declare @Pmedzi3 as int;
declare @Pmedzi4 as int;
declare @Pmedzi5 as int;
declare @Pmedzi6 as int;
declare @Pmedzi7 as int;
declare @Pmedzi8 as int;
declare @Pmedzi9 as int;
declare @PmedziX as int;

declare @l2h0 as int;
declare @l3h0 as int;
declare @l4h0 as int;
declare @l5h0 as int;
declare @l6h0 as int;
declare @l7h0 as int;
declare @l8h0 as int;
declare @l9h0 as int;
declare @l2h1 as int;
declare @l2h2 as int;
declare @l2h3 as int;
declare @l2h4 as int;
declare @l2h5 as int;
declare @l3h1 as int;
declare @l3h2 as int;
declare @l3h3 as int;
declare @l3h4 as int;
declare @l3h5 as int;
declare @l4h1 as int;
declare @l4h2 as int;
declare @l4h3 as int;
declare @l4h4 as int;
declare @l4h5 as int;
declare @l5h1 as int;
declare @l5h2 as int;
declare @l5h3 as int;
declare @l5h4 as int;
declare @l5h5 as int;
declare @l6h1 as int;
declare @l6h2 as int;
declare @l6h3 as int;
declare @l6h4 as int;
declare @l6h5 as int;
declare @l7h1 as int;
declare @l7h2 as int;
declare @l7h3 as int;
declare @l7h4 as int;
declare @l7h5 as int;
declare @l8h1 as int;
declare @l8h2 as int;
declare @l8h3 as int;
declare @l8h4 as int;
declare @l8h5 as int;
declare @l9h1 as int;
declare @l9h2 as int;
declare @l9h3 as int;
declare @l9h4 as int;
declare @l9h5 as int;

declare @lspolu0 as int;
declare @lspolu2 as int;
declare @lspolu3 as int;
declare @lspolu4 as int;
declare @lspolu5 as int;
declare @lspolu6 as int;
declare @lspolu7 as int;
declare @lspolu8 as int;
declare @lspolu9 as int;

declare @hspolu0 as int;
declare @hspolu1 as int;
declare @hspolu2 as int;
declare @hspolu3 as int;
declare @hspolu4 as int;
declare @hspolu5 as int;


	

declare chov cursor for
select distinct k.CHOVATEL
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union

select distinct substring(k.chovatel,1,6)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union 

select distinct substring(k.chovatel,1,3)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null

union

select distinct substring(k.chovatel,1,1)
from CM_Krava as k
where  k.PRIZNAKKU='2'
and k.DOVVYR is null


open chov;
fetch next from chov into @chov;

while @@FETCH_STATUS=0
begin


		 set @spolu=	(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE  @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK is not null
		 and k.porpreblak !=1)
		 --------------------------------------------------------------
		
		 set @l2h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK = 2
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null
		 )
				
		 set @l2h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l2h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l2h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l2h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l2h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 set @hspolu5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)


		 set @hspolu4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @hspolu3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null and k.PORPREBLAK !=1)

		 set @hspolu1=(select count(*)
		from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and ( t.Medziobd<=320) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)
		 
		 set @hspolu0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and ( t.Medziobd is null) 
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi2=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=2
		 and k.PORPREBLAK is not null)

		 ---------------------------------------------------------
		
		 set @l3h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l3h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and ( t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l3h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l3h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l3h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l3h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null
		 and k.PORPREBLAK !=1)

		 set @Pmedzi3=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=3
		 and k.PORPREBLAK is not null)
		 --------------------------------------------
		  
		 set @l4h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)		 
		 
		 set @l4h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL  LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l4h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL  LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l4h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l4h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l4h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)

		 set @Pmedzi4=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=4
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l5h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l5h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l5h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l5h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l5h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l5h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and t.Medziobd >= 401
		 and k.PORPREBLAK is not null)

		 set @lspolu5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)

		 set @Pmedzi5=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=5
		 and k.PORPREBLAK is not null)
		 -----------------------------------------------

		 set @l6h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)
		
		 set @l6h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l6h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l6h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l6h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l6h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)


		 set @lspolu6=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)

		 set @Pmedzi6=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=6
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l7h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l7h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l7h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l7h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l7h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l7h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu7=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)

		 set @Pmedzi7=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=7
		 and k.PORPREBLAK is not null)
		 ---------------------------------------------

		 set @l8h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l8h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l8h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l8h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l8h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l8h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu8=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)

		 set @Pmedzi8=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK=8
		 and k.PORPREBLAK is not null)
		 --------------------------------------------

		 set @l9h0=(select count(*)
		 from CM_Krava as k
		 join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd is null)
		 and k.PORPREBLAK is not null)

		 set @l9h1=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and (t.Medziobd<=320)
		 and k.PORPREBLAK is not null)

		 set @l9h2=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 321 and 365
		 and k.PORPREBLAK is not null)

		 set @l9h3=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 366 and 385
		 and k.PORPREBLAK is not null)

		 set @l9h4=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd between 386 and 400
		 and k.PORPREBLAK is not null)

		 set @l9h5=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and t.Medziobd >=401
		 and k.PORPREBLAK is not null)

		 set @lspolu9=(select count(*)
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)

		 set @Pmedzi9=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=9
		 and k.PORPREBLAK is not null)


		 set @PmedziX=(select avg(nullif(t.Medziobd,0))
		 from CM_Krava as k
		 LEFT join CP_MedziObdMesove as t
		 on (k.CISKRAVY=t.kravcislo and k.PORPREBLAK=t.porpreblak)
		 where  k.PRIZNAKKU='2'
		 and k.CHOVATEL LIKE @chov + '%'
		 and k.DOVVYR is null
		 and k.PORPREBLAK>=2
		 and k.PORPREBLAK is not null)


		 ---------------------------------------------------
	
	
	
	insert into cp_Meso_MediobdobieReport values(@chov,'bez medziobdobia',@l2h0,(@l2h0*100)/convert(float,@spolu)*1.00,
												 @l3h0,(@l3h0*100)/convert(float,@spolu)*1.00,@l4h0,(@l4h0*100)/convert(float,@spolu)*1.00,
												 @l5h0,(@l5h0*100)/convert(float,@spolu)*1.00,@l6h0,(@l6h0*100)/convert(float,@spolu)*1.00,
												 @l7h0,(@l7h0*100)/convert(float,@spolu)*1.00,@l8h0,(@l8h0*100)/convert(float,@spolu)*1.00,
												 @l9h0,(@l9h0*100)/convert(float,@spolu)*1.00,@hspolu0,
												 (@hspolu0*100)/convert(float,@spolu)*1.00);
	

	insert into cp_Meso_MediobdobieReport values(@chov,'do 320',@l2h1,(@l2h1*100)/convert(float,@spolu)*1.00,
												 @l3h1,(@l3h1*100)/convert(float,@spolu)*1.00,@l4h1,(@l4h1*100)/convert(float,@spolu)*1.00,
												 @l5h1,(@l5h1*100)/convert(float,@spolu)*1.00,@l6h1,(@l6h1*100)/convert(float,@spolu)*1.00,
												 @l7h1,(@l7h1*100)/convert(float,@spolu)*1.00,@l8h1,(@l8h1*100)/convert(float,@spolu)*1.00,
												 @l9h1,(@l9h1*100)/convert(float,@spolu)*1.00,@hspolu1,
												 (@hspolu1*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'321-365',@l2h2,(@l2h2*100)/convert(float,@spolu)*1.00,
												 @l3h2,(@l3h2*100)/convert(float,@spolu)*1.00,@l4h2,
												 (@l4h2*100)/convert(float,@spolu)*1.00,@l5h2,
												 (@l5h2*100)/convert(float,@spolu)*1.00,@l6h2,(@l6h2*100)/convert(float,@spolu)*1.00,
												 @l7h2,(@l7h2*100)/convert(float,@spolu)*1.00,@l8h2,(@l8h2*100)/convert(float,@spolu)*1.00,
												 @l9h2,(@l9h2*100)/convert(float,@spolu)*1.00,@hspolu2,(@hspolu2*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'366-385',@l2h3,(@l2h3*100)/convert(float,@spolu)*1.00,@l3h3,
												 (@l3h3*100)/convert(float,@spolu)*1.00,@l4h3,(@l4h3*100)/convert(float,@spolu)*1.00,@l5h3,
												 (@l5h3*100)/convert(float,@spolu)*1.00,@l6h3,(@l6h3*100)/convert(float,@spolu)*1.00,@l7h3,
												 (@l7h3*100)/convert(float,@spolu)*1.00,@l8h3,(@l8h3*100)/convert(float,@spolu)*1.00,@l9h3,
												 (@l9h3*100)/convert(float,@spolu)*1.00,@hspolu3,(@hspolu3*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'386-400',@l2h4,(@l2h4*100)/convert(float,@spolu)*1.00,@l3h4,(
												 @l3h4*100)/convert(float,@spolu)*1.00,@l4h4,(@l4h4*100)/convert(float,@spolu)*1.00,@l5h4, 
												 (@l5h4*100)/convert(float,@spolu)*1.00,@l6h4,(@l6h4*100)/convert(float,@spolu)*1.00,@l7h4,
												 (@l7h4*100)/convert(float,@spolu)*1.00,@l8h4,(@l8h4*100)/convert(float,@spolu)*1.00,@l9h4,
												 (@l9h4*100)/convert(float,@spolu)*1.00,@hspolu4,(@hspolu4*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'nad 400',@l2h5,(@l2h5*100)/convert(float,@spolu)*1.00,@l3h5,
												 (@l3h5*100)/convert(float,@spolu)*1.00,@l4h5,(@l4h5*100)/convert(float,@spolu)*1.00,@l5h5,
												 (@l5h5*100)/convert(float,@spolu)*1.00,@l6h5,(@l6h5*100)/convert(float,@spolu)*1.00,@l7h5,
												 (@l7h5*100)/convert(float,@spolu)*1.00,@l8h5,(@l8h5*100)/convert(float,@spolu)*1.00,@l9h5,
												 (@l9h5*100)/convert(float,@spolu)*1.00,@hspolu5,(@hspolu5*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Spolu',@lspolu2,(@lspolu2*100)/convert(float,@spolu)*1.00,
												 @lspolu3,(@lspolu3*100)/convert(float,@spolu)*1.00,@lspolu4,
												 (@lspolu4*100)/convert(float,@spolu)*1.00,@lspolu5,(@lspolu5*100)/convert(float,@spolu)*1.00,
												 @lspolu6,(@lspolu6*100)/convert(float,@spolu)*1.00,@lspolu7,(@lspolu7*100)/convert(float,@spolu)*1.00,
												 @lspolu8,(@lspolu8*100)/convert(float,@spolu)*1.00,@lspolu9,(@lspolu9*100)/convert(float,@spolu)*1.00,
												 @spolu,(@spolu*100)/convert(float,@spolu)*1.00);

	insert into cp_Meso_MediobdobieReport values(@chov,'Priem. medziobd.',@Pmedzi2,null,@Pmedzi3,null,@Pmedzi4,null,@Pmedzi5,null,@Pmedzi6,null,@Pmedzi7,null,@Pmedzi8,null,@Pmedzi9,null,@PmedziX,null);

	fetch next from chov into @chov;
end

close chov;
deallocate chov;

END

go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 10.08.2012
-- Description:	Seria procedur, ktore treba spustit po aktualizacii
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Spust_po_aktualizacii]
	@ParChov varchar(9)  
AS	
BEGIN
DECLARE @RC int
EXECUTE @RC = [PLIS].[dbo].[C_aktual_P_na_K] @ParChov

--DECLARE @RC1 int
--EXECUTE @RC1 = [PLIS].[dbo].[C_aktual_prep_indlak] @ParChov

--DECLARE @RC2 int
--EXECUTE @RC2 = [PLIS].[dbo].[C_aktual_prep_tr_uzit_a_max_lakt] @ParChov

END
go



 CREATE procedure [dbo].[Rocenka_MPHD_3]
	
	@rok varchar(4)

	as 
	begin

	select *
	 from Roc_MPHD_Tab_3
	where @rok = rok
	
	end
 
go

CREATE PROCEDURE [dbo].[Roc_MLHD_22_chov_prepocet] 
@datumOd date,
@datumDo date


AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
/****aktualny vyber k rocenke 2017***/
--SELECT DISTINCT kraj+okres+podnik + stlpec_6c from Roc_MLHD_Tab_22A where len(stlpec_6c) = 2 and rok = DATEPART(YEAR, @datumOd)

/*** od rocenky za rok 2018***/
select chov_8
	from (select kraj+okres+podnik+SUBSTRING(stlpec_6c,1,2) as chov_8, count(SUBSTRING(stlpec_6c,1,2)) as pocet
					from Roc_MLHD_Tab_22A 
					where rok = DATEPART(YEAR, @datumOd)
						and stlpec_6c not in ('199','999') 
			group by  kraj+okres+podnik+SUBSTRING(stlpec_6c,1,2)
		) t
	where pocet>1
	order by t.chov_8

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_22_chov @chov, @datumOd, @datumDo

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

delete from Roc_MLHD_Tab_22A 
	where rok = datepart(year,@DatumOd)
		and stpec_7 is null and stpec_8 is null and stpec_9 is null and stpec_10 is null
		and stpec_11 is null and stpec_12 is null and stpec_13 is null and stpec_14Den is null 
		and stpec_14Mesiac is null and stpec_15 is null and stpec_16 is null and stpec_17 is null 
		and stpec_18 is null and stpec_19 is null and stpec_20 is null and stpec_21 is null 
		and stpec_22 is null and stpec_23 is null and stpec_24 is null and stpec_25 is null 
		and stpec_26 is null and stpec_27 is null and stpec_28 is null and stpec_29 is null 
		and stpec_6 = 'Chov spolu'

END

go

CREATE PROCEDURE [dbo].[CR_Zostava_Laktacie_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='',
@plem varchar(10)='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie @chov, @datumOd, @datumDo, @region, @plem 

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 20.04.2017
-- Description:	pre upravu a export CP_BLUP_PROOFS do DBF (somatika)
--				pozor! Spustat najprv proceduru C_blup_PROOFC_SC
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFS_SC]

AS
BEGIN
	-- vypocet smerodajnych odchylok (kde je nenulovy pocet dcer)
	SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*) as scp
		into #temp_stdevS_1_H
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'H'

	SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*) as scp
		into #temp_stdevS_1_S
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'S'

	SELECT 
		sum(convert(decimal(7,2), sc305v))/count(*) as sc305,
		sum(convert(decimal(7,2), sc100v))/count(*) as sc100,
		sum(convert(decimal(7,2), sc200v))/count(*) as sc200,
		sum(convert(decimal(7,2), sc300v))/count(*) as sc300,
		sum(convert(decimal(7,2), scpv))/count(*) as scp
		into #temp_stdevS_1_P
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'P'

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95B SET
		SC0H = (select sc305 from #temp_stdevS_1_H),
		SC1H = (select sc100 from #temp_stdevS_1_H),
		SC2H = (select sc200 from #temp_stdevS_1_H),
		SC3H = (select sc300 from #temp_stdevS_1_H),
		SC4H = (select scp from #temp_stdevS_1_H)

	UPDATE CP_BLUP_K95B SET
		SC0S = (select sc305 from #temp_stdevS_1_S),
		SC1S = (select sc100 from #temp_stdevS_1_S),
		SC2S = (select sc200 from #temp_stdevS_1_S),
		SC3S = (select sc300 from #temp_stdevS_1_S),
		SC4S = (select scp from #temp_stdevS_1_S)

	UPDATE CP_BLUP_K95B SET
		SC0P = (select sc305 from #temp_stdevS_1_P),
		SC1P = (select sc100 from #temp_stdevS_1_P),
		SC2P = (select sc200 from #temp_stdevS_1_P),
		SC3P = (select sc300 from #temp_stdevS_1_P),
		SC4P = (select scp from #temp_stdevS_1_P)

	SELECT 
		--430 as ssmh,
		--15 as ssth,
		--12 as ssbh,
		--0.18 as sstph,
		--0.10 as ssbph,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0h,
		stdev(convert(decimal(7,2), sc100v)) as ssc1h,
		stdev(convert(decimal(7,2), sc200v)) as ssc2h, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3h, 
		stdev(convert(decimal(7,2), scpv)) as ssc4h
		into #temp_stdevS_H
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'H'

	SELECT 
		--430 as ssms,
		--15 as ssts,
		--12 as ssbs,
		--0.18 as sstps,
		--0.10 as ssbps,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0s,
		stdev(convert(decimal(7,2), sc100v)) as ssc1s,
		stdev(convert(decimal(7,2), sc200v)) as ssc2s, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3s, 
		stdev(convert(decimal(7,2), scpv)) as ssc4s
		into #temp_stdevS_S
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'S'

	SELECT 
		--430 as ssmp,
		--15 as sstp,
		--12 as ssbp,
		--0.18 as sstpp,
		--0.10 as ssbpp,      
		stdev(convert(decimal(7,2), sc305v)) as ssc0p,
		stdev(convert(decimal(7,2), sc100v)) as ssc1p,
		stdev(convert(decimal(7,2), sc200v)) as ssc2p, 
		stdev(convert(decimal(7,2), sc300v)) as ssc3p, 
		stdev(convert(decimal(7,2), scpv)) as ssc4p
		into #temp_stdevS_P
	FROM CP_BLUP_PROOFS_SC
	WHERE convert(int, ndv) > 0 and plem = 'P'


	-- pocet stad kontrol krav za byka (otca)	
	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_H
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
	and ht.PLEM = 'H' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec

	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_S
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('S0', 'S1', 'S2')
	and ht.PLEM = 'S' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec

	select otec, count(*) as POCETSTAD 
	into #temp_byci_stada_P
	from (
	select OTEC, left(td.CISCHOVU, 8) as cischovu FROM CM_ZSTDM as td INNER JOIN
			CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
						LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
	WHERE td.TYP in ('P0', 'P1', 'P2')
	and ht.PLEM = 'P' 
		group by OTEC, left(td.CISCHOVU, 8)) as s
	group by otec


	-- laktacie za byka (otca)
	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_H
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('H0', 'H1', 'H2', 'H3')
						and ht.PLEM = 'H'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC

	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_S
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('S0', 'S1', 'S2')
						and ht.PLEM = 'S'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC

	SELECT         
	k.OTEC, count(l.PORLAK) as N
	, sum(l.MLIEKNOR)/count(l.PORLAK) as MLIEKO, sum(l.TUKNOR)/count(l.PORLAK) as TUK, convert(decimal(3, 2), 
	(sum(l.TUKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as TUKP, sum(BIELKNOR)/count(l.PORLAK) as BIELK, convert(decimal(3, 2), 
	(sum(BIELKNOR)/count(l.PORLAK))/(sum(l.MLIEKNOR)/count(l.PORLAK))*100) as BIELKP
	into #temp_byci_laktacie_P
	FROM            CM_Laktacie AS l LEFT OUTER JOIN
						(select OTEC, td.ciskravy FROM CM_ZSTDM as td INNER JOIN
						CP_HTD as ht ON left(td.CISCHOVU, 8) = ht.CISCHOVU AND td.DATKONTR = ht.DATKONTR AND td.PORLAK = ht.PORLAK
									LEFT OUTER JOIN CM_Krava as k ON td.CISKRAVY = k.CISKRAVY
						WHERE td.TYP in ('P0', 'P1', 'P2')
						and ht.PLEM = 'P'
						group by OTEC, td.CISKRAVY) AS k 
					ON l.CISKRAVY = k.CISKRAVY
	WHERE        (l.PORLAK <= 3) AND (l.ZMENA IN (30, 40))
	GROUP BY k.OTEC


	SELECT        
		p.byk AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDG, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0H from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0H from CP_BLUP_K95)) / (select ssc0h from #temp_stdevS_H) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,4), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_H
	FROM CP_BLUP_PROOFS_SC AS p LEFT OUTER JOIN CM_Byci AS b ON p.byk = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB_SC AS ab ON p.byk = ab.byk and ab.plem = 'H'
							LEFT OUTER JOIN #temp_byci_laktacie_H as tbl ON tbl.OTEC = p.byk
							LEFT OUTER JOIN #temp_byci_stada_H as tbs ON tbs.OTEC = p.byk
	where p.plem = 'H'
	ORDER BY p.byk


	SELECT        
		p.byk AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDG, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0S from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0S from CP_BLUP_K95)) / (select ssc0s from #temp_stdevS_S) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,4), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_S
	FROM CP_BLUP_PROOFS_SC AS p LEFT OUTER JOIN CM_Byci AS b ON p.byk = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB_SC AS ab ON p.byk = ab.byk and ab.plem = 'S'
							LEFT OUTER JOIN #temp_byci_laktacie_S as tbl ON tbl.OTEC = p.byk
							LEFT OUTER JOIN #temp_byci_stada_S as tbs ON tbs.OTEC = p.byk
	where p.plem = 'S'
	ORDER BY p.byk


	SELECT        
		p.byk AS BYK, 
		NULL AS POZN, 
		b.DATNAR AS DATUMN, 
		convert(varchar(4), b.DATNAR) AS ROK, 
		b.OTUSCIS AS SIRE, 
		b.MATKA AS DAM, 
		dbo.C_Blup_PLTyp(b.pl1, b.kr1, b.pl2, b.kr2, b.pl3, b.kr3, b.pl4, b.kr4) AS BREEDG, 
		ISNULL(b.PL1, '') + '' + CASE WHEN CONVERT(varchar, b.KR1) <> '0' THEN CONVERT(varchar, b.KR1) 
							ELSE '' END + '' + ISNULL(b.PL2, '') + '' + CASE WHEN CONVERT(varchar, b.KR2) <> '0' THEN CONVERT(varchar, b.KR2) ELSE '' END + '' + ISNULL(b.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, b.KR3) <> '0' THEN CONVERT(varchar, b.KR3) ELSE '' END + '' + ISNULL(b.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							b.KR4) <> '0' THEN CONVERT(varchar, b.KR4) ELSE '' END + '' + ISNULL(b.PL5, '') AS PLEMENO, 
		tbs.POCETSTAD AS NH, 
		convert(int, ab.ndv) AS ND, 
		convert(int, ab.nrv) AS NR, 
		tbl.N, 
		tbl.MLIEKO,
		tbl.TUK,
		tbl.TUKP,
		tbl.BIELK,
		tbl.BIELKP,
		(convert(decimal(7,2), p.sc305v) - (select SC0P from CP_BLUP_K95)) + 3 AS SC305, 
		((convert(decimal(7,2), p.sc305v) - (select SC0P from CP_BLUP_K95)) / (select ssc0p from #temp_stdevS_P) * (-12)) + 100 AS RPHSC, 
		case when ISNUMERIC(ab.relscv) = 1 then convert(decimal(7,4), ab.relscv) else 0 end AS SCREL
		INTO #temp_vysledny_P
	FROM CP_BLUP_PROOFS_SC AS p LEFT OUTER JOIN CM_Byci AS b ON p.byk = b.USCISLO
							LEFT OUTER JOIN CP_BLUP_ACCB_SC AS ab ON p.byk = ab.byk and ab.plem = 'P'
							LEFT OUTER JOIN #temp_byci_laktacie_P as tbl ON tbl.OTEC = p.byk
							LEFT OUTER JOIN #temp_byci_stada_P as tbs ON tbs.OTEC = p.byk
	where p.plem = 'P'
	ORDER BY p.byk


	DELETE FROM CP_BLUP_BYKYTDM_SC 

	INSERT into CP_BLUP_BYKYTDM_SC
	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		DAM, 
		BREEDG,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'H'
	FROM #temp_vysledny_H as v 

	INSERT into CP_BLUP_BYKYTDM_SC
	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		DAM, 
		BREEDG,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'S'
	FROM #temp_vysledny_S as v 

	INSERT into CP_BLUP_BYKYTDM_SC
	SELECT 
		BYK, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE,
		DAM, 
		BREEDG,
		PLEMENO,
		isnull(NH, 0) as NH, 
		isnull(ND, 0) as ND, 
		isnull(NR, 0) as NR, 
		isnull(N, 0) as N, 
		isnull(MLIEKO, 0) as MLIEKO,
		isnull(TUK, 0) as TUK,
		isnull(TUKP, 0) as TUKP,
		isnull(BIELK, 0) as BIELK,
		isnull(BIELKP, 0) as BIELKP,
		SC305,
		RPHSC,
		SCREL,
		'P'
	FROM #temp_vysledny_P as v 
	
	update CP_BLUP_KPLEMSC
		SET sc305h_pr_b = (select SC0H from CP_BLUP_K95B),
			sc305h_so_b = (select ssc0h from #temp_stdevS_H),

			sc305s_pr_b = (select SC0S from CP_BLUP_K95B),
			sc305s_so_b = (select ssc0s from #temp_stdevS_S),

			sc305p_pr_b = (select SC0P from CP_BLUP_K95B),
			sc305p_so_b = (select ssc0p from #temp_stdevS_P)

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 11.05.2012
-- Update date: 27.08.2015
-- Description:	Nahradenie znaku P znakom K u krav, ktorym neprisiel dalsi rozbor
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_P_na_K] 
	@ParChov varchar(9)
AS
BEGIN	
	declare @maxdatkontr date
	declare @preddatkontr date
	
	declare @IDParChov bigint

	declare @CISKRAVY varchar(14)

	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	

	SELECT @maxdatkontr = max(DATKONTR)
	  FROM CM_Kontroly
	  where cischovu = @ParChov

	-- posledne kontrolne obdobie by malo byt za poslednych najviac 10 dni(?)
	if datediff(day, @maxdatkontr, getdate()) <= 10
	begin
		-- zistenie ktorym kravam treba prepisat znak 'P' na znak 'K'
		SELECT CISKRAVY into #kravy_k
			FROM CM_Kontroly
			where cischovu = @ParChov
				and CISKRAVY in (select CISKRAVY from CM_Naplak where CHOVATEL = @ParChov and upper(znak) = 'P')
			group by ciskravy
			-- hladanie predchadzajuceho datumu kontroly
			having datediff(day, max(datkontr), @maxdatkontr) between  14 and 150 --26 and 34 zmena Kobrtkova

		-- oprava znaku 'P' na 'K'
		update dbo.CM_Naplak
			set ZNAK = 'K',
				SPRACUPDATE = @IDParChov 
			where CISKRAVY in (select CISKRAVY from #kravy_k)

		-- prepis zaznamov s 'K' z CM_Naplak do CM_Laktacie
		-- ak je uz v Laktaciach zaznam z CM_Naplak
		merge dbo.CM_Laktacie as l
		using (select CISKRAVY, PORLAK from PLIS.dbo.CM_Naplak where CISKRAVY in (select CISKRAVY from #kravy_k)) as n
		on l.CISKRAVY = n.CISKRAVY and l.PORLAK = n.PORLAK
		when matched then DELETE;
	
		-- z CM_Naplak do CM_Laktacie
		insert into PLIS.dbo.CM_Laktacie (CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA
		,DATUKONL,DATUKNORL,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR
		,LAKTOZAC,LAKTOZAN,INDPER,INDLAK,CHARUST,SPOSOBKU,MAXLAK,MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200
		,TUK200,BIELK200,LAKT200,DATZAPZVK,DATVYBZVK, SPRACINSERT, SPRACUPDATE) 
		(select CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA,DATUKONL,DATUKNORL
		,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR,LAKTOZAC,LAKTOZAN
		,INDPER,INDLAK,CHARUST,(select SPVYKON from PLIS.dbo.NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = CHOVATEL)
		,MAXLAK,MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200,TUK200,BIELK200
		,LAKT200,DATZAPZVK,NULL, @IDParChov, @IDParChov from PLIS.dbo.CM_Naplak where CISKRAVY in (select CISKRAVY from #kravy_k))	


		declare db_cursor_kravy_vyp cursor
		FOR
		select CISKRAVY from #kravy_k
	
		OPEN db_cursor_kravy_vyp

		FETCH NEXT
		FROM db_cursor_kravy_vyp INTO 	
			@CISKRAVY
	
		WHILE @@FETCH_STATUS = 0
		begin
			-- prepocitanie hodnotu INDLAK na poslednej laktacii danej kravy
			exec C_aktual_prep_indlak_krave @CISKRAVY

			-- prepocitanie maximalnej laktacie (a dalsich cisel) pre danu kravu
			exec C_aktual_prep_max_lakt_krave @CISKRAVY
		
			-- prepocitanie triedy uzitkovosti pre danu kravu
			exec C_aktual_prep_tr_uzit_krave @CISKRAVY	

			-- skopirovanie suvisiacich kontrol do archivu kontrol
			--exec C_aktual_kontroly_do_archivu @CISKRAVY, 0

			FETCH NEXT		
			FROM db_cursor_kravy_vyp INTO 	
			@CISKRAVY	
		end
	
		CLOSE db_cursor_kravy_vyp
		DEALLOCATE db_cursor_kravy_vyp	

	end 
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_P_na_K ...OK'	
END

go


/*********************** 
		vyber udajov do reportu TAB2_plemTYP do Masovej rocenky krav 
		v rocenke z r. 2017 od strany 5 ...."pocet narodentch teliat v roku "
 ***********************/

 CREATE procedure [dbo].[Rocenka_MPHD_2_plemTYP]
	
	@rok varchar(4)
	--@plemeno varchar (50)
	-- @plemeno ='AA','BdA', 'Gal','High','Char','Lim','Sim_maso','Piem','Pin','Slst','Osta','Nez','SR'
				
	as 
	begin

select plemeno, plemtyp, 
	case --when plemtyp = '101' then 'BBM1'  
		--when plemtyp = '102'then 'BBM2'  
		--	when plemtyp = '103' then 'BBM3'  
		--	when plemtyp = '104' then 'BBM4'  
		--	when plemtyp = '105' then 'BBM5'  
		when plemtyp ='111' then 'AAM1'
			when plemtyp ='112' then 'AAM2'
			when plemtyp ='113' then 'AAM3'
			when plemtyp ='114' then 'AAM4'
			when plemtyp ='115' then 'AAM5'
		when plemtyp ='121' then 'BAM1'
			when plemtyp ='122' then 'BAM2'
			when plemtyp ='123' then 'BAM3'
			when plemtyp ='124' then 'BAM4'
			when plemtyp ='125' then 'BAM5' 
		when plemtyp ='131' then 'GLM1'
		when plemtyp ='141' then 'HEM1'
			when plemtyp ='142' then 'HEM2'
			when plemtyp ='143' then 'HEM3'
			when plemtyp ='144' then 'HEM4'
			when plemtyp ='145' then 'HEM5'
		when plemtyp ='151' then 'HLM1'
		when plemtyp ='161' then 'CHM1'
			when plemtyp ='162' then 'CHM2'
			when plemtyp ='163' then 'CHM3'
			when plemtyp ='164' then 'CHM4'
			when plemtyp ='165' then 'CHM5'
		when plemtyp ='171' then 'LIM1'
			when plemtyp ='172' then 'LIM2'
			when plemtyp ='173' then 'LIM3'
			when plemtyp ='174' then 'LIM4'
			when plemtyp ='175' then 'LIM5'
		when plemtyp ='201' then 'SMM1'
			when plemtyp ='202' then 'SMM2'
			when plemtyp ='203' then 'SMM3'
			when plemtyp ='204' then 'SMM4'
			when plemtyp ='205' then 'SMM5'
		when plemtyp ='191' then 'PIM1'
			when plemtyp ='192' then 'PIM2'
			when plemtyp ='193' then 'PIM3'
			when plemtyp ='194' then 'PIM4'
			when plemtyp ='195' then 'PIM5'
		when plemtyp ='51' then 'PM0'
			when plemtyp ='53' then 'PM1'
			when plemtyp ='54' then 'PM2'
		when plemtyp ='11' then 'SM0'
			when plemtyp ='13' then 'SM1'
		when plemtyp ='14' then 'SM2' end as plemeno_nazov,
		pocet_krav, isnull(telata_celkom,0) as telata_celkom, isnull(byci_ZN,0) as byci_ZN, isnull(jalovice_ZN,0) as jalovice_ZN, isnull(podiel,0) as podiel, 
		isnull(mrtvo_nar,0) as mrtvo_nar, isnull(uhyn_48,0) as uhyn_48, isnull(zmetanie,0) as zmetanie, isnull(narod_ET,0) as narod_ET, 
		isnull(podiel_dvojciat,0) as podiel_dvojciat, rok  from Roc_MPHD_Tab_2_plemTYP as pt 
  			--where pt.plemeno= @plemeno
union

select plemeno,'999'as plemtyp, 'spolu' as plemeno_nazov, pocet_krav, isnull(telata_celkom,0) as telata_celkom, isnull(byci_ZN,0) as byci_ZN, isnull(jalovice_ZN,0) as jalovice_ZN, isnull(podiel,0) as podiel, 
		isnull(mrtvo_nar,0) as mrtvo_nar, isnull(uhyn_48,0) as uhyn_48, isnull(zmetanie,0) as zmetanie, isnull(narod_ET,0) as narod_ET, 
		isnull(podiel_dvojciat,0) as podiel_dvojciat, rok
from Roc_MPHD_Tab_2 as roc 
  			where roc.plemeno not in ('SR','Nez','Osta')
					 
		
	 
	end
go

create PROCEDURE [dbo].[C_ZZ_Mlieko_LaktaciePodlaOtcov]
	
	
AS
BEGIN
	
	SET NOCOUNT ON;


	DECLARE @PO1 INT;
	DECLARE @PO2 INT;

	SET @PO1=0;
	SET @PO2=0;

	declare @chov varchar(9);
	declare @Ucislo varchar(14);
	declare @lakt int;
	declare @po4et int;
	declare @mlekoP float;
	declare @tukP float;
	declare @bielkP float;
	declare @belTukP float;
	declare @vek float;
	declare @vekD int;
	declare @otec varchar(10);

	SET @lakt =0;
	SET @po4et =0;
	SET @mlekoP =0;
	SET @tukP =0;
	SET @bielkP =0;
	SET @belTukP =0;
	SET @vek =0;
	set @vek=0;
	set @otec='';
	set @Ucislo='';
	set @chov='';

	TRUNCATE TABLE [PLIS].[dbo].CP_UZITKOVOSTKRAVPOOTCOCH	

    declare  chovately cursor 
	for select DISTINCT chovatel
		from plis.dbo.CM_Krava
		where PRIZNAKKU='1'
		and DOVVYR is null;

		OPEN chovately  
		FETCH NEXT FROM chovately INTO @chov;

		WHILE @@FETCH_STATUS = 0 
			BEGIN 
			DECLARE @POCNLACT INT;
						SET @POCNLACT=0;

			DECLARE @MLEKO FLOAT;
			DECLARE @TaB FLOAT;
			DECLARE @TUK FLOAT;
			DECLARE @BELK FLOAT;
			DECLARE @BELKATUK FLOAT;
			DECLARE @KRAVYCHOV INT;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;

			DECLARE @M1 FLOAT;
			DECLARE @T1 FLOAT;
			DECLARE @B1 FLOAT;
			DECLARE @BAT1 FLOAT;
			DECLARE @P1 INT;

			DECLARE @M2 FLOAT;
			DECLARE @T2 FLOAT;
			DECLARE @B2 FLOAT;
			DECLARE @BAT2 FLOAT;
			DECLARE @P2 INT;

			DECLARE @MN FLOAT;
			DECLARE @TN FLOAT;
			DECLARE @BN FLOAT;
			DECLARE @BATN FLOAT;
			DECLARE @PN INT; 

			declare @i int;
			set @i=0;

			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;

			SET @M2 = 0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			declare @vek1 float;
			DECLARE @L1 INT;
			DECLARE @L2 INT;
			set @vek1=0;
			SET @L1=0;
			SET @L2=0;
			print @chov;
			----------------------------------------------------------------------------------------------------

			declare otec cursor 
			for select DISTINCT OUSCIS
				from plis.dbo.CM_Krava
				where DOVVYR is null
				and PRIZNAKKU='1'
				and OUSCIS is not null
				and chovatel=@chov;

			open otec
			fetch next from otec into @Ucislo;
			while @@FETCH_STATUS=0
			begin
				
					
					--print @ucislo;
					
				declare kravy cursor
				for select porlak,po4etkrav,primermleko,primerTuk,asBielkpriem,priembeltuk,vek,otec
				from View_CP_KravaPoOtcoNormLakt
				where chovatel=@chov
				and OUSCIS=@Ucislo
				
				


				open kravy
				fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek , @otec ;
				WHILE @@FETCH_STATUS = 0 
					BEGIN
					/*	print @lakt;
						print @po4et;
						print @mlekop;
						print @tukP;
						print @bielkP;
						print @belTukP;
						print @vek;
						print @otec;*/
					
							
						IF(@lakt=1)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								SET @L1=@po4et+@L1
								SET @MLEKO=@MLEKO+@mlekoP;
								SET @BELKATUK=@BELKATUK+@belTukP;
								set @vek1=@vek+@vek1;
								SET @M1 =@mlekoP+@M1;
								SET @T1 =@tukP+@T1;
								SET @B1 =@bielkP+@B1;
								SET @BAT1 =@belTukP+@BAT1;
								SET @P1=@po4eT+@P1;
								SET @PO1=@PO1+1;
							END
					else	IF(@LAKT=2)
							BEGIN
								SET @TaB=@TaB+@belTukP;
								SET @TUK=@TUK+@tukP;
								SET @BELK=@BELK+@bielkP;
								--SET @KRAVYCHOV=@KRAVYCHOV+@po4et;
								SET @L2=@po4et+@L2;
								SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;

								SET @M2 =@mlekoP+@M2;
								SET @T2 =@tukP+@T2;
								SET @B2 =@bielkP+@B2;
								SET @BAT2 =@belTukP+@BAT2;
								SET @P2=@po4et+@P2;
								SET @PO2=@PO2+1;
							END

						
						

					else		IF(@LAKT!=2 and @lakt!=1)
								BEGIN
									if(@Ucislo='')
										begin set @Ucislo=NULL; end

									SET @TaB=@TaB+@belTukP;
									SET @TUK=@TUK+@tukP;
									SET @BELK=@BELK+@bielkP;
									SET @POCNLACT=@POCNLACT+@po4et;
									SET @MLEKO=@MLEKO+@mlekoP
									SET @BELKATUK=@BELKATUK+@belTukP;
									set @POCNLACT=(select count(*)
													from plis.dbo.CM_Krava
													where priznakku=1
													and DOVVYR is null
													and chovatel=@chov
													and OUSCIS=@Ucislo
													and POCNORLAK>2);
									set @i=@i+1;
									SET @MN =@MN+@mlekoP;
									SET @TN = @TN+@tukP;
									SET @BN =@BN+@bielkP;
									SET @BATN =@BATN+@belTukP;
						
								END

						
					fetch next from kravy into @lakt,@po4et,@mlekoP, @tukP, @bielkP, @belTukP, @vek , @otec ;
			
					end

					close kravy;
				Deallocate kravy;
				SET @KRAVYCHOV=(select count(*)from plis.dbo.cm_krava where chovatel=@chov and DOVVYR is null and PRIZNAKKU='1')
				-------------------------------------------------------------------------------------------------------------------------------------------------------
				IF(@POCNLACT>0)
					BEGIN
					set @MN=@MN/@i;
					set @TN=@TN/@i;
					SET @BN=@BN/@i;
					SET @BATN=@BATN/@i;
					END
					
					if(@POCNLACT= 0 or @POCNLACT is null)
					begin
						set @MN=null;
						set @tn=null;
						set @bn=null;
						set @BATN=null;
					end
					
					IF(@PO1>1)
					BEGIN
						
						SET	@M1=@M1/@PO1
						SET	@T1=@T1/@PO1
						SET @B1=@B1/@PO1
						SET @BAT1=@BAT1/@PO1
						SET @vek1=@VEK1/@PO1
					END

					IF(@PO2>1)
					BEGIN
						
						SET	@M2=@M2/@PO2
						SET	@T2=@T2/@PO2
						SET @B2=@B2/@PO2
						SET @BAT2=@BAT2/@PO2
						
					END
					
					IF(@PO2=0)
					begin
					SET @M2 =NULL;
					SET @T2 =NULL;
					SET @B2 =NULL;
					SET @BAT2 =NULL;
					end

				IF(@PO1=0)
					BEGIN
						
						SET	@M1=NULL
						SET	@T1=NULL
						SET @B1=NULL
						SET @BAT1=NULL
						SET @vek1=NULL
					END
				

				print @MN;
				print @TN;
				print @BN;
				print @BATN;

				 set @POCNLACT=(select SUM(po4etkrav) from [PLIS].[dbo].[View_CP_KravaPoOtcoNormLakt] where CHOVATEL=@chov and OUSCIS=@Ucislo and PORLAK>2);
				set @i=(select COUNT(*) from PLIS.dbo.CM_Krava where PRIZNAKKU=1 and DOVVYR is null and OUSCIS=@Ucislo and CHOVATEL=@chov and POCVSETLAK>2);
				
					set @vekD=convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) % 30
					set @vek1=convert(int,@vek1)+convert(int,PARSENAME(convert(decimal(10,2),@vek1),1)) / 30
				
				
				INSERT INTO PLIS.DBO.CP_UZITKOVOSTKRAVPOOTCOCH VALUES(
				@otec,
				@Ucislo,
				@L1,
				@M1,
				@T1,
				@B1,
				@BAT1,
				@vek1,
				@vekD,
				@L2,@M2,@T2,@B2,@BAT2,@I,@MN,@TN,@BN,@BATN,@MLEKO,@TUK,@BELK,@BELKATUK,@KRAVYCHOV,@chov,@POCNLACT);
				
				
				set @vek1=0;
				set @vekD=0;
				SET @POCNLACT=0;
				set @i=0;
				SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @M1 =0;
			SET @T1 =0;
			SET @B1 =0;
			SET @BAT1 =0;
			SET @P1=0;
			set @po1=0;
			set @PO2=0;
			SET @M2 =0;
			SET @T2 =0;
			SET @B2 =0;
			SET @BAT2 =0;
			SET @P2=0;

			SET @MN =0;
			SET @TN =0;
			SET @BN =0;
			SET @BATN =0;
			SET @PN=0;
			SET @L1=0;
			SET @L2=0;
			set @vek1=0;
			SET @po4et =0;
	
				
				
				
				fetch next from otec into @Ucislo;
				
				end	

				close otec;
		Deallocate otec;
					------------------------------ TEN HOVATEL SKON4IL-----------------------------------
			FETCH NEXT FROM chovately INTO @chov ;
			print N'____________________________________________________________________'
			SET @TaB =0;
			SET @TUK =0;
			SET @BELK =0;
			SET @KRAVYCHOV =0;
			SET @MLEKO=0;
			SET @BELKATUK=0;
			SET @KRAVYCHOV=0;
			

			end
	

		close chovately;
		Deallocate chovately;



END
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 25.04.2016
-- Description:	Prepocet C_Zoznam_teliat_za_mesiac
-- =============================================

CREATE PROCEDURE [dbo].[C_Zoznam_teliat_za_mesiac_prepocet_vstupy] @rok INT, @mesiac INT, @dekada INT 

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)


    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
	SELECT CHOV FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)
							EXEC dbo.C_Zoznam_teliat_za_mesiac @chov,@rok,@mesiac,@dekada
	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].C_Paternita(@chov varchar(9), 
									@ciskravy varchar(14),
									@cistestu varchar(10),
									@choplis bit,
									@chmplis bit,
									@chpatern bit,
									@vsetkychovy bit
									) AS
BEGIN
	--declare @ciskravy varchar(14) = ''--'FR005813607840'
	--declare @cistestu varchar(10) = ''--'0549/33'
	--declare @choplis bit = 'false'
	--declare @chmplis bit = 'false'
	--declare @chpatern bit = 'false'
	--declare @chov varchar(9) = ''
	--declare @vsetkychovy bit = 'true'

	declare @_ciskravy varchar (256) = ''
	declare @_cisbyka varchar (256) = ''
	declare @_chmplis varchar (256) = ''
	declare @_chmplis_byk varchar (256) = ''
	declare @_chpatern varchar (256) = ''
	declare @_vsetkychovy varchar (256) = ''
	declare @_cistestu varchar (256) = ''
	declare @_choplis varchar (256) = ''

	--declare @_select varchar (8000)
	declare @_select1 varchar (3078)
	declare @_select2 varchar (3078)
	declare @_select3 varchar (3078)
	declare @_select4 varchar (3078)
	declare @_select5 varchar (2048)
	declare @_select6 varchar (2048)

	IF @ciskravy != '' BEGIN SET @_ciskravy = '(p.KRAVA LIKE ''%' + @ciskravy + '%'') AND ' 
							 SET @_cisbyka = '(p.UC LIKE ''%' + @ciskravy + '%'') AND ' 
					 END
	IF @chmplis != 'false' BEGIN SET @_chmplis = ' AND (p.M != k.MA)'
								SET @_chmplis_byk = ' AND (p.M != b.MATKA)'
					 END
	IF @chpatern != 'false' BEGIN SET @_chpatern = ' AND ((pv.O_suhlasi = 0) or (pv.M_suhlasi = 0))' END
	IF @chov != '' BEGIN SET @_vsetkychovy = ' AND (CHOVATEL = ''' + @chov + ''')' END
	IF @cistestu != '' BEGIN SET @_cistestu = ' AND (p.CROZB = SUBSTRING(''' + @cistestu + ''', 1, 4) AND p.CRAD = SUBSTRING(''' + @cistestu + ''', 6, 2))' END


	IF @choplis != 'false' BEGIN SET @_choplis = ' WHERE O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL' END

	SET @_select1 = N'SELECT    ''samica'' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
			plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
			plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
			plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy 
	+ @_vsetkychovy
	+ ' k.ciskravy IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_cistestu

	SET @_select2 = N'SELECT    ''samec'' as [POHL], p.UC as KRAVA, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN b.OTUSCIS END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
			plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
		  plis.dbo.CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.USCISLO IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu

	SET @_select3 = N'SELECT    ''samica'' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OUC END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MATKA != p.M THEN k.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
			plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    plis.dbo.CM_Telata AS k RIGHT OUTER JOIN
			plis.dbo.CM_Paternita AS p ON k.CISTELATA = p.KRAVA LEFT OUTER JOIN
			plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy + 
	' k.CISTELATA IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT CISKRAVY FROM CM_Krava WHERE CISKRAVY = CISTELATA) IS NULL'


	SET @_select4 = N'SELECT    ''samec'' as [POHL], p.UC as KRAVA, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN b.OUC END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN b.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT REG FROM plis.dbo.CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			plis.dbo.NM_PracSPU p  LEFT OUTER JOIN
			plis.dbo.NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			plis.dbo.NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     plis.dbo.CM_Telata AS b RIGHT OUTER JOIN
		  plis.dbo.CM_Paternita_Byky AS p ON b.CISTELATA = p.UC  LEFT OUTER JOIN
			  plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.CISTELATA IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT bb.USCISLO FROM plis.dbo.CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL'


	SET @_select5 = N'SELECT    ''samica'' as [POHL], p.KRAVA, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT	
	FROM    plis.dbo.CM_Krava AS k RIGHT OUTER JOIN
			plis.dbo.CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
			plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			plis.dbo.CM_Telata AS t ON t.CISTELATA = p.KRAVA 
	WHERE '
	+ @_ciskravy + 
	' (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (k.ciskravy IS NULL AND t.cistelata is NULL)'


	SET @_select6 = N'SELECT    ''samec'' as [POHL], p.UC as KRAVA, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT
	FROM     plis.dbo.CM_Byci AS b RIGHT OUTER JOIN
			plis.dbo.CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  plis.dbo.CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			  plis.dbo.CM_Telata AS t ON t.CISTELATA = p.UC
	WHERE '
	+ @_cisbyka + 
	' (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (b.USCISLO IS NULL AND t.cistelata IS NULL)'

	--SET @_select = '
	exec ('
	SELECT POHL, KRAVA, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
	M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA, ZOOT FROM
	('+ @_select1 + ' UNION ' + @_select2 + ' UNION ' + @_select3 + ' UNION ' + @_select4 + ' UNION ' + @_select5 + ' UNION ' + @_select6 + 
	') as s ' + @_choplis + ' ORDER BY KRAVA'
	)

	--exec (@_select)

END
go

create procedure [dbo].[CR_ZostavaLaktacie_Oznacenie_plemeno]
	@datumOd date,
	@datumDo date,
	@vyber varchar(max)=''
as	
begin
Declare @oznacenie varchar(20) = null
WHILE LEN(@vyber) > 0
BEGIN
    IF PATINDEX('%;%',@vyber) > 0
    BEGIN
        SET @oznacenie= SUBSTRING(@vyber, 0, PATINDEX('%;%',@vyber))
        --SELECT @oznacenie		
        SET @vyber = SUBSTRING(@vyber, LEN(@oznacenie + ';') + 1,
                                                     LEN(@vyber))
    END
    ELSE
    BEGIN
        SET @oznacenie = @vyber
        SET @vyber = NULL
        --SELECT @oznacenie
	end
	declare @chovy table (
		[Filter][varchar](50)null,
		[Oznacenie] [varchar](max) NULL, [DatumOd][date] null, [DatumDo][date] null,[datumGenerovania][date]null,
    	[Region] [varchar](2) NULL, [PlemTyp] [varchar] (10) null,
		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,
		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
	 	[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,
		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
		[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
		[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
		[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
		[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
		[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,
		[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
		[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
		[Zmena55Celk] [float](4) NULL,
		[Zmena56Celk] [float](4) NULL,
		[Zmena57Celk] [float](4) NULL,
		[Zmena58Celk] [float](4) NULL,
		[Zmena59Celk] [float](4) NULL,
		[Zmena60Celk] [float](4) NULL,
		[Zmena61Celk] [float](4) NULL,
		[Zmena62Celk] [float](4) NULL,
		[ZmenaCelk2Celk] [float](4) NULL,
		[chov_nazov][varchar](50)null,[podnik_nazov,][varchar](50)null,[kraj_nazov,][varchar](50)null,[okres_nazov][varchar](50)null,[obec_nazov][varchar](50)null,
		[regiom_nazov][varchar](50)null
		)
insert @chovy
select distinct Filter
	,l.Oznacenie ,DatumOd,DatumDo,datumGenerovania,l.Region, l.PlemTyp,
	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,
	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, 
	VyrZootechCelk, VyrZdravDovCelk,
	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,
	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,
	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,
	Zmena62Celk,
	ZmenaCelk2Celk,
	(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie) as chov_nazov,
	(select nazov FROM NM_PODNIK b where b.ZRUS is null and (b.KRAJ+b.OKRES+b.PODNIK)= SUBSTRING(@oznacenie ,1,6))  as  podnik_nazov,
	(select NAZOV FROM NC_KRAJ c where c.KRAJ = SUBSTRING(@oznacenie ,1,1)) as kraj_nazov, 
	(select nazov FROM NC_OKRES d where d.KRAJ+d.OKRES = SUBSTRING(@oznacenie ,1,3)) as okres_nazov,
	(select nazov FROM NM_CHOVMAS a where a.ZRUS is null and (a.KRAJ+a.OKRES+a.PODNIK+a.chov)= @oznacenie  ) as obec_nazov,
	e.NAZOV as region_nazov
from plis.dbo.CR_LaktacneZostavy as l

 	LEFT JOIN NM_CHOVMAS a ON  (a.KRAJ+a.OKRES+a.PODNIK+a.chov) = l.Oznacenie
	LEFT JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (a.KRAJ+a.OKRES+a.PODNIK)
	LEFT JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
	LEFT JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
	LEFT JOIN NC_REGION e ON (e.REG = l.REGION)
	--LEFT outer JOIN --cross apply 
	

where (Filter = @oznacenie or @oznacenie is null) and DatumOd= @datumOd and DatumDo= @datumDo

end
--and @plem=PlemTyp
	--print '|' + convert(varchar(24), @oznacenie) + '|'
	select *from @chovy
--end
end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 23.05.2012
-- Description:	Prepocitanie hodnoty INDLAK na laktaciach, kde je to nutne 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_indlak] 
	@ParChov varchar(9)
AS
BEGIN	
	declare @POCVSETLAK int
	
	declare @TukBl [decimal](9,2)
	declare @PocLakB int  
	declare @PrTB [decimal](9,2)
	declare @PrStTB [decimal](9,2)
	
	declare @AkDat date
	declare @DatTmp date
	declare	@Dat date
	
	--declare @kravy TABLE
	--(
	--	CISKRAVY varchar(14)
	--)
		
	-- vyber laktacii z CM_Laktacie k danemu chovu 		 	
	if (select COUNT(*) from CM_Krava where DATVYBPREP is NULL and DATZAPPREP is not NULL and CHOVATEL = @ParChov) > 0
	begin
		set @TukBl = 0
		set @PocLakB = 0
		
		set @AkDat = GETDATE()
		set @DatTmp = (convert(varchar(4),YEAR(@AkDat)) + '-' + convert(varchar(2),month(@AkDat)) + '-01')
		set @Dat = DATEADD(MONTH, -11, @DatTmp)	
	
		-- naplnenie premennych z tabulky PLIS.dbo.chovy
		select @TukBl = sum(convert(decimal(9,2),ISNULL(TUKNOR, 0))) + sum(convert(decimal(9,2),ISNULL(BIELKNOR, 0))), @PocLakB = COUNT(*) from CM_Laktacie
		where (ZMENA = '30' or ZMENA = '40') and DATEDIFF(day, @Dat, DATUKONL) >= 0 and DATEDIFF(day, DATUKONL, @AkDat) >= 0 
			and CHOVATEL = @ParChov
		
		-- priemerny tuk, bielkovina
		set @PrTB = @TukBl / nullif(@PocLakB, 0)
		
		if @PocLakB > 10
			set @PrStTB = @PrTB
		else
			set @PrStTB = 0
			
		--delete from @kravy	
		--insert into @kravy
		--select CISKRAVY from PLIS.dbo.CM_Krava where CHOVATEL = @ParChov
	
		-- zapis do CM_Naplak
		update CM_Naplak set
			INDLAK = convert(numeric(7,2), ((TUKNOR + BIELKNOR) / nullif(@PrStTB, 0)) * 100)
			--where CISKRAVY in (select CISKRAVY from @kravy) and (ZMENA = '30' or ZMENA = '40')	
			where CHOVATEL = @ParChov and (ZMENA = '30' or ZMENA = '40')	

		update CM_Naplak set
			INDLAK = 0
			--where CISKRAVY in (select CISKRAVY from @kravy) and not (ZMENA = '30' or ZMENA = '40')	
			where CHOVATEL = @ParChov and not (ZMENA = '30' or ZMENA = '40')

		-- zapis do CM_Laktacie
		update l set
			l.INDLAK = convert(numeric(7,2), ((l.TUKNOR + l.BIELKNOR) / nullif(@PrStTB, 0)) * 100)
			--where CISKRAVY in (select CISKRAVY from @kravy) and PORLAK = (select POCVSETLAK from PLIS.dbo.CM_Krava as pl where pl.CISKRAVY = CISKRAVY) and (ZMENA = '30' or ZMENA = '40')	
			FROM  CM_Laktacie as l inner join 
			(SELECT CISKRAVY, max(PORLAK) as MAXPORL from CM_Laktacie where CHOVATEL = @ParChov group by CISKRAVY) as m ON m.CISKRAVY = l.CISKRAVY and m.MAXPORL = l.PORLAK
			and l.CHOVATEL = @ParChov and (l.ZMENA = '30' or l.ZMENA = '40')

		update l set
			l.INDLAK = 0
			--where CISKRAVY in (select CISKRAVY from @kravy) and PORLAK = (select POCVSETLAK from PLIS.dbo.CM_Krava as pl where pl.CISKRAVY = CISKRAVY) and (ZMENA = '30' or ZMENA = '40')	
			FROM  CM_Laktacie as l inner join 
			(SELECT CISKRAVY, max(PORLAK) as MAXPORL from CM_Laktacie where CHOVATEL = @ParChov group by CISKRAVY) as m ON m.CISKRAVY = l.CISKRAVY and m.MAXPORL = l.PORLAK
			and l.CHOVATEL = @ParChov and not (l.ZMENA = '30' or l.ZMENA = '40')	end
	
	declare @IDParChov bigint	
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov			
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_prep_indlak ...OK'	
END

go


/*********************** 
		vyber udajov do reportu TAB2 do Masovej rocenky krav 
		v rocenke z r. 2017 na strane 28 ...."Narodene telata v roku "
 ***********************/

 CREATE procedure [dbo].[Rocenka_MPHD_2]
	
	@rok varchar(4)

	as 
	begin

	select 
	case when plemeno ='AA' then 1
				when plemeno ='BdA' then 2
				--when plemeno ='BBM' then 3
				when plemeno ='Gal' then 3
				when plemeno ='HEM' then 4
				when plemeno ='High' then 5
				when plemeno ='Char' then 6
				when plemeno ='Lim' then 7
				--when plemeno ='SDM' then 8
				--when plemeno ='Piem' then 8
				when plemeno ='Pin' then 8 
				when plemeno ='Sim_maso' then 9
				when plemeno ='Slst' then 10
				when plemeno ='Osta' then 11
				when plemeno ='Nez' then 12
				when plemeno ='SR' then 13 end  as poradie,
	
	case when plemeno ='AA' then 'Aberdeen Angus'
				when plemeno ='BdA' then 'Blonde d´Aquitaine'
				when plemeno ='BBM' then 'Belgické modré'
				when plemeno ='Gal' then 'Galloway'
				when plemeno ='High' then 'Highland'
				when plemeno ='Char' then 'Charolais'
				when plemeno ='Lim' then 'Limousine'
				when plemeno ='Hem' then 'Hereford'
				when plemeno ='Sim_maso' then 'Simentál mäsový'
				when plemeno ='Piem' then 'Piemontese'
				when plemeno ='Pin' then 'Pinzgauské'
				when plemeno ='SDM' then 'Maďarský stepný dobytok'
				when plemeno ='Slst' then 'Slovenské strakaté'
				when plemeno ='Osta' then 'Ostatné plemená'
				when plemeno ='Nez' then 'Neznáme'
				when plemeno ='SR' then 'Výsledky za Slovensko' end as	plemeno, 
	
	pocet_krav, telata_celkom, byci_ZN, jalovice_ZN, podiel, mrtvo_nar, uhyn_48 ,zmetanie, narod_ET, podiel_dvojciat,rok
	
	 from Roc_MPHD_Tab_2
	where @rok = rok
	order by poradie

	end

go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[C_ZZ_Mlieko_PoslednaLaktZaradenyKravy]

AS
BEGIN
	
	SET NOCOUNT ON;

	TRUNCATE TABLE [PLIS].[dbo].CP_KravaPoslednaUzavLaktZaradeny

	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from plis.dbo.CM_Krava
	where dovvyr is not null
	and priznakku='1'

	open chova
	fetch next from chova into @chov

	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from plis.dbo.cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is not null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							print @ciskrava

							set @maxLakt=(select max(PORLAK) from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is NOT null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is not null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into [PLIS].[dbo].CP_KravaPoslednaUzavLaktZaradeny values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt))
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				print N'Done'
			end
			close chova;
			deallocate chova;
	
END
go



CREATE PROCEDURE [dbo].[C_ZZ_Mleko_MedziobdobieReportA_chov_er] 
AS
BEGIN
	/**********************************************

	! please run affter C_Aktual_KodDojKodMedzi !

		using table:CM_Naplak,CM_Krava,CM_Laktacie

		canging table:CP_MedziobdZostavaA

		used for:(9.A) Rozbor medziobdobia podľa prebiehajúcej laktácie 

	*********************************************/

	declare @c as varchar(9)
	

	/*create table #aTable  
	(
	[chovatel] varchar(9)
      ,[groupNazov]  varchar(30)
      ,[l1] int
      ,[pl1] float
      ,[l2] int
      ,[pl2] float
      ,[l3] int
      ,[pl3] float
      ,[l4] int
      ,[pl4] float
      ,[l5] int
      ,[pl5] float
      ,[l6] int
      ,[pl6] float
      ,[l7] int
      ,[pl7] float
      ,[l8] int
      ,[pl8] float
      ,[l9] int
      ,[pl9] float
      ,[Spolu] int
      ,[pSpolu] float
      ,[Pmedziobd] int
      ,[SpoluChov] int
      ,[znakLakt] varchar(1)
	)*/
	
	TRUNCATE TABLE plis.dbo.CP_MedziobdZostavaA_CopyTest_er
	
	declare @t1 as datetime;
	set @t1=datediff(SECOND,getdate(),GETDATE());
	
	declare @t2 as datetime;
	declare @t3 as datetime;

	declare @kod as int;
	declare @nazov as varchar(20);
	--declare @C as varchar(9);
	declare @l1 as int;
	declare @l2 as int;
	declare @l3 as int;
	declare @l4 as int;
	declare @l5 as int;
	declare @l6 as int;
	declare @l7 as int;
	declare @l8 as int;
	declare @l9 as int;
	declare @p1 as float;
	declare @p2 as float;
	declare @p3 as float;
	declare @p4 as float;
	declare @p5 as float;
	declare @p6 as float;
	declare @p7 as float;
	declare @p8 as float;
	declare @p9 as float;
	declare @spolu int;
	declare @pSpolu float;
	declare @s int;
	declare @pMedzi as int;

	declare chovatel cursor for
	select distinct chovatel
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,6)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null	
	
	union
	
	select distinct substring(chovatel,1,3)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null
	
	union
	
	select distinct substring(chovatel,1,1)
	from plis.dbo.CM_Krava
	where PRIZNAKKU='1'
	and DOVVYR is null

	open chovatel
	fetch next from chovatel into @C;

	while @@FETCH_STATUS=0
	begin
		
		declare hran cursor for
		select kod,nazov
		from plis.dbo.CC_Medziobd order by kod

		open hran
		fetch next from hran into @kod,@nazov
		
	
		IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
			DROP TABLE PLIS.dbo.TEMPTABLE_s			
		select l.PORLAK into PLIS.dbo.TEMPTABLE_s from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 and PRIZNAKKU = '1'

	
		while @@FETCH_STATUS=0
		begin
			IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE PLIS.dbo.TEMPTABLE
			select l.PORLAK, l.KOD_MEDZ into PLIS.dbo.TEMPTABLE from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and PRIZNAKKU = '1' and KOD_MEDZ=@kod
		
		begin
				set @l1=(select COUNT(*) from TEMPTABLE where PORLAK=1 );
				set @l2=(select COUNT(*) from TEMPTABLE where PORLAK=2 );
				set @l3=(select COUNT(*) from TEMPTABLE where PORLAK=3 );
				set @l4=(select COUNT(*) from TEMPTABLE where PORLAK=4 );
				set @l5=(select COUNT(*) from TEMPTABLE where PORLAK=5 );
				set @l6=(select COUNT(*) from TEMPTABLE where PORLAK=6 );
				set @l7=(select COUNT(*) from TEMPTABLE where PORLAK=7 );
				set @l8=(select COUNT(*) from TEMPTABLE where PORLAK=8 );
				set @l9=(select COUNT(*) from TEMPTABLE where PORLAK>=9);
				set @spolu= @l2+@l3+@l4+@l5+@l6+@l7+@l8+@l9;
				set @s=(select COUNT(*)	from TEMPTABLE_s);
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
			set @pMedzi=(select avg(MEDZIOBD) from plis.dbo.CM_Laktacie where CHOVATEL like @c +'%' and KOD_MEDZ=@kod)
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest_er  values  (@c ,@nazov,@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,@pMedzi,@s,Null);
		end

			fetch next from hran into @kod,@nazov
		end

		close hran
		deallocate hran;
		
		
		begin
			set @l1=(select COUNT(*) from TEMPTABLE_s where PORLAK=1 );
																																																					
			set @l2=(select COUNT(*) from TEMPTABLE_s where PORLAK=2 );
																																																						
			set @l3=(select COUNT(*) from TEMPTABLE_s where PORLAK=3 );
																																																						
			set @l4=(select COUNT(*) from TEMPTABLE_s where PORLAK=4 );
																																																						
			set @l5=(select COUNT(*) from TEMPTABLE_s where PORLAK=5 );
																																																						
			set @l6=(select COUNT(*) from TEMPTABLE_s where PORLAK=6 );
																																																						
			set @l7=(select COUNT(*) from TEMPTABLE_s where PORLAK=7 );
																																																						
			set @l8=(select COUNT(*) from TEMPTABLE_s where PORLAK=8 );
																																																						
			set @l9=(select COUNT(*) from TEMPTABLE_s where PORLAK>=9 );
		
			set @spolu=(select COUNT(*) from TEMPTABLE_s);
		
			set @s=@spolu
	
			if(@s=0)set @s=NULL;
			set @p1=(convert(float,@l1)*100.00)/@s;
			set @p2=(convert(float,@l2)*100.00)/@s;
			set @p3=(convert(float,@l3)*100.00)/@s;
			set @p4=(convert(float,@l4)*100.00)/@s;
			set @p5=(convert(float,@l5)*100.00)/@s;
			set @p6=(convert(float,@l6)*100.00)/@s;
			set @p7=(convert(float,@l7)*100.00)/@s;
			set @p8=(convert(float,@l8)*100.00)/@s;
			set @p9=(convert(float,@l9)*100.00)/@s;
			set @pSpolu=(convert(float,@spolu)*100.00)/@s;
				
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest_er  values(@c ,'Spolu',@l1,@p1,@l2,@p2,@l3,@p3,@l4,@p4,@l5,@p5,@l6,@p6,@l7,@p7,@l8,@p8,@l9,@p9,@spolu,@pSpolu,null,@s,NULL)
			
			IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
				DROP TABLE PLIS.dbo.TEMPTABLE
				
			select l.PORLAK, l.MEDZIOBD into PLIS.dbo.TEMPTABLE from PLIS.dbo.CM_Naplak as l inner join PLIS.dbo.CM_Krava as k on k.CISKRAVY=l.CISKRAVY where k.CHOVATEL like @c +'%' and k.DOVVYR is null and KOD_MEDZ is not null and KOD_MEDZ!=1 and PRIZNAKKU = '1'
			
			set @l1=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=1);
			set @l2=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=2);
			set @l3=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=3);
			set @l4=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=4);
			set @l5=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=5);
			set @l6=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=6);
			set @l7=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=7);
			set @l8=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK=8);
			set @l9=(select avg(MEDZIOBD) from TEMPTABLE where PORLAK>=9);
			set @spolu=(select avg(MEDZIOBD) from TEMPTABLE);
			
			insert into plis.dbo.CP_MedziobdZostavaA_CopyTest_er  values(@c ,'Priem. medziobd.',@l1,null,@l2,null,@l3,null,@l4,null,@l5,null,@l6,null,@l7,null,@l8,null,@l9,null,@spolu,null,null,@s,NULL)
			
end

fetch next from chovatel into @C;
end

close chovatel
deallocate chovatel

IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE')
	DROP TABLE PLIS.dbo.TEMPTABLE
IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'TEMPTABLE_s')
	DROP TABLE PLIS.dbo.TEMPTABLE_s			
	
END	


/*
exec [C_ZZ_Mleko_MedziobdobieReportA_chov_er]
*/
go

-- =============================================
-- Author:		<Author,,Machynova>
-- Create date: <22.8.2014,,>
-- Description:	<Description,,vrati zoznam linii s poctom nevyradenych bahnic, stado je zadane parametrom>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_KozLinie] 
(	

	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.cislin, case when l.nazlin is NULL then '            ' else l.nazlin end as nazlin,SUM(1) AS pocet
FROM dbo.GM_KOZA b LEFT OUTER JOIN dbo.GC_SubLin l
 on l.cislin = REPLACE(b.Cislin , ' ', '0')
 WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.CisLin,NAZLIN 


)
go

-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 04.11.2015
-- Last update: 04.11.2015
--				05.01.2018 - podmienky na otec a matka is not null priamo v inserte
--				08.01.2018 - podmienka pre vynulovanie poslednych predkov (pre vypocet) 
-- Description:	Skopirovanie CM_Krava, CM_Byci, CM_Telata, Ainbreeding2 (interbull data)
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_kopirovanie_krav_sprac_nove] 
AS
BEGIN			

	truncate table [Ainbreeding_Sprac]
	
	INSERT INTO [Ainbreeding_Sprac]
		([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
	SELECT USCISLO, OTUSCIS, MATKA, DATNAR, POHLAVIE, MENO, PL1, 'PSSRbyk'
	FROM CM_Byci
	WHERE OTUSCIS is not null and matka is not null 


	INSERT INTO [Ainbreeding_Sprac]
		([uscislo],[otec],[matka],[datnar],[pohlavie],[meno],[plemeno],[povoddat])
	SELECT CISKRAVY, OUSCIS, MA, DATNAR,  POHLAVIE, bb_name, PL1, 'PSSRkrava'
		FROM CM_Krava k
		where PRIZNAKKU <> '0'
		--and CISKRAVY <> (select top 1 uscislo from Ainbreeding a where a.uscislo = k.CISKRAVY)
		and CISKRAVY not in (select uscislo from [Ainbreeding_Sprac])
		and OUSCIS is not null and ma is not null 

	--DELETE FROM [Ainbreeding_Sprac] WHERE otec is null and matka is null 

	
	INSERT INTO [Ainbreeding_Sprac]
		([uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], [povoddat], [IB_uscislo],
		[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz])
	SELECT 
		[uscislo], [otec], [matka], [datnar], [pohlavie], [meno], [plemeno], 'IB', [IB_uscislo],
		[IB_otec], [IB_matka], [IB_datnar], [IB_meno], [IB_verifikacia], [IB_organiz]
	FROM Ainbreeding2 b
	WHERE --uscislo <> (select top 1 uscislo from Ainbreeding a where a.uscislo = b.uscislo)
	 uscislo not in (select uscislo from [Ainbreeding_Sprac])
	 and [otec] is not null and matka is not null 
	

	DELETE FROM [Ainbreeding_Sprac] WHERE otec is null and matka is null 

	INSERT INTO [Ainbreeding_Sprac]
		([uscislo],[otec],[matka],[datnar],[pohlavie],[plemeno],[povoddat])
	SELECT CISTELATA, OUC, MATKA, DATNAR, POHLAVIE, PL1, 'PSSRtela'
		FROM CM_Telata t
		--WHERE CISTELATA not in (select uscislo from Ainbreeding)
		WHERE --CISTELATA <> (select top 1 uscislo from Ainbreeding a where a.uscislo = t.cistelata)
		 CISTELATA not in (select uscislo from [Ainbreeding_Sprac])

	--DELETE FROM Ainbreeding WHERE otec is null and matka is null 


	--add 08.01.2018
	--znamena to ukoncenie predkov... preto NULL
	update Ainbreeding_Sprac
	set matka = NULL
	where matka = 'SK00000000000X'

	update Ainbreeding_Sprac
	set otec = NULL
	where otec = 'SK00000000000Y'

	update Ainbreeding_Sprac
	set otec = NULL
	where otec = 'SK00000000000X'

END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.12.2017
-- Description:	Udaje do rocenky za plemeno S/P/H/B kvoli tabulke: VYSLEDKY KONTROLY UZISTKOVOSTI ZA SLACHTITELSKE CHOVY - PODLA PLEMIEN 
--				nasledne sa pouziju data z tabulky CR_LaktacneZostavy_rocenka do tabulky Roc_MLHD_Tab_19A
-- =============================================
CREATE procedure [dbo].[Roc_MLHD_19_SR]
	
	@datumOd date,
	@datumDo date =''
as	
begin
delete from Roc_MLHD_Tab_19A where kraj+OKRES + PODNIK + CHOV = '999999999' and rok = DATEPART(YEAR, @datumOd)
--use mirka_db
--declare @datumOd date = '2017-01-01', @datumDO date = '2017-12-31'

--delete from Roc_MLHD_Tab_19A where rok = DATEPART(YEAR, @datumOd)

insert into Roc_MLHD_Tab_19A
  ( Por,KRAJ,OKRES,PODNIK,CHOV,stpec_1,stpec_2,stpec_3,stpec_4,stpec_5,stpec_6,stpec_7
      ,stpec_8,stpec_9,stpec_10,stpec_11,stpec_12,stpec_13,stpec_14Mesiac,stpec_14Den,stpec_15,stpec_16,stpec_17,stpec_18
      ,stpec_19,stpec_20,stpec_21,stpec_22,stpec_23,stpec_24,stpec_25,stpec_26,stpec_27,stpec_28,stpec_29,rok,Plem_typ)

select '2' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		,''as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,'' as stpec_5
		,'Plemeno - Holsteinské' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29 
		,datepart (year, @datumOd) as rok
		,'Hol' as Plem_typ

	 from dbo.CR_LaktacneZostavy_Opr as z
		where datumDO= @datumDo 
					and DatumOd= @datumOd
					and Filter = 'SR,ChZ3'
--SR,ChZ1
--SR,ChZ2
--SR,ChZ3
--SR,ChZ5

union 
	select 
		'1' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'Hol' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'H' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,H'
union 
select '2' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		,''as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,'' as stpec_5
		,'Plemeno - Slovenské strakaté' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29 
		,datepart (year, @datumOd) as rok
		,'SLst' as Plem_typ

	 from dbo.CR_LaktacneZostavy_Opr as z
		where datumDO= @datumDo 
					and DatumOd= @datumOd
					and Filter = 'SR,ChZ1'
--SR,ChZ1
--SR,ChZ2
--SR,ChZ3
--SR,ChZ5

union 
	select 
		'1' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SLst' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr as z
		where 'S' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,S'

union 

select '2' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		,''as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,'' as stpec_5
		,'Plemeno - Slovenské pinzgauské' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29 
		,datepart (year, @datumOd) as rok
		,'Pin' as Plem_typ

	 from dbo.CR_LaktacneZostavy_Opr as z
		where datumDO= @datumDo 
					and DatumOd= @datumOd
					and Filter = 'SR,ChZ2'
--SR,ChZ1
--SR,ChZ2
--SR,ChZ3
--SR,ChZ5


					--and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
union 
	select 
		'1' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'Pin' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'P' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,P'

union select '2' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		,''as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,'' as stpec_5
		,'Plemeno - Braunvieh' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29 
		,datepart (year, @datumOd) as rok
		,'Brau' as Plem_typ

	 from dbo.CR_LaktacneZostavy_Opr as z
		where datumDO= @datumDo 
					and DatumOd= @datumOd
					and Filter = 'SR,ChZ5'
--SR,ChZ1
--SR,ChZ2
--SR,ChZ3
--SR,ChZ5

union 
	select 
		'1' as Por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'Brau' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr as z
		where 'B' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,B'
/*****spolu za SR***/				
union
	select 
		'3' as por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Plemeno - Holsteinské' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SR' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		--left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @chov
		--left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
		--left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
		where 'H' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,H'
			
	union 
	select 	'1' as por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Plemeno - Slovenské strakaté' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SR' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'S' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,S'

union 
	select 
		'2' as por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Plemeno - Slovenské pinzgauské' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SR' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'P' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,P'

	union 
		select 
		'4' as por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
			--ChCh.NAZOV as CHARCHOV,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Plemeno - Braunvieh' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SR' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'B' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,B'

	union 
		select 
		'5' as por
		,'9' as kraj
		,'99' as okres
		,'999' as podnik
		,'999' as chov
		,'' as stpec_1--SPVYKON,
		,'' AS stpec_2--CHARCHOV_kod,
		,'' as stpec_3--VYROBL, 
		,'' as stpec_4--CHARUS
		,''as stpec_5
		,'Spolu' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1,0) as stpec_8
		,round(z.MliekNorL1,0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1,0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1,0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2,0) as stpec_16
		,round(z.MliekNorL2,0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2,0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2,0) as stpec_21
		,round(z.MedziobdL2,0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk,0) as stpec_24
		,round(z.MliekNorCelk,0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk,0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk,0) as stpec_29
		,datepart (year, @datumOd) as rok
		,'SR' as Plem_typ
	 from dbo.CR_LaktacneZostavy_Opr  as z
		where 'SR' = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and filter='SR,SR'


end
go




-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 25.05.2012
-- Description:	Prepocitanie triedy uzitkovosti vsetkym kravam, kde je to nutne (treba preratat INDLAK funkciou prep_indlak)
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_tr_uzit_a_max_lakt] 
	@ParChov varchar(9)
AS
BEGIN	
	declare @counter int
	declare @rowcount int  

	declare @CISKRAVY varchar(14)

	-- vyber vsetkych krav, ktorym treba vypocitat TRUZIT (len, co maju DATZAPPREP a nemaju DATVYBPREP)
	declare db_cursor_kravy_vyp cursor
	FOR
	select distinct 
		CISKRAVY 
		from PLIS.dbo.CM_Krava where DATVYBPREP is NULL and DATZAPPREP is not NULL and CHOVATEL = @ParChov order by CISKRAVY
	
	OPEN db_cursor_kravy_vyp

	FETCH NEXT
	FROM db_cursor_kravy_vyp INTO 	
		@CISKRAVY
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- prepocitanie maximalnej laktacie (a dalsich cisel) pre danu kravu
		exec C_aktual_prep_max_lakt_krave @CISKRAVY
		
		-- prepocitanie triedy uzitkovosti pre danu kravu
		exec C_aktual_prep_tr_uzit_krave @CISKRAVY		

		update CM_Krava set
			DATVYBPREP = GETDATE()
			where CISKRAVY = @CISKRAVY		

		FETCH NEXT		
		FROM db_cursor_kravy_vyp INTO 	
		@CISKRAVY	
	end
	
	CLOSE db_cursor_kravy_vyp
	DEALLOCATE db_cursor_kravy_vyp		
	
	declare @IDParChov bigint	
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov			
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_prep_tr_uzit_a_max_lakt ...OK'		
END


go



 CREATE procedure [dbo].[Rocenka_MPHD_19_SR]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

	select  --o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, ch.NAZOV as Chov_nazov, pk.OBEC as Sidlo, 
			k.NAZOV as Kraj_nazov,
			p.KrOk as Kraj, p.Podnik, p.Chov, p.Priem_st_krav, p.Kravy_Z, p.Kravy_V, p.od_prvostok_B, p.od_krav_B, p.od_prvostok_J, p.od_krav_J,
			p.m1_J, p.m2_J, p.m3_J, p.m4_J, p.m5_J, p.m6_J, p.m7_J, p.m8_J, p.m9_J, p.m10_J, p.m11_J, p.m12_J,
			p.m1_B, p.m2_B, p.m3_B, p.m4_B, p.m5_B, p.m6_B, p.m7_B, p.m8_B, p.m9_B, p.m10_B, p.m11_B, p.m12_B,
			p.m1_JB, p.m2_JB, p.m3_JB, p.m4_JB, p.m5_JB, p.m6_JB, p.m7_JB, p.m8_JB,	p.m9_JB,	p.m10_JB,	p.m11_JB,	p.m12_JB, p.rok


	
	from Roc_MPHD_Tab_19 as p
		  left join  NC_KRAJ as k  on p.KrOk = k.KRAJ
	where p.KrOk = 'SR' and DATEPART(YEAR, @datumOd) = p.rok
	end
 
go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_TelataPoLaktacie_101]
AS
BEGIN
	

	TRUNCATE TABLE plis.dbo.Cp_TelataPoLaktacii


	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @l as int;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;

	declare kravy cursor for
	select CISKRAVY
	from plis.dbo.CM_Krava
	where PRIZNAKKU=1;

	open kravy ;
	fetch next from kravy into @krava;

	while @@FETCH_STATUS=0
	begin

		declare @i int;
		set @i=0;


		declare lakt cursor for
		select PORLAK
		from plis.dbo.CM_Laktacie
		where CISKRAVY=@krava

		open lakt
		fetch next from lakt into @lakt;

		while @@FETCH_STATUS=0
		begin

		declare telata cursor for 
		select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,l.PORLAK
		from plis.dbo.CM_Krava as k
		
		inner join plis.dbo.CM_Laktacie as l
		on k.CISKRAVY=l.CISKRAVY

		left join plis.dbo.CM_Telata as t
		on k.CISKRAVY=t.MATKA and t.PORLAK=l.PORLAK
		where  k.CISKRAVY=@krava
		and l.PORLAK=@lakt

		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
		set @i=1;
		while @@FETCH_STATUS=0
		begin
		/*print N'Ok'
		print @d;
		print @datotel;
		print N'* * * * * * '*/
		
			if(  @i=1)
				begin 
					print N'pyrvo tele';
				end
			if(@i>1) 
					begin 
						
						print N'+1tele'
						--update plis.dbo.Cp_TelataPoLaktacii set krava=@krava,datotel=@d,t1=@t1,t2=@t2,t3=@t3,otec=@otec,ouc=@ouc where datotel=@datotel and krava=@krava; 
					end
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				if(@t is null)
				begin
				set @t1='bez UČ';
				set @t1Poch=@pocl;
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				if(@t is null)
				begin
				set @t2='bez UČ';
				set @t2Poch=@pocl;
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				if(@t is null)
				begin
				set @t3='bez UČ';
				set @t3Poch=@pocl;

				end
			end
			set @i=@i+1;
	--		print N't - '+@t
		--	print @i
		--	print @datotel;
		--	print @d
		--	print N't1 - '+@t1;
		--	print N't2 - '+@t2;
		--	print N't3 - '+@t3;
		--	print @krava;
		--	print @datotel;

		--	

			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@l;
			--print N'-------------------------------'
			set @d=NULL;

				
		end
		--set @i=0;
		--set @t1='';
		--set @t2='';
		--set @t3='';
		

		close telata;
		 deallocate telata;

		 insert into plis.dbo.Cp_TelataPoLaktacii values(@krava,@datotel,@t1,@t1Poch,@t2,@t2Poch,@t3,@t3Poch,@otec,@ouc,@l); 
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
			fetch next from lakt into @lakt;
		 end
		 close lakt;
		 deallocate lakt;
		 				



	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END
go

CREATE PROCEDURE [dbo].[C_Zoznam_nar_teliat_KUMP2_prepocet_vstupy] @rok INT, @mesiac INT

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)


    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
	SELECT CHOV FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE rok = @rok AND mesiac = @mesiac
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)
							EXEC dbo.C_Zoznam_nar_teliat_KUMP_1 @chov,@rok,@mesiac
	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,vrati zoznam linii s poctom nevyradenych baranov, stado je zadane parametrom>,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_CapLinie]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.cislin, case when l.nazlin is NULL then '            ' else l.nazlin end as nazlin,SUM(1) AS pocet
FROM dbo.GM_CAP b LEFT OUTER JOIN dbo.GC_SubLin l
 on l.cislin=b.Cislin 
 WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.CisLin,NAZLIN 
)
go


-- =============================================
-- procedura ::C_aktual_plem_potomok:: nahradena funkciou ::C_aktual_plem_potomok_funkcia::

-- Author:		PSSR, š.p.
-- Create date: 03.08.2011
-- Last update: 01.07.2015
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 

-- Update:
--				Odobrate plemena S (12.5%) - ako vo FANDe
--				Spojenie plemien H a R za urcitych podmienok
--				Opravene spocitanie plemien pri pocte > 4
--				Osetrene vstupy
--				Opravene poradie plemien pri rovnakych KR... - beru sa podla priority ako boli v jeho predkoch (S-12.5 CH-12.5 >> S-6.3 CH-6.3)
--				01.06.2015 - vyhodene X ako posledne v poradi
--				02.06.2015 - SR + SB -> SM
--				17.06.2015 - odstraneny chovatel z podmienok (ako param zatial. ponechany)
--				22.06.2015 - Plemeno s KR pod 6 sa pripocitava podla typu (ci ide o Mliekovy, Masovy, Komb) - predtym slo k najvyssiemu
--				   -||-	   - Sucet PS rodica musi byt 100, inak nepocita potomka
--				29.06.2015 - Plemeno sa pripocita podla nasledujucich specifikacii:
--									ML -> KOMB -> X -> MP
--									KOMB -> ML -> X -> MP
--									X -> Plemeno s najvacsim podielom
--									MP-> KOMB -> X -> ML
--							- zvysne plemena (ak pocet > 4) sa rataju ako plemeno s KR pod 6
--							- PL5 sa uz uvadzat nebude!! PL5 is NULL
--				01.07.2015 -  oprava H a R ... 	
--					    	- ak by bolo (H aj R) a  H alebo R bude mensie ako 6, tak pripocitaj ich k sebe, aby nezaniklo
--				02.07.2015 - pre vypocet, musi rodic mat podiel Plemena nad 6	(chyba o: S-93.8 R-3.1 F-3.1)
--				23.09.2015 - ak nema rodic plemenu skladbu tak -> X-100 (predtym koniec)
--				26.02.2016 - plemeno sa prepocita aj ak chyba otec alebo matka (je null)
--				30.11.2016 - add replace k plemenam pri selekte - niektori sikovny zadavaju medzere do plemena... 'L' vs ' L' ('FR008727970854','PL005303501490', null)
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_plem_potomok_funkcia_old]
(
	@USCISLO_O [varchar](15),
	@USCISLO_M [varchar](15),
	@CHOVATEL [varchar] (9)	--chovatel moze ist prec (17.6.2015)
)	
RETURNS @table TABLE
					 (
					potomok varchar(14) NULL,
					PL1 varchar(10) NULL,
					KR1 float NULL,
					PL2 varchar(10) NULL,
					KR2 float NULL,
					PL3 varchar(10) NULL,
					KR3 float NULL,
					PL4 varchar(10) NULL,
					KR4 float NULL,
					PL5 varchar(10) NULL,
					Matka varchar(14) NULL,
					skladba_M varchar(50) NULL,
					stav varchar (50) NULL
					)
AS
BEGIN
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
		
	declare @podiely table 
	(		
		PL [varchar](2),
		KR [decimal](5,2),
		Pr [int],
		Typ int
		--Pohl int
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2),
		Typ int
		--Pohl int
	)

	--declare @temp_podiely_usp table 
	--(
	--	ID [int] identity (1,1),
	--	PL [varchar](2),
	--	KR [decimal](5,2),
	--	Typ int
	--	--Pohl int
	--)

	declare @podiely_usp_pred table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2),
		Typ int
		--Pohl int
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2),

	@HR_M [decimal](5,2),
	@HR_O [decimal](5,2),
	@SM [decimal](5,2),
	@HR_pod_12 [decimal](5,2),
	@HR_nad_12 [decimal](5,2),
	@HR_Max varchar(1)

	--insert into @table
	--values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

	
	--ak neexistuje usne cislo rodica tak KONCI
	--if (@USCISLO_O is null or len(@USCISLO_O) != 14)
	--	return;		
	--if (@USCISLO_M is null or len(@USCISLO_M) != 14)
	--	return;

	--delete table @table;
	--truncate table @table;
		
    -- zakomentovane kvoli tomu, ze sa neprepocitalo plemeno ak chybal otec alebo matka (boli null) (2016-02-26)
	--if ((@USCISLO_O is null or len(@USCISLO_O) != 14) 
	--	or (@USCISLO_M is null or len(@USCISLO_M) != 14))
	--	begin
	--		--insert into @table (stav) values ('chyba rodic');
	--		insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chyba rodic');
	--		return;
	--	end
	
	--if (@CHOVATEL is null or @CHOVATEL = '')
	--	return;
	
	select @PL1_O = replace(PL1, ' ', '') ,
		@KR1_O = KR1, 
		@PL2_O = replace(PL2, ' ', '') ,
		@KR2_O = KR2, 
		@PL3_O = replace(PL3, ' ', '') ,
		@KR3_O = KR3, 
		@PL4_O = replace(PL4, ' ', '') ,
		@KR4_O = KR4, 
		@PL5_O = replace(PL5, ' ', '') ,
		@USCISLO_O = USCISLO
	from CM_Byci 
	where USCISLO = @USCISLO_O

	select top 1 @PL1_M = replace(c.PL1, ' ', '') ,
		@KR1_M = c.KR1, 
		@PL2_M = replace(c.PL2, ' ', '') ,
		@KR2_M = c.KR2, 
		@PL3_M = replace(c.PL3, ' ', '') ,
		@KR3_M = c.KR3, 
		@PL4_M = replace(c.PL4, ' ', '') ,
		@KR4_M = c.KR4, 
		@PL5_M = replace(c.PL5, ' ', '') ,
		@USCISLO_M = USCISLO
	from 	
	(
	SELECT *, 0 as Priority
		FROM
		(
		SELECT 
			k.PL1 AS PL1, 
			k.KR1 AS KR1, 
			k.PL2 AS PL2, 
			k.KR2 AS KR2, 
			k.PL3 AS PL3, 
			k.KR3 AS KR3, 
			k.PL4 AS PL4, 
			k.KR4 AS KR4, 
			k.PL5 AS PL5,
			k.CISKRAVY AS USCISLO
		FROM CM_Krava k
		WHERE k.CISKRAVY = @USCISLO_M
			--AND k.DOVVYR IS NULL
			--AND k.CHOVATEL = @CHOVATEL 
			AND PRIZNAKKU <> 0
			AND (k.KR1 IS NOT NULL)
		) AS ta			
	UNION	
	SELECT *, 1 as Priority
		FROM
		(
		SELECT
			t.PL1 AS PL1, 
			t.KR1 AS KR1, 
			t.PL2 AS PL2, 
			t.KR2 AS KR2, 
			t.PL3 AS PL3, 
			t.KR3 AS KR3, 
			t.PL4 AS PL4, 
			t.KR4 AS KR4, 
			t.PL5 AS PL5,
			t.CISTELATA AS USCISLO
		FROM CM_Telata t 
		WHERE t.CISTELATA = @USCISLO_M
			AND (t.POHLAVIE LIKE '%2' AND t.POHLAVIE <> '62')
			--AND t.CHOVATEL = @CHOVATEL 
			AND (t.KR1 IS NOT NULL)
		) AS tb	
			
	) as C
	ORDER BY Priority	


	--ak by sa otec alebo matka nemal PS.. KONCI
	--if (@PL1_O is null or @PL1_O = '')
	--	return ;		
	--if (@PL1_M is null or @PL1_M = '')		
	--	return ;

	--if ( (@PL1_O is null or @PL1_O = '') 
	--	or (@PL1_M is null or @PL1_M = '') )		
	--	begin
	--		--insert into @table (stav) values ('chyba PS rodica');
	--		insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'nie je PS rodica');
	--		return;
	--	end


	if (@PL1_O is null or @PL1_O = '')
	begin
		set @PL1_O = 'X'
		set @KR1_O = '100'
	end
		 
	if (@PL1_M is null or @PL1_M = '') 
	begin
		set @PL1_M = 'X'
		set @KR1_M = '100'	
		end


	-- AK SUCET PS rodica nie je 100 tak KONIEC
	--if (isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0) <> 100 )
	--	return ;
		
	--if (isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0) <> 100 )
	--	return ;

	if ( (isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0) <> 100 )
		or (isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0) <> 100 ) )		
		begin
			--insert into @table (stav) values ('chybny sucet PS rodica');
			insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chybny sucet PS rodica');
			return;
		end

	/*
		Ak ma rodic plemeno s podielom pod 6, tak skonci
	*/
	if ( (isnull(@KR1_M, 100) < 6 OR isnull(@KR2_M, 100) < 6 OR isnull(@KR3_M, 100) < 6 OR isnull(@KR4_M, 100) < 6 )
		or (isnull(@KR1_O, 100) < 6 OR isnull(@KR2_O, 100) < 6 OR isnull(@KR3_O, 100) < 6 OR isnull(@KR4_O, 100) < 6 ) )		
		begin
			--insert into @table (stav) values ('chybny sucet PS rodica');
			insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chybna PS rodica');
			return;
		end
		

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 1, 1)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom, 1, 1)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 2, 1)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 3, 1)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 4, 1)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 5, 1)			
		end			
	end
		
	--zistenie, kolko plemien H a R ma otec
	set @HR_O = (select COUNT(*) from @podiely where PL in ('H','R'))
	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 6, 0)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom, 6, 0)
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 7, 0)
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 8, 0)
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 9, 0)
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 10, 0)			
		end			
	end

	update @podiely
	--set Typ = select typ from CP_PlemenoTyp where PL = @podiely.PL
	set Typ = t.typ
	from @podiely p
	inner join CP_PlemenoTyp t on t.PL = p.PL


	--zistenie, kolko plemien H a R ma matka
	set @HR_M = (select COUNT(*) from @podiely where PL in ('H','R')) -  @HR_O

	--1.6.2015 - aktualizacia - vyhodene X ako posledne
	--ak X, nastav najvysiu prioritu
	--if (select COUNT(*) from @podiely where PL = 'X') > 0	
	--begin
	--	update @podiely
	--	set Pr = '100'
	--	where PL = 'X'
	--end


	-- SR + SB -> SM
	set @SM = (select COUNT(*) from @podiely where PL in ('SR','SB'))
	if @SM > 0
	begin
		update @podiely
		set PL = 'SM'
		where PL in ('SR','SB')
	end

	-- ak by bolo (H aj R) a  H alebo R bude mensie ako 6, tak pripocitaj ich k sebe, aby nezaniklo
	set @HR_pod_12 = ( (select 1 where  (select SUM(kr) as s from @podiely where PL = 'R') < 6)
					+ (select 1 where  (select SUM(kr) as s from @podiely where PL = 'H') < 6) )


	set @HR_Max = (select case when (select SUM(kr) as s from @podiely where PL = 'H') < (select SUM(kr) as s from @podiely where PL = 'R')
					then 'R' else 'H' END)

		
	/* 
		Ak je vela plemien, tak H a R sa spoja, ak sa tam nachadzaju
		Spoja sa do plemena, s najvacsim podielom (R-90 - H-10 -> R-100)
		--toto neplati: Ale ak iba jedno zviera obsahuje aj H aj R, tak ich nespajaj
	*/
	--if ( ((select COUNT(distinct pl) from @podiely where KR > 6) > 4
	if ( ((select COUNT(distinct pl) from @podiely where KR >= 12) > 4	--musi byt viac ako 4 plema, nad 11 (podielom krvi)
	--if ((select COUNT(distinct pl) from @podiely ) > 5
	--and  (@HR_O <> 2 and @HR_M <> 2))
	and  (@HR_O > 0 or @HR_M > 0)-- and (@HR_O = 2 or @HR_M = 2))
	)
	or @HR_pod_12 > 0)
	begin
		if (@HR_Max = 'H')
		begin 
			update @podiely
			set PL = 'H'
			where PL = 'R'
		end
		else
		begin
			update @podiely
			set PL = 'R'
			where PL = 'H'
		end
	end

	
	
	-- scitanie plemien a usporiadanie na zaklade priority podla rodica
	--insert @podiely_usp 
	--select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	--GROUP by PL
	----order by SUM(isnull(KR, 0)) desc, PL asc
	insert @podiely_usp_pred 
	--select PL, ROUND(sum(isnull(KR, 0)),1) as KR from @podiely	
	select PL, sum(isnull(KR, 0)) as KR, Min(Typ) from @podiely			--hmm preco ROUND? - zatial slo prec
	GROUP by PL
	order by KR desc, Min(Pr) asc--, Min(ID) asc	




	--set @zvPlem = (select KR from @podiely_usp where KR='R')

	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	--if @zvPlem > 0
	---- treba pricitat zvyskove plemeno k hlavnemu
	--begin
	--	update @podiely_usp
	--	set KR =  KR + isnull((select sum(KR) from @podiely_usp
	--	where KR < @zvPlem), 0)
	--	where Pohl
	--	--where ID = 1
		
	--	--update @podiely_usp
	--	--set KR = 0, PL = null
	--	--where KR < @zvPlem

	--	DELETE FROM  @podiely_usp
	--	where KR < @zvPlem
	--end

	

		--SELECT * FROM #plemeno
	-- add 22.6.2015	
	-- preved plemeno pod 6 resp. s najmensim podielom s ID 5 a viac do prislusneho plemena podla typu, prip. k najvacsiemu
	-- update: 29.6.2015
	-- bude to trochu inak....

	declare @_KR decimal(5,2) ,
			@_PL varchar(2),
			--@_Pohl int
			@_Typ int,
			@_ID int

	declare zviera cursor  for
	select PL, KR from @podiely_usp_pred where (KR < @zvPlem or ID > 4)
	open zviera	
	fetch next from zviera into @_PL, @_KR;
	WHILE @@FETCH_STATUS = 0 
		begin
			-- zistim typ plemena
			set @_Typ = (select typ from CP_PlemenoTyp where PL = @_PL);

			-- vloz do najvacsieho svojho plemena						
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ and PL <> @_PL and KR >= @zvPlem order by ID asc)
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
			set @_ID = (select top 1 ID from @podiely_usp_pred where Typ = @_Typ and PL <> @_PL and (KR >= @zvPlem  and ID <= 4) order by ID asc)
			
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ order by KR desc)

			--pokail neexistuje zhodne plemeno, vloz ho podla zadania do toho spravneho
			if (@_ID is null)
				--set @_ID = 1
				begin
					declare	@ML_ID int,
							@MP_ID int,
							@KOMB_ID int,
							@X_ID int,
							@MAX_ID int

							--set @KOMB_ID = (select top 1 ID from @podiely_usp where Typ = 0 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @ML_ID = (select top 1 ID from @podiely_usp where Typ = 1 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @MP_ID = (select top 1 ID from @podiely_usp where Typ = 2 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @X_ID = (select top 1 ID from @podiely_usp where Typ = 3 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @MAX_ID = (select top 1 ID from @podiely_usp where PL <> @_PL and KR >= @zvPlem order by ID asc)
							
							--set @KOMB_ID = (select top 1 ID from @podiely_usp where Typ = 0 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @ML_ID = (select top 1 ID from @podiely_usp where Typ = 1 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @MP_ID = (select top 1 ID from @podiely_usp where Typ = 2 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @X_ID = (select top 1 ID from @podiely_usp where Typ = 3 and PL <> @_PL and(KR >= @zvPlem  or ID <= 4) order by ID asc)

							set @KOMB_ID = (select top 1 ID from @podiely_usp_pred where Typ = 0 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @ML_ID = (select top 1 ID from @podiely_usp_pred where Typ = 1 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @MP_ID = (select top 1 ID from @podiely_usp_pred where Typ = 2 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @X_ID = (select top 1 ID from @podiely_usp_pred where Typ = 3 and PL <> @_PL and(KR >= @zvPlem and ID <= 4) order by ID asc)

							--set @MAX_ID = (select top 1 ID from @podiely_usp where PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							set @MAX_ID = (select ID from @podiely_usp_pred where ID = 1)

							-- KOMB -> ML -> X -> MP
							--if(@_Typ = 0)
							set @_ID =	CASE @_Typ
											-- KOMB -> ML -> X -> MP
											WHEN 0 THEN
												CASE
													WHEN @ML_ID is not null THEN @ML_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @MP_ID 
												END
											-- ML -> KOMB -> X -> MP
											WHEN 1 THEN
												CASE
													WHEN @KOMB_ID is not null THEN @KOMB_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @MP_ID 
												END
											--	MP-> KOMB -> X -> ML											
											WHEN 2 THEN
												CASE
													WHEN @KOMB_ID is not null THEN @KOMB_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @ML_ID 
												END
											--  X -> Plemeno s najvacsim podielom
											ELSE
												@MAX_ID
								
										--set @_ID =	CASE 
										--CASE
										--				WHEN @ML_ID is not null THEN @ML_ID 
										--				WHEN @X_ID is not null THEN @X_ID 
										--				ELSE @MP_ID 
										--			END

										END
				end


--	ML -> KOMB -> X -> MP
--	KOMB -> ML -> X -> MP
--  X -> Plemeno s najvacsim podielom
--	MP-> KOMB -> X -> ML


			update @podiely_usp_pred
			set KR = KR + @_KR
			where ID = @_ID
		fetch next from zviera into @_PL, @_KR;
		end
	close zviera;
	deallocate zviera;


	DELETE FROM  @podiely_usp_pred
	where KR < @zvPlem

	--este raz usporiadaj po zmene typu plemena
	--insert @podiely_usp 
	insert into @podiely_usp (PL, KR, Typ)	
	select PL, KR, Typ from @podiely_usp_pred
	order by KR desc, ID asc

	--delete from @podiely_usp

	----insert into @podiely_usp (PL, KR)
	----values ('H', 100)

	----SET IDENTITY_INSERT @podiely_usp ON

	--insert into @podiely_usp (PL, KR, Typ)
	--select PL, KR, Typ from @temp_podiely_usp order by ID asc

	----SET IDENTITY_INSERT @podiely_usp OFF

	--zaokruhlenie na 1 desatine
	update @podiely_usp
		set KR = ROUND(isnull(KR, 0),1)
	
	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		-- prirad dalsie plemena > 4 k prvemu...
		if @KR_pom < 100
			set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		-- PL5 sa uy nebude uvadzat.. preto NULL
		--select @PL5_P = PL from @podiely_usp where ID = 5		
		set @PL5_P = (select null)
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		if @KR_pom > 100
			set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL1_P = (select @PL2_pom)		
		else
			set @PL1_P = (select @PL1_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR1_P = (select @KR2_pom)		
		else
			set @KR1_P = (select @KR1_pom)
			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @PL2_P = (select @PL1_pom)		
		else
			set @PL2_P = (select @PL2_pom)			
		if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
			set @KR2_P = (select @KR1_pom)		
		else
			set @KR2_P = (select @KR2_pom)
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		if @KR_pom > 100
			set @KR2_P = (select 100 - @KR1_P)
		if @KR_pom < 100	
		begin
			set @zvys =  (select 100 - @KR_pom)
			if @PL1_P != 'X'
				set @KR1_P = (select @KR1_P + @zvys)
			else
				set @KR2_P = (select @KR2_P + @zvys)				
		end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	

	insert into @table
	select '              ' AS Potomok, 
	@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5,	
	@USCISLO_M AS Matka,

			@PL1_M + '-' + CONVERT(varchar, cast(ISNULL(@KR1_M, 0) as float)) + ' ' +
	ISNULL(@PL2_M + '-' + CONVERT(varchar, cast(ISNULL(@KR2_M, 0) as float)) + ' ','') +
	ISNULL(@PL3_M + '-' + CONVERT(varchar, cast(ISNULL(@KR3_M, 0) as float)) + ' ','') +
	ISNULL(@PL4_M + '-' + CONVERT(varchar, cast(ISNULL(@KR4_M, 0) as float)) + ' ','') +
	ISNULL(@PL5_M, '')
	 AS SKUPINA_M,
	 'ok' as Stav

	return;
END


--select * from  C_aktual_plem_potomok_funkcia ('SK000800996953','SK000485942309','309529011')
--select * from  C_aktual_plem_potomok_funkcia ('SK000372205810','SK000085790028','309529011')

--select * from  C_aktual_plem_potomok_funkcia ('SK000003137953','SK000088878028','309529011')

		--create table CP_PlemenoTyp
		--(
		--	PL varchar(2),
		--	typ int	-- 00 - kombinovana, 01 - mliekove, 02 - masove
		--)

		--INSERT INTO CP_PlemenoTyp
		--VALUES 
		--('S', 0), ('MB', 0), ('P', 0), ('B', 0), ('SD', 0), ('T', 0), ('G', 0), 
		--('F', 1), ('H', 1), ('M', 1), ('N', 1), ('R', 1), ('A', 1), ('D', 1), ('J', 1), 
		--('BB', 2), ('AA', 2), ('BA', 2), ('GL', 2), ('HE', 2), ('HL', 2), ('CH', 2), 
		--('L', 2), ('PI', 2), ('SB', 2), ('SM', 2), ('SV', 2), ('AR', 2), ('BR', 2), 
		--('BS', 2), ('CI', 2), ('GA', 2), ('MA', 2), ('SG', 2), ('SH', 2), ('SL', 2), 
		--('WG', 2), ('ZB', 2), ('U', 2), ('X', 3);
go

CREATE procedure [dbo].[Roc_MLHD_19]
	@chov varchar(9),
	@datumOd date,
	@datumDo date
	

as	
begin
delete from Roc_MLHD_Tab_19A where @chov = KRAJ + OKRES + PODNIK + CHOV and rok = DATEPART(year, @datumOd)
----declare 
----@chov varchar(10),
----@datumOd date,
----@datumDo date

----set @chov = 'SR'
----set @datumOd ='2017-01-01'
----set @datumDo ='2017-12-14' 


declare @zvaz varchar(30) = (select filter from dbo.CR_LaktacneZostavy_Opr
								where datumDO= @datumDo 
									and DatumOd= @datumOd
									and substring(Filter,1,13) = @chov + ',ChZ')
declare @plem varchar(1) = (select case when SUBSTRING(@zvaz,14,1)=1 then 'S'
									when SUBSTRING(@zvaz,14,1)=2 then 'P'
									when SUBSTRING(@zvaz,14,1)=3 then 'H'
									when SUBSTRING(@zvaz,14,1)=5 then 'B' end )

declare @plemTyp varchar(6) = (select case when SUBSTRING(@zvaz,14,1)=1 then 'SLst'
									when SUBSTRING(@zvaz,14,1)=2 then 'Pin'
									when SUBSTRING(@zvaz,14,1)=3 then 'Hol'
									when SUBSTRING(@zvaz,14,1)=5 then 'Brau' end )

insert into Roc_MLHD_Tab_19A
  ( por, KRAJ,OKRES,PODNIK,CHOV,stpec_1,stpec_2,stpec_3,stpec_4,stpec_5,stpec_6,stpec_7
      ,stpec_8,stpec_9,stpec_10,stpec_11,stpec_12,stpec_13,stpec_14Mesiac,stpec_14Den,stpec_15,stpec_16,stpec_17,stpec_18
      ,stpec_19,stpec_20,stpec_21,stpec_22,stpec_23,stpec_24,stpec_25,stpec_26,stpec_27,stpec_28,stpec_29,rok,Plem_typ)
	  
select  '2' as por
		,SUBSTRING(@chov,1,1) as kraj
		,SUBSTRING(@chov,2,2) as okres
		,SUBSTRING(@chov,4,3) as podnik
		,SUBSTRING(@chov,7,3) as chov
		,h.SPVYKON as stpec_1--SPVYKON,
		,(CASE WHEN h.CHARCHOV = '0' THEN 'O'
			WHEN h.CHARCHOV = '1' THEN 'S'
			WHEN h.CHARCHOV = '2' THEN 'P'
			WHEN h.CHARCHOV = '3' THEN 'H'
			WHEN h.CHARCHOV = '4' THEN 'M'
			WHEN h.CHARCHOV = '5' THEN 'B'
			END) AS stpec_2--CHARCHOV_kod,
		--ChCh.NAZOV as CHARCHOV,
		,(case when h.VYROBL = '1' then 'H'
				when h.VYROBL = '2' then 'N'
				else '' end) as stpec_3--VYROBL, 
		,h.CHARUS as stpec_4--CHARUS
		,@plem as stpec_5
		,ch.NAZOV as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1, 0) as stpec_8
		,round(z.MliekNorL1, 0) as stpec_9
		,round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1, 0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1, 0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2, 0) as stpec_16
		,round(z.MliekNorL2, 0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2, 0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2, 0) as stpec_21
		,round(z.MedziobdL2, 0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk, 0) as stpec_24
		,round(z.MliekNorCelk, 0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk, 0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk, 0) as stpec_29 
		,datepart (year, @datumOd) as rok
		,@plemTyp as Plem_typ

	 from /*dbo.CR_LaktacneZostavy*/ dbo.CR_LaktacneZostavy_Opr as z
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @chov
		left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
		left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
		left outer join NM_CHOVMAS as ch on ch.kraj+ch.okres+ch.podnik+ch.chov= @chov
				where datumDO= @datumDo 
					and DatumOd= @datumOd
					and @zvaz = Filter
					and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
union 
	select '1' as por
		,SUBSTRING(@chov,1,1) as kraj
		,SUBSTRING(@chov,2,2) as okres
		,SUBSTRING(@chov,4,3) as podnik
		,SUBSTRING(@chov,7,3) as chov
		,h.SPVYKON as stpec_1--SPVYKON,
		,(CASE WHEN h.CHARCHOV = '0' THEN 'O'
					WHEN h.CHARCHOV = '1' THEN 'S'
					WHEN h.CHARCHOV = '2' THEN 'P'
					WHEN h.CHARCHOV = '3' THEN 'H'
					WHEN h.CHARCHOV = '4' THEN 'M'
					WHEN h.CHARCHOV = '5' THEN 'B'
					END) AS stpec_2--CHARCHOV_kod,
				--ChCh.NAZOV as CHARCHOV,
		,(case when h.VYROBL = '1' then 'H'
				when h.VYROBL = '2' then 'N'
				else '' end) as stpec_3--VYROBL, 
		,h.CHARUS as stpec_4--CHARUS
		,@plem as stpec_5
		,'Vyhovujúce štatútu / všetky' as stpec_6
		,z.PocLakN1 as stpec_7
		,round(z.LakdniNL1, 0) as stpec_8
		,round(z.MliekNorL1, 0) as stpec_9
		, round((z.TukNorL1*100)/MliekNorL1,2) as stpec_10
		,round(z.TukNorL1, 0) as stpec_11
		,round((z.BielkNorL1*100)/MliekNorL1,2) as stpec_12
		,round(z.BielkNorL1, 0) as stpec_13
		,(select val from string2table (z.MedziobdL1,'/') where seq = 1) as stpec_14Den
		,(select val from string2table (z.MedziobdL1,'/') where seq = 2) as stpec_14Mesiac
		,z.PocLakN2 as stpec_15
		,round(z.LakDniNL2, 0) as stpec_16
		,round(z.MliekNorL2, 0) as stpec_17
		,round((z.TukNorL2*100)/z.MliekNorL2,2) as stpec_18
		,round(z.TukNorL2, 0) as stpec_19
		,round((z.BielkNorL2*100)/z.MliekNorL2,2) as stpec_20
		,round(z.BielkNorL2, 0) as stpec_21
		,round(z.MedziobdL2, 0) as stpec_22
		,z.PocLakNcelk as stpec_23
		,round(z.LakDniNCelk, 0) as stpec_24
		,round(z.MliekNorCelk, 0) as stpec_25
		,round((z.TukNorCelk*100)/z.MliekNorCelk,2) as stpec_26
		,round(z.TukNorCelk, 0) as stpec_27
		,round((z.BielkNorCelk*100)/z.MliekNorCelk,2) as stpec_28
		,round(z.BielkNorCelk, 0) as stpec_29
		,datepart (year, @datumOd) as rok
		,@plemTyp as Plem_typ
	 from /*dbo.CR_LaktacneZostavy_rocenka */ dbo.CR_LaktacneZostavy_Opr as z
		left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @chov
		left outer join NC_VyrObl as vo on vo.KOD = h.VYROBL
		left outer join NC_CharChov as ChCh on ChCh.KOD = h.CHARCHOV and ChCh.DRUHHZ = h.TYPZV
		where @plem = PlemTyp 
				and datumOd = @datumOd 
				and datumDo = @datumDo 
				and oznacenie=@chov
				


end
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 18.05.2012
-- Description:	Prepocitanie potrebnych udajov a ich aktualizacia pri urcovani maximalnej laktacie
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_max_lakt_krave] 
	@cislokravy varchar(14)
AS
BEGIN	
	declare @PORLAK varchar(2) 
	declare @ZMENA varchar(2) 
	declare @MLIEKNOR [decimal](8,2) 
	declare @TUKNOR [decimal](6,2) 
	declare @BIELKNOR [decimal](6,2) 
	declare @LAKTOZAN [decimal](6,2) 
	declare @MAXLAK varchar(1) 
	
	declare @counter int
	declare @rowcount int    
	
	declare @PorlakMax int
	declare @MliekoMax [decimal](8,2)
	declare @TukMax [decimal](6,2) 
	declare @BielMax [decimal](6,2)
	declare @LaktozaMax [decimal](6,2)
	declare @TkBlMax [decimal](6,2)
	declare @TkBlNor [decimal](6,2)
	declare @PocNorLak int
	declare @SMl [decimal](8,2), @SMlPoc [decimal](8,2), @STk [decimal](8,2), @STkPer [decimal](8,2), @STkPoc [decimal](8,2), @SBl [decimal](8,2), @SBlPer [decimal](8,2), @SBlPoc [decimal](8,2), @SLa [decimal](8,2), 
			@SLaPer [decimal](8,2), @SLaPoc [decimal](8,2)

	declare @PovMaxPor int

	-- zmazanie docasnej tabulky PLIS.dbo.krava_laktacie ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'krava_laktacie') drop table PLIS.dbo.krava_laktacie

	-- vyber laktacii z CM_Laktacie k danej krave 
	select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.krava_laktacie from PLIS.dbo.CM_Laktacie where CISKRAVY = @cislokravy

	set @rowcount = (select count(*) from PLIS.dbo.krava_laktacie)
	set @counter = 1

	set @PorlakMax = 0
	set @PocNorLak = 0
	set @PovMaxPor = 100
	set @MliekoMax = 0
	set @TukMax = 0
	set @BielMax = 0
	set @TkBlMax = 0
	set @LaktozaMax = 0
	set @SMl = 0
	set @SMlPoc = 0
	set @STk = 0
	set @STkPer = 0
	set @STkPoc = 0
	set @SBl = 0
	set @SBlPer = 0
	set @SBlPoc = 0
	set @SLa = 0
	set @SLaPer = 0
	set @SLaPoc = 0
	 	
	-- cyklus cez vsetky riadky tabulky PLIS.dbo.krava_laktacie
	while @counter <= @rowcount
	begin
		-- naplnenie premennych z tabulky PLIS.dbo.krava_laktacie
		select 
			@PORLAK = PORLAK, @ZMENA = ZMENA, @MLIEKNOR = MLIEKNOR, @TUKNOR = TUKNOR, @BIELKNOR = BIELKNOR, @LAKTOZAN = LAKTOZAN,
			@MAXLAK = MAXLAK	
		from  PLIS.dbo.krava_laktacie
		where rowid = @counter
		
		if @MAXLAK = '1'
			set @PovMaxPor = @PORLAK
		
		if @ZMENA = '30' or @ZMENA = '40'
		begin
			set @TkBlNor = @TUKNOR + @BIELKNOR
			set @PocNorLak = @PocNorLak + 1
			if  @TkBlNor > @TkBlMax
			-- vypocet max. laktacie
			begin
				set @PorlakMax = @PORLAK
				set @MliekoMax = @MLIEKNOR
				set @TukMax = @TUKNOR
				set @BielMax = @BIELKNOR
				set @TkBlMax = @TkBlNor
				set @LaktozaMax = @LAKTOZAN
			end
			
			-- vypocet priem. laktacie
			set @SMl = @SMl + @MLIEKNOR
			set @SMlPoc = @SMlPoc + 1
			if @TUKNOR > 0 
			begin
				set @STk = @STk + @TUKNOR
				set @STkPer = @STkPer + (@TUKNOR/nullif(@MLIEKNOR, 0))*100
				set @STkPoc = @STkPoc + 1
			end
			if @BIELKNOR > 0
			begin
				set @SBl = @SBl + @BIELKNOR
				set @SBlPer = @SBlPer + (@BIELKNOR/nullif(@MLIEKNOR, 0))*100
				set @SBlPoc = @SBlPoc + 1
			end
			if @LAKTOZAN > 0
			begin
				set @SLa = @SLa + @LAKTOZAN
				set @SLaPer = @SLaPer + (@LAKTOZAN/nullif(@MLIEKNOR, 0))*100
				set @SLaPoc = @SLaPoc + 1
			end
		end
		set @counter = @counter + 1			
	end
	
	-- samotny update kravy v CM_Krava
	update CM_Krava set
		PORLAKMAX = @PorlakMax,
		MLIEKOMAX = convert(int, @MliekoMax),
		TUKMAX = convert(int, @TukMax),
		BIELMAX = convert(int, @BielMax),
		LAKTOZAMAX = convert(int, @LaktozaMax),
		POCVSETLAK = @rowcount,
		POCNORLAK = @PocNorLak,
		MLIEKOPR = convert(int, @SMl / nullif(@SMlPoc, 0)),
		TUKPRKG = convert(int, @STk / nullif(@STkPoc, 0)),
		TUKPRPER = convert(decimal(5,2), @STkPer / nullif(@STkPoc, 0)),
		BIELPRKG = convert(int, @SBl / nullif(@SBlPoc, 0)),
		BIELPRPER = convert(decimal(5,2), @SBlPer / nullif(@SBlPoc, 0)),
		LAKTPRKG = convert(int, @SLa / nullif(@SLaPoc, 0)),
		LAKTPRPER = convert(decimal(5,2), @SLaPer / nullif(@SLaPoc, 0))
		where CISKRAVY = @cislokravy 
	
	-- nastavenie max. laktacie
	if @PovMaxPor != @PorlakMax
	begin
		update CM_Laktacie set
			MAXLAK = '0'
			where CISKRAVY = @cislokravy and PORLAK = @PovMaxPor
		
		update CM_Laktacie set
			MAXLAK = '1'
			where CISKRAVY = @cislokravy and PORLAK = @PorlakMax
	end
	
	-- zmazanie docasnej tabulky PLIS.dbo.krava_laktacie ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'krava_laktacie') drop table PLIS.dbo.krava_laktacie	
END
go



 CREATE procedure [dbo].[Rocenka_MPHD_19_Okres]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

	select  --o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, ch.NAZOV as Chov_nazov, pk.OBEC as Sidlo, 
			o.NAZOV as Okres_nazov, substring(p.KrOk,1,1) as Kraj,
			p.KrOk, p.Podnik, p.Chov, p.Priem_st_krav, p.Kravy_Z, p.Kravy_V, p.od_prvostok_B, p.od_krav_B, p.od_prvostok_J, p.od_krav_J,
			p.m1_J, p.m2_J, p.m3_J, p.m4_J, p.m5_J, p.m6_J, p.m7_J, p.m8_J, p.m9_J, p.m10_J, p.m11_J, p.m12_J,
			p.m1_B, p.m2_B, p.m3_B, p.m4_B, p.m5_B, p.m6_B, p.m7_B, p.m8_B, p.m9_B, p.m10_B, p.m11_B, p.m12_B,
			p.m1_JB, p.m2_JB, p.m3_JB, p.m4_JB, p.m5_JB, p.m6_JB, p.m7_JB, p.m8_JB,	p.m9_JB,	p.m10_JB,	p.m11_JB,	p.m12_JB, p.rok


	
	from Roc_MPHD_Tab_19 as p
		   left join  NC_OKRES as o  on p.KrOk = o.kraj + o.okres 
	where LEN(p.KrOk) = 3 
			and p.podnik = '' 
			and DATEPART(YEAR, @datumOd) = p.rok

	

	end
 
go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 15.12.2016
-- Description:	vypocet podielu krvi plemien H a R
-- =============================================
CREATE FUNCTION [dbo].[HRPodielKrvi] 
(
	@PL1 varchar(2) NULL,
	@KR1 float NULL,
	@PL2 varchar(2) NULL,
	@KR2 float NULL,
	@PL3 varchar(2) NULL,
	@KR3 float NULL,
	@PL4 varchar(2) NULL,
	@KR4 float NULL,
	@PL5 varchar(2) NULL
)
RETURNS int
AS
BEGIN
	
	declare @krv numeric (5,1) = 0
	if (@PL1 not in ('H', 'R'))
		set @krv = isnull(@kr2, 0)
	if (@PL2 not in ('H', 'R'))
		set @krv = @krv + isnull(@kr3, 0)
	if (@PL3 not in ('H', 'R'))
		set @krv = @krv + isnull(@kr4, 0)
	if (@PL4 not in ('H', 'R'))
		set @krv = @krv + isnull(@kr4, 0)

	-- Return the result of the function
	RETURN @krv * 10

END
go

-------------------------------------

CREATE PROCEDURE [dbo].[CR_KUHD_mesacne_HH]
		@chov VARCHAR(9) ,
		@rok INT ,
		@mesiac INT,
		@dekada INT

AS

BEGIN


DECLARE @datum DATE
DECLARE @datum2 DATE
DECLARE @end DATE


--SET @chov = '807565014'
--SET @rok = 2016
--SET @mesiac = 4
--SET @dekada = 9



	SELECT @datum = CASE @dekada
	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	END

	SET @datum2  = DATEADD(MONTH,-2,@datum) -- minus 2 mesiace do konca
	SET @end  = EOMONTH(@datum) -- koniec dekady

	PRINT 'Zaciatok dekady:	' + CONVERT(VARCHAR,@datum);
	PRINT 'Koniec dekady:		' + CONVERT(VARCHAR,@end);
	PRINT '------------------------------------------';


	
	DECLARE @avg12 FLOAT, @smer12 FLOAT, @pocet12 INT
	DECLARE @avg100 FLOAT, @smer100 FLOAT, @pocet100 INT
	DECLARE @avg200 FLOAT, @smer200 FLOAT, @pocet200 INT
	
	------------------------------------------------------------
	
	SELECT ko.CISKRAVY, ko.DATKONTR, ko.CISCHOVU,ko.MLIEKPR, ko.PERCTUKU, ko.PERCBIELK,na.LAKTDNI LD, na.LAKDNIN LDN, na.TUKNOR, na.BIELKNOR
		
	INTO #kontroly FROM dbo.CM_Kontroly ko

	LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
	LEFT JOIN dbo.CM_Naplak na ON (na.CISKRAVY = ko.CISKRAVY)
	
	WHERE (ko.DATKONTR BETWEEN @datum AND @end)  AND ko.CISCHOVU = @chov AND kr.DOVVYR IS NULL AND na.ZMENA = 11

	SELECT ko.CISKRAVY, COUNT(ko.CISKRAVY) AS pocet, MAX(ko.PORPREBLAK) AS porlakt
	INTO #temp
	FROM dbo.CM_Kontroly ko
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = ko.CISKRAVY)
	WHERE ko.CISCHOVU = @chov AND kr.DOVVYR IS NULL AND n.ZMENA = 11
	GROUP BY ko.CISKRAVY ORDER BY ko.CISKRAVY ASC

	--SELECT * FROM #kontroly

	SELECT @smer12 = ROUND(STDEV(k.MLIEKPR),3), @avg12 = ROUND(AVG(k.MLIEKPR),3), @pocet12 = COUNT(k.CISKRAVY) FROM #kontroly k
			LEFT JOIN #temp t ON (k.CISKRAVY = t.CISKRAVY)
			WHERE t.pocet < 3

	SELECT @smer100 = ROUND(STDEV(k.TUKNOR),3), @avg100 = ROUND(AVG(k.TUKNOR),3), @pocet100 = COUNT(k.CISKRAVY) FROM #kontroly k
			LEFT JOIN #temp t ON (k.CISKRAVY = t.CISKRAVY) WHERE k.LDN =100
	
	SELECT @smer200 = ROUND(STDEV(k.TUKNOR),3), @avg200 = ROUND(AVG(k.TUKNOR),3), @pocet200 = COUNT(k.CISKRAVY) FROM #kontroly k
			LEFT JOIN #temp t ON (k.CISKRAVY = t.CISKRAVY) WHERE k.LDN = 200


	PRINT '12K	:	AVG:	' + CONVERT(VARCHAR, @avg12) + '	SO:	' + CONVERT(VARCHAR, @smer12) + '	kusov:	' + CONVERT(VARCHAR, @pocet12)
	PRINT '100	:	AVG:	' + CONVERT(VARCHAR, @avg100) + '	SO:	' + CONVERT(VARCHAR, @smer100) + '	kusov:	' + CONVERT(VARCHAR, @pocet100)
	PRINT '200	:	AVG:	' + CONVERT(VARCHAR, @avg200) + '		SO:	' + CONVERT(VARCHAR, @smer200) + '	kusov:	' + CONVERT(VARCHAR, @pocet200)
	PRINT '------------------------------------------';
	
	
	------------------------------------------------------------

	DECLARE @HH TABLE 
		(
			ciskravy VARCHAR(14),
			hodnota VARCHAR(3),
			MTB FLOAT,
			so FLOAT,
			priemer FLOAT,
			laktacia INT,
			pocet INT
		)



BEGIN
	DECLARE @counter INT
	DECLARE @ciskravy VARCHAR(14)
	
    SET @counter = 0;
    DECLARE sh_cursor CURSOR
    FOR

	SELECT ko.CISKRAVY FROM dbo.CM_Kontroly ko 
		LEFT JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = ko.CISKRAVY)
		LEFT JOIN dbo.CM_Naplak na ON (na.CISKRAVY = ko.CISKRAVY)
		WHERE (ko.DATKONTR BETWEEN @datum AND @end)  AND ko.CISCHOVU = @chov AND kr.DOVVYR IS NULL AND na.ZMENA = 11

    OPEN sh_cursor
    FETCH NEXT FROM sh_cursor INTO @ciskravy

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					

				-- vypocet parametrov pre kravu
				DECLARE @pockon INT, @porlakt INT, @laktdnin INT, @laktdni INT, @mlieknor FLOAT, @tuk FLOAT, @bielkovina FLOAT
                DECLARE @SO12LX FLOAT,  @SO100LX FLOAT, @SO200LX FLOAT

				SET @SO12LX = @smer12 * 1.25
				SET @SO100LX = @smer100 * 1.25
				SET @SO200LX = @smer200 * 1.25


                SELECT @pockon = COUNT(CISKRAVY) FROM dbo.CM_Kontroly WHERE CISKRAVY = @ciskravy
				SELECT @porlakt = n.PORLAK, @laktdnin = n.LAKDNIN, @laktdni = k.LAKTDNI, @mlieknor = k.MLIEKPR, @tuk = n.TUKNOR, @bielkovina = n.BIELKNOR
					FROM dbo.CM_Kontroly k
					LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
				WHERE k.CISKRAVY = @ciskravy

				
				PRINT 'Cislo kravy na spracovanie: ' + CONVERT(VARCHAR, @ciskravy) + ' - ' + CONVERT(VARCHAR, @counter)
				PRINT 'Pocet kontrol pre kravu	 :	' + CONVERT(VARCHAR, @pockon)
				PRINT 'Aktualna laktacia		 :			' + CONVERT(VARCHAR, @porlakt)
				PRINT 'Laktacne dni normovane	 :	' + CONVERT(VARCHAR, @laktdnin)  
				PRINT 'Laktacne dni normovane	:	' + CONVERT(VARCHAR, @laktdni)
				PRINT 'Mlieko normovane			:' + CONVERT(VARCHAR, @mlieknor)
				PRINT 'Tuk						:' + CONVERT(VARCHAR, @tuk)
				PRINT 'Bielkovina				:' + CONVERT(VARCHAR, @bielkovina)

				PRINT ''
				PRINT ''
				
				
					
                    

					IF CONVERT(INT,@pockon) < 3 AND CONVERT(INT, @porlakt ) = 1
					
							BEGIN
								PRINT '1 a 2 kontrola a 1 laktacia bez koeficientu'
									IF @mlieknor < (@avg12 - @smer12)
										BEGIN
											INSERT INTO @HH ( ciskravy, hodnota, MTB, so, priemer, laktacia, pocet )
											VALUES (@ciskravy, 'K01', @mlieknor, @smer12, @avg12, @porlakt, @pocet12)
									END
							END
                    
					
					IF CONVERT(INT,@pockon) < 3 AND CONVERT(INT, @porlakt ) > 1
					
							BEGIN
								PRINT '1 a 2 kontrola a vyssia laktacia s koeficientom'
									IF @mlieknor < (@avg12 - (@smer12*1.25))
										BEGIN
											INSERT INTO @HH ( ciskravy, hodnota, MTB, so, priemer, laktacia, pocet )
											VALUES (@ciskravy, 'K01', @mlieknor, @smer12, @avg12, @porlakt, @pocet12)
									END
							END
							
					
					        
					
					IF CONVERT(INT, @porlakt) = 1 AND CONVERT(INT,@laktdnin) = 100 AND CONVERT(INT,@laktdni) < 115
							BEGIN 
								PRINT 'Krava na 1 laktacii, 100 dnoch, nepridava sa koeficient'
									IF (@tuk+@bielkovina) < (@avg100 - @smer100)
										BEGIN
											INSERT INTO @HH ( ciskravy, hodnota, MTB, so, priemer, laktacia, pocet )
											VALUES (@ciskravy, '100', @tuk, @smer100, @avg100, @porlakt, @pocet100)
									END
							END

					
					IF CONVERT(INT, @porlakt) > 1 AND CONVERT(INT,@laktdnin) = 100 AND CONVERT(INT,@laktdni) < 115
						BEGIN 
							
								PRINT 'Krava na 2 a vyssej laktacii, 100 dnoch, pridame koeficient'
									IF (@tuk) < (@avg100 - @SO100LX)
										BEGIN
											INSERT INTO @HH ( ciskravy, hodnota, MTB, so, priemer, laktacia, pocet )
											VALUES (@ciskravy, '100', @tuk, @SO100LX, @avg100, @porlakt, @pocet100)
									END
							END
	
					
					IF CONVERT(INT,@laktdnin) = 200
							
							BEGIN
							PRINT 'Krava na 200 dnoch, pridame koeficient'
									IF (@tuk+@bielkovina) < (@avg200 - @SO200LX)
										BEGIN
											INSERT INTO @HH ( ciskravy, hodnota, MTB, so, priemer, laktacia, pocet )
											VALUES (@ciskravy, '200', @tuk+@bielkovina, @SO200LX, @avg200, @porlakt, @pocet200)
									END
							END

										
					
					

				PRINT '---------------------------------------------------------------------------------------'
						


	
            FETCH NEXT FROM sh_cursor INTO @ciskravy

        END

END

CLOSE sh_cursor
DEALLOCATE sh_cursor


SELECT * FROM @HH ORDER BY hodnota

		IF EXISTS (
				SELECT count(*) as pocet FROM CR_KUHD_MesUzavCH_Hran WHERE CHOVATEL=@chov AND mesiac = @mesiac AND rok = @rok AND dekada = @dekada)
					BEGIN
						DELETE FROM CR_KUHD_MesUzavCH_Hran WHERE CHOVATEL=@chov AND mesiac = @mesiac AND rok = @rok AND dekada = @dekada
					END



			INSERT INTO dbo.CR_KUHD_MesUzavCH_Hran (chovatel, ciskravy, HRAN12KO, dekada, mesiac, rok)
				SELECT @chov, ciskravy, '1', @dekada, @mesiac, @rok FROM @HH WHERE hodnota IS NOT NULL AND hodnota = 'K01'

			INSERT INTO dbo.CR_KUHD_MesUzavCH_Hran (chovatel, ciskravy, HRANTB100, dekada, mesiac, rok)
				SELECT @chov, ciskravy, '1', @dekada, @mesiac, @rok FROM @HH WHERE hodnota IS NOT NULL AND hodnota = '100'

			INSERT INTO dbo.CR_KUHD_MesUzavCH_Hran (chovatel, ciskravy, HRANTB200, dekada, mesiac, rok)
				SELECT @chov, ciskravy, '1', @dekada, @mesiac, @rok FROM @HH WHERE hodnota IS NOT NULL AND hodnota = '200'


	
DROP TABLE #kontroly
DROP TABLE #temp

END
go

-- =============================================
-- Author:		Vladko Durech
-- Create date: 18.07.2017
-- Description:	Uzavierka Reprodukcnych ukazovatelov stad v KU
-- =============================================
CREATE FUNCTION [dbo].[SP_KZ_UzavierkaReprodStadKU]
(	
	@chov [varchar](9),
	@rokev1 [varchar](4),
	@rokev2 [varchar](2)
)
RETURNS  @table TABLE
(
					zijucich int,
					prip int,
					predcasVyrad int,
					jalovych int,
					obahnenych int,
					pocetNarodJahniat int,
					percOplod decimal(5,1),
					percPlod decimal(5,1),
					percPlodNaObahBahn decimal(5,1)
)
AS
BEGIN
	-- Add the SELECT statement with parameter references here
	--SELECT 0

	
	--declare @chov varchar(9) = '801506226'--'609546056'--'810706368'--'707580305'-- '402587135'--'508512023'--'703008369'--'713505096'--'508512023'--'704521081'--'810706368'--'508512023'-- '505700007'--'703008369'--'505549530'--'505803356'--'309481002'--'502512090'--'704521081'--'810706368'--'708517053'
	--declare @rokev1 varchar(9) = '2015'
	--declare @rokev2 varchar(9) = '16'
	declare @rokev varchar(9) = @rokev1 + '' + @rokev2

	--declare @datObah as date = 
	


	--select datvyr, dovod, datnar,   * from SM_BAHNICA b
	--where krokr+podnik+stado = '708517053'--'505700007' 
	--and ((dovod = '0' and datvyr is null)  
	--or datvyr >= '2017-01-01')
	--and datzar < '2017-01-01'

	--order by b.DATNAR

	declare @rok int = cast(@rokev1 as int) + 1

	declare @pocZijucich int = (
									select count(*) from SM_BAHNICA b

									where krokr+podnik+stado = @chov 
									and year(datnar) <> @rok
									and ((dovod = '0' and datvyr is null)
										or year(datvyr) = @rok)
									)


	declare @datObah as date = ( select MAX(DATOBAH)  from SM_KonZap
														where krokr+podnik+stado = @chov 
														and rokev1+rokev2 = @rokev and DATOBAH is not null
								)
	declare @datpRIP as date = ( select min(DATPRIP)  from SM_KonZap
														where krokr+podnik+stado = @chov 
													and rokev1+rokev2 = @rokev and DATPRIP is not null
								)
	--PRINT @datObah	--PRINT @datpRIP

	if ( (select count(*)  from SM_KonZap where krokr+podnik+stado = @chov 
						and rokev1+rokev2 = @rokev and DATOBAH is not null) = 0)
	begin
		insert @table
		select null, null, null, null, null, null, null, null, null
		return
	end


	declare @prCasVyr1 int
	declare @prCasVyr2 int
	declare @pocJal1 int
	declare @pocJal2 int
	declare @pocJal0 int
	declare @prip int
	declare @pocPrip int
	declare @obah int

	--> pocJal1 = pocJal0 - pocet1
	--> prCasVyr2 = pocet1

	--	prCasVyr1 (28)

	set @prCasVyr1 = (select count(*)
						from  SM_BAHNICA b
						where  KROKR + PODNIK + STADO  = @chov
							and bahcis not in	(	select bahcis from SM_KonZap k		
													where k.KROKR + k.PODNIK + k.STADO = @chov and k.ROKEV1 + k.ROKEV2 = @rokev ) 
							and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah
							and b.DATZAR <= @datObah and year(b.datnar) < @rokev1)
	--	PocJal2 (6)

	set @pocJal2 = (select count(*)
					from  SM_BAHNICA b	
					where  KROKR + PODNIK + STADO  = @chov
										and bahcis not in	(	select bahcis from SM_KonZap k		
																where k.KROKR + k.PODNIK + k.STADO = @chov and k.ROKEV1 + k.ROKEV2 = @rokev ) 
					and b.DATZAR <= @datObah
					and year(b.datnar) < @rokev1
					and ((b.DatVyr is null and b.DOVOD = 0 ) or (b.DATVYR  is not null and b.DATVYR > @datObah)) )

	--	pocJal0
	set @pocJal0 = (select count(distinct k.bahcis)
						from SM_KonZap k		
							--left outer join SM_KonZapBaran b on b.id = k.ID_KonZapBaran
							left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
							where  k.KROKR + k.PODNIK + k.STADO  = @chov
								and k.ROKEV1 + k.ROKEV2 = @rokev	
								--and datobah is not null and datprip is not null
								and p.id is null )

	--	pocet1		--> pocJal1 = pocJal0 - pocet1
					--> prCasVyr2 = pocet1
				
	set @prCasVyr2 = ( select count(distinct k.bahcis)
							from SM_KonZap k		
								left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
								left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
								left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
								where k.KROKR + k.PODNIK + k.STADO  = @chov
									and k.ROKEV1 + k.ROKEV2 = @rokev	
									and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah						
									and datobah is null and p.id is null
									and ((kzb.BPUC <> '     ' or k.DATOBAH is not null or k.DATPRIP is not null or p.id is not null) )--or (k.bahcis is not null) )
					)

	set @pocJal1 = @pocJal0 - @prCasVyr2

	--PRINT '@prCasVyr1'
	--PRINT @prCasVyr1
	--PRINT '@prCasVyr2'
	--PRINT @prCasVyr2
	--PRINT '@pocJal0'
	--PRINT @pocJal0
	--PRINT '@pocJal1'
	--PRINT @pocJal1
	--PRINT '@pocJal2'
	--PRINT @pocJal2
	--PRINT @pocJal1

	 set @prip = (select count(distinct k.id)
							from SM_KonZap k		
								--left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
								--left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
								--left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
								where k.KROKR + k.PODNIK + k.STADO  = @chov
									and k.ROKEV1 + k.ROKEV2 = @rokev
									and (k.ID_KonZapBaran is not null or datobah is not null or DATPRIP is not null)
									--and k.id in (select ID_KonZap from SM_KonZapPotomok where ID_KonZap = k.ID)
									--and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah				
								)
	--PRINT '@@prip'
	--print @prip
	 set @obah = (select count(distinct k.bahcis)
							from SM_KonZap k		
								--left outer join SM_BAHNICA b on b.BAHCIS = k.BAHCIS
								--left outer join SM_KonZapPotomok p on p.ID_KonZap = k.ID
								--left outer join SM_KonZapBaran kzb on kzb.id = k.ID_KonZapBaran
								where k.KROKR + k.PODNIK + k.STADO  = @chov
									and k.ROKEV1 + k.ROKEV2 = @rokev
									and DATOBAH is not null	
									--and b.DATVYR >= @datpRIP and b.DATVYR <= @datObah				
								)
	set @pocPrip = @prip + @prCasVyr1 + @pocJal2

	--print 'pripustenych:'
	--print @pocPrip
	--print 'predc. vyr:'
	--print @prCasVyr1 + @prCasVyr2
	--print 'jalovych:'
	--print @pocJal1 + @pocJal2
	--print 'obahnenych:'
	--print @obah

	declare @pocetNarodJahniat int
	declare @percOplod decimal(5,1)
	declare @percPlod decimal(5,1)
	declare @percPlodNaObahBahn decimal(5,1)


	set @pocetNarodJahniat  = ( select count(*) from SM_KonZapPotomok kzp
									left outer join SM_KonZap kz on kz.ID = kzp.ID_KonZap
														where krokr+podnik+stado = @chov 
														and rokev1+rokev2 = @rokev and DATOBAH is not null
							)

	--set @percOplod = ( (@obah * 1.00)/ (@pocPrip - (@pocJal1 + @pocJal2))) * 100.00
	set @percOplod = ( (@obah * 1.00)/ (@pocPrip - (@prCasVyr1 + @prCasVyr2))) * 100.00

	set @percPlod = ( (@pocetNarodJahniat * 1.00) /  (@pocPrip - (@prCasVyr1 + @prCasVyr2)) ) * 100.00

	set @percPlodNaObahBahn = ( (@pocetNarodJahniat * 1.00) /  @obah ) * 100.00

	--print 'pocetNarodJahniat:'
	--print @pocetNarodJahniat

	--print 'percOplod:'
	--print @percOplod

	--print 'percPlod:'
	--print @percPlod

	--print 'percPlodNaObahBahn:'
	--print @percPlodNaObahBahn

	insert @table
	select @pocZijucich as 'zijucich', @pocPrip as 'prip', @prCasVyr1 + @prCasVyr2 as 'predcasVyrad', @pocJal1 + @pocJal2 as 'jalovych', @obah as 'obahnenych',
	@pocetNarodJahniat as 'pocetNarodJahniat', @percOplod as 'percOplod', @percPlod as 'percPlod', @percPlodNaObahBahn as 'percPlodNaObahBahn'
	
	return;

END
/*
	select * from [SP_KZ_UzavierkaReprodStadKU] ('708517053', '2016', '17')
	select * from [SP_KZ_UzavierkaReprodStadKU] ('708517051', '2016', '17')
*/
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje za plemena pre rocenku - tabulka: VYSLEDKY KONTROLY UZITKOVOSTI PODLA PLEMEIEN
-- =============================================
CREATE procedure [dbo].[CR_ZostavaLaktacie_TypPlem]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [typPlem] [varchar] (5) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null,
	  [EkoChov][varchar](1) NULL
	  
      ) --ON [PRIMARY]
	  
declare @kravy table                                 
	(
		[CHOV] [varchar](9) NULL,
		[Region] [varchar](2) NULL,
		[typPlem] [varchar] (5) Null,
		ciskravy varchar(14),
		PORPREBLAK int
		--[PocZapojL1] int NULL
	)


if (@region is null) 
begin
	if (len(@chov) = 1)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')
					--THEN 'OSTA' else PLEM end end)as Plem, 					
				(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
					else case when TYPPLEM in('95', '99') then '99'
					else case when TYPPLEM in('84','88','94','98') then '98'
					else case when TYPPLEM in('73','77','83','87','93','97') then '97'
					else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
					else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
					else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
					else case when PL2='P' and KR2=50 then '54'
					else case when (PL2='H' or PL2='R') and KR2=50 then '96'
					else case when PL2='B' and KR2=50 then '23'
					end end end end end end end end end end) as typPlem,
				
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
			 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
			---- left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and lakt.kraj = @chov	
					
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					--and (PLEM=@plem or @plem is null)
					and MLIEKCEL <>''

	end
	else if (len(@chov) = 3)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') and PLEM is not null 
					--THEN 'OSTA' else PLEM end end)as Plem, 
					(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
						else case when TYPPLEM in('95', '99') then '99'
						else case when TYPPLEM in('84','88','94','98') then '98'
						else case when TYPPLEM in('73','77','83','87','93','97') then '97'
						else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
						else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
						else case when PL2='P' and KR2=50 then '54'
						else case when (PL2='H' or PL2='R') and KR2=50 then '96'
						else case when PL2='B' and KR2=50 then '23'
						end end end end end end end end end end) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					and lakt.okres = @chov	
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 6)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 
				 --(case when PLEM is null then 'BEZ' 
					--else case when  PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')  --and PLEM is not null
					--THEN 'ZVYS' else PLEM end end)as Plem, 
					(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
						else case when TYPPLEM in('95', '99') then '99'
						else case when TYPPLEM in('84','88','94','98') then '98'
						else case when TYPPLEM in('73','77','83','87','93','97') then '97'
						else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
						else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
						else case when PL2='P' and KR2=50 then '54'
						else case when (PL2='H' or PL2='R') and KR2=50 then '96'
						else case when PL2='B' and KR2=50 then '23'
						end end end end end end end end end end) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					
					and lakt.podnik = @chov	
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else if (len(@chov) = 9)
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
					--THEN 'OSTA' else PLEM end end)as Plem, 
					(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
						else case when TYPPLEM in('95', '99') then '99'
						else case when TYPPLEM in('84','88','94','98') then '98'
						else case when TYPPLEM in('73','77','83','87','93','97') then '97'
						else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
						else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
						else case when PL2='P' and KR2=50 then '54'
						else case when (PL2='H' or PL2='R') and KR2=50 then '96'
						else case when PL2='B' and KR2=50 then '23'
						end end end end end end end end end end) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					
					and lakt.chovatel = @chov
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''
	end
	else 
	begin
		insert into @Laktacie
			 SELECT
 				 PORLAK, Lakt.CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= lakt.okres),--Region,
				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
				 
				 --(case when PLEM is null then 'BEZ' 
					--else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ')-- and PLEM is not null 
					--THEN 'OSTA' else PLEM end end)as Plem,  
					(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
						else case when TYPPLEM in('95', '99') then '99'
						else case when TYPPLEM in('84','88','94','98') then '98'
						else case when TYPPLEM in('73','77','83','87','93','97') then '97'
						else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
						else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
						else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
						else case when PL2='P' and KR2=50 then '54'
						else case when (PL2='H' or PL2='R') and KR2=50 then '96'
						else case when PL2='B' and KR2=50 then '23'
						end end end end end end end end end end) as typPlem,
				Lakt.DOVVYR, Lakt.DATVYR,
				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
							else null end)as EkoChov
			 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
				 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

				where 
					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
					
					--and (PLEM=@plem or @plem is null)
					and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
					and eko.ZRUS is null and eko.TYPZV='1'
					and MLIEKCEL <>''

	end
	
	insert @kravy
	select 
		@chov as CHOV, 
		@region as Region,
		--(Select distinct case when pl.TYPS is null then 'BEZ' 
		--			else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
		--			THEN 'OSTA' else pl.TYPS end end), 
			(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
				else case when TYPPLEM in('95', '99') then '99'
				else case when TYPPLEM in('84','88','94','98') then '98'
				else case when TYPPLEM in('73','77','83','87','93','97') then '97'
				else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
				else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
				else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
				else case when PL2='P' and KR2=50 then '54'
				else case when (PL2='H' or PL2='R') and KR2=50 then '96'
				else case when PL2='B' and KR2=50 then '23'
				end end end end end end end end end end) as typPlem,
		
		k.ciskravy,
		PORPREBLAK
	from CM_Krava as k
		--inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
											
		where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
				and	k.DOVVYR is null and k.PRIZNAKKU='1' 
				--and (pl.TYPS=@plem or @plem is null)	


 end
 ELSE
 begin 
	insert into @Laktacie			
	 SELECT
 		 PORLAK, Lakt.CHOVATEL,Region,
		 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		
		  --(case when PLEM is null then 'BEZ' 
				--	else case when PLEM not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and PLEM is not null 
				--	THEN 'OSTA' else PLEM end end)as Plem,  
		(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
			else case when TYPPLEM in('95', '99') then '99'
			else case when TYPPLEM in('84','88','94','98') then '98'
			else case when TYPPLEM in('73','77','83','87','93','97') then '97'
			else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
			else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
			else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
			else case when PL2='P' and KR2=50 then '54'
			else case when (PL2='H' or PL2='R') and KR2=50 then '96'
			else case when PL2='B' and KR2=50 then '23'
			end end end end end end end end end end) as typPlem,
		
		 Lakt.DOVVYR, Lakt.DATVYR,
		 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
					else null end)as EkoChov
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
	 left outer join CM_Krava as k on k.CISKRAVY = Lakt.CISKRAVY
	 left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(Lakt.CHOVATEL, 1, 3))
	 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= Lakt.CHOVATEL)

		where 
		(reg.REGION=@region or @region is null) 
		and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		--and (PLEM=@plem or @plem is null)
		and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
		and eko.ZRUS is null and eko.TYPZV='1'
		and MLIEKCEL <>''


	insert @kravy
		select 
			@chov as CHOV, 
			@region as Region,
			
			--(Select distinct case when pl.TYPS is null then 'BEZ' 
			--		else case when pl.TYPS not in ('B0','B1','B2','H0','H1','H2','H3','MN','P0','P1','P2','PL','RM','S0','S1','S2', 'BEZ') --and pl.TYPS is not null 
			--		THEN 'OSTA' else pl.TYPS end end), 
			(case when TYPPLEM in('11','13','14','51','53','54','21','22','23') then TYPPLEM  
				else case when TYPPLEM in('95', '99') then '99'
				else case when TYPPLEM in('84','88','94','98') then '98'
				else case when TYPPLEM in('73','77','83','87','93','97') then '97'
				else case when TYPPLEM in('92','96','76','82','86','62','66','72') then '96'
				else case when ((PL2 not in ('S','MB','P','H','R','B')) or (PL2 in ('S','MB','P','H','R','B') and KR2<50.0) or (PL2 is null and PL1 is not null)) then '0000'
				else case when (PL2='S' or PL2='MB') and KR2=50 then '14'
				else case when PL2='P' and KR2=50 then '54'
				else case when (PL2='H' or PL2='R') and KR2=50 then '96'
				else case when PL2='B' and KR2=50 then '23'
				end end end end end end end end end end) as typPlem,

			k.ciskravy,
			PORPREBLAK
		from CM_Krava as k
			inner join CC_PlemTyp as pl on(case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
										
			left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
			where (k.CHOVATEL in (select distinct CHOVATEL from @Laktacie)) 
					and (reg.REGION=@region or @region is null)
					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
					--and (pl.TYPS=@plem or @plem is null)	
end


--select * from @kravy

--select * from @Laktacie

declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL1] int NULL
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojL1
	--from CM_Krava as k
	from @kravy as k

	 where 	k.PORPREBLAK ='1'
 	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem
		
----select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojL2] int NULL
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojL2
	from @kravy as k
	

	where k.PORPREBLAK >='2'
 	
	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem 

----select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocZapojLCelk] int NULL
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		typPlem as typPlem, 
		count(k.ciskravy) as PocZapojLCelk

	from @kravy as k

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,typPlem

----select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV1] [float](4) NULL
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV1

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakV2] [float](4) NULL
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakV2

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakVCelk] [float](4) NULL
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	typPlem as typPlem, 
	count(*) as PocLakVCelk

	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem

	--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL
	)

	Insert into @lakt1
	(CHOV,Region,typPlem, PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1 )
	
select 
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovL1

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	--[PocLakV2] [float](4) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as VyrZdravDovCelk

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1 
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2 
	
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk 
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @NormLakCelk order by CHOV

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62' ) then 1 else 0 end) as ZmenaCelk2L1 

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2 

	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,l.typPlem
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[typPlem] [varchar] (5) null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	l.typPlem as typPlem,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2Celk 

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end, l.typPlem
	
	--select * from @ZmenaCelk order by CHOV


insert dbo.CR_LaktacneZostavy
	(
	Oznacenie,DatumOd,DatumDo,Filter, datumGenerovania, Region,PlemTyp, EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +','+l.typPlem as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	
	l.typPlem as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.typPlem=l.typPlem)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.typPlem=l.typPlem)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.typPlem=l.typPlem)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.typPlem=l.typPlem)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.typPlem=l.typPlem)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.typPlem=l.typPlem)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.typPlem=l.typPlem)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null)and L2.typPlem=l.typPlem)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null)and lCelk.typPlem=l.typPlem)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null)and NL1.typPlem=l.typPlem)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null)and NL2.typPlem=l.typPlem)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null)and NlCelk.typPlem=l.typPlem)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null)and ZL1.typPlem=l.typPlem)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null)and ZL2.typPlem=l.typPlem)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null)and ZCelk.typPlem=l.typPlem)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) and (l.PLEM=@plem or @plem is null)
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) and (PlemTyp=@plem or @plem is null)
	

		end
go




-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 24.05.2012
-- Description:	Prepocitanie triedy uzitkovosti
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_prep_tr_uzit_krave] 
	@cislokravy varchar(14)
AS
BEGIN	
	declare @PORLAK varchar(2) 
	declare @ZMENA varchar(2) 
	declare @MLIEKNOR [decimal](7,2) 
	declare @TUKNOR [decimal](6,2) 
	declare @BIELKNOR [decimal](6,2)  
	declare @LAKTOZAN [decimal](6,2)  
	declare @INDLAK [decimal](6,2)  
	declare @MAXLAK varchar(1) 
	
	declare @counter int
	declare @rowcount int    
	
	declare @PorlakMax int

	declare @TkBlMax [decimal](6,2) 
	declare @TkBlNor [decimal](6,2) 

	declare @IndexMax [decimal](6,2) 
	declare @SMl [decimal](7,2), @SMlPoc [decimal](7,2), @STk [decimal](7,2), @STkPer [decimal](7,2), @STkPoc [decimal](7,2), @SBl [decimal](7,2), @SBlPer [decimal](7,2), @SBlPoc [decimal](7,2), @SLa [decimal](7,2), 
			@SLaPer [decimal](7,2), @SLaPoc [decimal](7,2), @SIndex [decimal](7,2), @SIndPoc [decimal](7,2)
	declare @TrUz varchar(2)

	declare @TYPPLEM varchar(3)
	declare @PL1 [varchar](2)
	declare @KR1 [decimal](5,2) 
	declare @PL2 [varchar](2)
	declare @KR2 [decimal](5,2) 
	declare @PL3 [varchar](2)
	declare @KR3 [decimal](5,2) 
	declare @PL4 [varchar](2)
	declare @KR4 [decimal](5,2) 
	declare @PL5 [varchar](2)
	declare @TRUZIT varchar(3)
	declare @PLEMENNA varchar(1)
	declare @OTECLIN varchar(3)
	declare @OTECREG int
	declare @MATKA varchar(15)
		
	declare @KrvS [decimal](6,2) 
	declare @KrvP [decimal](6,2) 
	declare @KrvC [decimal](6,2) 
	declare @TukPrPer [decimal](6,2) 
	declare @BielPrPer [decimal](6,2) 
	declare @IndexPr [decimal](6,2) 
	declare @PovMaxPor int

	-- napitanie dat z CM_Krava
	select @PLEMENNA = PLEMENNA, @TYPPLEM = TYPPLEM, @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4,
		   @PL5 = PL5, @TRUZIT = TRUZIT, @OTECLIN = OTECLIN, @OTECREG = OTECREG, @MATKA = MA
		   from CM_Krava where CISKRAVY = @cislokravy
	
	-- vypocet @KrvS
	set @KrvS = 0
	if @PL1 = 'MB' or @PL1 = 'S'
		set @KrvS = @KrvS + @KR1
	if @PL2 = 'MB' or @PL2 = 'S'
		set @KrvS = @KrvS + @KR2
	if @PL3 = 'MB' or @PL3 = 'S'
		set @KrvS = @KrvS + @KR3
	if @PL4 = 'MB' or @PL4 = 'S'
		set @KrvS = @KrvS + @KR4
	if @PL5 = 'MB' or @PL5 = 'S'
		set @KrvS = @KrvS + (100 - (@KR1 + @KR2 + @KR3 + @KR4))								

	-- vypocet @KrvP
	set @KrvP = 0
	if @PL1 = 'P'
		set @KrvP = @KrvP + @KR1
	if @PL2 = 'P'
		set @KrvP = @KrvP + @KR2
	if @PL3 = 'P'
		set @KrvP = @KrvP + @KR3
	if @PL4 = 'P'
		set @KrvP = @KrvP + @KR4
	if @PL5 = 'P'
		set @KrvP = @KrvP + (100 - (@KR1 + @KR2 + @KR3 + @KR4))	
	
	-- zmazanie docasnej tabulky PLIS.dbo.krava_laktacie ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'krava_laktacie') drop table PLIS.dbo.krava_laktacie

	-- vyber laktacii z CM_Laktacie k danej krave 
	select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.krava_laktacie from PLIS.dbo.CM_Laktacie where CISKRAVY = @cislokravy

	set @rowcount = (select count(*) from PLIS.dbo.krava_laktacie)
	set @counter = 1

	set @PorlakMax = 0

	set @TkBlMax = 0
	set @IndexMax = 0
	set @SMl = 0
	set @SMlPoc = 0
	set @STk = 0
	set @STkPer = 0
	set @STkPoc = 0
	set @SBl = 0
	set @SBlPer = 0
	set @SBlPoc = 0
	set @SLa = 0
	set @SLaPer = 0
	set @SLaPoc = 0
	set @SIndex = 0
	set @SIndPoc = 0
	 	
	-- cyklus cez vsetky riadky tabulky PLIS.dbo.krava_laktacie
	while @counter <= @rowcount
	begin
		-- naplnenie premennych z tabulky PLIS.dbo.krava_laktacie
		select 
			@PORLAK = PORLAK, @ZMENA = ZMENA, @MLIEKNOR = MLIEKNOR, @TUKNOR = TUKNOR, @BIELKNOR = BIELKNOR,
			@INDLAK = INDLAK	
		from  PLIS.dbo.krava_laktacie
		where rowid = @counter
		
		if @ZMENA = '30' or @ZMENA = '40'
		begin
			set @TkBlNor = @TUKNOR + @BIELKNOR
			if  @TkBlNor > @TkBlMax
			begin
				set @TkBlMax = @TkBlNor
				set @PorlakMax = @PORLAK
			end
			
			if @INDLAK > @IndexMax
				set @IndexMax = @INDLAK
			if @TUKNOR > 0 
			begin
				set @STkPer = @STkPer + (@TUKNOR / nullif(@MLIEKNOR, 0)) * 100
				set @STkPoc = @STkPoc + 1
			end
			if @BIELKNOR > 0
			begin
				set @SBlPer = @SBlPer + (@BIELKNOR / nullif(@MLIEKNOR, 0)) * 100
				set @SBlPoc = @SBlPoc + 1
			end
			if @INDLAK > 0
			begin
				set @SIndex = @SIndex + @INDLAK
				set @SIndPoc = @SIndPoc + 1
			end
		end
		set @counter = @counter + 1			
	end
	
	-- zistenie triedy uzitkovosti
	set @TukPrPer = @STkPer / nullif(@STkPoc, 0)
	set @BielPrPer = @SBlPer / nullif(@SBlPoc, 0)
	if @SIndPoc > 1
		set @IndexPr = @SIndex / nullif(@SIndPoc, 0)
	else
		set @IndexPr = 0
	
	if @PorlakMax = 1
	-- 1. laktacie
	begin
		set @TrUz = (select case 
								when @TYPPLEM = '14' and @KrvS = 50 then
									case 
										when @TkBlMax >= 315 then 'ER'
										when @TkBlMax >= 275 then 'E'
										when @TkBlMax >= 230 then 'I'
										when @TkBlMax >= 200 then 'II'
										else NULL
									end
								when @TYPPLEM > '00' and @TYPPLEM < '15' and @KrvS > 50 then
									case 
										when @TkBlMax >= 300 then 'ER'
										when @TkBlMax >= 250 then 'E'
										when @TkBlMax >= 215 then 'I'
										when @TkBlMax >= 185 then 'II'
										else NULL
									end
								when @TYPPLEM = '54' and @KrvP = 50 then
									case 
										when @TkBlMax >= 255 then 'ER'
										when @TkBlMax >= 230 then 'E'
										when @TkBlMax >= 200 then 'I'
										when @TkBlMax >= 175 then 'II'
										else NULL
									end
								when @TYPPLEM > '50' and @TYPPLEM < '55' and @KrvP > 50 then
									case 
										when @TkBlMax >= 240 then 'ER'
										when @TkBlMax >= 215 then 'E'
										when @TkBlMax >= 185 then 'I'
										when @TkBlMax >= 160 then 'II'
										else NULL
									end		
								when (@TYPPLEM > '14' and @TYPPLEM < '29') or @TYPPLEM > '54' then
									case 
										when @TkBlMax >= 350 then 'ER'
										when @TkBlMax >= 310 then 'E'
										when @TkBlMax >= 270 then 'I'
										when @TkBlMax >= 230 then 'II'
										else NULL
									end	
							end)
	end 
	else 
	-- 2. a dalsie laktacie
	begin
		set @TrUz = (select case 
								when @TYPPLEM = '14' and @KrvS = 50 then
									case 
										when @TkBlMax >= 370 then 'ER'
										when @TkBlMax >= 320 then 'E'
										when @TkBlMax >= 275 then 'I'
										when @TkBlMax >= 240 then 'II'
										else NULL
									end
								when @TYPPLEM > '00' and @TYPPLEM < '15' and @KrvS > 50 then
									case 
										when @TkBlMax >= 355 then 'ER'
										when @TkBlMax >= 305 then 'E'
										when @TkBlMax >= 260 then 'I'
										when @TkBlMax >= 225 then 'II'
										else NULL
									end
								when @TYPPLEM = '54' and @KrvP = 50 then
									case 
										when @TkBlMax >= 315 then 'ER'
										when @TkBlMax >= 275 then 'E'
										when @TkBlMax >= 240 then 'I'
										when @TkBlMax >= 200 then 'II'
										else NULL
									end
								when @TYPPLEM > '50' and @TYPPLEM < '55' and @KrvP > 50 then
									case 
										when @TkBlMax >= 300 then 'ER'
										when @TkBlMax >= 260 then 'E'
										when @TkBlMax >= 225 then 'I'
										when @TkBlMax >= 185 then 'II'
										else NULL
									end		
								when (@TYPPLEM > '14' and @TYPPLEM < '29') or @TYPPLEM > '54' then
									case 
										when @TkBlMax >= 415 then 'ER'
										when @TkBlMax >= 365 then 'E'
										when @TkBlMax >= 320 then 'I'
										when @TkBlMax >= 280 then 'II'
										else NULL
									end	
							end)
	end
	set @TrUz = (select case 
						when (@TukPrPer + @BielPrPer) < 6.7 then NULL
						when (@TukPrPer + @BielPrPer) > 6.6 and (@TukPrPer + @BielPrPer) < 7 then
							case 
								when @TrUz = 'ER' then 'E' 
								when @TrUz = 'E' then 'I' 
								when @TrUz = 'I' then 'II'
								when @TrUz = 'II' then NULL
							end
						end)
	
	-- korekcia indexom laktacie
	if @IndexMax >= 120 or @IndexPr >= 110
		set @TrUz = (select case 
								when @TrUz = 'E' then 'ER' 
								when @TrUz = 'I' then 'E'
								when @TrUz = 'II' then 'I'
							end)
	if @IndexMax < 80 or @IndexPr < 110
		set @TrUz = (select case 
								when @TrUz = 'ER' then 'E' 
								when @TrUz = 'E' then 'I' 
								when @TrUz = 'I' then 'II'
								when @TrUz = 'II' then NULL
							end)
	
	-- oprava triedy uzitkovosti len v pripade ak je lepsia
	if (@TrUz = 'ER' and (@TRUZIT = 'E' or @TRUZIT = 'I' or @TRUZIT = 'II' or @TRUZIT is NULL)) or
		(@TrUz = 'E' and (@TRUZIT = 'I' or @TRUZIT = 'II' or @TRUZIT is NULL)) or
		(@TrUz = 'I' and (@TRUZIT = 'II' or @TRUZIT is NULL)) or
		(@TrUz = 'II' and @TRUZIT is NULL)
		set @TRUZIT = @TrUz
	
	-- vypocet @KrvC
	set @KrvC = 0
	if @PL1 = 'H' or @PL1 = 'N'
		set @KrvC = @KrvC + @KR1
	if @PL2 = 'H' or @PL2 = 'N'
		set @KrvC = @KrvC + @KR2
	if @PL3 = 'H' or @PL3 = 'N'
		set @KrvC = @KrvC + @KR3
	if @PL4 = 'H' or @PL4 = 'N'
		set @KrvC = @KrvC + @KR4
	if @PL5 = 'H' or @PL5 = 'N'
		set @KrvC = @KrvC + (100 - (@KR1 + @KR2 + @KR3 + @KR4))	
		
	-- zistenie, ci je krava plemenna
	if @OTECLIN is not NULL and @OTECREG is not NULL and @MATKA is not NULL
	begin
		if @TRUZIT = 'ER' or @TRUZIT = 'E'
		begin
			if @KrvC > 49
			begin
				if (@TukPrPer + @BielPrPer) >= 7
					set @PLEMENNA = '1'
			end else
			begin
				if (@TukPrPer + @BielPrPer) >= 7.2
					set @PLEMENNA = '1'
			end
		end
 	end
		
	-- samotny update kravy v CM_Krava
	update CM_Krava set
		PLEMENNA = @PLEMENNA,
		TRUZIT = @TRUZIT
		where CISKRAVY = @cislokravy 
	
	-- zmazanie docasnej tabulky PLIS.dbo.krava_laktacie ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'krava_laktacie') drop table PLIS.dbo.krava_laktacie	
END


go



 CREATE procedure [dbo].[Rocenka_MPHD_19_Kraj]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

	select  --o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, ch.NAZOV as Chov_nazov, pk.OBEC as Sidlo, 
			k.NAZOV as Kraj_nazov,
			p.KrOk as Kraj, p.Podnik, p.Chov, p.Priem_st_krav, p.Kravy_Z, p.Kravy_V, p.od_prvostok_B, p.od_krav_B, p.od_prvostok_J, p.od_krav_J,
			p.m1_J, p.m2_J, p.m3_J, p.m4_J, p.m5_J, p.m6_J, p.m7_J, p.m8_J, p.m9_J, p.m10_J, p.m11_J, p.m12_J,
			p.m1_B, p.m2_B, p.m3_B, p.m4_B, p.m5_B, p.m6_B, p.m7_B, p.m8_B, p.m9_B, p.m10_B, p.m11_B, p.m12_B,
			p.m1_JB, p.m2_JB, p.m3_JB, p.m4_JB, p.m5_JB, p.m6_JB, p.m7_JB, p.m8_JB,	p.m9_JB,	p.m10_JB,	p.m11_JB,	p.m12_JB, p.rok


	
	from Roc_MPHD_Tab_19 as p
		  left join  NC_KRAJ as k  on p.KrOk = k.KRAJ
	where LEN(p.KrOk) = 1 and p.podnik = '' and DATEPART(YEAR, @datumOd) = p.rok
	end
 
go

-- =============================================
-- Author:		Vladimir Durech, pssr
-- Create date: 2017-08-23
-- Description:	Procedura vrati spojene chovy, pripadne ho doplni do zoznamu
-- =============================================
create PROCEDURE  dbo.S_KonZap_SpojChov
	@chov varchar(9)
AS
BEGIN
		
	if (select count(*) from SM_SpojChov where chov = @chov and spchov = chov) = 0
	begin
		insert into SM_SpojChov
		values (@chov, @chov)
	end

	select spchov from SM_SpojChov where chov = @chov and spchov <> chov

END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_21AA]
    @rok varchar(4)
as
begin

	
	select distinct Kraj, Okres

	from dbo.Roc_MLHD_Tab_21A as z
	--left outer join plis.dbo.Roc_MLHD_Tab_22 t on z.Okres=t.Okres 
	where z.rok = @rok 
	order by kraj, okres
	end
go


-- =============================================
---- procedura pre report
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch bez ohladu na to, ci boli spracovane v danom mesiaci, alebo nie.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- Tabulka sa naplni procedurou CR_TMHD_pripustenie_stvrtrok
---- M. Holesova
-- =============================================

CREATE procedure [dbo].[CR_TMHD_pripust_1/4]
    
	@rok int,
	@mesiac int,
	@CHOV varchar(9) = ''
	
as
begin

	select * from (
	select np.NAZOV as podnik, nch.NAZOV as NazovChov,cistelata,
		p.chov, mesiac, rok     
		,hd.TECHUSMD as tech_ustaj
		,us.POPIS as tech_ustaj_popis,
		--datnar,
		--datvaz1,
		--hmot1,
		--datvaz2,
		--hmot2,
		--dp,
		--DatPrip1,
		--DatPrip2,
		--datPr,
		--datPlanPripust
		--ZnakPripus,
		(case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) >= 
							dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) <
							dateadd ( month,4,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102))
						then mesiacPripus
				else case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) < 
						dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then '99'
				else case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) > 
						dateadd ( month,4,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then ''
				end end end ) as mesiacPripus,

		(case when rokPripus <> 0 and convert(date,convert(varchar,isnull(rokPripus, '0000'))+'-'+convert(varchar,isnull(mesiacPripus, '00'))+'-01',102) < 
						dateadd ( month,1,convert(date,convert(varchar,isnull(@rok, '0000'))+'-'+convert(varchar,isnull(@mesiac , '00'))+'-01',102)) 
						then '99999'
						else rokPripus end ) as rokPripus,
		generovane
		
     
	   FROM CR_TMHD_pripustenie_stvrtR as p

		left join plis.dbo.NM_PODNIK as NP
			on NP.KRAJ+ NP.OKRES + NP.PODNIK = substring(p.chov,1,6)
		left join NM_CHOVMAS as NCH
			on NCH.KRAJ + NCH.OKRES + NCH.PODNIK + NCH.CHOV = p.chov
		left join NM_HDDETAIL as hd 
			on hd.KRAJ + hd.OKRES + hd.PODNIK + hd.CHOV = p.chov
		left join CC_TechUstMD as us 
			on us.KOD = hd.TECHUSMD
	  
	   where (p.chov like @CHOV+'%' or @CHOV is null)	and p.rok = @rok and p.mesiac =@mesiac and rokPripus <> 0  and mesiacPripus <> 0
	   --order by mesiacPripus, cistelata
	) t
	where (t.chov like @CHOV+'%' or @CHOV is null)	and t.rok = @rok and t.mesiac =@mesiac and t.rokPripus <> 0  and t.mesiacPripus <> 0
	order by chov,mesiacPripus, cistelata
	   end
go




-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 18.10.2011
-- Description:	RP - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_RP_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
    -- premenne pre vetu zo vstupu 
	declare @IDR bigint	    
	declare @V_CISKRAVY varchar(14) 
	declare @V_DATKONTR date 
	declare @V_ZNKONTR varchar(1) 
	declare @V_DENDOBA varchar(1) 
	declare @V_INTERVAL varchar(1) 
	declare @V_CHOV varchar(9) 
	declare @V_SKUPINA varchar(2) 
	declare @V_PREPOCET bit = NULL
	declare @V_MLIEKO [decimal](7,2)  
	declare @V_PERCTUKU [decimal](6,2)  
	declare @V_PERCBIELK [decimal](6,2)  
	declare	@V_PERCLAKTOZ [decimal](6,2)  
	declare	@V_BUNECELEM [decimal](8,2)  
	declare @RPO bit		

    -- premenne pre vetu do kontrol (PLIS.dbo.CM_Kontroly) + premenne dat z vety kontrol (pre update) 
	declare	@K_CISKRAVY varchar (14),		@K__CISKRAVY varchar (14)
	declare	@K_DATKONTR date,				@K__DATKONTR date
	declare	@K_ZNKONTR varchar (1),			@K__ZNKONTR varchar (1)
	declare	@K_DENDOBA varchar (1),			@K__DENDOBA varchar (1)
	declare	@K_INTERVAL varchar (1),		@K__INTERVAL varchar (1)
	declare	@K_CISCHOVU varchar (9),		@K__CISCHOVU varchar (9)
	declare	@K_SKUPINA varchar (2),			@K__SKUPINA varchar (2)
	declare	@K_PREPOCET bit,				@K__PREPOCET bit
	declare	@K_MLIEKO [decimal](7,2),		@K__MLIEKO [decimal](7,2) 
	declare	@K_MLIEKPR [decimal](7,1),		@K__MLIEKPR [decimal](7,1) 
	declare	@K_PRT [decimal](6,2),			@K__PRT [decimal](6,2) 
	declare	@K_PERCTUKU [decimal](6,2),		@K__PERCTUKU [decimal](6,2) 
	declare	@K_PERCBIELK [decimal](6,2),	@K__PERCBIELK [decimal](6,2) 
	declare	@K_PERCLAKTOZ [decimal](6,2),	@K__PERCLAKTOZ [decimal](6,2) 
	declare	@K_BUNECELEM [decimal](8,2),	@K__BUNECELEM [decimal](8,2) 
	declare	@K_LAKTDNI [decimal](6,2),		@K__LAKTDNI [decimal](6,2) 
	declare	@K_PORPREBLAK varchar (2),		@K__PORPREBLAK varchar (2)
	declare	@K_FREKVENCIA varchar (1),		@K__FREKVENCIA varchar (1)
	--declare	@K_PLATNOST bit,			@K__PLATNOST bit

    -- premenne pre vetu do naplaku (PLIS.dbo.CM_Naplak)
	declare	@N_CISKRAVY varchar(14)
	declare	@N_CHOVATEL varchar(9) 
	declare	@N_PORLAK varchar(2) 
	declare	@N_DATOTEL date 
	declare	@N_CHOVOTEL varchar(9) 
	declare	@N_CHOVLAKT varchar(9) 
	declare	@N_PRIEBPOROD varchar(1) 
	declare	@N_POHLAVIE varchar(2) 
	declare	@N_ZMENA varchar(2) 
	declare	@N_DATUKONL date 
	declare	@N_DATUKNORL date 
	declare	@N_MEDZIOBD [decimal](6,2)  
	declare	@N_HMOTKR [decimal](6,2)  
	declare	@N_LAKTDNI [decimal](6,2)  
	declare	@N_LAKDNIN [decimal](6,2)  
	declare	@N_MLIEKCEL [decimal](7,2)  
	declare	@N_MLIEKNOR [decimal](7,2)  
	declare	@N_TUKCEL [decimal](6,2)  
	declare	@N_TUKNOR [decimal](6,2)  
	declare	@N_BIELKCEL [decimal](6,2)  
	declare	@N_BIELKNOR [decimal](6,2)  
	declare	@N_LAKTOZAC [decimal](6,2)  
	declare	@N_LAKTOZAN [decimal](6,2)  
	declare	@N_INDPER [decimal](6,2)  
	declare	@N_INDLAK [decimal](6,2)  
	declare	@N_CHARUST varchar(1) 
	declare	@N_MAXLAK varchar(1) 
	declare	@N_ZNAK varchar(1) 
	declare	@N_BEZT [int]  
	declare	@N_MLIEKO100 [decimal](7,2)  
	declare	@N_TUK100 [decimal](6,2)  
	declare	@N_BIELK100 [decimal](6,2)  
	declare	@N_LAKT100 [decimal](6,2)  
	declare	@N_MLIEKO200 [decimal](7,2)  
	declare	@N_TUK200 [decimal](6,2)  
	declare	@N_BIELK200 [decimal](6,2)  
    declare @N_LAKT200 [decimal](6,2)  

    -- premenne pre vetu do naplaku (PLIS.dbo.CM_Krava)
	declare @KR_COUNT int
	declare @KR_CHOVATEL varchar(9)
	declare @KR_DOVVYR varchar(2)
	declare @KR_DATVYR date
	declare @KR_DATPOSKONT date
    declare @KR_DATZAPPREP date
    declare @KR_DATVYBPREP date	
    declare @KR_POCVSETLAK int

	declare @counter1 int
	declare @rowcount1 int	
	declare @errorflag bit
	declare @error varchar	
	declare @navrat_hodn [varchar](1)
	declare @opravaKontroly bit	
	declare @NenormalLakt bit
	declare @MaxRowID int
	declare @KonPred date
	declare @KonZa date
	declare @PomMliekPr [decimal](7,2) 
	declare @POROV_DATKONTR date
	declare @POROV_LAKTDNI [decimal](6,2) 
	declare @ERMsg varchar(100)
	
  	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	
	
	print 'C_aktual_RP_aktualizacia '
	
	-- vyber doposial nespracovanych rozborov + oprav (+ hlasenia len mlieka alebo vyradeni...)
	declare db_cursor_rozborprot cursor
	FOR
	SELECT IDR
      ,CISKRAVY
      ,DATKONTR      
      ,nullif(ZNKONTR, '') as ZNKONTR    
      ,DENDOBA      
      ,INTERVAL      
      ,CHOV      
      ,nullif(SKUPINA, '') as SKUPINA
      ,MLIEKO/10   -- v procese parovnia sa pouziva 10-nasobok hodnoty mlieka
      ,TUK
      ,BIELK
      ,LAKT
      ,SOMAT
      ,0 AS RPO
	FROM VstupyPLIS.dbo.CP_HD06_ROZBORPROT_SPAR where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL) --AND LEN(CISKRAVY) = 14
	UNION 
	SELECT IDR
      ,CISKRAVY
      ,convert(date, nullif(DATKONTR, ''), 104) as DATKONTR     
      ,NULL AS ZNKONTR  
      ,DENDOBA
      ,INTERVAL      
      ,CHOV
	  ,NULL AS SKUPINA
      ,convert(decimal(7,2),nullif(replace(MLIEKO, ',', '.'), '')) as MLIEKO
      ,convert(decimal(6,2),nullif(replace(TUK, ',', '.'), '')) as TUK
      ,convert(decimal(6,2),nullif(replace(BIELKOVINA, ',', '.'), '')) as BIELKOVINA
      ,convert(decimal(6,2),nullif(replace(LAKTOZA, ',', '.'), '')) as LAKTOZA
      ,convert(decimal(8,2),nullif(replace(SOMATBUNKY, ',', '.'), '')) as SOMATBUNKY
      ,1 AS RPO
	FROM VstupyPLIS.dbo.CP_HD07_ROZBORPROT_OPR where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
	UNION
	SELECT IDR
      ,CISKRAVY
      ,convert(date, nullif(DATKONTR, ''), 104) as DATKONTR    
      ,nullif(ZNAKVZORKY, '') as ZNAKVZORKY    
      ,DENDOBA      
      ,INTERVAL      
      ,CHOV      
      ,nullif(SKUPINA, '') as SKUPINA
      ,case when ZNAKVZORKY = 'V' then convert(decimal(8,2), case when isnumeric(DOVVYR) = 1 then DOVVYR else '0' end)/10 else MLIEKO end as MLIEKO
      ,NULL AS TUK
      ,NULL AS BIELK
      ,NULL AS LAKT
      ,NULL AS SOMAT
      ,0 AS RPO
	FROM VstupyPLIS.dbo.CP_HD06_ROZBORPROT where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL) --AND LEN(CISKRAVY) = 14
	ORDER BY DATKONTR
	
	OPEN db_cursor_rozborprot

	-- cyklus cez vsetky riadky tabulky VstupyPLIS.dbo.nesprac_presuny
	FETCH NEXT
	FROM db_cursor_rozborprot INTO 			
		 @IDR
		,@V_CISKRAVY
		,@V_DATKONTR
		,@V_ZNKONTR
		,@V_DENDOBA
		,@V_INTERVAL
		,@V_CHOV
		,@V_SKUPINA
		,@V_MLIEKO
		,@V_PERCTUKU
		,@V_PERCBIELK 
		,@V_PERCLAKTOZ
		,@V_BUNECELEM 
	    ,@RPO
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke sparovanych RP nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD06_ROZBORPROT_SPAR set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran rozborprot
   		begin try
		    -- nespracuj kontroly so znakom 'E' a bazenove vzorky
			if (NOT(UPPER(isnull(@V_ZNKONTR, '')) = 'E' OR (LEN(@V_CISKRAVY) > 2 AND LEN(@V_CISKRAVY) < 5)) and
			-- nespracuj prazdne riadky
				not(@V_MLIEKO = 0 and @V_PERCTUKU is null and @V_PERCBIELK is null and @V_PERCLAKTOZ is null and @V_ZNKONTR = '') and
			-- nespracuj hlasenia s prazdnym udajom ao hmotnosti mlieka -- 20160513
				not(@V_MLIEKO = 0 and @V_PERCTUKU is not null))
			begin
				-- vynulovanie premennych
				set @errorflag = (select 0)	
				set @opravaKontroly = 0
				set @KR_COUNT = 0
				set @NenormalLakt = 0
			
				print 'CISKRAVY ' + @V_CISKRAVY

				-- OPRAVA dat zo vstupu -------------------------------
				if (@V_MLIEKO = 0)
					set @V_MLIEKO = null	
				if (@V_PERCTUKU = 0)
					set @V_PERCTUKU = null 
				if (@V_PERCBIELK = 0)
					set @V_PERCBIELK = null 
				if (@V_PERCLAKTOZ = 0)
					set @V_PERCLAKTOZ = null
				if (@V_BUNECELEM = 0)
					set @V_BUNECELEM = null 
				-------------------------------------------------------

				-- nacitanie dat z CM_Naplak
				select @N_CISKRAVY = CISKRAVY,@N_CHOVATEL = CHOVATEL,@N_PORLAK = PORLAK,@N_DATOTEL = DATOTEL,@N_CHOVOTEL = CHOVOTEL,@N_CHOVLAKT = CHOVLAKT,
					   @N_PRIEBPOROD = PRIEBPOROD,@N_POHLAVIE = POHLAVIE,@N_ZMENA = ZMENA,@N_DATUKONL = DATUKONL,@N_DATUKNORL = DATUKNORL,@N_MEDZIOBD = MEDZIOBD,
					   @N_HMOTKR = HMOTKR,@N_LAKTDNI = LAKTDNI,@N_LAKDNIN = LAKDNIN,@N_MLIEKCEL = MLIEKCEL,@N_MLIEKNOR = MLIEKNOR,@N_TUKCEL = TUKCEL,
					   @N_TUKNOR = TUKNOR,@N_BIELKCEL = BIELKCEL,@N_BIELKNOR = BIELKNOR,@N_LAKTOZAC = LAKTOZAC,@N_LAKTOZAN = LAKTOZAN,@N_INDPER = INDPER,
					   @N_INDLAK = INDLAK,@N_CHARUST = CHARUST,@N_MAXLAK = MAXLAK,@N_ZNAK = ZNAK,@N_BEZT = BEZT,@N_MLIEKO100 = MLIEKO100,@N_TUK100 = TUK100,
					   @N_BIELK100 = BIELK100,@N_LAKT100 = LAKT100,@N_MLIEKO200 = MLIEKO200,@N_TUK200 = TUK200,@N_BIELK200 = BIELK200 ,@N_LAKT200 = LAKT200
				from PLIS.dbo.CM_Naplak
				where CISKRAVY = @V_CISKRAVY
			
				-- nacitanie niektorych potrebnych udajov z CM_Krava
				select @KR_COUNT = 1, @KR_CHOVATEL = CHOVATEL, @KR_DOVVYR = DOVVYR, @KR_DATVYR = DATVYR, @KR_DATPOSKONT = DATPOSKONT, 
						@KR_DATZAPPREP = DATZAPPREP, @KR_DATVYBPREP = DATVYBPREP, @KR_POCVSETLAK = POCVSETLAK
				from PLIS.dbo.CM_Krava where (CISKRAVY = @V_CISKRAVY)		
			
				-- nastavenie premennych pre naplnenie zaznamov kontroly
				set @K_CISKRAVY =  		@V_CISKRAVY
				set @K_DATKONTR	=   	@V_DATKONTR
				set @K_ZNKONTR =	   	@V_ZNKONTR 
				set @K_DENDOBA =	   	@V_DENDOBA 
				set @K_INTERVAL	=   	@V_INTERVAL
				set @K_CISCHOVU	=   	@V_CHOV
				set @K_SKUPINA =	   	@V_SKUPINA 
				set @K_PREPOCET	=   	@V_PREPOCET
				set @K_MLIEKO =	   		@V_MLIEKO 
				set @K_MLIEKPR =	   	null
				set @K_PRT =   			CASE WHEN @V_PERCTUKU is NULL THEN 3 ELSE 0 END	-- novy zaznam ma hodnotu PRT nastavenu na 3 alebo 0
				set @K_PERCTUKU	=   	@V_PERCTUKU 
				set @K_PERCBIELK =  	@V_PERCBIELK 
				set @K_PERCLAKTOZ =		@V_PERCLAKTOZ 
				set @K_BUNECELEM =  	@V_BUNECELEM 
				set @K_LAKTDNI =	   	null
				set @K_PORPREBLAK = 	@N_PORLAK
				set @K_FREKVENCIA =	   	'2' -- default hodnota '2'
				--set @K_PLATNOST	=   	1
			
				-- novy rozbor alebo oprava
				if (select COUNT(*) from PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY and DATKONTR = @V_DATKONTR) != 0
					set @opravaKontroly = 1
			
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @V_CHOV)) = 0
				begin
					-- priradenie chyby 04
					exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 4, @RPO
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end else
					if (@navrat_hodn = '1')
					begin
						set @K_CISCHOVU = null
					end
				end			

				-- kontrola: krava nie je v CM_Krava
				if @KR_COUNT = 0
				begin
					-- priradenie chyby 05
					exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 5, @RPO
					if (@navrat_hodn = '2')
						set @errorflag = 1
				end else
				-- kontrola: krava je na uvedenom chove?
				if (@V_CHOV != @KR_CHOVATEL)
				begin
					-- priradenie chyby 19
					exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 19, @RPO
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end else
					if (@navrat_hodn = '1')
					begin
						set @K_CISCHOVU = null
					end
				end			

				-- kontrola: krava je vyradena?
				-- len v pripade, ze ide o znak V, Z
				if (UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z') 
				begin
					if (@KR_DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia))
					begin
						-- priradenie chyby 42
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 42, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1 
						end
					end	
				end
				else 
				begin
					if (@KR_DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia))
					begin
						-- priradenie chyby 62
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 62, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1 
						end
					end			
				end

				-- kontrola: chybny datum kontroly
				if (@V_DATKONTR < @N_DATOTEL) --or (@V_DATKONTR > GETDATE())
				begin
					-- priradenie chyby 50
					exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 50, @RPO
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end else
					if (@navrat_hodn = '1')
					begin
						set @K_DATKONTR = null
					end
				end			
			
			
				if (not(UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z')) or @V_ZNKONTR is null	
				-- nejde o vyradenia a zasusenie	
				begin
					-- seria kontrol vyplyvajucich z poradia vlozenia kontroly
					-- zmazanie docasnej tabulky PLIS.dbo.zotried_kontr ak existuje
					IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zotried_kontr') drop table PLIS.dbo.zotried_kontr

					-- vyber rozborov pre danu kravu a ic zotriedenie podla datumu vzostupne
					select *, ROW_NUMBER() over(order by CISKRAVY) as rowid into PLIS.dbo.zotried_kontr from PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY AND PORPREBLAK = @N_PORLAK order by DATKONTR asc
				
					set @POROV_DATKONTR = (select DATKONTR from PLIS.dbo.zotried_kontr where rowid = 1)
				
					-- zistenie o kolku v poradi kontrolu ide
					if ((select COUNT(*) from PLIS.dbo.zotried_kontr) = 0) or (@POROV_DATKONTR > @V_DATKONTR)
					begin
					-- prva kontrola
						-- kontrola: datum kontroly od otelenia < ako 6 dni
						if (DATEDIFF(DAY, @N_DATOTEL, @V_DATKONTR) < 6)
						begin
							-- priradenie chyby 52
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 52, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_DATKONTR = null
							end
						end	else
					
						-- kontrola: datum kontroly od otelenia > ako 68 dni
						if (DATEDIFF(DAY, @N_DATOTEL, @V_DATKONTR) > 68)
						begin
							-- priradenie chyby 49
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 49, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_DATKONTR = null
							end
							-- nastavi priznak = nenormalna laktacia
							set @NenormalLakt = 1
						end 
					
						-- kontrola: datum kontroly od dalsej kontroly <= ako 34 a >= 26 dni
						if (select COUNT(*) from PLIS.dbo.zotried_kontr) > 0 
						begin
							if not ((DATEDIFF(DAY, @V_DATKONTR, @POROV_DATKONTR) <= 34) and
								(DATEDIFF(DAY, @V_DATKONTR, @POROV_DATKONTR) >= 26))
							begin
								-- priradenie chyby 51
								exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 51, @RPO
								if (@navrat_hodn = '2')
								begin
									set @errorflag = 1
								end else
								if (@navrat_hodn = '1')
								begin
									set @K_DATKONTR = null
								end
							end	
						end		
					end else
					if (select COUNT(*) from PLIS.dbo.zotried_kontr where CISKRAVY = @V_CISKRAVY and DATKONTR > @V_DATKONTR) = 0
					begin
					-- zatial posledna kontrola
						set @MaxRowID = (select MAX(rowid) from PLIS.dbo.zotried_kontr)
						(select @POROV_DATKONTR = DATKONTR, @POROV_LAKTDNI = LAKTDNI from PLIS.dbo.zotried_kontr where rowid = @MaxRowID)
					
						--if not ((DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) <= 34) and
						--	(DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) >= 26))					
						-- do sledovania hranic kontroly boli pridane aj pripadne prepocty kontrol -- 20160524
						if not (((DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) <= 34) and
							(DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) >= 26)) or
							-- aj prepocty
							((DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) <= 68) and
							(DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) >= 51)) or
							((DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) <= 102) and
							(DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) >= 76))) 
						begin
							-- priradenie chyby 51
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 51, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_DATKONTR = null
							end
						
							if @POROV_LAKTDNI <= 305
							-- len do 305 dni					
								if not (DATEDIFF(DAY, @POROV_DATKONTR, @V_DATKONTR) <= 70)				
								begin
									-- priradenie chyby 48
									exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 48, @RPO
									if (@navrat_hodn = '2')
									begin
										set @errorflag = 1
									end else
									if (@navrat_hodn = '1')
									begin
										set @K_DATKONTR = null
									end	
									-- nastavi priznak = nenormalna laktacia
									--set @NenormalLakt = 1					
								end			
						end				
					
					end else
					begin
					-- kontrola medzi existujucimi kontrolami
						set @KonPred = (select MAX(datkontr) from zotried_kontr where datkontr < @V_DATKONTR)
						set @KonZa = (select MIN(datkontr) from zotried_kontr where datkontr > @V_DATKONTR)
					
						if not ((DATEDIFF(DAY, @KonPred, @V_DATKONTR) <= 34) and
							(DATEDIFF(DAY, @KonPred, @V_DATKONTR) >= 26))
						begin
							-- priradenie chyby 51
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 51, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_DATKONTR = null
							end
						end
					
						if not ((DATEDIFF(DAY, @V_DATKONTR, @KonZa) <= 34) and
							(DATEDIFF(DAY, @V_DATKONTR, @KonZa) >= 26))
						begin
							-- priradenie chyby 51
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 51, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_DATKONTR = null
							end
						end			
					end
				
					-- kontrola: Chybná denná doba dojenia
					if (@V_DENDOBA not in (select kluc from PLIS.dbo.CC_DennaDobaKontroly))
					begin
						-- priradenie chyby 53
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 53, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end else
						if (@navrat_hodn = '1')
						begin
							set @K_DENDOBA = null
						end
					end		

					-- kontrola: Chybný interval medzi dojeniami
					if (@V_INTERVAL not in (select distinct INTERVAL from PLIS.dbo.CC_PrepocetMlieka))
					begin
						-- priradenie chyby 54
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 54, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end else
						if (@navrat_hodn = '1')
						begin
							set @K_INTERVAL = null
						end
					end			
				
					-- kontrola: Mlieko mimo hraníc 3.0 - 99.9 kg zmena od 11.9.2018
					set @K_MLIEKPR = @V_MLIEKO * (select PREPKOEF from PLIS.dbo.CC_PrepocetMlieka where DENNADOBA = @V_DENDOBA and INTERVAL = @V_INTERVAL and ((1 < convert(int,@N_PORLAK) and PORADIELAKTACIE = 2) or(1 = convert(int,@N_PORLAK) and PORADIELAKTACIE = 1)))
					if (@K_MLIEKPR < 3 or @K_MLIEKPR > 99.9 or @K_MLIEKPR is NULL)
					begin
						-- priradenie chyby 55
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 55, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end else
						if (@navrat_hodn = '1')
						begin
							set @K_MLIEKO = null
						end
					end	
				
					-- nebol vykonany rozbor na mlieko
					if not (@V_PERCTUKU is NULL and @V_PERCBIELK is NULL and @V_PERCLAKTOZ is NULL)
					begin
						-- kontrola: Tuk mimo hraníc 1.5 - 9.0 % zmena od 11.9.2018
						if (@V_PERCTUKU < 1.5 or @V_PERCTUKU > 9 or @V_PERCTUKU is NULL)
						begin
							-- priradenie chyby 56
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 56, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_PERCTUKU = null
							end
						end	
					
						-- kontrola: Bielkovina mimo hraníc 1.0 - 7.0 % zmena od 11.9.2018
						if (@V_PERCBIELK < 1 or @V_PERCBIELK > 7 or @V_PERCBIELK is NULL)
						begin
							-- priradenie chyby 57
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 57, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_PERCBIELK = null
							end
						end	
					
						-- kontrola: Laktoza mimo hraníc 3.0 - 6.0 %
						if (@V_PERCLAKTOZ < 3 or @V_PERCLAKTOZ > 6 or @V_PERCLAKTOZ is NULL)
						begin
							-- priradenie chyby 58
							exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 58, @RPO
							if (@navrat_hodn = '2')
							begin
								set @errorflag = 1
							end else
							if (@navrat_hodn = '1')
							begin
								set @K_PERCLAKTOZ = NULL
							end
						end		
						
						-- ak je neplatna hodnota tuku alebo bielkoviny alebo laktozy - zneplatni hodnoty tuku, bielkoviny a laktozy						
						if (@K_PERCTUKU is NULL OR @K_PERCBIELK is NULL OR @K_PERCLAKTOZ is NULL)
						begin
							set @K_PERCTUKU = NULL
							set @K_PERCBIELK = null
							set @K_PERCLAKTOZ = NULL
							set @K_PRT = 3 	-- zaznam ma hodnotu PRT nastavenu na 3 
						end										
					end				

					-- kontrola: Zvýšená dojivosť po 305 dňoch > 12kg
					if (DATEDIFF(day, @N_DATOTEL, @V_DATKONTR) > 305)
					begin
						-- prepocitane mlieko z predoslej kontroly	
						set @PomMliekPr =(select MLIEKPR from PLIS.dbo.zotried_kontr where rowid = (select MAX(rowid) from PLIS.dbo.zotried_kontr))
						if @PomMliekPr is not null
							if @K_MLIEKPR - @PomMliekPr > 12
							begin
								-- priradenie chyby 58
								exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 59, @RPO
								if (@navrat_hodn = '2')
								begin
									set @errorflag = 1
								end else
								if (@navrat_hodn = '1')
								begin
									set @K_MLIEKO = NULL
								end
							end	
					end
				
					-- kontrola: Hlasenie mlieka zasusenej krave
					--if @N_ZMENA <= 43 and @N_ZMENA >= 40 and UPPER(@V_ZNKONTR) != 'O'
					if @N_ZMENA <= 43 and @N_ZMENA >= 40 and (UPPER(@V_ZNKONTR) != 'O' or @V_ZNKONTR is null)
					begin
						-- priradenie chyby 60
						exec @navrat_hodn = plis.[dbo].[C_aktual_RP_zapis_chybu] @IDR, 60, @RPO
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end
					end			
				end
		
		------------------------------------------------------------------------------------------------------------------------------------	
		----------------------- 
				-- AKTUALIZACIA	
				if @errorflag = 0 
				-- ak nebola vazna chyba
				begin
			
					if (UPPER(@V_ZNKONTR) != 'V' and UPPER(@V_ZNKONTR) != 'Z') or @V_ZNKONTR is NULL
					-- ak nejde o vyradenie a zasusenie
					begin
						-- KONTROLY

						set @K_LAKTDNI = (select DATEDIFF(day, @N_DATOTEL, @K_DATKONTR))						
						set @K_FREKVENCIA = (select top 1 FREKVENCIA FROM VstupyPLIS.dbo.CP_HD06_ROZBORPROT where CISKRAVY = @V_CISKRAVY and (convert(date, DATKONTR, 104)) = @V_DATKONTR )
					
						-- vlozenie kontroly
						if @opravaKontroly = 0
						begin
							insert plis.dbo.CM_Kontroly (CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,
								   PERCTUKU,PERCBIELK,PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,PLATNOST, SPRACINSERT, SPRACUPDATE, FREKVENCIA)
							values (@K_CISKRAVY,@K_DATKONTR,@K_ZNKONTR,@K_DENDOBA,@K_INTERVAL,@K_CISCHOVU,@K_SKUPINA,0,@K_MLIEKO,@K_MLIEKPR,
									@K_PRT,@K_PERCTUKU,@K_PERCBIELK,@K_PERCLAKTOZ,@K_BUNECELEM,@K_LAKTDNI,@K_PORPREBLAK,1, @IDParChov, @IDParChov,@K_FREKVENCIA)
						end else
						-- oprava kontroly
						begin
							-- default-ne (ak je nova hodnota NULL) hodnoty pre update sa zoberu z povodnej kontroly
							SELECT @K__CISKRAVY = CISKRAVY,
								@K__DATKONTR = DATKONTR,
								@K__ZNKONTR = ZNKONTR,
								@K__DENDOBA = DENDOBA,
								@K__INTERVAL = INTERVAL,
								@K__CISCHOVU = CISCHOVU,
								@K__SKUPINA = SKUPINA,
								@K__PREPOCET = PREPOCET,
								@K__MLIEKO = MLIEKO,
								@K__MLIEKPR = MLIEKPR,
								@K__PRT = PRT,
								@K__PERCTUKU = PERCTUKU,
								@K__PERCBIELK = PERCBIELK,
								@K__PERCLAKTOZ = PERCLAKTOZ,
								@K__BUNECELEM = BUNECELEM,
								@K__LAKTDNI = LAKTDNI,
								@K__PORPREBLAK = PORPREBLAK,
								@K__FREKVENCIA = '2' -- default hodnota je '2'
							FROM PLIS.dbo.CM_Kontroly
							where CISKRAVY = @V_CISKRAVY and DATKONTR = @V_DATKONTR
						  
							update PLIS.dbo.CM_Kontroly set
								--CISKRAVY = @K_CISKRAVY,
								--DATKONTR = isnull(@K_DATKONTR, @K__DATKONTR),
								ZNKONTR = isnull(@K_ZNKONTR, @K__ZNKONTR),
								DENDOBA = isnull(@K_DENDOBA, @K__DENDOBA),
								INTERVAL = isnull(@K_INTERVAL, @K__INTERVAL),
								CISCHOVU = isnull(@K_CISCHOVU, @K__CISCHOVU),
								SKUPINA = isnull(@K_SKUPINA, @K__SKUPINA),
								PREPOCET = isnull(@K_PREPOCET, @K__PREPOCET),
								MLIEKO = isnull(@K_MLIEKO, @K__MLIEKO),
								MLIEKPR = isnull(@K_MLIEKPR, @K__MLIEKPR),
								PRT = CASE WHEN @K_PERCTUKU IS NOT NULL OR @K_PERCBIELK IS NOT NULL OR @K_PERCLAKTOZ IS NOT NULL THEN 0 ELSE @K__PRT END, -- ak doslo k oprave T, B, L nastav 0
								PERCTUKU = isnull(@K_PERCTUKU, @K__PERCTUKU),
								PERCBIELK = isnull(@K_PERCBIELK, @K__PERCBIELK),
								PERCLAKTOZ = isnull(@K_PERCLAKTOZ, @K__PERCLAKTOZ),
								BUNECELEM = isnull(@K_BUNECELEM, @K__BUNECELEM),
								LAKTDNI = isnull(@K_LAKTDNI, @K__LAKTDNI),
								PORPREBLAK = isnull(@K_PORPREBLAK, @K__PORPREBLAK), 
								SPRACUPDATE = @IDParChov,				
								FREKVENCIA = isnull(@K_FREKVENCIA, @K__FREKVENCIA)									
								where CISKRAVY = @V_CISKRAVY and DATKONTR = @V_DATKONTR
						end
					
						-- procedura, ktora prepocita kontroly a hodnoty laktacie (pre CM_Laktacie, CM_Naplak)
						exec PLIS.dbo.C_aktual_prep_laktacie @V_CISKRAVY, @N_DATOTEL, @N_PORLAK, 
								@N_DATUKNORL output, @N_LAKTDNI output, @N_LAKDNIN output, @N_MLIEKCEL output, @N_MLIEKNOR output,
								@N_TUKCEL output, @N_TUKNOR output, @N_BIELKCEL output,	@N_BIELKNOR output, @N_LAKTOZAC output,
								@N_LAKTOZAN output, @N_INDPER output, @N_BEZT output, @N_MLIEKO100 output, @N_TUK100 output, @N_BIELK100 output,
								@N_LAKT100 output, @N_MLIEKO200 output, @N_TUK200 output, @N_BIELK200 output, @N_LAKT200 output,
								@NenormalLakt output, @KR_DATPOSKONT output, @IDParChov
		 
					end		
					else
					begin
						-- pri vyradeni a zasuseni - ak treba - dodrzat zmenu 10 (nenormalna laktacia) -- 20170329
						if @N_ZMENA = 10 
							set @NenormalLakt = 1						
					end

						SELECT @K__DATKONTR = max(DATKONTR) FROM PLIS.dbo.CM_Kontroly where CISKRAVY = @V_CISKRAVY
						-- pre pripad, ze ide o napr vyradenie v prvej kontrole
						if @K__DATKONTR is null
							set @K__DATKONTR = @V_DATKONTR
				
					-- odvodenie poloziek ZMENA a ZNAK pre zaznam do CM_Naplak-u + polozky pre zaznam do CM_Krava
					if @NenormalLakt = 0
					-- nejde o nenormalnu laktaciu
					begin
						if @N_LAKTDNI >= 305
						begin
							if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z' or UPPER(@V_ZNKONTR) = 'O'
							begin
								if UPPER(@V_ZNKONTR) = 'Z'
								begin
									set @N_ZNAK = 'Z'
									set @N_DATUKONL = @K__DATKONTR
									set @N_CHOVLAKT = @KR_CHOVATEL
								end
								else 
								if UPPER(@V_ZNKONTR) = 'V'
								begin
									set @N_ZNAK = 'V'
									set @KR_DATVYR = @V_DATKONTR
									set @KR_DOVVYR = case when (@V_MLIEKO is null) then '54' else convert(varchar,convert(int, @V_MLIEKO * 10)) end
									set @N_DATUKONL = @K__DATKONTR	
									set @N_CHOVLAKT = @KR_CHOVATEL													
								end 
								else
								if UPPER(@V_ZNKONTR) = 'O'
								begin
									set @N_ZNAK = '$'
									set @KR_DATVYR = null
									set @KR_DOVVYR = null	
									set @N_DATUKONL = null	
									set @N_CHOVLAKT = null
								end 	
								if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z'
								begin
									--if @N_MLIEKCEL >= 2000
									if @N_MLIEKCEL >= 1500
										set @N_ZMENA = '30'
									else
										set @N_ZMENA = '31'		
								end												
							end else
							begin
								if @N_ZNAK is null or UPPER(@N_ZNAK) = 'P' or UPPER(@N_ZNAK) = 'K' or @N_ZNAK = '$'
								begin
									if @N_ZNAK is null or UPPER(@N_ZNAK) = 'P'
									begin
										if @N_ZNAK is null
											set @N_ZNAK = 'P'
										else
										if UPPER(@N_ZNAK) = 'P'
											set @N_ZNAK = 'K'
										--if @N_MLIEKCEL >= 2000
										if @N_MLIEKCEL >= 1500
											set @N_ZMENA = '30'
										else
											set @N_ZMENA = '31'							
									end else							
									if UPPER(@N_ZNAK) = 'K'
										set @N_ZNAK = '$'
									else				
									if @N_ZNAK = '$'
										set @N_ZNAK = '$'										
								end
							end
						end else
						begin
							if @N_LAKTDNI >= 240
							begin
								if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z'
								begin
									--if @N_MLIEKCEL >= 2000
									if @N_MLIEKCEL >= 1500
										set @N_ZMENA = '40'
									else
										set @N_ZMENA = '41'								
									set @N_DATUKONL = @K__DATKONTR
									set @N_ZNAK = @V_ZNKONTR
									set @N_CHOVLAKT = @KR_CHOVATEL
									if UPPER(@V_ZNKONTR) = 'V'
									begin
										set @KR_DATVYR = @V_DATKONTR
										set @KR_DOVVYR = case when (@V_MLIEKO is null) then '54' else convert(varchar,convert(int, @V_MLIEKO * 10)) end							
									end	
									set @N_LAKDNIN = @N_LAKTDNI
									set @N_MLIEKNOR = @N_MLIEKCEL
									set @N_TUKNOR =	@N_TUKCEL
									set @N_BIELKNOR = @N_BIELKCEL
									set @N_LAKTOZAN = @N_LAKTOZAC														
								end else
								begin
									if UPPER(@V_ZNKONTR) = 'O'
									begin
										set @N_ZNAK = null
										set @KR_DATVYR = null
										set @KR_DOVVYR = null
										set @N_DATUKONL = null	
										set @N_CHOVLAKT = null	
										-- znovuotvorenie laktacie (zmazanie vyradenim uz uzavretej laktacie z CM_Laktacie)
										exec PLIS.dbo.C_aktual_znovuotv_lakt @V_CISKRAVY																									
									end 
									set @N_ZMENA = '11'
								end
							end else
							begin
								if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z'
								begin	
									--if @N_MLIEKCEL >= 2000
									if @N_MLIEKCEL >= 1500
									begin
										set @N_ZMENA = '42'
									end else
									begin
										set @N_ZMENA = '43'
									end
									set @N_DATUKONL = @K__DATKONTR
									set @N_ZNAK = @V_ZNKONTR
									set @N_CHOVLAKT = @KR_CHOVATEL							
									if UPPER(@V_ZNKONTR) = 'V'
									begin							
										set @KR_DATVYR = @V_DATKONTR
										set @KR_DOVVYR = case when (@V_MLIEKO is null) then '54' else convert(varchar,convert(int, @V_MLIEKO * 10)) end	
									end												
								end else
								begin
									if UPPER(@V_ZNKONTR) = 'O'
									begin
										set @N_ZNAK = null
										set @KR_DATVYR = null
										set @KR_DOVVYR = null	
										set @N_DATUKONL = null			
										set @N_CHOVLAKT = null	
										-- znovuotvorenie laktacie (zmazanie vyradenim uz uzavretej laktacie z CM_Laktacie)
										exec PLIS.dbo.C_aktual_znovuotv_lakt @V_CISKRAVY																					
									end 
									set @N_ZMENA = '11'							
								end
							end
						end
					end else
					-- ide o nenormalnu laktaciu
					begin
						if UPPER(@V_ZNKONTR) = 'V'
						begin
							set @KR_DATVYR = @V_DATKONTR
							set @KR_DOVVYR = case when (@V_MLIEKO is null) then '54' else convert(varchar,convert(int, @V_MLIEKO * 10)) end	
							set @N_DATUKONL = @K__DATKONTR
							set @N_ZNAK = @V_ZNKONTR
							set @N_CHOVLAKT = @KR_CHOVATEL													
						end else
						if UPPER(@V_ZNKONTR) = 'Z'
						begin
							set @N_DATUKONL = @K__DATKONTR
							set @N_ZNAK = @V_ZNKONTR
							set @N_CHOVLAKT = @KR_CHOVATEL								
						end else
						if UPPER(@V_ZNKONTR) = 'O'
						begin
							set @N_ZNAK = null
							set @KR_DATVYR = null
							set @KR_DOVVYR = null	
							set @N_DATUKONL = null	
							set @N_CHOVLAKT = null	
							-- znovuotvorenie laktacie (zmazanie vyradenim uz uzavretej laktacie z CM_Laktacie)
							exec PLIS.dbo.C_aktual_znovuotv_lakt @V_CISKRAVY												
						end 
					
						if @N_LAKTDNI >= 305
						begin
							if @N_ZNAK is null
								set @N_ZNAK = 'P'
							else
							if UPPER(@N_ZNAK) = 'P'
								set @N_ZNAK = 'K'				
							else							
							if UPPER(@N_ZNAK) = 'K'
								set @N_ZNAK = '$'									
						end
					
						set @N_ZMENA = '10'									
					end
				
		--------------------------------
					-- ci bude treba robit vypocet triedy uzitkovosti
					if (UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z' or UPPER(@N_ZNAK) = 'K') and @N_ZMENA != '10'
					begin
						set @KR_POCVSETLAK = @N_PORLAK
					end		
					
					-- datum poslednej kontroly sa berie z kontroly pred vyradenim/zasusenim
					--if (UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z')
					--begin
					--	set @KR_DATPOSKONT = @K__DATKONTR
					--end							
				
					-- zapis do CM_Krava
					update PLIS.dbo.CM_Krava set
						DOVVYR = @KR_DOVVYR, 
						DATVYR = @KR_DATVYR, 
						POCVSETLAK = @KR_POCVSETLAK,
						-- datum poslednej kontroly je datum aj vyradenia a zasusenia (hlasneho kontrolami)
						--DATPOSKONT = @KR_DATPOSKONT, 
						DATPOSKONT = @V_DATKONTR, 
						SPRACUPDATE = @IDParChov
					where (CISKRAVY = @V_CISKRAVY)	
							
					-- zapis do CM_Laktacie
					--if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z' or UPPER(@N_ZNAK) = 'K' or @N_ZNAK = '$'
					-- veta z CM_Naplak do CM_Laktacie prejde len po dosiahnuti 305 dni (K) a pri vyradeni a zasuseni (V, Z)
					if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z' or UPPER(@N_ZNAK) = 'K' --or @N_ZNAK = '$'
					begin
						--set @N_CHOVLAKT = @V_CHOV
					
						-- skopirovanie suvisiacich kontrol do archivu kontrol
						if UPPER(@V_ZNKONTR) = 'V' or UPPER(@V_ZNKONTR) = 'Z'
							exec PLIS.dbo.C_aktual_kontroly_do_archivu @N_CISKRAVY, 0				
					
						-- laktacie uz existuje v CM_Laktacie
						if (select count(*) from CM_Laktacie where CISKRAVY = @N_CISKRAVY and PORLAK = @N_PORLAK) = 1
							update PLIS.dbo.CM_Laktacie set 
								ZMENA = @N_ZMENA, DATUKONL = @N_DATUKONL,
								DATUKNORL = @N_DATUKNORL, LAKTDNI = @N_LAKTDNI, LAKDNIN = @N_LAKDNIN,
								MLIEKCEL = @N_MLIEKCEL, MLIEKNOR = @N_MLIEKNOR, TUKCEL = @N_TUKCEL, TUKNOR = @N_TUKNOR, BIELKCEL = @N_BIELKCEL,
								BIELKNOR = @N_BIELKNOR, LAKTOZAC = @N_LAKTOZAC, LAKTOZAN = @N_LAKTOZAN, INDPER = @N_INDPER, INDLAK = @N_INDLAK,
								MAXLAK = @N_MAXLAK, MLIEKO100 = @N_MLIEKO100, TUK100 = @N_TUK100,
								BIELK100 = @N_BIELK100, LAKT100 = @N_LAKT100, MLIEKO200 = @N_MLIEKO200, TUK200 = @N_TUK200, BIELK200 = @N_BIELK200,
								LAKT200 = @N_LAKT200, SPRACUPDATE = @IDParChov,
								CHOVATEL = @KR_CHOVATEL, CHOVLAKT = @N_CHOVLAKT
								where CISKRAVY = @N_CISKRAVY and PORLAK = @N_PORLAK	
						else
						begin
							INSERT INTO PLIS.dbo.CM_Laktacie
								(CISKRAVY, CHOVATEL, PORLAK, DATOTEL, CHOVOTEL, CHOVLAKT, PRIEBPOROD, POHLAVIE, ZMENA, DATUKONL, DATUKNORL 
								,MEDZIOBD, HMOTKR, LAKTDNI, LAKDNIN, MLIEKCEL, MLIEKNOR, TUKCEL, TUKNOR, BIELKCEL, BIELKNOR, LAKTOZAC, LAKTOZAN 
								,INDPER, INDLAK, CHARUST, SPOSOBKU, MAXLAK, MLIEKO100, TUK100, BIELK100, LAKT100, MLIEKO200, TUK200, BIELK200
								,LAKT200, SPRACINSERT, SPRACUPDATE)
							VALUES	
								(@N_CISKRAVY, @KR_CHOVATEL, @N_PORLAK, @N_DATOTEL, @N_CHOVOTEL, @N_CHOVLAKT, @N_PRIEBPOROD, @N_POHLAVIE, @N_ZMENA
								,@N_DATUKONL, @N_DATUKNORL, @N_MEDZIOBD, @N_HMOTKR, @N_LAKTDNI, @N_LAKDNIN, @N_MLIEKCEL, @N_MLIEKNOR, @N_TUKCEL
								,@N_TUKNOR, @N_BIELKCEL, @N_BIELKNOR, @N_LAKTOZAC, @N_LAKTOZAN, @N_INDPER, @N_INDLAK, @N_CHARUST
								,(select SPVYKON from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @V_CHOV))
								,@N_MAXLAK, @N_MLIEKO100, @N_TUK100, @N_BIELK100, @N_LAKT100, @N_MLIEKO200, @N_TUK200, @N_BIELK200
								,@N_LAKT200, @IDParChov, @IDParChov)	
						end
					
						-- prepocitanie hodnotu INDLAK na poslednej laktacii danej kravy
						exec C_aktual_prep_indlak_krave @N_CISKRAVY

						-- prepocitanie maximalnej laktacie (a dalsich cisel) pre danu kravu
						exec C_aktual_prep_max_lakt_krave @N_CISKRAVY
		
						-- prepocitanie triedy uzitkovosti pre danu kravu
						exec C_aktual_prep_tr_uzit_krave @N_CISKRAVY								  
					end				
				
					-- zapis do CM_Naplak-u				
					update PLIS.dbo.CM_Naplak set 
						CISKRAVY = @N_CISKRAVY,
						CHOVATEL = @KR_CHOVATEL,
						PORLAK = @N_PORLAK,
						DATOTEL = @N_DATOTEL,
						CHOVOTEL = @N_CHOVOTEL,
						CHOVLAKT = @N_CHOVLAKT,
						PRIEBPOROD = @N_PRIEBPOROD,
						POHLAVIE = @N_POHLAVIE,
						ZMENA = @N_ZMENA,
						DATUKONL = @N_DATUKONL,
						DATUKNORL = @N_DATUKNORL,
						MEDZIOBD = @N_MEDZIOBD,
						HMOTKR = @N_HMOTKR,
						LAKTDNI = @N_LAKTDNI,
						LAKDNIN = @N_LAKDNIN,
						MLIEKCEL = @N_MLIEKCEL,
						MLIEKNOR = @N_MLIEKNOR,
						TUKCEL = @N_TUKCEL,
						TUKNOR = @N_TUKNOR,
						BIELKCEL = @N_BIELKCEL,
						BIELKNOR = @N_BIELKNOR,
						LAKTOZAC = @N_LAKTOZAC,
						LAKTOZAN = @N_LAKTOZAN,
						INDPER = @N_INDPER,
						INDLAK = @N_INDLAK,
						CHARUST = @N_CHARUST,
						MAXLAK = @N_MAXLAK,
						ZNAK = @N_ZNAK,
						BEZT = @N_BEZT,
						MLIEKO100 = @N_MLIEKO100,
						TUK100 = @N_TUK100,
						BIELK100 = @N_BIELK100,
						LAKT100 = @N_LAKT100,
						MLIEKO200 = @N_MLIEKO200,
						TUK200 = @N_TUK200,
						BIELK200 = @N_BIELK200,
						LAKT200 = @N_LAKT200, 
						SPRACUPDATE = @IDParChov
						where CISKRAVY = @V_CISKRAVY			
				end
	------------------------------------------------------------------------------------------------------------------------------------
			end
			
			if (@RPO = 0)
			begin
				-- zaznam sparovanych rozborov nastaveny ako spracovany
				update VstupyPLIS.dbo.CP_HD06_ROZBORPROT_SPAR set
					DATSPRAC = GETDATE(),
					PRIZSPRAC = 2
					where IDR = @IDR	
				
				-- zaznam hlasenych rozborov nastaveny ako spracovany						
				update VstupyPLIS.dbo.CP_HD06_ROZBORPROT set
					DATSPRAC = GETDATE(),
					PRIZSPRAC = 2
					where IDR = @IDR
					
      			-- zaznam o spracovani
				insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
				SELECT 
					@IDR
					,'6'
					,@IDParChov
					,NULL AS ErrorMessage
					,NULL AS ErrorLine	
					,NULL AS ErrorProcedure				
					,NULL AS ErrorState				
			end		
				
			-- zaznam hlasenych oprav rozborov nastaveny ako spracovany				
			else 
			begin
				update VstupyPLIS.dbo.CP_HD07_ROZBORPROT_OPR set
					DATSPRAC = GETDATE(),
					PRIZSPRAC = 2
					where IDR = @IDR

      				-- zaznam o spracovani
				insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
				SELECT 
					@IDR
					,'7'
					,@IDParChov
					,NULL AS ErrorMessage
					,NULL AS ErrorLine	
					,NULL AS ErrorProcedure				
					,NULL AS ErrorState			
			end
		end try
		begin catch	
			IF @@TRANCOUNT > 0
				rollback tran rozborprot;	
						
			-- zaznam o spracovani s chybou
			if (@RPO = 0)			
				insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
				SELECT 
					@IDR
					,'6'
					,@IDParChov
					,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
					,ERROR_LINE() AS ErrorLine	
					,ERROR_PROCEDURE() AS ErrorProcedure				
					,ERROR_STATE() AS ErrorState									
			else
				insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
				SELECT 
					@IDR
					,'7'
					,@IDParChov
					,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
					,ERROR_LINE() AS ErrorLine	
					,ERROR_PROCEDURE() AS ErrorProcedure				
					,ERROR_STATE() AS ErrorState	
					
		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran rozborprot					
		
		FETCH NEXT
		FROM db_cursor_rozborprot INTO 			
			 @IDR
			,@V_CISKRAVY
			,@V_DATKONTR
			,@V_ZNKONTR
			,@V_DENDOBA
			,@V_INTERVAL
			,@V_CHOV
			,@V_SKUPINA
			,@V_MLIEKO
			,@V_PERCTUKU
			,@V_PERCBIELK 
			,@V_PERCLAKTOZ
			,@V_BUNECELEM 		
			,@RPO				
	end
	
	CLOSE db_cursor_rozborprot
	DEALLOCATE db_cursor_rozborprot
	
	-- zmazanie docasnej tabulky PLIS.dbo.zotried_kontr ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'zotried_kontr') drop table PLIS.dbo.zotried_kontr
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_RP_aktualizacia ...OK'		
end


go



 CREATE procedure [dbo].[Rocenka_MPHD_19]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

	select  o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, ch.NAZOV as Chov_nazov, pk.OBEC as Sidlo, 
			p.KrOk, p.Podnik, p.Chov, p.Priem_st_krav, p.Kravy_Z, p.Kravy_V, p.od_prvostok_B, p.od_krav_B, p.od_prvostok_J, p.od_krav_J,
			p.m1_J, p.m2_J, p.m3_J, p.m4_J, p.m5_J, p.m6_J, p.m7_J, p.m8_J, p.m9_J, p.m10_J, p.m11_J, p.m12_J,
			p.m1_B, p.m2_B, p.m3_B, p.m4_B, p.m5_B, p.m6_B, p.m7_B, p.m8_B, p.m9_B, p.m10_B, p.m11_B, p.m12_B,
			p.m1_JB, p.m2_JB, p.m3_JB, p.m4_JB, p.m5_JB, p.m6_JB, p.m7_JB, p.m8_JB,	p.m9_JB,	p.m10_JB,	p.m11_JB,	p.m12_JB, p.rok
			from Roc_MPHD_Tab_19 as p
		  left join  NC_OKRES as o  on p.KrOk  = o.kraj + o.okres 
		  left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK = p.KrOk + p.Podnik
		  left outer join NM_PODNIK as pk on pk.KRAJ + pk.OKRES + pk.PODNIK =  p.KrOk + p.Podnik  --LEFT(@chov,6)
		  left outer join NM_Konatel as k on k.ID = pk.ID_KONATEL
		  left outer join NM_Zootechnik as z on z.ID = ch.ID_ZOOTECHNIK
	where p.KrOk + p.Podnik + p.Chov =  ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
		  and datepart(year,@datumOd) = p.rok
		  --and ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = @chov
		and ch.TYPZV= 1
		and ch.chov not in ('010','700', '699') 
		and left(ch.chov,1) ='7'
		and (ch.ZRUS is null or(ch.ZRUS is not null and ch.datumZrusenia > @datumOd))
		and ch.kraj + ch.okres+ ch.podnik + ch.chov in (select kraj + okres + podnik + chov from NM_HDDETAIL
											 where SPVYKON= '4' and PRIZNAK = '01' /*AND TECHUSMD <> '00'*/)
	union
		select o.NAZOV as Okres_nazov,  pk.NAZOVSKR as Podnik_nazov, '' as Chov_nazov, '' as Sidlo, 
			p.KrOk, p.Podnik, '999' as Chov, p.Priem_st_krav, p.Kravy_Z, p.Kravy_V, p.od_prvostok_B, p.od_krav_B, p.od_prvostok_J, p.od_krav_J,
			p.m1_J, p.m2_J, p.m3_J, p.m4_J, p.m5_J, p.m6_J, p.m7_J, p.m8_J, p.m9_J, p.m10_J, p.m11_J, p.m12_J,
			p.m1_B, p.m2_B, p.m3_B, p.m4_B, p.m5_B, p.m6_B, p.m7_B, p.m8_B, p.m9_B, p.m10_B, p.m11_B, p.m12_B,
			p.m1_JB, p.m2_JB, p.m3_JB, p.m4_JB, p.m5_JB, p.m6_JB, p.m7_JB, p.m8_JB,	p.m9_JB,	p.m10_JB,	p.m11_JB,	p.m12_JB, p.rok
			from Roc_MPHD_Tab_19 as p
			left join  NC_OKRES as o  on p.KrOk  = o.kraj + o.okres 	
			left outer join NM_PODNIK as pk on pk.KRAJ + pk.OKRES + pk.PODNIK =  p.KrOk + p.Podnik 
		where len(p.KrOk) = 3 and p.Podnik<> '' and p.Chov = ''
	
	order by KrOk, Podnik, Chov
	end
 
go

CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_UzavreteLaktSkladba_Kravy] 
	
AS
BEGIN
	
	SET NOCOUNT ON;

	TRUNCATE TABLE [PLIS].[dbo].CP_KravaPoslednaUzavLakt

	declare @chov varchar(9);
	set @chov='';
	declare @ciskrava varchar(14);
	set @ciskrava='';
	declare @maxLakt int;
	set @maxLakt=0;

	declare chova cursor
	for select DISTINCT chovatel
	from plis.dbo.CM_Krava
	where dovvyr is null
	and priznakku='1'

	open chova
	fetch next from chova into @chov

	WHILE @@FETCH_STATUS = 0 
			BEGIN
					declare lak1 cursor for
					select k.CISKRAVY --,l.maxlakt 
					from plis.dbo.cm_krava as k --left join plis.dbo.View_TestL1 as l 
					--on k.CISKRAVY=l.CISKRAVY 
					where k.PRIZNAKKU=1 
					and k.DOVVYR is null 
					and k.chovatel=@chov 

					open lak1
					fetch next from lak1 into @ciskrava;
						WHILE @@FETCH_STATUS = 0 
							BEGIN
							print @ciskrava

							set @maxLakt=(select max(PORLAK) from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava)
								declare @medzi int;
								set @medzi=(select l.MEDZIOBD
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								
								declare @bielk int;
								set @bielk =(select l.BIELKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @bielkN int;
											set @bielkN=(select l.BIELKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdni int;
											set @lakdni=(select l.LAKTDNI
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @lakdniN int;
											set @lakdniN=(select l.LAKDNIN
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mlieko int;
											set @mlieko=(select l.MLIEKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @mliekoN int;
											set @mliekoN=(select l.MLIEKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tuk int;
											set @tuk=(select l.TUKCEL
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @tukN int;
											set @tukN=(select l.TUKNOR
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)

											declare @vek float;
											set @vek=(select (DATEDIFF(dd, k.DATNAR, l.DATOTEL)) AS vek
											from plis.dbo.CM_Krava as k
											left join
											plis.dbo.CM_Laktacie as l
											on k.CISKRAVY=l.CISKRAVY
											where k.dovvyr is null
											and k.priznakku='1'
											and k.CISKRAVY=@ciskrava
											and l.PORLAK=@maxLakt)
								--if(@ciskrava is not NULL)
								--begin
								insert into [PLIS].[dbo].CP_KravaPoslednaUzavLakt values(@ciskrava,@chov,@maxLakt,@medzi,@vek,@lakdni,@lakdniN,@mlieko,@mliekoN,@tuk,@tukN,@bielk,@bielkN,(@bielk+@tuk),(@bielkN+@tukN),(select ZMENA from plis.dbo.CM_Laktacie where CISKRAVY=@ciskrava and PORLAK=@maxLakt),null,null)
								--end
								fetch next from lak1 into @ciskrava;
								
							end
							close lak1;
							deallocate lak1
				fetch next from chova into @chov 
				print N'Done'
			end
			close chova;
			deallocate chova;
	
END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_21_A]
    @rok varchar(4)
as
begin

	
	select * 
	from dbo.Roc_MLHD_Tab_21A as z
	where z.rok = @rok 
	order by kraj, okres, Por_v_okrese
	end
go

-- =============================================

-- =============================================
CREATE PROCEDURE [dbo].[CR_TMHD_sumar_stvrtrok]
	@CHOVATEL [varchar] (9)
	--,@r [int]
AS
BEGIN

	declare @r int = len(@CHOVATEL)

	/*
		Najprv sa vypisu vsetky chovy podla zadania a zisti sa ich typ zaradenia
	*/
	select *, dbo.HDchov_typ_KU (chovatel) as typ  
	into #chov
	from(
		select chovatel from [dbo].[View_CP_SumarMladyDobytokJal_new] AS a
		WHERE 
			(@r = 9 and chovatel = @CHOVATEL)
			OR	((@r = 6 OR @r = 3) AND chovatel LIKE @CHOVATEL + '%')
		group by chovatel
	) t

/*Nacitanie udajov do docasnej tabulky*/
	SELECT
		----prirprepoc, zivprir - su len stare nazvy, nie je to prepoc prit. a ziv. je brany normalne z vazeni teliat !!!!!!
		vekmes, Hmot, ROUND(prir,0) as prirprepoc, ROUND(zivprir,0) as zivpriras, 
		a.chovatel,	a.raspas, a.idain, pohlavie, vekdni, datnar, datvaz, CISTELATA, ZnakPrip, ZnakTelnost,
	CASE WHEN raspas = 'A' THEN 1 ELSE NULL END as raspasA,
	CASE WHEN raspas = 'B' THEN 1 ELSE NULL END as raspasB,
	CASE WHEN raspas = 'C' THEN 1 ELSE NULL END as raspasC,
	CASE WHEN raspas = 'A' THEN HMOT ELSE NULL END as hmotnostA,
	CASE WHEN raspas = 'B' THEN HMOT ELSE NULL END as hmotnostB,
	CASE WHEN raspas = 'C' THEN HMOT ELSE NULL END as hmotnostC
	INTO #temp_THMD_sumar
	FROM [dbo].[View_CP_SumarMladyDobytokJal_new] AS a
	WHERE 
	----chovatel = @CHOVATEL	
	--(@r = 9 and chovatel = @CHOVATEL)
	--OR	((@r = 6 OR @r = 3) AND chovatel LIKE @CHOVATEL + '%')
	chovatel in (select chovatel from #Chov where typ = 'TMHD')

	/*Vytvorenie prazdnej docasnej tabulky*/
		SELECT 
			substring(vek, 1, 2) as ID, substring(vek, 5, len(vek)-4) as vek, 
			NULL AS pocet, /*v stlpci pocet zobrazujeme denny prirastok, ako je to vo fande*/ 
			NULL AS hmotnost, NULL AS pripprepoc, NULL AS zivpriras, @CHOVATEL as chovatel,
			NULL AS pocetA, NULL AS percentA, NULL AS hmotnostA,
			NULL AS pocetB, NULL AS percentB, NULL AS hmotnostB,
			NULL AS pocetC, NULL AS percentC, NULL AS hmotnostC
		INTO #temp_THMD_sumar_Void
			FROM
			(
				SELECT '01. do 1 mes.' AS vek
				UNION 
				SELECT '02. 1 - 2 mes.'  AS vek
				UNION 
				SELECT '03. 2 - 3 mes.'  AS vek
				UNION 
				SELECT '04. 3 - 4 mes.'  AS vek
				UNION 
				SELECT '05. 4 - 5 mes.' AS vek
				UNION 
				SELECT '06. 5 - 6 mes.' AS vek
				UNION 
				SELECT '07. do 6 mes.' AS vek
				UNION 
				SELECT '08. 6 - 12 mes.' AS vek
				UNION 
				SELECT '09. 12 mes. (+-15 dní)' AS vek
				UNION 
				SELECT '10. 12 - 18 mes. pripustené' AS vek
				UNION 
				SELECT '11. 12 - 18 mes. nepripustené' AS vek
				UNION 
				SELECT '12. 18 - 24 mes. pripustené' AS vek
				UNION 
				SELECT '13. 18 - 24 mes. nepripustené' AS vek
				UNION 
				SELECT '14. 12 - 24 mes. celkom' AS vek
				UNION 
				SELECT '15. 12 - 24 mes. teľné' AS vek
				UNION 
				SELECT '16. nad 24 mes. pripustené' AS vek
				UNION 
				SELECT '17. nad 24 mes. nepripustené' AS vek
				UNION 
				SELECT '18. nad 24 mes. celkom' AS vek
				UNION 
				SELECT '19. nad 24 mes. teľné 7 mes' AS vek
				UNION 
				SELECT '20. nad 24 mes. teľné 8 a viac' AS vek
				UNION 
				SELECT '21. celkom jalovice za maštaľ' AS vek
				UNION 
				SELECT '22. celkom býčkov za maštaľ' AS vek
				UNION 
				SELECT '23. neurčené pohlavie' AS vek
				--UNION 
				--SELECT '24. priemerný prírastok [g] za maštaľ' AS vek
				UNION 
				SELECT '24. celkom za maštaľ' AS vek
			) as a


/*Spracovanie evidencie a ulozenie do docasnej tabulky*/
SELECT * 
	INTO #temp_THMD_sumar_Pre
	FROM (
			SELECT 
				substring(vek, 1, 2) as ID, substring(vek, 5, len(vek)-4) as vek, 
				COUNT(*) AS pocet, ROUND(AVG(Hmot),0) AS hmotnost, ROUND(AVG(prirprepoc), 0) AS denpriras, ROUND(AVG(zivpriras), 0) AS zivpriras, 
				substring(chovatel, 1, @r) as chovatel,
				SUM(raspasA) AS pocetA, 
				--(SUM(raspasA)*100.00) / COUNT(*) AS percentA,
				--AVG(hmotnostA) AS hmotnostA,
				ROUND((SUM(raspasA)*100.00) / COUNT(*), 1) AS percentA,
				ROUND(AVG(hmotnostA),0) AS hmotnostA,
				SUM(raspasB) AS pocetB, 
				--(SUM(raspasB)*100.00) / COUNT(*) AS percentB,
				--AVG(hmotnostB) AS hmotnostB,
				ROUND((SUM(raspasB)*100.00) / COUNT(*), 1) AS percentB,
				ROUND(AVG(hmotnostB),0) AS hmotnostB,
				SUM(raspasC) AS pocetC,
				--(SUM(raspasC)*100.00) / COUNT(*) AS percentC,
				--AVG(hmotnostC) AS hmotnostC
				ROUND((SUM(raspasC)*100.00) / COUNT(*), 1) AS percentC,
				ROUND(AVG(hmotnostC),0) AS hmotnostC
		
			FROM
			(
				SELECT 
					CASE WHEN vekmes = 0 THEN '01. do 1 mes.' 
						WHEN vekmes = 1 THEN '02. 1 - 2 mes.' 
						WHEN vekmes = 2 THEN '03. 2 - 3 mes.' 
						WHEN vekmes = 3 THEN '04. 3 - 4 mes.' 
						WHEN vekmes = 4 THEN '05. 4 - 5 mes.' 
						WHEN vekmes = 5 THEN '06. 5 - 6 mes.' 
						WHEN vekmes BETWEEN 6 AND 11 THEN '08. 6 - 12 mes.' 
						WHEN vekmes BETWEEN 12 AND 17  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '10. 12 - 18 mes. pripustené' 
																							ELSE '11. 12 - 18 mes. nepripustené' END
						WHEN vekmes BETWEEN 18 AND 23  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '12. 18 - 24 mes. pripustené' 
																								ELSE '13. 18 - 24 mes. nepripustené' END
						WHEN vekmes > 23  THEN CASE WHEN ZnakPrip = 'pripustena' THEN '16. nad 24 mes. pripustené' 
																					ELSE '17. nad 24 mes. nepripustené' END
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT 
					CASE 
						WHEN vekmes BETWEEN 0 AND 5  THEN '07. do 6 mes.' 	
						WHEN vekmes =  11 and vekdni > 15 or  vekmes =  12 and vekdni < 15 THEN '09. 12 mes. (+-15 dní)'
						WHEN vekmes BETWEEN 12 AND 23  AND ZnakTelnost IS NOT NULL THEN '15. 12 - 24 mes. teľné'
						WHEN vekmes > 23 AND ZnakTelnost IS NOT NULL  THEN 
							CASE WHEN DATEDIFF(DAY, idain, GETDATE()) / 30.42 BETWEEN 7.00000 AND 7.999999 THEN '19. nad 24 mes. teľné 7 mes'
								 WHEN DATEDIFF(DAY, idain, GETDATE()) / 30.42 >= 8.000 THEN '20. nad 24 mes. teľné 8 a viac'
							END
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT 
					CASE 
						WHEN vekmes BETWEEN 12 AND 23 THEN '14. 12 - 24 mes. celkom'
						WHEN vekmes > 23 THEN '18. nad 24 mes. celkom'
					END AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT '21. celkom jalovice za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND datnar IS NOT NULL AND POHLAVIE LIKE '%2'
			UNION
				SELECT '22. celkom býčkov za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NOT NULL AND datnar IS NOT NULL AND POHLAVIE LIKE '%1'
			UNION
				SELECT '23. neurčené pohlavie' AS vek, *
				FROM #temp_THMD_sumar
				WHERE POHLAVIE IS NULL
			UNION
				SELECT '24. celkom za maštaľ' AS vek, *
				FROM #temp_THMD_sumar
			) as s
			WHERE vek is not null	
			GROUP BY substring(chovatel, 1, @r), vek	
		) as b

		/*
			Prepocet stlca s % na 100.00
			update 11/2015
		*/
		update #temp_THMD_sumar_Pre
		set percentC = 100 - (percentB + percentA)
		where percentA + percentB + percentC <> 100

		--Create table CR_TMHD_sumar_stvrtR
		--	(
		--	ID int, 
		--	vek varchar(35),
		--	pocet int, 
		--	hmotnost int,
		--	dennpriras int, 
		--	zivpriras int, 
		--	chovatel varchar(9),
		--	pocetA int,
		--	percentA int,
		--	hmotnostA int,
		--	pocetB int,
		--	percentB int,
		--	hmotnostB int,
		--	pocetC int,
		--	percentC int,
		--	hmotnostC int,
		--	rok int,
		--	mesiacDO int,
		--	generovane date
		--	)

		Insert into CR_TMHD_sumar_stvrtR
		 (ID, vek,pocet, hmotnost,dennpriras, zivpriras , chovatel ,pocetA ,percentA ,hmotnostA ,pocetB ,percentB ,hmotnostB ,pocetC ,percentC ,hmotnostC, rok, mesiacDO, generovane)

		select *, datepart(YEAR, getdate()) as rok, datepart(MONTH, getdate()) as mesiacDO, getdate() as generovane
		FROM
		(
			SELECT * FROM #temp_THMD_sumar_Pre
			UNION
			SELECT * FROM #temp_THMD_sumar_Void	
			WHERE Vek not in (SELECT Vek FROM #temp_THMD_sumar_Pre)
		) as tab
		--ORDER BY ID
		--SELECT * FROM #temp_THMD_sumar_Pre
		--	UNION
		--	SELECT * FROM #temp_THMD_sumar_Void	
		--		ORDER BY ID

END


--if exists (select * from plis.sys.tables where name = '#temp_THMD_sumar')
--drop table #temp_THMD_sumar


----
--use plis
--exec C_TMHD_sumar '406535931'

--exec C_TMHD_sumar '713562801'
go

-- =============================================
-- Author:		Ing. Vladimír Ďurech
-- Create date: 02.11.2017
-- Description:	Zostavy pre ZCHOK na Demeter
-- =============================================
CREATE PROCEDURE G_zostava_Demeter
	@rok int, --2016	
	@plem varchar(2) --'AL'--'AN'-- 'HK' --'SA'-- 'AN'--'BK'-- 'SD'-- null-- 'C'--'ZV'
AS
BEGIN	

	--select  * from GP_GMLZAM_Z
	--where rok = @rok
	--and PLEM = @plem
	----and poradie = 0
	--select  * from
	--GP_GMLZAM
	--where rok = @rok
	--and PLEM = @plem

	select '' as poradie, case when poradieNajChov <> 0 then ROW_NUMBER() OVER (order by poradie, idxVysl ) - 
		(select count(*) from GP_GMLZAM_Z where rok = @rok and plem = @plem and  poradie = 0 ) else poradieNajChov end as 'Poradie NAJCHOV',
			--cast(poradieNajChov as varchar(24)) as 'Poradie NAJCHOV', 
			Nazov, 
			--Krokr + ' ' + podnik + ' ' + stado as 'identifikacia stada', 
			--plem as plemeno, 
			replace(cast(PocPrip as varchar(24)), '.', ',') as 'poc prip koz',		
			replace(cast(percplodok as varchar(24)), '.', ',') as 'perc plod na okot KOZ',
			replace(cast(PocPrip*percplodok as varchar(24)), '.', ',') as ' index',
			replace(cast(PocetMnl as varchar(24)), '.', ',') as 'poz koz v KU ml',
			replace(cast(SMNL as varchar(24)), '.', ',') as 'prod mlieka',
			replace(cast(ukazml as varchar(24)), '.', ',') as 'vysledny index',
			replace(cast(PocetMnl*SMNL as varchar(24)), '.', ',') as 'index',
		
			capOHOD as 'zaradene cap na r2013',
		
			--replace(cast(idxProdcap  as varchar(24)), '.', ',') as 'Index produkcie cap',
			capER as 'poc zar capanov ER',
			capPredv as 'predv cap za rok 2013',
			ZKOZYPK as 'poc KOZYnic v PK k 01.01.2013',
			--replace(cast(idxPodTrER  as varchar(24)), '.', ',') as 'Index podielu tr ER',
			--replace(cast(idxVysl*idxProdcap*idxPodTrER  as varchar(24)), '.', ',') as 'Vysledny Index',
			--stku as 'Stupen KU',
			--capcel1 as 'poc capanov nar. 2012',
			--ptest1 as 'z toho poc test',
			--psuhl1 as 'z toho poc so suhl povod',
			pocKozic as 'poc koziciek',
			zarKozic as 'Poc Zarad Kozic',
			zKozicER as 'Poc Kozic zarad do ER'
		from 
		(	select *, poradie as poradieNajChov,
				(case when ZKOZYPK > 0 then 1.0*capOHOD/ZKOZYPK else 0 end) as idxProdcap,
				(case when capPredv > 0 then 1.0*capER/capPredv else 0 end) as idxPodTrER,
				ukazml as idxVysl
			from GP_GMLZAM_Z 
			where 
				--PLEM not in ('SD', 'C', 'ZV', 'V') 
				--and 
				rok = @rok
				--and UKAZML <> 0
				--and (plem = @plem 
				and (plem = @plem or plem = (case when @plem = 'ZV' then 'V ' else 'XXXX' end)
				or (@plem is null and PLEM not in ('SD', 'C', 'ZV', 'V')  ) )
				and (poradie = 0 
					--or poradie <> 0 and krokr+podnik+stado not in (select g.krokr+g.podnik+g.stado  from GP_GMLZAM g where  g.krokr+g.podnik+g.stado = krokr+podnik+stado and rok = @rok and VYKKU = 1 )
					or poradie <> 0 and krokr+podnik+stado in (select g.krokr+g.podnik+g.stado  from GP_GMLZAM g where  g.krokr+g.podnik+g.stado = krokr+podnik+stado and rok = @rok and VYKKU = 3 )
				)

		) t
	
		order by poradieNajchov asc, idxVysl asc--idxVysl*idxProdcap*idxPodTrER asc--, idxVysl desc --ukazmas*  (capOHOD*ZKOZYPK)* (capER*capPredv)

	/*
	CREATE TABLE GP_GMLZAM_Z
	(
		PORADIE int,
		KROKR varchar (3),
		PODNIK varchar (3),
		STADO varchar (3),
		ID_CHOV int,
		PLEM varchar (8),
		SMNL decimal (6,2),
		POCETMNL int,
		POCPRIP int,
		PERCPLODOK decimal (5,1),
		POCOKOT int,
		NAZOV varchar (50),
		UKAZML decimal (7,2),
		CAPOHOD int,
		CAPER int,
		CAPPREDV int,
		ZKOZYPK int,
		POCKOZIC int,
		ZARKOZIC int,
		ZKOZICER int,
		POZNAMKA varchar (40),
		rok int
	)

	*/
END
go


-- =============================================
-- procedura ::C_aktual_plem_potomok:: nahradena funkciou ::C_aktual_plem_potomok_funkcia::

-- Author:		PSSR, š.p.
-- Create date: 03.08.2011 - autor: PSSR, š.p.
-- Last update: 01.07.2015 - autor: ing. Vladimir Durech
-- Description:	Vypocita podiely plemien u potomka na zaklade podielov plemien otca a matky 

-- Update:
--				Odobrate plemena S (12.5%) - ako vo FANDe
--				Spojenie plemien H a R za urcitych podmienok
--				Opravene spocitanie plemien pri pocte > 4
--				Osetrene vstupy
--				Opravene poradie plemien pri rovnakych KR... - beru sa podla priority ako boli v jeho predkoch (S-12.5 CH-12.5 >> S-6.3 CH-6.3)
--				01.06.2015 - vyhodene X ako posledne v poradi
--				02.06.2015 - SR + SB -> SM
--				17.06.2015 - odstraneny chovatel z podmienok (ako param zatial. ponechany)
--				22.06.2015 - Plemeno s KR pod 6 sa pripocitava podla typu (ci ide o Mliekovy, Masovy, Komb) - predtym slo k najvyssiemu
--				   -||-	   - Sucet PS rodica musi byt 100, inak nepocita potomka
--				29.06.2015 - Plemeno sa pripocita podla nasledujucich specifikacii:
--									ML -> KOMB -> X -> MP
--									KOMB -> ML -> X -> MP
--									X -> Plemeno s najvacsim podielom
--									MP-> KOMB -> X -> ML
--							- zvysne plemena (ak pocet > 4) sa rataju ako plemeno s KR pod 6
--							- PL5 sa uz uvadzat nebude!! PL5 is NULL
--				01.07.2015 -  oprava H a R ... 	
--					    	- ak by bolo (H aj R) a  H alebo R bude mensie ako 6, tak pripocitaj ich k sebe, aby nezaniklo
--				02.07.2015 - pre vypocet, musi rodic mat podiel Plemena nad 6	(chyba o: S-93.8 R-3.1 F-3.1)
--				23.09.2015 - ak nema rodic plemenu skladbu tak -> X-100 (predtym koniec)
--				26.02.2016 - plemeno sa prepocita aj ak chyba otec alebo matka (je null)
--				30.11.2016 - add replace k plemenam pri selekte - niektori sikovny zadavaju medzere do plemena... 'L' vs ' L' ('FR008727970854','PL005303501490', null)

--				27.06.2017 - funkcia rozdelene na 2. Tato druha cast je cisto vypocet, kde vstupom su priamo plemeno otca a matky
--				21.08.2017 - vyhodene stare podmienky s Xkom pri spolocnych 2 podieloch krvi... (R-50 X-50) - ak je otec X, tak X bude ako prve...
--				03.10.2017 - fix chybna PS rodica - pokial KR < 6 tak chyba... - miesto null sa tam objavili 0, preto osetrene na KR <> 0 a KR < 6
--				02.11.2017 - fix chyba H/R, kedy NULL sposobil chybu informaciu o R/H pod 6...
--						   - fix typ zvierata, kedy typ bol zakomentovany... (why? who? )
--				12.06.2018 - Ak ma rodic 5 plemien, tak sa berie do uvahy aj to 5....
--				12.07.2018 - Prve plemeno sa prisposobi ostatnym - problem s poslednym plemenom, kedy 6.0 -> 5.9 a MIN je 6.0
--				15.11.2018 - Najprv sa prisposobi posledne (ako predtym) a pokial je mensie ako 6.0, tak sa prisposobi prvy...
--						     - Problem s prvym plemenom, kedy rodic bol '100' a potomok '49.5'...
--				26.11.2018 - Fix KR, kde davalo zly podiel krvi -> premenna KR_pom sa nenastavila na novu -> po pridani dalsej premennej problem vyresieny... 
--																-> pridana premenna @KR_pomRobisSiZoMnaPrdel  (autor V.D.)
-- =============================================

/*
CREATE TYPE TablePlem
as TABLE
 (					
					PL1 varchar(10) NULL,
					KR1 decimal(5,2) NULL,
					PL2 varchar(10) ,
					KR2 decimal(5,2) NULL,
					PL3 varchar(10) ,
					KR3 decimal(5,2) NULL,
					PL4 varchar(10) ,
					KR4 decimal(5,2) NULL,
					PL5 varchar(10) 
);

*/
CREATE FUNCTION [dbo].[C_aktual_plem_potomok_vypocet]
(
	@TABLE_O as TablePlem READONLY,
	@TABLE_M  as TablePlem READONLY
)	
RETURNS @table TABLE
					 (
					--potomok varchar(14) NULL,
					PL1 varchar(10) NULL,
					KR1 decimal(5,2) NULL,
					PL2 varchar(10) NULL,
					KR2 decimal(5,2) NULL,
					PL3 varchar(10) NULL,
					KR3 decimal(5,2) NULL,
					PL4 varchar(10) NULL,
					KR4 decimal(5,2) NULL,
					PL5 varchar(10) NULL,
					--Matka varchar(14) NULL,
					--skladba_M varchar(50) NULL,
					stav varchar (50) NULL
					)
--RETURNS @table TABLE
--					 (
--					--potomok varchar(14) NULL,
--					PL1 varchar(10) NULL,
--					KR1 float NULL,
--					PL2 varchar(10) NULL,
--					KR2 float NULL,
--					PL3 varchar(10) NULL,
--					KR3 float NULL,
--					PL4 varchar(10) NULL,
--					KR4 float NULL,
--					PL5 varchar(10) NULL,
--					--Matka varchar(14) NULL,
--					--skladba_M varchar(50) NULL,
--					stav varchar (50) NULL
--					)
AS
BEGIN
	declare 
	@PL1_O [varchar](2),
	@KR1_O [decimal](5,2),
	@PL2_O [varchar](2),
	@KR2_O [decimal](5,2),
	@PL3_O [varchar](2),
	@KR3_O [decimal](5,2),
	@PL4_O [varchar](2),
	@KR4_O [decimal](5,2),
	@PL5_O [varchar](2),
	
	@KR5_O [decimal](5,2),
	
	@PL1_M [varchar](2),
	@KR1_M [decimal](5,2),
	@PL2_M [varchar](2),
	@KR2_M [decimal](5,2),
	@PL3_M [varchar](2),
	@KR3_M [decimal](5,2),
	@PL4_M [varchar](2),
	@KR4_M [decimal](5,2),
	@PL5_M [varchar](2),

	@KR5_M [decimal](5,2),
	
	@PL1_P [varchar](2) ,
	@KR1_P [decimal](5,2) ,
	@PL2_P [varchar](2) ,
	@KR2_P [decimal](5,2) ,
	@PL3_P [varchar](2) ,
	@KR3_P [decimal](5,2) ,
	@PL4_P [varchar](2) ,
	@KR4_P [decimal](5,2) ,
	@PL5_P [varchar](2) 
		
	declare @podiely table 
	(		
		PL [varchar](2),
		KR [decimal](5,2),
		Pr [int],
		Typ int
		--Pohl int
	)
	
	declare @podiely_usp table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2),
		Typ int
		--Pohl int
	)

	--declare @temp_podiely_usp table 
	--(
	--	ID [int] identity (1,1),
	--	PL [varchar](2),
	--	KR [decimal](5,2),
	--	Typ int
	--	--Pohl int
	--)

	declare @podiely_usp_pred table 
	(
		ID [int] identity (1,1),
		PL [varchar](2),
		KR [decimal](5,2),
		Typ int
		--Pohl int
	)
		
	declare @PriznakChyby [varchar](1),
	
	@PL_pom [varchar](2),
	@KR_pom [decimal](5,2),
	@KR_pomRobisSiZoMnaPrdel [decimal](5,2),
	@zvys [decimal](5,2),
	@PL1_pom [varchar](2),
	@KR1_pom [decimal](5,2),
	@PL2_pom [varchar](2),
	@KR2_pom [decimal](5,2),
	@zvPlem [decimal](5,2),

	@HR_M [decimal](5,2),
	@HR_O [decimal](5,2),
	@SM [decimal](5,2),
	@HR_pod_12 [decimal](5,2),
	@HR_nad_12 [decimal](5,2),
	@HR_Max varchar(1)

	--insert into @table
	--values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

	
	--ak neexistuje usne cislo rodica tak KONCI
	--if (@USCISLO_O is null or len(@USCISLO_O) != 14)
	--	return;		
	--if (@USCISLO_M is null or len(@USCISLO_M) != 14)
	--	return;

	--delete table @table;
	--truncate table @table;
		
    -- zakomentovane kvoli tomu, ze sa neprepocitalo plemeno ak chybal otec alebo matka (boli null) (2016-02-26)
	--if ((@USCISLO_O is null or len(@USCISLO_O) != 14) 
	--	or (@USCISLO_M is null or len(@USCISLO_M) != 14))
	--	begin
	--		--insert into @table (stav) values ('chyba rodic');
	--		insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,  NULL, NULL, 'chyba rodic');
	--		return;
	--	end
	
	--if (@CHOVATEL is null or @CHOVATEL = '')
	--	return;
	


	select @PL1_O = replace(PL1, ' ', '') ,
		@KR1_O = KR1, 
		@PL2_O = replace(PL2, ' ', '') ,
		@KR2_O = KR2, 
		@PL3_O = replace(PL3, ' ', '') ,
		@KR3_O = KR3, 
		@PL4_O = replace(PL4, ' ', '') ,
		@KR4_O = KR4, 
		@PL5_O = replace(PL5, ' ', '') 
	--	@USCISLO_O = USCISLO
	from @Table_O 
	--where USCISLO = @USCISLO_O

	select @PL1_M = replace(c.PL1, ' ', '') ,
		@KR1_M = c.KR1, 
		@PL2_M = replace(c.PL2, ' ', '') ,
		@KR2_M = c.KR2, 
		@PL3_M = replace(c.PL3, ' ', '') ,
		@KR3_M = c.KR3, 
		@PL4_M = replace(c.PL4, ' ', '') ,
		@KR4_M = c.KR4, 
		@PL5_M = replace(c.PL5, ' ', '') 
	--	@USCISLO_M = USCISLO
	from @Table_M as c

	if @PL5_O is not null
	begin
		set @KR5_O = 100.0 - isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0)
	end;

	if @PL5_M is not null
	begin
		set @KR5_M = 100.0 - isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0)
	end


	--ak by sa otec alebo matka nemal PS.. KONCI
	--if (@PL1_O is null or @PL1_O = '')
	--	return ;		
	--if (@PL1_M is null or @PL1_M = '')		
	--	return ;

	--if ( (@PL1_O is null or @PL1_O = '') 
	--	or (@PL1_M is null or @PL1_M = '') )		
	--	begin
	--		--insert into @table (stav) values ('chyba PS rodica');
	--		insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'nie je PS rodica');
	--		return;
	--	end


	if (@PL1_O is null or @PL1_O = '')
	begin
		set @PL1_O = 'X'
		set @KR1_O = '100'
	end
		 
	if (@PL1_M is null or @PL1_M = '') 
	begin
		set @PL1_M = 'X'
		set @KR1_M = '100'	
		end


	-- AK SUCET PS rodica nie je 100 tak KONIEC
	--if (isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0) <> 100 )
	--	return ;
		
	--if (isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0) <> 100 )
	--	return ;

	--if ( (isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0) <> 100 )
	--	or (isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0) <> 100 ) )		
	--	begin
	--		--insert into @table (stav) values ('chybny sucet PS rodica');
	--		insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chybny sucet PS rodica');
	--		return;
	--	end

	if ( ((isnull(@KR1_M, 0) + isnull(@KR2_M, 0) + isnull(@KR3_M, 0) + isnull(@KR4_M, 0) <> 100 ) and @PL5_M is null)
		or ((isnull(@KR1_O, 0) + isnull(@KR2_O, 0) + isnull(@KR3_O, 0) + isnull(@KR4_O, 0) <> 100 ) )  and @PL5_O is null)
		begin
			--insert into @table (stav) values ('chybny sucet PS rodica');
			insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chybny sucet PS rodica');
			return;
		end

	/*
		Ak ma rodic plemeno s podielom pod 6, tak skonci
	*/
	--if ( (isnull(@KR1_M, 100) < 6 OR isnull(@KR2_M, 100) < 6 OR isnull(@KR3_M, 100) < 6 OR isnull(@KR4_M, 100) < 6 )
	--	or (isnull(@KR1_O, 100) < 6 OR isnull(@KR2_O, 100) < 6 OR isnull(@KR3_O, 100) < 6 OR isnull(@KR4_O, 100) < 6 ) )		
	if (	   (isnull(@KR1_M, 100) < 6 
			OR (isnull(@KR2_M, 100) < 6 and @KR2_M <> 0) 
			OR (isnull(@KR3_M, 100) < 6 and @KR3_M <> 0)
			OR (isnull(@KR4_M, 100) < 6 and @KR4_M <> 0)
			OR (@PL5_M is null and isnull(@KR5_M, 100) < 6 and @KR5_M <> 0)
			 )
		or (    isnull(@KR1_O, 100) < 6 
			OR (isnull(@KR2_O, 100) < 6  and @KR2_O <> 0) 
			OR (isnull(@KR3_O, 100) < 6  and @KR3_O <> 0) 
			OR (isnull(@KR4_O, 100) < 6  and @KR4_O <> 0) 
			OR (@PL5_O is null and isnull(@KR5_O, 100) < 6 and @KR5_O <> 0)
			) )		
		begin
			--insert into @table (stav) values ('chybny sucet PS rodica');
			--insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chybna PS rodica');
			insert into @table values (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'chyba: Plemeno rodica < 6.0');
			return;
		end
		

	-- plemeno otca
	if @KR1_O = 0
	begin
		if @PL1_O is not null
			set @PL_pom = (select @PL1_O)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 1, 1)
	end
	else begin
		set @PL_pom = (select @PL1_O)
		set @KR_pom = (select @KR1_O/2)
		insert @podiely values (@PL_pom, @KR_pom, 1, 1)		
		if @PL2_O is not null
		begin
			set @PL_pom = (select @PL2_O)
			set @KR_pom = (select @KR2_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 2, 1)			
		end
		if @PL3_O is not null
		begin
			set @PL_pom = (select @PL3_O)
			set @KR_pom = (select @KR3_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 3, 1)			
		end		
		if @PL4_O is not null
		begin
			set @PL_pom = (select @PL4_O)
			set @KR_pom = (select @KR4_O/2)
			insert @podiely values (@PL_pom, @KR_pom, 4, 1)			
		end	
		if @PL5_O is not null
		begin
			set @PL_pom = (select @PL5_O)
			set @KR_pom = (select (100 - (@KR1_O + @KR2_O + @KR3_O + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 5, 1)			
		end			
	end
		
	--zistenie, kolko plemien H a R ma otec
	set @HR_O = (select COUNT(*) from @podiely where PL in ('H','R'))
	
	
	-- plemeno matky
	if @KR1_M = 0
	begin
		if @PL1_M is not null
			set @PL_pom = (select @PL1_M)
		else
			set @PL_pom = (select 'X')
		set @KR_pom = (select 100/2)
		insert @podiely values (@PL_pom, @KR_pom, 6, 0)
	end
	else begin
		set @PL_pom = (select @PL1_M)
		set @KR_pom = (select @KR1_M/2)
		insert @podiely values (@PL_pom, @KR_pom, 6, 0)
		if @PL2_M is not null
		begin
			set @PL_pom = (select @PL2_M)
			set @KR_pom = (select @KR2_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 7, 0)
		end
		if @PL3_M is not null
		begin
			set @PL_pom = (select @PL3_M)
			set @KR_pom = (select @KR3_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 8, 0)
		end		
		if @PL4_M is not null
		begin
			set @PL_pom = (select @PL4_M)
			set @KR_pom = (select @KR4_M/2)
			insert @podiely values (@PL_pom, @KR_pom, 9, 0)
		end	
		if @PL5_M is not null
		begin
			set @PL_pom = (select @PL5_M)
			set @KR_pom = (select (100 - (@KR1_M + @KR2_M + @KR3_M + @KR4_M))/2)
			insert @podiely values (@PL_pom, @KR_pom, 10, 0)			
		end			
	end

	update @podiely
	--set Typ = select typ from CP_PlemenoTyp where PL = @podiely.PL
	set Typ = t.typ
	from @podiely p
	inner join CP_PlemenoTyp t on t.PL = p.PL


	--zistenie, kolko plemien H a R ma matka
	set @HR_M = (select COUNT(*) from @podiely where PL in ('H','R')) -  @HR_O

	--1.6.2015 - aktualizacia - vyhodene X ako posledne
	--ak X, nastav najvysiu prioritu
	--if (select COUNT(*) from @podiely where PL = 'X') > 0	
	--begin
	--	update @podiely
	--	set Pr = '100'
	--	where PL = 'X'
	--end


	-- SR + SB -> SM
	set @SM = (select COUNT(*) from @podiely where PL in ('SR','SB'))
	if @SM > 0
	begin
		update @podiely
		set PL = 'SM'
		where PL in ('SR','SB')
	end

	-- ak by bolo (H aj R) a  H alebo R bude mensie ako 6, tak pripocitaj ich k sebe, aby nezaniklo
	-- fix 02/11/2017 - ak sa jedno z plemien nenaslo, vratilo NULL, aj ked v druhom bolo R/H pod 6...
	--set @HR_pod_12 = ( (select 1 where  (select SUM(kr) as s from @podiely where PL = 'R') < 6)
	--				+ (select 1 where  (select SUM(kr) as s from @podiely where PL = 'H') < 6) )
	set @HR_pod_12 = ( isnull((select 1 where  (select SUM(kr) as s from @podiely where PL = 'R') < 6), 0)
					+ isnull((select 1 where  (select SUM(kr) as s from @podiely where PL = 'H') < 6), 0) )

	set @HR_Max = (select case when (select SUM(kr) as s from @podiely where PL = 'H') < (select SUM(kr) as s from @podiely where PL = 'R')
					then 'R' else 'H' END)

		
	/* 
		Ak je vela plemien, tak H a R sa spoja, ak sa tam nachadzaju
		Spoja sa do plemena, s najvacsim podielom (R-90 - H-10 -> R-100)
		--toto neplati: Ale ak iba jedno zviera obsahuje aj H aj R, tak ich nespajaj
	*/
	--if ( ((select COUNT(distinct pl) from @podiely where KR > 6) > 4
	if ( ((select COUNT(distinct pl) from @podiely where KR >= 12) > 4	--musi byt viac ako 4 plema, nad 11 (podielom krvi)
	--if ((select COUNT(distinct pl) from @podiely ) > 5
	--and  (@HR_O <> 2 and @HR_M <> 2))
	and  (@HR_O > 0 or @HR_M > 0)-- and (@HR_O = 2 or @HR_M = 2))
	)
	or @HR_pod_12 > 0)
	begin
		if (@HR_Max = 'H')
		begin 
			update @podiely
			set PL = 'H'
			where PL = 'R'
		end
		else
		begin
			update @podiely
			set PL = 'R'
			where PL = 'H'
		end
	end

	
	
	-- scitanie plemien a usporiadanie na zaklade priority podla rodica
	--insert @podiely_usp 
	--select PL, ROUND(sum(isnull(KR, 0)),1) from @podiely
	--GROUP by PL
	----order by SUM(isnull(KR, 0)) desc, PL asc
	insert @podiely_usp_pred 
	--select PL, ROUND(sum(isnull(KR, 0)),1) as KR from @podiely	
	select PL, sum(isnull(KR, 0)) as KR, Min(Typ) from @podiely			--hmm preco ROUND? - zatial slo prec
	GROUP by PL
	order by KR desc, Min(Pr) asc--, Min(ID) asc	




	--set @zvPlem = (select KR from @podiely_usp where KR='R')

	-- podla FANDu: 12.5 sa neberei do uvahy...
	-- kontrola:  < 12,5 % cudzieho plemena u hlavneho plemena S
	--			  < 6 %  cudzieho plemena
	--if (select top (1) PL from @podiely_usp) = 'S'
	--	set @zvPlem = (select 12.5)
	--else
	set @zvPlem = (select 6)
	
	--if @zvPlem > 0
	---- treba pricitat zvyskove plemeno k hlavnemu
	--begin
	--	update @podiely_usp
	--	set KR =  KR + isnull((select sum(KR) from @podiely_usp
	--	where KR < @zvPlem), 0)
	--	where Pohl
	--	--where ID = 1
		
	--	--update @podiely_usp
	--	--set KR = 0, PL = null
	--	--where KR < @zvPlem

	--	DELETE FROM  @podiely_usp
	--	where KR < @zvPlem
	--end

	

		--SELECT * FROM #plemeno
	-- add 22.6.2015	
	-- preved plemeno pod 6 resp. s najmensim podielom s ID 5 a viac do prislusneho plemena podla typu, prip. k najvacsiemu
	-- update: 29.6.2015
	-- bude to trochu inak....

	declare @_KR decimal(5,2) ,
			@_PL varchar(2),
			--@_Pohl int
			@_Typ int,
			@_ID int
			--@PR int

	declare zviera cursor  for
	select PL, KR from @podiely_usp_pred where (KR < @zvPlem or ID > 4)
	open zviera	
	fetch next from zviera into @_PL, @_KR;
	WHILE @@FETCH_STATUS = 0 
		begin
			-- zistim typ plemena
			set @_Typ = (select typ from CP_PlemenoTyp where PL = @_PL);

			-- vloz do najvacsieho svojho plemena						
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ and PL <> @_PL and KR >= @zvPlem order by ID asc)
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
			set @_ID = (select top 1 ID from @podiely_usp_pred where Typ = @_Typ and PL <> @_PL and (KR >= @zvPlem  and ID <= 4) order by ID asc)
			
			--set @PR = (select PR from @podiely where Typ = @_Typ and PL = @_PL)
			--if (@_PL = 'X' and @PR = 0)
			if (@_PL = 'X' and @_KR = '50')
				set @_ID = 0
			
			--set @_ID = (select top 1 ID from @podiely_usp where Typ = @_Typ order by KR desc)

			--pokail neexistuje zhodne plemeno, vloz ho podla zadania do toho spravneho
			if (@_ID is null)
				--set @_ID = 1
				begin
					declare	@ML_ID int,
							@MP_ID int,
							@KOMB_ID int,
							@X_ID int,
							@MAX_ID int

							--set @KOMB_ID = (select top 1 ID from @podiely_usp where Typ = 0 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @ML_ID = (select top 1 ID from @podiely_usp where Typ = 1 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @MP_ID = (select top 1 ID from @podiely_usp where Typ = 2 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @X_ID = (select top 1 ID from @podiely_usp where Typ = 3 and PL <> @_PL and KR >= @zvPlem order by ID asc)
							--set @MAX_ID = (select top 1 ID from @podiely_usp where PL <> @_PL and KR >= @zvPlem order by ID asc)
							
							--set @KOMB_ID = (select top 1 ID from @podiely_usp where Typ = 0 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @ML_ID = (select top 1 ID from @podiely_usp where Typ = 1 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @MP_ID = (select top 1 ID from @podiely_usp where Typ = 2 and PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							--set @X_ID = (select top 1 ID from @podiely_usp where Typ = 3 and PL <> @_PL and(KR >= @zvPlem  or ID <= 4) order by ID asc)

							set @KOMB_ID = (select top 1 ID from @podiely_usp_pred where Typ = 0 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @ML_ID = (select top 1 ID from @podiely_usp_pred where Typ = 1 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @MP_ID = (select top 1 ID from @podiely_usp_pred where Typ = 2 and PL <> @_PL and (KR >= @zvPlem and ID <= 4) order by ID asc)
							set @X_ID = (select top 1 ID from @podiely_usp_pred where Typ = 3 and PL <> @_PL and(KR >= @zvPlem and ID <= 4) order by ID asc)

							--set @MAX_ID = (select top 1 ID from @podiely_usp where PL <> @_PL and (KR >= @zvPlem  or ID <= 4) order by ID asc)
							set @MAX_ID = (select ID from @podiely_usp_pred where ID = 1)

							-- KOMB -> ML -> X -> MP
							--if(@_Typ = 0)
							set @_ID =	CASE @_Typ
											-- KOMB -> ML -> X -> MP
											WHEN 0 THEN
												CASE
													WHEN @ML_ID is not null THEN @ML_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @MP_ID 
												END
											-- ML -> KOMB -> X -> MP
											WHEN 1 THEN
												CASE
													WHEN @KOMB_ID is not null THEN @KOMB_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @MP_ID 
												END
											--	MP-> KOMB -> X -> ML											
											WHEN 2 THEN
												CASE
													WHEN @KOMB_ID is not null THEN @KOMB_ID 
													WHEN @X_ID is not null THEN @X_ID 
													ELSE @ML_ID 
												END
											--  X -> Plemeno s najvacsim podielom
											ELSE
												@MAX_ID
								
										--set @_ID =	CASE 
										--CASE
										--				WHEN @ML_ID is not null THEN @ML_ID 
										--				WHEN @X_ID is not null THEN @X_ID 
										--				ELSE @MP_ID 
										--			END

										END
				end


--	ML -> KOMB -> X -> MP
--	KOMB -> ML -> X -> MP
--  X -> Plemeno s najvacsim podielom
--	MP-> KOMB -> X -> ML


			update @podiely_usp_pred
			set KR = KR + @_KR
			where ID = @_ID
		fetch next from zviera into @_PL, @_KR;
		end
	close zviera;
	deallocate zviera;


	DELETE FROM  @podiely_usp_pred
	where KR < @zvPlem

	--este raz usporiadaj po zmene typu plemena
	--insert @podiely_usp 
	insert into @podiely_usp (PL, KR, Typ)	
	select PL, KR, Typ from @podiely_usp_pred
	order by KR desc, ID asc

	--delete from @podiely_usp

	----insert into @podiely_usp (PL, KR)
	----values ('H', 100)

	----SET IDENTITY_INSERT @podiely_usp ON

	--insert into @podiely_usp (PL, KR, Typ)
	--select PL, KR, Typ from @temp_podiely_usp order by ID asc

	----SET IDENTITY_INSERT @podiely_usp OFF

	--zaokruhlenie na 1 desatine
	update @podiely_usp
		set KR = ROUND(isnull(KR, 0),1)

	-- rozdelenie vypocitanych podielov na jednotlive polozky
	if (select COUNT(*) from @podiely_usp) > 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)		
		--update 12.07.2018 - Prve plemeno sa prisposobi ostatnym - problem s poslednym plemenom, kedy 6.0 -> 5.9 a MIN je 6.0
		--if @KR_pom <> 100	
		--	set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		--update 15.11.2018 - Najprv sa prisposoby posledne (ako predtym) a pokial je mensie ako 6.0, tak sa prisposobi prvy...
		--					- Problem s prvym plemenom, kedy rodic bol '100' a potomok '49.5'...
		if @KR_pom <> 100
			set @KR_pomRobisSiZoMnaPrdel = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
			if @KR_pomRobisSiZoMnaPrdel >= 6.0
				set @KR4_P = @KR_pomRobisSiZoMnaPrdel
			else
				set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))			

		--if @KR_pom > 100			
		--	set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
		---- prirad dalsie plemena > 4 k prvemu...
		--if @KR_pom < 100
		--	set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))
		 ----PL5 sa uy nebude uvadzat.. preto NULL
		--select @PL5_P = PL from @podiely_usp where ID = 5		
		set @PL5_P = (select null)
	end
	
	if (select COUNT(*) from @podiely_usp) = 4
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = PL, @KR4_P = KR from @podiely_usp where ID = 4	
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P + @KR4_P)
		if @KR_pom > 100
			begin
			--set @KR4_P = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
			set @KR_pomRobisSiZoMnaPrdel = (select 100 - (@KR1_P + @KR2_P + @KR3_P))
			if @KR_pomRobisSiZoMnaPrdel >= 6.0
				set @KR4_P = @KR_pomRobisSiZoMnaPrdel
			else
				set @KR1_P = (select 100 - (@KR4_P + @KR2_P + @KR3_P))	
			end
		else
			if @KR_pom < 100	
			begin
				set @zvys =  (select 100 - @KR_pom)
				if @PL1_P != 'X'
					set @KR1_P = (select @KR1_P + @zvys)
				else
					set @KR2_P = (select @KR2_P + @zvys)				
			end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 3
	begin
		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		select @PL3_P = PL, @KR3_P = KR from @podiely_usp where ID = 3
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P + @KR3_P)
		--if @KR_pom > 100
		--	set @KR3_P = (select 100 - (@KR1_P + @KR2_P))		
		--update 12.07.2018 - Prve plemeno sa prisposobi ostatnym - problem s poslednym plemenom, kedy 6.0 -> 5.9 a MIN je 6.0
		--if @KR_pom > 100	
		--	set @KR1_P = (select 100 - (@KR2_P + @KR3_P))

		--update 15.11.2018 - Najprv sa prisposoby posledne (ako predtym) a pokial je mensie ako 6.0, tak sa prisposobi prvy...
		--					- Problem s prvym plemenom, kedy rodic bol '100' a potomok '49.5'...
		if @KR_pom > 100
		begin
			set @KR_pomRobisSiZoMnaPrdel = (select 100 - (@KR1_P + @KR2_P))
			if @KR_pomRobisSiZoMnaPrdel >= 6.0
				set @KR3_P = @KR_pomRobisSiZoMnaPrdel
			else
				set @KR1_P = (select 100 - (@KR2_P + @KR3_P))	
		end
		else
			if @KR_pom < 100	
			begin
				set @zvys =  (select 100 - @KR_pom)
				if @PL1_P != 'X'
					set @KR1_P = (select @KR1_P + @zvys)
				else
					set @KR2_P = (select @KR2_P + @zvys)				
			end	 
	end		

	if (select COUNT(*) from @podiely_usp) = 2
	begin
		--select @PL1_pom = PL, @KR1_pom = KR from @podiely_usp where ID = 1
		--select @PL2_pom = PL, @KR2_pom = KR from @podiely_usp where ID = 2
		--if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
		--	set @PL1_P = (select @PL2_pom)		
		--else
		--	set @PL1_P = (select @PL1_pom)			
		--if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
		--	set @KR1_P = (select @KR2_pom)		
		--else
		--	set @KR1_P = (select @KR1_pom)
			
		--if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
		--	set @PL2_P = (select @PL1_pom)		
		--else
		--	set @PL2_P = (select @PL2_pom)			
		--if @PL1_pom = 'X' and @KR1_pom = @KR2_pom
		--	set @KR2_P = (select @KR1_pom)		
		--else
		--	set @KR2_P = (select @KR2_pom)

		select @PL1_P = PL, @KR1_P = KR from @podiely_usp where ID = 1
		select @PL2_P = PL, @KR2_P = KR from @podiely_usp where ID = 2
		
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0		
		set @PL5_P = (select null)
		set @KR_pom = (select @KR1_P + @KR2_P)
		--if @KR_pom > 100
		--	set @KR2_P = (select 100 - @KR1_P)
		--update 12.07.2018 - Prve plemeno sa prisposobi ostatnym - problem s poslednym plemenom, kedy 6.0 -> 5.9 a MIN je 6.0
		--if @KR_pom > 100	
		--	set @KR1_P = (select 100 - (@KR2_P))

		--update 15.11.2018 - Najprv sa prisposoby posledne (ako predtym) a pokial je mensie ako 6.0, tak sa prisposobi prvy...
		--					- Problem s prvym plemenom, kedy rodic bol '100' a potomok '49.5'...
		if @KR_pom > 100
		begin
			set @KR_pomRobisSiZoMnaPrdel = (select 100 - (@KR1_P))
			if @KR_pomRobisSiZoMnaPrdel >= 6.0
				set @KR2_P = @KR_pomRobisSiZoMnaPrdel
			else
				set @KR1_P = (select 100 - (@KR2_P))	
		end
		else
			if @KR_pom < 100	
			begin
				set @zvys =  (select 100 - @KR_pom)
				if @PL1_P != 'X'
					set @KR1_P = (select @KR1_P + @zvys)
				else
					set @KR2_P = (select @KR2_P + @zvys)				
			end	
	end	
	
	if (select COUNT(*) from @podiely_usp) = 1
	begin
		select @PL1_P = PL, @KR1_P = 100 from @podiely_usp where ID = 1
		select @PL2_P = null, @KR2_P = 0
		select @PL3_P = null, @KR3_P = 0
		select @PL4_P = null, @KR4_P = 0
		select @PL5_P = null		
	end	
	
	-- oprava podielov krvi  (0 -> null)
	if (@KR1_P = 0)
		set @KR1_P = NULL
	if (@KR2_P = 0)
		set @KR2_P = NULL
	if (@KR3_P = 0)
		set @KR3_P = NULL
	if (@KR4_P = 0)
		set @KR4_P = NULL	

	insert into @table
	select --'              ' AS Potomok, 
	@PL1_P AS PL1, 
	@KR1_P AS KR1, 
	@PL2_P AS PL2, 
	@KR2_P AS KR2, 
	@PL3_P AS PL3, 
	@KR3_P AS KR3, 
	@PL4_P AS PL4, 
	@KR4_P AS KR4, 
	@PL5_P AS PL5,	
--	@USCISLO_M AS Matka,

	--		@PL1_M + '-' + CONVERT(varchar, cast(ISNULL(@KR1_M, 0) as float)) + ' ' +
	--ISNULL(@PL2_M + '-' + CONVERT(varchar, cast(ISNULL(@KR2_M, 0) as float)) + ' ','') +
	--ISNULL(@PL3_M + '-' + CONVERT(varchar, cast(ISNULL(@KR3_M, 0) as float)) + ' ','') +
	--ISNULL(@PL4_M + '-' + CONVERT(varchar, cast(ISNULL(@KR4_M, 0) as float)) + ' ','') +
	--ISNULL(@PL5_M, '')
	-- AS SKUPINA_M,
	 'ok' as Stav

	return;
END

/* Test parametrov
	-- v SQL deklarovana premenna ako tabulka - TablePlem
	declare @TABLE_M as TablePlem
	declare @TABLE_O as TablePlem

	--insert into @TABLE_O select PL1, KR1, PL2, KR2, PL3, KR3, PL4, KR4, PL5	

	insert into @TABLE_O select 'S', 80, 'A', 20, NULL, NULL, NULL, NULL, NULL
	insert into @TABLE_M select 'S', 81, 'R', 12, 'A', 7, NULL, NULL, NULL
	select * from [C_aktual_plem_potomok_vypocet](@TABLE_O, @TABLE_M)

	insert into @TABLE_O select 'H', 100, NULL, NULL, NULL, NULL, NULL, NULL, NULL
	insert into @TABLE_M select 'S', 79, 'A', 11, 'R', 10, NULL, NULL, NULL
	select * from [C_aktual_plem_potomok_vypocet](@TABLE_O, @TABLE_M)

*/
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 13.10.2017
-- Description:	Vrati vsetky PH hodnoty zierata
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PH] 
(	
	-- Add the parameters for the function here
 --@jedcis varchar(8)
)
RETURNS TABLE 
AS
RETURN 
(
	--select 
	--	(select case when PHMLIEKO > 0 then '+' else '' end + cast(PHMLIEKO as varchar)
	--	from SM_BLPHML where jedcis = @JEDCIS) as PHMlieko,
	--	(select case when PHVELVRH > 0 then '+' else '' end + cast(PHVELVRH as varchar)
	--	from SM_BLPHVV where jedcis = @JEDCIS) as PHVelVrh,
	--	(select case when PHHMODS > 0 then '+' else '' end + cast(PHHMODS as varchar)
	--	from SM_BLPHHO where jedcis = @JEDCIS) as PHHmOds,
	--	@jedcis as jedcis

	select
		(select case when PHMLIEKO > 0 then '+' else '' end + cast(PHMLIEKO as varchar)
		from SM_BLPHML where jedcis = o.JEDCIS) as PHMlieko,
		(select case when PHVELVRH > 0 then '+' else '' end + cast(PHVELVRH as varchar)
		from SM_BLPHVV where jedcis = o.JEDCIS) as PHVelVrh,
		(select case when PHHMODS > 0 then '+' else '' end + cast(PHHMODS as varchar)
		from SM_BLPHHO where jedcis = o.JEDCIS) as PHHmOds,
		o.jedcis
		--@jedcis as jedcis
	from 
	(
		select  jedcis from SP_Ovecky
	) o
)


--		select * from [dbo].[function_SP_PH] ('00379611')

--		podla testov je druha varianta rychlejsia
--		select * from [dbo].[function_SP_PH] () where jedcis ='00379611'
go

-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 02.06.2015
-- Last update: 01.07.2015 -- osetrenie chyby pri duplicitnom plemene
--				02.07.2015 -- vracaju sa aj NULL spravnePS - nastava v pripade, kedy sa neda vypocitat, pretoze je chyba v rodicovi
								-- tj. ma neznameho rodica, rodic nema PS, rodic ma chybny sucet PS
--				03.07.2017 -- oprava z vyberu teliat - kedy neber uz tela pokial je aj krava
-- Description:	Vypocet chybnych Plemennych skladieb
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_VypocNespravnaPlemennaSkladba]
--	@CHOVATEL [varchar] (9)
AS
BEGIN
	DELETE FROM CP_VypocNespravnaPlemennaSkladba 

	DECLARE 
		@chovatel as varchar(9),
		@uscislo as varchar(14),
		@otec as varchar(14),
		@matka as varchar(14),
		@kategoria as int,

		@PL1 [varchar](2),
		@KR1 [decimal](5,2),
		@PL2 [varchar](2),
		@KR2 [decimal](5,2),
		@PL3 [varchar](2),
		@KR3 [decimal](5,2),
		@PL4 [varchar](2),
		@KR4 [decimal](5,2),
		@PL5 [varchar](2),	

		@skladba as varchar(50),
		@pocet as int,
		@pocet_zmeny as int,
		@i as int;

	set @i = 1;
	set @pocet_zmeny = 0;

	set @pocet = (select count(*) from cm_krava
	where DOVVYR IS NULL 
	--AND CISKRAVY is not null --AND CHOVATEL = @chovatel
	and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
	and (OUSCIS is not null and MA is not null) )
	+
	(select count(*) from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null --AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null) )
	and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) )

	declare krava cursor  for	

	SELECT CISKRAVY, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUSCIS, MA, CHOVATEL, 1 as kategoria
	from cm_krava 
	where DOVVYR IS NULL 
	--AND CISKRAVY is not null 
-- AND CHOVATEL = @chovatel
		and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
		and (OUSCIS is not null and MA is not null)
	UNION
	SELECT CISTELATA, pl1,ISNULL(kr1,0),pl2,ISNULL(kr2,0),pl3,ISNULL(kr3,0),pl4,ISNULL(kr4,0),PL5, OUC, MATKA, CHOVATEL, 2 as kategoria
	from cm_telata 
	where DOVVYR IS NULL 
	AND CISTELATA is not null 
--	AND CHOVATEL = @chovatel
	--and (OUC is not null or MATKA is not null)
		and (datediff(day, datnar, GETDATE())/30.42 <= 36 or datnar is null) 
		and CISTELATA not in (select ciskravy from cm_krava  where DOVVYR IS NULL		--FIX 03.07.2017 kedy neber uz tela pokial je aj krava
							AND CHOVATEL =  @chovatel
							and PRIZNAKKU is not null and PRIZNAKKU in (1, 2) 
							and (OUSCIS is not null and MA is not null)							
						)

	declare @stav2 varchar(50);

	open krava	
	fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;	
	WHILE @@FETCH_STATUS = 0 
		begin
			set @i = @i + 1;
			if (@i % 1000 = 0)
				print CAST(@i as varchar) + ' z ' + CAST(@pocet as varchar)
			--set @skladba = (select ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
			set @skladba = null
			set @stav2 = 'zhoda'
			select @skladba = case when p.PL1  is not null then
								ISNULL(p.PL1 + '-' + CONVERT(varchar, p.KR1), '') + '  ' 
								+ ISNULL(p.PL2 + '-' + CONVERT(varchar, p.KR2), '') + '  ' 
								+ ISNULL(p.PL3 + '-' + CONVERT(varchar, p.KR3), '') + '  ' 
								+ ISNULL(p.PL4 + '-' + CONVERT(varchar, p.KR4), '') + '  ' 
								+ ISNULL(p.PL5, '') 
								end,--else '---' end,
								@stav2 = stav
							from C_aktual_plem_potomok_funkcia (@otec, @matka, @chovatel) as p
							where
								(
								--@PL1 <> p.PL1 OR
								--p.KR1 NOT BETWEEN @KR1 - 0.1 AND @KR1 + 0.1 OR
								----@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								--@PL2 <> p.PL2 OR
								--p.KR2 NOT BETWEEN @KR2 - 0.1 AND @KR2 + 0.1 OR
								----@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								--@PL3 <> p.PL3 OR
								----@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								--p.KR3 NOT BETWEEN @KR3 - 0.1 AND @KR3 + 0.1 OR
								--@PL4 <> p.PL4 OR
								----@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--p.KR4 NOT BETWEEN @KR4 - 0.1 AND @KR4 + 0.1 OR
								----@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								--@PL5 is not null
								--)
								@PL1 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR1 + 0.1 < isnull(p.KR1, 0) OR @KR1 - 0.1 > isnull(p.KR1, 0) OR 
								@PL2 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR2 + 0.1 < isnull(p.KR2, 0) OR @KR2 - 0.1 > isnull(p.KR2, 0) OR 
								@PL3 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR3 + 0.1 < isnull(p.KR3, 0) OR @KR3 - 0.1 > isnull(p.KR3, 0) OR 
								@PL4 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) OR
								@KR4 + 0.1 < isnull(p.KR4, 0) OR @KR4 - 0.1 > isnull(p.KR4, 0) OR 
								--@PL5 not in (p.PL1, p.PL2, p.PL3, p.PL4, p.PL5) 					
								@PL5 is not null
								)
								--podmienky pre osetrenie duplicity plemena
								OR
								(@PL1 in (@PL2, @PL3, @PL4, @PL5)
								or @PL2 in (@PL1, @PL3, @PL4, @PL5)
								or @PL3 in (@PL2, @PL1, @PL4, @PL5)
								or @PL4 in (@PL2, @PL3, @PL1, @PL5)
								or @PL5 in (@PL2, @PL3, @PL4, @PL1)
								)
								--(p.PL1 in (p.PL2, p.PL3, p.PL4, p.PL5)
								--or p.PL2 in (p.PL1, p.PL3, p.PL4, p.PL5)
								--or p.PL3 in (p.PL2, p.PL1, p.PL4, p.PL5)
								--or p.PL4 in (p.PL2, p.PL3, p.PL1, p.PL5)
								--or p.PL5 in (p.PL2, p.PL3, p.PL4, p.PL1))
							

			 print ('u: ' + @uscislo + 
					'    ch: ' + ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
								ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
								ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
								ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
								ISNULL(@PL5, '') + 
					'    s: ' + isNULL(@skladba, 'NULL') +
					'    stav: ' + isNULL(@stav2, 'NULL') )

			 --if (@skladba is not null and @stav2 = 'ok')
			 --if (@skladba is not null and @stav2 <> 'zhoda')

			 if (@stav2 <> 'zhoda')
			 --if (@skladba is not null)
			 begin
					set @pocet_zmeny = @pocet_zmeny + 1;

					insert into CP_VypocNespravnaPlemennaSkladba
					values ( @uscislo
							, @kategoria
							, ISNULL(@PL1 + '-' + CONVERT(varchar, CAST(@KR1 as float)), '') + '  ' + 
								ISNULL(@PL2 + '-' + CONVERT(varchar, CAST(@KR2 as float)), '') + '  ' + 
								ISNULL(@PL3 + '-' + CONVERT(varchar, CAST(@KR3 as float)), '') + '  ' + 
								ISNULL(@PL4 + '-' + CONVERT(varchar, CAST(@KR4 as float)), '') + '  ' + 
								ISNULL(@PL5, '')
							, @skladba, @chovatel	 )
			end
			fetch next from krava into @uscislo,@pl1,@kr1,@pl2,@kr2,@pl3,@kr3,@pl4,@kr4,@pl5, @otec, @matka, @chovatel, @kategoria;
		end
	close krava;
	deallocate krava;

	print 'najdenych rozdielov: ' + CAST(@pocet_zmeny as varchar)
END


--		exec [C_aktual_VypocNespravnaPlemennaSkladba] '810529011'


-- select * from CP_VypocNespravnaPlemennaSkladba

--	exec [C_aktual_VypocNespravnaPlemennaSkladba] 708711011
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016
-- Description:	Prepocet KUHD
-- =============================================

CREATE PROCEDURE CR_prepocet_KURHD @rok INT, @mesiac INT, @dekada INT 

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)

    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
		SELECT chov FROM dbo.CR_KURHD_MesUzavCH_1 WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada GROUP BY chov
		DELETE FROM CR_KURHD_MesUzavCH_1_backup WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
		INSERT CR_KURHD_MesUzavCH_1_backup
			SELECT * FROM dbo.CR_KURHD_MesUzavCH_1 WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
	
    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
				
				--	INSERT INTO CR_KUHD_MesUzavCH_1x_backup
				--	SELECT * FROM CR_KUHD_MesUzavCH_1x
				--	WHERE NOT EXISTS(SELECT * FROM CR_KUHD_MesUzavCH_1x_backup
				--		WHERE (chovatel = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada))
							
							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)

							EXEC dbo.CR_KUARHD_mesacne @chov,@rok,@mesiac,@dekada

	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


go


CREATE PROCEDURE [dbo].[C_ZZ_Mlieko_Kravy_21]
AS
BEGIN
	
	TRUNCATE TABLE [PLIS].[dbo].CP_Mlieko_Kravy_21

	declare @c varchar(9);
	declare @ouc as varchar(14);
	declare @o as varchar(7);
	declare @meno as varchar(50)
	declare @nazlin as varchar (30)
	declare @plemena as varchar(80)
	declare @poc12 as int;
	declare @pocnad12 as int;
	declare @po412P as float;
	declare @po4nad12P as float;
	declare @s as int
	declare @pocOtec as int;
	declare @percOtec as float;

	declare chov cursor for
	SELECT distinct chovatel
	 FROM [PLIS].[dbo].[View_CP_Mlieko_zoznamJalovic]

	open chov
	fetch next from chov into @c

	while @@FETCH_STATUS=0
	begin

		declare work cursor for

		SELECT DISTINCT t.OUC, t.OTECLIN + '-' + RIGHT ('000' + CONVERT (varchar, t.OTECREG), 3) AS otec, 
		k.MENO, l.nazlin, 
		ISNULL(k.PL1 + '-' + CONVERT (varchar, k.KR1), '') + '  ' + ISNULL(ISNULL(k.PL2, '') 
		+ '-' + CONVERT (varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT (varchar, k.KR3), '') + '  ' 
		+ ISNULL(k.PL4 + '-' + CONVERT (varchar, k.KR4), '') + '  ' + ISNULL(k.PL5 + '-' + 
		CONVERT (varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '') AS plemena, 
		p1.po4et AS Poc12, p2.po4et AS PocNad12, 
		CONVERT (float, p1.po4et * 100) * 1.00 / NULLIF (d1.pocet, 0) AS po4et12Perc, 
		CONVERT (float, p2.po4et * 100) * 1.00 / NULLIF (d2.pocet, 0) AS po4etNad12Perc, 

		/*(SELECT COUNT(*) AS Expr1 FROM plis.dbo.CM_Telata AS t WHERE (t.CHOVATEL = @c) AND 
		(t.DOVVYR IS NULL) AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> 62) AND 
		(t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak)) AND 
		(DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38))*/ NULL AS po4et, 

		ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0) AS preOtec, 
		/*CONVERT (float, (ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0)) * 100) * 1.00 / 
		NULLIF (d3.pocet, 0) AS percOtec*/
		CONVERT (float, (ISNULL(p1.po4et, 0) + ISNULL(p2.po4et, 0)) * 100) * 1.00 / 
		NULLIF (ISNULL(d1.pocet, 0) + ISNULL(d2.pocet, 0), 0) AS percOtec

			FROM plis.dbo.CM_Telata AS t 
		LEFT OUTER JOIN plis.dbo.CM_Byci AS k 
		ON isnull(t.OUC, '0') = isnull(k.USCISLO, '0') 
		LEFT OUTER JOIN plis.dbo.View_cp_telataPoOtecDo12m AS p1 
		ON isnull(t.OUC, '0') = isnull(p1.OUC, '0') AND t.CHOVATEL = p1.CHOVATEL and t.OTECLIN=p1.OTECLIN and t.OTECREG=p1.OTECREG
		LEFT OUTER JOIN plis.dbo.View_CP_telataPoOtcoNad12m AS p2 ON isnull(t.OUC, '0') = isnull(p2.OUC, '0') AND t.CHOVATEL = p2.CHOVATEL and t.OTECLIN=p2.OTECLIN and t.OTECREG=p2.OTECREG
		LEFT OUTER JOIN plis.dbo.CC_Linie AS l ON k.LIN = l.lin 
		LEFT OUTER JOIN plis.dbo.View_cp_telataDo12mes AS d1 ON t.CHOVATEL = d1.CHOVATEL 
		LEFT OUTER JOIN plis.dbo.View_CP_TelataNad12mes AS d2 ON t.CHOVATEL = d2.CHOVATEL 

		WHERE (t.CHOVATEL = @c) AND (t.DOVVYR IS NULL) 
		AND (t.POHLAVIE LIKE '%2') AND (t.POHLAVIE <> '62') 
		AND (t.CISTELATA NOT IN (SELECT CISKRAVY FROM plis.dbo.CM_Naplak AS CM_Naplak_1)) 
		AND (DATEDIFF(MONTH, t.DATNAR, GETDATE()) BETWEEN 0 AND 38) AND (t.PRIZNAKKU = '1')


		open work
		fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 

		while @@FETCH_STATUS=0
		begin
			insert into CP_Mlieko_Kravy_21 values (@c,@ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec)
			fetch next from work into @ouc,@o,@meno,@nazlin,@plemena,@poc12,@pocnad12,@po412P ,@po4nad12P,@s ,@pocOtec,@percOtec 
		end

		close work
		deallocate work;

	fetch next from chov into @c
	end

	close chov
	deallocate chov

END
go






-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 23.11.2011
-- Description:	Zisti ID byka zadaneho pomocou linie a registra alebo usneho cisla 
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_zisti_IDBYKA]
(
	@LIN [varchar](3),
    @REG [int],
    @USCISLO [varchar](15)
)
RETURNS [int]
	
AS	
BEGIN
	declare @IDBYKA [int]
	
	set @IDBYKA = null
	
	if @LIN is not null and @REG is not null
	begin
		set @IDBYKA = (select IDBYKA from PLIS.dbo.CM_Byci where LIN = @LIN and REG = @REG)
	end else
	if @USCISLO is not null
	begin
		set @IDBYKA = (select IDBYKA from PLIS.dbo.CM_Byci where USCISLO = @USCISLO)
	end
	
	return (@IDBYKA)
END


go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 26.9.2011
-- Description:	Zapise chybu do CE_ROZBORAK a CE_ROZBORAK_OPR
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_RP_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int],
	@ParOp bit
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	if @ParOp = 0
	begin
		select @PriznakChyby = ZNCH_CR_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby
		if @PriznakChyby is not NULL
			insert into CE_ROZBORAK(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	end 
	else 
		if @ParOp = 1 
		begin
			select @PriznakChyby = ZNCH_CR_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby	
			if @PriznakChyby is not NULL
				insert into CE_ROZBORAK_OPR(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)				
		end

	return (@PriznakChyby)

END

go



 CREATE procedure [dbo].[Rocenka_MPHD_17_SR]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

--declare @datumOd date ='2017-01-01'

	select distinct  --o.NAZOV as Okres_nazov, 
		p.kraj, p.okres, p.podnik, p.chov, p.mastal,
		K1_poc, K1_poc_120, K1_perc_120, K1_poc_210, K1_perc_210, K1_poc_365, K1_perc_365, K1_poc_500,
		K1_perc_500, K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365,
		K1_priem_ziv_prir_500, K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120 , MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365,
		MD1_poc_vaz_500, MD1_perc_500, MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, K2_poc_210, K2_perc_210, K2_poc_365, K2_perc_365, K2_poc_500,
		K2_Priem_Hm_120, K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_perc_500, K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene, 
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210 , J_perc_210, J_poc_vaz_365, J_perc_365, J_poc_vaz_500,
		J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,

		B_poc, B_poc_vaz_120, B_perc_120, B_poc_vaz_210, B_perc_210, B_poc_vaz_365, B_perc_365, B_poc_vaz_500,
		B_perc_500, B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,

		MD2_poc, MD2_poc_vaz_120 , MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene, rok


	
		from Roc_MPHD_Tab_17 as p
			  --left join  NC_OKRES as o  on p.kraj+ p.okres  = o.kraj + o.okres 
		  
		where p.kraj + p.okres + p.podnik + p.chov + p.mastal= '999999999'
			  and datepart(year,@datumOd) = p.rok
		 
	End
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[C_ZZ_Mlieko_UzavreteLaktSkladba_ReportTable]
	
AS
BEGIN
	SET NOCOUNT ON;

	TRUNCATE TABLE [PLIS].[dbo].CP_PoslednaUzavretaLakt	
	declare @t int;
	declare @chovatel varchar(9);
	declare @laktacia int;
	declare @po4 int;
	declare @porN int;
	declare @dni int;
	declare @dniN int;
	declare @mlieko int;
	declare @mliekoN int;
	declare @tuk int;
	declare @tukN int;
	declare @TaB int;
	declare @TaBN int;
	declare @vek float;
	declare @vekN float;
	declare @medzi int;
	declare @medziN int;
	declare @bielk int;
	declare @bielkN int;
	declare @lakdni int;
	declare @lakdniN int;
	declare @ciskrava varchar(14);
	declare @dniT int;
	declare @dniNT int;
	declare @mliekoT int;
	declare @mliekoNT int;
	declare @tukT int;
	declare @tukNT int;
	declare @TaBT int;
	declare @TaBNT int;
	declare @vekT float;
	declare @vekNT int;
	declare @medziT int;
	declare @medziNT int;
	declare @bielkT int;
	declare @bielkNT int;
	declare @lakdniT int;
	declare @lakdniNT int;

	SET @dniT =0;
	SET @dniNT =0;
	SET @mliekoT =0;
	SET @mliekoNT =0;
	SET @tukT =0;
	SET @tukNT =0;
	SET @TaBT =0;
	SET @TaBNT =0;
	SET @vekT =0;
	SET @vekNT =0;
	SET @medziT =0;
	SET @medziNT =0;
	SET @bielkT =0;
	SET @bielkNT =0;
	SET @lakdniT =0;
	SET @lakdniNT =0;
	set @t=0;
	set @laktacia='';
	set @chovatel='';

	 declare chov cursor for
	 select DISTINCT chovatel
	 from plis.dbo.CP_KravaPoslednaUzavLakt

	 open  chov
	 fetch next from chov into @chovatel
	 while @@FETCH_STATUS=0
	 begin
		
		print N'in chovatel '+convert(varchar,@chovatel);
		declare lakt cursor for
		select DISTINCT poslLakt
		from plis.dbo.CP_KravaPoslednaUzavLakt
		where chovatel=@chovatel;

		open lakt
		fetch next from lakt into @laktacia
		declare @n int;
		set @n=0;
		
		declare @pD int;
		declare @pM int;
		declare @pT int;
		declare @pB int;
		declare @pTaB int;
		declare @pMM int;
		declare @pDt int;
		declare @pMt int;
		declare @pTt int;
		declare @pBt int;
		declare @pTaBt int;
		declare @pMMt int;
		declare @pV int;
		declare @pVt int;

		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pDt =0;
		set @pMt =0;
		set @pTt =0;
		set @pBt =0;
		set @pTaBt =0;
		set @pMMt =0;
		set @pV=0;
		set @pVt=0;

		declare @i int;
		set @i=0; 

		while @@FETCH_STATUS=0
		begin

			declare data cursor for
			/*select lakdni,mlieko,tuk,bielk,BaT,kk.medziobd
			from plis.dbo.View_TestL1 as l
			inner join plis.dbo.CM_Krava as k on l.CISKRAVY=k.CISKRAVY
			inner join plis.dbo.CM_Laktacie as ll
			on l.CISKRAVY=ll.CISKRAVY
			inner join plis.dbo.CP_KravaPoslednaUzavLakt as kk
			on l.CISKRAVY=kk.cislokrava
			where l.chovatel=@chovatel
			and kk.poslLakt=@laktacia
			and k.DOVVYR is null
			and k.priznakku='1'
			and ll.PORLAK=l.maxLakt
			and kk.poslLakt=l.maxLakt*/
			select lakdni,mlieko,tuk,bielk,BaT,medziobd,cislokrava
			from plis.dbo.CP_KravaPoslednaUzavLakt
			where chovatel=@chovatel
			and poslLakt=@laktacia
			
			open data
			fetch next from data into @lakdni,@mlieko,@tuk,@bielk,@TaB,@medzi,@ciskrava;
			while @@FETCH_STATUS=0
				begin
						set @vek=(select vekOtel
									from plis.dbo.CP_KravaPoslednaUzavLakt
									where cislokrava=@ciskrava
								 )
						
						set @n=@n+1;

						if(@lakdni is not null and @lakdni>0)
						begin
							set @lakdniT=@lakdniT+@lakdni;
							set @pD=@pd+1;
						end
						
						if(@mlieko is not null and @mlieko>0)
						begin
							set @mliekoT=@mliekoT+@mlieko;
							set @pM=@pM+1;
						end
						
						if(@bielk is not null and @bielk>0)
						begin
							set @bielkT=@bielkT+@bielk;
							set @pB=@pB+1;
						end
						
						if(@tuk is not null and @tuk>0)
						begin
							set @tukT=@tukT+@tuk;
							set @pT=@pT+1;
						end
						
						if(@TaB is not null and @TaB>0)
						begin
							set @TaBT=@TaBT+@TaB;
							set @pTaB=@pTaB+1;
						end

						if(@medzi is not null and @medzi>0)
						begin
							set @medziT=@medziT+@medzi;
							set @pMM=@pMM+1;
						end

						if(@vek is not null and @vek>0)
						begin
							set @vekT=@vekT+@vek;
							set @pV=@pV+1;
						end

						
					fetch next from data into @lakdni,@mlieko,@tuk,@bielk,@TaB,@medzi,@ciskrava;
				end

				close data;
				deallocate data;

			declare dataN cursor for
			select lakdniN,mliekoN,tukN,bielkN,BaTN,medziobd,cislokrava
			from plis.dbo.CP_KravaPoslednaUzavLakt
			where chovatel=@chovatel
			and poslLakt=@laktacia
			and zmena in (30,40)
			
			open dataN
			fetch next from dataN into @lakdniN,@mliekoN,@tukN,@bielkN,@TaBN,@medziN,@ciskrava;
			while @@FETCH_STATUS=0
				begin
					set @vekN=(select vekOtel
									from plis.dbo.CP_KravaPoslednaUzavLakt
									where cislokrava=@ciskrava)
								
					if(@lakdniN is not null and @lakdniN>0)
						begin
							set @lakdniNT=@lakdniNT+@lakdniN;
							set @pDT=@pDt+1;
						end
						
					if(@mliekoN is not null and @mliekoN>0)
						begin
							set @mliekoNT=@mliekoNT+@mliekoN;
							set @pMT=@pMT+1;
						end
						
					if(@bielkN is not null and @bielkN>0)
						begin
							set @bielkNT=@bielkNT+@bielkN;
							set @pBT=@pBT+1;
						end
						
					if(@tukN is not null and @tukN>0)
						begin
							set @tukNT=@tukNT+@tukN;
							set @pTt=@pTt+1;
						end
						
					if(@TaBN is not null and @TaBN>0)
						begin
							set @TaBNT=@TaBNT+@TaBN;
							set @pTaBt=@pTaBt+1;
						end
						
						if(@medziN is not null and @medziN>0)
						begin
							set @medziNT=@medziNT+@medziN;
							set @pMMt=@pMMt+1;
						end
						
						if(@vekN is not null and @vekN>0)
						begin
							set @vekNT=@vekNT+@vekN;
							set @pVT=@pVT+1;
						end

						set @i=@i+1;
					fetch next from dataN into @lakdniN,@mliekoN,@tukN,@bielkN,@TaBN,@medziN,@ciskrava;
				end
			close dataN;
			deallocate dataN;



																		IF(@lakdniT=0)begin
																		set @pD = NULL;
																		end
																		if(@lakdniNT=0)begin
																		set @pDt= NULL;
																		end
																		if(@mliekoT=0)
																		begin set @pM=Null; end
																		if(@mliekoNT=0)
																		begin set @pMt=null; end
																		if(@tukT=0)
																		begin set @pT=null; end
																		if(@tukNT=0)
																		begin set @pTt=null; end
																		if(@bielkT=null)
																		 begin set @pB=null; end
																		if (@bielkNT=0)
																		begin set @pBt=null; end
																		if(@TaBT=0)
																		begin set @pTaB=null; end
																		 if (@TaBNT=0)
																		 begin set @pTaBt= null; end
																		 if(@vekT=0)
																		 begin set @pV=null; end
																		if (@vekNT=0)
																		begin set @pVt=null; end
																		if (@medziT=0)
																		begin set @pMM=null; end
																		if(@medziNT=0)
																		begin set @pMMt=null; end


			
			if(@n>0 and @i>0)
			begin
				set @vekT=@vekT/@pV;
				declare @vekD int;
				
				print @vekT;
				--print convert(int,PARSENAME(convert(decimal(10,2),@vekT),1)) % 30;
						set @vekD=CONVERT(int, @vekT )% 30.45
						set @vekT=ROUND(( convert(int,@vekT)/ 30.45), 0)
					
			
			print @vekD;
				insert into plis.dbo.CP_PoslednaUzavretaLakt values(@laktacia,@n,@i,
																		(@lakdniT/replace (@pD,0,1)),
																		(@lakdniNT/replace( @pDt,0,1)),
																		(@mliekoT/replace(@pM,0,1)),
																		(@mliekoNT/replace(@pMt,0,1)),
																		(@tukT/replace(@pT,0,1)),
																		(@tukNT/replace(@pTt,0,1)),
																		(@bielkT/replace(@pB,0,1)),
																		(@bielkNT/replace(@pBt,0,1)),
																		(@TaBT/replace(@pTaB,0,1)),
																		(@TaBNT/replace(@pTaBt,0,1)),
																		(@vekT),
																		(@vekD),
																		(@medziT/replace(@pMM,0,1)),
																		(@medziNT/replace(@pMMt,0,1)),
																		@chovatel)
																		
																		
			end


			SET @dniT =0;
			SET @dniNt =0;
			SET @mliekoT =0;
			SET @mliekoNT =0;
			SET @tukT =0;
			SET @tukNT =0;
			SET @TaBT =0;
			SET @TaBNT =0;
			SET @vekT =0;
			SET @vekNT =0;
			SET @medziT =0;
			SET @medziNt =0;
			SET @bielkT =0;
			SET @bielkNT =0;
			SET @lakdniT =0;
			SET @lakdniNT =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pD =0;
			set @pM =0;
			set @pT =0;
			set @pB =0;
			set @pTaB =0;
			set @pMM =0;
			set @pDt =0;
			set @pMt =0;
			set @pTt =0;
			set @pBt =0;
			set @pTaBt =0;
			set @pMMt =0;
			set @pV=0;
			set @pVt=0;
	
			fetch next from lakt into @laktacia

		set @i=0;
		set @n=0;
	
		end

		close lakt
		deallocate lakt

		SET @dniT =0;
		SET @dniNt =0;
		SET @mliekoT =0;
		SET @mliekoNT =0;
		SET @tukT =0;
		SET @tukNT =0;
		SET @TaBT =0;
		SET @TaBNT =0;
		SET @vekT =0;
		SET @vekNT =0;
		SET @medziT =0;
		SET @medziNt =0;
		SET @bielkT =0;
		SET @bielkNT =0;
		SET @lakdniT =0;
		SET @lakdniNT =0;
		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pD =0;
		set @pM =0;
		set @pT =0;
		set @pB =0;
		set @pTaB =0;
		set @pMM =0;
		set @pDt =0;
		set @pMt =0;
		set @pTt =0;
		set @pBt =0;
		set @pTaBt =0;
		set @pMMt =0;
		set @pV=0;
		set @pVt=0;
	

		
		print N'-----------------------------------------------'
		fetch next from chov into @chovatel
		
	 end

	 close chov;
	 deallocate chov;


END
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_22_A]
    @rok varchar(4)
as
  begin


    select z.KRAJ,z.OKRES,z.PODNIK,Okres_nazov,stpec_1,stpec_2,stpec_3,stpec_4,stpec_5,
      ( case when stpec_6 ='Výsledky za predchádzajúci kontrolný rok' then 'Výsledky za predchádzajúci rok'
        when stpec_6 <>'Výsledky za predchádzajúci kontrolný rok' then stpec_6 end) as stpec_6,

      (case when  stlpec_6c = '' and stpec_6 = 'Výsledky za predchádzajúci kontrolný rok' then '199'
       when stlpec_6c = '' and stpec_6 <> 'Výsledky za predchádzajúci kontrolný rok'then '999'
       when stlpec_6c <> '' then stlpec_6c  end) as	 stlpec_6c,
      stpec_7
      ,stpec_8,stpec_9,stpec_10,stpec_11,stpec_12,stpec_13,stpec_14Mesiac,stpec_14Den,stpec_15,stpec_16,stpec_17,stpec_18
      ,stpec_19,stpec_20,stpec_21,stpec_22,stpec_23,stpec_24,stpec_25,stpec_26,stpec_27,stpec_28,stpec_29,rok,chov.EkoChov

    from Roc_MLHD_Tab_22A as z
      left OUTER JOIN NM_CHOVMAS chov on chov.KRAJ = z.KRAJ and chov.OKRES = z.okres and chov.PODNIK = z.podnik and chov.CHOV = z.stlpec_6c  and chov.ZRUS is null and chov.TYPZV = 1
    where z.rok = @rok
    order by KRAJ, okres, podnik, case when len(stlpec_6c) < 3 then stlpec_6c+'9' else stlpec_6c end;
  end
go

-- =============================================
-- Author:		David Florek
-- Create date:	08.08.2017
-- Description:	Vrati produkt pre dany chov oviec
-- =============================================
CREATE FUNCTION [dbo].[OV_DAJPRODUKT]
(
	@chov varchar(9),
	@datum DATE = null
)
RETURNS varchar(5)
AS
BEGIN
	DECLARE @produkt varchar(5);
	DECLARE @uzit varchar(1);
	DECLARE @stku varchar(1);
	DECLARE @zvoz varchar(1);
	DECLARE @sb varchar(1);
	DECLARE @pocet int;

	select
	@uzit = UZITZST,
	@stku = STKU,
	@zvoz = ZVOZ,
	@sb = SB
	from NM_OVDETAIL
	where KRAJ + OKRES + PODNIK + CHOV = @chov;

	if((@uzit = '2' or @uzit = '5') and @stku = '1') set @produkt = 350;
	if((@uzit = '2' or @uzit = '5') and @stku = '2') set @produkt = 351;
	if((@uzit = '2' or @uzit = '5') and @stku = '3') set @produkt = 352;

	if(@uzit = '4' and @stku = '1' and @sb = '0' and @zvoz = '0') set @produkt = 301;
	if(@uzit = '4' and @stku = '1' and @sb = '0' and @zvoz = '1') set @produkt = 302;
	if(@uzit = '4' and @stku = '1' and @sb = '1' and @zvoz = '0') set @produkt = 303;
	if(@uzit = '4' and @stku = '1' and @sb = '1' and @zvoz = '1') set @produkt = 304;

	if(@uzit = '4' and @stku = '2' and @sb = '0' and @zvoz = '0') set @produkt = 311;
	if(@uzit = '4' and @stku = '2' and @sb = '0' and @zvoz = '1') set @produkt = 312;
	if(@uzit = '4' and @stku = '2' and @sb = '1' and @zvoz = '0') set @produkt = 313;
	if(@uzit = '4' and @stku = '2' and @sb = '1' and @zvoz = '1') set @produkt = 314;

	if(@uzit = '4' and @stku = '3' and @sb = '0' and @zvoz = '0') set @produkt = 321;
	if(@uzit = '4' and @stku = '3' and @sb = '0' and @zvoz = '1') set @produkt = 322;
	if(@uzit = '4' and @stku = '3' and @sb = '1' and @zvoz = '0') set @produkt = 323;
	if(@uzit = '4' and @stku = '3' and @sb = '1' and @zvoz = '1') set @produkt = 324;

	if(@datum is null) set @datum = CAST(GETDATE() as date);

	declare @fak varchar(1);

	set @fak = (select FaktSkup from NM_CHOVMAS where KRAJ + OKRES + PODNIK + CHOV = @chov and TYPZV = 3)


	if @fak <> '0'
	begin
		set @pocet =
			(select SUM(s.OV_BAHNICA) from NE_STATISTIKY s join NM_CHOVMAS ch on s.CHOV = ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV
			where DATUM = @datum and LEFT(s.CHOV, 6) = LEFT(@chov, 6) and ch.FaktSkup = @fak and ch.TYPZV = 3);
	end else begin
		set @pocet = (select OV_BAHNICA from NE_STATISTIKY where CHOV = @chov and DATUM = @datum);
	end

	if(@pocet < 11) set @produkt = @produkt + '01';
	if(@pocet > 10 and @pocet < 21) set @produkt = @produkt + '02';
	if(@pocet > 20 and @pocet < 51) set @produkt = @produkt + '03';
	if(@pocet > 50 and @pocet < 101) set @produkt = @produkt + '04';
	if(@pocet > 100 and @pocet < 201) set @produkt = @produkt + '05';
	if(@pocet > 200 and @pocet < 301) set @produkt = @produkt + '06';
	if(@pocet > 300 and @pocet < 401) set @produkt = @produkt + '07';
	if(@pocet > 400 and @pocet < 501) set @produkt = @produkt + '08';
	if(@pocet > 500) set @produkt = @produkt + '09';
	if(@uzit = '6') set @produkt = '36001';
	
	return @produkt;

END
go






-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 23.11.2011
-- Description:	Zisti ID kravy zadanej pomocou usneho cisla
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_zisti_IDKRAVY]
(
	@CISKRAVY [varchar](14)
)	
RETURNS	[int]
	
AS	
BEGIN
	declare @IDKRAVY [int]
	set @IDKRAVY = null
	
	if @CISKRAVY is not null
	begin
		set @IDKRAVY = (select IDKRAVY from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY)
	end
	
	return (@IDKRAVY)
END


go

CREATE PROCEDURE [dbo].[CR_KUHD_MesVys]
@chov VARCHAR(9), @rok INT, @mesiac INT, @dekada INT

-- Mesacne vysledky kontroly uzitkovosti a reprodukcie HD
-- vstupne parametre: chov, rok, mesiac, dekada 
--
-- Autor: Roman Rafaj, 01.02.2016
-- verzia	1.0: uvodna proc

AS

DECLARE @chovatel VARCHAR(9), @KROKR AS VARCHAR(3), @PODNIK AS VARCHAR(3), @chov3 AS VARCHAR(3)
SET @chovatel = '102501011'
SET @krokr = SUBSTRING(@chovatel, 1,3)
SET @podnik = SUBSTRING(@chovatel,4,3)
SET @chov3 = SUBSTRING(@chovatel,7,3)

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE

		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

		IF (@dekada = 1)
			BEGIN
			SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			END
		ELSE
			BEGIN
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
			END
		
		IF (@dekada = 1)
			BEGIN
			SET @end = CAST(eomonth(@start) AS date)
			END
		ELSE
			BEGIN
			SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
			END


-- doplnit vyradene kravy <> 0 a posledne 3 mesiace, doplnit stlpec, kde budem zapisovat, ci sa jedna o zijucu alebo vyradenu kravu, datum vyradenia musi byt mensi ako 31

IF OBJECT_ID('tempdb..#vyberovka') IS NOT NULL DROP TABLE #vyberovka
SELECT *
INTO #vyberovka
FROM [plis].[dbo].[CP_TLACVYV]
WHERE KROKR = @KROKR AND podnik = @podnik AND CHOV = @chov3

--SELECT * FROM #vyberovka

SELECT kr.CISKRAVY,v.* FROM dbo.CM_Krava kr
		LEFT JOIN #vyberovka v ON (v.CISKRAVY = kr.CISKRAVY)
		WHERE CHOVATEL = @chovatel AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')

SELECT kr.CISKRAVY, kr.DATVYR, kr.DOVVYR, v.* FROM dbo.CM_Krava kr
		LEFT JOIN #vyberovka v ON (v.CISKRAVY = kr.CISKRAVY)
		WHERE CHOVATEL = @chovatel AND kr.DATVYR >=  DATEADD(dd, -31, @start)	
		ORDER BY kr.DATVYR DESC
        
SELECT @start
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 04.10.2012
-- Description:	Prepise kontroly z CM_Kontroly do CM_ArchKon na zaklade cisla kravy (v CM_Kontroly ich zmaze/necha)
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_kontroly_do_archivu]
	@CISKRAVY [varchar](14),
    @ZMAZ [bit]
    
AS	
BEGIN
	declare @PORLAK int

	-- zmazanie docasnej tabulky PLIS.dbo.vybrane_kontroly ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'vybrane_kontroly') drop table PLIS.dbo.vybrane_kontroly

	select CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,PERCTUKU,PERCBIELK,
		PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,KodIntSB,KodIntLD,SPRACINSERT,SPRACUPDATE 
		into PLIS.dbo.vybrane_kontroly from PLIS.dbo.CM_Kontroly
		where CISKRAVY = @CISKRAVY

	set @PORLAK = (select top(1) PORPREBLAK from PLIS.dbo.vybrane_kontroly)

	if (@PORLAK is not null)
	begin
		begin tran t1
		begin try
			-- zmazanie povodnych kontrol, aby mohli byt nahradene aktualnymi (ak doslo k nejakej zmene)
			delete from CM_ArchKon where CISKRAVY = @CISKRAVY and convert(int, PORPREBLAK) = @PORLAK
			delete from CM_ArchKon where CISKRAVY = @CISKRAVY and DATKONTR >= (select min(datkontr) from PLIS.dbo.vybrane_kontroly)
			
			insert into CM_ArchKon
				(CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,PERCTUKU,PERCBIELK,
				PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,KodIntSB,KodIntLD,JeKontroly,SPRACINSERT,SPRACUPDATE)
			SELECT CISKRAVY,DATKONTR,ZNKONTR,DENDOBA,INTERVAL,CISCHOVU,SKUPINA,PREPOCET,MLIEKO,MLIEKPR,PRT,PERCTUKU,PERCBIELK,
				PERCLAKTOZ,BUNECELEM,LAKTDNI,PORPREBLAK,KodIntSB,KodIntLD,case @ZMAZ when 0 then 1 else 0 end,SPRACINSERT,SPRACUPDATE
				FROM PLIS.dbo.vybrane_kontroly 
	
			if @ZMAZ != 0
			begin
				delete from PLIS.dbo.CM_Kontroly	
					where CISKRAVY = @CISKRAVY
			end
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran t1;

		end catch;

		IF @@TRANCOUNT > 0			
			commit tran t1
	end

	-- zmazanie docasnej tabulky PLIS.dbo.vybrane_kontroly ak existuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'vybrane_kontroly') drop table PLIS.dbo.vybrane_kontroly	
END

go

CREATE procedure  [dbo].[Roc_MLHD_14]
	@datumOd date,
	@datumDo date

	as 
	begin

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'
		delete from Roc_MLHD_Tab_14 where rok = datepart(year,@datumOd);


declare @kravy_S table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravy_S 
		select distinct top 50
			 ROW_NUMBER() OVER(ORDER BY Lakt.MLIEKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			Lakt.BIELKNOR as Bielk,
			datepart(year,@datumOd) as Rok,
			'SLst' as Plem_typ,
			'M' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				--and Lakt.PLEM in ('S0','S1','S2','S3')
				and k.TYPPLEM IN ('11','12','13','14')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by Lakt.MLIEKNOR desc
	insert into Roc_MLHD_Tab_14
	select * from @kravy_S

	declare @kravy_H table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravy_H 
		select distinct top 100
			 ROW_NUMBER() OVER(ORDER BY Lakt.MLIEKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Hol' as Plem_typ,
			'M' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('H0','H1','H2','H3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by Lakt.MLIEKNOR desc
	insert into Roc_MLHD_Tab_14
	select * from @kravy_H

	declare @kravy_P table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravy_P 
		select distinct top 25
			 ROW_NUMBER() OVER(ORDER BY Lakt.MLIEKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Pin' as Plem_typ,
			'M' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('P0','P1','P2','P3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and k.OTECLIN not in ('NEZ','RER','TUR','PGR','TIT')
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by Lakt.MLIEKNOR desc
	insert into Roc_MLHD_Tab_14
	select * from @kravy_P


	declare @kravy_B table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravy_B 
		select distinct top 25
			 ROW_NUMBER() OVER(ORDER BY Lakt.MLIEKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Brau' as Plem_typ,
			'M' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and Lakt.PLEM in ('B0','B1','B2','B3')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by Lakt.MLIEKNOR desc
	insert into Roc_MLHD_Tab_14
	select * from @kravy_B



/**rocenka MLHD - Kravy s najvyssou uzitkovostou za normovane laktacie v kontrolnom roku podla kg BIELKOVIN*/
/**tab 14**/


declare @kravyB_S table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravyB_S 
		select distinct top 100
			 ROW_NUMBER() OVER(ORDER BY Lakt.BIELKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '')+  ISNULL(k.PL3, '')+  ISNULL(k.PL4, '')+  ISNULL(k.PL5, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'SLst+K' as Plem_typ,
			'B' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				--and Lakt.PLEM in ('S0','S1','S2','S3')
				and k.TYPPLEM IN ('11','12','13','14')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by round(Lakt.BIELKNOR,0) desc
	insert into Roc_MLHD_Tab_14
	select * from @kravyB_S

	declare @kravyB_H table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravyB_H 
		select distinct top 100
			 ROW_NUMBER() OVER(ORDER BY Lakt.BIELKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '')+  ISNULL(k.PL3, '')+  ISNULL(k.PL4, '')+  ISNULL(k.PL5, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Hol+K' as Plem_typ,
			'B' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and k.PL1 in ('H','R')
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by round(Lakt.BIELKNOR,0) desc
	insert into Roc_MLHD_Tab_14
	select * from @kravyB_H

	declare @kravyB_P table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravyB_P 
		select distinct top 100
			 ROW_NUMBER() OVER(ORDER BY Lakt.BIELKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '')+  ISNULL(k.PL3, '')+  ISNULL(k.PL4, '')+  ISNULL(k.PL5, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Pin+K' as Plem_typ,
			'B' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and k.PL1 = 'P'
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by round(Lakt.BIELKNOR,0) desc
	insert into Roc_MLHD_Tab_14
	select * from @kravyB_P


	declare @kravyB_B table(
	Por bigint,
	Ciskravy varchar(14),
	Okres varchar(30),
	Podnik varchar(100),
	Chov varchar(50),
	OLinReg varchar(20),
	Plemeno  varchar(30),
	Por_lak int,
	Mlieko_nor int, 
	Tuk_P float,
	Tuk int,
	Bielk_P float,
	Bielk int,
	Rok varchar(4),
	Plem_typ varchar(6),
    Ml_B varchar(1)
	)

	insert into @kravyB_B 
		select distinct top 100
			 ROW_NUMBER() OVER(ORDER BY Lakt.BIELKNOR desc) AS Por,
			Lakt.CISKRAVY as Ciskravy,
			o.NAZOV as Okres, 
			p.NAZOVSKR as Podnik, 
			UPPER(ch.NAZOV) as Chov, 
			(case when k.Oteclin is null then substring(b.MENO,1,15)
				 else k.Oteclin + '-' + RIGHT('000' + CONVERT(varchar,k.otecreg), 3)end) as OLinReg, 
			ISNULL(k.PL1 + CONVERT(varchar, k.KR1), '') 
						+  ISNULL(k.PL2, '')+  ISNULL(k.PL3, '')+  ISNULL(k.PL4, '')+  ISNULL(k.PL5, '') as Plemeno,
			Lakt.PORLAK as Por_lak, 
			Lakt.MLIEKNOR as Mlieko_nor, 
			Round(Lakt.TUKNOR / Lakt.MLIEKNOR*100,2,2) as Tuk_P, 
			round(Lakt.TUKNOR,0) as Tuk, 
			round(Lakt.BIELKNOR / Lakt.MLIEKNOR*100,2,2) as Bielk_P, 
			round(Lakt.BIELKNOR,0) as Bielk,
			datepart(year,@datumOd) as Rok,
			'Brau+K' as Plem_typ,
			'B' as Ml_B

		from  dbo.View_CP_LaktaciePreZostavy as Lakt
			left outer join CM_Krava as k on k.ciskravy = Lakt.ciskravy
			left outer join CM_Byci as b on b.USCISLO = k.OUSCIS
			left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = SUBSTRING(Lakt.CHOVATEL,1,6)
			left outer join NM_CHOVMAS as ch on ch.KRAJ + ch.OKRES + ch.PODNIK+ ch.CHOV = Lakt.CHOVATEL
			left outer join NC_OKRES as o on o.KRAJ + o.OKRES = SUBSTRING(Lakt.CHOVATEL,1,3)
		where  ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
					or (Lakt.DATUKNORL >= @datumOd and Lakt.DATUKNORL <= @datumDo))
				and Lakt.MLIEKCEL <>''
				and Lakt.ZMENA in ('30','40')
				and k.PL1 = 'B'
				and (Lakt.DOVVYR is null or (Lakt.DOVVYR is not null and Lakt.DATVYR>@datumOd))
				and Lakt.TUKNOR / Lakt.MLIEKNOR*100 < 6
				and Lakt.BIELKNOR / Lakt.MLIEKNOR*100 < 5 
				and (k.OTECLIN is not null or b.MENO is not null)
				and ch.ZRUS is null and ch.TYPZV='1'
				order by round(Lakt.BIELKNOR,0) desc
	insert into Roc_MLHD_Tab_14
	select * from @kravyB_B

	End
go



 CREATE procedure [dbo].[Rocenka_MPHD_17_okres]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

--declare @datumOd date ='2017-01-01'

	select distinct  o.NAZOV as Okres_nazov, 
		p.kraj, p.okres, p.podnik, p.chov, p.mastal,
		K1_poc, K1_poc_120, K1_perc_120, K1_poc_210, K1_perc_210, K1_poc_365, K1_perc_365, K1_poc_500,
		K1_perc_500, K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365,
		K1_priem_ziv_prir_500, K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120 , MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365,
		MD1_poc_vaz_500, MD1_perc_500, MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, K2_poc_210, K2_perc_210, K2_poc_365, K2_perc_365, K2_poc_500,
		K2_Priem_Hm_120, K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_perc_500, K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene, 
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210 , J_perc_210, J_poc_vaz_365, J_perc_365, J_poc_vaz_500,
		J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,

		B_poc, B_poc_vaz_120, B_perc_120, B_poc_vaz_210, B_perc_210, B_poc_vaz_365, B_perc_365, B_poc_vaz_500,
		B_perc_500, B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,

		MD2_poc, MD2_poc_vaz_120 , MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene, rok


	
		from Roc_MPHD_Tab_17 as p
			  left join  NC_OKRES as o  on p.kraj+ p.okres  = o.kraj + o.okres 
		  
		where p.podnik is null and p.okres is not null
			  and datepart(year,@datumOd) = p.rok
		 
	End
go

-- =============================================
-- Author:		<Author,,Machynova>
-- Create date: <22.8.2014,,>
-- Description:	<Description,,vrati zoznam linii s poctom nevyradenych bahnic, stado je zadane parametrom>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_BahLinie] 
(	

	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.cislin, l.nazlin,SUM(1) AS pocet
FROM dbo.SM_BAHNICA b LEFT OUTER JOIN dbo.SC_SubLin l
 on l.cislin=b.Cislin 
 WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.CisLin,NAZLIN 


)
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 19.1.2015
-- Description:	Vytvorenie tabulky Paternita_All pre rychlejsie pracovanie s Paternitou
-- =============================================
CREATE PROCEDURE [dbo].[C_migracia_Paternita]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;	

    -- Insert statements for procedure here
	
	-- substitucia parametrov kvoli zrychleniu selectu
	declare @ciskravy varchar(14) = ''--'FR005813607840'
	declare @cistestu varchar(10) = ''--'0549/33'
	declare @choplis bit = 'false'
	declare @chmplis bit = 'false'
	declare @chpatern bit = 'false'
	declare @chov varchar(9) = ''--'102501011'--'713562801'--'206501701'
	declare @vsetkychovy bit = 'true'

	declare @_ciskravy varchar (256) = ''
	declare @_cisbyka varchar (256) = ''
	declare @_chmplis varchar (256) = ''
	declare @_chmplis_byk varchar (256) = ''
	declare @_chpatern varchar (256) = ''
	declare @_vsetkychovy varchar (256) = ''
	declare @_vsetkychovy_t varchar (256) = ''
	declare @_cistestu varchar (256) = ''

	--declare @_select varchar (8000)
	declare @_select1 varchar (3078)
	declare @_select2 varchar (3078)
	declare @_select3 varchar (3078)
	declare @_select4 varchar (3078)
	declare @_select5 varchar (2048)
	declare @_select6 varchar (2048)

	IF @ciskravy != '' BEGIN SET @_ciskravy = '(p.KRAVA LIKE ''%' + @ciskravy + '%'') AND ' 
							 SET @_cisbyka = '(p.UC LIKE ''%' + @ciskravy + '%'') AND ' 
					 END
	IF @chmplis != 'false' BEGIN SET @_chmplis = 'AND (p.M != k.MA)'
								SET @_chmplis_byk = 'AND (p.M != b.MATKA)'
					 END
	IF @chpatern != 'false' BEGIN SET @_chpatern = 'AND ((pv.O_suhlasi = 0) or (pv.M_suhlasi = 0))' END
	IF @chov != '' BEGIN SET @_vsetkychovy = 'AND (CHOVATEL = ''' + @chov + ''')' 
						SET @_vsetkychovy_t = 'AND (t.CHOVATEL = ''' + @chov + ''')'END
	IF @cistestu != '' BEGIN SET @_cistestu = 'AND (p.CROZB = SUBSTRING(''' + @cistestu + ''', 1, 4) AND p.CRAD = SUBSTRING(''' + @cistestu + ''', 6, 2))' END


	SET @_select1 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OUSCIS END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUSCIS != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    CM_Krava AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISKRAVY = SUBSTRING(p.KRAVA, 1, 14) LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy + 
	' k.ciskravy IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu

	SET @_select2 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN b.OTUSCIS END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN b.OTUSCIS END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT LIN FROM dbo.CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OTUSCIS != p.OUC THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) = p.OREG) THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OTUSCIS) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     CM_Byci AS b RIGHT OUTER JOIN
		  CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.USCISLO IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu

	SET @_select3 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OUC END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECLIN END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECLIN END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN k.OUC != p.OUC THEN k.OTECREG END
											   ELSE 
		CASE WHEN NOT(k.OTECLIN = p.OSTREG AND k.OTECREG = p.OREG) THEN k.OTECREG END END AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MATKA != p.M THEN k.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
  			SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(k.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(k.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(k.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(k.chovatel, 1, 1)
	) AS ZOOT
	FROM    CM_Telata AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISTELATA = p.KRAVA LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_ciskravy + 
	' k.CISTELATA IS NOT NULL
	AND k.PRIZNAKKU <> 0
	AND (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT CISKRAVY FROM CM_Krava WHERE CISKRAVY = CISTELATA) IS NULL'


	SET @_select4 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN b.OUC END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN b.OUC END END AS O_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) END END AS OLIN_PLIS, 
	CASE WHEN p.OSTREG IS NULL OR p.OREG IS NULL THEN 
		CASE WHEN b.OUC != p.OUC THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) END
											   ELSE 
		CASE WHEN NOT(((SELECT LIN FROM CM_Byci WHERE USCISLO = b.OUC) = p.OSTREG) AND (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) = p.OREG) THEN (SELECT REG FROM CM_Byci WHERE USCISLO = b.OUC) END END AS OREG_PLIS, 
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	(
		SELECT top 1 osoba as menovka
		FROM
			NM_PracSPU p  LEFT OUTER JOIN
			NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
			NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		WHERE 
			h.CHOV = SUBSTRING(b.chovatel, 7, 3)
			AND	h.PODNIK = SUBSTRING(b.chovatel, 4, 3)
			AND	h.OKRES = SUBSTRING(b.chovatel, 2, 2)
			AND h.KRAJ = SUBSTRING(b.chovatel, 1, 1)
	) AS ZOOT
	FROM     CM_Telata AS b RIGHT OUTER JOIN
		  CM_Paternita_Byky AS p ON b.CISTELATA = p.UC  LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV
	WHERE '
	+ @_cisbyka + 
	'  b.CISTELATA IS NOT NULL
	AND (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy
	+ @_cistestu
	+ 'AND (SELECT bb.USCISLO FROM CM_Byci bb WHERE bb.USCISLO = b.CISTELATA) IS NULL'


	SET @_select5 = N'SELECT    ''samica'' as [POHL], p.KRAVA as USCISLO, null as [STREG], null as [REG], k.DATNAR, k.PL1 + CONVERT(varchar, ISNULL(k.KR1, 0)) + '' '' + ISNULL(k.PL2 + CONVERT(varchar, ISNULL(k.KR2, 0)) 
	+ '' '' + ISNULL(k.PL3 + CONVERT(varchar, ISNULL(k.KR3, 0)) + '' '' + ISNULL(k.PL4 + CONVERT(varchar, ISNULL(k.KR4, 0)) + '' '' + ISNULL(k.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, k.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	pv.O_suhlasi, p.M AS M_PA, CASE WHEN k.MA != p.M THEN k.MA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT	
	FROM    CM_Krava AS k RIGHT OUTER JOIN
			CM_Paternita AS p ON k.CISKRAVY = p.KRAVA LEFT OUTER JOIN
			CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			CM_Telata AS t ON t.CISTELATA = p.KRAVA 
	WHERE '
	+ @_ciskravy + 
	' (LEN(p.KRAVA) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis 
	+ @_chpatern
	+ @_vsetkychovy_t
	+ @_cistestu
	+ 'AND (k.ciskravy IS NULL AND t.cistelata is NULL)'


	SET @_select6 = N'SELECT    ''samec'' as [POHL], p.UC as USCISLO, p.STREG, p.REG, b.DATNAR, b.PL1 + CONVERT(varchar, ISNULL(b.KR1, 0)) + '' '' + ISNULL(b.PL2 + CONVERT(varchar, ISNULL(b.KR2, 0)) 
	+ '' '' + ISNULL(b.PL3 + CONVERT(varchar, ISNULL(b.KR3, 0)) + '' '' + ISNULL(b.PL4 + CONVERT(varchar, ISNULL(b.KR4, 0)) + '' '' + ISNULL(b.PL5, ''''), ''''), ''''), '''') 
	AS PLEMENO, b.CHOVATEL, p.OSTREG, p.OREG, p.OUC AS O_PA, 
	null AS O_PLIS, 
	null AS OLIN_PLIS, 
	null AS OREG_PLIS,  
	 pv.O_suhlasi, p.M AS M_PA, CASE WHEN b.MATKA != p.M THEN b.MATKA END AS M_PLIS, pv.M_suhlasi, p.KT, p.DNA, p.CROZB + ''/'' + p.CRAD AS CISROZB, p.KRVDAT, p.PATDAT, p.PATERNITA,
	null AS ZOOT
	FROM     CM_Byci AS b RIGHT OUTER JOIN
			CM_Paternita_Byky AS p ON b.LIN = p.STREG AND b.REG = p.REG LEFT OUTER JOIN
			  CC_PaternVysled AS pv ON p.KPUV = pv.KPUV LEFT OUTER JOIN
			  CM_Telata AS t ON t.CISTELATA = p.UC
	WHERE '
	+ @_cisbyka + 
	' (LEN(p.UC) = 14) 
	AND (p.CROZB != ''0000'') AND (p.CRAD != ''00'') 
	'+@_chmplis_byk 
	+ @_chpatern
	+ @_vsetkychovy_t
	+ @_cistestu
	+ 'AND (b.USCISLO IS NULL AND t.cistelata IS NULL)'

	--AK EXISTUJ, zmaz tabulku
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'CM_Paternita_All') AND TYPE IN (N'U'))
		DROP TABLE CM_Paternita_All
		
	--Vytvorenie a naplnenie novej tabulky
	exec ('		
		SELECT POHL, USCISLO, STREG, REG, DATNAR, PLEMENO, CHOVATEL, OSTREG, OREG, O_PA, O_PLIS, OLIN_PLIS, OREG_PLIS, O_suhlasi, M_PA, 
		M_PLIS, M_suhlasi, KT, DNA, CISROZB, KRVDAT, PATDAT, PATERNITA, ZOOT 
		INTO CM_Paternita_All 
		FROM
		('+ @_select1 + ' UNION ' + @_select2 + ' UNION ' + @_select3 + ' UNION ' + @_select4 + ' UNION ' + @_select5 + ' UNION ' + @_select6 + 
		') as s	')

	--exec (@_select)
END

--use plis
--exec dbo.C_migracia_paternita
go

CREATE procedure [dbo].[Rocenka_MLHD_Tab_23_A]
    @rok varchar(4)
as
begin

	
	select distinct * 
	from dbo.Roc_MLHD_Tab_23A as z
	where z.rok = @rok 
	order by kraj, okres
	end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PotLinie]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT   p.cislin, case when s.nazlin is NULL then '            ' else s.nazlin end as nazlin,
SUM(CASE WHEN (p.pohl = '3') AND (p.tried IS NULL) THEN 1 ELSE 0 END) AS pocmkoz, 
SUM(CASE WHEN (p.pohl = '4') AND (p.tried IS NULL) THEN 1 ELSE 0 END) AS pocmcap
FROM dbo.GM_POTOMOK AS p  
 LEFT OUTER JOIN GC_SUBLIN s ON p.cislin=s.cislin     
WHERE p.krokr+p.podnik+p.stado=@chovatel
GROUP BY p.cislin,nazlin
)
go

-- =============================================
-- Author:		Michal Pavlasek
-- Create date:	24.01.2019
-- Description:	Prida novy zaznam o dotacii z heliosu
-- =============================================
CREATE PROCEDURE [ER_HeliosPridajDotaciaInsertOnly]
    @chov varchar(9),
    @faktura varchar(10),
    @produkt varchar(5),
    @dotacia decimal(10,2),
    @region varchar(3),
    @podnikNazov varchar(255),
    @kodUctovania varchar(3)

AS
  BEGIN

    declare @fakturaId int;

    select @fakturaId = IDR from ER_HeliosRiadokFaktury where Chov = @chov and Produkt = @produkt and Faktura = @faktura;

    insert into ER_HeliosDotacie (Chov, Faktura, Produkt, Dotacia, Region, PodnikNazov, KodUctovania, ID_Faktura)
    values (@chov, @faktura, @produkt, @dotacia, @region, @podnikNazov, 	@kodUctovania, @fakturaId);
  END
go

-- =============================================
-- Author:		David Florek
-- Create date:	04.08.2017
-- Description:	Vrati vyfiltrovany zoznam riadkov faktury.
-- Edit:			18.08.2017	Pridany filter na povrdene faktury
-- Edit:			21.08.2017	Pridany filter mesiacRok ktory vyplni mesiac a rok, pridany vyber ID faktury
-- Edit			23.08.2017	Pridany filter podla IDR riadka faktury
-- Edit			07.09.2017	Odstraneny filter mesiacRok // co som si to len myslel -_-
-- Edit			19.09.2017	Pridany stlpec loginRegion pre upravu iba riadkov z regionu pouzivatela
-- Edit			20.12.2017	Pridane stlpce na generovanie dbf do heliosu
-- Edit			05.01.2017	Odobrate stlpce na generovanie dbf do heliosu. Na to som vytvoril som novu proceduru.
-- =============================================
CREATE PROCEDURE [dbo].[EC_ZoznamRiadkovFaktury]
    @rok varchar(4) = '',
    @mesiac varchar(2) = '',
    @kraj varchar(1) = '',
    @okres varchar(2) = '',
    @podnik varchar(3) = '',
    @chov varchar(3) = '',
    @chovDlhy varchar(9) = '',
    @typ varchar(10) = '',
    @region varchar(2) = '',
    @ico varchar(10) = '',
    @faktura varchar(10) = '',
    @potvrdena varchar(1) = '',
    @zmenena varchar(1) = '',
    @produkt varchar(5) = '',
    @id int = -1,
    @login nvarchar(255) = null
AS
  BEGIN
    if @chovDlhy <> ''
      begin
        set @kraj = SUBSTRING(@chovDlhy, 1, 1);
        set @okres = SUBSTRING(@chovDlhy, 2, 2);
        set @podnik = SUBSTRING(@chovDlhy, 4, 3);
        set @chov = SUBSTRING(@chovDlhy, 7, 3);
      end

    If(OBJECT_ID('tempdb..#detaily') Is Not Null)
      Drop Table #detaily;

    select detaily.* into #detaily from (
                                        select KRAJ, OKRES, PODNIK, CHOV, IDZOO, IDKON, 'HD' as TYP, OSOBA as MENO from NM_HDDETAIL
                                                                                                                          inner join NM_PracSPU on IDZOO = IDPAM

                                        union all select KRAJ, OKRES, PODNIK, CHOV, a.IDPAM as IDZOO, isnull(b.IDPAM, '00000') as IDKON, 'OV' as TYP, UPPER(a.PRIEZVISKO) + ' ' + UPPER(a.MENO) as MENO from NM_OVDETAIL
                                                                                                                                                                                                               left join NM_KONTAKT a on CISZOO = a.ID
                                                                                                                                                                                                               left join NM_KONTAKT b on CISKON = b.ID

                                        union all select KRAJ, OKRES, PODNIK, CHOV, a.IDPAM as IDZOO, isnull(b.IDPAM, '00000') as IDKON, 'KY' as TYP, UPPER(a.PRIEZVISKO) + ' ' + UPPER(a.MENO) as MENO from NM_KODETAIL
                                                                                                                                                                                                               left join NM_KONTAKT a on CISZOO = a.ID
                                                                                                                                                                                                               left join NM_KONTAKT b on CISKON = b.ID

                                        union all select KRAJ, OKRES, PODNIK, CHOV, '00000' as IDZOO, '00000' as IDKON, 'HY' as TYP, null as MENO from NM_CHOVMAS where TYPZV = '5'

                                        union all select KRAJ, OKRES, PODNIK, CHOV, PLEMENAR as IDZOO, PLEMENAR as IDKON, 'OS' as TYP, OSOBA as MENO from NM_OSDETAIL
                                                                                                                                                            inner join NM_PracSPU on PLEMENAR = IDPAM

                                        ) as detaily;

    declare @loginRegion varchar(5);

    select @loginRegion = case when @login is null then null else p.STREDISKO end
    from NM_PRACKU p--, aspnetdb.dbo.User_PRACKU up, aspnetdb.dbo.aspnet_Users u
           inner join aspnetdb.dbo.User_PRACKU up on p.IDPRACKU = up.IDPRACKU
           inner join aspnetdb.dbo.aspnet_Users u on up.UserId = u.UserId and u.UserName = @login
    --where p.IDPRACKU = up.IDPRACKU
    --and up.UserId = u.UserId
    --and u.UserName = @login;

    select
           case when @loginRegion = p.REGION or @login is null then 1 else 0 end as LOGINREGION,
           fak.IDR as IDR,
           fak.Typ as TYP,
           case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
                when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '21'
                when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
                when (fak.Typ = 'OV' or fak.Typ = 'KY') and d.IDKON <> '00000' then s.STRED
                else p.REGION end as REGION,
           fak.Faktura as FAKTURA,
           fak.Datum as DATUM,
           p.NAZOV as ZAKAZNIK,
           p.ICO as ICO,
           fak.CHOV as CHOV,
           d.MENO as MENZOO,
           d.IDZOO as CISZOO,
           d.IDKON as CISKONZ,
           prod.SKUPINA as NAZPROD,
           fak.Produkt as KODPROD,
           prod.MERJED as MERJEDN,
           fak.Pocet as POCJEDN,
           fak.Suma as JEDNCENA,
           fak.Priplatok as PRIPLSK,
           fak.PriplatokPerc as PRIPLPERC,
           fak.ZlavCel as ZLAVCEL,
           fak.SumaCelkom as CENASPOL,
           fak.Dotacia as DOTACIA,
           fak.Potvrdeny as POTVRDENA,
           fak.Zruseny as ZRUSENA,
           fak.Exportovany as EXPORTOVANA,
           (select IIF(count(*) > 0, 1, 0) from EC_RiadokFaktury_Hist where IDR = fak.IDR and KodZmeny in (2, 5)) as ZMENENA

    from EC_RiadokFaktury fak
           inner join #detaily d on fak.CHOV = d.KRAJ + d.OKRES + d.PODNIK + d.CHOV and (fak.Typ = d.TYP or (d.TYP = 'HD' and fak.Typ in ('KUML', 'KUMP', 'TMHD','MOHD', 'SBHD','KTHD' ))
                                                                                           or (d.TYP = 'OV' and fak.Typ in ('SBOV'))
                                                                                           or (d.TYP = 'KY' and fak.Typ in ('SBKY')))
           inner join NM_PODNIK p on d.KRAJ + d.OKRES + d.PODNIK = p.KRAJ + p.OKRES + p.PODNIK
           inner join EC_CISPROD prod on prod.KOD1 + prod.KOD2 + prod.KOD3 = fak.Produkt
           inner join NM_PracSPU s on s.IDPAM = d.IDKON
    where
        (@rok = '' or SUBSTRING(fak.Datum, 1, 2) = RIGHT(@rok, 2))
      and (@mesiac = '' or SUBSTRING(fak.Datum, 3, 2) = REPLICATE('0',2 - LEN(@mesiac)) + @mesiac)
      and (@kraj = '' or d.KRAJ = @kraj)
      and (@okres = '' or d.OKRES = @okres)
      and (@podnik = '' or d.PODNIK = @podnik)
      and (@chov = '' or d.CHOV = @chov)
      and (@typ = '' or fak.Typ = @typ)
      and (@region = '' or
           case when LEFT(fak.Chov, 3) = '403' and fak.Typ = 'OS' then '02'
                when LEFT(fak.Chov, 6) in ('808026', '808124', '808553', '808518') and (fak.Typ = 'KUML' or fak.Typ = 'KUMP') then '21'
                when LEFT(fak.Chov, 3) = '302' and fak.Typ = 'OS' then '11'
                when (fak.Typ = 'OV' or fak.Typ = 'KY') and d.IDKON <> '00000' then s.STRED
                else p.REGION end = @region)
      and (@ico = '' or p.ICO = @ico)
      and (fak.Faktura like @faktura + '%')
      and (@potvrdena = '' or fak.Potvrdeny = @potvrdena)
      and (@zmenena = '' or (select IIF(count(*) > 0, 1, 0) from EC_RiadokFaktury_Hist where IDR = fak.IDR and KodZmeny in (2, 5)) = @zmenena)
      and (@id < 0 or fak.IDR = @id)
      and (@produkt = '' or fak.Produkt like @produkt + '%')
    ;

    drop table #detaily;
  END
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_SP_PotenMa]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9))
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
	SELECT b.Bahcis,b.BPovod,b.cistper1,b.cistper2,b.uzitzst,b.plem1st,b.UZITZAM,
	 b.plem1,b.plem2,b.plem3,b.plem4,mx.hvporml,ml.phmlieko,vv.phvelvrh,
	CASE WHEN (b.plem1st in ('AF','VF')) AND (mx.HvPorMl in ('***','** ', '*  ')) then 'áno'
	  WHEN (b.Plem1St in ('M ','AM','FM','BG','RM','NC','VR','OD','CH','T ','R ','V ')) AND 
	  (b.BPovod<>'00') then 'áno'
	  WHEN (b.UzitZam='1' AND b.UzitZSt='4' OR b.uzitzam='4') AND 
	       (ml.jedcis is not null) AND 
	    (b.plem1 in ('C ','LC') AND (pkrvi<'02') OR 
	     (b.zplem1='ZV') AND (b.cistper2>=87.5) OR
		 ((b.zplem1='SD') OR 
	      (b.pkrvi>'01' AND b.CistPer1<87.5 AND b.CistPer2<87.5) AND
		  (b.zplem1  in ('C ','ZV','M ')  OR
		      b.plem2 in ('C ','ZV','M ','AM','FM','SM','KM') OR
		      b.plem3 in ('C ','ZV','M ','AM','FM','SM','KM') OR
		      b.plem4 in ('C ','ZV','M ','AM','FM','SM','KM')) AND
		    (b.zplem1 in ('LC','VF') OR b.plem2 in ('LC','VF') OR 
		     b.plem3 in ('LC','VF')  OR  b.plem4 in ('LC','VF')))) THEN 'áno'
		WHEN (b.uzitzam='2' or b.uzitzam='1'AND b.uzitzst<>'4') AND vv.JedCis is not NULL AND
		  (b.zplem1 in ('BE','C ','LC','IF','SF') AND b.pkrvi<'02' or
		   b.zplem1='ZV' AND b.cistper2>=87.5 OR
		 ((b.zplem1='SD') OR 
	      (b.pkrvi>'01' AND b.CistPer1<87.5 AND b.CistPer2<87.5) AND
		  (b.zplem1  in ('C ','ZV','M ')  OR
		      b.plem2 in ('C ','ZV','M ','AM','FM','SM','KM') OR
		      b.plem3 in ('C ','ZV','M ','AM','FM','SM','KM') OR
		      b.plem4 in ('C ','ZV','M ','AM','FM','SM','KM')) AND
		    (b.zplem1 in ('LC','VF') OR b.plem2 in ('LC','VF') OR 
		     b.plem3 in ('LC','VF')  OR  b.plem4 in ('LC','VF')))) THEN 'áno'
			ELSE 'nie' END AS potmatka
	from function_SP_PotenMa1(@chovatel) b 
	LEFT OUTER JOIN SM_BLPHML ml ON b.bahcis=ml.JedCis
	LEFT OUTER JOIN SM_BLPHVV vv ON b.bahcis=vv.JedCis
	LEFT OUTER JOIN SM_BLPHHO ho ON b.bahcis=ho.JedCis
    LEFT OUTER JOIN SM_MaxMl mx ON b.bahcis=mx.BahCis
)
go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.12.2011
-- Description:	Vypocita rastove pasma z cisla telata, datumu vazenia a hmotnosti
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_zisti_rastove_pasmo]
(
	@CISTELATA [varchar](14),
	@DATVAZ [date],
	@HMOT [decimal](6,2)
)	
RETURNS	[varchar](1)
	
AS	
BEGIN
	declare @DATNAR [date]
	declare @PL [varchar](2)
	declare @VEK_DNI [int]
	declare @HMOTA [int]
	declare @HMOTB [int]
	declare @POHL [varchar](2)
	declare @KODRPMD [varchar](1)
	declare @RET [varchar](1)
	
	select @DATNAR = DATNAR, @PL = PL1, @POHL = POHLAVIE from PLIS.dbo.CM_Telata where CISTELATA = @CISTELATA
	       if  @pohl in  ( '01','11','31','41','51','81','91' )  set @pohl = '01' else 
              if  @pohl  in ( '02','22','32','42','52','82','92')   set @pohl = '02' 
	
	set @VEK_DNI = datediff(day, @DATNAR, @DATVAZ)

	-- uprava pre nizsie hodnoty veku
	if(@VEK_DNI < 10)
		set @VEK_DNI = 10

	set @KODRPMD = (select kodRPMD from PLIS.dbo.CC_Plemena where kodpl = @PL)
	
	set @RET = null
	
	if @KODRPMD is not null and @VEK_DNI > 0
	begin
		select top 1 @HMOTA = HMOTA, @HMOTB = HMOTB from PLIS.dbo.CC_NormyMD 
			where KODPL = @KODRPMD and RVEK <= @VEK_DNI and RPOHL = @POHL
			order by RVEK desc
			
		if @HMOT >= @HMOTA
			set @RET = 'A'
		else if @HMOT >= @HMOTB
			set @RET = 'B'
		else if @HMOT < @HMOTB
			set @RET = 'C'
	end 		
		
	return(@RET)
END

go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 07.07.2011
-- Description:	Presuny - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Presuny_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR int 
	declare @DATZAPIS datetime
	declare @DATSPRAC datetime
	declare @SPRAC bit
	declare @CHOVATEL varchar(9)
	declare @CISKRAVY varchar(14)
	declare @PRIPRESUN varchar(9)
	declare @DV varchar(2)
	
	declare @errorflag bit
	declare @SPVYKON varchar(1)
	declare @PRIZNAKKU varchar(1)
	declare @CHOVPRIZNAKKU varchar(1)	
	declare @DOVVYR varchar(2)	
	declare @navrat_hodn varchar(1)
	
	declare @CHOVHLAS varchar(9)
	declare @CISKRAVY_CHOVU varchar(14)
	declare @datumPosKont date
	
	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov
	
	-- vyber doposial nespracovanych presunov z CP_HD05_PRESUNY	
	declare db_cursor_presuny cursor
	FOR
	SELECT IDR
      ,convert(date, DATZAPIS, 104) as DATZAPIS
      ,CISKRAVY
      ,CHOVOD
      ,CHOVDO
      --,LOGIN
      --,DATSPRAC
      --,PRIZSPRAC
      --,VERZIA
      --,DATUMULOZENIA
      ,CHOVHLAS
      --,ID
	--FROM VstupyPLIS.dbo.CP_HD05_PRESUNY where PRIZSPRAC = 0 AND (CHOVHLAS = @parChov OR @parChov is NULL)
	FROM VstupyPLIS.dbo.CP_HD05_PRESUNY where PRIZSPRAC = 0 AND (CHOVOD = @parChov OR CHOVDO = @parChov OR @parChov is NULL)
	
	OPEN db_cursor_presuny


	-- cyklus cez vsetky riadky tabulky VstupyPLIS.dbo.nesprac_presuny
	FETCH NEXT
	FROM db_cursor_presuny INTO 	
		 @IDR
		,@DATZAPIS
		,@CISKRAVY
		,@CHOVATEL
		,@PRIPRESUN
		,@CHOVHLAS	
	
	WHILE @@FETCH_STATUS = 0
	begin
		set @datumPosKont = null

		-- zaznam v tabulke presunov nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD05_PRESUNY set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran presun
		begin try
			
			-- ak ide o duplicitne hlasenie v zmysle - dvojica odosielatel prijimatel a raz sa uz presun vykonal - nerob nic
			if (PLIS.dbo.C_aktual_Presuny_dupl_kontr(@CISKRAVY, @CHOVATEL, @PRIPRESUN, @CHOVHLAS) = 0)
			begin			
				set @errorflag = 0
				
				-- kontrola: chov OD je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)) = 0 and @CHOVATEL != '444444444' --20170830 - presun zvierat aj z banky bykov
				begin
					-- priradenie chyby 04
					exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 4
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end
				end

				-- kontrola - SK999999999999 = presun vsetkych krav
				if (@CISKRAVY != 'SK999999999999')
				begin

					-- kontrola: je krava v CM_Krava
					if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY) and PRIZNAKKU not in (0,3/*,4*/)) = 0 --20170830 - presun zvierat aj z banky bykov
					begin
						-- priradenie chyby 05
						exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 5
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end
					end
					else
					-- kontrola: je krava na chove odkial
					if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY and CHOVATEL = @CHOVATEL)) = 0
					
					begin
						-- priradenie chyby 19
						exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 19
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end
					end
					
				end

				-- kontrola: chov KAM je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @PRIPRESUN)) = 0
				begin
					-- priradenie chyby 09
					exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 9
					if (@navrat_hodn = '2')
					begin
						set @errorflag = 1
					end
				end

				-- aktualizacia - presun konkretnej kravy + kontrola na typu chovu a vyradeni kravy
				------------------------------------------------------			
				set @SPVYKON = (select SPVYKON from PLIS.dbo.NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @PRIPRESUN)
				if (@SPVYKON = '4')
				begin
					-- masovy chov
					set @CHOVPRIZNAKKU = '2'
				end
				else
				begin
					if (@SPVYKON = '0')
					begin
						-- chov bez KU
						set @CHOVPRIZNAKKU = '0'
					end
					else
					begin
						-- mliekovy chov
						set @CHOVPRIZNAKKU = '1'
					end
				end
				
				-- presun kravy/krav na dany chov
				-- kontrola na viacnasobny presun
				if (@CISKRAVY != 'SK999999999999')
				begin
					select @PRIZNAKKU = PRIZNAKKU, @DOVVYR = DOVVYR from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY and PRIZNAKKU not in (0,3/*,4*/) --20170830 - presun zvierat aj z banky bykov
					
					-- kontrola na vyradenie kravy
					--if (@DOVVYR != '00')
					if (@DOVVYR is not null) and (select count(*)  from PLIS.dbo.CM_Krava where CISKRAVY = @CISKRAVY and PRIZNAKKU not in (0,3)) = 1 
					begin
						-- priradenie chyby 41
						exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 41
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end				
					end				
					if (@PRIZNAKKU != @CHOVPRIZNAKKU)
					begin
						-- priradenie hlasky 40
						exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 40
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end							
					end
					
					-- samotny presun v DB
					if (@errorflag != 1)		
					begin				
						if (@PRIZNAKKU != @CHOVPRIZNAKKU) 
						begin
							if (@PRIZNAKKU = 1)
							-- presun mimo KU ML
							begin
								-- krava ma naplak a neukoncenu laktaciu?
								if ((select count(*) from CM_Naplak where CISKRAVY = @CISKRAVY) = 1)
								   and ((select DATUKONL from CM_Naplak where CISKRAVY = @CISKRAVY) is null)
								begin
									-- zistenie datumu poslednej kontroly pre datum ukoncenia laktacie
									set @datumPosKont = (select max(DATKONTR) from CM_Kontroly where CISKRAVY = @CISKRAVY)
									set @datumPosKont = isnull(@datumPosKont, getdate())

									-- prepisanie dat z cm_naplak do cm_laktacie
									exec PLIS.dbo.C_aktual_Otelenia_laktacie @CISKRAVY, @CHOVATEL, @datumPosKont, @IDParChov
														
									-- skopirovanie suvisiacich kontrol do archivu kontrol
									exec PLIS.dbo.C_aktual_kontroly_do_archivu @CISKRAVY, 0	
								end
							end
						end

						update PLIS.dbo.CM_Krava 
						set CHOVATEL = @PRIPRESUN, PRIZNAKKU = @CHOVPRIZNAKKU, SPRACUPDATE = @IDParChov, RESPONDER = null
						where CISKRAVY = @CISKRAVY	
					end		
				end
				else
				begin
					-- kontrola na zmenu typu chovu
					if ((select SPVYKON from PLIS.dbo.NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @PRIPRESUN) 
						!= (select SPVYKON from PLIS.dbo.NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL))	
					begin
						-- priradenie hlasky 40
						exec @navrat_hodn = plis.dbo.C_aktual_Presuny_zapis_chybu @IDR, 40
						if (@navrat_hodn = '2')
						begin
							set @errorflag = 1
						end					
					end
		
					if (@errorflag != 1)		
					begin	
					
						if (@PRIZNAKKU != @CHOVPRIZNAKKU) and (@PRIZNAKKU = 1)
						-- presun celeho chovu medzi KU MP a ML
						begin						
							declare kravy_z_chovu cursor  for 
							select distinct CISKRAVY
							from CM_Krava where CHOVATEL = @CHOVATEL and DOVVYR IS NULL
							open kravy_z_chovu
							fetch next from kravy_z_chovu into @CISKRAVY_CHOVU;
							WHILE @@FETCH_STATUS = 0 
							BEGIN			
								-- krava ma naplak a neukoncenu laktaciu?				
								if ((select count(*) from CM_Naplak where CISKRAVY = @CISKRAVY_CHOVU) = 1)
								   and ((select DATUKONL from CM_Naplak where CISKRAVY = @CISKRAVY_CHOVU) is null)
								begin
									-- zistenie datumu poslednej kontroly pre datum ukoncenia laktacie
									set @datumPosKont = (select max(DATKONTR) from CM_Kontroly where CISKRAVY = @CISKRAVY_CHOVU)
									set @datumPosKont = isnull(@datumPosKont, getdate())

									-- prepisanie dat z cm_naplak do cm_laktacie
									exec PLIS.dbo.C_aktual_Otelenia_laktacie @CISKRAVY_CHOVU, @CHOVATEL, @datumPosKont, @IDParChov
									-- skopirovanie suvisiacich kontrol do archivu kontrol
														
									exec PLIS.dbo.C_aktual_kontroly_do_archivu @CISKRAVY_CHOVU, 0	
								end

								update PLIS.dbo.CM_Krava 
								set CHOVATEL = @PRIPRESUN, PRIZNAKKU = @CHOVPRIZNAKKU, SPRACUPDATE = @IDParChov, RESPONDER = null
								where CISKRAVY = @CISKRAVY_CHOVU and DOVVYR IS NULL

								fetch next from kravy_z_chovu into @CISKRAVY_CHOVU;
							end
							close kravy_z_chovu;
							deallocate kravy_z_chovu; 
						end	
						else
							update PLIS.dbo.CM_Krava 
							set CHOVATEL = @PRIPRESUN, PRIZNAKKU = @CHOVPRIZNAKKU, SPRACUPDATE = @IDParChov, RESPONDER = null
							where CHOVATEL = @CHOVATEL and DOVVYR IS NULL
					end
				end						
				--------------------------------------------------------			

			end
			
			-- zaznam v tabulke presunov nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD05_PRESUNY set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR
			
			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'5'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran presun;
						
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'5'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran presun			

		FETCH NEXT
		FROM db_cursor_presuny INTO 	
			 @IDR
			,@DATZAPIS
			,@CISKRAVY
			,@CHOVATEL
			,@PRIPRESUN
			,@CHOVHLAS	

	end
	
	CLOSE db_cursor_presuny
	DEALLOCATE db_cursor_presuny

	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Presuny_aktualizacia ...OK'	
END

go



 CREATE procedure [dbo].[Rocenka_MPHD_17_kraj]
	--@chov varchar(9),
	@datumOd date

	as 
	begin

--declare @datumOd date ='2017-01-01'

	select distinct  k.NAZOV as Kraj_nazov,
		p.kraj, p.okres, p.podnik, p.chov, p.mastal,
		K1_poc, K1_poc_120, K1_perc_120, K1_poc_210, K1_perc_210, K1_poc_365, K1_perc_365, K1_poc_500,
		K1_perc_500, K1_Priem_Hm_120, K1_Priem_Hm_210, K1_Priem_Hm_365, K1_Priem_Hm_500, K1_priem_ziv_prir_120, K1_priem_ziv_prir_210 , K1_priem_ziv_prir_365,
		K1_priem_ziv_prir_500, K1_medziobd , K1_vek_1_otel, K1_priem_lakt, 
		MD1_poc, MD1_poc_vaz_120, MD1_perc_120 , MD1_poc_vaz_210, MD1_perc_210, MD1_poc_vaz_365, MD1_perc_365,
		MD1_poc_vaz_500, MD1_perc_500, MD1_Priem_Hm_120, MD1_Priem_Hm_210, MD1_Priem_Hm_365,	MD1_Priem_Hm_500 , MD1_priem_ziv_prirastok_chov_120, MD1_priem_ziv_prirastok_chov_210, MD1_priem_ziv_prirastok_chov_365,  
		MD1_priem_ziv_prirastok_chov_500,
		K2_poc, K2_poc_120,	K2_perc_120, K2_poc_210, K2_perc_210, K2_poc_365, K2_perc_365, K2_poc_500,
		K2_Priem_Hm_120, K2_Priem_Hm_210, K2_Priem_Hm_365, K2_Priem_Hm_500,
		K2_perc_500, K2_priem_ziv_prirastok_120, K2_priem_ziv_prirastok_210, K2_priem_ziv_prirastok_365,
		K2_priem_ziv_prirastok_500, K2_medziobd, K2_vek_1_otel, K2_priem_lakt, K2_vyradene, 
		J_poc, J_poc_vaz_120, J_perc_120, J_poc_vaz_210 , J_perc_210, J_poc_vaz_365, J_perc_365, J_poc_vaz_500,
		J_perc_500, J_Priem_Hm_120, J_Priem_Hm_210, J_Priem_Hm_365, J_Priem_Hm_500, J_priem_ziv_prirastok_chov_120,  
		J_priem_ziv_prirastok_chov_210, J_priem_ziv_prirastok_chov_365, J_priem_ziv_prirastok_chov_500,

		B_poc, B_poc_vaz_120, B_perc_120, B_poc_vaz_210, B_perc_210, B_poc_vaz_365, B_perc_365, B_poc_vaz_500,
		B_perc_500, B_Priem_Hm_120, B_Priem_Hm_210 , B_Priem_Hm_365,  B_Priem_Hm_500, B_priem_ziv_prirastok_chov_120, B_priem_ziv_prirastok_chov_210, B_priem_ziv_prirastok_chov_365,  
		B_priem_ziv_prirastok_chov_500 ,

		MD2_poc, MD2_poc_vaz_120 , MD2_perc_120, MD2_poc_vaz_210, MD2_perc_210, MD2_poc_vaz_365, MD2_perc_365, MD2_poc_vaz_500, MD2_perc_500, MD2_Priem_Hm_120, MD2_Priem_Hm_210, 
		MD2_Priem_Hm_365, MD2_Priem_Hm_500,	MD2_priem_ziv_prirastok_chov_120, MD2_priem_ziv_prirastok_chov_210, MD2_priem_ziv_prirastok_chov_365, MD2_priem_ziv_prirastok_chov_500,	MD2_vyradene, rok


	
		from Roc_MPHD_Tab_17 as p
			  left join  NC_KRAJ as k  on p.kraj = k.KRAJ
		where p.okres is null and p.podnik is null
			  and datepart(year,@datumOd) = p.rok
		 

End
go

CREATE PROCEDURE [dbo].[P_KUHD]

AS

--	Export dat JCHN do menovky pre HD
--	Autor: Roman Rafaj, 12.04.2016
--	#1936
--  update0210.sql
--  premenovanie stlpca PLEMSER na PLIS


BEGIN

		IF OBJECT_ID('DBF_JCHN') IS NOT NULL
		-- ak existuje tabulka DBF_JCHN, zmaz ju
		DROP TABLE DBF_JCHN

declare @jchndata table (PRIZNAK varchar(2), PODNIK varchar(5), NAZKPP varchar(50), MIESTOPR varchar (50), PSCPR varchar(5), ICOPR varchar(8), DICOPR varchar(10), PREDCPR varchar(6), KOMITENTPR varchar(7), CDUPR varchar(3), CISPOBPR varchar(3), NUMKODPR varchar(4))

INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'04',								-- PRIZNAK
		'',									-- PODNIK
		'Slov. biolog. služby, a. s',		-- NAZKPP
		'BRATISLAVA',						-- MIESTOPR
		'81281',							-- PSCPR
		'35706660',							-- ICOPR
		'2020264917',						-- DICOPR
		'',									-- PREDCPR
		'1481242',							-- KOMITENTPR
		'600',								-- CDUPR
		'012',								-- CISPOBPR
		'0200'								-- NUMKODPR
		)

INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'01',								-- PRIZNAK
		'',									-- PODNIK
		'Št. plem. ústav SR',				-- NAZKPP
		'BRATISLAVA Starohájska 29',		-- MIESTOPR
		'85227',							-- PSCPR
		'30778875',							-- ICOPR
		'2020933893',						-- DICOPR
		' ',								-- PREDCPR
		'7000075',							-- KOMITENTPR
		' ',								-- CDUPR
		'880',								-- CISPOBPR
		'8180'								-- NUMKODPR
		)

INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'02',								-- PRIZNAK
		'',									-- PODNIK
		'BIO SLUŽBA sro.',					-- NAZKPP
		'KOŠICE',							-- MIESTOPR
		'04166',							-- PSCPR
		'31705821',							-- ICOPR
		'31705821',							-- DICOPR
		'8010',								-- PREDCPR
		'1813030',							-- KOMITENTPR
		'698',								-- CDUPR
		'383',								-- CISPOBPR
		'7500'								-- NUMKODPR
		)

INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'31',								-- PRIZNAK
		'',									-- PODNIK
		'REPROTEAM',						-- NAZKPP
		'KOŠICE',							-- MIESTOPR
		'04166',							-- PSCPR
		'31648487',							-- ICOPR
		'31648487',							-- DICOPR
		' ',								-- PREDCPR
		'0018007',							-- KOMITENTPR
		'709',								-- CDUPR
		'542',								-- CISPOBPR
		'0200'								-- NUMKODPR
		)

INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'37',								-- PRIZNAK
		'',									-- PODNIK
		'REPROSPOL SRO',					-- NAZKPP
		'ROŽŇAVA,Šafárikova 98',			-- MIESTOPR
		'04801',							-- PSCPR
		'31670806',							-- ICOPR
		'31670806',							-- DICOPR
		' ',								-- PREDCPR
		'8144846',							-- KOMITENTPR
		'728',								-- CDUPR
		'589',								-- CISPOBPR
		'0900'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'38',								-- PRIZNAK
		'',									-- PODNIK
		'REPROSERVIS S.R.O.',				-- NAZKPP
		'SP.NOVÁ VES, Duklianska 44',		-- MIESTOPR
		'05280',							-- PSCPR
		'31653227',							-- ICOPR
		'31653227',							-- DICOPR
		' ',								-- PREDCPR
		'0008732',							-- KOMITENTPR
		'732',								-- CDUPR
		'126',								-- CISPOBPR
		'1200'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'39',								-- PRIZNAK
		'',									-- PODNIK
		'INSEM. SLUŽBA S.R.O.',				-- NAZKPP
		'TREBIŠOV',							-- MIESTOPR
		'07501',							-- PSCPR
		'31652719',							-- ICOPR
		'31652719',							-- DICOPR
		'000000',							-- PREDCPR
		'0105831',							-- KOMITENTPR
		'740',								-- CDUPR
		'564',								-- CISPOBPR
		'0900'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'52',								-- PRIZNAK
		'',									-- PODNIK
		'MEVA S. R. O.',					-- NAZKPP
		'ČADCA, Jašíkova 1534',				-- MIESTOPR
		'02201',							-- PSCPR
		'31616496',							-- ICOPR
		'31616496',							-- DICOPR
		'000000',							-- PREDCPR
		'0051987',							-- KOMITENTPR
		'654',								-- CDUPR
		'853',								-- CISPOBPR
		'0900'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'55',								-- PRIZNAK
		'',									-- PODNIK
		'INSEMAS S.R.O. LUČEN',				-- NAZKPP
		'LUČENEC, HALIČSKÁ 28',				-- MIESTOPR
		'98480',							-- PSCPR
		'00616371',							-- ICOPR
		'00616371',							-- DICOPR
		'000000',							-- PREDCPR
		'0010302',							-- KOMITENTPR
		'664',								-- CDUPR
		'853',								-- CISPOBPR
		'0200'								-- NUMKODPR
		)
   	INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'57',								-- PRIZNAK
		'',									-- PODNIK
		'OFO s.r.o',						-- NAZKPP
		'ZVOLEN',							-- MIESTOPR
		'96001',							-- PSCPR
		'47031352',							-- ICOPR
		'2020431732',						-- DICOPR
		'000000',							-- PREDCPR
		'0019507',							-- KOMITENTPR
		'666',								-- CDUPR
		'362',								-- CISPOBPR
		'0200'								-- NUMKODPR
		)
	

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'58',								-- PRIZNAK
		'',									-- PODNIK
		'ISOKMAN TRADING',   				-- NAZKPP
		'LUČENEC',							-- MIESTOPR
		'98401',							-- PSCPR
		'36708640',							-- ICOPR
		'2020431732',						-- DICOPR
		'000000',							-- PREDCPR
		'0019507',							-- KOMITENTPR
		'666',								-- CDUPR
		'362',								-- CISPOBPR
		'0200'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'67',								-- PRIZNAK
		'',									-- PODNIK
		'ŠRUBAŘ PAVEL MVDR.',				-- NAZKPP
		'POVAŽSKÁ BYSTRICA',				-- MIESTOPR
		'01704',							-- PSCPR
		'33802777',							-- ICOPR
		'12251226',							-- DICOPR
		'000000',							-- PREDCPR
		'1429642',							-- KOMITENTPR
		'000',								-- CDUPR
		'000',								-- CISPOBPR
		'5200'								-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'10',								-- PRIZNAK
		'',									-- PODNIK
		'SUKROMNICI V INS',					-- NAZKPP
		'',									-- MIESTOPR
		'',									-- PSCPR
		'',									-- ICOPR
		'',									-- DICOPR
		'',									-- PREDCPR
		'',									-- KOMITENTPR
		'',									-- CDUPR
		'',									-- CISPOBPR
		''									-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'08',								-- PRIZNAK
		'',									-- PODNIK
		'WINREG',							-- NAZKPP
		'',									-- MIESTOPR
		'',									-- PSCPR
		'',									-- ICOPR
		'',									-- DICOPR
		'',									-- PREDCPR
		'',									-- KOMITENTPR
		'',									-- CDUPR
		'',									-- CISPOBPR
		''									-- NUMKODPR
		)

		INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'09',								-- PRIZNAK
		'',									-- PODNIK
		'SKU - II.ST',						-- NAZKPP
		'',									-- MIESTOPR
		'',									-- PSCPR
		'',									-- ICOPR
		'',									-- DICOPR
		'',									-- PREDCPR
		'',									-- KOMITENTPR
		'',									-- CDUPR
		'',									-- CISPOBPR
		''									-- NUMKODPR
		)


				INSERT INTO @jchndata (PRIZNAK, PODNIK, NAZKPP, MIESTOPR, PSCPR, ICOPR, DICOPR, PREDCPR, KOMITENTPR, CDUPR, CISPOBPR, NUMKODPR)
		VALUES
		(
		'32',								-- PRIZNAK
		'',									-- PODNIK
		'ILTO s.r.o',						-- NAZKPP
		'',									-- MIESTOPR
		'',									-- PSCPR
		'',									-- ICOPR
		'',									-- DICOPR
		'',									-- PREDCPR
		'',									-- KOMITENTPR
		'',									-- CDUPR
		'',									-- CISPOBPR
		''									-- NUMKODPR
		)

		
		-- temp tabulka #temp.chovyHD
		SELECT 
		KRAJ, OKRES, PODNIK, CHOV, ZRUS, NULL as PODNIKs, TYPZV, NAZOV, ULICA, PSC, OBEC, KOBEC
		INTO #chovyHD FROM NM_CHOVMAS

		-- temp tabulka z virtualnej
		SELECT * 
		INTO #jchndata FROM @jchndata j

		SELECT
			h.KRAJ+''+h.OKRES as KrOkr,
			h.PODNIK,
			h.CHOV,
			h.PRIZNAK,
			p.NAZOV as NAZPOD,
			p.ULICA as UlicaP,
			p.PCISLO as PCislo,
			p.OBEC as MIESTO,
			p.PSC as PSC,
			p.ICO as ico,
			p.DIC as DICO,
			p.DURAD as CDU,
			NULL as BANKAPLAT,
			NULL AS PREDC,		--u.PREDCISLIE as PREDC,
			NULL as KOMITENT,	--LEFT(u.CISUCTU,7) as KOMITENT, (vykomentovane, robi duplikaty, neviem ktory zaznam je spravny)
			NULL as CISPOB,		-- RIGHT(u.CISUCTU,3) as CISPOB, (vykomentovane, robi duplikaty, neviem ktory zaznam je spravny)
			NULL as NUMKOD,		--u.KBANKY as NUMKOD, (vykomentovane, robi duplikaty, neviem ktory zaznam je spravny)
			j.NAZKPP,
			j.MIESTOPR,
			j.PSCPR,
			j.ICOPR,
			j.DICOPR,
			j.CDUPR,
			NULL as BANKAPRIJ, -- nenasiel som v tabulkach (vykomentovane, robi duplikaty, neviem ktory zaznam je spravny)
			j.PREDCPR,
			j.KOMITENTPR,
			j.CISPOBPR,
			j.NUMKODPR,
			NULL as ODSTEP,		-- nenasiel som v tabulkach 
			p.NAZOVSKR as NAZPODskr,
			ch.NAZOV as NAZMAS,	-- ch.NAZOV as NAZMAS, (vykomentovane, robi duplikaty, neviem ktory zaznam je spravny)
			NULL as COB2,		-- COB2 v NM_CHOVMAS neexistuje, stlpec zachovavam
			h.ZVOZ as KOOPMEDZK,
			h.SB as KOOPMEDZO,
			h.KONZUL as KOOPVOK,
			h.OBVZOO as KOOPOB,
			h.CHARCHOV as CHARCHOV,
			h.SPZAIS as SPZAIS,
			h.VYROBL as VYROBL,
--			SUBSTRING(h.PODNIK,2,1) as VYRSEK,
            p.FSEKTOR as VYRSEK, 
			h.CHARUS,
			h.KAPMAST,
			h.SPVYKON,
			h.PLIS as REPROVET,
			h.STAVKRAV,
			h.STAVJAL,
			h.TECHUSMD,
			NULL as MASTALKD,		-- MASTALKS v NM_CHOVMAS neexistuje
			h.MLIEKOMER as REZERVA,
			ch.ZRUS,
			ch.TYPZV
		
		INTO DBF_JCHN

		FROM NM_HDDETAIL h

		LEFT JOIN NM_PODNIK p ON (p.KRAJ+p.OKRES+p.PODNIK = h.KRAJ+h.OKRES+h.PODNIK)
		LEFT JOIN #chovyHD ch ON (ch.KRAJ + ch.OKRES+ch.PODNIK+ch.CHOV = h.KRAJ + h.OKRES+h.PODNIK+h.CHOV)
		LEFT JOIN #jchndata j ON (j.PRIZNAK =h.PRIZNAK)

		WHERE (j.PRIZNAK = h.PRIZNAK OR h.priznak = 99)  AND p.podnik <> '000' AND ch.TYPZV = 1
		
		order by PODNIK

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-27
-- Description:	Priprava suborov rodokmenov matiek a otcov pre plemeno H
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_rodokmeneTXT_H]

AS
BEGIN
	-- zaklad pre tvorbu generacii (K)
	select --top 1000000
		t1.ciskravy as ANIMAL
		,convert(varchar(8), t1.DATUMN, 4) as DATUMN
		,convert(varchar(4), t1.DATUMN, 102) as ROKN
		,t1.TYP as PTYP
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,convert(varchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		,convert(varchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,'K' as POZN
		,ROW_NUMBER() OVER(ORDER BY t1.ciskravy ASC) AS id
		into #temp_kravy0_h_
		from CM_ZSTDM as t1 INNER JOIN
		-- tie ktorych pocetnosti (chov, datkontr, porlak) >= 3 
        CP_HTD as ht ON left(t1.CISCHOVU, 8) = ht.CISCHOVU AND t1.DATKONTR = ht.DATKONTR AND t1.PORLAK = ht.PORLAK
					LEFT OUTER JOIN temp_vsetky_kravy as k ON t1.CISKRAVY = k.CISKRAVY
	WHERE t1.TYP in ('H0', 'H1', 'H2', 'H3')
	and ht.PLEM = 'H' 

	CREATE INDEX IDX_temp_kravy0_h_ ON #temp_kravy0_h_(ANIMAL, ID)

	select ANIMAL, DATUMN, ROKN, PTYP, SIRE, DAM, POZN 
	into #temp_kravy0_h
	from #temp_kravy0_h_ as t1
	where 
	-- vyber len 1 riadok na kravu (zo zoznamu kontrol)
	t1.id = (SELECT top(1) t2.id
         FROM #temp_kravy0_h_ t2
         WHERE t2.ANIMAL = t1.ANIMAL)
	order by t1.ANIMAL

	CREATE INDEX IDX_temp_kravy0_h ON #temp_kravy0_h(DAM)

	-- prva generacia (M)
	select --top 1000
		td1.CISKRAVY as ANIMAL
		,convert(varchar(8), td1.DATNAR, 4) as DATUMN
		,convert(varchar(4), td1.DATNAR, 102) as ROKN
		,td1.PTYP
		,td1.OUSCIS as SIRE
		,td1.MA as DAM
		,'K' as POZN
		into #temp_kravy1_h
		from temp_vsetky_kravy as td1 
	where td1.CISKRAVY in (select DAM from #temp_kravy0_h)

	CREATE INDEX IDX_temp_kravy1_h ON #temp_kravy1_h(DAM)

	-- druha generacia (MM)
	select --top 1000
		td2.CISKRAVY as ANIMAL
		,convert(varchar(8), td2.DATNAR, 4) as DATUMN
		,convert(varchar(4), td2.DATNAR, 102) as ROKN
		,td2.PTYP
		,td2.OUSCIS as SIRE
		,td2.MA as DAM
		,'K' as POZN
		into #temp_kravy2_h
		from temp_vsetky_kravy as td2 
        where td2.CISKRAVY in (select DAM from #temp_kravy1_h)

	-- prva generacia (O)
	select --top 1000
		b1.USCISLO as ANIMAL
		,convert(varchar(8), b1.DATNAR, 4) as DATUMN
		,convert(varchar(4), b1.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b1.pl1, b1.kr1, b1.pl2, b1.kr2, b1.pl3, b1.kr3, b1.pl4, b1.kr4) as PTYP
		,b1.OTUSCIS as SIRE
		,b1.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia1_h
		from CM_Byci as b1
		where b1.USCISLO in (select SIRE from #temp_kravy0_h)

	-- druha generacia (OM)
	select --top 1000
		b2.USCISLO as ANIMAL
		,convert(varchar(8), b2.DATNAR, 4) as DATUMN
		,convert(varchar(4), b2.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b2.pl1, b2.kr1, b2.pl2, b2.kr2, b2.pl3, b2.kr3, b2.pl4, b2.kr4) as PTYP
		,b2.OTUSCIS as SIRE
		,b2.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia2_h
		from CM_Byci as b2
		where b2.USCISLO in (select SIRE from #temp_kravy1_h)

	-- druha generacia (OO)
	select --top 1000
		b3.USCISLO as ANIMAL
		,convert(varchar(8), b3.DATNAR, 4) as DATUMN
		,convert(varchar(4), b3.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b3.pl1, b3.kr1, b3.pl2, b3.kr2, b3.pl3, b3.kr3, b3.pl4, b3.kr4) as PTYP
		,b3.OTUSCIS as SIRE
		,b3.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia3_h
		from CM_Byci as b3
		where b3.USCISLO in (select SIRE from #temp_otcovia1_h)

	-- druha generacia (MO)
	select --top 1000
		td3.CISKRAVY as ANIMAL
		,convert(varchar(8), td3.DATNAR, 4) as DATUMN
		,convert(varchar(4), td3.DATNAR, 102) as ROKN
		,td3.PTYP
		,td3.OUSCIS as SIRE
		,td3.MA as DAM
		,'K' as POZN
		into #temp_kravy3_h
		from temp_vsetky_kravy as td3
        where td3.CISKRAVY in (select DAM from  #temp_otcovia1_h)


	-- jedna tabulka generacii krav, matiek
	insert into #temp_kravy0_h
	select * from #temp_kravy1_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy2_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy3_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	-- jedna tabulka generacii otcov
	insert into #temp_otcovia1_h
	select * from #temp_otcovia2_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)

	insert into #temp_otcovia1_h
	select * from #temp_otcovia3_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)


	-- export krav, matiek do suboru
	SELECT 
		convert(varchar(15), td.ANIMAL + ' ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_kravy_h
	FROM #temp_kravy0_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_kravy_h order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\H\pedcow.sdf" -T -c -t,'

	drop table temp_kravy_h


	-- export otcov do suboru
	SELECT  
		convert(varchar(15), td.ANIMAL + '              ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_otcovia_h
	FROM #temp_otcovia1_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_otcovia_h order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\H\pedbull.sdf" -T -c -t,'

	drop table temp_otcovia_h


end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_PocZvPohl] 
(	
	@chov varchar(9) 
)

RETURNS @T table(nazov varchar(13),pockoz varchar(8),poccap varchar(8), pocmkoz varchar(8), pocmcap varchar(8))
AS
begin
	declare @pockoz int = 0, @poccap int = 0, @pocmkoz int = 0, @pocmcap int = 0
	SELECT @pockoz = @pockoz + pocet
	  FROM function_GP_KozRokNar (@chov)
	SELECT @poccap = @poccap + pocet
	  FROM function_GP_CapRokNar(@chov)
	SELECT @pocmkoz = @pocmkoz + pocmkoz, @pocmcap = @pocmcap + pocmcap
	  FROM function_GP_PocMKozMCap(@chov)
	insert into @T (nazov, pockoz, poccap, pocmkoz, pocmcap) values ('Počet celkom', str(@pockoz,8), str(@poccap,8), str(@pocmkoz,8), str(@pocmcap,8))
	RETURN 
end

go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 23.11.2011
-- Description:	Zisti usne cislo byka zadaneho pomocou linie a registra
-- =============================================
CREATE FUNCTION [dbo].[C_aktual_zisti_USCISBYKA]
(
	@LIN [varchar](3),
    @REG [int]
)
RETURNS [varchar](15)
	
AS	
BEGIN
	declare @USCISBYKA [varchar](15)
	
	set @USCISBYKA = null
	
	if @LIN is not null and @REG is not null
	begin
		set @USCISBYKA = (select USCISLO from PLIS.dbo.CM_Byci where LIN = @LIN and REG = @REG)
	end
	
	return (@USCISBYKA)
END


go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 19.7.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Presuny 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Presuny_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int]
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	-- kontrola na null v priznaku
	select @PriznakChyby = ZNCH_CP_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_PRESUNY (ID_CP, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 1.2.2016
-- Description:	Mesacne vysledky kontroly uzitkovosti a reprodukcie HD 
-- =============================================
CREATE procedure dbo.C_Mesac_vysledky_KURepr_HD
    
	@chov varchar(9) = null
	
as
begin

	
	select
	(KROKR + PODNIK + CHOV) as chovatel,KROKR,PODNIK,CHOV,NAZPOD,NAZCHOV,SKUP ,MESSP,DATPOSK,CISKRAVY,PLEMKR,DATNAR,DATOT,PORPREBLAK
      ,ZMENA,ZNAK,SPI,PERSPOL,ML1,ZN1,ML2,ZN2,ML3,ZN3,ML4,ZN4,ML5,ZN5,ML6,ZN6,ML7,ZN7,ML8,ZN8,ML9,ZN9,ML10,ZN10
      ,ML11,ZN11,ML12,ZN12,NAPDNI,NAPPERT,NAPPERB,NAPML,NAPTK,NAPBL,UDNI
      ,UPERT,UPERB,UML,UTK,UBL,SB1,SB2,PTUKU1,PBIELK1,PTB1,PTUKU2,PBIELK2,PTB2,OVEKR,OVEKM,POHLTEL,PRIEBPOR,DATINS,PORINS
      ,IATERVAL,SERVPER,MEDZIOB,BYKLIN,BYKREG,DATOTOC,OLIN,OREG,OTPLEM,MATKA,MAPLEM,ZNVYR
		
	   from CP_TLACVYV as m
	
	where 
	 (KROKR + PODNIK + CHOV) like @chov+'%' or @chov is null
		 	
	end
go

CREATE PROCEDURE [dbo].[CR_KUHD_MesVys1]
		@chov VARCHAR(9) , @rok INT , @mesiac INT, @dekada INT
AS

DECLARE @chovatel VARCHAR(9), @KROKR AS VARCHAR(3), @PODNIK AS VARCHAR(3), @chov3 AS VARCHAR(3)
SET @chovatel = @chov
SET @krokr = SUBSTRING(@chovatel, 1,3)
SET @podnik = SUBSTRING(@chovatel,4,3)
SET @chov3 = SUBSTRING(@chovatel,7,3)

DECLARE @aktualny_rok INT, @start_day INT, @end_day INT, @start DATE, @end DATE, @start1 DATE, @end1 DATE, @start2 DATE, @end2 DATE,@minusrok DATE

		SET @aktualny_rok = YEAR(GETDATE())
        SET @start_day = 15
        SET @end_day = 14

		IF (@dekada = 1)
			BEGIN
			SET @start =  DATEADD(mm, -1, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
			END
		ELSE
			BEGIN
			SET @start = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
			END
		
		IF (@dekada = 1)
			BEGIN
			SET @end = CAST(eomonth(@start) AS date)
			END
		ELSE
			BEGIN
			SET @end = DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('14' AS VARCHAR(2)) AS DATE))
			END


-- doplnit vyradene kravy <> 0 a posledne 3 mesiace, doplnit stlpec, kde budem zapisovat, ci sa jedna o zijucu alebo vyradenu kravu, datum vyradenia musi byt mensi ako 31

IF OBJECT_ID('tempdb..#vyberovka') IS NOT NULL DROP TABLE #vyberovka
SELECT *
INTO #vyberovka
FROM [plis].[dbo].[CP_TLACVYV]
WHERE KROKR = @KROKR AND podnik = @podnik AND CHOV = @chov3

--SELECT * FROM #vyberovka

SELECT kr.CISKRAVY,v.* FROM dbo.CM_Krava kr
		LEFT JOIN #vyberovka v ON (v.CISKRAVY = kr.CISKRAVY)
		WHERE CHOVATEL = @chovatel AND (ISNULL(kr.DOVVYR,'') = '' OR kr.DOVVYR = '00')

SELECT kr.CISKRAVY, kr.DATVYR, kr.DOVVYR, v.* FROM dbo.CM_Krava kr
		LEFT JOIN #vyberovka v ON (v.CISKRAVY = kr.CISKRAVY)
		WHERE CHOVATEL = @chovatel AND kr.DATVYR >=  DATEADD(dd, -31, @start)	
		ORDER BY kr.DATVYR DESC
        
SELECT @start
go

CREATE procedure [dbo].[Rocenka_MPHD_16]
    @rok int
	
as
begin

	select* 
	from Roc_MPHD_Tab_16 
	--where   z.rok = @rok 
	order by rok desc
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create procedure [dbo].[C_ZZ_UzavreteLaktSkladba_Final]
AS
BEGIN
	
	declare @chovatel varchar(10);

	DELETE FROM plis.dbo.CP_PoslednaUzavretaLakt
		WHERE laktacia is NULL;


	declare chovv cursor for
	select DISTINCT hovatel
	from plis.dbo.CP_PoslednaUzavretaLakt

	open chovv
	fetch next from chovv into @chovatel

	while @@FETCH_STATUS=0
	begin
		

		insert into plis.dbo.CP_PoslednaUzavretaLakt values(null,(select sum(po4) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select sum(po4N) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(dni) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(dniN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(mlieko) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(mliekoN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(tuk) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(tukN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(bielk) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(bielkN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(TaB) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(TaBN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(vek) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(vekdni) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(medzi) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		(select avg(medziN) from plis.dbo.CP_PoslednaUzavretaLakt where laktacia>=2 and hovatel=@chovatel),
																		@chovatel)



		fetch next from chovv into @chovatel
	end

	close chov;
	deallocate chov;
	
END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-27
-- Description:	Priprava suborov rodokmenov matiek a otcov pre plemeno S
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_rodokmeneTXT_S]

AS
BEGIN
	-- zaklad pre tvorbu generacii (K)
	select --top 1000000
		t1.ciskravy as ANIMAL
		,convert(varchar(8), t1.DATUMN, 4) as DATUMN
		,convert(varchar(4), t1.DATUMN, 102) as ROKN
		,t1.TYP as PTYP
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,convert(varchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		,convert(varchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,'K' as POZN
		,ROW_NUMBER() OVER(ORDER BY t1.ciskravy ASC) AS id
		into #temp_kravy0_h_
		from CM_ZSTDM as t1 INNER JOIN
		-- tie ktorych pocetnosti (chov, datkontr, porlak) >= 3 
        CP_HTD as ht ON left(t1.CISCHOVU, 8) = ht.CISCHOVU AND t1.DATKONTR = ht.DATKONTR AND t1.PORLAK = ht.PORLAK
					LEFT OUTER JOIN temp_vsetky_kravy as k ON t1.CISKRAVY = k.CISKRAVY
	WHERE t1.TYP in ('S0', 'S1', 'S2')
	and ht.PLEM = 'S' 

	CREATE INDEX IDX_temp_kravy0_h_ ON #temp_kravy0_h_(ANIMAL, ID)

	select ANIMAL, DATUMN, ROKN, PTYP, SIRE, DAM, POZN 
	into #temp_kravy0_h
	from #temp_kravy0_h_ as t1
	where 
	-- vyber len 1 riadok na kravu (zo zoznamu kontrol)
	t1.id = (SELECT top(1) t2.id
         FROM #temp_kravy0_h_ t2
         WHERE t2.ANIMAL = t1.ANIMAL)
	order by t1.ANIMAL

	CREATE INDEX IDX_temp_kravy0_h ON #temp_kravy0_h(DAM)

	-- prva generacia (M)
	select --top 1000
		td1.CISKRAVY as ANIMAL
		,convert(varchar(8), td1.DATNAR, 4) as DATUMN
		,convert(varchar(4), td1.DATNAR, 102) as ROKN
		,td1.PTYP
		,td1.OUSCIS as SIRE
		,td1.MA as DAM
		,'K' as POZN
		into #temp_kravy1_h
		from temp_vsetky_kravy as td1 
	where td1.CISKRAVY in (select DAM from #temp_kravy0_h)

	CREATE INDEX IDX_temp_kravy1_h ON #temp_kravy1_h(DAM)

	-- druha generacia (MM)
	select --top 1000
		td2.CISKRAVY as ANIMAL
		,convert(varchar(8), td2.DATNAR, 4) as DATUMN
		,convert(varchar(4), td2.DATNAR, 102) as ROKN
		,td2.PTYP
		,td2.OUSCIS as SIRE
		,td2.MA as DAM
		,'K' as POZN
		into #temp_kravy2_h
		from temp_vsetky_kravy as td2 
        where td2.CISKRAVY in (select DAM from #temp_kravy1_h)

	-- prva generacia (O)
	select --top 1000
		b1.USCISLO as ANIMAL
		,convert(varchar(8), b1.DATNAR, 4) as DATUMN
		,convert(varchar(4), b1.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b1.pl1, b1.kr1, b1.pl2, b1.kr2, b1.pl3, b1.kr3, b1.pl4, b1.kr4) as PTYP
		,b1.OTUSCIS as SIRE
		,b1.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia1_h
		from CM_Byci as b1
		where b1.USCISLO in (select SIRE from #temp_kravy0_h)

	-- druha generacia (OM)
	select --top 1000
		b2.USCISLO as ANIMAL
		,convert(varchar(8), b2.DATNAR, 4) as DATUMN
		,convert(varchar(4), b2.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b2.pl1, b2.kr1, b2.pl2, b2.kr2, b2.pl3, b2.kr3, b2.pl4, b2.kr4) as PTYP
		,b2.OTUSCIS as SIRE
		,b2.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia2_h
		from CM_Byci as b2
		where b2.USCISLO in (select SIRE from #temp_kravy1_h)

	-- druha generacia (OO)
	select --top 1000
		b3.USCISLO as ANIMAL
		,convert(varchar(8), b3.DATNAR, 4) as DATUMN
		,convert(varchar(4), b3.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b3.pl1, b3.kr1, b3.pl2, b3.kr2, b3.pl3, b3.kr3, b3.pl4, b3.kr4) as PTYP
		,b3.OTUSCIS as SIRE
		,b3.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia3_h
		from CM_Byci as b3
		where b3.USCISLO in (select SIRE from #temp_otcovia1_h)

	-- druha generacia (MO)
	select --top 1000
		td3.CISKRAVY as ANIMAL
		,convert(varchar(8), td3.DATNAR, 4) as DATUMN
		,convert(varchar(4), td3.DATNAR, 102) as ROKN
		,td3.PTYP
		,td3.OUSCIS as SIRE
		,td3.MA as DAM
		,'K' as POZN
		into #temp_kravy3_h
		from temp_vsetky_kravy as td3
        where td3.CISKRAVY in (select DAM from  #temp_otcovia1_h)


	-- jedna tabulka generacii krav, matiek
	insert into #temp_kravy0_h
	select * from #temp_kravy1_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy2_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy3_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	-- jedna tabulka generacii otcov
	insert into #temp_otcovia1_h
	select * from #temp_otcovia2_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)

	insert into #temp_otcovia1_h
	select * from #temp_otcovia3_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)


	-- export krav, matiek do suboru
	SELECT 
		convert(varchar(15), td.ANIMAL + ' ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_kravy_h
	FROM #temp_kravy0_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'
	order by ANIMAL

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_kravy_h order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\S\pedcow.sdf" -T -c -t,'

	drop table temp_kravy_h


	-- export otcov do suboru
	SELECT  
		convert(varchar(15), td.ANIMAL + '              ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_otcovia_h
	FROM #temp_otcovia1_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'
	order by ANIMAL

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_otcovia_h order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\S\pedbull.sdf" -T -c -t,'

	drop table temp_otcovia_h


end
go


-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-06-21
-- Description:	Laktacie podla usekov za chovy pre gen. hodnotenie SIM populacie v DE 
-- =============================================
CREATE PROCEDURE [dbo].[C_gen_S_phenotypic0]
AS
BEGIN

	 delete from CP_USEKY_LAKT_ROCNE
--	 drop table #temp_ik1_100 drop table #temp_ik1_200 drop table #temp_ik1_305 drop table #temp_ik2_305 drop table #temp_ik3_305

-- 1 lakt 100 dni
	select chovatel, porlak, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR(DATUKONL) end ) as ROK, 100 as DNI,  mlieko100  into #temp_ik1_100

    FROM View_CP_LaktacieNaplak 
 	where  zmena in (30, 40 ) and porlak = 1 and mlieko100 is not null  and ( datuknorl is not null or datukonl is not null)
--	and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

    insert into CP_USEKY_LAKT_ROCNE
    select  chovatel, ROK, PORLAK, DNI ,  (sum (mlieko100*100)/sum(100) ) as PRMLIEKO                                                                                    
            from #temp_ik1_100 
            group by chovatel, ROK, PORLAK, DNI

   
-- 1 lakt 200 dni
	select chovatel, porlak, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR(DATUKONL) end ) as ROK, 200 as DNI,  mlieko200  into #temp_ik1_200

    FROM View_CP_LaktacieNaplak 
 	where  zmena in (30, 40 ) and porlak = 1 and mlieko200 is not null  and ( datuknorl is not null or datukonl is not null)
--	and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

    insert into CP_USEKY_LAKT_ROCNE
    select  chovatel, ROK, PORLAK, DNI ,  (sum (mlieko200*200)/sum(200) ) as PRMLIEKO                                                                                    
            from #temp_ik1_200 
            group by chovatel, ROK, PORLAK, DNI

-- 1 lakt 305 dni
	select chovatel, porlak, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR(DATUKONL) end ) as ROK, 305 as DNI,  MLIEKNOR  into #temp_ik1_305

    FROM View_CP_LaktacieNaplak 
 	where  zmena in (30, 40 ) and porlak = 1 and mlieknor is not null  and ( datuknorl is not null or datukonl is not null)
--	and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

    insert into CP_USEKY_LAKT_ROCNE
    select  chovatel, ROK, PORLAK, DNI ,  (sum (mlieknor*305)/sum(305) ) as PRMLIEKO                                                                                    
            from #temp_ik1_305 
            group by chovatel, ROK, PORLAK, DNI

-- 2 lakt 305 dni
	select chovatel, porlak, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR(DATUKONL) end ) as ROK, 305 as DNI,  MLIEKNOR  into #temp_ik2_305

    FROM View_CP_LaktacieNaplak 
 	where  zmena in (30, 40 ) and porlak = 2 and mlieknor is not null  and ( datuknorl is not null or datukonl is not null)
--	and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

    insert into CP_USEKY_LAKT_ROCNE
    select  chovatel, ROK, PORLAK, DNI ,  (sum (mlieknor*305)/sum(305) ) as PRMLIEKO                                                                                    
            from #temp_ik2_305 
            group by chovatel, ROK, PORLAK, DNI

-- 3 lakt 305 dni
	select chovatel, porlak, (case when datuknorl is not null then YEAR(DATUKNORL) else YEAR(DATUKONL) end ) as ROK, 305 as DNI,  MLIEKNOR  into #temp_ik3_305

    FROM View_CP_LaktacieNaplak 
 	where  zmena in (30, 40 ) and porlak = 3 and mlieknor is not null  and ( datuknorl is not null or datukonl is not null)
--	and CISKRAVY in (select  CISKRAVY from CM_Krava where TYPPLEM in (11, 13, 14))

    insert into CP_USEKY_LAKT_ROCNE
    select  chovatel, ROK, PORLAK, DNI ,  (sum (mlieknor*305)/sum(305) ) as PRMLIEKO                                                                                    
            from #temp_ik3_305 
            group by chovatel, ROK, PORLAK, DNI



END

go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 07.09.2011
-- Description:	Otelenia - aktualizacia - NEW
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Otelenia_aktualizacia] 
	@parChov varchar(9)
	
AS
BEGIN
	declare @IDR int
	declare @CORG varchar(2)
	declare @STREDISKO [varchar](3)
	declare @OSCISLO [varchar](5)
	declare @DATZAPIS [datetime] 
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit] 
	declare @CHOVATEL [varchar](9) 
	declare @CISKRAVY [varchar](14) 
	declare @DATOTEL [date]
	declare @POHLAVIE [varchar](2)
	declare @PRIEBPOR [varchar](1)		
	declare @CISTELATA [varchar](14) 	
	declare @DOVVYR [varchar](2)	
	declare @DATVYR [date]	
	declare @DI [varchar](1)
	
	declare @errorflag bit
	declare @navrat_hodn [varchar](1)
	declare @JeVCM_Krava [bit]	
	declare @_DATOTEL [date]
	declare @_MEDZIOBDOBIE [int]	
	declare @_DATNAR [date]		
	declare @_PORLAK [int]
	declare @JeVCM_Naplak [bit]
	declare @PRIZNAKKU [varchar](1)
	declare @IDKRAVY int
	declare @IDOT int	
	declare @counter1 int
	declare @rowcount1 int	
	declare @_DOVVYR [varchar](2)
	declare @_DATVYR [date]
	declare @_CHOVATEL [varchar](9)
	declare @_IDTELATA [varchar](14) 
	DECLARE @sql_query nvarchar(2000)	
	declare @povod varchar (1)
	declare @OtecLin varchar (3)
	declare @OtecReg int
	declare @OtecUsCis varchar (15)
	declare @PL1 [varchar](2)
	declare @KR1 [decimal](5,2)
	declare @PL2 [varchar](2)
	declare @KR2 [decimal](5,2)
	declare @PL3 [varchar](2)
	declare @KR3 [decimal](5,2)
	declare @PL4 [varchar](2)
	declare @KR4 [decimal](5,2)
	declare @PL5 [varchar](2)
	declare @OFarba varchar (2)
	declare @MFarba varchar (2)	
	declare @Farba varchar (2)
	declare @DobaNos int
	declare @JeDvojca [bit]
	declare @_POHLAVIE [varchar](2)
	declare @bezTelata bit
	
	declare
		@T_CISTELATA [varchar](14),
		@T_CHOVATEL [varchar](9),
		@T_OTECLIN [varchar](3),
		@T_OTECREG [int],
		@T_OUC [varchar](14), 
		@T_MATKA [varchar](14), 
		@T_IDOT [int],
		@T_IDMA [int],
		@T_DATNAR [date],
		@T_PL1 [varchar](2),
		@T_KR1 [decimal](5,2),
		@T_PL2 [varchar](2),
		@T_KR2 [decimal](5,2),
		@T_PL3 [varchar](2),
		@T_KR3 [decimal](5,2),
		@T_PL4 [varchar](2),
		@T_KR4 [decimal](5,2),
		@T_PL5 [varchar](2),
		@T_FARBA [varchar](2),
		@T_ZNAKET [int],			
		@T_POHLAVIE [varchar](2),
		@T_DOVVYR [varchar](2),  
		@T_DATVYR [date],
		@T_TYPPLEM [varchar](3)   
		
	DECLARE @sql_update nvarchar(2000)	
	declare @dupl int			
	
	declare
		@N_DATUKNORL date,
		@N_LAKTDNI [decimal](6,2),
		@N_LAKDNIN [decimal](6,2),
		@N_MLIEKCEL [decimal](7,2),
		@N_MLIEKNOR [decimal](7,2),
		@N_TUKCEL [decimal](6,2),
		@N_TUKNOR [decimal](6,2),
		@N_BIELKCEL [decimal](6,2),
		@N_BIELKNOR [decimal](6,2),
		@N_LAKTOZAC [decimal](6,2),
		@N_LAKTOZAN [decimal](6,2),
		@N_INDPER [decimal](5,2),
		@N_BEZT int,
		@N_MLIEKO100 [decimal](7,2),
		@N_TUK100 [decimal](6,2),
		@N_BIELK100 [decimal](6,2),
		@N_LAKT100 [decimal](6,2),
		@N_MLIEKO200 [decimal](7,2),
		@N_TUK200 [decimal](6,2),
		@N_BIELK200 [decimal](6,2),
		@N_LAKT200 [decimal](6,2),
		@N_ZNAK varchar(1),
		@N_ZMENA varchar(2),
		@NenormalLakt bit,
		
		@KR_DATPOSKONTR	date,
		@KR_POHLAVIE [varchar](2),		
		@VIAC_CISKRAVY [varchar](14),
		@VIAC_ZMENA varchar(2),
		@VIAC_LAKTDNI [decimal](6,2),
		@VIAC_MLIEKCEL [decimal](7,2),
		@VIAC_TUKCEL [decimal](6,2),
		@VIAC_BIELKCEL [decimal](6,2),
		@VIAC_LAKTOZAC [decimal](6,2)

	declare @CISKRAVY_TEST [varchar](14) 
	declare @DATOTEL_TEST [date]	
	declare @N_PORLAK int
	declare @CHOVPOV varchar(9)
		
	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov		
			
	print 'C_aktual_Otelenia_aktualizacia '	
	
	-- vyber doposial nespracovanych oteleni z CK_OTELENIA
	declare db_cursor_otelenia cursor
	FOR
	SELECT IDR
		,CHOV 
		,CISKRAVY 
		,convert(date, nullif(DATOTEL, ''), 104) as DATOTEL
		,nullif(POHLAVIE, '') as POHLAVIE
		,nullif(PRIEBPOROD, '') as PRIEBPOROD
		,nullif(CISTELATA, '') as CISTELATA
		,nullif(DOVVYR, '') as DOVVYR
		,convert(date, nullif(DATVYR, ''), 104) as DATVYR
		,DI
	FROM VstupyPLIS.dbo.CP_HD04_OTELENIA where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)

	OPEN db_cursor_otelenia


	-- cyklus cez vsetky nespracovane otelenia
	FETCH NEXT
	FROM db_cursor_otelenia INTO 	
		 @IDR
		,@CHOVATEL 
		,@CISKRAVY 
		,@DATOTEL
		,@POHLAVIE 
		,@PRIEBPOR 
		,@CISTELATA
		,@DOVVYR
		,@DATVYR
		,@DI	
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke oteleni nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD04_OTELENIA set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran otelenia	
		begin try		
			
			-- vynulovanie premennych
			set @JeVCM_Krava = 0
			set @JeVCM_Naplak = 0	
			set @errorflag = (select 0)	
			set @_DATOTEL = null
			set @_MEDZIOBDOBIE = null
			set @_DOVVYR = null
			set @_DATVYR = null
			set @_IDTELATA = null 
			set @sql_query = null	
			set @JeDvojca = 0
			set @dupl = 0
			set @_PORLAK = null	
			set @_CHOVATEL = null
			set @_DATNAR = null
			set @PRIZNAKKU = null
			set @IDKRAVY = null
			set @MFarba = null
			set @OFarba = null
			set @Farba = null
			set @PL1 = null 
			set @KR1 = null 
			set @PL2 = null
			set @KR2 = null
			set @PL3 = null
			set @KR3 = null
			set @PL4 = null
			set @KR4 = null
			set @PL5 = null
					
			set @T_CISTELATA = null 
			set @T_CHOVATEL  = null
			set @T_OTECLIN	 = null
			set @T_OTECREG	 = null
			set @T_OUC		 = null
			set @T_MATKA	 = null
			set @T_IDOT		 = null
			set @T_IDMA		 = null
			set @T_DATNAR	 = null
			set @T_PL1  = null
			set @T_KR1  = null
			set @T_PL2  = null
			set @T_KR2  = null
			set @T_PL3  = null
			set @T_KR3  = null
			set @T_PL4  = null
			set @T_KR4  = null
			set @T_PL5  = null
			set @T_FARBA	 = null
			set @T_ZNAKET	 = null
			set @T_POHLAVIE  = null
			set @T_DOVVYR	 = null
			set @T_DATVYR	 = null
			set @T_TYPPLEM	 = null
							
			set @N_DATUKNORL = null 
			set @N_LAKTDNI	= null
			set @N_LAKDNIN	= null
			set @N_MLIEKCEL = null
			set @N_MLIEKNOR = null
			set @N_TUKCEL	= null
			set @N_TUKNOR	= null
			set @N_BIELKCEL = null
			set @N_BIELKNOR	= null
			set @N_LAKTOZAC	= null
			set @N_LAKTOZAN	= null
			set @N_INDPER	= null
			set @N_MLIEKO100 = null
			set @N_TUK100	= null
			set @N_BIELK100	= null
			set @N_LAKT100	= null
			set @N_MLIEKO200 = null
			set @N_TUK200	= null
			set @N_BIELK200	= null
			set @N_LAKT200	= null
			set @N_ZNAK		= null
			set @N_ZMENA	= null
			set @NenormalLakt = null
							  
			set @KR_DATPOSKONTR	= null	
			set @KR_POHLAVIE = NULL
			set @CISKRAVY_TEST = NULL
			set @DATOTEL_TEST = NULL
			set @IDOT = NULL
			set @IDKRAVY = NULL
			set @OtecLin = NULL
			set @OtecReg = NULL
			set @OtecUsCis = NULL
			set @N_PORLAK = null
			set @bezTelata = 0
			set @CHOVPOV = null

			print 'CISKRAVY ' + @CISKRAVY

			-- nacitanie niektorych potrebnych udajov z CM_Krava
			select @JeVCM_Krava=1, @_DOVVYR=DOVVYR, @_CHOVATEL=CHOVATEL, @_DATNAR = DATNAR, @_PORLAK = PORPREBLAK, @PRIZNAKKU=PRIZNAKKU, @IDKRAVY=IDKRAVY,
			--@PL1_M = PL1, @KR1_M = KR1, @PL2_M = PL2, @KR2_M = KR2, @PL3_M = PL3, @KR3_M = KR3, @PL4_M = PL4, @KR4_M = KR4, @PL5_M = PL5, 
			@MFarba = FARBA, @KR_POHLAVIE = POHLAVIE from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)	
			
			-- pre presnejsi udaj o poradi laktacie
			select @_PORLAK = PORLAK from PLIS.dbo.CM_NAPLAK where CISKRAVY = @CISKRAVY				

			-- bezne otelenie
			if @DI = '1'
			begin
				-- zistenie, ci je hlasene tela duplicitne
				exec @dupl = PLIS.dbo.C_aktual_zisti_dupl_tela  @CISKRAVY, @DATOTEL, @CISTELATA, @POHLAVIE 
				if @dupl = 1
				begin
					-- priradenie chyby 43
					set @CHOVPOV = (select top 1 CHOVATEL from CM_Telata where (MATKA = @CISKRAVY or @CISKRAVY is null) and (DATNAR = @DATOTEL or @DATOTEL is null) and (CISTELATA = @CISTELATA or @CISTELATA is null) and (POHLAVIE = @POHLAVIE or @POHLAVIE is null))
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 43, 'INS', @CHOVPOV
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end	
					else 
					if (@navrat_hodn = '1')
					begin
						set @bezTelata = 1
					end
				end	
				else	
					-- zistenie, ci je hlasene tela dvojca
					exec @JeDvojca = PLIS.dbo.C_aktual_zisti_tela_dvojca @CISKRAVY, @DATOTEL, @CISTELATA, @POHLAVIE
				
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL) and PRIZNAK = '01') = 0
				begin
					-- priradenie chyby 4
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 4, 'INS'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVATEL = (select null)
					end
				end	else
				-- kontrola sposobu vykonu KU na chove (mliekova)
				begin
					if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
					where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)
					and PRIZNAK = '01' and not(SPVYKON = '4' or SPVYKON = '5')) = 0
					begin
						-- priradenie chyby 47
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 47, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @CHOVATEL = (select null)
						end
					end				
				end		

				-- kontrola: krava nie je v CM_Krava (nie je v KU)
				if @JeVCM_Krava = 0 or @PRIZNAKKU in (0,3,4)	
				begin
					if (@CISKRAVY != 'SK999999999999')
					begin
						-- otelit mozno aj kravu(tela), bez predchadzajucej existencie v DB	 -- 20160426	
						---- kontrola: zviera nie je v CM_Telata (inac pri oteleni prejde do CM_Kravy)
						--if ((select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @CISKRAVY)) = 0) 
							-- pri ruseni vyradenia kravy, ktora nie je v DB; pri vyradeni kravy, ktora nie je v DB -- 20130614
						--or 
						--if (@DOVVYR = '99') or ((@DOVVYR != '99') and (@DATOTEL is NULL))
						if (@DATOTEL is NULL) -- 20170303 - okrem pripadov, ked sa hlasi otelenie
						begin
							-- priradenie chyby 38
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 38, 'INS'
							if (@navrat_hodn = '2')
								set @errorflag = (select 1)
						end
					end
				end else
				begin
					-- kontrola: krava nie je v KUMl (mozu byt PRIZNAKKU 0, 1, 3, 4)
					if (@PRIZNAKKU = '2')
					begin
						-- priradenie chyby 63
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 63, 'INS'
						if (@navrat_hodn = '2')
							set @errorflag = (select 1)
					end
				end
				
				-- kontrola: krava je na uvedenom chove?
				if (@JeVCM_Krava = 1 and @PRIZNAKKU = '1')
					if (@_CHOVATEL != @CHOVATEL) and (@DOVVYR != '99') 
					begin
						-- priradenie chyby 19
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 19, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @CHOVATEL = (select null)
						end
					end
				
				-- ak je dvojca ignoruj kontroly na vyradenost (ak preslo 1. dvojca)
				if (@JeDvojca = 0)
				begin
					-- kontrola: nevyradenost alebo vyradenost kravy pre vyradovanie alebo zrusenie vyradenia kravy	
					if @DOVVYR is not null
					begin	
						-- kobtrola: vyradenie vyradenej kravy	
						if (@DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia)) and (@DOVVYR != '99')
							and (@_DOVVYR is not null)
						begin
							-- priradenie chyby 42
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 42, 'INS'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @DOVVYR = (select null)
							end
						end	else
						begin
							-- kobtrola: zrusenie vyradenie nevyradenej kravy	
							if (@DOVVYR = '99') and (@_DOVVYR is null) 
								-- len ak ide o presun medzi mastalami
								and @_CHOVATEL != @CHOVATEL and @PRIZNAKKU = '1'
							begin
								-- priradenie chyby 39
								exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 39, 'INS'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @DOVVYR = (select null)
								end
							end					
						end		
					end
				end
				
	/*			-- kontrola: ide len o otelenie (moze byt otelenie so zrusenim vyradenia)
				if @DOVVYR is null or 
					(@DOVVYR = '99' and @DATOTEL is not null)*/
				-- kontrola: hlasi sa otelenie (mozne vyradenie sa hlasi v dalsom kroku)
				if @DATOTEL is not null
				begin				
					-- kontrola: krava uz ma zaznam v CM_Naplak
					if (select COUNT(*) from PLIS.dbo.CM_Naplak where (CISKRAVY = @CISKRAVY)) != 0
					begin
						set @JeVCM_Naplak = 1;

						select @_DATOTEL=DATOTEL, @_PORLAK=PORLAK, @_MEDZIOBDOBIE = MEDZIOBD from CM_Naplak where (CISKRAVY = @CISKRAVY)
						-- nacita datum otelenia zo zaznamu z CM_Naplak
						set @_DATOTEL = isnull(@_DATOTEL, @DATOTEL)
						
						-- ak tela nie je dvojca
						if (@JeDvojca = 0)
						begin									
							-- vypocet medziobdobia
							set @_MEDZIOBDOBIE = DATEDIFF(day, @_DATOTEL, @DATOTEL)

							-- ak ma naplak - tak z predch naplak + 1
							set @_PORLAK = (select isnull(@_PORLAK, 0) + 1)
						end
					end	else
					begin
						/*-- ked nema naplak
						if @PRIZNAKKU != '1'
							-- porlak = 1 (krava z teliat) 
							set @_PORLAK = (select 1)	*/		
							-- pridana podmienka na pripad, ze zaraduje krava s vyssou laktaciou
							if (@_PORLAK = 0 or @_PORLAK is null)
								set @_PORLAK = (select isnull(@_PORLAK, 0) + 1)			
					end			
					
					-- kontrola: chybny datum otelenia
					if (DATEDIFF(DAY, @DATOTEL, getdate()) < 0) or (DATEDIFF(DAY, '2000-01-01', @DATOTEL) < 0)
					begin
						-- priradenie chyby 20
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 20, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end 
					end		
						
					-- kontrola: 1.otelenie kravy mimo 600-1850 dní
					if (@_PORLAK = 1 and @DATOTEL is not NULL)
					begin
						if (DATEDIFF(DAY, @_DATNAR, @DATOTEL) < 660) and (DATEDIFF(DAY, @_DATNAR, @DATOTEL) > 1850)
						begin
							-- priradenie chyby 21
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 21, 'INS'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end 
						end					
					end						
					
					-- kontrola: Dátum otel. <= predošlému dat.otel.
					if (@_MEDZIOBDOBIE <= 0)
					begin
						-- priradenie chyby 30
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 30, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end 
					end	
					
					-- ak je dvojca ignoruj kontroly na vyradenost (ak preslo 1. dvojca)
					if (@JeDvojca = 0)
					begin				
						-- kontrola: vyradenie hlasene sucasne s otelenim so skorsim datumom vyradenia
						if @DOVVYR is not null
						begin	
							if (@DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia)) and (@DOVVYR != '99')
							begin
								if (DATEDIFF(DAY, @DATVYR, @DATOTEL) > 0)
								begin
									-- priradenie chyby 29
									exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 29, 'INS'
									if (@navrat_hodn = '2')
									begin
										set @errorflag = (select 1)
									end else
									if (@navrat_hodn = '1')
									begin
										set @DOVVYR =  null							
										set @DATVYR =  null
									end
								end					
							end	
						end				
					end
					
					-- kontrola: Medziobdobie < 240, zmetanie < 210 
					if (@_MEDZIOBDOBIE < 240) or (@_MEDZIOBDOBIE < 210 and @POHLAVIE = '71')
					begin
						-- priradenie chyby 22
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 22, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @_MEDZIOBDOBIE = null
						end
					end	
					
					-- kontrola: Nesprávny priebeh pôrodu 
					if not ((@PRIEBPOR in (select KOD from plis.dbo.CC_Porody)) or (@PRIEBPOR is null))
					begin
						-- priradenie chyby 24
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 24, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @PRIEBPOR = (select null)
						end
					end		
					
					-- kontrola: Nesprávny kód pohlavia teľaťa 
					if not ((@POHLAVIE in (select KOD from plis.dbo.CC_Pohlavie)) or (@POHLAVIE is null))
					begin
						-- priradenie chyby 25
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 25, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @POHLAVIE = null
						end
					end	
									
					-- ak je dvojca ignoruj kontroly na vyradenost (ak preslo 1. dvojca)
					if (@JeDvojca = 0)
					begin				
						-- kontrola: Hlasenie otelenia vyradenej krave
						if @_DOVVYR is not null and (@DOVVYR != '99' or @DOVVYR is null)
						begin
							-- priradenie chyby 26
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 26, 'INS'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end
						end	
					end
				end
	---------------------------------------------		

				-- ak je dvojca ignoruj kontroly na vyradenost (ak preslo 1. dvojca)
				if (@JeDvojca = 0)
				begin		
					-- ide o vyradenie (nie otelenie)			
					if (@DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia))
					begin
						-- kontrola: kod vyradenia != 99    - treba vyradit		
						if (@DOVVYR != '99')
						begin
							-- kontrola: Chybny datum vyradenia
							if @DATVYR is null
							begin
								-- priradenie chyby 29
								exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 29, 'INS'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @DATVYR = null
								end
							end	else
							if (DATEDIFF(DAY, @DATVYR, getdate()) < 0) or (DATEDIFF(DAY, '2000-01-01', @DATVYR) < 0)
							begin
								-- priradenie chyby 29
								exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 29, 'INS'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @DATVYR = null
								end					
							end				
						end
					end else
					if (@DOVVYR is not null)
					begin
						-- kontrola: Nespravny dovod vyradenia
						-- priradenie chyby 28
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 28, 'INS'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end else
						if (@navrat_hodn = '1')
						begin
							set @DOVVYR = null
						end
					end	
				end
				
			-------------------------	
				if @DATOTEL is not null
				begin				
					-- zacina aktualizacia pre hlasenie otelenia
					if (@errorflag = 0)
					begin
						if (@JeDvojca = 0)
						begin				
							if (@JeVCM_Naplak = 1)
							begin
								-- prevziat z naplaku do laktacii (insert alebo update (podla poradia laktacie))
								exec PLIS.dbo.C_aktual_Otelenia_laktacie @CISKRAVY, @CHOVATEL, @DATOTEL, @IDParChov
									
								-- zmaze sa prislusna prebiehajuca laktacia v CM_Naplak
								delete from PLIS.dbo.CM_Naplak
									where CISKRAVY = @CISKRAVY			
							end			
							
							-- skopirovanie suvisiacich kontrol do archivu kontrol
							exec PLIS.dbo.C_aktual_kontroly_do_archivu @CISKRAVY, 1			
							
							-- novy zaznam do CM_Naplak				
							insert into PLIS.dbo.CM_Naplak(CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA
							  ,DATUKONL,DATUKNORL,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR
							  ,LAKTOZAC,LAKTOZAN,INDPER,INDLAK,CHARUST,MAXLAK,ZNAK,BEZT, MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200
							  ,TUK200,BIELK200,LAKT200,DATZAPZVK,DATVYBZVK, SPRACINSERT, SPRACUPDATE) 
							  (select @CISKRAVY,@CHOVATEL,@_PORLAK,@DATOTEL,@CHOVATEL,null,@PRIEBPOR,@POHLAVIE,'11',null,null
							  ,@_MEDZIOBDOBIE,null,null,null,null,null,null,null,null,null,null,null
							  ,null,null,(select CHARUS from NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL),null,null,null,null,null,null,null,null,null,null
							  ,null,NULL,NULL, @IDParChov, @IDParChov)	
						end
						
						-- zistenie ID Otca pre zapis do CM_Telata
						exec PLIS.dbo.C_aktual_zisti_povod_telata @CISKRAVY, @DATOTEL, @POHLAVIE, @IDOT output, @povod output, @DobaNos output
					
						if (@JeDvojca = 0)
						begin
						
							-- uprava CM_Krava podla toho, ci sa krava nachadza v tabulke
							if @JeVCM_Krava = 0
							begin
								-- je tela z takym cislom v DB
								if ((select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @CISKRAVY)) > 0) 
								begin
									select @T_OUC = OUC, @T_MATKA = MATKA, @MFarba = FARBA from PLIS.dbo.CM_Telata where CISTELATA = @CISKRAVY
									select @T_PL1=PL1,@T_KR1=KR1,@T_PL2=PL2,@T_KR2=KR2,@T_PL3=PL3,@T_KR3=KR3,@T_PL4=PL4,@T_KR4=KR4,@T_PL5=PL5 from C_aktual_plem_potomok_funkcia (@T_OUC, @T_MATKA, null) 

									-- insert do tabulky CM_Krava				
									insert into PLIS.dbo.CM_Krava (CISKRAVY,CHOVATEL,SKUPINA,PK,OTECLIN,OTECREG,OUSCIS,MA
									,IDOT,IDMA,DATNAR,PL1,KR1,PL2,KR2,PL3,KR3,PL4,KR4,PL5,FARBA,ZNMATBYK,ZNAKET
									,POHLAVIE,ZDRAVTR,PLEMENNA,PORPREBLAK,DATPOSKONT,DOVVYR,DATVYR,DATZAR,TRUZIT,PORLAKMAX
									,MLIEKOMAX,TUKMAX,BIELMAX,LAKTOZAMAX,POCVSETLAK,POCNORLAK,MLIEKOPR,TUKPRKG,TUKPRPER,BIELPRKG
									,BIELPRPER,LAKTPRKG,LAKTPRPER,TYPPLEM,FARMACEHZ,PRIZNAKKU,KRJA,PINT,PSER,PMED,BB_ANIMALCODE
									,BB_NAME,BB_IMPORTED,BB_BREEDING_NAME,BB_OWNER,BB_KEEPER,BB_USE,BB_COUNTRYCODE,BB_CATEGORY
									,BB_HERDBOOK_NUMBER, SPRACINSERT, SPRACUPDATE)
									select CISTELATA,@CHOVATEL,null,null,OTECLIN,OTECREG,OUC,MATKA,IDOT,IDMA,DATNAR,@T_PL1,@T_KR1,@T_PL2,
									@T_KR2,@T_PL3,@T_KR3,@T_PL4,@T_KR4,@T_PL5,FARBA,null,ZNAKET,POHLAVIE,null,null,1,null,/*@DOVVYR*/null,/*@DATVYR*/null,GETDATE(),null,null,
									null,null,null,null,0,null,null,null,null,null,null,null,null,TYPPLEM,null,'1','1',null,null,null,null,
									null,null,null,null,null,null,null,null,null, @IDParChov, @IDParChov
									from PLIS.dbo.CM_Telata where CISTELATA = @CISKRAVY
								end
								else begin
									-- insert do tabulky CM_Krava				
									insert into PLIS.dbo.CM_Krava (CISKRAVY,CHOVATEL,SKUPINA,PK,OTECLIN,OTECREG,OUSCIS,MA
									,IDOT,IDMA,DATNAR,PL1,KR1,PL2,KR2,PL3,KR3,PL4,KR4,PL5,FARBA,ZNMATBYK,ZNAKET
									,POHLAVIE,ZDRAVTR,PLEMENNA,PORPREBLAK,DATPOSKONT,DOVVYR,DATVYR,DATZAR,TRUZIT,PORLAKMAX
									,MLIEKOMAX,TUKMAX,BIELMAX,LAKTOZAMAX,POCVSETLAK,POCNORLAK,MLIEKOPR,TUKPRKG,TUKPRPER,BIELPRKG
									,BIELPRPER,LAKTPRKG,LAKTPRPER,TYPPLEM,FARMACEHZ,PRIZNAKKU,KRJA,PINT,PSER,PMED,BB_ANIMALCODE
									,BB_NAME,BB_IMPORTED,BB_BREEDING_NAME,BB_OWNER,BB_KEEPER,BB_USE,BB_COUNTRYCODE,BB_CATEGORY
									,BB_HERDBOOK_NUMBER, SPRACINSERT, SPRACUPDATE)
									values (@CISKRAVY,@CHOVATEL,null,null,null,null,null,null,null,null,null,null,null,null,
									null,null,null,null,null,null,null,null,null,null,null,null,1,null,/*@DOVVYR*/null,/*@DATVYR*/null,GETDATE(),null,null,
									null,null,null,null,0,null,null,null,null,null,null,null,null,null,null,'1','1',null,null,null,null,
									null,null,null,null,null,null,null,null,null, @IDParChov, @IDParChov)
									
								end
							end else
							begin
								-- vytvorenie dynamickeho update prikazu
								set @sql_update = ''
								
								-- update kravy z CM_Telata a hlaseneho otelenia
								if @PRIZNAKKU = '0' or @PRIZNAKKU = '3' or @PRIZNAKKU = '4'
								begin
									-- nacitanie dat z CM_Telata
									select @T_CISTELATA=CISTELATA,@T_CHOVATEL=CHOVATEL,@T_OTECLIN=OTECLIN,@T_OTECREG=OTECREG,
									@T_OUC=OUC,@T_MATKA=MATKA,@T_IDOT=IDOT,@T_IDMA=IDMA,@T_DATNAR=DATNAR,@T_FARBA=FARBA,@T_ZNAKET=ZNAKET,
									@T_POHLAVIE=POHLAVIE,@T_DOVVYR=DOVVYR,@T_DATVYR=DATVYR,@T_TYPPLEM=TYPPLEM
									from PLIS.dbo.CM_Telata where CISTELATA = @CISKRAVY	
									
									-- znova prepocet plemena 
									select @T_PL1=PL1,@T_KR1=KR1,@T_PL2=PL2,@T_KR2=KR2,@T_PL3=PL3,@T_KR3=KR3,@T_PL4=PL4,@T_KR4=KR4,@T_PL5=PL5 from C_aktual_plem_potomok_funkcia (@T_OUC, @T_MATKA, null)  
									
									set @sql_update = 'PRIZNAKKU = ''1'', KRJA = ''1'', ' 
									if @T_OTECLIN is not null
										set @sql_update = @sql_update + 'OTECLIN = ''' + @T_OTECLIN + ''', '
									if @T_OTECREG is not null
										set @sql_update = @sql_update + 'OTECREG = ' + convert(varchar, @T_OTECREG) + ', '	
									if @T_IDOT is not null
										set @sql_update = @sql_update + 'IDOT = ' + convert(varchar, @T_IDOT) + ', '
									if @T_OUC is not null
										set @sql_update = @sql_update + 'OUSCIS = ''' + @T_OUC + ''', '							
									if @T_MATKA is not null
										set @sql_update = @sql_update + 'MA = ''' + @T_MATKA + ''', '
									if @T_IDMA is not null
										set @sql_update = @sql_update + 'IDMA = ' + convert(varchar, @T_IDMA) + ', '						
									if @T_DATNAR is not null
										set @sql_update = @sql_update + 'DATNAR = ''' + convert(varchar, @T_DATNAR) + ''', '
										
									if @T_PL1 is not null
									begin
										set @sql_update = @sql_update + 'PL1 = ''' + @T_PL1 + ''', KR1 = ' + convert(varchar, @T_KR1) + ', ' 
										if @T_PL2 is not null
											set @sql_update = @sql_update + 'PL2 = ''' + @T_PL2 + ''', KR2 = ' + convert(varchar, @T_KR2) + ', ' 
										else
											set @sql_update = @sql_update + 'PL2 = NULL, KR2 = NULL, ' 
										if @T_PL3 is not null
											set @sql_update = @sql_update + 'PL3 = ''' + @T_PL3 + ''', KR3 = ' + convert(varchar, @T_KR3) + ', ' 
										else
											set @sql_update = @sql_update + 'PL3 = NULL, KR3 = NULL, ' 							
										if @T_PL4 is not null
											set @sql_update = @sql_update + 'PL4 = ''' + @T_PL4 + ''', KR4 = ' + convert(varchar, @T_KR4) + ', ' 
										else
											set @sql_update = @sql_update + 'PL4 = NULL, KR4 = NULL, ' 							
										if @T_PL5 is not null
											set @sql_update = @sql_update + 'PL5 = ''' + @T_PL5 + ''', '
										else
											set @sql_update = @sql_update + 'PL5 = NULL, ' 
									end
														
									if @T_FARBA is not null
										set @sql_update = @sql_update + 'FARBA = ''' + @T_FARBA + ''', '					
									if @T_ZNAKET is not null
										set @sql_update = @sql_update + 'ZNAKET = ' + convert(varchar, @T_ZNAKET) + ', '
									if @T_TYPPLEM is not null
										set @sql_update = @sql_update + 'TYPPLEM = ''' + @T_TYPPLEM + ''', '
									--if @DATOTEL is not null
									--	set @sql_update = @sql_update + 'DATZAR = ''' + convert(varchar, @DATOTEL) + ''', '	
									if @T_POHLAVIE is not null
										set @sql_update = @sql_update + 'POHLAVIE = ''' + @T_POHLAVIE + ''', '		
									if @CHOVATEL is not null
										if @CHOVATEL != @_CHOVATEL
											set @sql_update = @sql_update + 'CHOVATEL =  ''' + @CHOVATEL + ''', '			
								end
											
								-- spolocne pre update
								if @_PORLAK is not null
								begin
									set @sql_update = @sql_update + 'PORPREBLAK = ' + convert(varchar, @_PORLAK) + ', '								
									set @sql_update = @sql_update + 'POCVSETLAK = ' + convert(varchar, @_PORLAK - 1) + ', '
								end
											
								-- samotny update prikaz									
 								set @sql_update = 'update PLIS.dbo.CM_Krava set ' + @sql_update + 'DOVVYR = NULL, DATVYR = NULL, DATZAR = isnull(DATZAR, GETDATE()), DATPOSKONT = NULL, SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' where CISKRAVY = ''' + @CISKRAVY + ''''
 								exec (@sql_update)
							end
						end

						if (@bezTelata = 0)
						begin
							--if @IDOT is not null -- 20160803
							--begin
								select @OtecLin=LIN, @OtecReg=REG, @OtecUsCis = USCISLO, @OFarba=FARBA from PLIS.dbo.CM_Byci where IDBYKA = @IDOT
								-- vypocet plemena telata
								select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OtecUsCis, @CISKRAVY, null)
								
								if (@MFarba is null) or (@OFarba is null) -- 20170830
								begin
									set @Farba = null
								end
								else
								begin
									-- zistenie farby telata
									if @MFarba < @OFarba
										set @Farba = @MFarba
									else
										set @Farba = @OFarba
								end

								--if @MFarba is null  -- 20170830
								--	set @Farba = @OFarba
								--else 
								--begin
								--	if @OFarba is null 
								--		set @Farba = @MFarba
								--	else
								--	begin
								--		-- zistenie farby telata
								--		if @MFarba < @OFarba
								--			set @Farba = @MFarba
								--		else
								--			set @Farba = @OFarba
								--	end
								--end
							--end -- 20160803
							--else
							--begin
							--	set @OtecLin = null
							--	set @OtecReg = null
							--	set @OtecUsCis = null
							--	select @PL1=null, @KR1=null, @PL2=null, @KR2=null, @PL3=null, @KR3=null, @PL4=null, @KR4=null, @PL5=null
							--	set @Farba = null
							--end

							if (@IDKRAVY is null)
								set @IDKRAVY = dbo.C_aktual_zisti_IDKRAVY(@CISKRAVY)

							-- insert do tabulky CM_Telata
							insert into PLIS.dbo.CM_Telata (CISTELATA,CHOVNAR,OTECLIN,OTECREG,OUC,MATKA,HMOTOT,DATNAR,HMOTNAR,PL1,
							KR1,PL2,KR2,PL3,KR3,PL4,KR4,PL5,TYPPLEM,FARBA,PORLAK,POHLAVIE,ZNAKET,PREUKAZ,DOBANOS,CHOVATEL,PRIEBPOR,
							URCTEL,PRICOBTPOR,PRICUHYN,DOVVYR,DATVYR,PRIZNAKKU,IDMA,IDOT, SPRACINSERT, SPRACUPDATE)
							values (@CISTELATA,@CHOVATEL,@OtecLin,@OtecReg,@OtecUsCis,@CISKRAVY,0,@DATOTEL,30,@PL1,@KR1,@PL2,@KR2,@PL3,@KR3,@PL4,@KR4,@PL5,
							PLIS.dbo.C_aktual_zisti_plemenny_typ(@PL1,@KR1,@PL2,@KR2,@PL3,@KR3,@PL4,@KR4,@PL5,@Farba)
							,@Farba,@_PORLAK,@POHLAVIE,null,@povod,@DobaNos,@CHOVATEL,@PRIEBPOR,null,null,null,null,null,'1',@IDKRAVY,@IDOT, @IDParChov, @IDParChov)
						end

					end
				end 
				
				-- ak je dvojca ignoruj kontroly na vyradenost (ak preslo 1. dvojca)
				if (@JeDvojca = 0)
				begin			
					-- ide o vyradenie (nie otelenie)			
					if (@DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia))
					begin
						-- kontrola: kod vyradenia != 99    - treba vyradit		
						if (@DOVVYR != '99')
						begin
							if (@errorflag != 1)		
							begin
			
								-- vyradenie konkretnej kravy
								if (@CISKRAVY != 'SK999999999999')
								begin	
									-- zapis do CM_Krava
									update PLIS.dbo.CM_Krava 
										set DOVVYR = @DOVVYR,
											DATVYR = @DATVYR, SPRACUPDATE = @IDParChov
										where CISKRAVY = @CISKRAVY
									
									set @JeVCM_Naplak = 0	
									select @JeVCM_Naplak = 1, @VIAC_ZMENA = ZMENA, @VIAC_LAKTDNI = LAKTDNI, @VIAC_MLIEKCEL = MLIEKCEL, @VIAC_TUKCEL = TUKNOR, @VIAC_BIELKCEL = BIELKNOR, @VIAC_LAKTOZAC = LAKTOZAN from PLIS.dbo.CM_Naplak where CISKRAVY = @CISKRAVY
									
									if (@JeVCM_Naplak = 1)
									begin
										-- zapis do CM_Naplak
										if ((@VIAC_ZMENA) = '11')
										begin
											if (@VIAC_LAKTDNI < 240 AND @VIAC_MLIEKCEL < 1500)
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V',
														ZMENA = '43', SPRACUPDATE = @IDParChov
													where CISKRAVY = @CISKRAVY
											else if (@VIAC_LAKTDNI < 240 AND @VIAC_MLIEKCEL >= 1500)
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V',
														ZMENA = '42', SPRACUPDATE = @IDParChov
													where CISKRAVY = @CISKRAVY
											else if (@VIAC_LAKTDNI >= 240 AND @VIAC_MLIEKCEL < 1500)
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V',
														ZMENA = '41', SPRACUPDATE = @IDParChov
													where CISKRAVY = @CISKRAVY		
											else if (@VIAC_LAKTDNI >= 240 AND @VIAC_MLIEKCEL >= 1500)
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V',
														ZMENA = '40',
														MLIEKNOR = @VIAC_MLIEKCEL,
														TUKNOR = @VIAC_TUKCEL,
														BIELKNOR = @VIAC_BIELKCEL,
														LAKTOZAN = @VIAC_LAKTOZAC,
														LAKDNIN = @VIAC_LAKTDNI, SPRACUPDATE = @IDParChov
													where CISKRAVY = @CISKRAVY
											else
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V', SPRACUPDATE = @IDParChov
													where CISKRAVY = @CISKRAVY												
										end else
											update PLIS.dbo.CM_Naplak
												set ZNAK = 'V', SPRACUPDATE = @IDParChov
												where CISKRAVY = @CISKRAVY

										-- prevziat z naplaku do laktacii (insert alebo update (podla poradia laktacie))
										exec PLIS.dbo.C_aktual_Otelenia_laktacie @CISKRAVY, @CHOVATEL, @DATVYR, @IDParChov	

										-- skopirovanie suvisiacich kontrol do archivu kontrol
										exec PLIS.dbo.C_aktual_kontroly_do_archivu @CISKRAVY, 0	
									end
								end else
								
								-- vyradenie vsetkych krav z chovu
								begin
									-- vyber vsetkych krav z daneho chovu, ktore sa budu vyradovat
									DECLARE kravy_chovatela CURSOR FOR  
									SELECT CISKRAVY from PLIS.dbo.CM_Krava where CHOVATEL = @CHOVATEL and DOVVYR is null  

									OPEN kravy_chovatela   
									FETCH NEXT FROM kravy_chovatela INTO @VIAC_CISKRAVY   

									WHILE @@FETCH_STATUS = 0   
									BEGIN 
										-- vyradenie na krave
										update PLIS.dbo.CM_Krava 
											set DOVVYR = @DOVVYR,
												DATVYR = @DATVYR, SPRACUPDATE = @IDParChov
											where CISKRAVY = @VIAC_CISKRAVY
										
										set @JeVCM_Naplak = 0	
										select @JeVCM_Naplak = 1, @VIAC_ZMENA = ZMENA, @VIAC_LAKTDNI = LAKTDNI, @VIAC_MLIEKCEL = MLIEKCEL, @VIAC_TUKCEL = TUKNOR, @VIAC_BIELKCEL = BIELKNOR, @VIAC_LAKTOZAC = LAKTOZAN from PLIS.dbo.CM_Naplak where CISKRAVY = @VIAC_CISKRAVY
										
										if (@JeVCM_Naplak = 1)
										begin
											-- zapis zmien do naplaku
											if ((@VIAC_ZMENA) = '11')
											begin
												if (@VIAC_LAKTDNI < 240 AND @VIAC_MLIEKCEL < 1500)
													update PLIS.dbo.CM_Naplak
														set ZNAK = 'V',
															ZMENA = '43', SPRACUPDATE = @IDParChov
														where CISKRAVY = @VIAC_CISKRAVY
												else if (@VIAC_LAKTDNI < 240 AND @VIAC_MLIEKCEL >= 1500)
													update PLIS.dbo.CM_Naplak
														set ZNAK = 'V',
															ZMENA = '42', SPRACUPDATE = @IDParChov
														where CISKRAVY = @VIAC_CISKRAVY
												else if (@VIAC_LAKTDNI >= 240 AND @VIAC_MLIEKCEL < 1500)
													update PLIS.dbo.CM_Naplak
														set ZNAK = 'V',
															ZMENA = '41', SPRACUPDATE = @IDParChov
														where CISKRAVY = @VIAC_CISKRAVY		
												else if (@VIAC_LAKTDNI >= 240 AND @VIAC_MLIEKCEL >= 1500)
													update PLIS.dbo.CM_Naplak
														set ZNAK = 'V',
															ZMENA = '40',
															MLIEKNOR = @VIAC_MLIEKCEL,
															TUKNOR = @VIAC_TUKCEL,
															BIELKNOR = @VIAC_BIELKCEL,
															LAKTOZAN = @VIAC_LAKTOZAC,
															LAKDNIN = @VIAC_LAKTDNI, SPRACUPDATE = @IDParChov
														where CISKRAVY = @VIAC_CISKRAVY
												else
													update PLIS.dbo.CM_Naplak
														set ZNAK = 'V', SPRACUPDATE = @IDParChov
														where CISKRAVY = @VIAC_CISKRAVY											
											end else
												update PLIS.dbo.CM_Naplak
													set ZNAK = 'V', SPRACUPDATE = @IDParChov
													where CISKRAVY = @VIAC_CISKRAVY
				
											-- prevziat z naplaku do laktacii (insert alebo update (podla poradia laktacie))
											exec PLIS.dbo.C_aktual_Otelenia_laktacie @VIAC_CISKRAVY, @CHOVATEL, @DATVYR, @IDParChov

											-- skopirovanie suvisiacich kontrol do archivu kontrol
											exec PLIS.dbo.C_aktual_kontroly_do_archivu @VIAC_CISKRAVY, 0	
										end	

										FETCH NEXT FROM kravy_chovatela INTO @VIAC_CISKRAVY   
									END   

									CLOSE kravy_chovatela   
									DEALLOCATE kravy_chovatela
								end
							end			
						end else
						
						-- DOVVYR = '99'
						begin
							if (@errorflag != 1)		
							begin	
								-- presun k novemu chovatelovi
								if @_CHOVATEL != @CHOVATEL
									update PLIS.dbo.CM_Krava 
										set	CHOVATEL = @CHOVATEL,
											DOVVYR = null,
											DATVYR = null, SPRACUPDATE = @IDParChov, RESPONDER = null
										where CISKRAVY = @CISKRAVY	
								else
								-- update CM_Krava - zrusenie vyradenia
								update PLIS.dbo.CM_Krava 
									set	DOVVYR = null,
										DATVYR = null, SPRACUPDATE = @IDParChov
									where CISKRAVY = @CISKRAVY	
									
								-- update CM_Naplak - zrusenie znaku V -- 20170208
								update 	PLIS.dbo.CM_Naplak
									set	ZNAK = null, SPRACUPDATE = @IDParChov
									where CISKRAVY = @CISKRAVY		
									
								-- znovuotvorenie laktacie (zmazanie vyradenim uz uzavretej laktacie z CM_Laktacie)
								exec PLIS.dbo.C_aktual_znovuotv_lakt @CISKRAVY
																																		
							end					
						end
					end 
				end
			end	
			
			-- oprava posledneho otelenia
			if @DI = '2'
			begin
				-- kontrola: chov je v menovke
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)) = 0
				begin
					-- priradenie chyby 4
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 4, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVATEL = (select null)
					end
				end			

				-- kontrola: krava nie je v CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)) = 0
				begin
					set @JeVCM_Krava = 0
					-- priradenie chyby 05
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 5, 'UPD'
					if (@navrat_hodn = '2')
						set @errorflag = (select 1)				
				end

				-- kontrola: krava je na uvedenom chove?
				if (@_CHOVATEL != @CHOVATEL)
				begin
					-- priradenie chyby 19
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 19, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @CHOVATEL = (select null)
					end
				end	
				
				-- kontrola: Hlasenie otelenia vyradenej krave
				if @_DOVVYR is not null
				begin
					-- priradenie chyby 26
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 26, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @DATOTEL = null
					end
				end						

			
				-- kontrola: chybny datum otelenia
				if (DATEDIFF(DAY, @DATOTEL, getdate()) < 0) or (DATEDIFF(DAY, '2000-01-01', @DATOTEL) < 0)
				begin
					-- priradenie chyby 20
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 20, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @DATOTEL = null
					end
				end			
				
				-- kontrola: Nesprávny priebeh pôrodu 
				if not ((@PRIEBPOR in (select KOD from plis.dbo.CC_Porody)) or (@PRIEBPOR is null))
				begin
					-- priradenie chyby 24
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 24, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @PRIEBPOR = (select null)
					end
				end		
				
				-- kontrola: Nesprávny kód pohlavia teľaťa 
				if not ((@POHLAVIE in (select KOD from plis.dbo.CC_Pohlavie)) or (@POHLAVIE is null))
				begin
					-- priradenie chyby 25
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 25, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @POHLAVIE = null
					end
				end				
				
				-- neexistuje zaznam v CM_Naplak?
				if (select COUNT(*) from CM_Naplak where CISKRAVY = @CISKRAVY) = 0
				begin
					-- priradenie chyby 31
					exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 31, 'UPD'
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end else
				begin	
					-- vypocet minuleho otelenia
					select @_DATOTEL=DATOTEL, @_MEDZIOBDOBIE=MEDZIOBD, @_POHLAVIE=POHLAVIE, @_PORLAK=PORLAK from CM_Naplak where CISKRAVY = @CISKRAVY
					
					if @_POHLAVIE = '11' or @_POHLAVIE = '22' or @_POHLAVIE = '26' or @_POHLAVIE = '31' or @_POHLAVIE = '32'
					begin
						set @JeDvojca = 1
						-- priradenie chyby 230
						exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 230, 'UPD'
						if (@navrat_hodn = '2')
						begin
							set @errorflag = (select 1)
						end			
					end	else
					begin
						set @_IDTELATA = (select IDTELATA from CM_Telata where MATKA = @CISKRAVY and DATNAR = @_DATOTEL)			
							
						-- hladane tela nie je v CM_Telata
						if (@_IDTELATA is NULL)
						begin
							-- priradenie chyby 111
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 111, 'UPD'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @CISTELATA = null
							end
						end
					end					
				
					-- oprava ineho ako prveho otelenia ?
					if @_PORLAK > 1
					begin
						if (@_MEDZIOBDOBIE is not null and @DATOTEL is not null)
						begin
							set @_MEDZIOBDOBIE = @_MEDZIOBDOBIE + DATEDIFF(day, @_DATOTEL, @DATOTEL)
						
							-- kontrola: Dátum otel. <= predošlému dat.otel.
							if (@_MEDZIOBDOBIE <= 0)
							begin
								-- priradenie chyby 30
								exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 30, 'UPD'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @DATOTEL = null
								end
							end	
										
							-- kontrola: Medziobdobie <240, zmetanie < 210 
							if (@_MEDZIOBDOBIE < 240) or (@_MEDZIOBDOBIE < 210 and @POHLAVIE = '71')
							begin
								-- priradenie chyby 22
								exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 22, 'UPD'
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end else
								if (@navrat_hodn = '1')
								begin
									set @_MEDZIOBDOBIE = null
								end
							end		
						end		
					end else
					
					-- kontrola: 1.otelenie kravy mimo 600-1850 dní
					if (@_PORLAK = 1)
					begin
						if (DATEDIFF(DAY, @_DATNAR, @_DATOTEL) < 660) and (DATEDIFF(DAY, @_DATNAR, @_DATOTEL) > 1850)
						begin
							-- priradenie chyby 21
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 21, 'UPD'
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @DATOTEL =  null
							end
						end					
					end
					
					-- tela s hlasenym cislom uz existuje v DB a ma inu matku alebo daum narodenia ako povodne udaje z CM_Naplak
					if (select count(*) from cm_telata where CISTELATA = @CISTELATA) > 0
					begin
						select @CISKRAVY_TEST = MATKA, @DATOTEL_TEST = DATNAR from cm_telata where CISTELATA = @CISTELATA
						if (@CISKRAVY_TEST != @CISKRAVY OR @DATOTEL_TEST != @_DATOTEL)
						begin
							-- priradenie chyby 109
							exec @navrat_hodn = plis.[dbo].[C_aktual_Otelenia_zapis_chybu] @IDR, 109, 'UPD'
							if (@navrat_hodn = '1')
							begin
								set @CISTELATA =  null
							end
						end
					end

					if (@errorflag != 1)
					begin
						if (@DATOTEL is not null and @DATOTEL != @_DATOTEL)
						-- opravuje sa datum otelenia
						begin
							-- zmazanie riadku z CM_naplak
							delete from CM_Naplak where CISKRAVY = @CISKRAVY

							-- vytvorenie noveho zaznamu v CM_Naplak
							insert into PLIS.dbo.CM_Naplak(CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA
							  ,DATUKONL,DATUKNORL,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR
							  ,LAKTOZAC,LAKTOZAN,INDPER,INDLAK,CHARUST,MAXLAK,ZNAK,BEZT, MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200
							  ,TUK200,BIELK200,LAKT200,DATZAPZVK,DATVYBZVK, SPRACINSERT, SPRACUPDATE) 
							  (select @CISKRAVY,@CHOVATEL,@_PORLAK,@DATOTEL,@CHOVATEL,null,@PRIEBPOR,@POHLAVIE,'11',null,null
							  ,@_MEDZIOBDOBIE,null,null,null,null,null,null,null,null,null,null,null
							  ,null,null,(select CHARUS from NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL),null,null,null,null,null,null,null,null,null,null
							  ,null,NULL,NULL, @IDParChov, @IDParChov)	

							-- zmazanie kontrol
							delete from CM_Kontroly where CISKRAVY = @CISKRAVY

							-- znulovanie datumu poslednej kontroly
							update CM_Krava set DATPOSKONT = null where CISKRAVY = @CISKRAVY

							-- zmazania laktacie ak uz je vytvorena
							delete from CM_Laktacie where CISKRAVY = @CISKRAVY and PORLAK = @_PORLAK 

							-- zmazanie povodneho telata (dvoj,trojcat)
							delete from CM_Telata where MATKA = @CISKRAVY and DATNAR = @_DATOTEL

							-- vytvorenie noveho telata
							-- zistenie ID Otca pre zapis do CM_Telata
							exec PLIS.dbo.C_aktual_zisti_povod_telata @CISKRAVY, @DATOTEL, @POHLAVIE, @IDOT output, @povod output, @DobaNos output
							--if @IDOT is not null -- 20160803
							--begin
								select @OtecLin=LIN, @OtecReg=REG, @OtecUsCis = USCISLO, @OFarba=FARBA from PLIS.dbo.CM_Byci where IDBYKA = @IDOT
															
								-- vypocet plemena telata
								select  @PL1 = PL1, @KR1 = KR1, @PL2 = PL2, @KR2 = KR2, @PL3 = PL3, @KR3 = KR3, @PL4 = PL4, @KR4 = KR4, @PL5 = PL5 from C_aktual_plem_potomok_funkcia (@OtecUsCis, @CISKRAVY, null)

								if (@MFarba is null) or (@OFarba is null) -- 20170830
								begin
									set @Farba = null
								end
								
		--						if @MFarba is null 
		--							set @Farba = @OFarba
		--						else 
		--						begin
		--							if @OFarba is null 
		--								set @Farba = @MFarba
								else
									begin
										-- zistenie farby telata
										if @MFarba < @OFarba
											set @Farba = @MFarba
										else
											set @Farba = @OFarba
									end
								
							--end -- 20160803
							--else
							--	begin
							--		set @OtecLin = null
							--		set @OtecReg = null
							--		set @OtecUsCis = null
							--		select @PL1=null, @KR1=null, @PL2=null, @KR2=null, @PL3=null, @KR3=null, @PL4=null, @KR4=null, @PL5=null
							--		set @Farba = null
							--	end
						
							-- insert do tabulky CM_Telata
							insert into PLIS.dbo.CM_Telata (CISTELATA,CHOVNAR,OTECLIN,OTECREG,OUC,MATKA,HMOTOT,DATNAR,HMOTNAR,PL1,
							KR1,PL2,KR2,PL3,KR3,PL4,KR4,PL5,TYPPLEM,FARBA,PORLAK,POHLAVIE,ZNAKET,PREUKAZ,DOBANOS,CHOVATEL,PRIEBPOR,
							URCTEL,PRICOBTPOR,PRICUHYN,DOVVYR,DATVYR,PRIZNAKKU,IDMA,IDOT, SPRACINSERT, SPRACUPDATE)
							values (@CISTELATA,@CHOVATEL,@OtecLin,@OtecReg,@OtecUsCis,@CISKRAVY,0,@DATOTEL,30,@PL1,@KR1,@PL2,@KR2,@PL3,@KR3,@PL4,@KR4,@PL5,
							dbo.C_aktual_zisti_plemenny_typ(@PL1,@KR1,@PL2,@KR2,@PL3,@KR3,@PL4,@KR4,@PL5,@Farba)
							,@Farba,@_PORLAK,@POHLAVIE,null,@povod,@DobaNos,@CHOVATEL,@PRIEBPOR,null,null,null,null,null,'1',dbo.C_aktual_zisti_IDKRAVY(@ciskravy),@IDOT, @IDParChov, @IDParChov)
						
						end
						else
						begin	
							-- update naplak
							set @sql_query = (select '')

						
							-- odpoznamkovane 2015-10-20									
							if @POHLAVIE is not null
							begin
								if @sql_query != ''
									set @sql_query = @sql_query + ', '					
								set @sql_query = @sql_query + 'POHLAVIE = ''' + @POHLAVIE + ''''
							end
							--
										
							if @PRIEBPOR is not null
							begin
								if @sql_query != ''
									set @sql_query = @sql_query + ', '					
								set @sql_query = @sql_query + 'PRIEBPOROD = ''' + @PRIEBPOR + ''''
							end
											
							--if @_MEDZIOBDOBIE is not null
							--begin
							--	if @sql_query != ''
							--		set @sql_query = @sql_query + ', '						
							--	set @sql_query = @sql_query + 'MEDZIOBD = ' + convert(varchar, @_MEDZIOBDOBIE)
							--end
						
							if @sql_query != ''
							begin
 								set @sql_query = @sql_query + ', SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' where CISKRAVY = ''' + @CISKRAVY + ''''
 	     						set @sql_query = 'update PLIS.dbo.CM_Naplak set ' + @sql_query
 	     						exec (@sql_query)
 	     					end				
						
							if (@JeDvojca = 0)								
							-- ak je opravovane tela dvoj/trojca - nieje mozene urobit zmenu v telatach - ta sa moze urobit cez opravu telata
							begin			
								-- update telata
								/*update PLIS.dbo.CM_Telata
									set CISTELATA = @CISTELATA,
										DATNAR = @DATOTEL,
										POHLAVIE = @POHLAVIE,
										PRIEBPOR = @PRIEBPOR
									where IDTELATA = @_IDTELATA*/
								
								-- update telata
								set @sql_query = (select '')
								if @CISTELATA is not null
									set @sql_query = @sql_query + 'CISTELATA = ''' + @CISTELATA + ''''
									
								--if @DATOTEL is not null -- datum sa nebude dat opravovat
								--begin
								--	if @sql_query != ''
								--		set @sql_query = @sql_query + ', '					
								--	set @sql_query = @sql_query + 'DATNAR = ''' + convert(varchar, @DATOTEL) + ''''
								--end
											
								if @POHLAVIE is not null
								begin
									if @sql_query != ''
										set @sql_query = @sql_query + ', '					
									set @sql_query = @sql_query + 'POHLAVIE = ''' + @POHLAVIE + ''''
								end
												
								if @PRIEBPOR is not null
								begin
									if @sql_query != ''
										set @sql_query = @sql_query + ', '						
									set @sql_query = @sql_query + 'PRIEBPOR = ''' + @PRIEBPOR + ''''
								end
							
								if @sql_query != ''
								begin
 									set @sql_query = @sql_query + ', SPRACUPDATE = ' + convert(varchar, @IDParChov) + ' where IDTELATA = ' + @_IDTELATA
 	     							set @sql_query = 'update PLIS.dbo.CM_Telata set ' + @sql_query
 	     							exec (@sql_query)
 	     						end											
 	     					end
						end
					end
				end			
			end 
			
			-- mazanie otelenia
			if @DI = '3'
			begin
				-- zistenie poradia laktacie
				select @N_PORLAK = PORLAK from CM_Naplak where CISKRAVY = @CISKRAVY
				
				-- zmazanie telata a kontrol ak treba
				delete from CM_Telata where CISTELATA = @CISKRAVY and DATNAR = @DATOTEL
				delete from CM_Kontroly where CISKRAVY = @CISKRAVY

				-- ak existuje naplak
				if (@N_PORLAK is not null)
				begin
					-- zmazanie preb. laktacie
					delete from CM_Naplak where CISKRAVY = @CISKRAVY
					delete from CM_Laktacie where CISKRAVY = @CISKRAVY and PORLAK = @N_PORLAK

					-- prekopirovanie preb. laktacie z poslednej laktacie
					if (select count(*) from CM_Laktacie  where CISKRAVY = @CISKRAVY and PORLAK = @N_PORLAK - 1) > 0
						insert into CM_Naplak (CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA,DATUKONL,DATUKNORL,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN
							,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR,LAKTOZAC,LAKTOZAN,INDPER,INDLAK,CHARUST,MAXLAK,MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200,TUK200
							,BIELK200,LAKT200,DATZAPZVK,DATVYBZVK,KOD_DOJ,KOD_MEDZ,SPRACINSERT,SPRACUPDATE) 
	  					select CISKRAVY,CHOVATEL,PORLAK,DATOTEL,CHOVOTEL,CHOVLAKT,PRIEBPOROD,POHLAVIE,ZMENA,DATUKONL,DATUKNORL,MEDZIOBD,HMOTKR,LAKTDNI,LAKDNIN
							,MLIEKCEL,MLIEKNOR,TUKCEL,TUKNOR,BIELKCEL,BIELKNOR,LAKTOZAC,LAKTOZAN,INDPER,INDLAK,CHARUST,MAXLAK,MLIEKO100,TUK100,BIELK100,LAKT100,MLIEKO200,TUK200
							,BIELK200,LAKT200,DATZAPZVK,DATVYBZVK,KOD_DOJ,KOD_MEDZ,SPRACINSERT,SPRACUPDATE from CM_Laktacie where CISKRAVY = @CISKRAVY and PORLAK = @N_PORLAK - 1
				end

				-- updata na krave
				update CM_Krava set 
					PORPREBLAK = ISNULL(@N_PORLAK, PORPREBLAK) - 1,
					POCVSETLAK = POCVSETLAK - 1,
					DATPOSKONT = null
					where CISKRAVY = @CISKRAVY 
			end
			
			-- zaznam v kontajneri oteleni nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD04_OTELENIA set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR
		
			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'4'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran otelenia;
						
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'4'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran otelenia					

		FETCH NEXT
		FROM db_cursor_otelenia INTO 	
			 @IDR
			,@CHOVATEL 
			,@CISKRAVY 
			,@DATOTEL
			,@POHLAVIE 
			,@PRIEBPOR 
			,@CISTELATA
			,@DOVVYR
			,@DATVYR
			,@DI
	end

	CLOSE db_cursor_otelenia
	DEALLOCATE db_cursor_otelenia	
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Otelenia_aktualizacia ...OK'			
end

go

CREATE procedure [dbo].[Rocenka_MPHD_15]
    @rok int
	
as
begin

	select top 5 * 
	from Roc_MPHD_Tab_15 as z
	--where   z.rok = @rok 
	order by rok desc
end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2017-02-27
-- Description:	Priprava suborov rodokmenov matiek a otcov pre plemeno P
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_rodokmeneTXT_P]

AS
BEGIN
	-- zaklad pre tvorbu generacii (K)
	select --top 100000
		t1.ciskravy as ANIMAL
		,convert(varchar(8), t1.DATUMN, 4) as DATUMN
		,convert(varchar(4), t1.DATUMN, 102) as ROKN
		,t1.TYP as PTYP
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		--,convert(varchar(15), isnull(case when k.MA is null and k.OUSCIS is null then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,convert(varchar(15), isnull(case when /*k.MA is null and */k.OUSCIS is null then t1.OTEC else k.OUSCIS end, '000000000000000') + ' ') as SIRE
		,convert(varchar(15), isnull(case when k.MA is null /*and k.OUSCIS is null */then t1.MATKA else k.MA end, '000000000000000') + ' ') as DAM

		,'K' as POZN
		,ROW_NUMBER() OVER(ORDER BY t1.ciskravy ASC) AS id
		into #temp_kravy0_h_
		from CM_ZSTDM as t1 INNER JOIN
		-- tie ktorych pocetnosti (chov, datkontr, porlak) >= 3 
        CP_HTD as ht ON left(t1.CISCHOVU, 8) = ht.CISCHOVU AND t1.DATKONTR = ht.DATKONTR AND t1.PORLAK = ht.PORLAK
					LEFT OUTER JOIN temp_vsetky_kravy as k ON t1.CISKRAVY = k.CISKRAVY
	WHERE t1.TYP in ('P0', 'P1', 'P2')
	and ht.PLEM = 'P' 

	CREATE INDEX IDX_temp_kravy0_h_ ON #temp_kravy0_h_(ANIMAL, ID)

	select ANIMAL, DATUMN, ROKN, PTYP, SIRE, DAM, POZN 
	into #temp_kravy0_h
	from #temp_kravy0_h_ as t1
	where 
	-- vyber len 1 riadok na kravu (zo zoznamu kontrol)
	t1.id = (SELECT top(1) t2.id
         FROM #temp_kravy0_h_ t2
         WHERE t2.ANIMAL = t1.ANIMAL)
	order by t1.ANIMAL

	CREATE INDEX IDX_temp_kravy0_h ON #temp_kravy0_h(DAM)

	-- prva generacia (M)
	select --top 1000
		td1.CISKRAVY as ANIMAL
		,convert(varchar(8), td1.DATNAR, 4) as DATUMN
		,convert(varchar(4), td1.DATNAR, 102) as ROKN
		,td1.PTYP
		,td1.OUSCIS as SIRE
		,td1.MA as DAM
		,'K' as POZN
		into #temp_kravy1_h
		from temp_vsetky_kravy as td1 
	where td1.CISKRAVY in (select DAM from #temp_kravy0_h)

	CREATE INDEX IDX_temp_kravy1_h ON #temp_kravy1_h(DAM)

	-- druha generacia (MM)
	select --top 1000
		td2.CISKRAVY as ANIMAL
		,convert(varchar(8), td2.DATNAR, 4) as DATUMN
		,convert(varchar(4), td2.DATNAR, 102) as ROKN
		,td2.PTYP
		,td2.OUSCIS as SIRE
		,td2.MA as DAM
		,'K' as POZN
		into #temp_kravy2_h
		from temp_vsetky_kravy as td2 
        where td2.CISKRAVY in (select DAM from #temp_kravy1_h)

	-- prva generacia (O)
	select --top 1000
		b1.USCISLO as ANIMAL
		,convert(varchar(8), b1.DATNAR, 4) as DATUMN
		,convert(varchar(4), b1.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b1.pl1, b1.kr1, b1.pl2, b1.kr2, b1.pl3, b1.kr3, b1.pl4, b1.kr4) as PTYP
		,b1.OTUSCIS as SIRE
		,b1.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia1_h
		from CM_Byci as b1
		where b1.USCISLO in (select SIRE from #temp_kravy0_h)

	-- druha generacia (OM)
	select --top 1000
		b2.USCISLO as ANIMAL
		,convert(varchar(8), b2.DATNAR, 4) as DATUMN
		,convert(varchar(4), b2.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b2.pl1, b2.kr1, b2.pl2, b2.kr2, b2.pl3, b2.kr3, b2.pl4, b2.kr4) as PTYP
		,b2.OTUSCIS as SIRE
		,b2.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia2_h
		from CM_Byci as b2
		where b2.USCISLO in (select SIRE from #temp_kravy1_h)

	-- druha generacia (OO)
	select --top 1000
		b3.USCISLO as ANIMAL
		,convert(varchar(8), b3.DATNAR, 4) as DATUMN
		,convert(varchar(4), b3.DATNAR, 102) as ROKN
		,dbo.C_Blup_PLTyp(b3.pl1, b3.kr1, b3.pl2, b3.kr2, b3.pl3, b3.kr3, b3.pl4, b3.kr4) as PTYP
		,b3.OTUSCIS as SIRE
		,b3.MATKA as DAM
		,'B' as POZN
		into #temp_otcovia3_h
		from CM_Byci as b3
		where b3.USCISLO in (select SIRE from #temp_otcovia1_h)

	-- druha generacia (MO)
	select --top 1000
		td3.CISKRAVY as ANIMAL
		,convert(varchar(8), td3.DATNAR, 4) as DATUMN
		,convert(varchar(4), td3.DATNAR, 102) as ROKN
		,td3.PTYP
		,td3.OUSCIS as SIRE
		,td3.MA as DAM
		,'K' as POZN
		into #temp_kravy3_h
		from temp_vsetky_kravy as td3
        where td3.CISKRAVY in (select DAM from  #temp_otcovia1_h)


	-- jedna tabulka generacii krav, matiek
	insert into #temp_kravy0_h
	select * from #temp_kravy1_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy2_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	insert into #temp_kravy0_h
	select * from #temp_kravy3_h where ANIMAL not in (select ANIMAL from #temp_kravy0_h)

	-- jedna tabulka generacii otcov
	insert into #temp_otcovia1_h
	select * from #temp_otcovia2_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)

	insert into #temp_otcovia1_h
	select * from #temp_otcovia3_h where ANIMAL not in (select ANIMAL from #temp_otcovia1_h)


	-- export krav, matiek do suboru
	SELECT 
		convert(varchar(15), td.ANIMAL + ' ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_kravy_h
	FROM #temp_kravy0_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_kravy_h order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\P\pedcow.sdf" -T -c -t,'

	drop table temp_kravy_h


	-- export otcov do suboru
	SELECT  
		convert(varchar(15), td.ANIMAL + '              ') as ANIMAL
		,isnull(td.DATUMN, '        ') as DATUMN
		,isnull(td.ROKN, '    ') as ROKN
		,isnull(td.PTYP, '  ') as PTYP
		,convert(varchar(15), case when td.SIRE is null or td.SIRE = 'SK999999999999' or td.SIRE = 'SK888888888888' then '000000000000000' else td.SIRE end + ' ') as SIRE
		,convert(varchar(15), case when td.DAM is null or td.DAM = 'SK999999999999' or td.DAM = 'SK888888888888' then '000000000000000' else td.DAM end + ' ') as DAM
		,POZN + '  ' as POZN
	into temp_otcovia_h
	FROM #temp_otcovia1_h as td 
	where td.DATUMN is not null and td.ANIMAL != 'SK888888888888' and td.ANIMAL != 'SK999999999999'
	order by ANIMAL

	EXEC xp_cmdshell 'bcp "select +ANIMAL +DATUMN +ROKN +PTYP +SIRE +DAM +POZN from plis.dbo.temp_otcovia_h	order by ANIMAL" queryout "e:\ROZBORAK\Data\BLUP\P\pedbull.sdf" -T -c -t,'

	drop table temp_otcovia_h


end
go


-- =============================================
---- Zoznam jalovic vybranych na pripustenie v nasledujucich troch mesiacoch, ktore boli spracovane v danom mesiaci.
---- Ide o jalovice, ktore su stare minimalne 15 mesiacov a dosiahli hmotnost minimalne 360 kg, popripade sa predpoklada, ze v den dovrsenia veku budu mat aj danu hmotnost.
---- M. Holesova
-- =============================================

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_mes]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

DECLARE @pocetvymaz int
SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
DELETE FROM dbo.CR_TMHD_pripust_mes WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)

DECLARE @idr bigint,@cistelata varchar(14)

	 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
		FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY 
		WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

		--SELECT * FROM #idrtable
		
	DECLARE @counter int
	SET @counter = 0;

		DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(distinct CISTELATA) FROM dbo.CM_Vazenia v LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR)
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)

	
	IF ( SELECT COUNT(distinct v.CISTELATA) FROM dbo.CM_Vazenia v 
							LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) /*(v.SPRACINSERT = sp.IDR ) */
							left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac 
										and t.DOVVYR is null and t.DATVYR is null
										and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
										and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA) 
									 ) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT distinct v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.CHOVVAZ = sp.CHOV ) --(v.SPRACINSERT = sp.IDR )
						left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA and v. CHOVVAZ = t.CHOVATEL
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
									and t.DOVVYR is null and t.DATVYR is null
									and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 2 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, v.DATVAZ, t.DATNAR, v.HMOT, v.RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									left outer JOIN /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata as t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata 
											and t.DOVVYR is null and t.DATVYR is null
											and v.cistelata not in (select i.IPLCA from CM_Insvyk as i where i.IPLCA = v.CISTELATA)
											and v.cistelata not in (select CISKRAVY from CM_Krava as k where k.CISKRAVY = v.CISTELATA)
											ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					datnar DATE,
					datvaz1 DATE, hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE, hmot2 INT,rp2 VARCHAR,
					dp INT,
					DatPrip1 date, --datum pripustenia ak uz tela dosiahlo pozadovanu vahu 
					DatPrip2 date, -- datum pripustenia vypocitany, ak jalovica nema dostatocnu vahu...kedy ju priblizne dosiahne
					datPr date,
					datPlanPripust varchar(10),
					ZnakPripus varchar(15),
					MesiacPripusF int,
					rok int, 
					mesiac int,
					generovane DATE
					)
				END

			INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())


			-- vypocitanie denneho prirastku a datumu predpokladaneho dosiahnutia vahy na pripustenie
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC
			
			DECLARE @d1 date, @d2 DATE, @d2n DATE, @h1 INT, @h2 INT, @h2n INT, @dp INT , @DatPrip2 date, @datPr date, @datnar date, @datPlanPripust varchar(10), @MesiacPripusF int
			
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 

			SELECT DATNAR, HMOTNAR INTO #hn FROM CM_Telata WHERE CISTELATA = @cistelata 

			set @d2n = (select case when @d2 = @d1 then (select datnar from #hn) else @d2 end)
			set @h2n = (select case when @h2 = @h1 then (select HMOTNAR from #hn) else @h2 end)
			 
			SET @dp = ROUND((@h1 - @h2n) * 1000 / NULLIF(DATEDIFF(day,@d2n,@d1),0),0) -- COALESCE(ROUND((@h1-@h2n) * 1000 / NULLIF(DATEDIFF(day,@d1,@d2n),0),0), 0)
			
			SET @DatPrip2 = dateadd(day,((360 - @h1 ) * 1000 / NULLIF(@dp, 0)), @d1) 
			
			--print '@h1'
			--print @h1 
			--print '@h2n' 
			--print @h2n 
						
			set @datPr = case when @h1 > 200 then (case when  @h1 > 360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360 - @h1 )*1000/NULLIF( @dp,0)), @d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			set @MesiacPripusF = datepart(month, @datPr)
			

			UPDATE #abc1 SET DP = @DP, DatPrip2 = @DatPrip2, datPr = @datPr, datPlanPripust = @datPlanPripust, MesiacPripusF = @MesiacPripusF
			 WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
			--DROP TABLE #idrtable
			DROP TABLE #2v
			DROP TABLE #hn

			UPDATE #abc1  SET datnar = a.datnar, DatPrip1 = a.DatPrip1 /*,ZnakPripus = a.ZnakPrip*/  from (select datnar, dateadd(month,15, DATNAR )as DatPrip1/*, ZnakPrip*/ from /*View_CP_SumarMladyDobytokJal_new*/ CM_Telata where cistelata = @cistelata) a where cistelata = @cistelata


			UPDATE #abc1 SET
			DATVAZ1 = @d2n /*a.DATVAZ1*/,  HMOT1 = @h2n /*a.HMOT1*/--, RP1 = a.RP1
			--FROM	(
			--SELECT DATVAZ DATVAZ1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 2
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac
		
			UPDATE #abc1 SET
			DATVAZ2 = @d1 /*a.DATVAZ2*/, HMOT2 = @h1/*a.HMOT2*/--, RP2 = a.RP2
			--FROM	(
			--SELECT DATVAZ as DATVAZ2, CONVERT(INT,HMOT)HMOT2, RASTPAS as RP2 FROM #vazenie WHERE ID = 1
			--		)a
			WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor
			
			
			--CREATE TABLE CR_TMHD_pripust_mes_Opr
			--	(
			--	cistelata VARCHAR(14),
			--	chov VARCHAR(9),
			--	datnar DATE,
			--	datvaz1 DATE,/*mesiac1 INT,den1 INT,*/ hmot1 INT,rp1 VARCHAR,
			--	datvaz2 DATE,/*mesiac2 INT,den2 INT,*/ hmot2 INT,rp2 VARCHAR,
			--	dp INT,
			--	DatPrip1 date,
			--	DatPrip2 date,
			--	datPr date,
			--	datPlanPripust varchar(10),
			--	ZnakPripus varchar(15),
			--	MesiacPripusF int,
			--	rok int, 
			--	mesiac int,
			--	generovane DATE, 
			--	mesiacPripus int,
			--	rokPripus int
			--	)
			
			insert into CR_TMHD_pripust_mes
				select
					cistelata,
					chov,
					datnar,
					datvaz1 , 
					hmot1 ,
					rp1 ,
					datvaz2, 
					hmot2 ,
					rp2 ,
					dp ,
					DatPrip1 ,
					DatPrip2 ,
					datPr ,
					datPlanPripust ,
					ZnakPripus ,
					MesiacPripusF,
					rok , 
					mesiac ,
					generovane , 
				(case when hmot2 > 360 then DATEPART(MONTH,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360  and DatPrip1 <= DatPrip2 then DATEPART(MONTH,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as mesiacPripus,
				
				(case when hmot2 > 360  then DATEPART(YEAR,DatPrip1)
					else case when hmot2 > 200 and hmot2<=360 and DatPrip1 <= DatPrip2 then DATEPART(YEAR,DatPrip2) 
					else case when cistelata not in (select cistelata from #abc1 where (hmot2 > 200 and hmot2 <= 360 and DATEPART(MONTH,DatPrip2) >= DATEPART(MONTH,DatPrip1) 
																			 and DatPrip2 > getdate() 
																			 and DATEPART(MONTH,DatPrip2) < dateadd(month,4, DATEPART(MONTH,getdate())))
																				or (hmot2 > 360 and DatPrip1 >= getdate() and DATEPART(MONTH,DatPrip1) < dateadd(month,4, DATEPART(MONTH,getdate())))) then ''
				end end end) as rokPripus
			
				from #abc1 
			
			
end
end
go

-- =============================================
-- Author:		David Florek
-- Create date: 11.09.2017
-- Description:	Vrati zoznam mliekovych chovov s informaciami
-- =============================================
CREATE PROCEDURE [dbo].[CR_KUML_MESACNE_VYSLEDKY_ZOZNAM]
	@rok int, 
	@mesiac int,
	@kraj varchar(1),
	@okres varchar(2),
	@login varchar(256) = null
AS
BEGIN
	IF OBJECT_ID('tempdb..#maily') IS NOT NULL
		BEGIN
			DROP TABLE #maily
		END

	select distinct IDR, Datum, Email
	into #maily
	from CP_SPRAC_MAIL_LOG l
	where Datum = (select MAX(Datum) from CP_SPRAC_MAIL_LOG where IDR = l.IDR);


	SELECT distinct
		ch.IDR,
		a.KRAJ,
		a.OKRES,
		a.PODNIK,
		a.CHOV,
		a.nazov as chov_nazov,
		b.NAZOV as podnik_nazov,
		c.NAZOV as kraj,
		d.NAZOV as okres,
		a.OBEC as obec,
		k.POCKRAVZAP,
		k.POCKRAVKONT,
		k.generovane,
		k.rok,
		k.mesiac,
		k.id,
		logy.Email,
		logy.Datum,
		MAX(kk.chovatel) as podnikZost

		FROM dbo.CR_KUHD_MesUzavCH_1x k
			JOIN dbo.NM_CHOVMAS a ON (a.KRAJ+a.OKRES+a.PODNIK+a.CHOV) = k.chovatel
			JOIN NM_PODNIK b ON  (b.KRAJ+b.OKRES+b.PODNIK) = (LEFT(k.chovatel,6))
			JOIN NC_KRAJ c ON (b.KRAJ = c.KRAJ)
			JOIN NC_OKRES d ON (b.OKRES = d.okres AND b.KRAJ = d.KRAJ)
			JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY ch on k.chovatel = ch.chov and k.rok = ch.ROK and k.mesiac = ch.MESIAC and CAST(ch.KONIEC as DATE) = CAST(k.generovane as DATE)
			LEFT JOIN CR_KUHD_MesUzavCH_1x kk on kk.chovatel = SUBSTRING(k.chovatel, 1, 6) and kk.rok = @rok and kk.mesiac = @mesiac
			LEFT JOIN #maily logy on ch.IDR = logy.IDR

		WHERE
			k.chovatel in
				(select prac.KRAJ + prac.OKRES + prac.PODNIK + prac.CHOV
				from aspnetdb.dbo.aspnet_Users users
				JOIN aspnetdb.dbo.User_PRACKU uprac on uprac.UserId = users.UserId
				JOIN NM_PRACCHOV prac on uprac.IDPRACKU = prac.IDPRACKU
				where users.UserName = @LOGIN)
			AND k.MESIAC = @MESIAC AND k.ROK = @ROK
			AND a.KRAJ = @KRAJ
			AND a.OKRES = @OKRES
			AND a.TYPZV = 1

		GROUP BY ch.IDR, a.KRAJ, a.OKRES, a.PODNIK, a.CHOV, a.nazov, b.NAZOV, c.NAZOV, d.NAZOV, ch.KONIEC,
			a.OBEC, k.POCKRAVZAP, k.POCKRAVKONT, k.generovane, k.rok, k.mesiac, k.id, logy.Email, logy.Datum

		ORDER by a.PODNIK, a.CHOV, generovane DESC
		;

	DROP TABLE #maily;
END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 13.9.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Otelenia 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Otelenia_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int],
	@ParOp [varchar](3),
	@ParChovPov [varchar](9) = NULL
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	if @ParOp = 'INS'
		select @PriznakChyby = ZNCH_CO_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby
	else if @ParOp = 'UPD' 
		select @PriznakChyby = ZNCH_CO_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
		
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_OTELENIA(ID, CISCHYBY, PRIZNAKCHYBY, CHOVPOV) values (@ParID, @ParCisloChyby, @PriznakChyby, @ParChovPov)
	return (@PriznakChyby)

END


go

Create procedure [dbo].[Rocenka_MPHD_14]
    @rok int
	
as
begin

	select top 5 * 
	from Roc_MPHD_Tab_14 as z
	--where   z.rok = @rok 
	order by rok desc
end
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 10.07.2016
-- Description:	Aktualizacia udajov z PremBah do Kontrolenho zapisnika
--				1. Zistenie novych a zmeneych zaznamov z oboch tabuliek
--				2. Zmazanie celeho chovu v Kontrolon Zapisniku a spol na zaklade zmeny v tabulke PremBah
--				3. Pridanie zaznamov do KonZap a spol na zaklade chovov z tabulky PremBah

--	update 2016.08.09 - pridanie roku, aby sa premazaval iba aktualny rok, pokial bola nejaka zmena
--					  - zmena aktualizacie KZ na zaklade celeho chovu, nie iba jednotlivych poloziek
--		   2016.08.10 - oprava drobnych chyb, kontrola udajov, 
--		   2016.08.11 - problem pri aktualizacii novych chovov

-- =============================================
CREATE PROCEDURE [dbo].[S_aktual_KZ_z_PremBah]
	@rokEv varchar(6)
AS
BEGIN

	  ------------------------------------------------------------
	 ---                                                        ---
	--- Premazanie PremBah od 0, kde by mali byt NULL hodnoty    ---
	 ---                                                        ---
	  ------------------------------------------------------------


	update SM_PremBah set PORCIS = null where PORCIS = '0000'
	update SM_PremBah set HMOTBAH = null where HMOTBAH = '0'


	update SM_PremBah set JCCEHZ1 = null where JCCEHZ1 = '000000000000'
	update SM_PremBah set JCCEHZ2 = null where JCCEHZ2 = '000000000000'
	update SM_PremBah set JCCEHZ3 = null where JCCEHZ3 = '000000000000'
	update SM_PremBah set JCCEHZ4 = null where JCCEHZ4 = '000000000000'
	update SM_PremBah set JCCEHZ5 = null where JCCEHZ5 = '000000000000'

	update SM_PremBah set VISAC1 = null where VISAC1 = '0000'
	update SM_PremBah set VISAC2 = null where VISAC2 = '0000'
	update SM_PremBah set VISAC3 = null where VISAC3 = '0000'
	update SM_PremBah set VISAC4 = null where VISAC4 = '0000'
	update SM_PremBah set VISAC5 = null where VISAC5 = '0000'

	update SM_PremBah set HMNAROD1 = null where HMNAROD1 = 0
	update SM_PremBah set HMNAROD2 = null where HMNAROD2 = 0
	update SM_PremBah set HMNAROD3 = null where HMNAROD3 = 0
	update SM_PremBah set HMNAROD4 = null where HMNAROD4 = 0
	update SM_PremBah set HMNAROD5 = null where HMNAROD5 = 0

	update SM_PremBah set HM70H1 = null where HM70H1 = 0
	update SM_PremBah set HM70H2 = null where HM70H2 = 0
	update SM_PremBah set HM70H3 = null where HM70H3 = 0
	update SM_PremBah set HM70H4 = null where HM70H4 = 0
	update SM_PremBah set HM70H5 = null where HM70H5 = 0

	  ------------------------------------------------------------
	 ---                                                        ---
	--- Vyber rozdielov v zaznamoch mezdi tabulkami KZ a PremBah ---
	 ---                                                        ---
	  ------------------------------------------------------------


	--	declare @rokEv varchar(6) = '201516'
	
	SELECT 
	MIN(tab) as tab,
	--TableName, 
	chov, rok, BAHCIS, LUC, PUC, PORCIS, BPLEM, HMOTBAH, STMENB, DATPRIP, DATOBAH
	into #KonZapCompare
	FROM
	(
	  SELECT 'TabKZ' as tab,KROKR+PODNIK+STADO as 'chov',ROKEV1+ROKEV2  as 'rok', BAHCIS, 
	  --LUC, 
	  CAST(replace(LUC, ' ' ,'') as int) as LUC,
	  PUC, PORCIS, BPLEM, HMOTBAH, STMENB, DATPRIP, DATOBAH--, RokNar, Dovod, DatVyr, PredChov
	  FROM SM_KonZap
	  WHERE ROKEV1+ROKEV2 = @rokEv

	  UNION ALL

	  SELECT 'TabPB' as tab,KROKR+PODNIK+STADO  as 'chov', ROKEV1+ROKEV2  as 'rok', BAHCIS, 
	  --LUC, 
	  CAST(replace(LUC, ' ' ,'') as int) as LUC,
	  PUC, PORCIS, BPLEM, HMOTBAH, STMENB, DATPRIP, DATOBAH--, RokNar, Dovod, DatVyr, PredChov
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv

	) tmp

	GROUP BY chov, rok,  BAHCIS, LUC, PUC, PORCIS, BPLEM, HMOTBAH, STMENB, DATPRIP, DATOBAH
	HAVING COUNT(*) = 1
	ORDER BY chov, bahcis, tab


	
	SELECT 
	MIN(tab) as tab,
	--TableName, 
	chov, BAHCIS, pohl, visac, luc, puc, jccehz, hmnarod, datvaz, hmvaz, prizvyb
	into #KonZapComparePotomkovia
	FROM
	(
	  SELECT 'TabKZ' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS,  kzp.pohl, kzp.visac, 
	  --kzp.luc, 
	  CAST(replace(kzp.luc, ' ' ,'') as int) as LUC,
	  kzp.puc, substring(kzp.CEHZ, 3, 14) as JCCEHZ, kzp.hmnarod, kzp.DATVAZ, kzp.HMVAZ, kzp.PRIZVYB
  
	  FROM SM_KonZapPotomok kzp
	  left outer join SM_KonZap kz on kz.id = kzp.ID_KonZap
	  WHERE ROKEV1+ROKEV2 = @rokEv
	  --and kz.BAHCIS in 
	   --(select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)
	  --KROKR+PODNIK+STADO as 'chov',ROKEV1+ROKEV2  as 'rok', BAHCIS, LUC, PUC, PORCIS, BPLEM, HMOTBAH, STMENB, DATPRIP, DATOBAH--, RokNar, Dovod, DatVyr, PredChov
	  --FROM SM_KonZap
	  --WHERE ROKEV1+ROKEV2 = @rokEv

	  UNION ALL

	  SELECT 'TabPB' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS, POHL1 as pohl, VISAC1 as visac, 
	  --LUC1 as luc, 
	  CAST(replace(LUC1, ' ' ,'') as int) as LUC,
	  PUC1 as puc, JCCEHZ1 as jccechz, HMNAROD1 as hmnarod, DAT70H1 as datvaz, HM70H1 as hmvaz , PRIZVYB1 as prizVyb
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv --and  BAHCIS in 
	   --(select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)	   
	   and (visac1 is not null or luc1 is not null)

	UNION ALL
	  SELECT 'TabPB' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS, POHL2 as pohl, VISAC2 as visac, 
	  --LUC2 as luc, 
	  CAST(replace(LUC2, ' ' ,'') as int) as LUC,
	  PUC2 as puc, JCCEHZ2 as jccechz, HMNAROD2 as hmnarod, DAT70H2 as datvaz, HM70H2 as hmvaz , PRIZVYB2 as prizVyb
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv --and  BAHCIS in 
	   --(select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)
	   and (visac2 is not null or luc2 is not null)

	UNION ALL
   
	  SELECT 'TabPB' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS, POHL3 as pohl, VISAC3 as visac, LUC3 as luc, PUC3 as puc, JCCEHZ3 as jccechz, HMNAROD3 as hmnarod, DAT70H3 as datvaz, HM70H3 as hmvaz , PRIZVYB3 as prizVyb
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv --and  BAHCIS in 
	   --(select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)
	  and (visac3 is not null or luc3 is not null)
   
	UNION ALL
	  SELECT 'TabPB' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS, POHL4 as pohl, VISAC4 as visac, LUC4 as luc, PUC4 as puc, JCCEHZ4 as jccechz, HMNAROD4 as hmnarod, DAT70H4 as datvaz, HM70H4 as hmvaz , PRIZVYB4 as prizVyb
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv and  BAHCIS in 
	   (select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)
	   and (visac4 is not null or luc4 is not null)
   
	UNION ALL
		SELECT 'TabPB' as tab,KROKR+PODNIK+STADO as 'chov', BAHCIS, POHL4 as pohl, VISAC4 as visac, LUC4 as luc, PUC4 as puc, JCCEHZ4 as jccechz, HMNAROD4 as hmnarod, DAT70H4 as datvaz, HM70H4 as hmvaz , PRIZVYB4 as prizVyb
	  FROM SM_PremBah
	  WHERE ROKEV1+ROKEV2 = @rokEv --and  BAHCIS in 
	   --(select BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1)
	  and (visac5 is not null or luc5 is not null)

	) tmp

	GROUP BY chov, bahcis, pohl, visac, luc, puc, jccehz, hmnarod, datvaz, hmvaz, prizvyb
	HAVING COUNT(*) = 1 
	ORDER BY bahcis--, TableName

	
	


/*
		drop table #KonZapCompare
		drop table #KonZapComparePotomkovia
		drop table #KonZapLoginy
		drop table #KonZapChovy
		drop table #KonZapPotomok

*/
	create table #KonZapLoginy(

		chov varchar(9) NOT NULL,
		--rokev varchar(6) NOT NULL,
		bahcis varchar(8) NULL,

		[DATZAPIS] [datetime] NOT NULL,
		[LOGIN] [varchar](30) NOT NULL,
		[DATSPRAC] [datetime] NULL,
		[PRIZSPRAC] [varchar](1) NOT NULL,
		[VERZIA] [varchar](30) NULL,
		[ZDROJ] [varchar](3) NULL,
		tab varchar(1) NOT NULL	
	)

	-- drop table #KonZapChovy
	-- N - novy
	-- Z - zmena
	create table #KonZapChovy
	(
		chov varchar(9),
		stav varchar(1)
	)

	insert into #KonZapChovy
	select c.chov, 'N' from #KonZapCompare c 
		where Bahcis is not null and bahcis <> 0 
		GROUP BY  c.chov 
		
	update #KonZapChovy
	set stav = 'Z'
	where chov in (select c.chov from #KonZapCompare c 
		where Bahcis is not null and bahcis <> 0 and tab='TabKZ') 		


	insert into #KonZapChovy
	select distinct chov, 'Z' from #KonZapComparePotomkovia
		where chov not in (select chov from #KonZapChovy)
		and tab = 'TabPB'
		
	select * from #KonZapChovy order by chov

	-- select * from #KonZapCompare order by chov, rok, bahcis, puc
	/*
	
	select * from #KonZapComparePotomkovia 
	--where  tab = 'TabPB'
	order by chov, bahcis 

	*/

	/*
	insert into #KonZapChovy
	select c.chov, 'Z' from #KonZapCompare c 
		where Bahcis is not null and bahcis <> 0 
		GROUP BY  c.chov 
		HAVING COUNT(*) > 1

	insert into #KonZapChovy
	select c.chov, 'N' from #KonZapCompare c 
		where Bahcis is not null and bahcis <> 0 and tab = 'TabPB' and chov not in (select chov from #KonZapChovy)	
		GROUP BY  c.chov
*/	

	--	declare @rokEv varchar(6) = '201516'

	insert into #KonZapLoginy --(chov, bahcis, DATZAPIS, [login], DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ )
	select KROKR+PODNIK+STADO as chov, BAHCIS,
			DATZAPIS, [login], DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ, 'K'
		from SM_KonZap
		where KROKR+PODNIK+STADO in 
				(	
					--select c.chov from #KonZapCompare c where Bahcis is not null and bahcis <> 0 GROUP BY  c.chov HAVING COUNT(*) > 1
					select chov from #KonZapChovy where stav = 'Z'
				)
		and ROKEV1+ROKEV2 = @rokEv


	insert into #KonZapLoginy --(chov, bahcis, DATZAPIS, [login], DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ )
	select KROKR+PODNIK+STADO as chov, BAHCIS,
			kzp.DATZAPIS, kzp.[login], kzp.DATSPRAC, kzp.PRIZSPRAC, kzp.VERZIA, kzp.ZDROJ, 'P'
		from SM_KonZapPotomok kzp
		left outer join SM_KonZap kz on kz.id = kzp.ID_KonZap
		where KROKR+PODNIK+STADO in 
					(	
						--select c.chov from #KonZapCompare c where Bahcis is not null and bahcis <> 0 GROUP BY  c.chov HAVING COUNT(*) > 1
						select chov from #KonZapChovy where stav = 'Z'
					)
		and ROKEV1+ROKEV2 = @rokEv
		
	--select * from #KonZapLoginy


	-- zmeny mezdi existujucimi riadkami
	/*
	select  chov, rok, BAHCiS from #KonZapCompare  where Bahcis is not null and bahcis <> 0
	GROUP BY chov, rok,  BAHCIS--, tablename
	HAVING COUNT(*) > 1
	ORDER BY bahcis, chov--, TableName
	

		select  BAHCiS from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  BAHCIS HAVING COUNT(*) > 1
	*/

	/*
	delete from SM_KonZapBaran where KROKR+PODNIK+STADO = 
	(
		select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1
	)
	*/

	  ---------------------------------------------------------------
	 ---                                                           ---
	--- Premazanie KonZap a pribuznych tabuliek od zmenenych chovov ---
	 ---                                                           ---
	  ---------------------------------------------------------------
	--	declare @rokEv varchar(6) = '201516'
	delete from SM_KonZapPotomok
	where ID_KonZap in (
		select id from SM_KonZap where KROKR+PODNIK+STADO in 
			(	
				--select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1
				select chov from #KonZapChovy
			)
			and ROKEV1+ROKEV2 = @rokEv
			)

	delete from  SM_KonZap 
	where KROKR+PODNIK+STADO in 
	(	
		--select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1
		select chov from #KonZapChovy
	)
	and ROKEV1+ROKEV2 = @rokEv


	delete from SM_KonZapBaran where KROKR+PODNIK+STADO in
	(
		--select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1
		select chov from #KonZapChovy
	)
	and ROKEV1+ROKEV2 = @rokEv

	

	  ---------------------------------------------------------
	 ---                                                     ---
	--- Znovu vytvorenie zaznamov v KZ podla chovov z PremBah ---
	 ---                                                     ---
	  ---------------------------------------------------------
	-- update: kedze ten isty priradeny baran ma definovane viacere chovy v PremBah... pridaj max iba podla jedneho, inak budu duplicity
	-- update2: info ohladom barana sa bdue brat priamo z Barana a nie PremBah
	--	declare @rokEv varchar(6) = '201516'
	iNSERT INTO SM_KonZapBaran
		(KROKR, PODNIK, STADO, ROKEV1, ROKEV2, BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM)
	SELECT 
			--pb.KROKR, pb.PODNIK, pb.STADO, ROKEV1, ROKEV2, pb.BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, ZVSTAT + JCCEHZ, BPLEM
			pb.KROKR, pb.PODNIK, pb.STADO, ROKEV1, ROKEV2, pb.BARCIS, BPORCIS, b.KROKR, b.PODNIK, b.STADO, b.LUC, b.PUC, ZVSTAT + JCCEHZ, BPLEM
		from SM_PremBah pb 
		left outer join SM_Baran b on b.BARCIS = pb.BARCIS
		--where pb.barcis <> '00000000'
		where pb.KROKR+pb.PODNIK+pb.stado in 
			(
				--select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
				select chov from #KonZapChovy
			)
			and ROKEV1+ROKEV2 = @rokEv
			and pb.barcis not in (select barcis from SM_KonZapBaran ib 
					where ib.KROKR+ib.PODNIK+ib.STADO = pb.KROKR+pb.PODNIK+pb.stado 
						and ib.ROKEV1 + ib.ROKEV2 = pb.ROKEV1+pb.ROKEV2)
		--group by pb.KROKR, pb.PODNIK, pb.STADO, ROKEV1, ROKEV2, pb.BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, ZVSTAT + JCCEHZ, BPLEM
		group by pb.KROKR, pb.PODNIK, pb.STADO, ROKEV1, ROKEV2, pb.BARCIS, BPORCIS, b.KROKR, b.PODNIK, b.STADO, b.LUC, b.PUC, ZVSTAT + JCCEHZ, BPLEM




		
	--	declare @rokEv varchar(6) = '201516'
	iNSERT INTO SM_KonZap
		(ID_KonZapBaran, KROKR, PODNIK, STADO, CEHZ, LUC, PUC, BAHCIS, PORCIS, ROKEV1, ROKEV2, BPLEM, HMOTBAH, STMENB, 
		--BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BARCIS, BPORCIS, BPLEM, 
		DATPRIP, DATOBAH,
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ)
	
	SELECT 
			b.ID, pb.KROKR, pb.PODNIK, pb.STADO,
			(select top 1 ZVSTAT + JCCEHZ from SM_Bahnica b where b.BAHCIS = pb.BAHCIS and ZVSTAT is not null and bahcis <> 0) as CEHZ,
			pb.LUC, pb.PUC, pb.BAHCIS, pb.PORCIS, pb.ROKEV1, pb.ROKEV2, pb.BPLEM, HMOTBAH, STMENB, 
			--BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BARCIS, BPORCIS, BPLEM, 
			DATPRIP, DATOBAH,	
			isnull(l.DATZAPIS, GETDATE()), isnull(l.LOGIN, 'system'), isnull(l.DATSPRAC, GETDATE()), 2, isnull(l.VERZIA, 'web') , isnull(l.ZDROJ, 'FND')
		--GETDATE(), 'system', null, 0, 'web' , 'FND'
		--into #KonZapTemp
		from SM_PremBah pb 
			left outer join SM_KonZapBaran b on b.BARCIS = pb.BARCIS and b.KROKR = pb.KROKR and b.PODNIK = pb.PODNIK and b.STADO = pb.stado and b.ROKEV1 = pb.ROKEV1 and b.ROKEV2 = pb.ROKEV2
			left outer join #KonZapLoginy l on l.chov = pb.KROKR+pb.PODNIK+pb.STADO and l.bahcis = pb.BAHCIS and l.tab = 'K'
		where pb.KROKR+pb.PODNIK+pb.stado in 
			--(select chov from #KonZapCompare c where c.Bahcis is not null and c.bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
			(select chov from #KonZapChovy)
			and pb.ROKEV1+pb.ROKEV2 = @rokEv



	update SM_KonZap
	set LUC = ' ' + LUC
	where len(LUC) = 4


	update SM_KonZap
	set LUC = '  ' + LUC
	where len(LUC) = 3

	-- drop table #SM_KonZapPotomok
	--	declare @rokEv varchar(6) = '201516'
	CREATE TABLE #SM_KonZapPotomok(
		[ID] [bigint] IDENTITY(1,1) NOT NULL PRIMARY KEY,
		[ID_KonZap] [bigint] FOREIGN KEY REFERENCES SM_KonZap(ID),
		[POHL] [varchar](1) NOT NULL,
		[VISAC] [varchar](4) NULL,
		[LUC] [varchar](5) NULL,
		[PUC] [varchar](5) NULL,
		[CEHZ] [varchar](14) NULL,
		[HMNAROD] [float] NULL,
		[DATVAZ] [date] NULL,
		[HMVAZ] [float] NULL,
		[PRIZVYB] [varchar](1) NULL,
	
		[DATZAPIS] [datetime] NOT NULL,
		[LOGIN] [varchar](30) NOT NULL,
		[DATSPRAC] [datetime] NULL,
		[PRIZSPRAC] [varchar](1) NOT NULL,
		[VERZIA] [varchar](30) NULL

		--riadky pridane kvoli prvotnej kontrole.... - uz ich netreba
		,[BAHCIS] varchar(8) NULL
		,[ROKEV1] varchar(4) NULL
		,[ROKEV2] varchar(2) NULL
		--,ZDROJ varchar(2) NULL
		,chov varchar(9) NULL
	)


	INSERT INTO #SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, BAHCIS, ROKEV1, ROKEV2, chov)
	SELECT 
		(select top 1 id from SM_KonZap kz where kz.BAHCIS = pb.BAHCIS and kz.ROKEV1 = pb.ROKEV1 and kz.ROKEV2 = pb.ROKEV2) as id,
		POHL1, VISAC1, LUC1, PUC1, JCCEHZ1, HMNAROD1, DAT70H1, HM70H1, PRIZVYB1, 
		GETDATE(), 'system', null, 2, 'web', BAHCIS, ROKEV1, ROKEV2, pb.KROKR+pb.PODNIK+pb.stado	
	from SM_PremBah pb  where pohl1 <> 0
		and pb.KROKR+pb.PODNIK+pb.stado in 
		--(select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
		(select chov from #KonZapChovy)
		and ROKEV1+ROKEV2 = @rokEv



	INSERT INTO #SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, BAHCIS, ROKEV1, ROKEV2, chov)
	SELECT 
		(select top 1 id from SM_KonZap kz where kz.BAHCIS = pb.BAHCIS and kz.ROKEV1 = pb.ROKEV1 and kz.ROKEV2 = pb.ROKEV2) as id,
		POHL2, VISAC2, LUC2, PUC2, JCCEHZ2, HMNAROD2, DAT70H2, HM70H2, PRIZVYB2, GETDATE(), 'system', null, 2, 'web', BAHCIS, ROKEV1, ROKEV2, pb.KROKR+pb.PODNIK+pb.stado
	from SM_PremBah pb where pohl2 <> 0
		and pb.KROKR+pb.PODNIK+pb.stado in 
		--(select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
		(select chov from #KonZapChovy)
		and ROKEV1+ROKEV2 = @rokEv


	iNSERT INTO #SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, BAHCIS, ROKEV1, ROKEV2, chov)
	SELECT 
		(select top 1 id from SM_KonZap kz where kz.BAHCIS = pb.BAHCIS and kz.ROKEV1 = pb.ROKEV1 and kz.ROKEV2 = pb.ROKEV2) as id,
		POHL3, VISAC3, LUC3, PUC3, JCCEHZ3, HMNAROD3, DAT70H3, HM70H3, PRIZVYB3, GETDATE(), 'system', null, 2, 'web', BAHCIS, ROKEV1, ROKEV2, pb.KROKR+pb.PODNIK+pb.stado
	from SM_PremBah pb where pohl3 <> 0
		and pb.KROKR+pb.PODNIK+pb.stado in 
		--(select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
		(select chov from #KonZapChovy)
		and ROKEV1+ROKEV2 = @rokEv


	iNSERT INTO #SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, BAHCIS, ROKEV1, ROKEV2, chov)
	SELECT 
		(select top 1 id from SM_KonZap kz where kz.BAHCIS = pb.BAHCIS and kz.ROKEV1 = pb.ROKEV1 and kz.ROKEV2 = pb.ROKEV2) as id,
		POHL4, VISAC4, LUC4, PUC4, JCCEHZ4, HMNAROD4, DAT70H4, HM70H4, PRIZVYB4, GETDATE(), 'system', null, 2, 'web', BAHCIS, ROKEV1, ROKEV2, pb.KROKR+pb.PODNIK+pb.stado
	from SM_PremBah pb where pohl4 <> 0
		and pb.KROKR+pb.PODNIK+pb.stado in 
		--(select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
		(select chov from #KonZapChovy)
		and ROKEV1+ROKEV2 = @rokEv


	iNSeRT iNTo #SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, BAHCIS, ROKEV1, ROKEV2, chov)
	SeLeCT 
		(select top 1 id from SM_KonZap kz where kz.BAHCIS = pb.BAHCIS and kz.ROKEV1 = pb.ROKEV1 and kz.ROKEV2 = pb.ROKEV2) as id,
		POHL5, VISAC5, LUC5, PUC5, JCCEHZ5, HMNAROD5, DAT70H5, HM70H5, PRIZVYB5, GETDATE(), 'system', null, 2, 'web', BAHCIS, ROKEV1, ROKEV2, pb.KROKR+pb.PODNIK+pb.stado
	FRoM SM_PremBah pb where pohl5 <> 0
		and pb.KROKR+pb.PODNIK+pb.stado in 
		--(select chov from #KonZapCompare where Bahcis is not null and bahcis <> 0 GROUP BY  chov HAVING COUNT(*) > 1)
		(select chov from #KonZapChovy)
		and ROKEV1+ROKEV2 = @rokEv

	/*
		Vlozenie z virtualnej tabulky do tabulky Potomkov, a zoradenie potomkov zasebou k danej matke
	*/

	iNSeRT iNTo SM_KonZapPotomok
		(ID_KonZap, POHL, VISAC, LUC, PUC, CEHZ, HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, ZDROJ)		
	SeLeCT 
		ID_KonZap, POHL, VISAC, LUC, PUC, 
		case when CEHZ is not null then 
			isnull(substring((select top 1 CEHZ from SM_KonZap kz where kz.ID = ID_KonZap), 1, 2 ), '00') + CEHZ else null end as CEHZ, 
		HMNAROD, DATVAZ, HMVAZ, PRIZVYB, 
		--DATZAPIS, LOGIN, DATSPRAC, PRIZSPRAC, VERZIA, 'FND'
		isnull(l.DATZAPIS, p.DATZAPIS), isnull(l.LOGIN, p.login), isnull(l.DATSPRAC, p.DATSPRAC), 2, isnull(l.VERZIA, p.verzia) , isnull(l.ZDROJ, 'FND')
	FRoM #SM_KonZapPotomok p
	left outer join #KonZapLoginy l on l.chov = p.chov and l.bahcis = p.BAHCIS and l.tab = 'K'
	order by ID_KonZap, ID

	/*
		Aktualizovanie na kompletne CEHZ podla matky
	*/
	/*
	update SM_KonZapPotomok
	set CEHZ = isnull(substring((select top 1 CEHZ from SM_KonZap kz where kz.ID = ID_KonZap), 1, 2 ), '00') + CEHZ-- isnull(CEHZ, '000000000000')
	where --CEHZ <> '000000000000' and 
		 CEHZ is not null
*/
	--update SM_KonZapPotomok
	--set CEHZ = null
	--where CEHZ = '000000000000'		


	update SM_KonZapPotomok
	set LUC = ' ' + LUC
	where len(LUC) = 4

	update SM_KonZapPotomok
	set LUC = '  ' + LUC
	where len(LUC) = 3


	--update SM_KonZapPotomok
	--set VISAC = null
	--where VISAC = '0000'
	

END

go

CREATE procedure [dbo].[Rocenka_OV_Tab_Bonit]
    @rok varchar(4)
	
	
as
begin

	
	select * 
	from SP_Rocenka_Bonit as z
	
		where z.Rok = @rok
end
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 1.12.2015
-- Description:	skopirovanie dat z migracie do PLISu (tabulky cm_krava, cm_kontroly, cm_naplak, cm_laktacie, cm_telata, cm_vazenia) pre zadanu mnozinu chovov
-- =============================================
CREATE PROCEDURE [dbo].[C_kopiruj_data_z_migracie_oprava]
    @ParIDDalsSprac bigint = 10000000
AS
BEGIN
    -- ohranicenie pre zaznamy s id spracovania chovu, ktory je uz v dalsom spracovani
	declare @IDDALSSPRAC bigint = @ParIDDalsSprac

	-- zoznam chovov pre dotiahnutie dat
	SELECT CHOV into #temp_vybr_chovy from CP_CHOVY_DATA_Z_FANDU 

	  --select count(*) from #temp_vybr_chovy
	-- KRAVY -----------------------------------------------------------------------------------------------------------------------------------------------------------------------

	-- vytvorenie a naplnenie tabulky so zoznamom chovov v KU ML
	select distinct KRAJ+OKRES+podnik+CHOV as chovatel into #mlchovy
		from plis.dbo.nm_chovmas 
		where plis.dbo.HDchov_ma_typ_KU(kraj+okres+podnik+chov, 'ML') = 1 and zrus is null
	CREATE INDEX IDX_mlchovy_chovatel ON #mlchovy(chovatel)


	select distinct ciskravy into #kravy_nove from s113.plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy ON #kravy_nove(ciskravy)


	select distinct ciskravy into #kravy_zvysne from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_zvysne_ciskravy ON #kravy_zvysne(ciskravy)


	select distinct ciskravy into #kravy_spolu from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove)

	CREATE INDEX IDX_kravy_spolu_ciskravy ON #kravy_spolu(ciskravy)

	merge PLIS.dbo.CM_Krava as k
	using (select * from s113.plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECLIN else m_k.OTECLIN end
		  ,k.OTECREG			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECREG else m_k.OTECREG end
		  ,k.OUSCIS				= case when m_k.OUSCIS is null then k.OUSCIS else m_k.OUSCIS end
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.IDOT else m_k.IDOT end
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP

	when not matched by target then insert (
		   CISKRAVY
		  ,CHOVATEL
		  ,SKUPINA
		  ,PK
		  ,OTECLIN
		  ,OTECREG
		  ,OUSCIS
		  ,MA
		  ,IDOT
		  ,IDMA
		  ,DATNAR
		  ,PL1
		  ,KR1
		  ,PL2
		  ,KR2
		  ,PL3
		  ,KR3
		  ,PL4
		  ,KR4
		  ,PL5
		  ,FARBA
		  ,ZNMATBYK
		  ,ZNAKET
		  ,POHLAVIE
		  ,ZDRAVTR
		  ,PLEMENNA
		  ,PORPREBLAK
		  ,DATPOSKONT
		  ,DOVVYR
		  ,DATVYR
		  ,DATZAR
		  ,TRUZIT
		  ,PORLAKMAX
		  ,MLIEKOMAX
		  ,TUKMAX
		  ,BIELMAX
		  ,LAKTOZAMAX
		  ,POCVSETLAK
		  ,POCNORLAK
		  ,MLIEKOPR
		  ,TUKPRKG
		  ,TUKPRPER
		  ,BIELPRKG
		  ,BIELPRPER
		  ,LAKTPRKG
		  ,LAKTPRPER
		  ,TYPPLEM
		  ,FARMACEHZ
		  ,PRIZNAKKU
		  ,KRJA
		  ,PINT
		  ,PSER
		  ,PMED
		  ,BB_ANIMALCODE
		  ,BB_NAME
		  ,BB_IMPORTED
		  ,BB_BREEDING_NAME
		  ,BB_OWNER
		  ,BB_KEEPER
		  ,BB_USE
		  ,BB_COUNTRYCODE
		  ,BB_CATEGORY
		  ,BB_HERDBOOK_NUMBER)
		values ( 
			m_k.CISKRAVY ,
			m_k.CHOVATEL ,
			m_k.SKUPINA  ,
			m_k.PK		  ,
			m_k.OTECLIN  ,
			m_k.OTECREG  ,
			m_k.OUSCIS	  ,
			m_k.MA		  ,
			m_k.IDOT	  ,
			m_k.IDMA	  ,
			m_k.DATNAR	  ,
			m_k.PL1	  ,
			m_k.KR1	  ,
			m_k.PL2	  ,
			m_k.KR2	  ,
			m_k.PL3	  ,
			m_k.KR3	  ,
			m_k.PL4	  ,
			m_k.KR4	  ,
			m_k.PL5	  ,
			m_k.FARBA	  ,
			m_k.ZNMATBYK ,
			m_k.ZNAKET	  ,
			m_k.POHLAVIE ,
			m_k.ZDRAVTR  ,
			m_k.PLEMENNA ,
			m_k.PORPREBLAK,
			m_k.DATPOSKONT,
			m_k.DOVVYR	  ,
			m_k.DATVYR	  ,
			m_k.DATZAR	  ,
			m_k.TRUZIT	  ,
			m_k.PORLAKMAX,
			m_k.MLIEKOMAX,
			m_k.TUKMAX	  ,
			m_k.BIELMAX  ,
			m_k.LAKTOZAMAX,
			m_k.POCVSETLAK,
			m_k.POCNORLAK,
			m_k.MLIEKOPR ,
			m_k.TUKPRKG  ,
			m_k.TUKPRPER ,
			m_k.BIELPRKG ,
			m_k.BIELPRPER,
			m_k.LAKTPRKG ,
			m_k.LAKTPRPER,
			m_k.TYPPLEM  ,
			m_k.FARMACEHZ,
			m_k.PRIZNAKKU,
			m_k.KRJA	  ,
			m_k.PINT	  ,
			m_k.PSER	  ,
			m_k.PMED	  ,
			m_k.BB_ANIMALCODE,
			m_k.BB_NAME  ,
			m_k.BB_IMPORTED,
			m_k.BB_BREEDING_NAME,
			m_k.BB_OWNER ,
			m_k.BB_KEEPER,
			m_k.BB_USE	  ,
			m_k.BB_COUNTRYCODE,
			m_k.BB_CATEGORY,
			m_k.BB_HERDBOOK_NUMBER);
					  	  

	merge PLIS.dbo.CM_Krava as k
	using (select * from s113.plis.dbo.CM_Krava where ciskravy in (select ciskravy from #kravy_zvysne)) as m_k
	on k.CISKRAVY = m_k.CISKRAVY
	when matched and ((k.SPRACINSERT < @IDDALSSPRAC or k.SPRACINSERT is null) and (k.SPRACUPDATE < @IDDALSSPRAC or k.SPRACUPDATE is null)) then update set 
		   k.CHOVATEL			= m_k.CHOVATEL
		  ,k.SKUPINA			= m_k.SKUPINA
		  ,k.PK					= m_k.PK
		  ,k.OTECLIN			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECLIN else m_k.OTECLIN end
		  ,k.OTECREG			= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.OTECREG else m_k.OTECREG end
		  ,k.OUSCIS				= case when m_k.OUSCIS is null then k.OUSCIS else m_k.OUSCIS end
		  ,k.MA					= m_k.MA
		  ,k.IDOT				= case when k.OUSCIS is not null and m_k.OTECLIN is null then k.IDOT else m_k.IDOT end
		  ,k.IDMA				= m_k.IDMA
		  ,k.DATNAR				= m_k.DATNAR
		  ,k.PL1				= m_k.PL1
		  ,k.KR1				= m_k.KR1
		  ,k.PL2				= m_k.PL2
		  ,k.KR2				= m_k.KR2
		  ,k.PL3				= m_k.PL3
		  ,k.KR3				= m_k.KR3
		  ,k.PL4				= m_k.PL4
		  ,k.KR4				= m_k.KR4
		  ,k.PL5				= m_k.PL5
		  ,k.FARBA				= m_k.FARBA
		  ,k.ZNMATBYK			= m_k.ZNMATBYK
		  ,k.ZNAKET				= m_k.ZNAKET
		  ,k.POHLAVIE			= m_k.POHLAVIE
		  ,k.ZDRAVTR			= m_k.ZDRAVTR
		  ,k.PLEMENNA			= m_k.PLEMENNA
		  ,k.PORPREBLAK			= m_k.PORPREBLAK
		  ,k.DATPOSKONT			= m_k.DATPOSKONT
		  ,k.DOVVYR				= m_k.DOVVYR
		  ,k.DATVYR				= m_k.DATVYR
		  ,k.DATZAR				= m_k.DATZAR
		  ,k.TRUZIT				= m_k.TRUZIT
		  ,k.PORLAKMAX			= m_k.PORLAKMAX
		  ,k.MLIEKOMAX			= m_k.MLIEKOMAX
		  ,k.TUKMAX				= m_k.TUKMAX
		  ,k.BIELMAX			= m_k.BIELMAX
		  ,k.LAKTOZAMAX			= m_k.LAKTOZAMAX
		  ,k.POCVSETLAK			= m_k.POCVSETLAK
		  ,k.POCNORLAK			= m_k.POCNORLAK
		  ,k.MLIEKOPR			= m_k.MLIEKOPR
		  ,k.TUKPRKG			= m_k.TUKPRKG
		  ,k.TUKPRPER			= m_k.TUKPRPER
		  ,k.BIELPRKG			= m_k.BIELPRKG
		  ,k.BIELPRPER			= m_k.BIELPRPER
		  ,k.LAKTPRKG			= m_k.LAKTPRKG
		  ,k.LAKTPRPER			= m_k.LAKTPRPER
		  ,k.TYPPLEM			= m_k.TYPPLEM
		  ,k.FARMACEHZ			= m_k.FARMACEHZ
		  ,k.PRIZNAKKU			= m_k.PRIZNAKKU
		  ,k.KRJA				= m_k.KRJA
		  ,k.PINT				= m_k.PINT
		  ,k.PSER				= m_k.PSER
		  ,k.PMED				= m_k.PMED
		  ,k.BB_ANIMALCODE		= m_k.BB_ANIMALCODE
		  ,k.BB_NAME			= m_k.BB_NAME
		  ,k.BB_IMPORTED		= m_k.BB_IMPORTED
		  ,k.BB_BREEDING_NAME	= m_k.BB_BREEDING_NAME
		  ,k.BB_OWNER			= m_k.BB_OWNER
		  ,k.BB_KEEPER			= m_k.BB_KEEPER
		  ,k.BB_USE				= m_k.BB_USE
		  ,k.BB_COUNTRYCODE		= m_k.BB_COUNTRYCODE
		  ,k.BB_CATEGORY		= m_k.BB_CATEGORY
		  ,k.BB_HERDBOOK_NUMBER = m_k.BB_HERDBOOK_NUMBER
		  ,k.DATZAPPREP			= m_k.DATZAPPREP
		  ,k.DATVYBPREP			= m_k.DATVYBPREP;


	delete from plis.dbo.CM_Krava where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove)
	 and ((SPRACINSERT < @IDDALSSPRAC or SPRACINSERT is null) and (SPRACUPDATE < @IDDALSSPRAC or SPRACUPDATE is null))			

	print 'CM_Krava'


	-- KONTROLY --------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_kontr from s113.plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_kontr ON #kravy_nove_kontr(ciskravy)


	select distinct ciskravy into #kravy_zvysne_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_kontr ON #kravy_zvysne_kontr(ciskravy)


	select distinct ciskravy into #kravy_spolu_kontr from plis.dbo.CM_Kontroly where cischovu in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_kontr)

	CREATE INDEX IDX_kravy_spolu_ciskravy_kontr ON #kravy_spolu_kontr(ciskravy)

	--------

	select ciskravy, datkontr into #kontroly_nove from s113.plis.dbo.CM_Kontroly where ciskravy in (select ciskravy from #kravy_spolu_kontr) and DATKONTR > '2013-01-01'

	CREATE INDEX IDX_kontroly_nove_ciskravydatkontr ON #kontroly_nove(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_stare from plis.dbo.CM_Kontroly as k where DATKONTR > '2013-01-01' and ciskravy in (select ciskravy from #kravy_spolu_kontr)

	CREATE INDEX IDX_kontroly_stare_ciskravydatkontr ON #kontroly_stare(ciskravy, datkontr)


	select ciskravy, datkontr into #kontroly_delete from #kontroly_stare except select ciskravy, datkontr from #kontroly_nove


	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s113.plis.dbo.CM_Kontroly as k1 where k1.ciskravy in (select ciskravy from #kravy_nove_kontr) and k1.DATKONTR > '2013-01-01') as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD
	when not matched then insert (					  
			 CISKRAVY	
			,DATKONTR	
			,ZNKONTR	
			,DENDOBA	
			,INTERVAL	
			,CISCHOVU	
			,SKUPINA	
			,PREPOCET	
			,MLIEKO	
			,MLIEKPR	
			,PRT		
			,PERCTUKU	
			,PERCBIELK	
			,PERCLAKTOZ
			,BUNECELEM	
			,LAKTDNI	
			,PORPREBLAK
			,PLATNOST	
			,KodIntSB	
			,KodIntLD)
		values ( 		
			 m_ko.CISKRAVY	
			,m_ko.DATKONTR	
			,m_ko.ZNKONTR	
			,m_ko.DENDOBA	
			,m_ko.INTERVAL	
			,m_ko.CISCHOVU	
			,m_ko.SKUPINA	
			,m_ko.PREPOCET	
			,m_ko.MLIEKO	
			,m_ko.MLIEKPR	
			,m_ko.PRT		
			,m_ko.PERCTUKU	
			,m_ko.PERCBIELK	
			,m_ko.PERCLAKTOZ
			,m_ko.BUNECELEM	
			,m_ko.LAKTDNI	
			,m_ko.PORPREBLAK
			,m_ko.PLATNOST	
			,m_ko.KodIntSB	
			,m_ko.KodIntLD); 					  

	merge PLIS.dbo.CM_Kontroly as ko
	using (select * from s113.plis.dbo.CM_Kontroly as k where k.DATKONTR > '2013-01-01' and k.ciskravy in (select ciskravy from #kravy_zvysne_kontr)) as m_ko
	on ko.CISKRAVY = m_ko.CISKRAVY and ko.datkontr = m_ko.datkontr
	when matched and ((ko.SPRACINSERT < @IDDALSSPRAC or ko.SPRACINSERT is null) and (ko.SPRACUPDATE < @IDDALSSPRAC or ko.SPRACUPDATE is null)) then update set 
		   ko.ZNKONTR		=	m_ko.ZNKONTR
		  ,ko.DENDOBA		=	m_ko.DENDOBA
		  ,ko.INTERVAL		=	m_ko.INTERVAL
		  ,ko.CISCHOVU		=	m_ko.CISCHOVU
		  ,ko.SKUPINA		=	m_ko.SKUPINA
		  ,ko.PREPOCET		=	m_ko.PREPOCET
		  ,ko.MLIEKO		=	m_ko.MLIEKO
		  ,ko.MLIEKPR		=	m_ko.MLIEKPR
		  ,ko.PRT			=	m_ko.PRT
		  ,ko.PERCTUKU		=	m_ko.PERCTUKU
		  ,ko.PERCBIELK		=	m_ko.PERCBIELK
		  ,ko.PERCLAKTOZ	=	m_ko.PERCLAKTOZ
		  ,ko.BUNECELEM		=	m_ko.BUNECELEM
		  ,ko.LAKTDNI		=	m_ko.LAKTDNI
		  ,ko.PORPREBLAK	=	m_ko.PORPREBLAK
		  ,ko.PLATNOST		=	m_ko.PLATNOST
		  ,ko.KodIntSB		=	m_ko.KodIntSB
		  ,ko.KodIntLD		=	m_ko.KodIntLD;

	delete ak from plis.dbo.CM_Kontroly ak where DATKONTR > '2013-01-01' and exists (select 1 from #kontroly_delete as sk where ak.CISKRAVY = sk.ciskravy and ak.DATKONTR = sk.datkontr)
	and ((ak.SPRACINSERT < @IDDALSSPRAC or ak.SPRACINSERT is null) and (ak.SPRACUPDATE < @IDDALSSPRAC or ak.SPRACUPDATE is null))

	print 'CM_Kontroly'


	-- NAPLAK ----------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_napl from s113.plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_napl ON #kravy_nove_napl(ciskravy)


	select distinct ciskravy into #kravy_zvysne_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_napl ON #kravy_zvysne_napl(ciskravy)


	select distinct ciskravy into #kravy_spolu_napl from plis.dbo.CM_Naplak where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_napl)

	CREATE INDEX IDX_kravy_spolu_ciskravy_napl ON #kravy_spolu_napl(ciskravy)

	---------

	select distinct ciskravy into #naplak_nove from s113.plis.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_nove_ciskravy ON #naplak_nove(ciskravy)


	select distinct ciskravy into #naplak_stare from plis.dbo.CM_Naplak where ciskravy in (select ciskravy from #kravy_spolu_napl) and datotel > '2012-01-01'

	CREATE INDEX IDX_naplak_stare_ciskravy ON #naplak_stare(ciskravy)


	select ciskravy into #naplak_delete from #naplak_stare except select ciskravy from #naplak_nove


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s113.plis.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_nove_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,ZNAK			
			,BEZT			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_n.CISKRAVY
			,m_n.CHOVATEL
			,m_n.PORLAK
			,m_n.DATOTEL
			,m_n.CHOVOTEL
			,m_n.CHOVLAKT
			,m_n.PRIEBPOROD
			,m_n.POHLAVIE
			,m_n.ZMENA
			,m_n.DATUKONL
			,m_n.DATUKNORL
			,m_n.MEDZIOBD
			,m_n.HMOTKR
			,m_n.LAKTDNI
			,m_n.LAKDNIN
			,m_n.MLIEKCEL
			,m_n.MLIEKNOR
			,m_n.TUKCEL
			,m_n.TUKNOR
			,m_n.BIELKCEL
			,m_n.BIELKNOR
			,m_n.LAKTOZAC
			,m_n.LAKTOZAN
			,m_n.INDPER
			,m_n.INDLAK
			,m_n.CHARUST
			,m_n.MAXLAK
			,m_n.ZNAK
			,m_n.BEZT
			,m_n.MLIEKO100
			,m_n.TUK100
			,m_n.BIELK100
			,m_n.LAKT100
			,m_n.MLIEKO200
			,m_n.TUK200
			,m_n.BIELK200
			,m_n.LAKT200
			,m_n.DATZAPZVK
			,m_n.DATVYBZVK
			,m_n.KOD_DOJ
			,m_n.KOD_MEDZ);


	merge PLIS.dbo.CM_Naplak as n
	using (select * from s113.plis.dbo.CM_Naplak as n1 where n1.ciskravy in (select ciskravy from #kravy_zvysne_napl) and n1.datotel > '2012-01-01') as m_n
	on n.CISKRAVY = m_n.CISKRAVY
	when matched and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null)) then update set
			 n.CHOVATEL		=	m_n.CHOVATEL
			,n.PORLAK		=	m_n.PORLAK
			,n.DATOTEL		=	m_n.DATOTEL
			,n.CHOVOTEL		=	m_n.CHOVOTEL
			,n.CHOVLAKT		=	m_n.CHOVLAKT
			,n.PRIEBPOROD	=	m_n.PRIEBPOROD
			,n.POHLAVIE		=	m_n.POHLAVIE
			,n.ZMENA		=	m_n.ZMENA
			,n.DATUKONL		=	m_n.DATUKONL
			,n.DATUKNORL	=	m_n.DATUKNORL
			,n.MEDZIOBD		=	m_n.MEDZIOBD
			,n.HMOTKR		=	m_n.HMOTKR
			,n.LAKTDNI		=	m_n.LAKTDNI
			,n.LAKDNIN		=	m_n.LAKDNIN
			,n.MLIEKCEL		=	m_n.MLIEKCEL
			,n.MLIEKNOR		=	m_n.MLIEKNOR
			,n.TUKCEL		=	m_n.TUKCEL
			,n.TUKNOR		=	m_n.TUKNOR
			,n.BIELKCEL		=	m_n.BIELKCEL
			,n.BIELKNOR		=	m_n.BIELKNOR
			,n.LAKTOZAC		=	m_n.LAKTOZAC
			,n.LAKTOZAN		=	m_n.LAKTOZAN
			,n.INDPER		=	m_n.INDPER
			,n.INDLAK		=	m_n.INDLAK
			,n.CHARUST		=	m_n.CHARUST
			,n.MAXLAK		=	m_n.MAXLAK
			,n.ZNAK			=	m_n.ZNAK
			,n.BEZT			=	m_n.BEZT
			,n.MLIEKO100	=	m_n.MLIEKO100
			,n.TUK100		=	m_n.TUK100
			,n.BIELK100		=	m_n.BIELK100
			,n.LAKT100		=	m_n.LAKT100
			,n.MLIEKO200	=	m_n.MLIEKO200
			,n.TUK200		=	m_n.TUK200
			,n.BIELK200		=	m_n.BIELK200
			,n.LAKT200		=	m_n.LAKT200
			,n.DATZAPZVK	=	m_n.DATZAPZVK
			,n.DATVYBZVK	=	m_n.DATVYBZVK
			,n.KOD_DOJ		=	m_n.KOD_DOJ
			,n.KOD_MEDZ		=	m_n.KOD_MEDZ;

	delete n from plis.dbo.CM_Naplak n where exists (select 1 from #naplak_delete as nd where nd.CISKRAVY = n.CISKRAVY) and datotel > '2012-01-01'
	 and ((n.SPRACINSERT < @IDDALSSPRAC or n.SPRACINSERT is null) and (n.SPRACUPDATE < @IDDALSSPRAC or n.SPRACUPDATE is null))

	print 'CM_Naplak'


	-- LAKTACIE ---------------------------------------------------------------------------------------------------------------------------------------------------------------------


	select distinct ciskravy into #kravy_nove_lakt from s113.plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy)

	CREATE INDEX IDX_kravy_nove_ciskravy_lakt ON #kravy_nove_lakt(ciskravy)


	select distinct ciskravy into #kravy_zvysne_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) and ciskravy not in
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_zvysne_ciskravy_lakt ON #kravy_zvysne_lakt(ciskravy)


	select distinct ciskravy into #kravy_spolu_lakt from plis.dbo.CM_Laktacie where chovatel in (select chov from #temp_vybr_chovy) 
	union 
	(select ciskravy from #kravy_nove_lakt)

	CREATE INDEX IDX_kravy_spolu_ciskravy_lakt ON #kravy_spolu_lakt(ciskravy)

	--------

	select ciskravy, PORLAK into #laktacie_nove from s113.plis.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_nove_ciskravyporlak ON #laktacie_nove(ciskravy, porlak)


	select ciskravy, PORLAK into #laktacie_stare from plis.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_spolu_lakt) --and DATUKONL > '2012-01-01'

	CREATE INDEX IDX_laktacie_stare_ciskravyporlak ON #laktacie_stare(ciskravy, porlak)


	select ciskravy, porlak into #laktacie_delete from #laktacie_stare except select ciskravy, porlak from #laktacie_nove


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s113.plis.dbo.CM_Laktacie where ciskravy in (select ciskravy from #kravy_nove_lakt) /*and DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ
	when not matched then insert (
			 CISKRAVY		
			,CHOVATEL		
			,PORLAK				 
			,DATOTEL		
			,CHOVOTEL		
			,CHOVLAKT		
			,PRIEBPOROD
			,POHLAVIE		
			,ZMENA		
			,DATUKONL		
			,DATUKNORL	
			,MEDZIOBD		
			,HMOTKR		
			,LAKTDNI		
			,LAKDNIN		
			,MLIEKCEL		
			,MLIEKNOR		
			,TUKCEL		
			,TUKNOR		
			,BIELKCEL		
			,BIELKNOR		
			,LAKTOZAC		
			,LAKTOZAN		
			,INDPER		
			,INDLAK		
			,CHARUST		
			,MAXLAK		
			,SPOSOBKU			
			,MLIEKO100	
			,TUK100		
			,BIELK100		
			,LAKT100		
			,MLIEKO200	
			,TUK200		
			,BIELK200		
			,LAKT200		
			,DATZAPZVK	
			,DATVYBZVK	
			,KOD_DOJ		
			,KOD_MEDZ)
	VALUES (
			 m_l.CISKRAVY
			,m_l.CHOVATEL
			,m_l.PORLAK
			,m_l.DATOTEL
			,m_l.CHOVOTEL
			,m_l.CHOVLAKT
			,m_l.PRIEBPOROD
			,m_l.POHLAVIE
			,m_l.ZMENA
			,m_l.DATUKONL
			,m_l.DATUKNORL
			,m_l.MEDZIOBD
			,m_l.HMOTKR
			,m_l.LAKTDNI
			,m_l.LAKDNIN
			,m_l.MLIEKCEL
			,m_l.MLIEKNOR
			,m_l.TUKCEL
			,m_l.TUKNOR
			,m_l.BIELKCEL
			,m_l.BIELKNOR
			,m_l.LAKTOZAC
			,m_l.LAKTOZAN
			,m_l.INDPER
			,m_l.INDLAK
			,m_l.CHARUST
			,m_l.MAXLAK
			,m_l.SPOSOBKU
			,m_l.MLIEKO100
			,m_l.TUK100
			,m_l.BIELK100
			,m_l.LAKT100
			,m_l.MLIEKO200
			,m_l.TUK200
			,m_l.BIELK200
			,m_l.LAKT200
			,m_l.DATZAPZVK
			,m_l.DATVYBZVK
			,m_l.KOD_DOJ
			,m_l.KOD_MEDZ);


	merge PLIS.dbo.CM_Laktacie as l
	using (select * from s113.plis.dbo.CM_Laktacie as l1 where l1.ciskravy in (select ciskravy from #kravy_zvysne_lakt) /*and l1.DATUKONL > '2012-01-01'*/) as m_l
	on l.CISKRAVY = m_l.CISKRAVY and l.porlak = m_l.porlak
	when matched and ((l.SPRACINSERT < @IDDALSSPRAC or l.SPRACINSERT is null) and (l.SPRACUPDATE < @IDDALSSPRAC or l.SPRACUPDATE is null)) then update set
			 l.CHOVATEL		=	m_l.CHOVATEL
			,l.DATOTEL		=	m_l.DATOTEL
			,l.CHOVOTEL		=	m_l.CHOVOTEL
			,l.CHOVLAKT		=	m_l.CHOVLAKT
			,l.PRIEBPOROD	=	m_l.PRIEBPOROD
			,l.POHLAVIE		=	m_l.POHLAVIE
			,l.ZMENA		=	m_l.ZMENA
			,l.DATUKONL		=	m_l.DATUKONL
			,l.DATUKNORL	=	m_l.DATUKNORL
			,l.MEDZIOBD		=	m_l.MEDZIOBD
			,l.HMOTKR		=	m_l.HMOTKR
			,l.LAKTDNI		=	m_l.LAKTDNI
			,l.LAKDNIN		=	m_l.LAKDNIN
			,l.MLIEKCEL		=	m_l.MLIEKCEL
			,l.MLIEKNOR		=	m_l.MLIEKNOR
			,l.TUKCEL		=	m_l.TUKCEL
			,l.TUKNOR		=	m_l.TUKNOR
			,l.BIELKCEL		=	m_l.BIELKCEL
			,l.BIELKNOR		=	m_l.BIELKNOR
			,l.LAKTOZAC		=	m_l.LAKTOZAC
			,l.LAKTOZAN		=	m_l.LAKTOZAN
			,l.INDPER		=	m_l.INDPER
			,l.INDLAK		=	m_l.INDLAK
			,l.CHARUST		=	m_l.CHARUST
			,l.MAXLAK		=	m_l.MAXLAK
			,l.SPOSOBKU		=	m_l.SPOSOBKU
			,l.MLIEKO100	=	m_l.MLIEKO100
			,l.TUK100		=	m_l.TUK100
			,l.BIELK100		=	m_l.BIELK100
			,l.LAKT100		=	m_l.LAKT100
			,l.MLIEKO200	=	m_l.MLIEKO200
			,l.TUK200		=	m_l.TUK200
			,l.BIELK200		=	m_l.BIELK200
			,l.LAKT200		=	m_l.LAKT200
			,l.DATZAPZVK	=	m_l.DATZAPZVK
			,l.DATVYBZVK	=	m_l.DATVYBZVK
			,l.KOD_DOJ		=	m_l.KOD_DOJ
			,l.KOD_MEDZ		=	m_l.KOD_MEDZ;

	delete a from PLIS.dbo.CM_Laktacie a where exists (select 1 from #laktacie_delete as ld where a.CISKRAVY = ld.ciskravy and a.PORLAK = ld.porlak)
	and ((a.SPRACINSERT < @IDDALSSPRAC or a.SPRACINSERT is null) and (a.SPRACUPDATE < @IDDALSSPRAC or a.SPRACUPDATE is null)) --and DATUKONL > '2012-01-01'

	print 'CM_Laktacie'


	-- TELATA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------



	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_stare from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR/*, isnull(POHLAVIE, '') as POHLAVIE*/ into #telata_nove from s113.plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ into #telata_zvysne_ from #telata_stare except select CISTELATA, MATKA, DATNAR/*, POHLAVIE*/ from #telata_nove

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR/*, nullif(POHLAVIE, '') as POHLAVIE*/ into #telata_zvysne from #telata_zvysne_

	merge PLIS.dbo.CM_Telata as t
	using (select * from s113.plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null OR
	   t.cistelata is not null and 	t.cistelata = m_t.cistelata)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR
	when not matched then insert (
			 CISTELATA	
			,CHOVNAR	
			,OTECLIN	
			,OTECREG	
			,OUC		
			,MATKA		
			,HMOTOT		
			,DATNAR		
			,HMOTNAR	
			,PL1		
			,KR1		
			,PL2		
			,KR2		
			,PL3		
			,KR3		
			,PL4		
			,KR4		
			,PL5		
			,TYPPLEM	
			,FARBA		
			,PORLAK		
			,POHLAVIE	
			,ZNAKET		
			,PREUKAZ	
			,DOBANOS	
			,CHOVATEL	
			,PRIZNAKKU	
			,PRIEBPOR	
			,URCTEL		
			,PRICOBTPOR	
			,PRICUHYN	
			,DOVVYR		
			,DATVYR		
			,IDMA		
			,IDOT		
			,DONORKA	
			,IDDONOR)
	VALUES (
			m_t.CISTELATA
			,m_t.CHOVNAR
			,m_t.OTECLIN
			,m_t.OTECREG
			,m_t.OUC
			,m_t.MATKA
			,m_t.HMOTOT
			,m_t.DATNAR
			,m_t.HMOTNAR
			,m_t.PL1
			,m_t.KR1
			,m_t.PL2
			,m_t.KR2
			,m_t.PL3
			,m_t.KR3
			,m_t.PL4
			,m_t.KR4
			,m_t.PL5
			,m_t.TYPPLEM
			,m_t.FARBA
			,m_t.PORLAK
			,m_t.POHLAVIE
			,m_t.ZNAKET
			,m_t.PREUKAZ
			,m_t.DOBANOS
			,m_t.CHOVATEL
			,m_t.PRIZNAKKU
			,m_t.PRIEBPOR
			,m_t.URCTEL
			,m_t.PRICOBTPOR
			,m_t.PRICUHYN
			,m_t.DOVVYR
			,m_t.DATVYR
			,m_t.IDMA
			,m_t.IDOT
			,m_t.DONORKA
			,m_t.IDDONOR);

	print 'CM_Telata 1'

	merge PLIS.dbo.CM_Telata as t
	using (select * from s113.plis.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.cistelata is not null and t1.cistelata = t0.cistelata and t0.cistelata is not null)) as m_t
	on (t.cistelata is not null and t.cistelata = m_t.cistelata and m_t.cistelata is not null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	merge PLIS.dbo.CM_Telata as t
	using (select * from s113.plis.dbo.CM_Telata as t0 where exists 
	(select 1 from #telata_zvysne as t1 where t1.matka = t0.matka and t1.datnar = t0.datnar /*and t1.pohlavie = t0.pohlavie*/ and t1.cistelata is null and t0.cistelata is null)) as m_t
	on (t.matka = m_t.matka and t.datnar = m_t.datnar /*and t.pohlavie = m_t.pohlavie*/ and t.cistelata is null and m_t.cistelata is null)
	when matched and ((t.SPRACINSERT < @IDDALSSPRAC or t.SPRACINSERT is null) and (t.SPRACUPDATE < @IDDALSSPRAC or t.SPRACUPDATE is null)) then update set
		   t.CISTELATA		= m_t.CISTELATA
		  ,t.CHOVNAR		= m_t.CHOVNAR
		  ,t.OTECLIN		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECLIN else m_t.OTECLIN end
		  ,t.OTECREG		= case when t.OUC is not null and m_t.OTECLIN is null then t.OTECREG else m_t.OTECREG end
		  ,t.OUC			= case when m_t.OUC is null then t.OUC else m_t.OUC end
		  ,t.MATKA			= m_t.MATKA
		  ,t.HMOTOT			= m_t.HMOTOT
		  ,t.DATNAR			= m_t.DATNAR
		  ,t.HMOTNAR		= m_t.HMOTNAR
		  ,t.PL1			= m_t.PL1
		  ,t.KR1			= m_t.KR1
		  ,t.PL2			= m_t.PL2
		  ,t.KR2			= m_t.KR2
		  ,t.PL3			= m_t.PL3
		  ,t.KR3			= m_t.KR3
		  ,t.PL4			= m_t.PL4
		  ,t.KR4			= m_t.KR4
		  ,t.PL5			= m_t.PL5
		  ,t.TYPPLEM		= m_t.TYPPLEM
		  ,t.FARBA			= m_t.FARBA
		  ,t.PORLAK			= m_t.PORLAK
		  ,t.POHLAVIE		= m_t.POHLAVIE
		  ,t.ZNAKET			= m_t.ZNAKET
		  ,t.PREUKAZ		= m_t.PREUKAZ
		  ,t.DOBANOS		= m_t.DOBANOS
		  ,t.CHOVATEL		= m_t.CHOVATEL
		  ,t.PRIZNAKKU		= m_t.PRIZNAKKU
		  ,t.PRIEBPOR		= m_t.PRIEBPOR
		  ,t.URCTEL			= m_t.URCTEL
		  ,t.PRICOBTPOR		= m_t.PRICOBTPOR
		  ,t.PRICUHYN		= m_t.PRICUHYN
		  ,t.DOVVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DOVVYR else t.DOVVYR end -- nepreberat dovod vyradenia a datum u mliekovych teliat (z Fandu)
		  ,t.DATVYR			= case when (select 1 from #mlchovy where chovatel = m_t.CHOVATEL) is null then m_t.DATVYR else t.DATVYR end 
		  ,t.IDMA			= m_t.IDMA
		  ,t.IDOT			= case when t.OUC is not null and m_t.OTECLIN is null then t.IDOT else m_t.IDOT end
		  ,t.DONORKA		= m_t.DONORKA
		  ,t.IDDONOR		= m_t.IDDONOR;


	print 'CM_Telata 2'

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_stare_del from plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select isnull(CISTELATA, '') as CISTELATA, isnull(MATKA, '') as MATKA, isnull(DATNAR, '') as DATNAR, isnull(POHLAVIE, '') as POHLAVIE into #telata_nove_del from s113.plis.dbo.CM_Telata where chovatel in (select chov from #temp_vybr_chovy)

	select CISTELATA, MATKA, DATNAR, POHLAVIE into #telata_delete_ from #telata_stare_del except select CISTELATA, MATKA, DATNAR, POHLAVIE from #telata_nove_del

	select nullif(CISTELATA, '') as CISTELATA, nullif(MATKA, '') as MATKA, nullif(DATNAR, '') as DATNAR, nullif(POHLAVIE, '') as POHLAVIE into #telata_delete from #telata_delete_

	delete ad from plis.dbo.CM_Telata ad where ad.cistelata in (select cistelata from #telata_delete) and ad.CISTELATA is not null
	and ((ad.SPRACINSERT < @IDDALSSPRAC or ad.SPRACINSERT is null) and (ad.SPRACUPDATE < @IDDALSSPRAC or ad.SPRACUPDATE is null))

	delete ad1 from plis.dbo.CM_Telata ad1 where exists
	(select 1 from #telata_delete as t2 where t2.matka = ad1.matka and t2.datnar = ad1.datnar and t2.cistelata is null and ad1.cistelata is null)
	and ((ad1.SPRACINSERT < @IDDALSSPRAC or ad1.SPRACINSERT is null) and (ad1.SPRACUPDATE < @IDDALSSPRAC or ad1.SPRACUPDATE is null))

	print 'CM_Telata cele'


	-- VAZENIA ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

	select CISTELATA, datvaz into #vazenia_stare from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove from s113.plis.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_zvysne from #vazenia_stare except select CISTELATA, datvaz from #vazenia_nove

	merge PLIS.dbo.CM_vazenia as v
	using (select * from s113.plis.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy) /*and DATVAZ > '2010-01-01'*/) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC
	when not matched then insert (
			 CISTELATA	
			,DATVAZ		
			,HMOT			
			,RASTPAS		
			,CHOVVAZ		
			,TURNUS		
			,PRIZNAKKU	
			,DNIVAZ		
			,DNIPREPOC	
			,HMOTPREPOC	
			,PRIRPREPOC	
			,PRIR			
			,ZIVPRIR		
			,ZIVPRIRPREPOC)
	VALUES (	
			 m_v.CISTELATA
			,m_v.DATVAZ
			,m_v.HMOT
			,m_v.RASTPAS
			,m_v.CHOVVAZ
			,m_v.TURNUS
			,m_v.PRIZNAKKU
			,m_v.DNIVAZ
			,m_v.DNIPREPOC
			,m_v.HMOTPREPOC
			,m_v.PRIRPREPOC
			,m_v.PRIR
			,m_v.ZIVPRIR
			,m_v.ZIVPRIRPREPOC);


	merge PLIS.dbo.CM_vazenia as v
	using (select * from s113.plis.dbo.CM_Vazenia as v0 where /*DATVAZ > '2010-01-01' and*/ exists
	(select 1 from #vazenia_zvysne as v1 where v0.cistelata = v1.cistelata and v0.DATVAZ = v1.datvaz)) as m_v
	on v.CISTELATA = m_v.CISTELATA and v.datvaz = m_v.datvaz
	when matched and ((v.SPRACINSERT < @IDDALSSPRAC or v.SPRACINSERT is null) and (v.SPRACUPDATE < @IDDALSSPRAC or v.SPRACUPDATE is null)) then update set
			 v.HMOT				= m_v.HMOT
			,v.RASTPAS			= m_v.RASTPAS
			,v.CHOVVAZ			= m_v.CHOVVAZ
			,v.TURNUS			= m_v.TURNUS
			,v.PRIZNAKKU		= m_v.PRIZNAKKU
			,v.DNIVAZ			= m_v.DNIVAZ
			,v.DNIPREPOC		= m_v.DNIPREPOC
			,v.HMOTPREPOC		= m_v.HMOTPREPOC
			,v.PRIRPREPOC		= m_v.PRIRPREPOC
			,v.PRIR				= m_v.PRIR
			,v.ZIVPRIR			= m_v.ZIVPRIR
			,v.ZIVPRIRPREPOC	= m_v.ZIVPRIRPREPOC;


	select CISTELATA, datvaz into #vazenia_stare_del from plis.dbo.CM_Vazenia where CHOVVAZ in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_nove_del from s113.plis.dbo.CM_Vazenia where chovvaz in (select chov from #temp_vybr_chovy)

	select CISTELATA, datvaz into #vazenia_delete from #vazenia_stare_del except select CISTELATA, datvaz from #vazenia_nove_del

	delete av from plis.dbo.CM_Vazenia av where /*DATVAZ > '2010-01-01'and*/ exists
	(select 1 from #vazenia_delete as v1 where av.cistelata = v1.cistelata and av.DATVAZ = v1.datvaz)
	and ((av.SPRACINSERT < @IDDALSSPRAC or av.SPRACINSERT is null) and (av.SPRACUPDATE < @IDDALSSPRAC or av.SPRACUPDATE is null))

	print 'CM_Vazenia'


	---- TABULKY PRE ZOSTAVY  V PLISE -----------------------------------------------------------------------------------------------------------------------------------------------



	--delete from plis.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_MedziObdMesove 
	--select * from s112.migracia.dbo.CP_MedziObdMesove where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_MedziObdMesove'


	--delete from plis.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.Cp_Meso_TelataPoLaktacii 
	--select * from s112.migracia.dbo.Cp_Meso_TelataPoLaktacii where chovatel in (select chov from #temp_vybr_chovy)

	--print 'Cp_Meso_TelataPoLaktacii'


	--delete from plis.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Meso_TelataVahy 
	--select * from s112.migracia.dbo.CP_Meso_TelataVahy where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_Meso_TelataVahy'


	--delete from plis.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_ChovatelMesoPlemena 
	--select * from s112.migracia.dbo.CP_ChovatelMesoPlemena where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_ChovatelMesoPlemena'


	--delete from plis.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Meso_StadaPodlaVeku 
	--select * from s112.migracia.dbo.CP_Meso_StadaPodlaVeku where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_Meso_StadaPodlaVeku'


	--delete from plis.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.cp_Meso_MediobdobieReport 
	--select * from s112.migracia.dbo.cp_Meso_MediobdobieReport where chovatel in (select chov from #temp_vybr_chovy)

	--print 'cp_Meso_MediobdobieReport'


	--delete from plis.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Meso_telata_1B 
	--select * from s112.migracia.dbo.CP_Meso_telata_1B where chov in (select chov from #temp_vybr_chovy)

	--print 'CP_Meso_telata_1B'


	--delete from plis.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Meso_1AReportTelata 
	--select * from s112.migracia.dbo.CP_Meso_1AReportTelata where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_Meso_1AReportTelata'


	--delete from plis.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.cp_meso_telata_3b_1 
	--select * from s112.migracia.dbo.cp_meso_telata_3b_1 where chovatel in (select chov from #temp_vybr_chovy)

	--print 'cp_meso_telata_3b_1'


	--delete from plis.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_KravaPoslednaUzavLaktZaradeny 
	--select * from s112.migracia.dbo.CP_KravaPoslednaUzavLaktZaradeny where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_KravaPoslednaUzavLaktZaradeny'


	--delete from plis.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_KravaPoslednaUzavLakt 
	--select * from s112.migracia.dbo.CP_KravaPoslednaUzavLakt where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_KravaPoslednaUzavLakt'


	--delete from plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_UZITKOVOSTKRAVPOOTCOCH 
	--select * from s112.migracia.dbo.CP_UZITKOVOSTKRAVPOOTCOCH where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_UZITKOVOSTKRAVPOOTCOCH'


	--delete from plis.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_MedziobdZostavaA 
	--select * from s112.migracia.dbo.CP_MedziobdZostavaA where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_MedziobdZostavaA'


	--delete from plis.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_MedziobdZostavaB 
	--select * from s112.migracia.dbo.CP_MedziobdZostavaB where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_MedziobdZostavaB'


	--delete from plis.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Mlieko_NajKrava 
	--select * from s112.migracia.dbo.CP_Mlieko_NajKrava where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_Mlieko_NajKrava'


	--delete from plis.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)
	--insert into plis.dbo.CP_Mlieko_Kravy_21 
	--select * from s112.migracia.dbo.CP_Mlieko_Kravy_21 where chovatel in (select chov from #temp_vybr_chovy)

	--print 'CP_Mlieko_Kravy_21'

	--DECLARE @CHOVATEL VARCHAR(9)
	--DECLARE db_cursor CURSOR FOR  
	--select chov from #temp_vybr_chovy 
	--OPEN db_cursor   
	--FETCH NEXT FROM db_cursor INTO @CHOVATEL   
	--WHILE @@FETCH_STATUS = 0   
	--BEGIN   
	--	EXECUTE [dbo].[C_ZZ_UpozorneniaNaVsetkychChovoch_CHOV] @CHOVATEL
	--	FETCH NEXT FROM db_cursor INTO @CHOVATEL   
	--END   
	--CLOSE db_cursor   
	--DEALLOCATE db_cursor

	--print 'Upozornenia na chovoch'

END

go



-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.03.2012
-- Description:	Zisti ci tela je dvojca/trojca
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_zisti_tela_dvojca]
	@ParMatka [varchar](14),
    @ParDatOtel [date],
    @ParTela [varchar](14),
    @ParPohlavie [varchar](2)
    
AS	
BEGIN
	declare @pocet [int]
	declare @Dvojca [bit]
	set @Dvojca = 0	

	-- zmazanie docasnej tabulky PLIS.dbo.porov_telata ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'porov_telata') drop table PLIS.dbo.porov_telata
	
	select * into PLIS.dbo.porov_telata from PLIS.dbo.CM_Telata where MATKA = @ParMatka and DATNAR = @ParDatOtel
		
	if (select COUNT(*) from PLIS.dbo.porov_telata where CISTELATA = @ParTela) = 0
	begin
		set @pocet = (select COUNT(*) from PLIS.dbo.porov_telata)
		if (@pocet > 0)
			-- dvojcata
			if ((select top 1 POHLAVIE from PLIS.dbo.porov_telata) 
				in (select '11'
					union select '22'
					union select '26'
					union select '31'
					union select '32'))
				and (@pocet = 1) and (@ParPohlavie in (select '11'
													union select '22'
													union select '26'
													union select '31'
													union select '32')) 
				set @Dvojca = 1
			else
				-- trojcata
				if ((select top 1 POHLAVIE from PLIS.dbo.porov_telata) 
					in (select '51'
						union select '52'))
					and (@pocet = 1 or @pocet = 2) and (@ParPohlavie in (select '51'
														union select '52'))
					set @Dvojca = 1	
	end
	
	-- zmazanie docasnej tabulky PLIS.dbo.porov_telata ak esistuje
	IF EXISTS(SELECT TABLE_NAME FROM PLIS.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'porov_telata') drop table PLIS.dbo.porov_telata	

	return(@Dvojca)
END


go

CREATE procedure [dbo].[Rocenka_MPHD_13]
    @rok int
	
as
begin

	select top 5 * 
	from Roc_MPHD_Tab_13 as z
	--where   z.rok = @rok 
	order by rok desc
end
go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_TelataPoLaktacie]
AS
BEGIN
	

	
	declare @medzi int;
	declare @chovatel varchar(9);
	declare @krava as varchar(14);
	declare @datotel as date;
	declare @t as varchar(14);
	declare @t1 as varchar(14);
	declare @t2 as varchar(14);
	declare @t3 as varchar(14);
	declare @otec as varchar(10);
	declare @ouc as varchar(14);
	declare @d as date;
	declare @hmot1 int;
	declare @hmot2 int;
	declare @hmot3 int;
	declare @hmot int;
	declare @t1h120 float;
	declare @t1p120 float;
	declare @t1h210 float;
	declare @t1p210 float;
	declare @t2h120 float;
	declare @t2p120 float;
	declare @t2h210 float;
	declare @t2p210 float;
	declare @t3h120 float;
	declare @t3p120 float;
	declare @t3h210 float;
	declare @t3p210 float;
	declare @t1urctel varchar(1);
	declare @t2urcetel varchar(1);
	declare @t3urcetel varchar(1);
	declare @count as int;


	set @count=0;
	set @hmot=0;
	set @krava='';
	set @t2=NULL;
	set @t1=NULL;
	set @t3=NULL;
	set @otec='';
	set @ouc='';
	set @d=NULL;
	set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	declare @laktpas date;
	declare @lakt int;
	set @lakt=0;

	declare @t1Poch int;
	declare @t2Poch int;
	declare @t3Poch int;
	declare @pocl int;
	set @laktpas=NULL
	declare kravy cursor for
	select distinct k.CISKRAVY
	from plis.dbo.CM_Krava as k
	inner join plis.dbo.CM_Telata as t
	on k.CISKRAVY=t.MATKA
	where k.PRIZNAKKU=2
	
	
order by k.CISKRAVY 


	open kravy ;
	fetch next from kravy into @krava;

	TRUNCATE TABLE plis.dbo.Cp_Meso_TelataPoLaktacii


	while @@FETCH_STATUS=0
	begin

		declare @Tnar as datetime;

		declare datum cursor for
		select distinct DATNAR
		from CM_Telata
		where MATKA=@krava
		
		open datum
		fetch next from datum into @Tnar;
		while @@FETCH_STATUS=0
		begin

		print @Tnar;
		print @krava;
		print N'---------------------------'
		declare @i int;
		set @i=0;

		declare telata cursor for 
		select t.CISTELATA,t.OTECLIN+'-'+right('000'+(convert(varchar,t.OTECREG)),3) as otec,t.OUC,t.DATNAR,t.POHLAVIE,t.HMOTNAR
		from plis.dbo.CM_Krava as k
		inner join plis.dbo.CM_Telata as t
		on k.CISKRAVY=t.MATKA
		where  k.CISKRAVY=@krava
		and  t.DATNAR=@Tnar

		declare @datumNarKrava as datetime;

		set @datumNarKrava= (select DATNAR from plis.dbo.CM_Krava where CISKRAVY=@krava)

		open telata;
		fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot;
		set @i=1;
		while @@FETCH_STATUS=0
		begin

	--	print @krava;
	--	print @Tnar;
	--	print @t
			if(@i=1)
			begin
				set @t1=@t;
				set @t1Poch=@pocl;
				set @hmot1=@hmot;
				set @t1h120=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t1p120=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t1h210=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t1p210=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t1urctel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				set @count=@count+1;
				if(@t is null)
				begin
					set @t1='bez UČ';
					set @t1Poch=@pocl;
					set @hmot1=@hmot;
					set @t2urcetel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=2)
			begin
				set @t2=@t;
				set @t2Poch=@pocl;
				set @hmot2=@hmot;
				set @t2h120=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2p120=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t2h210=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t2p210=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t2urcetel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t2='bez UČ';
					set @t2Poch=@pocl;
					set @hmot2=@hmot;
					set @t2urcetel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			if(@i=3)
			begin
				set @t3=@t;
				set @t3Poch=@pocl;
				set @hmot3=@hmot;
				set @t3h120=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3p120=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=120);
				set @t3h210=(select HMOTPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210)
				set @t3p210=(select PRIRPREPOC from plis.dbo.CM_Vazenia where CISTELATA=@t and DNIPREPOC=210);
				set @t3urcetel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)

				if(@t is null)
				begin
					set @t3='bez UČ';
					set @t3Poch=@pocl;
					set @hmot3=@hmot;
					set @t3urcetel=(select URCTEL from plis.dbo.CM_Telata where CISTELATA=@t)
				end
			end
			set @i=@i+1;
	
			

			


			fetch next from telata into @t,@otec,@ouc,@datotel,@pocl,@hmot;

			set @d=NULL;
		
		end

		close telata;
		deallocate telata;
		
		declare @hmotOtel as int;
		declare @vekRok as int;
		declare @vekDni as int;


		set @vekRok=(select  ROUND(AVG(DATEDIFF(dd, @datumNarKrava, @datotel) / 30.45), 0))
		set @vekDni=(select CONVERT(int, AVG(DATEDIFF(dd, @datumNarKrava, @datotel) % 30.45)) )
		

		set @hmotOtel=(select distinct HMOTOT from plis.dbo.CM_Telata where MATKA=@krava and DATNAR=@Tnar ) 

		set @chovatel=(select CHOVATEL from plis.dbo.CM_Krava where CISKRAVY=@krava)
		set @lakt=(select PORLAK from plis.dbo.CM_Telata where MATKA=@krava and DATNAR=@Tnar ) 

			if(@lakt>1 and @count>1)
			begin
			set @medzi=(DATEDIFF(Day,@laktpas,@datotel));
			set @laktpas=@datotel;
			end
			
			if(@lakt=1)
			begin
			set @medzi=(DATEDIFF(Day,@datumNarKrava,@datotel));
			set @laktpas=@datotel;
			end
			if(@count=1)
			begin
				set @medzi=NULL;
				set @laktpas=@datotel;
			end

		--	print @count;
		--	print @lakt;
		--	print @krava;

		 insert into plis.dbo.Cp_Meso_TelataPoLaktacii values(@chovatel,@krava,@lakt,@medzi,@vekRok,@vekDni,@datotel,@hmotOtel,@t1,@t1Poch,@hmot1,@t1h120,@t1p120,@t1h210,@t1p210,@t1urctel,@t2,@t2Poch,@hmot2,@t2h120,@t2p120,@t2h210,@t2p210,@t2urcetel,@t3,@t3Poch,@hmot3,@t3h120,@t3p120,@t3h210,@t3p210,@t3urcetel,@otec,@ouc); 
						
						
						
						set @t1=null;
						set @t2=null;
						set @t3=null;
						set @t1Poch=null;
						set @t2Poch=null;
						set @t3Poch=null;
						set @hmot1=NULL;
	set @hmot2=NULL;
	set @hmot3=NULL;
	set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	
		 fetch next from datum into @Tnar;				
		end

		 close datum
		 deallocate datum;

		-- print N'-------------------------------------'
		 set @count=0;
		 set @laktpas=NULL;
		 set @medzi=NULL;
	set @vekDni=null;
	set @vekRok=null;
	set @datumNarKrava=null;
	fetch next from kravy into @krava
	end

	close kravy;
	deallocate kravy;
 
	
END
go

-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_UpozorneniaNaVsetkychChovoch_CHOV]
	@ParChov varchar(9)
AS
BEGIN

	/*AK TABULKA NEEXISTUJE, TAK JU VYTVOR, INAK ZMAZ Z NEJ DATA*/
	
	IF NOT EXISTS 
		( 
		SELECT * FROM sys.tables t
		INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
		WHERE s.name = 'dbo' and t.name = 'CP_UpozorneniaNaChove' 
		)
		BEGIN
			CREATE TABLE CP_UpozorneniaNaChove(
			chovatel VARCHAR(9),
			typ_ku varchar(4),
			zoot VARCHAR(30),
			nezhod_rodic_pat_s_plis INT,
			pocet_nezhod_preb_lakt INT,
			chybne_MO INT, -- do 200
			vysoke_MO INT, -- nad 1200
			nesp_plem_sk_kravy INT,
			nesp_plem_sk_telata INT,
			telata_nad_36 INT
			);
		END;
	ELSE 
		BEGIN 
			DELETE FROM CP_UpozorneniaNaChove WHERE chovatel = @ParChov
		END; 

/*VLOZENIE DO TABULKY CP_UpozorneniaNaChove TYP KU, CHOV, HLAVNYCH ZOOTECHNIKOV, JEDNA SA O NEZRUSENY CHOV*/
INSERT INTO CP_UpozorneniaNaChove (typ_ku, chovatel, zoot)

SELECT  
	case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
	when (SPVYKON in ('4','5')) and (PRIZNAK = '01') then 'MP' 
	when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
	else 'X' 
	end,
h.KRAJ + h.OKRES + h.PODNIK + h.CHOV, osoba
FROM
		NM_PracSPU p  LEFT OUTER JOIN
		NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		where PRIZNAK='01' 
		and h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = @ParChov


/**************------------------------------POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS--------------------------------***************/
CREATE TABLE #nezhod_pat_vs_plis
(
chovatel VARCHAR(9),
pocet_nezhodujucich_pat_plis INT
)


-- 25.06.2015 - update: pridana podmienka za poslednych 10 rokov "krvdat > DATEADD(year, -10, GETDATE())"
INSERT INTO #nezhod_pat_vs_plis (chovatel, pocet_nezhodujucich_pat_plis) 
SELECT vs.chovatel, count(*)  
        FROM CM_Paternita_All vs
       	left outer join CM_Krava as k on k.CISKRAVY = vs.USCISLO
        WHERE   
        (((O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL) AND O_suhlasi = 1 AND O_PA != 'XX000000000000')
		OR M_PLIS != 
		CASE WHEN CHARINDEX('/',vs.M_PA) <> 0 THEN 
		'SK' + right('000000000' + replace(vs.M_PA,'/',''),12)
		WHEN LEN(vs.M_PA) < 14 THEN 'SK' + right('000000000000' + vs.M_PA,12)
		ELSE M_PA
		END	AND M_suhlasi = 1
		) AND krvdat > DATEADD(year, -5, GETDATE())
		and k.DOVVYR is null and k.DATVYR is null
		and vs.CHOVATEL = @ParChov
		group by vs.CHOVATEL

/**************-----------------------KONIEC POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS KONIEC--------------------------------***************/



/**/
CREATE TABLE #nezhod_preb_lakt
(
chovatel VARCHAR(9),
pocet_nezhod_preb_lakt INT
)

INSERT INTO #nezhod_preb_lakt (chovatel, pocet_nezhod_preb_lakt) 
/*select tabl2.chovatel, tabl2.pocet from (*/
select chovatel, count(*) as pocet FROM (
select tab.MATKA, tab.dat, c.PORPREBLAK, t.PORLAK, c.CHOVATEL from cm_krava c inner join
(
SELECT  t.MATKA,max(t.DATNAR) as dat
FROM CM_Telata as t 
inner JOIN CM_Krava as k on t.MATKA = k.CISKRAVY inner join NM_HDDETAIL h on 
k.CHOVATEL = (h.KRAJ + h.OKRES + h.PODNIK + h.CHOV)
WHERE k.DOVVYR is null and h.PRIZNAK = '01' and t.DATNAR is not null and k.CHOVATEL = @ParChov
group by t.MATKA) as tab 
on c.CISKRAVY = tab.MATKA
inner join CM_Telata t on t.MATKA = tab.MATKA and t.MATKA = c.CISKRAVY and tab.dat = t.DATNAR
where t.PORLAK > c.PORPREBLAK or t.PORLAK is null or c.PORPREBLAK is null )  
as tab
group by chovatel
/*) as tabl2 right join CP_UpozorneniaNaChove u on tabl2.CHOVATEL = u.chovatel*/




/**/
	
	
	
	
CREATE TABLE #tab_chybne_MO
(
chovatel VARCHAR(9),
pocet_chybne_MO INT
)

INSERT INTO #tab_chybne_MO (chovatel, pocet_chybne_MO) 	
select cp.chovatel, count(*) as pocet_chybnych_MO from Cp_Meso_TelataPoLaktacii 
cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd <= 200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and cp.chovatel = @ParChov
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_chybnych_MO from
(select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
on l.CISKRAVY = k.CISKRAVY 
where k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and l.CHOVATEL = @ParChov
union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and n.CHOVATEL = @ParChov
) as tabulka 
group by tabulka.CHOVATEL 



/**/	
	
	
	
CREATE TABLE #tab_vysoke_MO
(
chovatel VARCHAR(9),
pocet_vysoke_MO INT
)

INSERT INTO #tab_vysoke_MO (chovatel, pocet_vysoke_MO) 	
select cp.chovatel, count(*) as pocet_vysokych_MO from 

-- len posledne medziobdobie --20160621
--Cp_Meso_TelataPoLaktacii 
(select s.ciskrava, p.Medziobd, p.Chovatel from
  (select Ciskrava, max(PorLakt) as porlak FROM Cp_Meso_TelataPoLaktacii
  group by Ciskrava) as s
  left join Cp_Meso_TelataPoLaktacii as p
  on p.ciskrava = s.ciskrava and p.porlakt = s.porlak)

cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd >= 1200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and cp.Chovatel = @ParChov
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_vysokych_MO from
(
-- len posledne medziobdobie --20160602
--select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
--on l.CISKRAVY = k.CISKRAVY 
--where k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and l.CHOVATEL = @ParChov
--union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365) and n.CHOVATEL = @ParChov
) as tabulka 
group by tabulka.CHOVATEL 


/*
...
DALSIE DOPLNENIA
...
*/


	
declare @k_chovatel varchar(14);
declare @v_pocet_nezhodnych_pat_plis int;
declare @v_pocet_nezhod_preb_lakt int;
declare @v_pocet_chybne_MO int;
declare @v_pocet_vysoke_MO int;

declare kurzor_CP_UpozorneniaNaChove cursor for select chovatel from CP_UpozorneniaNaChove where chovatel = @ParChov

	OPEN kurzor_CP_UpozorneniaNaChove   
	FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove INTO  @k_chovatel
		WHILE @@FETCH_STATUS = 0   
		BEGIN  
			SELECT @v_pocet_nezhodnych_pat_plis = pocet_nezhodujucich_pat_plis FROM #nezhod_pat_vs_plis WHERE chovatel = @k_chovatel; 					
			UPDATE CP_UpozorneniaNaChove SET nezhod_rodic_pat_s_plis=@v_pocet_nezhodnych_pat_plis WHERE chovatel = @k_chovatel;				  
			
			SELECT @v_pocet_nezhod_preb_lakt = pocet_nezhod_preb_lakt FROM #nezhod_preb_lakt WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_nezhod_preb_lakt as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET pocet_nezhod_preb_lakt=@v_pocet_nezhod_preb_lakt WHERE chovatel = @k_chovatel;
			
			SELECT @v_pocet_chybne_MO = pocet_chybne_MO FROM #tab_chybne_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_chybne_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET chybne_MO=@v_pocet_chybne_MO WHERE chovatel = @k_chovatel;		
			
			SELECT @v_pocet_vysoke_MO = pocet_vysoke_MO FROM #tab_vysoke_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_vysoke_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET vysoke_MO=@v_pocet_vysoke_MO WHERE chovatel = @k_chovatel;
			
			set @v_pocet_nezhodnych_pat_plis = null;
			set @v_pocet_nezhod_preb_lakt = null;
			set @v_pocet_chybne_MO = null;
			set @v_pocet_vysoke_MO = null;
			
		FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove INTO @k_chovatel
		END	
	CLOSE kurzor_CP_UpozorneniaNaChove   
	DEALLOCATE kurzor_CP_UpozorneniaNaChove
--END



/*

exec [C_ZZ_UpozorneniaNaVsetkychChovoch]

*/


/*
DOPLNENE 04.06.2015

*/

-- trvanie
-- 112: cca 20 min
--  09: cca 7 min
/* Vypocitanie Nespravnych Plemennych Skladieb*/
exec [C_aktual_VypocNespravnaPlemennaSkladba_CHOV] @ParChov

/*  */

update CP_UpozorneniaNaChove
set nesp_plem_sk_kravy = chybne_Kravy,
	nesp_plem_sk_telata = chybne_Telata
from(
	select chovatel, count (chybne_Kravy) as chybne_Kravy,  count (chybne_Telata) as chybne_Telata  from
	(
	select v.*, CHOVATEL, kategoria as chybne_Kravy, null as chybne_Telata
	FROM [CP_VypocNespravnaPlemennaSkladba] v
		left outer join CM_Krava k on (k.CISKRAVY = v.uscislo)
	where kategoria = 1 and CHOVATEL = @ParChov
	UNION 
	select v.*, CHOVATEL, null as chybne_Kravy, kategoria as chybne_Telata
	FROM [CP_VypocNespravnaPlemennaSkladba] v
		left outer join CM_Telata t on (t.CISTELATA = v.uscislo)
	where kategoria = 2 and CHOVATEL = @ParChov
	) s
	group by CHOVATEL
	) as t
where CP_UpozorneniaNaChove.chovatel = t.CHOVATEL  


/*vsetky nuly nastav na NULL*/

update CP_UpozorneniaNaChove
set nesp_plem_sk_kravy = null
where nesp_plem_sk_kravy = 0

update CP_UpozorneniaNaChove
set	nesp_plem_sk_telata = null
where nesp_plem_sk_telata = 0



--select * from CP_UpozorneniaNaChove

--ALTER TABLE CP_UpozorneniaNaChove
--ADD telata_nad_36 INT


/* 
DOPLNENE 13.07.2015 - Telata nad 36 mes.
*/

--update CP_UpozorneniaNaChove
--set telata_nad_36 = null

update CP_UpozorneniaNaChove
set telata_nad_36 = pocet
from (
	SELECT count(*) as pocet, CHOVATEL
		from cm_telata 
		left outer join NM_HDDETAIL d on (d.kraj + d.okres + d.podnik + d.chov = chovatel)
		where DOVVYR IS NULL 
		--AND CISTELATA is not null 
			and priznakKU = 1
			and (datediff(day, datnar, GETDATE())/30.42 > 36) 
			-- pridane kriterium vyberu teliat -- 20160803
			and (CISTELATA NOT IN (SELECT CISKRAVY FROM CM_Naplak)) and DOVVYR is  null 
			--	
			AND d.SPVYKON NOT in ('0', '4', '5') and (d.PRIZNAK = '01') and d.TECHUSMD = '00' and CHOVATEL = @ParChov
			group by chovatel
			--order by chovatel
	) as t
where CP_UpozorneniaNaChove.chovatel = t.CHOVATEL




--/*
-- *  aktualizacia bykov v tabulke CP_Byci_Insem	- PREHODIT INAM !!!!!!!!!!!!!!!!!!!!
-- */

--insert into CP_Byci_Insem
--select lin, reg, 'F' as Aktivny, NULL as Link from CM_Byci b 
--where reg is not null and lin is not null and uscislo not in
--(select uscislo from CP_Byci_Insem i where i.reg = b.reg and i.lin = b.lin)
--and BB_INSEM_COMPANY in (select kod from NM_InsemSpol)


END

go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_stupenKU_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

---- prepocet pre chov
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
--				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--    OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;                    
            
--			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--			EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END



--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor


--SET @counter = 0;

---- prepocet pre podnik
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--   OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;
                    
            
--                            PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--                             EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END
--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor

	   --SET @counter = 0;

-- prepocet pre okres
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region


END

go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16.10.2014>
-- Description:	<Description,,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_KozPlem] 
(	

	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.plem,
REPLACE (SUBSTRING(b.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(b.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(b.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(b.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(1) AS pocet
FROM dbo.GM_KOZA b  LEFT OUTER JOIN dbo.SC_PodKrvi k
 on SUBSTRING(b.plem,9,2) = k.CISKOD
WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL) AND (b.KrOkr+b.Podnik+b.stado = @chovatel)
GROUP BY b.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go

CREATE PROCEDURE [dbo].[Roc_MLHD_19_prepocet] 
@datumOd date,
@datumDo date=''
AS

BEGIN
delete from Roc_MLHD_Tab_19A where rok = DATEPART(year, @datumOd)

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT oznacenie from CR_LaktacneZostavy_Opr where DatumOd = @datumOd and DatumDo = @datumDo
															and len(Oznacenie)= 9 
															and substring(Filter,11,3) = 'ChZ'

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC Roc_MLHD_19 @chov, @datumOd, @datumDo
												


           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

	   PRINT 'Prepocitavam Slovensko'
		EXEC Roc_MLHD_19_SR @datumOd, @datumDo


CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

delete from Roc_MLHD_Tab_19A where rok = datepart(year,@datumOd) and Plem_typ is null

end
go


-- ========================================================
-- Author:		Roman Rafaj
-- Create date: 22.3.2016
--				20.5.2016 - zmena na vstupy
--				29.6.2016 - kontrola vazeni, debug informacie					
-- Description:	Evidencia a kontrola rastu mladeho dobytka za mesiac
--				(v pripade ak nie je vazenie v chove v aktualnom mesiaci,
--				hlada posledne vazenie zvierata)
--				
--				#1902 
--				update0206.sql
--				28.8.2017 -pridanie uscisla a mena otca telata, vypocet planovaneho priputenia, veku pri pripusteni 
-- ========================================================

CREATE PROCEDURE [dbo].[CR_EKRMD_mes]
@chov VARCHAR(14),
@rok INT,
@mesiac INT

AS

BEGIN

			IF OBJECT_ID('tempdb..#abc1') IS NOT NULL 
			BEGIN
            	DROP TABLE #abc1
				PRINT 'vymazal som #abc1....'
			END

DECLARE @posledny_datum DATE, @rok_spracovania DATE, @mesiac_spracovania DATE, @cistelata varchar(14),@idr bigint

---- zistenie posledneho vazenia v chove pre vyber roku a mesiaca
--SELECT TOP 1 @posledny_datum =  DATVAZ FROM dbo.CM_Vazenia WHERE CHOVVAZ = @chov ORDER BY DATVAZ DESC

--PRINT 'Datum posledneho vazenia: ' + CONVERT(VARCHAR, @posledny_datum)

--SET @rok = DATEPART(yyyy,@posledny_datum)
--SET @mesiac = DATEPART(mm,@posledny_datum)

					DECLARE @pocetvymaz int
					SELECT @pocetvymaz = COUNT(*) FROM dbo.CR_EKRMD WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
					DELETE FROM dbo.CR_EKRMD WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac
					PRINT 'Vymazal som stare zaznamy pred vlozenim novych: ' + CONVERT(VARCHAR, @pocetvymaz)
 
 --SELECT @IDR = IDR
 --FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 --WHERE @CHOV = chov and @rok=rok and @mesiac=MESIAC 

 SELECT DISTINCT IDR,CHOV,MESIAC,ROK INTO #idrtable
FROM   VstupyPLIS.dbo.CP_SPRAC_CHOVY 
 WHERE CHOV = @chov and @rok=rok and @mesiac=MESIAC

SELECT * FROM #idrtable
SELECT IDR INTO #temp FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @chov AND ROK = @rok AND MESIAC = @mesiac

	DECLARE @counter int
	SET @counter = 0;


	DECLARE @pocet_vazeni INT
	SELECT @pocet_vazeni = COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR)
								WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac
	PRINT 'Pocet tieliat na vazeni: ' + CONVERT(VARCHAR, @pocet_vazeni)




	IF ( SELECT COUNT(*) FROM dbo.CM_Vazenia v LEFT JOIN VstupyPLIS.dbo.CP_SPRAC_CHOVY sp ON (v.SPRACINSERT = sp.IDR) WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac) >= 1

		BEGIN
			DECLARE vazenie_cursor CURSOR LOCAL
				FOR
					SELECT v.CISTELATA FROM dbo.CM_Vazenia v
						LEFT JOIN #idrtable sp ON (v.SPRACINSERT = sp.IDR)
						WHERE sp.CHOV = @chov AND sp.rok = @rok AND sp.MESIAC = @mesiac

				OPEN vazenie_cursor
				FETCH NEXT FROM vazenie_cursor INTO @cistelata
				WHILE @@FETCH_STATUS = 0
					BEGIN 
						SET @counter = @counter + 1
							IF OBJECT_ID('tempdb..#vazenie') IS NULL
								BEGIN	
									SELECT TOP 6 ID = ROW_NUMBER() OVER (ORDER BY v.CISTELATA), v.CISTELATA, DATVAZ, t.DATNAR, HMOT, RASTPAS INTO #vazenie
									FROM  dbo.CM_Vazenia v
									LEFT JOIN dbo.CM_Telata t ON (t.CISTELATA = v.CISTELATA)
									WHERE v.CISTELATA = @cistelata ORDER BY DATVAZ DESC
		END

		-- debug info
		DECLARE @vazenia_count INT
		SELECT @vazenia_count = COUNT(*) FROM #vazenie
		PRINT 'POcet zaznamov v temp vazenia:' + CONVERT(VARCHAR, @vazenia_count)

	
		IF OBJECT_ID('tempdb..#abc1') IS NULL		
		BEGIN			
				PRINT 'Vytvorenie temp #abc1....'
					CREATE TABLE #abc1
					(
					cistelata VARCHAR(14),
					chov VARCHAR(9),
					plemeno VARCHAR(3),
					datnar DATE,
					pohlavie VARCHAR(2),
					PK VARCHAR(3),
					ET BIT,
					farba VARCHAR(2),
					matka VARCHAR(14),
					otecLIN VARCHAR(3),
					otecREG INT,
					otecUscislo VARCHAR(14),
					otecMeno VARCHAR(30),
					datvaz1 DATE,mesiac1 INT,den1 INT,hmot1 INT,rp1 VARCHAR,
					datvaz2 DATE,mesiac2 INT,den2 INT,hmot2 INT,rp2 VARCHAR,
					datvaz3 DATE,mesiac3 INT,den3 INT,hmot3 INT,rp3 VARCHAR,
					datvaz4 DATE,mesiac4 INT,den4 INT,hmot4 INT,rp4 VARCHAR,
					datvaz5 DATE,mesiac5 INT,den5 INT,hmot5 INT,rp5 VARCHAR,
					datvaz6 DATE,mesiac6 INT,den6 INT,hmot6 INT,rp6 VARCHAR,
					zprir INT,
					dp INT,
					planprip DATE,
					DatPlanPripust varchar(10), 
					vekPripus varchar(6),
					/*vekm INT,
					vekd INT,*/ 
					byk VARCHAR(7),
					datinsem DATE,
					ocotel DATE,
					ocprip DATE,
					porlakmax INT,
					pocvsetlak INT,
					pocnorlak INT,
					mliekopr INT,
					tukper DECIMAL(7,2),
					bielkper DECIMAL(7,2),
					mliekomax INT,
					tukmax  DECIMAL(7,2),
					bielmax DECIMAL(7,2),
					rok int,
					mesiac INT,
					generovane DATETIME,
					plemskladba varchar(70)
					)
				END

				INSERT INTO #abc1 (cistelata, chov, rok, mesiac, generovane) VALUES (@cistelata, @chov, @rok, @mesiac, GETDATE())

			-- vlozenie z CM_Telata
			UPDATE #abc1 SET
			chov = @chov, plemeno = a.TYPPLEM, datnar = a.datnar, pohlavie = a.pohlavie, PK = a.PK, ET = a.ZNAKET, farba = a.farba, matka = a.matka, otecLIN = a.otecLIN,
			 otecREG =  a.otecREG
			FROM	(
					SELECT t.CHOVATEL, t.TYPPLEM, t.datnar, t.pohlavie, k.PK , t.ZNAKET, t.farba, t.matka, t.otecLIN, t.otecREG  FROM cm_telata t
							LEFT JOIN cm_krava k ON (k.CISKRAVY = t.MATKA)
							WHERE CISTELATA = @cistelata
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			zprir = a.zp FROM (SELECT TOP 1 convert(int,ZIVPRIR)zp FROM cm_vazenia WHERE CISTELATA = @cistelata ORDER BY DATVAZ DESC )a
			WHERE cistelata = @cistelata

			-- denny prirastok
			SELECT TOP 2 convert(int, HMOT)hmot, DATVAZ INTO #2v FROM cm_vazenia as v
			--left outer join CM_Telata as t on t.CISTELATA = v.CISTELATA  
					WHERE v.CISTELATA = @cistelata --and t.CISTELATA = @cistelata
					 ORDER BY DATVAZ DESC

			DECLARE @d1 date=null, @d2 DATE=null, @h1 INT=null, @h2 INT=null, @dp INT=null, @datPr date =null, @datnar date =null, @datPlanPripust varchar(10)=null

			select @datnar = t.datnar FROM dbo.CM_Telata t where t.cistelata = @cistelata
			SELECT TOP 1 @h1 = hmot, @d1 = DATVAZ FROM #2v ORDER BY DATVAZ  DESC 
			SELECT TOP 1 @h2 = hmot, @d2 = DATVAZ FROM #2v ORDER BY DATVAZ ASC 
			
			--SET @dp = ROUND((@h1-@h2) * 1000 / DATEDIFF(day,@d2,@d1),0) -- nahradene
			SET @dp =  COALESCE(ROUND((@h1-@h2) * 1000 / NULLIF(DATEDIFF(day,@d2,@d1),0),0), 0)
			
			set @datPr = case when @h1 >200 then (case when  @h1>360 then /*@datPr =*/ DATEADD(m, 15, @datnar)
								else /*@datPr = */ DATEADD(d, ((360- @h2 )*1000/NULLIF( @dp,0)),@d1) 
								end)
							else case when @datPr < DATEADD(m, 15, @datnar) then /*@datPr is*/ '' end end 
			set @datPlanPripust = convert(varchar(3),DATEPART(month,@datPr)) +' / '+ right(convert(varchar(5),DATEPART(yy,@datPr)),2)
			
			
			UPDATE #abc1 SET DP = @DP, planprip = @datPr, datPlanPripust = @datPlanPripust  WHERE cistelata = @cistelata AND chov = @chov AND mesiac = @mesiac 
			
						
			DROP TABLE #2v

			--- inseminacie
			DECLARE @datinsem DATE = null, @porins INT = null, @byk VARCHAR(7) = null, @vysetrenie INT = null, @idaot DATE = null, @ocotel DATE = null, @ocprip DATE = null,  @datkon DATE = null, @vekPripus varchar(6) = null
			
			SELECT TOP 1 
			@datinsem = i.IDAIN,
			@porins = i.IPOIN,
			--@byk =  i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3),
			@byk = case when i.IBLIN = 'NEZ' then 'NEZ'
			else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end,
			
			@vysetrenie = i.IVYSE,
			@idaot = i.IDAOT, 
            @ocotel = CASE WHEN i.IVYSE IN ('7', '8', '9') THEN DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			@datkon = (SELECT TOP 1 DATVAZ FROM #vazenie WHERE CISTELATA = @cistelata ORDER BY  DATVAZ DESC),
			@ocprip = CASE WHEN DATEDIFF(MONTH, t.DATNAR, @datkon ) >= 15 THEN  DATEADD(dd, 285, i.IDAIN) ELSE NULL END,
			-- doplnit datum pripustenia (vypocitanie)
			@vekPripus = convert(varchar(3),convert(int,DATEDIFF(day,t.DATNAR,i.IDAIN)/30.42)) +' / '+ convert(varchar(2),convert(int,CONVERT(float,datediff(day,t.DATNAR,i.IDAIN)%30.42))) 
			 
			FROM dbo.CM_Insvyk AS i INNER JOIN (SELECT IPLCA, MAX(IDAIN) AS IDAIN FROM dbo.CM_Insvyk AS i GROUP BY IPLCA)i2 ON i.IPLCA = i2.IPLCA AND i.IDAIN = i2.IDAIN
									INNER JOIN dbo.CM_Telata t ON (t.CISTELATA = i.IPLCA)
									
			WHERE i.IPLCA = @cistelata --and t.CISTELATA =  @cistelata 
			
			UPDATE #abc1 SET
			datinsem =@datinsem, byk = @byk, ocotel = @ocotel, @ocprip = @ocprip, vekPripus = @vekPripus
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac

			-- laktacie
			DECLARE @porlakmax INT, @pocvsetlak INT , @pocnorlak INT, @mliekopr INT, @tukper DECIMAL(7,2), @bielkper DECIMAL(7,2), @tukmax DECIMAL(7,2), @bielmax DECIMAL(7,2), @mliekomax INT
            DECLARE @plemskladba VARCHAR(70)

			SELECT
			@porlakmax = k.PORLAKMAX,
			@pocvsetlak = k.POCVSETLAK,
			@pocnorlak = k.POCNORLAK,
			@mliekopr = k.MLIEKOPR,
			@tukper = k.TUKPRPER,
			@bielkper = k.BIELPRPER,
			@mliekomax = CONVERT(INT,k.MLIEKOMAX),
			--@tukmax = ((k.TUKMAX/k.MLIEKOMAX)*100),
			@tukmax = (k.TUKMAX/NULLIF(k.MLIEKOMAX,0)*100),
			--@bielmax = ((k.BIELMAX/k.MLIEKOMAX)*100)
			@bielmax = (k.BIELMAX/NULLIF(k.MLIEKOMAX,0)*100),
			@plemskladba = t.PL1 + '-' + CONVERT(VARCHAR, ISNULL(t.KR1, 0)) + ' ' + ISNULL(t.PL2
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR2,
                                                              0)) + ' '
                                                              + ISNULL(t.PL3
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR3,
                                                              0)) + ' '
                                                              + ISNULL(t.PL4
                                                              + '-'
                                                              + CONVERT(VARCHAR, ISNULL(t.KR4,
                                                              0)) + ' '
                                                              + ISNULL(t.PL5,
                                                              ''), ''), ''),
                                                              '')


			FROM dbo.CM_Telata t LEFT JOIN dbo.CM_Krava k ON (t.MATKA = k.CISKRAVY) WHERE t.CISTELATA = @cistelata

			UPDATE #abc1 SET
			porlakmax = @porlakmax, pocvsetlak = @pocvsetlak, pocnorlak = @pocnorlak, mliekopr = @mliekopr,
			tukper = @tukper, bielkper = @bielkper, mliekomax = @mliekomax, tukmax = @tukmax, bielmax = @bielmax,
			plemskladba = @plemskladba
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac

			--otec
			declare @O_uscislo varchar(14)=null, @O_meno varchar(30)=null
			select
			@O_uscislo = t.ouc,
			@O_meno =  b.meno
			FROM dbo.CM_Telata t LEFT JOIN  CM_Byci b ON (t.OUC = b.uscislo) WHERE t.CISTELATA = @cistelata
			
			UPDATE #abc1 SET  
			otecUscislo = @O_uscislo, otecMeno = @O_meno
			WHERE cistelata = @cistelata AND chov = @chov AND rok = @rok AND mesiac = @mesiac


			-- pocty vazeni
			UPDATE #abc1 SET
			DATVAZ1 = a.DATVAZ1, MESIAC1 = a.MESIAC1, DEN1 = a.DEN1, HMOT1 = a.HMOT1, RP1 = a.RP1
			FROM	(
			SELECT DATVAZ DATVAZ1, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC1, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN1, CONVERT(INT,HMOT)HMOT1, RASTPAS RP1 FROM #vazenie WHERE ID = 6
					)a
			WHERE cistelata = @cistelata
		
			UPDATE #abc1 SET
			DATVAZ2 = a.DATVAZ2, MESIAC2 = a.MESIAC2, DEN2 = a.DEN2, HMOT2 = a.HMOT2, RP2 = a.RP2
			FROM	(
			SELECT DATVAZ DATVAZ2,  convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42)AS MESIAC2, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN2, CONVERT(INT,HMOT)HMOT2, RASTPAS RP2 FROM #vazenie WHERE ID = 5
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ3 = a.DATVAZ3, MESIAC3 = a.MESIAC3, DEN3 = a.DEN3, HMOT3 = a.HMOT3, RP3 = a.RP3
			FROM	(
			SELECT DATVAZ DATVAZ3, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS MESIAC3, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN3, CONVERT(INT,HMOT)HMOT3, RASTPAS RP3 FROM #vazenie WHERE ID = 4
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ4 = a.DATVAZ4, MESIAC4 = a.MESIAC4, DEN4 = a.DEN4, HMOT4 = a.HMOT4, RP4 = a.RP4
			FROM	(
			SELECT DATVAZ DATVAZ4, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC4, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN4, CONVERT(INT,HMOT)HMOT4, RASTPAS RP4 FROM #vazenie WHERE ID = 3
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ5 = a.DATVAZ5, MESIAC5 = a.MESIAC5, DEN5 = a.DEN5, HMOT5 = a.HMOT5, RP5 = a.RP5
			FROM	(
			SELECT DATVAZ DATVAZ5, convert(int,DATEDIFF(DAY, DATNAR, DATVAZ)/30.42) AS  MESIAC5, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN5, CONVERT(INT,HMOT)HMOT5, RASTPAS RP5 FROM #vazenie WHERE ID = 2
					)a
			WHERE cistelata = @cistelata

			UPDATE #abc1 SET
			DATVAZ6 = a.DATVAZ6, MESIAC6 = a.MESIAC6, DEN6 = a.DEN6, HMOT6 = a.HMOT6, RP6 = a.RP6
			FROM	(
			SELECT DATVAZ DATVAZ6,  DATEDIFF(MONTH, DATNAR, DATVAZ)  AS MESIAC6, (CONVERT(VARCHAR,(datediff(DAY,DATNAR,DATVAZ)% 30)))DEN6, CONVERT(INT,HMOT)HMOT6, RASTPAS RP6 FROM #vazenie WHERE ID = 1
					)a
			WHERE cistelata = @cistelata

			DROP TABLE #vazenie
			FETCH NEXT FROM vazenie_cursor INTO @cistelata

			END

			CLOSE vazenie_cursor
			DEALLOCATE vazenie_cursor

			

INSERT INTO [dbo].[CR_EKRMD]
		(
		cistelata,
		chov,
		plemeno,
		datnar,
		pohlavie,
		PK,
		ET,
		farba,
		matka,
		otecLIN,
		otecREG,
		otecUscislo,
		otecMeno,
		datvaz1,mesiac1,den1,hmot1,rp1,
		datvaz2,mesiac2,den2,hmot2,rp2,
		datvaz3,mesiac3,den3,hmot3,rp3,
		datvaz4,mesiac4,den4,hmot4,rp4,
		datvaz5,mesiac5,den5,hmot5,rp5,
		datvaz6,mesiac6,den6,hmot6,rp6,
		zprir,
		dp,
		planprip,
		DatPlanPripust, 
		vekPripus,
		byk,
		datinsem,
		ocotel,
		ocprip,
		porlakmax,
		pocvsetlak,
		pocnorlak,
		mliekopr,
		tukper,
		bielkper,
		mliekomax,
		tukmax,
		bielmax,
		rok,
		mesiac,
		generovane,
		plemskladba
		)
		SELECT distinct cistelata,
		chov,
		plemeno,
		datnar,
		pohlavie,
		PK,
		ET,
		farba,
		matka,
		otecLIN,
		otecREG,
		otecUscislo,
		otecMeno,
		datvaz1,mesiac1,den1,hmot1,rp1,
		datvaz2,mesiac2,den2,hmot2,rp2,
		datvaz3,mesiac3,den3,hmot3,rp3,
		datvaz4,mesiac4,den4,hmot4,rp4,
		datvaz5,mesiac5,den5,hmot5,rp5,
		datvaz6,mesiac6,den6,hmot6,rp6,
		zprir,
		dp,
		planprip,
		DatPlanPripust, 
		vekPripus,
		byk,
		datinsem,
		ocotel,
		ocprip,
		porlakmax,
		pocvsetlak,
		pocnorlak,
		mliekopr,
		tukper,
		bielkper,
		mliekomax,
		tukmax,
		bielmax,
		rok,
		mesiac,
		cast (generovane as date),
		plemskladba FROM #abc1 order by cistelata

		--DROP TABLE #abc1

END

ELSE
	BEGIN
	PRINT 'Proceduru som vynechal, ziadne tela vo vazeni.....'
	END

END


go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 18.05.2016
--	Update:		03.05.2016 - FIX: Pri paternite je opacne uvedene pohlavie: 1 <-> 2
-- Description:	Vytvorenie tabulky paternity z View pre rychlejsie nacitanie
-- =============================================
CREATE PROCEDURE [dbo].[S_napln_SM_Paternita]
AS
BEGIN
	truncate table SM_Paternita

	insert into SM_Paternita --(DnaID, LUC, CEHZ, pohlavie, DatNar, plemj, chov, nazLin, OtLUC)
	SELECT  
	substring(DNAID3, 2, 7),
	REPLACE(LUC, ' ', '.') AS LUC, 
	--(select top 1 jedCis from dbo.SP_Ovecky o where o.cehz = ZVSTAT + JCCEHZ and o.chov = (KrOkr+ Podnik+ Stado) and o.luc = z.Luc),
	ZvStat + REPLACE(STR(CONVERT (float, JCCEHZ), 12), ' ', '0') AS CEHZ, 
	case when pohlavie = 2 then 1 else 2 end as pohlavie, 
	DatNar,
	 plemj, KrOkr+ Podnik+ Stado as chov, nazlin,REPLACE(OtLU, ' ', '.') AS OtLU, 
	otZvStat + REPLACE(STR(CONVERT (float, otJCCEHZ), 12), ' ', '0') AS OtCEHZ, REPLACE(MaLU, ' ', '.') AS MaLU, 
	maZvStat + REPLACE(STR(CONVERT (float, MaJCCEHZ), 12), ' ', '0') AS MaCEHZ, 
	--CONVERT(datetime, DatumPrijmu), 
	DatumPrijmu,
	vysledokID, vysledoktestu, 
	--CONVERT(datetime, DatAnal), 
	DatAnal,
	CASE WHEN inyot = 1 THEN replace(OtLUCj , ' ' , '.') ELSE NULL END AS otLucj, 
	CASE WHEN inyot = 1 THEN OtZvStatj + REPLACE(STR(CONVERT (float , otJCCEHZj) , 12) , ' ' , '0') 
	ELSE NULL END AS OtCEHZj, CASE WHEN inama = 1 THEN replace(MaLUCj , ' ' , '.') 
	ELSE NULL END AS MaLucj, 
	CASE WHEN inama = 1 THEN MaZvStatj + REPLACE(STR(CONVERT (float , MaJCCEHZj) , 12) , ' ' , '0') 
	ELSE NULL END AS MaCEHZj, pohlj, o_suhlasi, m_suhlasi, inyOt, inaMa

	FROM View_SP_OvcePat3 z


	--select * from SM_Paternita

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.9.2011
-- Description:	Zapise (insert/update) do PLIS.dbo.CM_Laktacie z CM_Naplak 
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Otelenia_laktacie]
	@ParCisloKravy [varchar](14),
	@ParChov [varchar](9),
	@ParDatOtel date,
	@IDParChov bigint = NULL
AS
BEGIN
	declare
	@CISKRAVY [varchar](14),
	@CHOVATEL [varchar](9),
	@PORLAK [varchar](2),
	@DATOTEL [date],
	@CHOVOTEL [varchar](9),
	@CHOVLAKT [varchar](9),
	@PRIEBPOROD [varchar](1),
	@POHLAVIE [varchar](2),
	@ZMENA [varchar](2),
	@DATUKONL [date],
	@DATUKNORL [date],
	@MEDZIOBD [decimal](6,2),
	@HMOTKR [decimal](6,2),
	@LAKTDNI [decimal](6,2),
	@LAKDNIN [decimal](6,2),
	@MLIEKCEL [decimal](7,2),
	@MLIEKNOR [decimal](7,2),
	@TUKCEL [decimal](6,2),
	@TUKNOR [decimal](6,2),
	@BIELKCEL [decimal](6,2),
	@BIELKNOR [decimal](6,2),
	@LAKTOZAC [decimal](6,2),
	@LAKTOZAN [decimal](6,2),
	@INDPER [decimal](5,2),
	@INDLAK [decimal](6,2),
	@CHARUST [varchar](1),
	@MAXLAK [varchar](1),
	--@ZNAK [varchar](1),
	--@BEZT [real],
	@MLIEKO100 [decimal](7,2),
	@TUK100 [decimal](6,2),
	@BIELK100 [decimal](6,2),
	@LAKT100 [decimal](6,2),
	@MLIEKO200 [decimal](7,2),
	@TUK200 [decimal](6,2),
	@BIELK200 [decimal](6,2),
	@LAKT200 [decimal](6,2),
	@SPOSOBKU [varchar](1)
	
	-- poradie laktacie z CM_Naplak
	SELECT @CHOVATEL	= CHOVATEL,	
		   @PORLAK		= PORLAK,	
		   @DATOTEL		= DATOTEL,	
		   @CHOVOTEL	= CHOVOTEL,	
		   @CHOVLAKT	= CHOVLAKT,	
		   @PRIEBPOROD	= PRIEBPOROD,
		   @POHLAVIE	= POHLAVIE,	
		   @ZMENA		= ZMENA,	
		   @DATUKONL	= DATUKONL,	
		   @DATUKNORL	= DATUKNORL,
		   @MEDZIOBD	= MEDZIOBD,	
		   @HMOTKR		= HMOTKR,	
		   @LAKTDNI		= LAKTDNI,	
		   @LAKDNIN		= LAKDNIN,	
		   @MLIEKCEL	= MLIEKCEL,	
		   @MLIEKNOR	= MLIEKNOR,	
		   @TUKCEL		= TUKCEL,	
		   @TUKNOR		= TUKNOR,	
		   @BIELKCEL	= BIELKCEL,	
		   @BIELKNOR	= BIELKNOR,	
		   @LAKTOZAC	= LAKTOZAC,	
		   @LAKTOZAN	= LAKTOZAN,	
		   @INDPER		= INDPER,	
		   @INDLAK		= INDLAK,	
		   @CHARUST		= CHARUST,	
		   --@ZNAK		= ZNAK,
		   --@BEZT		= BEZT,
		   @MAXLAK		= MAXLAK,	
		   @MLIEKO100	= MLIEKO100,
		   @TUK100		= TUK100,	
		   @BIELK100	= BIELK100,	
		   @LAKT100		= LAKT100,	
		   @MLIEKO200	= MLIEKO200,
		   @TUK200		= TUK200,	
		   @BIELK200	= BIELK200,	
		   @LAKT200		= LAKT200
	FROM [PLIS].[dbo].[CM_Naplak] where CISKRAVY = @ParCisloKravy
	
	-- nastavenie pola ZMENA, ked pri oteleni je stale 11
	if @ZMENA = '11' 
	begin
		if (@LAKTDNI >= 305)
			set @ZMENA = '40'
		else
			if (@LAKTDNI >= 240)
			begin
				--if (@MLIEKCEL >= 2000) 
				if (@MLIEKCEL >= 1500) 
					set @ZMENA = '40'
				else
					set @ZMENA = '41'

				-- prebratie udajov 
				set @LAKDNIN =  @LAKTDNI
				set @MLIEKNOR = @MLIEKCEL
				set @TUKNOR =	@TUKCEL
				set @BIELKNOR = @BIELKCEL
				set @LAKTOZAN = @LAKTOZAC	

			end else
			begin
				--if (@MLIEKCEL >= 2000) 			
				if (@MLIEKCEL >= 1500) 			
					set @ZMENA = '42'
				else
					set @ZMENA = '43'			
			end
	end
	
	set @SPOSOBKU = (select SPVYKON from PLIS.dbo.NM_HDDETAIL where KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL) 
	
	-- poradie laktacie v CM_Naplak = poradie poslednej laktacie v CM_Laktacie
	if (SELECT max(PORLAK) FROM [PLIS].[dbo].[CM_Laktacie] where CISKRAVY = @ParCisloKravy group by CISKRAVY) = @PORLAK
	begin
		-- neprepisovat datum ukoncenia laktacie
		if @DATUKONL is not null
			set @ParDatOtel = @DATUKONL
			
		-- update
		update PLIS.dbo.CM_Laktacie set
		  CHOVATEL	=  	@CHOVATEL
		  ,DATOTEL	=	@DATOTEL
		  ,CHOVOTEL	=	@CHOVOTEL
		  ,CHOVLAKT	=	@ParChov
		  ,PRIEBPOROD=	@PRIEBPOROD
		  ,POHLAVIE	=	@POHLAVIE
		  ,ZMENA	=	@ZMENA
		  ,DATUKONL	=	@ParDatOtel
		  ,DATUKNORL=	@DATUKNORL
		  ,MEDZIOBD	=	@MEDZIOBD
		  ,HMOTKR	=	@HMOTKR
		  ,LAKTDNI	=	@LAKTDNI
		  ,LAKDNIN	=	@LAKDNIN
		  ,MLIEKCEL	=	@MLIEKCEL
		  ,MLIEKNOR	=	@MLIEKNOR
		  ,TUKCEL	=	@TUKCEL
		  ,TUKNOR	=	@TUKNOR
		  ,BIELKCEL	=	@BIELKCEL
		  ,BIELKNOR	=	@BIELKNOR
		  ,LAKTOZAC	=	@LAKTOZAC
		  ,LAKTOZAN	=	@LAKTOZAN
		  ,INDPER	=	@INDPER
		  --,INDLAK	=	@INDLAK
		  ,CHARUST	=	@CHARUST
		  ,SPOSOBKU	=	@SPOSOBKU
		  --,MAXLAK	=	@MAXLAK
		  ,MLIEKO100=	@MLIEKO100
		  ,TUK100	=	@TUK100
		  ,BIELK100	=	@BIELK100
		  ,LAKT100	=	@LAKT100
		  ,MLIEKO200=	@MLIEKO200
		  ,TUK200	=	@TUK200
		  ,BIELK200	=	@BIELK200
		  ,LAKT200	=	@LAKT200, SPRACUPDATE = @IDParChov
		where CISKRAVY = @ParCisloKravy and PORLAK = @PORLAK		
		
	end else
	-- nieje mozne kontrolovat postupnost poradia laktacii ak predosle z nejakeho dovodu chybaju (2016-02-24)
	---- kontrola: dalsie poradie laktacie
	--if convert(int, isnull((SELECT max(PORLAK) FROM [PLIS].[dbo].[CM_Laktacie] where CISKRAVY = @ParCisloKravy group by CISKRAVY), 0)) + 1 = 
	--	convert(int, @PORLAK)
	begin
		-- insert do CM_Laktacie
		insert into PLIS.dbo.CM_Laktacie ([CISKRAVY],[CHOVATEL],[PORLAK],[DATOTEL],[CHOVOTEL],[CHOVLAKT],[PRIEBPOROD],[POHLAVIE],[ZMENA]
      ,[DATUKONL],[DATUKNORL],[MEDZIOBD],[HMOTKR],[LAKTDNI],[LAKDNIN],[MLIEKCEL],[MLIEKNOR],[TUKCEL],[TUKNOR],[BIELKCEL],[BIELKNOR]
      ,[LAKTOZAC],[LAKTOZAN],[INDPER],/*[INDLAK],*/[CHARUST],[SPOSOBKU],/*[MAXLAK],*/[MLIEKO100],[TUK100],[BIELK100],[LAKT100],[MLIEKO200]
      ,[TUK200],[BIELK200],[LAKT200], SPRACINSERT, SPRACUPDATE) 
      values (@ParCisloKravy,@CHOVATEL,@PORLAK,@DATOTEL,@CHOVOTEL,@ParChov,@PRIEBPOROD,@POHLAVIE,@ZMENA,@ParDatOtel,@DATUKNORL
      ,@MEDZIOBD,@HMOTKR,@LAKTDNI,@LAKDNIN,@MLIEKCEL,@MLIEKNOR,@TUKCEL,@TUKNOR,@BIELKCEL,@BIELKNOR,@LAKTOZAC,@LAKTOZAN
      ,@INDPER,/*@INDLAK,*/@CHARUST,@SPOSOBKU,/*@MAXLAK,*/@MLIEKO100,@TUK100,@BIELK100,@LAKT100,@MLIEKO200,@TUK200,@BIELK200
      ,@LAKT200, @IDParChov, @IDParChov)
	end

	-- update datumu ukoncenia preb. laktacie
	update plis.dbo.CM_Naplak
		set DATUKONL = @ParDatOtel,
			ZMENA = @ZMENA,
			LAKDNIN = @LAKDNIN,
			MLIEKNOR = @MLIEKNOR,
			TUKNOR = @TUKNOR,	
			BIELKNOR = @BIELKNOR,
			LAKTOZAN = @LAKTOZAN,
			CHOVLAKT = @ParChov
		where CISKRAVY = @ParCisloKravy

	-- prepocitanie hodnotu INDLAK na poslednej laktacii danej kravy
	exec C_aktual_prep_indlak_krave @ParCisloKravy

	-- prepocitanie maximalnej laktacie (a dalsich cisel) pre danu kravu
	exec C_aktual_prep_max_lakt_krave @ParCisloKravy
		
	-- prepocitanie triedy uzitkovosti pre danu kravu
	exec C_aktual_prep_tr_uzit_krave @ParCisloKravy		
END


go

CREATE PROCEDURE [dbo].[CR_TMHD_pripustenie_stvrtrok_prepocet] 
@rok int,
@mesiac int

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

-- prepocet pre chov
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT 
				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'TMHD' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;                    
            
			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
			EXEC CR_TMHD_pripustenie_stvrtrok @chov, @rok, @mesiac 
		
			

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END



CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor



END

go

CREATE procedure [dbo].[Rocenka_MPHD_12]
    @rok int
	
as
begin

	select top 5 * 
	from Roc_MPHD_Tab_12 as z
	--where   z.rok = @rok 
	order by rok desc
end
go

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
		
CREATE FUNCTION [dbo].[Pribuznost_prepocet_priparovanieKoefTableValued_Custom] 
(	
	@otec as varchar(14), @matka as varchar(14)
)
RETURNS @table TABLE(pribuznost float, pocet_predkov_otec int, pocet_predkov_matka int) 
AS
begin

/*predpriprava - ak su rodokmene otca s matkou uplne odlisne, vrat koeficient 0,
tym padom odpadne pocitanie koeficientu pribuznosti*/

declare @pocet_zhodnych int;
set @pocet_zhodnych =0;

select @pocet_zhodnych = count(rodokmen) from dbo.ZistiRodokmenTabulka_Custom(@matka) where rodokmen 
in(select rodokmen from dbo.ZistiRodokmenTabulka_Custom(@otec)); --kolko zhodnych predkov je medzi matkou a otcom (vratane otca a matky)

declare @pocet_predkov_o int; --pocet znamych predkov otec (max. 15)
declare @pocet_predkov_m int; --pocet znamych predkov matka (max. 15)
select @pocet_predkov_o= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@otec);
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@matka);
 
if @pocet_zhodnych = 0 begin insert into @table values (0,@pocet_predkov_o,@pocet_predkov_m); return;  end;
/*koniec predpripravy*/


	declare @uscislo as varchar(14);	
	declare @uscislo1 as varchar(14);	
	declare @uscislo2 as varchar(14);	
	declare @usnecislo2 as varchar(14);	
	declare @uscislotest as varchar(14);
	declare @generacia1 as varchar(14);	
	declare @generacia2 as varchar(14);	
	declare @predok1 as varchar(14);	
	declare @predok2 as varchar(14);	
	declare @uscislozvierata as varchar(14);	
	declare @otec2 as varchar(14);	
	declare @matka2 as varchar(14);	
	declare @c_otec2 as varchar(14);	
	declare @c_matka2 as varchar(14);	
	declare @spolocnypredok as varchar(14);	
	declare @datnar as date;
	declare @i int;
	declare @j int;
	declare @k int;
	declare @kolko int;
	declare @poradie int;
	declare @pomocna int;
	declare @pomocna_otec int;
	declare @pomocna_matka int;
	declare @pomocna2 int;
	declare @pribuznost int;
	declare @pribuz float;
	declare @spolpredpribuz float;
	declare @vztah as varchar(14);
	declare @spolocny_predkovia as varchar(250);
	
	declare @listoverovanych_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listoverovanych_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listrodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listtemprodicov_otec table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)	
	)
	declare @listtemprodicov_matka table
	(
	usnecislo varchar(14),
	generacia int,
	odkoho varchar(14)
	)
	declare @listzhody table
	(
	usnecislo varchar(14),
	ukoho varchar(1),
	koefinbreedingu float,
	odkoho varchar(14)	
	)
	
	
	declare @aTable table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)

	declare @aTable2 table
	(
	uscislo varchar(14),
    spolocny_predok varchar(14),
    generacia int,
    ukoho varchar(1)
	)
	set @pribuznost=0;
	set @pribuz=0;
	begin    
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			set @uscislo=123;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@otec, @i);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@matka, @i);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
						if (@otec2 is null OR @matka2 is null)
						begin
							select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
							if (@otec2 is null) begin set @otec2 = @c_otec2 end;
							if (@matka2 is null) begin set @matka2 = @c_matka2 end;
						end;
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
						if (@otec2 is null OR @matka2 is null)
						begin
							select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
							if (@otec2 is null) begin set @otec2 = @c_otec2 end;
							if (@matka2 is null) begin set @matka2 = @c_matka2 end;
						end;
						if (@otec2 is not null)
						begin
							INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
						end;
						--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
						if (@matka2 is not null)
						begin
						  INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
				end ;
				set @i=@i+1;
				DELETE FROM @listzhody;
			end;
			
			
			
			
	
			
			
	/* Druhe prepocitanie */		
			
			
			
			
		set @pribuznost=0;
		set @pribuz=0;
		begin
			DELETE FROM @listoverovanych_otec;	DELETE FROM @listoverovanych_matka;
			DELETE FROM @listrodicov_otec;	DELETE FROM @listrodicov_matka;
			DELETE FROM @listtemprodicov_otec;	DELETE FROM @listtemprodicov_matka;
			DELETE FROM @listzhody;	
			set @i=1;
			WHILE (@i<=4)
			begin
				if (@i=1)
				begin
					if (@otec is not null)
					begin
						INSERT @listrodicov_otec (usnecislo, generacia, odkoho) VALUES (@otec, @i, @uscislo);
					end;
					if (@matka is not null)
					begin
						INSERT @listrodicov_matka (usnecislo, generacia, odkoho) VALUES (@matka, @i, @uscislo);	
					end;
				end;
			    
			    /*preverenie generacne otec voci matke*/
				if (@i<=4)
				begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@j);
						set	@generacia1=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
					 		set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
					 			usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
							if (@predok1=@predok2)
							begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
			 					set @pribuz=1;
			 					
						 	end;
						 set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
				end;
				
				/*preverenie medzigeneracne otec voci matke*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_otec))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_otec) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_otec WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_matka))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_matka) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin			 		
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'O');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'M');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
				/*preverenie medzigeneracne matka voci otcovi*/
			    if (@i<=4)
			    begin
					set @j=1;
					set @k=1;
					set @predok1=null;
					set @generacia1=null;
					set @predok2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listoverovanych_matka))
					begin
						set @predok1=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listoverovanych_matka) AS foo WHERE rownumber=@j);
						set @generacia1=(SELECT TOP (1) generacia FROM @listoverovanych_matka WHERE usnecislo=@predok1);	
						WHILE (@k<=(SELECT COUNT(*) FROM @listrodicov_otec))
						begin
				 			set @predok2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
				 			 usnecislo FROM @listrodicov_otec) AS foo WHERE rownumber=@k);
							set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@predok2);
					 		if ((@predok1=@predok2))		
					 		begin
					 			INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho) 
					 				VALUES (@uscislo, @predok1, @generacia1, 'M');
				 				INSERT @aTable2 (uscislo, spolocny_predok, generacia, ukoho)
				 					VALUES (@uscislo, @predok2, @generacia2, 'O');
				 				set @pribuz=1;
					 		end;
					 	set @k=@k+1;
						end;
						set @j=@j+1;
						set @k=1;
					end;
	
				
				end;	
						
				/*nacitanie rodicov otec*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
						 usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
				 		if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='O' and generacia=@i)=0)
						begin
							--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
							if (@otec2 is null OR @matka2 is null)
							begin
								select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
								if (@otec2 is null) begin set @otec2 = @c_otec2 end;
								if (@matka2 is null) begin set @matka2 = @c_matka2 end;
							end;
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
							  INSERT @listtemprodicov_otec (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
				end;	
				/*nacitanie rodicov matka*/
				begin
					set @j=1;
					set @otec2=null;
					set @matka2=null;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)	AS foo WHERE rownumber=@j);
						set @generacia2=@i+1;			
						if ((SELECT COUNT(*) FROM @aTable WHERE uscislo=@uscislo 
							and spolocny_predok=@uscislo2 and ukoho='M' and generacia=@i)=0) 
						begin
							--set @otec2=(select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							select @otec2 = otec, @matka2 = matka from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2;
							if (@otec2 is null OR @matka2 is null)
							begin
								select @c_otec2 = otec, @c_matka2 = matka from plis.dbo.CustomDB_Data WHERE uscislo=@uscislo2;
								if (@otec2 is null) begin set @otec2 = @c_otec2 end;
								if (@matka2 is null) begin set @matka2 = @c_matka2 end;
							end;
							if (@otec2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@otec2, @generacia2);
							end;
							--set @matka2=(select TOP (1) [matka] from plis.dbo.Ainbreeding WHERE uscislo=@uscislo2);
							if (@matka2 is not null)
							begin
								INSERT @listtemprodicov_matka (usnecislo, generacia) VALUES (@matka2, @generacia2);
							end;
						end;
						set @j=@j+1;
					end;
					
					/*prenos z listrodicov do listoverovanych otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_otec)	AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;
					DELETE FROM @listrodicov_otec;
						
					/*prenos z listrodicov do listoverovanych matka*/	
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listrodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY generacia) as rownumber,
							usnecislo FROM @listrodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listrodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listoverovanych_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set	@j=@j+1;
					end;								
					DELETE FROM @listrodicov_matka;				
				
					/*prenos z listtemprodicov do listrodicov otec*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_otec))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_otec)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_otec WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_otec (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_otec;		 			
						
					/*prenos z listtemprodicov do listrodicov matka*/
					set @j=1;
					set @uscislo2=null;
					set @generacia2=null;
					WHILE (@j<=(SELECT COUNT(*) FROM @listtemprodicov_matka))
					begin
						set @uscislo2=(SELECT TOP (1) usnecislo FROM (SELECT  ROW_NUMBER() OVER (ORDER BY usnecislo ASC) as rownumber,
							usnecislo FROM @listtemprodicov_matka)
						AS foo WHERE rownumber=@j);
						set @generacia2=(SELECT TOP (1) generacia FROM @listtemprodicov_matka WHERE usnecislo=@uscislo2);
						if (@uscislo2 is not null)
						begin
							INSERT @listrodicov_matka (usnecislo, generacia) VALUES (@uscislo2, @generacia2);
						end;
						set @j=@j+1;
					end;
					DELETE FROM @listtemprodicov_matka;		 			
					
				end ;
				
				
				set @i=@i+1;
				DELETE FROM @listzhody;
				
			end;
			end;
			set @pribuz=0;
			set @spolpredpribuz=0;
		


				set @pomocna=(SELECT COUNT(*) FROM @aTable2 WHERE USCISLO=@uscislo);
				if (@pomocna>2)
				begin
					set @pomocna2=1;
					while (@pomocna2<=(@pomocna/2))
					begin
						set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=((@pomocna2*2)-1))-1);
						set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
						FROM @aTable2
						WHERE USCISLO=@uscislo) AS foo WHERE rownumber=(@pomocna2*2))-1);
						set @spolpredpribuz=0;
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));
				    if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[CustomDB_Data]
										 where uscislo=(SELECT TOP (1) spolocny_predok FROM (SELECT  ROW_NUMBER() OVER 
										 (ORDER BY uscislo ASC)
										 as rownumber, spolocny_predok FROM @aTable2
									     WHERE USCISLO=@uscislo and spolocny_predok is not null) AS foo WHERE rownumber=(@pomocna2*2)));		
					end
					
					if (@spolpredpribuz is null)
					begin
						set @spolpredpribuz=0;					
					end
					set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
						set @pomocna2=@pomocna2+1;
					end
				end
				else begin
					set @j=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=1)-1);
					set @k=((SELECT TOP (1) generacia FROM (SELECT  ROW_NUMBER() OVER (ORDER BY uscislo ASC) as rownumber, generacia 
					FROM @aTable2
					WHERE USCISLO=@uscislo) AS foo WHERE rownumber=2)-1);
					set @spolpredpribuz=0;
				set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[Ainbreeding]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=(SELECT TOP (1) koefpribuz FROM [PLIS].[dbo].[CustomDB_Data]
									 where uscislo=(SELECT TOP (1) spolocny_predok FROM @aTable2
								     WHERE USCISLO=@uscislo AND spolocny_predok is not null));
				end
				if (@spolpredpribuz is null)
				begin
					set @spolpredpribuz=0;					
				end
				set @pribuz=(@pribuz+((SELECT POWER(0.50000,(@j+@k+1)))*(1+@spolpredpribuz))); 
				end
			end;
			set @k=1;
			set @spolocny_predkovia='';			
			DELETE FROM @aTable;
			
			declare krava cursor  for
			SELECT distinct spolocny_predok from @aTable2
			open krava
			fetch next from krava into @spolocnypredok;
			WHILE @@FETCH_STATUS = 0 
			begin
			  INSERT INTO @aTable ([spolocny_predok]) VALUES (@spolocnypredok)
			  fetch next from krava into @spolocnypredok;
			end;
			close krava;
			deallocate krava;
					
			if ((select count (*) FROM (select distinct spolocny_predok from @aTable) as id)>1)
			begin
			  while (@k<=(select count (*) FROM (select distinct spolocny_predok from @aTable) as id))
			  begin

				set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+convert(varchar,(				
					SELECT TOP (1) spolocny_predok 
					FROM (SELECT  ROW_NUMBER() OVER 
					(ORDER BY spolocny_predok ASC) as rownumber, spolocny_predok FROM @aTable) AS foo WHERE rownumber=@k));									
				if (@k=2 or @k=1) set @spolocny_predkovia=convert(varchar, @spolocny_predkovia)+', ';
				 
				
				set @k=@k+1;
			  end;
			end;
			else
			begin
			  set @spolocny_predkovia=convert(varchar,( SELECT TOP (1) spolocny_predok FROM @aTable));
			end; 
			insert into @table values (isnull(round(@pribuz*100,2),0),@pocet_predkov_o,@pocet_predkov_m)
			return;
end



/*


select pribuznost, pocet_predkov_otec, pocet_predkov_matka from dbo.Pribuznost_prepocet_priparovanieKoefTableValued_Custom('CZ000002336031', 'CZ000076287246')


select TOP (1) [otec] from plis.dbo.Ainbreeding WHERE uscislo='CZ000002336031');

select TOP (1) * from dbo.ZistiRodokmenTabulka_Custom('CZ000002336031');


select
LAG(rodokmen) over (order by rodokmen asc) as prev,
LEAD(rodokmen) over (order by rodokmen asc) as next
from dbo.ZistiRodokmenTabulka_Custom('CZ000002336031')

declare @pocet_predkov_o int; --pocet znamych predkov otec (max. 15)
declare @pocet_predkov_m int; --pocet znamych predkov matka (max. 15)
select count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom('CZ000002336031');
select @pocet_predkov_m= count(rodokmen)from dbo.ZistiRodokmenTabulka_Custom(@matka);

--Pribuznost_prepocet_priparovanieKoefTableValued(@HD,CM_Krava.ciskravy)

*/
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_sektor_prepocet] 
@datumOd date,
@datumDo date='',
@region varchar(2)=''

AS

BEGIN

DECLARE @counter INT
DECLARE @chov VARCHAR(9)

SET @counter = 0;

---- prepocet pre chov
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT --l.Chovatel from plis.dbo.View_CP_LaktaciePreZostavy as l 
--				(CHOV) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--    OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;                    
            
--			PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--			EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END



--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor


----SET @counter = 0;

---- prepocet pre podnik
--DECLARE prepocet_cursor CURSOR
--FOR
--SELECT DISTINCT (substring(chov,1,6)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

--   OPEN prepocet_cursor
--   FETCH NEXT FROM prepocet_cursor INTO @chov

--   WHILE @@FETCH_STATUS = 0
--       BEGIN
--           SET @counter = @counter + 1;
                    
            
--                            PRINT 'Prepocitavam podnik: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
--                             EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

--           FETCH NEXT FROM prepocet_cursor INTO @chov

--       END
--CLOSE prepocet_cursor
--DEALLOCATE prepocet_cursor

	   --SET @counter = 0;


DECLARE prepocet_cursor CURSOR		-- prepocet pre okres
FOR
SELECT DISTINCT (substring(chov,1,3)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 

    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam okres: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                             EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END


	   SET @counter = 0;
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet pre kraj
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(substring(chov,1,1)) FROM dbo.CP_ZoznamChovov WHERE typku = 'ML' 


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @chov

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam kraj: ' + CONVERT (VARCHAR, @counter) + ' '+ @chov
                            EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @chov

       END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

-- prepocet za SR
set @chov=null
	PRINT 'Prepocitavam Slovensko'
	EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region


END

go

-- =============================================
-- Author:		<Vladimir Durech>
-- Create date: <16.10.2014>
-- Description:	<Description,vrati zoznam linii s poctom nevyradenych baranov, stado je zadane parametrom>,>
-- =============================================
CREATE FUNCTION [dbo].[function_GP_CapPlem]  
(	
	-- Add the parameters for the function here
@chovatel varchar(9)	
)
RETURNS TABLE 
AS
RETURN 
(
	-- Add the SELECT statement with parameter references here
SELECT  b.plem,
REPLACE (SUBSTRING(b.plem,1,2) + ' ' + CONVERT(varchar, k.PERCPLEM1) + '%' + 
(CASE WHEN (CONVERT(float, k.CISKOD) >= '1')
	THEN '    ' + SUBSTRING(b.plem,3,2) + ' ' + CONVERT(varchar, k.PERCPLEM2)+'%' 
	ELSE '' END) +
(CASE WHEN (CONVERT(float, k.CISKOD) >= '5')
	THEN '    ' + SUBSTRING(b.plem,5,2) + ' ' + CONVERT(varchar, k.PERCPLEM3)+'%' 
	ELSE '' END)+
(CASE WHEN (CONVERT(float, k.CISKOD) >= '10')
	THEN '    ' + SUBSTRING(b.plem,7,2) + ' ' + CONVERT(varchar, k.PERCPLEM4)+'%'
	ELSE '' END), '  ', ' ')
	 AS plemeno,
SUM(1) AS pocet
FROM dbo.GM_CAP b  LEFT OUTER JOIN dbo.SC_PodKrvi k
 on SUBSTRING(b.plem,9,2) = k.CISKOD
WHERE  (b.DOVOD = '0') AND (b.DATVYR IS NULL)  AND (b.KrOkr+b.Podnik+b.stado= @chovatel)
GROUP BY b.plem, k.PERCPLEM1, k.PERCPLEM2, k.PERCPLEM3, k.PERCPLEM4, k.CISKOD

)
go

CREATE procedure  [dbo].[Roc_MLHD_18]
	@datumOd date,
	@datumDo date

	as 
	begin

    delete from Roc_MLHD_Tab_18 where rok = datepart(year,@datumOd);

    -- declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null
	  ) 

	insert into @Laktacie			
	 SELECT distinct
 		 PORLAK, Lakt.CHOVATEL,
		 ZMENA, MEDZIOBD,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 (case when k.PK ='PHA'  then 'PHA'
			 when k.PK ='PHB'  then 'PHB'
			 when k.PK ='PHC'  then 'PHC'
			 when k.PK ='PHD'  then 'PHD'
			 when k.PK ='PSA'  then 'PSA'
			 when k.PK ='PSB'  then 'PSB'
			 when k.PK ='PPA'  then 'PPA'
			 when k.PK ='PPB'  then 'PPB'
			 when k.PK ='PPC'  then 'PPC'
							 end) as Plem,
		Lakt.DOVVYR, Lakt.DATVYR--,b.KOD, b.NAZOV
		 
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
		 left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
		-- left outer join NC_CharChov as b on (b.KOD=h.CHARCHOV) and (b.DRUHHZ=h.TYPZV) 
		 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
		where 
		 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
		--	and h.CHARCHOV in ('1','2','3','4','5')
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null and eko.TYPZV='1'
			and MLIEKCEL <>''
			and k.PK in ('PHA', 'PHB','PHC','PHD','PSA','PSB','PPA','PPB','PPC')
/** select * from @Laktacie 		**/

Declare @Laktacie_vs table(
--CREATE TABLE @Laktacie(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
	  [PLEM] [varchar] (10) null,
      [DOVVYR][varchar] (2) null,
      [DATVYR][date] null	  	  
      ) 
insert into @Laktacie_vs			
	 SELECT distinct
 		 PORLAK, Lakt.CHOVATEL,
		 ZMENA, MEDZIOBD,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER, 
		 (case when k.PK in('PHA','PHB','PHC','PHD') then 'H'
			 when k.PK in ('PSA','PSB')  then 'S'
			 when k.PK in ('PPA','PPB','PPC')  then 'P'
							end) as Plem,
		Lakt.DOVVYR, Lakt.DATVYR--,b.KOD, b.NAZOV
		 
	 FROM dbo.View_CP_LaktaciePreZostavy as Lakt
		 left outer join NM_HDDETAIL as h on h.KRAJ + h.OKRES + h.PODNIK + h.CHOV = Lakt.chovatel
		-- left outer join NC_CharChov as b on (b.KOD=h.CHARCHOV) and (b.DRUHHZ=h.TYPZV) 
		 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
		 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
		 left outer join CM_Krava as k on k.ciskravy=lakt.ciskravy
		where 
		 (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
			--and h.CHARCHOV in ('1','2','3','4','5')
			and ((Lakt.DATUKONL >= @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL >= @datumOd) 
						or (Lakt.DATUKNORL >= @datumOd 
						and Lakt.DATUKNORL <= @datumDo))
			and eko.ZRUS is null and eko.TYPZV='1'
			and MLIEKCEL <>''
			and k.PK in ('PHA', 'PHB','PHC','PHD','PSA','PSB','PPA','PPB','PPC')



	declare @pocLAKV1 table
		(	
		[PlemTyp] [varchar] (10) Null,
		[PocLakV1] [float](4) NULL
		)

	Insert @pocLAKV1
		select 
			distinct l.plem as PlemTyp, 
			count(*) as PocLakV1
			
		from @Laktacie as l	
			where PORLAK = '1'
				and PLEM<>'0'
		group by  l.PLEM
/**	select * from @pocLAKV1 **/


	Declare @lakt1 table
	(
		[PlemTyp] [varchar] (10) Null,
		[PocLakN1] [float](4) NULL,
		[LakdniNL1] [float](7) NULL,	
		[MliekNorL1] [float](9) NULL,
		[TukNorL1] [float](7) NULL,
		[BielkNorL1] [float](7) NULL
		--[CharChov_KOD][varchar] (2) null,
		--[CharChov][varchar] (30) null
	)

	Insert into @lakt1
		(PlemTyp, pocLakN1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1/*, CharChov_KOD,CharChov*/)
	select distinct plem as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
		ROUND(AVG(TUKNOR),2)as TukNorL1,
		ROUND(AVG(BIELKNOR),2) as BielkNorL1
		--CharChov_KOD as CharChov_KOD,
		--CharChov as Charchov
	from @Laktacie as l
		where  PORLAK = '1'
			and (l.ZMENA = '30' or l.ZMENA='40') 
			and PLEM<>'0'
		group by  plem--,CharChov_KOD, CharChov

/**select * from @lakt1
		order by PlemTyp**/

 Declare @lakt2 table
  (	[PlemTyp] [varchar] (10) Null,
	[PocLakN2] [float](4) NULL,
	[LakdniNL2] [float](7) NULL,	
	[MliekNorL2] [float](9) NULL,
	[TukNorL2] [float](7) NULL,
	[BielkNorL2] [float](7) NULL,
	--[CharChov_KOD][varchar] (2) null,
	--[CharChov][varchar] (30) null,
	[MedziobdL2] [float](7) NULL
	)
 insert @lakt2
	select distinct plem as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
		ROUND(AVG(TUKNOR),2)as TukNorL2,
		ROUND(AVG(BIELKNOR),2) as BielkNorL2,
		--CharChov_KOD as CharChov_KOD,
		--CharChov as Charchov,
		ROUND(AVG(MEDZIOBD),2) as MedziobdL2
	from @Laktacie as l	
			where PORLAK >='2'
				and PLEM <>'0'
				and (l.ZMENA = '30' or l.ZMENA='40') 
		group by  l.PLEM--,l.CharChov_KOD ,l.CharChov


declare @pocLAKVCelk table
		(
		[PlemTyp] [varchar] (10) Null,
		[PocLakVCelk] [float](4) NULL
		--[CharChov_KOD][varchar] (2) null,
		--[CharChov][varchar] (30) null
		)

Insert @pocLAKVCelk
		select 
			l.PLEM as PlemTyp,
			count(*) as PocLakVCelk
			--CharChov_KOD as CharChov_KOD,
			--CharChov as Charchov
		from @Laktacie as l
		
		group by  l.PLEM--,l.CharChov_KOD ,l.CharChov

	/**select * from @pocLAKVCelk **/

	Declare @laktCelkom table
		( 
		[PlemTyp] [varchar] (10) Null,
		[PocLakNcelk] [float] NULL,
		[MedziobdCelk] [float] NULL,
		[LakDniNCelk] [float] NULL,	
		[MliekNorCelk] [float] NULL,
		[TukNorCelk] [float] NULL,
		[BielkNorCelk] [float] NULL
		--[CharChov_KOD][varchar] (2) null,
		--[CharChov][varchar] (30) null
		)

insert @laktCelkom
	select
	l.PLEM as PlemTyp,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk
	--CharChov_KOD as CharChov_KOD,
 --   CharChov as Charchov
 	from @Laktacie as l
		where (l.ZMENA = '30' or l.ZMENA='40') 
	group by  l.PLEM--,l.CharChov_KOD ,l.CharChov
/****spolu za vsetky plem - podla zvazu***/

declare @pocLAKV1_vs table
		(	
		[PlemTyp] [varchar] (10) Null,
		[PocLakV1] [float](4) NULL
		--[CharChov_KOD][varchar] (2) null,
		--[CharChov][varchar] (30) null
		)

	Insert @pocLAKV1_vs
		select 
			distinct l_vs.plem as PlemTyp, 
			count(*) as PocLakV1
			
		from @Laktacie_vs as l_vs
			where PORLAK = '1'
				and PLEM<>'0'
		group by l_vs.PLEM

	Declare @lakt1_vs table
	(
		[PlemTyp] [varchar] (10) Null,
		[PocLakN1] [float](4) NULL,
		[LakdniNL1] [float](7) NULL,	
		[MliekNorL1] [float](9) NULL,
		[TukNorL1] [float](7) NULL,
		[BielkNorL1] [float](7) NULL
	)

	Insert into @lakt1_vs
		( PlemTyp,pocLakN1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1)
	select distinct plem as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
		ROUND(AVG(TUKNOR),2)as TukNorL1,
		ROUND(AVG(BIELKNOR),2) as BielkNorL1

	from @Laktacie_vs as l_vs
		where  PORLAK = '1'
			and (l_vs.ZMENA = '30' or l_vs.ZMENA='40') 
	group by  plem

/**select * from @lakt1
		order by PlemTyp**/

Declare @lakt2_vs table
  (	[PlemTyp] [varchar] (10) Null,
	[PocLakN2] [float](4) NULL,
	[LakdniNL2] [float](7) NULL,	
	[MliekNorL2] [float](9) NULL,
	[TukNorL2] [float](7) NULL,
	[BielkNorL2] [float](7) NULL,
	[MedziobdL2] [float](7) NULL
	)
 insert @lakt2_vs
select distinct l_vs.plem as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(l_vs.LAKDNIN),2)as LakdniNL2,	
		ROUND(AVG(l_vs.MLIEKNOR),2) as MliekNorL2,
		ROUND(AVG(l_vs.TUKNOR),2)as TukNorL2,
		ROUND(AVG(l_vs.BIELKNOR),2) as BielkNorL2,
		ROUND(AVG(l_vs.MEDZIOBD),2) as MedziobdL2
	from @Laktacie_vs as l_vs	
			where l_vs.PORLAK >='2'
				and (l_vs.ZMENA = '30' or l_vs.ZMENA='40') 
		group by l_vs.PLEM


declare @pocLAKVCelk_vs table
		(
		[PlemTyp] [varchar] (10) Null,
		[PocLakVCelk] [float](4) NULL
		)

	Insert @pocLAKVCelk_vs
		select distinct l_vs.PLEM,
			count(*) as PocLakVCelk
		from @Laktacie_vs as l_vs
		group by l_vs.plem

	/**select * from @pocLAKVCelk **/

	Declare @laktCelkom_vs table
		( 
		[PlemTyp] [varchar] (10) Null,
		[PocLakNcelk] [float] NULL,
		[MedziobdCelk] [float] NULL,
		[LakDniNCelk] [float] NULL,	
		[MliekNorCelk] [float] NULL,
		[TukNorCelk] [float] NULL,
		[BielkNorCelk] [float] NULL
		)

insert @laktCelkom_vs
	select
		distinct l_vs.PLEM,
		count(*) as PocLakCelk, 
		ROUND(AVG(l_vs.MEDZIOBD),2) as MedziobdCelk,
		ROUND(AVG(l_vs.LAKDNIN),2) as LakdniNCelk,	
		ROUND(AVG(l_vs.MLIEKNOR),2) as MliekNorCelk,
		ROUND(AVG(l_vs.TUKNOR),2) as TukNorCelk,
		ROUND(AVG(l_vs.BIELKNOR),2) as BielkNorCelk
	from @Laktacie_vs as l_vs
		where (l_vs.ZMENA = '30' or l_vs.ZMENA='40')
			
	group by  l_vs.PLEM

	/****spolu za SLOVENSKO***/

	declare @pocLAKV1_SR table
		(	
		[PlemTyp] [varchar] (10) Null,
		[PocLakV1] [float](4) NULL
		)

	Insert @pocLAKV1_SR
		select 
			'SR' as PlemTyp,
			count(*) as PocLakV1
			
		from @Laktacie_vs as l_vs
			where PORLAK = '1'
				and PLEM<>'0'
		--group by l_vs.PLEM

	Declare @lakt1_SR table
	(
		[PlemTyp] [varchar] (10) Null,
		[PocLakN1] [float](4) NULL,
		[LakdniNL1] [float](7) NULL,	
		[MliekNorL1] [float](9) NULL,
		[TukNorL1] [float](7) NULL,
		[BielkNorL1] [float](7) NULL
	)

	Insert into @lakt1_SR
		( PlemTyp,pocLakN1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1)
	select distinct 'SR' as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
		ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
		ROUND(AVG(TUKNOR),2)as TukNorL1,
		ROUND(AVG(BIELKNOR),2) as BielkNorL1

	from @Laktacie_vs as l_vs
		where  PORLAK = '1'
			and (l_vs.ZMENA = '30' or l_vs.ZMENA='40') 
	--group by  plem


Declare @lakt2_SR table
  (	[PlemTyp] [varchar] (10) Null,
	[PocLakN2] [float](4) NULL,
	[LakdniNL2] [float](7) NULL,	
	[MliekNorL2] [float](9) NULL,
	[TukNorL2] [float](7) NULL,
	[BielkNorL2] [float](7) NULL,
	[MedziobdL2] [float](7) NULL
	)
 insert @lakt2_SR
select distinct 'SR' as PlemTyp,
		count(*)  as PocLakN1, 
		ROUND(AVG(l_vs.LAKDNIN),2)as LakdniNL2,	
		ROUND(AVG(l_vs.MLIEKNOR),2) as MliekNorL2,
		ROUND(AVG(l_vs.TUKNOR),2)as TukNorL2,
		ROUND(AVG(l_vs.BIELKNOR),2) as BielkNorL2,
		ROUND(AVG(l_vs.MEDZIOBD),2) as MedziobdL2
	from @Laktacie_vs as l_vs	
			where PORLAK >='2'
				and (l_vs.ZMENA = '30' or l_vs.ZMENA='40') 
		--group by l_vs.PLEM


declare @pocLAKVCelk_SR table
		(
		[PlemTyp] [varchar] (10) Null,
		[PocLakVCelk] [float](4) NULL
		)

	Insert @pocLAKVCelk_SR
		select  'SR' as PlemTyp,
			count(*) as PocLakVCelk
		from @Laktacie_vs as l_vs
		where PLEM<>'0'
		--group by l_vs.PLEM

		--group by l_vs.plem

select * from @pocLAKVCelk_SR

	

	Declare @laktCelkom_SR table
		( 
		[PlemTyp] [varchar] (10) Null,
		[PocLakNcelk] [float] NULL,
		[MedziobdCelk] [float] NULL,
		[LakDniNCelk] [float] NULL,	
		[MliekNorCelk] [float] NULL,
		[TukNorCelk] [float] NULL,
		[BielkNorCelk] [float] NULL
		)

insert @laktCelkom_SR
	select
		distinct 'SR' as PlemTyp,
		count(*) as PocLakCelk, 
		ROUND(AVG(l_vs.MEDZIOBD),2) as MedziobdCelk,
		ROUND(AVG(l_vs.LAKDNIN),2) as LakdniNCelk,	
		ROUND(AVG(l_vs.MLIEKNOR),2) as MliekNorCelk,
		ROUND(AVG(l_vs.TUKNOR),2) as TukNorCelk,
		ROUND(AVG(l_vs.BIELKNOR),2) as BielkNorCelk
	from @Laktacie_vs as l_vs
		where (l_vs.ZMENA = '30' or l_vs.ZMENA='40')
			
	--group by  l_vs.PLEM



	insert into Roc_MLHD_Tab_18
	Select (case when L.PlemTyp in ('PSA','PSB','PSC')  then 'SLOVENSKÝ STRAKATÝ'
				when L.PlemTyp in ('PPA','PPB','PPC') then 'SLOVENSKÝ PINZGAUSKÝ'
				when L.PlemTyp in ('PHA','PHB','PHC','PHD') then 'HOLSTEINSKÝ' END) AS ChovZvaz,
				L.PlemTyp AS Oddiel,-- L.CharChov_KOD AS KOD,
				'prvé' as Lakt,
				l1.PocLakN1 as Uzav_lakt, --normovanych 
				--L.PocLakV1 AS Uzav_lakt, 
				l1.LakdniNL1 AS Lakt_dni, 
				l1.MliekNorL1 AS mlieko, 
				l1.TukNorL1 AS tuk_KG, 
				round(l1.TukNorL1 / l1.MliekNorL1*100,2) AS tuk_P, 
				l1.BielkNorL1 as bielk_KG, 
				round(l1.BielkNorL1 / l1.MliekNorL1*100,2) AS bielk_P, 
				null as medziobd, 
				/*'2017'*/ DATEPART(YEAR, @datumOd) as rok
		from @pocLAKV1 as l
		left outer join @lakt1 as l1 on  l1.PlemTyp = l.PlemTyp
		
	union 
		Select  (case when lc.PlemTyp in ('PSA','PSB','PSC')  then 'SLOVENSKÝ STRAKATÝ'
				when lc.PlemTyp in ('PPA','PPB','PPC') then 'SLOVENSKÝ PINZGAUSKÝ'
				when lc.PlemTyp in ('PHA','PHB','PHC','PHD') then 'HOLSTEINSKÝ' END) AS ChovZvaz,
				lc.PlemTyp AS Oddiel, --L.CharChov_KOD AS KOD,
				'všetky' as Lakt,
				--lvc.PocLakVCelk as Uzav_lakt,
				lc.PocLakNcelk as Uzav_lakt, --normovanych
				lc.LakdniNCelk AS Lakt_dni, 
				lc.MliekNorCelk AS mlieko,
				lc.TukNorCelk AS tuk_KG, 
				round(lc.TukNorCelk / lc.MliekNorCelk*100,2) AS tuk_P, 
				lc.BielkNorCelk as bielk_KG, 
				round(lc.BielkNorCelk / lc.MliekNorCelk*100,2) AS bielk_P, 
				l2.MedziobdL2 as medziobd, 
				DATEPART(YEAR, @datumOd)  as rok
		from @pocLAKVCelk as lvc
		left outer join @lakt2 as l2 on l2.PlemTyp = lvc.PlemTyp
		left outer join @laktCelkom as lc on lc.PlemTyp = lvc.PlemTyp
	
	union 
		Select  (case when l_vs.PlemTyp ='S'  then 'SLOVENSKÝ STRAKATÝ'
				when l_vs.PlemTyp ='P' then 'SLOVENSKÝ PINZGAUSKÝ'
				when l_vs.PlemTyp ='H'then 'HOLSTEINSKÝ' END) AS ChovZvaz,
				L_vs.PlemTyp AS Oddiel,-- L.CharChov_KOD AS KOD,
				'prvé' as Lakt, 
				--L_vs.PocLakV1 AS Uzav_lakt, 
				l1_vs.PocLakN1 AS Uzav_lakt, --normovane
				l1_vs.LakdniNL1 AS Lakt_dni, 
				l1_vs.MliekNorL1 AS mlieko, 
				l1_vs.TukNorL1 AS tuk_KG, 
				round(l1_vs.TukNorL1 / l1_vs.MliekNorL1*100,2) AS tuk_P, 
				l1_vs.BielkNorL1 as bielk_KG, 
				round(l1_vs.BielkNorL1 / l1_vs.MliekNorL1*100,2) AS bielk_P, 
				null as medziobd, 
				DATEPART(YEAR, @datumOd)  as rok
				from @pocLAKV1_vs as l_vs
		left outer join @lakt1_vs as l1_vs on  l1_vs.PlemTyp = l_vs.PlemTyp

		union 
		Select  (case when lvc_vs.PlemTyp ='S'  then 'SLOVENSKÝ STRAKATÝ'
				when lvc_vs.PlemTyp ='P' then 'SLOVENSKÝ PINZGAUSKÝ'
				when lvc_vs.PlemTyp ='H'then 'HOLSTEINSKÝ' END) AS ChovZvaz,
				lc_vs.PlemTyp AS Oddiel, --L.CharChov_KOD AS KOD,
				'všetky' as Lakt,
				--lvc_vs.PocLakVCelk as Uzav_lakt,
				lc_vs.PocLakNcelk as Uzav_lakt, --normovane
				lc_vs.LakdniNCelk AS Lakt_dni, 
				lc_vs.MliekNorCelk AS mlieko,
				lc_vs.TukNorCelk AS tuk_KG, 
				round(lc_vs.TukNorCelk / lc_vs.MliekNorCelk*100,2) AS tuk_P, 
				lc_vs.BielkNorCelk as bielk_KG, 
				round(lc_vs.BielkNorCelk / lc_vs.MliekNorCelk*100,2) AS bielk_P, 
				l2_vs.MedziobdL2 as medziobd, 
				DATEPART(YEAR, @datumOd)  as rok
		from @pocLAKVCelk_vs as lvc_vs
		left outer join @lakt2_vs as l2_vs on l2_vs.PlemTyp = lvc_vs.PlemTyp
		left outer join @laktCelkom_vs as lc_vs on lc_vs.PlemTyp = lvc_vs.PlemTyp
	
		
	--union
	--	Select 'SR' AS ChovZvaz,
	--			l2_SR.PlemTyp AS Oddiel, --L.CharChov_KOD AS KOD,
	--			'všetky' as Lakt,
	--			lvc_SR.PocLakVCelk as Uzav_lakt,
	--			lc_SR.LakdniNCelk AS Lakt_dni, 
	--			lc_SR.MliekNorCelk AS mlieko,
	--			lc_SR.TukNorCelk AS tuk_KG, 
	--			round(lc_SR.TukNorCelk / lc_SR.MliekNorCelk*100,2) AS tuk_P, 
	--			lc_SR.BielkNorCelk as bielk_KG, 
	--			round(lc_SR.BielkNorCelk / lc_SR.MliekNorCelk*100,2) AS bielk_P, 
	--			l2_SR.MedziobdL2 as medziobd, 
	--			'2017' as rok
	--	from @pocLAKVCelk_SR as lvc_SR 
	--	left outer join @lakt2_SR  as l2_SR on l2_SR.PlemTyp = lvc_SR.PlemTyp
	--	left outer join @laktCelkom_SR  as lc_SR on lc_SR.PlemTyp = lvc_SR.PlemTyp

	union 
		Select  'SR' AS ChovZvaz,
				l__SR.PlemTyp AS Oddiel,-- L.CharChov_KOD AS KOD,
				'prvé' as Lakt, 
				--l__SR.PocLakV1 AS Uzav_lakt, 
				l1__SR.PocLakN1 AS Uzav_lakt, --normovane
				l1__SR.LakdniNL1 AS Lakt_dni, 
				l1__SR.MliekNorL1 AS mlieko, 
				l1__SR.TukNorL1 AS tuk_KG, 
				round(l1__SR.TukNorL1 / l1__SR.MliekNorL1*100,2) AS tuk_P, 
				l1__SR.BielkNorL1 as bielk_KG, 
				round(l1__SR.BielkNorL1 / l1__SR.MliekNorL1*100,2) AS bielk_P, 
				null as medziobd, 
				DATEPART(YEAR, @datumOd)  as rok
				from @pocLAKV1_SR as l__SR 
		left outer join @lakt1_SR as l1__SR  on  l1__SR.PlemTyp = l__SR.PlemTyp
		
	union
		Select 'SR' AS ChovZvaz,
				lc_SR.PlemTyp AS Oddiel, --L.CharChov_KOD AS KOD,
				'všetky' as Lakt,
				--lvc_SR.PocLakVCelk as Uzav_lakt,
				lc_SR.PocLakNcelk  as Uzav_lakt,--normovane
				lc_SR.LakdniNCelk AS Lakt_dni, 
				lc_SR.MliekNorCelk AS mlieko,
				lc_SR.TukNorCelk AS tuk_KG, 
				round(lc_SR.TukNorCelk / lc_SR.MliekNorCelk*100,2) AS tuk_P, 
				lc_SR.BielkNorCelk as bielk_KG, 
				round(lc_SR.BielkNorCelk / lc_SR.MliekNorCelk*100,2) AS bielk_P, 
				l2_SR.MedziobdL2 as medziobd, 
				DATEPART(YEAR, @datumOd)  as rok
		from @pocLAKVCelk_SR as lvc_SR
		left outer join @lakt2_SR as l2_SR on l2_SR.PlemTyp = lvc_SR.PlemTyp
		left outer join @laktCelkom_SR as lc_SR on lc_SR.PlemTyp = lvc_SR.PlemTyp

	--select * from Roc_MLHD_Tab_18

	--select * from @Laktacie order by PLEM
	--select * from @Laktacie_vs order by PLEM


	--select * from Roc_MLHD_Tab_18 where rok = 2017 order by oddiel, lakt
	--delete from Roc_MLHD_Tab_18 where rok = 2017 
	end
go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 16.11.2011
-- Description:	Hlasenie skupin - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_HlasSkup_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR bigint 
	declare @DATZAPIS [datetime]
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit]
	declare @CHOVATEL [varchar](9)
	declare @CISKRAVY [varchar](14)
	declare @CS [varchar](2)

	declare @errorflag bit	

	declare @navrat_hodn [varchar](1)
	
	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	
	
	-- vyber doposial nespracovanych hlaseni skupin 
	declare db_cursor_hlasskup cursor
	FOR
	SELECT IDR
      ,convert(date, DATZAPIS, 104) as DATZAPIS
      ,CHOV
      ,CISKRAVY
	  ,CS
	FROM VstupyPLIS.dbo.CP_HD09_HLASSKUP where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
	
	OPEN db_cursor_hlasskup

	-- cyklus cez vsetky nespracovane hlasenia skupin
	FETCH NEXT
	FROM db_cursor_hlasskup INTO 	
		 @IDR
		,@DATZAPIS
		,@CHOVATEL		
		,@CISKRAVY
		,@CS
	
	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke hlaseni skupin nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD09_HLASSKUP set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran hlasskup
		begin try		
				
			set @errorflag = 0
		
			if @CS = '00'
				set @CS = NULL

			-- kontrola: chov je v menovke
			if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL where (KRAJ+OKRES+PODNIK+CHOV = @CHOVATEL)) = 0
			begin
				-- priradenie chyby 04
				exec @navrat_hodn = plis.[dbo].[C_aktual_HlasSkup_zapis_chybu] @IDR, 4
				if (@navrat_hodn = '2')
				begin
					set @errorflag = (select 1)
				end
			end

			-- kontrola: krava je na uvedenom chove?
			if (@CHOVATEL != (select CHOVATEL from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)))
			begin
				-- priradenie chyby 19
				exec @navrat_hodn = plis.[dbo].[C_aktual_HlasSkup_zapis_chybu] @IDR, 19
				if (@navrat_hodn = '2')
				begin
					set @errorflag = (select 1)
				end else
				if (@navrat_hodn = '1')
				begin
					set @CHOVATEL = (select null)
				end
			end

			-- kontrola - SK999999999999 = presun vsetkych krav
			if (@CISKRAVY != 'SK999999999999')
			begin
				-- kontrola: je krava v CM_Krava
				if (select COUNT(*) from PLIS.dbo.CM_Krava where (CISKRAVY = @CISKRAVY)) = 0
				begin
					-- priradenie chyby 05
					exec @navrat_hodn = plis.[dbo].[C_aktual_HlasSkup_zapis_chybu] @IDR, 05
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end
			end
			
			-- aktualizacia
			if (@errorflag != 1)		
			begin	
				-- zaradenie kravy do skupiny
				if (@CISKRAVY != 'SK999999999999')
				begin
					update PLIS.dbo.CM_Krava 
						set SKUPINA = @CS
						where CISKRAVY = @CISKRAVY
				end else
				
				-- zaradenie do skupiny - vsetky kravy z chovu
				begin
					update PLIS.dbo.CM_Krava 
						set SKUPINA = @CS
						where CHOVATEL = @CHOVATEL			
				end
			end
						
			--------------------------------------------------------			

			-- zaznam v tabulke hlaseni skupin nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD09_HLASSKUP set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR

			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'9'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran hlasskup;		
		
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'9'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran hlasskup		

		FETCH NEXT
		FROM db_cursor_hlasskup INTO 	
			 @IDR
			,@DATZAPIS
			,@CHOVATEL		
			,@CISKRAVY
			,@CS

	end
	
	CLOSE db_cursor_hlasskup
	DEALLOCATE db_cursor_hlasskup
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_HlasSkup_aktualizacia ...OK'	
END

go

Create procedure [dbo].[Rocenka_MPHD_11]
    @rok int
	
as
begin

	select top 5 * 
	from Roc_MPHD_Tab_11 as z
	--where   z.rok = @rok 
	order by rok desc
end
go

-- =============================================
-- Author:		<Vladimir Durech>
-- Description:	<TEST >
-- =============================================
CREATE PROCEDURE dbo.TESTProc
AS
BEGIN
	print 'TEST'
	select 'TEST' as Test
END
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_sektor_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date=''

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_zvaz_sektor @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go


CREATE PROCEDURE [dbo].[ZZ_C_PoslednohodnotenieByci]
AS
BEGIN
	TRUNCATE TABLE CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena

	declare @b as varchar(15)

	declare c cursor for
					SELECT BYK 
					FROM [View_CP_testHodnotbyci2]				
					GROUP BY BYK
					HAVING COUNT(*)=1
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_CP_testHodnotbyci2] where BYK=@b  and CHEKMEOUT='ANO';

		fetch next from c into @b
		end

		close c
		deallocate c

		declare c cursor for
					SELECT BYK 
					FROM [View_CP_testHodnotbyci2]				
					GROUP BY BYK
					HAVING COUNT(*)=2
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_CP_testHodnotbyci2] where BYK=@b  and CHEKMEOUT='ANO' ;

		fetch next from c into @b
		end

		close c
		deallocate c


		declare c cursor for
					SELECT BYK 
					FROM [View_CP_testHodnotbyci2]				
					GROUP BY BYK
					HAVING COUNT(*)=3
	open c
	fetch next from c into @b

	while @@FETCH_STATUS=0
		begin 

		insert into [CP_PoslednoHodnotenieBycyPodlaSkupiniPlemena] 
		--([ROKSPRAC],[MESSPRAC],[BYK],[DATNAR],[BLIN],[SREG],[MENBYK],[stada],[cery],[PLEMENO],[SPI],[REL],[M305],[T305],[tukpercenta],[B305],[bielkperc],[SKUPINA],[Preskupinovane],[CHEKMEOUT])  
		select * FROM [View_CP_testHodnotbyci2] where BYK=@b  and CHEKMEOUT='ANO' ;

		fetch next from c into @b
		end

		close c
		deallocate c

END
go

-- =============================================

-- =============================================
CREATE PROCEDURE [dbo].[C_ZZ_UpozorneniaNaVsetkychChovoch]

AS
BEGIN

	/*AK TABULKA NEEXISTUJE, TAK JU VYTVOR, INAK ZMAZ Z NEJ DATA*/
	
	IF NOT EXISTS 
		( 
		SELECT * FROM sys.tables t
		INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
		WHERE s.name = 'dbo' and t.name = 'CP_UpozorneniaNaChove' 
		)
		BEGIN
			CREATE TABLE CP_UpozorneniaNaChove(
			chovatel VARCHAR(9),
			typ_ku varchar(4),
			zoot VARCHAR(30),
			nezhod_rodic_pat_s_plis INT,
			pocet_nezhod_preb_lakt INT,
			chybne_MO INT, -- do 200
			vysoke_MO INT, -- nad 1200
			nesp_plem_sk_kravy INT,
			nesp_plem_sk_telata INT,
			telata_nad_36 INT
			);
		END;
	ELSE 
		BEGIN 
			TRUNCATE TABLE CP_UpozorneniaNaChove
		END; 

/*VLOZENIE DO TABULKY CP_UpozorneniaNaChove TYP KU, CHOV, HLAVNYCH ZOOTECHNIKOV, JEDNA SA O NEZRUSENY CHOV*/
INSERT INTO CP_UpozorneniaNaChove (typ_ku, chovatel, zoot)

SELECT  
	case when (not(SPVYKON in ('0', '4', '5'))) and (PRIZNAK = '01') and TECHUSMD = '00' then 'ML' 
	when (SPVYKON in ('4','5')) and (PRIZNAK = '01') then 'MP' 
	when (SPVYKON = '0') and (PRIZNAK = '01') and TECHUSMD != '00' then 'TMHD' 
	else 'X' 
	end,
h.KRAJ + h.OKRES + h.PODNIK + h.CHOV, osoba
FROM
		NM_PracSPU p  LEFT OUTER JOIN
		NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		NM_HDDETAIL h ON (h.OBVZOO = p.PZ AND h.KRAJ = o.KRAJ AND h.OKRES = o.OKRES)
		where PRIZNAK='01' 


/**************------------------------------POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS--------------------------------***************/
CREATE TABLE #nezhod_pat_vs_plis
(
chovatel VARCHAR(9),
pocet_nezhodujucich_pat_plis INT
)


-- 25.06.2015 - update: pridana podmienka za poslednych 10 rokov "krvdat > DATEADD(year, -10, GETDATE())"
INSERT INTO #nezhod_pat_vs_plis (chovatel, pocet_nezhodujucich_pat_plis) 
SELECT vs.CHOVATEL, count(*) 
		FROM CM_Paternita_All vs 
        left outer join CM_Krava as k on k.CISKRAVY = vs.USCISLO
        WHERE   
        (((O_PLIS IS NOT NULL OR OLIN_PLIS IS NOT NULL) AND O_suhlasi = 1 AND O_PA != 'XX000000000000')
		OR M_PLIS != 
		CASE WHEN CHARINDEX('/',vs.M_PA) <> 0 THEN 
		'SK' + right('000000000' + replace(vs.M_PA,'/',''),12)
		WHEN LEN(vs.M_PA) < 14 THEN 'SK' + right('000000000000' + vs.M_PA,12)
		ELSE M_PA
		END	AND M_suhlasi = 1
		) AND krvdat > DATEADD(year, -5, GETDATE())
		and k.DOVVYR is null and k.DATVYR is null
		group by vs.chovatel

/**************-----------------------KONIEC POCET - NEZHODNI RODICIA Z PATERNITY VS PLIS KONIEC--------------------------------***************/



/**/
CREATE TABLE #nezhod_preb_lakt
(
chovatel VARCHAR(9),
pocet_nezhod_preb_lakt INT
)

INSERT INTO #nezhod_preb_lakt (chovatel, pocet_nezhod_preb_lakt) 
/*select tabl2.chovatel, tabl2.pocet from (*/
select chovatel, count(*) as pocet FROM (
select tab.MATKA, tab.dat, c.PORPREBLAK, t.PORLAK, c.CHOVATEL from cm_krava c inner join
(
SELECT  t.MATKA,max(t.DATNAR) as dat
FROM CM_Telata as t 
inner JOIN CM_Krava as k on t.MATKA = k.CISKRAVY inner join NM_HDDETAIL h on 
k.CHOVATEL = (h.KRAJ + h.OKRES + h.PODNIK + h.CHOV)
WHERE k.DOVVYR is null and h.PRIZNAK = '01' and t.DATNAR is not null
group by t.MATKA) as tab 
on c.CISKRAVY = tab.MATKA
inner join CM_Telata t on t.MATKA = tab.MATKA and t.MATKA = c.CISKRAVY and tab.dat = t.DATNAR
where t.PORLAK > c.PORPREBLAK or t.PORLAK is null or c.PORPREBLAK is null)  
as tab
group by chovatel
/*) as tabl2 right join CP_UpozorneniaNaChove u on tabl2.CHOVATEL = u.chovatel*/




/**/
	
	
	
	
CREATE TABLE #tab_chybne_MO
(
chovatel VARCHAR(9),
pocet_chybne_MO INT
)

INSERT INTO #tab_chybne_MO (chovatel, pocet_chybne_MO) 	
select cp.chovatel, count(*) as pocet_chybnych_MO from Cp_Meso_TelataPoLaktacii 
cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd <= 200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_chybnych_MO from
(select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
on l.CISKRAVY = k.CISKRAVY 
where k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (MEDZIOBD <= 200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
) as tabulka 
group by tabulka.CHOVATEL 



/**/	
	
	
	
CREATE TABLE #tab_vysoke_MO
(
chovatel VARCHAR(9),
pocet_vysoke_MO INT
)

INSERT INTO #tab_vysoke_MO (chovatel, pocet_vysoke_MO) 	
select cp.chovatel, count(*) as pocet_vysokych_MO from 

-- len posledne medziobdobie --20160621
--Cp_Meso_TelataPoLaktacii 
(select s.ciskrava, p.Medziobd, p.Chovatel from
  (select Ciskrava, max(PorLakt) as porlak FROM Cp_Meso_TelataPoLaktacii
  group by Ciskrava) as s
  left join Cp_Meso_TelataPoLaktacii as p
  on p.ciskrava = s.ciskrava and p.porlakt = s.porlak)

cp left join CM_krava cm on cp.ciskrava = cm.CISKRAVY where (Medziobd >= 1200) 
and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
group by cp.chovatel
union
select tabulka.CHOVATEL, COUNT(*) as pocet_vysokych_MO from
(
-- len posledne medziobdobie --20160602
--select l.chovatel, l.ciskravy,l.datotel, MEDZIOBD from CM_Laktacie l left outer join CM_Krava k
--on l.CISKRAVY = k.CISKRAVY 
--where k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
--union
select n.chovatel, n.ciskravy,n.datotel, medziobd from CM_Naplak n
left outer join CM_Krava k
on n.CISKRAVY = k.CISKRAVY    
where  k.priznakku = '1' and (Medziobd >= 1200) and (DOVVYR is null or DATEDIFF(DAY,DATVYR,GETDATE())<=365)
) as tabulka 
group by tabulka.CHOVATEL 


/*
...
DALSIE DOPLNENIA
...
*/


	
declare @k_chovatel varchar(14);
declare @v_pocet_nezhodnych_pat_plis int;
declare @v_pocet_nezhod_preb_lakt int;
declare @v_pocet_chybne_MO int;
declare @v_pocet_vysoke_MO int;

declare kurzor_CP_UpozorneniaNaChove cursor for select chovatel from CP_UpozorneniaNaChove

	OPEN kurzor_CP_UpozorneniaNaChove   
	FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove INTO  @k_chovatel
		WHILE @@FETCH_STATUS = 0   
		BEGIN  
			SELECT @v_pocet_nezhodnych_pat_plis = pocet_nezhodujucich_pat_plis FROM #nezhod_pat_vs_plis WHERE chovatel = @k_chovatel; 					
			UPDATE CP_UpozorneniaNaChove SET nezhod_rodic_pat_s_plis=@v_pocet_nezhodnych_pat_plis WHERE chovatel = @k_chovatel;				  
			
			SELECT @v_pocet_nezhod_preb_lakt = pocet_nezhod_preb_lakt FROM #nezhod_preb_lakt WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_nezhod_preb_lakt as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET pocet_nezhod_preb_lakt=@v_pocet_nezhod_preb_lakt WHERE chovatel = @k_chovatel;
			
			SELECT @v_pocet_chybne_MO = pocet_chybne_MO FROM #tab_chybne_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_chybne_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET chybne_MO=@v_pocet_chybne_MO WHERE chovatel = @k_chovatel;		
			
			SELECT @v_pocet_vysoke_MO = pocet_vysoke_MO FROM #tab_vysoke_MO WHERE chovatel = @k_chovatel;	
			print cast(@v_pocet_vysoke_MO as varchar(5))	+ ' ';	
			UPDATE CP_UpozorneniaNaChove SET vysoke_MO=@v_pocet_vysoke_MO WHERE chovatel = @k_chovatel;
			
			set @v_pocet_nezhodnych_pat_plis = null;
			set @v_pocet_nezhod_preb_lakt = null;
			set @v_pocet_chybne_MO = null;
			set @v_pocet_vysoke_MO = null;
			
		FETCH NEXT FROM kurzor_CP_UpozorneniaNaChove INTO @k_chovatel
		END	
	CLOSE kurzor_CP_UpozorneniaNaChove   
	DEALLOCATE kurzor_CP_UpozorneniaNaChove
--END



/*

exec [C_ZZ_UpozorneniaNaVsetkychChovoch]

*/


/*
DOPLNENE 04.06.2015

*/

-- trvanie
-- 112: cca 20 min
--  09: cca 7 min
/* Vypocitanie Nespravnych Plemennych Skladieb*/
exec [C_aktual_VypocNespravnaPlemennaSkladba]

/*  */

update CP_UpozorneniaNaChove
set nesp_plem_sk_kravy = chybne_Kravy,
	nesp_plem_sk_telata = chybne_Telata
from(
	select chovatel, count (chybne_Kravy) as chybne_Kravy,  count (chybne_Telata) as chybne_Telata  from
	(
	select v.*, CHOVATEL, kategoria as chybne_Kravy, null as chybne_Telata
	FROM [CP_VypocNespravnaPlemennaSkladba] v
		left outer join CM_Krava k on (k.CISKRAVY = v.uscislo)
	where kategoria = 1
	UNION 
	select v.*, CHOVATEL, null as chybne_Kravy, kategoria as chybne_Telata
	FROM [CP_VypocNespravnaPlemennaSkladba] v
		left outer join CM_Telata t on (t.CISTELATA = v.uscislo)
	where kategoria = 2
	) s
	group by CHOVATEL
	) as t
where CP_UpozorneniaNaChove.chovatel = t.CHOVATEL


/*vsetky nuly nastav na NULL*/

update CP_UpozorneniaNaChove
set nesp_plem_sk_kravy = null
where nesp_plem_sk_kravy = 0

update CP_UpozorneniaNaChove
set	nesp_plem_sk_telata = null
where nesp_plem_sk_telata = 0



--select * from CP_UpozorneniaNaChove

--ALTER TABLE CP_UpozorneniaNaChove
--ADD telata_nad_36 INT


/* 
DOPLNENE 13.07.2015 - Telata nad 36 mes.
*/

--update CP_UpozorneniaNaChove
--set telata_nad_36 = null

update CP_UpozorneniaNaChove
set telata_nad_36 = pocet
from (
	SELECT count(*) as pocet, CHOVATEL
		from cm_telata 
		left outer join NM_HDDETAIL d on (d.kraj + d.okres + d.podnik + d.chov = chovatel)
		where DOVVYR IS NULL 
		--AND CISTELATA is not null 
			and priznakKU = 1
			and (datediff(day, datnar, GETDATE())/30.42 > 36) 	
			-- pridane kriterium vyberu teliat -- 20160803
			and (CISTELATA NOT IN (SELECT CISKRAVY FROM CM_Naplak)) and DOVVYR is  null 
			--	
			AND d.SPVYKON NOT in ('0', '4', '5') and (d.PRIZNAK = '01') and d.TECHUSMD = '00'
			group by chovatel
			--order by chovatel
	) as t
where CP_UpozorneniaNaChove.chovatel = t.CHOVATEL




/*
 *  aktualizacia bykov v tabulke CP_Byci_Insem	- PREHODIT INAM !!!!!!!!!!!!!!!!!!!!
 */

insert into CP_Byci_Insem
select lin, reg, 'F' as Aktivny, NULL as Link from CM_Byci b 
where reg is not null and lin is not null and uscislo not in
(select uscislo from CP_Byci_Insem i where i.reg = b.reg and i.lin = b.lin)
and BB_INSEM_COMPANY in (select kod from NM_InsemSpol)


END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.11.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_HlasSkup
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_HlasSkup_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int]
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	select @PriznakChyby = ZNCH_CS_UPD from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
		
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_HLASSKUP(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go



 CREATE procedure [dbo].[Rocenka_MPHD_10]
	
	@rok int
	
	as
	begin
	
	select *  from Roc_MPHD_Tab_10
	where @rok = rok
	order by pocetVsetkych desc

	end
 
go

-- =============================================
-- Author:		Vladimir Durech
-- Create date: 22.07.2016
-- Description:	Spojenie a rozdelenie baranov na chovoch pri spajani viacerych chovov do jedneho
				-- naprv sa vsetky chovy rozdelia, potom sa spoja nanovo zadane

				-- barani po rozdeleni sa nepremazu zo spojenecho chovu (treba?)
-- udpate/fix:  14.11.2016 - povodny chov sa vytvori / zrusi - tj ak je chov spojeny (v spchov), nemoze byt v hlavnom stlpci (chov)
-- upd/fix:		07.03.2018 - pridane stlpce tab. KonZapMen ids a idm

-- OZNAM: Kazdy chov musi byt zapisany v tabulke Spojchovy min. sam na seba... !!!!
-- =============================================
CREATE PROCEDURE [dbo].[S_KonZapBaran_Spoj_a_Rozdel_Chovy]
	@chov varchar(9),
	@RokEv1 varchar(4),
	@RokEv2 varchar(2),
	--@spoj varchar(1)
	@spojchovy varchar(256)
AS
BEGIN
	--	@spoj - 1 - spoj, 0 - rozdel
	
	declare @KrOkr varchar(9) = substring(@chov, 1, 3)
	declare @Podnik varchar(9) = substring(@chov, 4, 3)
	declare @Stado varchar(9) = substring(@chov, 7, 3)

	--pre istotu, keby prisli do vstupu medzeri za ciarkami
	set @spojchovy = REPLACE(@spojchovy, ' ', '')

	declare @idcka table
		(
			id_nove bigint,
			id_stare bigint,
			cislo varchar(8),
			chov varchar(9)
		)

	--======================--
	--	ROZDELENIE CHOVOV	--
	--======================--


	--end
	--if (@spoj = 2)
	--begin
		--select * from SM_KonZapBaran 
		--where KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov and spchov <> chov)  and rokev1 = @RokEv1 and rokev2 = @RokEv2
		--group by ID_KonZapBaran, KROKR+podnik+stado
		/*
		declare @idcka table
		(
			id_nove bigint,
			id_stare bigint,
			cislo varchar(8),
			chov varchar(9)
		)
		*/

		--Ulozenie id spojenych baranov bahnic
		insert into @idcka (id_stare, chov)
		select ID_KonZapBaran, KROKR+podnik+stado from SM_Konzap where KROKR+podnik+stado in
		(select spchov from SM_SpojChov where chov = @chov  and spchov <> chov) and rokev1 = @RokEv1 and rokev2 = @RokEv2
		and ID_KonZapBaran is not null
		group by ID_KonZapBaran, KROKR+podnik+stado
		/*and ID_KonZapBaran not in (select ID_KonZapBaran from SM_KonZapBaran 
		where KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov and spchov <> chov)  and rokev1 = @RokEv1 and rokev2 = @RokEv2)
		group by ID_KonZapBaran, KROKR+podnik+stado
		*/

		--zistenie barcis z baranov
		update @idcka
		set cislo = (
		select  barcis from SM_KonZapBaran k
		where KROKR + podnik + stado =@chov  and rokev1 = @RokEv1 and rokev2 = @RokEv2
		and k.id = id_stare
		)
		select * from @idcka

		/*
		select * from SM_KonZapBaran
		where KROKR + podnik + stado = @chov  and rokev1 = @RokEv1 and rokev2 = @RokEv2
		and barcis in (select cislo from @idcka)
		*/

		--Vlozenie baranov podla spojeneho chovu do kokretneho chovu, pokial tam este nie je
		insert into SM_KonZapBaran (KROKR, PODNIK, STADO, ROKEV1, ROKEV2, BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM, IDM, IDS)
		select substring(i.chov, 1, 3), substring(i.chov, 4, 3), substring(i.chov, 7, 3), 
		ROKEV1, ROKEV2, BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM,
		(select id from SM_KonZapMen where chov=kzb.KROKR + kzb.PODNIK + kzb.STADO and rokev = @rokev1+@rokev2) as idm, 
		(select id from SM_KonZapMen where chov=kzb.KROKR + kzb.PODNIK + kzb.STADO and rokev = @rokev1+@rokev2) as ids
		--(select id from SM_KonZapMen where chov=@chov and rokev = @rokev1+@rokev2) as ids
		--select * 
		from @idcka i
		left outer join SM_KonZapBaran kzb on i.id_stare = kzb.ID
		where KROKR + podnik + stado = @chov  and rokev1 = @RokEv1 and rokev2 = @RokEv2
		and barcis not in 
		(
			select barcis from SM_KonZapBaran
			where 
			KROKR + podnik + stado = i.chov
			--and KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov  and spchov <> chov)  
			and rokev1 = @RokEv1 and rokev2 = @RokEv2
		)


		-- Ak je baran zhodny, dopleni id z hlavneho chovu k spojenemu
		update @idcka 
		set id_nove = 
				(select top 1 id
				from SM_KonZapBaran b
				where b.KROKR + b.podnik + b.stado = chov and b.rokev1 = @RokEv1 and b.rokev2 = @RokEv2 and b.barcis = cislo)


		--Aktualizuje Bahniciam id baranov, kde sa aktualizuju na zaklade chovu z baranov
		update SM_KonZap
		set ID_KonZapBaran = isnull((select id_nove from @idcka where id_stare = SM_KonZap.ID_KonZapBaran and chov = krokr+podnik+stado), ID_KonZapBaran)
		-- is not null
		--						then (select id from @idcka where id_stare = SM_KonZap.ID_KonZapBaran) else 
		where 
			KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov  and spchov <> chov) and rokev1 = @RokEv1 and rokev2 = @RokEv2



	--end




	--Vytvorenie povodnych chovov
	--Nevytvaraj uz sam seba..., kedze potom sa vytvori znova --Fix duplicity 07.03.2018
	--tj chov2 := spchov2
	--   chov3 := spchov3
	insert into SM_SpojChov 
	select spchov, spchov from SM_SpojChov
	where chov = @chov and spchov <> chov

	--Zmazanie vsetkych spojenych chovov 	
	delete from SM_Spojchov
    where chov = @chov and spchov <> chov

	


	
	--======================--
	--	SPOJENIE CHOVOV		--
	--======================--

	-- SPOJENIE CHOVOV 
	declare @index int = -1
	declare @inychov varchar(9) = '-1'
	while @index <> 0
	begin
		if (@index = -1)
			set @index = 0	
		--print substring(@spojchovy, @index+1, 9)
		set @inychov = substring(@spojchovy, @index+1, 9)
		--pridanie spojeneho chovu
		insert SM_SpojChov
		values (@chov, @inychov)
		--Zmazanie z povodneho chovu
		delete from SM_Spojchov
		where chov = @inychov

		set @index = CHARINDEX(',', @spojchovy,  @index+1)

		
			--print @index
	end


	--if (@spoj = 1)
	--begin
		/*
		select *
		from SM_KonZapBaran 
		where KROKR + podnik + stado = @chov and rokev1 = @RokEv1 and rokev2 = @RokEv2

		select *
		from SM_KonZapBaran 
		where KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov and spchov <> chov)  and rokev1 = @RokEv1 and rokev2 = @RokEv2
		*/
	
		--spojenie baranov z ostatnych chovov
		insert into SM_KonZapBaran (KROKR, PODNIK, STADO, ROKEV1, ROKEV2, BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM, IDM, IDS)
		select @KROKR, @PODNIK, @STADO, ROKEV1, ROKEV2, BARCIS, BPORCIS, BKROKR, BPODNIK, BSTADO, BLUC, BPUC, BCEHZ, BPLEM,
		(select id from SM_KonZapMen where chov=b.KROKR + b.PODNIK + b.STADO and rokev = @rokev1+@rokev2) as idm, 
		(select id from SM_KonZapMen where chov=@chov and rokev = @rokev1+@rokev2) as ids
		from SM_KonZapBaran b
		where KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov and spchov <> chov) and rokev1 = @RokEv1 and rokev2 = @RokEv2
		and barcis not in (select barcis 
							from SM_KonZapBaran 
							where KROKR + podnik + stado = @chov
									and rokev1 = @RokEv1 and rokev2 = @RokEv2)

	/*
		declare @idcka table
		(
			id bigint,
			id_stare bigint,
			cislo varchar(8),
			chov varchar(9)
		)
	*/
		-- Stiahnutie baranov zo spojenych chovov
		insert into @idcka (id_stare, cislo, chov)
		select id, barcis, KROKR + podnik + stado as chov
		from SM_KonZapBaran 
		where KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov  and spchov <> chov) and rokev1 = @RokEv1 and rokev2 = @RokEv2

		-- Ak je baran zhodny, dopleni id z hlavneho chovu k spojenemu
		update @idcka 
		set id_nove = 
				(select top 1 id
				from SM_KonZapBaran b
				where b.KROKR + b.podnik + b.stado = @chov and b.rokev1 = @RokEv1 and b.rokev2 = @RokEv2 and b.barcis = cislo)

		--Aktualizuje Bahniciam id baranov, kde budu vsetky brane z jedneho a to hlavneho chovu (miesto svojho povodneho)
		update SM_KonZap
		set ID_KonZapBaran = isnull((select id_nove from @idcka where id_stare = SM_KonZap.ID_KonZapBaran), ID_KonZapBaran)
		-- is not null
		--						then (select id from @idcka where id_stare = SM_KonZap.ID_KonZapBaran) else 
		where 
			KROKR + podnik + stado in (select spchov from SM_SpojChov where chov = @chov  and spchov <> chov) and rokev1 = @RokEv1 and rokev2 = @RokEv2



		-- Co s duplicitnymi cislami BPORCIS?

		/*
		--select bporcis from SM_KonZapBaran
		update SM_KonZapBaran
		set BPORCIS = NULL
		where KROKR + podnik + stado = @chov and rokev1 = @RokEv1 and rokev2 = @RokEv2
			and bporcis in (select bporcis from SM_KonZapBaran
			where KROKR + podnik + stado = @chov and rokev1 = @RokEv1 and rokev2 = @RokEv2
			group by BPORCIS Having (count(*)) > 1) 

		*/
		--select spchov from SM_SpojChov where chov = @chov  and spchov <> chov



END

-- FiX s chybajucimi chovmi
/*

insert into SM_SpojChov
select distinct (KROKR+PODNIK+STADO) as chov, (KROKR+PODNIK+STADO) as spchov from SM_BAHNICA
where KROKR+PODNIK+STADO not in (select spchov from SM_SpojChov)
order by KROKR+PODNIK+STADO

*/
go


-- =============================================
-- Author:		Vladimir Durech
-- Create date: 05.06.2015 
-- Update:		15.06.2015
--				-- Opravene pocty teliat a krav - vid detail na chove
-- Description:	Zoznam chovov
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_ZoznamChovov_CHOV]	
	@ParChov varchar(9)
AS
BEGIN
	IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CP_ZoznamChovov]') AND TYPE IN (N'U'))
		DELETE FROM [dbo].CP_ZoznamChovov where chov = @ParChov
	ELSE
		CREATE TABLE [dbo].[CP_ZoznamChovov](
			[chov] [varchar](9) NOT NULL,
			[Nazov] [varchar](25) NULL,
			[typKU] [varchar](4) NULL,
			[pocetKrav] [int] NULL,
			[pocetTeliat] [int] NULL,
			[zootechnik] [varchar](30) NULL,
			[konzulent] [varchar](30) NULL
		) ON [PRIMARY]


	
DECLARE 
		@chovatel as varchar(9),	
		@kraj as varchar(1),
		@okres as varchar(2),
		@podnik as varchar(3),
		@chov as varchar(3),

		@typKU as varchar(4),
		@pocTel as int,
		@pocKrav as int,
		@zootechnik as varchar(30),
		@konzulent as varchar(30),
		@nazov as varchar(25)

	declare zviera cursor  for

	SELECT ch.kraj, ch.okres, ch.podnik, ch.chov
	FROM NM_CHOVMAS AS ch
    inner join NM_HDDETAIL as mimo on ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = mimo.kraj+mimo.okres+mimo.podnik+mimo.chov 
    where ch.ZRUS is null and (mimo.PRIZNAK = '01' or ch.TYPZV >= '1') and ch.KRAJ + ch.OKRES + ch.PODNIK + ch.CHOV = @ParChov

	open zviera	
	fetch next from zviera into @kraj, @okres, @podnik, @chov;
	WHILE @@FETCH_STATUS = 0 
		begin
			SET @chovatel = @kraj + @okres + @podnik + @chov;

			SET @nazov = (SELECT NAZOVSKR FROM NM_PODNIK p
							WHERE p.KRAJ = @kraj 
								and p.OKRES = @okres
								and p.PODNIK = @podnik)

			SET @typKU = (SELECT 
				CASE 
				WHEN (NOT(SPVYKON IN ('0', '4', '5'))) AND (PRIZNAK = '01') AND TECHUSMD = '00' THEN 'ML' 
				WHEN (SPVYKON IN ('4', '5')) AND (PRIZNAK = '01') THEN 'MP'
				WHEN (SPVYKON = '0') AND (PRIZNAK = '01') AND TECHUSMD != '00' THEN 'TMHD'
				ELSE 'X' 
				END AS TypKU 
				FROM NM_HDDETAIL hd 
				WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)

			SET @pocTel = (SELECT
				CASE @typku 
				WHEN 'ML' THEN NULL
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocTel FROM CM_Telata WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL)
				WHEN 'TMHD' THEN (SELECT COUNT(*) FROM CM_Telata AS t WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL AND (SELECT COUNT(*) CM_Vazenia WHERE CISTELATA = t.CISTELATA)> 0) 
				END)

			SET @pocKrav = (SELECT
				CASE @typku 
				WHEN 'ML' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL) 
				WHEN 'MP' THEN (SELECT COUNT(*) AS PocKrav FROM CM_Krava WHERE CHOVATEL = @chovatel AND DOVVYR IS NULL) 
				WHEN 'TMHD' THEN NULL 
				END)

			if (@pocTel is NULL)
				SET @pocTel = 0;		

			if (@pocKrav is NULL)
				SET @pocKrav = 0;

			SET @zootechnik = (SELECT top 1 osoba 
	            FROM NM_PracSPU p  LEFT OUTER JOIN
		            NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		            NM_HDDETAIL hd ON (hd.OBVZOO = p.PZ AND hd.KRAJ = o.KRAJ AND hd.OKRES = o.OKRES)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)
	            
			SET @konzulent = (SELECT top 1 osoba	
	            FROM NM_PracSPU p  LEFT OUTER JOIN
		            NC_OKRES o ON o.REGION = p.STRED  LEFT OUTER JOIN
		            NM_HDDETAIL hd ON (hd.KONZUL = p.KONZUL AND hd.KRAJ = o.KRAJ AND hd.OKRES = o.OKRES)
	            WHERE hd.KRAJ = @kraj 
					and hd.OKRES = @okres
					and hd.PODNIK = @podnik
					and hd.CHOV = @chov)


			 if (@typKU != 'X' and @typKU is not null and @chovatel not in (select chov from CP_ZoznamChovov where chov = @chovatel))
			 begin
					insert into CP_ZoznamChovov					
					values ( @chovatel, @nazov, @typKU, @pocKrav, @pocTel, @zootechnik, @konzulent )					
			end
			fetch next from zviera into @kraj, @okres, @podnik, @chov;
		end
	close zviera;
	deallocate zviera;
END
go

CREATE PROCEDURE [dbo].[GetCustomers_Pager]
       @SearchTerm VARCHAR(100) = '',
	   @SearchRok INT,
	   @SearchMesiac INT,
       @PageIndex INT = 1,
       @PageSize INT = 20,
       @RecordCount INT OUTPUT
AS
BEGIN
     
	 SET NOCOUNT ON;
	 
	 IF OBJECT_ID('tempdb..#Results') IS NOT NULL
			DROP TABLE #Results
	 
     SELECT
	 ROW_NUMBER() OVER (ORDER BY a.chovatel ASC) AS RowNumber,
      
	 b.NAZOV AS nazov, b.KRAJ+' '+b.OKRES+' '+b.PODNIK AS NM_chov, a.chovatel, b.OBEC AS obec, a.rok, a.mesiac, a.dekada
	 INTO #Results
	 FROM plis.dbo.CR_KUHD_MesUzavCH_1x  a
 	 INNER JOIN plis.dbo.NM_PODNIK b ON (LEFT(a.chovatel,6) = (b.KRAJ+b.OKRES+b.PODNIK) AND (a.rok = @SearchRok AND a.mesiac = @SearchMesiac))
	 WHERE
	 b.nazov LIKE '%' + @SearchTerm + '%' OR a.chovatel LIKE @SearchTerm + '%' OR b.OBEC LIKE @SearchTerm + '%'
	 --OR @SearchTerm = ''
	 
			
     SELECT @RecordCount = COUNT(*)
     FROM #Results
          
     SELECT * FROM #Results
     WHERE RowNumber BETWEEN(@PageIndex -1) * @PageSize + 1 AND(((@PageIndex -1) * @PageSize + 1) + @PageSize) - 1
    
		SELECT @RecordCount

     DROP TABLE #Results
END
go

-- =============================================
-- Author:		Roman Rafaj
-- Create date: 19.5.2016
-- Description:	Prepocet CR_KUARHD_mesacne @rok,@mesiac,@dekada
-- =============================================

CREATE PROCEDURE [dbo].[CR_prepocet_KUARHD] @rok INT, @mesiac INT, @dekada INT 

AS

BEGIN
	DECLARE @counter INT 
	DECLARE @chov VARCHAR(9)

	DELETE FROM CR_KURHD_MesUzavCH_1 WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada

    SET @counter = 0;
    DECLARE prepocet_cursor CURSOR
    FOR
		SELECT DISTINCT CHOV FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE rok = @rok AND mesiac = @mesiac AND dekada = @dekada
		

    OPEN prepocet_cursor
    FETCH NEXT FROM prepocet_cursor INTO @chov

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
				

							PRINT 'Spracovavam chov: ' + CONVERT(VARCHAR, @chov) + ' - ' + CONVERT(VARCHAR, @counter)

							EXEC dbo.CR_KUARHD_mesacne @chov,@rok,@mesiac,@dekada

	
            FETCH NEXT FROM prepocet_cursor INTO @chov

        END

END

CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor


go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_stupenKU_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date='' 

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_zvaz_stupenKU @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go

-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 02.6.2016
-- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
-- =============================================
 CREATE procedure [dbo].[CR_ZostavaLaktacie_stupenKU]
	@chov varchar(9)='',
	@datumOd date,
	@datumDo date ='',
	@region varchar(2)=''

as	
begin

if @datumDo is null
begin 
set @datumDo = GETDATE () 
end 

Declare @Laktacie table(
	  [PORLAK][int],
      [CHOVATEL][varchar] (9) null,
	  [Region] [varchar](2) NULL,
	  [ZMENA][varchar] (2) null,
      [MEDZIOBD][float] NULL,  
      [LAKTDNI][float] NULL,
      [LAKDNIN][float] NULL,
      [MLIEKNOR][float] NULL,
      [TUKNOR][float] NULL,
      [BIELKNOR][float] NULL,
      [LAKTOZAN] [float] NULL,
	  [INDPER] [float] NULL,
      [DOVVYR][varchar] (3) null,
      [DATVYR][date] null,
	  [SPVykonu_kod][varchar](2) null,
	  [SPVykonu][varchar](100)null,
	  [EkoChov][varchar](10) NULL
	 
	  
      ) --ON [PRIMARY]
	  
insert into @Laktacie
 SELECT
 	 PORLAK, CHOVATEL,Region,
	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
	 DOVVYR, DATVYR, c.KOD, c.NAZOV,
	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
				else null end)as EkoChov
 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
 left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
	and (reg.REGION=@region or @region is null) 
	and a.PRIZNAK=1	
	and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
		or (Lakt.DATUKNORL > @datumOd 
		and Lakt.DATUKNORL <= @datumDo))
	and eko.ZRUS is null and eko.TYPZV='1'
	and MLIEKCEL <>''
 
 --select * from  @Laktacie order by CHOVATEL


declare @PocZapojL1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojL1] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
		  
	)

	Insert @PocZapojL1
	select 
		@chov as CHOV, 
		@region as Region,		
		count(k.ciskravy) as PocZapojL1,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
		
	from CM_Krava as k


	left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
	 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
		and	k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK ='1'
 		and (reg.REGION=@region or @region is null) 
			and a.PRIZNAK=1	
	

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end,
		c.KOD, c.NAZOV
		
		--select * from @PocZapojL1 

declare @PocZapojL2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	
	[PocZapojL2] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojL2
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojL2,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu
	from CM_Krava as k

	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)


	where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) and
		k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK >='2'
 		and (reg.REGION=@region or @region is null) 
		and a.PRIZNAK=1	

	group by 
		case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end, 
		c.KOD, c.NAZOV

--select * from @PocZapojL2 

declare @PocZapojLCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocZapojLCelk] int NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert @PocZapojLCelk
	select 
		@chov as CHOV, 
		@region as Region,
		count(k.ciskravy) as PocZapojLCelk,
		c.KOD as SPVykonu_kod, 
		c.NAZOV as SPVykonu

	from CM_Krava as k

	--inner join CC_PlemTyp as pl on (case when pl.TYPC is null then '0' else pl.TYPC end = case when k.TYPPLEM is null then '0' else k.TYPPLEM end)
	left outer join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
	left outer join  NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
	left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)

 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) and
	k.DOVVYR is null and k.PRIZNAKKU='1' 
 	and (reg.REGION=@region or @region is null) 
	--and (pl.TYPS=@plem or @plem is null)
		and a.PRIZNAK=1	
	 

group by 
	case when @chov is null and @region is null then @chov	
	else
	case when @chov is null then @region else (substring(k.CHOVATEL, 1, len(@chov))) end end,
	c.KOD, c.NAZOV
--select * from @PocZapojL1 


declare @pocLAKV1 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,	
	[PocLakV1] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKV1
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakV1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK = '1'

	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
		l.SPVykonu_kod,l.SPVykonu
		
		--select * from @pocLAKV1 


declare @pocLAKV2 table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakV2] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)
	Insert @pocLAKV2
	select 
	@chov as CHOV, 
	@region as Region, 
	count(*) as PocLakV2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l	where PORLAK >= '2'

	group by case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
		l.SPVykonu_kod,l.SPVykonu
		

		--select * from @pocLAKV2

declare @pocLAKVCelk table
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakVCelk] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
)

	Insert @pocLAKVCelk
	select 
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakVCelk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
		
	group by  case when @chov is null and @region is null then @chov	
		else
		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
		l.SPVykonu_kod,l.SPVykonu

		--select * from @pocLAKVCelk 

Declare @lakt1 table
	
	([CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN1] [float](4) NULL,
	[MedziobdL1] [float](7) NULL,
    [LakdniL1] [float](7) NULL,
    [LakdniNL1] [float](7) NULL,	
    [MliekNorL1] [float](9) NULL,
    [TukNorL1] [float](7) NULL,
    [BielkNorL1] [float](7) NULL,
    [LaktozaNL1] [float](7) NULL, 
	[IPZL1] [float](5) NULL,
	[VyrZootechL1] [varchar](4) NULL,
	[VyrZdravDovL1] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	Insert into @lakt1
	(CHOV,Region,
	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
	VyrZootechL1,VyrZdravDovL1,
	SPVykonu_kod, SPVykonu)
	
select 
	@chov as CHOV, 
	@region as Region,
	count(*)  as PocLakN1, 
	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
	ROUND(AVG(TUKNOR),2)as TukNorL1,
	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
	AVG(INDPER) as IPZL1,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
		where  PORLAK = '1'
		and (l.ZMENA = '30' or l.ZMENA='40') 

	group by  case when @chov is null and @region is null then @chov	
				   else
					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
					l.SPVykonu_kod,l.SPVykonu
	--select * from @lakt1  
	
  Declare @lakt2 table
  ( [CHOV] [varchar](9) NULL,
	[Region] [varchar](2) NULL,
	[PocLakN2] [float](4) NULL,
	[MedziobdL2] [float](7) NULL,
    [LaktDniL2] [float](7) NULL,
    [LakDniNL2] [float](7) NULL,	
    [MliekNorL2] [float](9) NULL,
    [TukNorL2] [float](7) NULL,
    [BielkNorL2] [float](7) NULL,
    [LaktozaNL2] [float](7) NULL,
	[IPZL2] [float](5) NULL,
	[VyrZootechL2] [varchar](4) NULL,
	[VyrZdravDovL2] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
 insert @lakt2
 select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakN2, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
	ROUND(AVG(TUKNOR),2)as TukNorL2,
	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
	AVG(INDPER) as IPZL2,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovL2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	where 
	PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
 --select * from @lakt2 order by CHOV

  Declare @laktCelkom table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[PocLakNcelk] [float] NULL,
	[MedziobdCelk] [float] NULL,
    [LaktDniCelk] [float] NULL,
    [LakDniNCelk] [float] NULL,	
    [MliekNorCelk] [float] NULL,
    [TukNorCelk] [float] NULL,
    [BielkNorCelk] [float] NULL,
    [LaktozaNCelk] [float] NULL,
	[IPZCelk] [float](5) NULL,
	[VyrZootechCelk] [varchar](4) NULL,
	[VyrZdravDovCelk] [varchar](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

insert @laktCelkom
select
	@chov as CHOV, 
	@region as Region,
	count(*) as PocLakCelk, 
	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
	ROUND(AVG(TUKNOR),2) as TukNorCelk,
	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
	AVG(INDPER) as IPZCelk,
	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as VyrZdravDovCelk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu

	from @Laktacie as l
	
	where (l.ZMENA = '30' or l.ZMENA='40') 

	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
 --select * from @laktCelkom order by CHOV
  
  Declare @NormLak1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
--	[PlemTyp] [varchar] (10) Null,
	[Do3500L1] [float](4) NULL,
	[Do4000L1] [float](4) NULL,
	[Do4500L1] [float](4) NULL,
	[Do5000L1] [float](4) NULL,
	[Do5500L1] [float](4) NULL,
	[Do6000L1] [float](4) NULL,
	[Do6500L1] [float](4) NULL,
	[Do7000L1] [float](4) NULL,
	[Do7500L1] [float](4) NULL,
	[Do8000L1] [float](4) NULL,
	[Do8500L1] [float](4) NULL,
	[Do9000L1] [float](4) NULL,
	[Do9500L1] [float](4) NULL,
	[Do10000L1] [float](4) NULL,
	[Do10500L1] [float](4) NULL,
	[Do11000L1] [float](4) NULL,
	[Do11500L1] [float](4) NULL,
	[Do12000L1] [float](4) NULL,
	[Do12500L1] [float](4) NULL,
	[Do13000L1] [float](4) NULL,
	[Do13500L1] [float](4) NULL,
	[Do14000L1] [float](4) NULL,
	[Od14000L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	
	insert @NormLak1
	select 
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
--	l.PLEM as PlemTyp,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	
	from @Laktacie as l
	
	where 
	l.PORLAK = '1'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
	 l.SPVykonu_kod,l.SPVykonu
	
	--select * from @NormLak1 order by CHOV

	Declare @NormLak2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500L2] [float](4) NULL,
	[Do4000L2] [float](4) NULL,
	[Do4500L2] [float](4) NULL,
	[Do5000L2] [float](4) NULL,
	[Do5500L2] [float](4) NULL,
	[Do6000L2] [float](4) NULL,
	[Do6500L2] [float](4) NULL,
	[Do7000L2] [float](4) NULL,
	[Do7500L2] [float](4) NULL,
	[Do8000L2] [float](4) NULL,
	[Do8500L2] [float](4) NULL,
	[Do9000L2] [float](4) NULL,
	[Do9500L2] [float](4) NULL,
	[Do10000L2] [float](4) NULL,
	[Do10500L2] [float](4) NULL,
	[Do11000L2] [float](4) NULL,
	[Do11500L2] [float](4) NULL,
	[Do12000L2] [float](4) NULL,
	[Do12500L2] [float](4) NULL,
	[Do13000L2] [float](4) NULL,
	[Do13500L2] [float](4) NULL,
	[Do14000L2] [float](4) NULL,
	[Od14000L2] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @NormLak2
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	l.PORLAK >= '2'
	and (l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
	--select * from @NormLak2 order by CHOV
	
	Declare @NormLakCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	[Do3500Celk] [float](4) NULL,
	[Do4000Celk] [float](4) NULL,
	[Do4500Celk] [float](4) NULL,
	[Do5000Celk] [float](4) NULL,
	[Do5500Celk] [float](4) NULL,
	[Do6000Celk] [float](4) NULL,
	[Do6500Celk] [float](4) NULL,
	[Do7000Celk] [float](4) NULL,
	[Do7500Celk] [float](4) NULL,
	[Do8000Celk] [float](4) NULL,
	[Do8500Celk] [float](4) NULL,
	[Do9000Celk] [float](4) NULL,
	[Do9500Celk] [float](4) NULL,
	[Do10000Celk] [float](4) NULL,
	[Do10500Celk] [float](4) NULL,
	[Do11000Celk] [float](4) NULL,
	[Do11500Celk] [float](4) NULL,
	[Do12000Celk] [float](4) NULL,
	[Do12500Celk] [float](4) NULL,
	[Do13000Celk] [float](4) NULL,
	[Do13500Celk] [float](4) NULL,
	[Do14000Celk] [float](4) NULL,
	[Od14000Celk] [float](4) NULL,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @NormLakCelk
	select
	@chov as CHOV, 
	@region as Region,
	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  
	
	from @Laktacie as l
	
	where 
	(l.ZMENA = '30' or l.ZMENA='40')
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
	l.SPVykonu_kod,l.SPVykonu

	Declare @ZmenaL1 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L1] [float](4) NULL,
	[Zmena30L1] [float](4) NULL,
	[Zmena31L1] [float](4) NULL,
	[Zmena40L1] [float](4) NULL,
	[Zmena41L1] [float](4) NULL,
	[Zmena42L1] [float](4) NULL,
	[Zmena43L1] [float](4) NULL,
	[ZmenaCelk1L1] [float](4) NULL,
	[Zmena51L1] [float](4) NULL,
	[Zmena52L1] [float](4) NULL,
	[Zmena53L1] [float](4) NULL,
	[Zmena54L1] [float](4) NULL,
	[Zmena55L1] [float](4) NULL,
	[Zmena56L1] [float](4) NULL,
	[Zmena57L1] [float](4) NULL,
	[Zmena58L1] [float](4) NULL,
	[Zmena59L1] [float](4) NULL,
	[Zmena60L1] [float](4) NULL,
	[Zmena61L1] [float](4) NULL,
	[Zmena62L1] [float](4) NULL,
	[ZmenaCelk2L1] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL1
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L1,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu  

	from @Laktacie as l
	
	where 
	PORLAK='1'
	 
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL1 order by CHOV
	
	Declare @ZmenaL2 table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10L2] [float](4) NULL,
	[Zmena30L2] [float](4) NULL,
	[Zmena31L2] [float](4) NULL,
	[Zmena40L2] [float](4) NULL,
	[Zmena41L2] [float](4) NULL,
	[Zmena42L2] [float](4) NULL,
	[Zmena43L2] [float](4) NULL,
	[ZmenaCelk1L2] [float](4) NULL,
	[Zmena51L2] [float](4) NULL,
	[Zmena52L2] [float](4) NULL,
	[Zmena53L2] [float](4) NULL,
	[Zmena54L2] [float](4) NULL,
	[Zmena55L2] [float](4) NULL,
	[Zmena56L2] [float](4) NULL,
	[Zmena57L2] [float](4) NULL,
	[Zmena58L2] [float](4) NULL,
	[Zmena59L2] [float](4) NULL,
	[Zmena60L2] [float](4) NULL,
	[Zmena61L2] [float](4) NULL,
	[Zmena62L2] [float](4) NULL,
	[ZmenaCelk2L2] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)
	insert @ZmenaL2
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,

	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' or l.DOVVYR='61' or l.DOVVYR='62') then 1 else 0 end) as ZmenaCelk2L2,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu
	from @Laktacie as l
	
	where 
	PORLAK>='2'
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--,l.PLEM,
	--case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaL2 order by CHOV

	Declare @ZmenaCelk table
  ( [CHOV] [varchar](10) NULL,
	[Region] [varchar](2) NULL,
	--[PlemTyp] [varchar] (10) Null,
	[Zmena10Celk] [float](4) NULL,
	[Zmena30Celk] [float](4) NULL,
	[Zmena31Celk] [float](4) NULL,
	[Zmena40Celk] [float](4) NULL,
	[Zmena41Celk] [float](4) NULL,
	[Zmena42Celk] [float](4) NULL,
	[Zmena43Celk] [float](4) NULL,
	[ZmenaCelk1Celk] [float](4) NULL,
	[Zmena51Celk] [float](4) NULL,
	[Zmena52Celk] [float](4) NULL,
	[Zmena53Celk] [float](4) NULL,
	[Zmena54Celk] [float](4) NULL,
	[Zmena55Celk] [float](4) NULL,
	[Zmena56Celk] [float](4) NULL,
	[Zmena57Celk] [float](4) NULL,
	[Zmena58Celk] [float](4) NULL,
	[Zmena59Celk] [float](4) NULL,
	[Zmena60Celk] [float](4) NULL,
	[Zmena61Celk] [float](4) NULL,
	[Zmena62Celk] [float](4) NULL,
	[ZmenaCelk2Celk] [float](4) NULL,
	--[CharChov_KOD][varchar] (2) null,
 --   [CharChov][varchar] (30) null,
	[SPVykonu_kod][varchar](2) null,
	[SPVykonu][varchar](100)null
	)

	insert @ZmenaCelk
	select
	@chov as CHOV, 
	@region as Region,
	--@plem as PlemTyp,
	--l.PLEM as PlemTyp,
	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
	--CharChov_Kod as CharChov_KOD,
	--CharChov as Charchov,
	SPVykonu_kod as SPVykonu_kod,
	SPVykonu as SPVykonu   

	from @Laktacie as l
	
	group by case when @chov is null and @region is null then @chov else
	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
	l.SPVykonu_kod,l.SPVykonu
--, l.PLEM,
--	case when @plem is not null then l.PLEM end 
	
	--select * from @ZmenaCelk order by CHOV

--------create table CR_LaktacneZostavy 
--------		(
--------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
--------		[Region] [varchar](2) NULL,
--------		[PlemTyp] [varchar] (10) null,

--------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
--------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
--------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
--------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
--------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

--------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
--------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
--------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
--------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
--------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
--------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
--------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
--------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
--------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
--------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
--------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

--------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
--------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
--------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
--------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

--------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
--------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
--------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
--------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
--------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
--------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

--------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
--------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
--------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
--------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
--------	)

------IF EXISTS(
------SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
------WHERE 
------	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
------	and DatumOd = @datumOd and DatumDo = @datumDo
------)
------BEGIN
------	DELETE FROM CR_LaktacneZostavy  WHERE 
------	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
------	--(chov like @chov+'%' or @chov is null) 
------	and DatumOd = @datumOd and DatumDo = @datumDo
------END

insert dbo.CR_LaktacneZostavy 
		/*dbo.CR_LaktacneZostavy_vybery*/
	(
	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
	)

	select distinct
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
	@datumOd as DatumOd,
	@datumDo as DatumDo,
	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
	(Select distinct case when @chov is null and @region is null then ('SR') else
	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('StKU'+l.SPVykonu_kod) as Filer,
	getdate() as datumGenerovania,
	@region as Region,
	--@plem as PlemTyp,
	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
	null as PlemTyp,
	l.EkoChov as EkoChov,
	ZapojL1.PocZapojL1 as PocZapojL1,
	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
	ROUND(L1.PocLakN1,2) as PocLakN1, 
	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
	ROUND(L1.LakdniL1,2) as LakdniL1,
	ROUND(L1.LakdniNL1,2) as LakdniNL1,
	ROUND(L1.MliekNorL1,2) as MliekNorL1,
	ROUND(L1.TukNorL1,2) as TukNorL1,
	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
	ROUND(L1.IPZL1,2) as IPZL1,
	L1.VyrZootechL1 as VyrZootechL1,
	L1.VyrZdravDovL1 as VyrZdravDovL1,

	ZapojL2.PocZapojL2 as PocZapojL2, 
	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
	ROUND(L2.PocLakN2,2) as PocLakN2,
	ROUND(L2.MedziobdL2,2) as MedziobdL2,
	ROUND(L2.LaktDniL2,2) as LaktDniL2,
	ROUND(L2.LakDniNL2,2) as LakDniNL2,
	ROUND(L2.MliekNorL2,2) as MliekNorL2,
	ROUND(L2.TukNorL2,2) as TukNorL2,
	ROUND(L2.BielkNorL2,2) as BielkNorL2,
	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
	ROUND(L2.IPZL2,2) as IPZL2,
	L2.VyrZootechL2 as VyrZootechL2,
	L2.VyrZdravDovL2 as VyrZdravDovL2,

	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
	ROUND(lCelk.IPZCelk,2) as IPZCelk,
	lCelk.VyrZootechCelk as VyrZootechCelk,
	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

	NL1.Do3500L1 AS Do3500L1,
	NL1.Do4000L1 as Do4000L1,
	NL1.Do4500L1 as Do4500L1,
	NL1.Do5000L1 as Do5000L1,
	NL1.Do5500L1 as Do5500L1,
	NL1.Do6000L1 as Do6000L1,
	NL1.Do6500L1 as Do6500L1,
	NL1.Do7000L1 as Do7000L1,
	NL1.Do7500L1 as Do7500L1,
	NL1.Do8000L1 as Do8000L1,
	NL1.Do8500L1 as Do8500L1,
	NL1.Do9000L1 as Do9000L1,
	NL1.Do9500L1 as Do9500L1,
	NL1.Do10000L1 as Do10000L1,
	NL1.Do10500L1 as Do10500L1,
	NL1.Do11000L1 as Do11000L1,
	NL1.Do11500L1 as Do11500L1,
	NL1.Do12000L1 as Do12000L1,
	NL1.Do12500L1 as Do12500L1,
	NL1.Do13000L1 as Do13000L1,
	NL1.Do13500L1 as Do13500L1,
	NL1.Do14000L1 as Do14000L1,
	NL1.Od14000L1 as Od14000L1,
	 
	NL2.Do3500L2 AS Do3500L2,
	NL2.Do4000L2 as Do4000L2,
	NL2.Do4500L2 as Do4500L2,
	NL2.Do5000L2 as Do5000L2,
	NL2.Do5500L2 as Do5500L2,
	NL2.Do6000L2 as Do6000L2,
	NL2.Do6500L2 as Do6500L2,
	NL2.Do7000L2 as Do7000L2,
	NL2.Do7500L2 as Do7500L2,
	NL2.Do8000L2 as Do8000L2,
	NL2.Do8500L2 as Do8500L2,
	NL2.Do9000L2 as Do9000L2,
	NL2.Do9500L2 as Do9500L2,
	NL2.Do10000L2 as Do10000L2,
	NL2.Do10500L2 as Do10500L2,
	NL2.Do11000L2 as Do11000L2,
	NL2.Do11500L2 as Do11500L2,
	NL2.Do12000L2 as Do12000L2,
	NL2.Do12500L2 as Do12500L2,
	NL2.Do13000L2 as Do13000L2,
	NL2.Do13500L2 as Do13500L2,
	NL2.Do14000L2 as Do14000L2,
	NL2.Od14000L2 as Od14000L2,
	 
	NlCelk.Do3500Celk AS Do3500Celk,
	NlCelk.Do4000Celk as Do4000Celk,
	NlCelk.Do4500Celk as Do4500Celk,
	NlCelk.Do5000Celk as Do5000Celk,
	NlCelk.Do5500Celk as Do5500Celk,
	NlCelk.Do6000Celk as Do6000Celk,
	NlCelk.Do6500Celk as Do6500Celk,
	NlCelk.Do7000Celk as Do7000Celk,
	NlCelk.Do7500Celk as Do7500Celk,
	NlCelk.Do8000Celk as Do8000Celk,
	NlCelk.Do8500Celk as Do8500Celk,
	NlCelk.Do9000Celk as Do9000Celk,
	NlCelk.Do9500Celk as Do9500Celk,
	NlCelk.Do10000Celk as Do10000Celk,
	NlCelk.Do10500Celk as Do10500Celk,
	NlCelk.Do11000Celk as Do11000Celk,
	NlCelk.Do11500Celk as Do11500Celk,
	NlCelk.Do12000Celk as Do12000Celk,
	NlCelk.Do12500Celk as Do12500Celk,
	NlCelk.Do13000Celk as Do13000Celk,
	NlCelk.Do13500Celk as Do13500Celk,
	NlCelk.Do14000Celk as Do14000Celk,
	NlCelk.Od14000Celk as Od14000Celk, 

	ZL1.Zmena10L1 as Zmena10L1, 
	ZL1.Zmena30L1 as Zmena30L1,
	ZL1.Zmena31L1 as Zmena31L1,
	ZL1.Zmena40L1 as Zmena40L1,
	ZL1.Zmena41L1 as Zmena41L1,	
	ZL1.Zmena42L1 as Zmena42L1,
	ZL1.Zmena43L1 as Zmena43L1,
	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
	ZL1.Zmena51L1 as Zmena51L1,
	ZL1.Zmena52L1 as Zmena52L1,
	ZL1.Zmena53L1 as Zmena53L1,
	ZL1.Zmena54L1 as Zmena54L1,
	ZL1.Zmena55L1 as Zmena55L1,
	ZL1.Zmena56L1 as Zmena56L1,
	ZL1.Zmena57L1 as Zmena57L1,
	ZL1.Zmena58L1 as Zmena58L1,
	ZL1.Zmena59L1 as Zmena59L1,
	ZL1.Zmena60L1 as Zmena60L1,
	ZL1.Zmena61L1 as Zmena61L1,
	ZL1.Zmena62L1 as Zmena62L1,
	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

	ZL2.Zmena10L2 as Zmena10L2, 
	ZL2.Zmena30L2 as Zmena30L2,
	ZL2.Zmena31L2 as Zmena31L2,
	ZL2.Zmena40L2 as Zmena40L2,
	ZL2.Zmena41L2 as Zmena41L2,	
	ZL2.Zmena42L2 as Zmena42L2,
	ZL2.Zmena43L2 as Zmena43L2,
	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
	ZL2.Zmena51L2 as Zmena51L2,
	ZL2.Zmena52L2 as Zmena52L2,
	ZL2.Zmena53L2 as Zmena53L2,
	ZL2.Zmena54L2 as Zmena54L2,
	ZL2.Zmena55L2 as Zmena55L2,
	ZL2.Zmena56L2 as Zmena56L2,
	ZL2.Zmena57L2 as Zmena57L2,
	ZL2.Zmena58L2 as Zmena58L2,
	ZL2.Zmena59L2 as Zmena59L2,
	ZL2.Zmena60L2 as Zmena60L2,
	ZL2.Zmena61L2 as Zmena61L2,
	ZL2.Zmena62L2 as Zmena62L2,
	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

	ZCelk.Zmena10Celk as Zmena10Celk, 
	ZCelk.Zmena30Celk as Zmena30Celk,
	ZCelk.Zmena31Celk as Zmena31Celk,
	ZCelk.Zmena40Celk as Zmena40Celk,
	ZCelk.Zmena41Celk as Zmena41Celk,	
	ZCelk.Zmena42Celk as Zmena42Celk,
	ZCelk.Zmena43Celk as Zmena43Celk,
	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
	ZCelk.Zmena51Celk as Zmena51Celk,
	ZCelk.Zmena52Celk as Zmena52Celk,
	ZCelk.Zmena53Celk as Zmena53Celk,
	ZCelk.Zmena54Celk as Zmena54Celk,
	ZCelk.Zmena55Celk as Zmena55Celk,
	ZCelk.Zmena56Celk as Zmena56Celk,
	ZCelk.Zmena57Celk as Zmena57Celk,
	ZCelk.Zmena58Celk as Zmena58Celk,
	ZCelk.Zmena59Celk as Zmena59Celk,
	ZCelk.Zmena60Celk as Zmena60Celk,
	ZCelk.Zmena61Celk as Zmena61Celk,
	ZCelk.Zmena62Celk as Zmena62Celk,
	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
	from @Laktacie as l

	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	
	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
	--where (Oznacenie= @chov or @chov is null )
	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

		end







--USE [plis]
--GO
--/****** Object:  StoredProcedure [dbo].[CR_ZostavaLaktacie_stupenKU]    Script Date: 13.4.2017 10:33:08 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
---- =============================================
---- Author:		PSSR, š.p.
---- Create date: 02.6.2016
---- Description:	Udaje na zostavy k laktaciam, k stvrtrocnej a rocnej zostave podla zvazu a stupna KU
---- =============================================
-- ALTER procedure [dbo].[CR_ZostavaLaktacie_stupenKU]
--	@chov varchar(9)='',
--	@datumOd date,
--	@datumDo date ='',
--	@region varchar(2)=''

--as	
--begin

--if @datumDo is null
--begin 
--set @datumDo = GETDATE () 
--end 

--Declare @Laktacie table(
--	  [PORLAK][int],
--      [CHOVATEL][varchar] (9) null,
--	  [Region] [varchar](2) NULL,
--	  [ZMENA][varchar] (2) null,
--      [MEDZIOBD][float] NULL,  
--      [LAKTDNI][float] NULL,
--      [LAKDNIN][float] NULL,
--      [MLIEKNOR][float] NULL,
--      [TUKNOR][float] NULL,
--      [BIELKNOR][float] NULL,
--      [LAKTOZAN] [float] NULL,
--	  [INDPER] [float] NULL,
--      [DOVVYR][varchar] (3) null,
--      [DATVYR][date] null,
--	  [SPVykonu_kod][varchar](2) null,
--	  [SPVykonu][varchar](100)null,
--	  [EkoChov][varchar](10) NULL
	 
	  
--      ) --ON [PRIMARY]

--declare @kravy table                                   ----od Vlada
--	(
--		[CHOV] [varchar](9) NULL,
--		[Region] [varchar](2) NULL,
--		ciskravy varchar(14),
--		PORPREBLAK int,
--		[SPVykonu_kod][varchar](2) null,
--		[SPVykonu][varchar](100)null
--		--[PocZapojL1] int NULL
--	)

--if (@region is null) 
--begin
--	if (len(@chov) = 1)
--	begin	  
--		insert into @Laktacie
--			 SELECT
-- 				 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--				 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--				 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--				 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--							else null end)as EkoChov
--			 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--			-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--			 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--			 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--			 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--				(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--				--and (reg.REGION=@region or @region is null) 
--				and lakt.kraj = @chov	
--				and a.PRIZNAK=1	
--				and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--					or (Lakt.DATUKNORL > @datumOd 
--					and Lakt.DATUKNORL <= @datumDo))
--				and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 3)
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.okres = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 6)
--		begin	
--				insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.podnik = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else if (len(@chov) = 9)
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and lakt.CHOVATEL = @chov	
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end
--		else 
--		begin
--			insert into @Laktacie
--				 SELECT
-- 					 PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					 DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--								else null end)as EkoChov
--				 FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				-- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				 left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				 left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				 left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--				where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--					(Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--					--and (reg.REGION=@region or @region is null) 
--					and a.PRIZNAK=1	
--					and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--						or (Lakt.DATUKNORL > @datumOd 
--						and Lakt.DATUKNORL <= @datumDo))
--					and eko.ZRUS is null AND eko.TYPZV='1'
--		end

--		insert @kravy
--			select 
--				@chov as CHOV, 
--				@region as Region,	
--				k.ciskravy,
--				PORPREBLAK,
--				c.KOD as SPVykonu_kod, 
--				c.NAZOV as SPVykonu
--			from CM_Krava as k
--				--left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--				left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
--				 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
-- 					--and (reg.REGION=@region or @region is null) 
--						and a.PRIZNAK=1	
-- end
-- ELSE
-- begin 
--	  insert into @Laktacie
--				SELECT
-- 					PORLAK, CHOVATEL,(select region from NC_OKRES reg where (reg.KRAJ + reg.OKRES)= Lakt.okres),--Region,
--					ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
--					DOVVYR, DATVYR, c.KOD, c.NAZOV,
--					(select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
--							else null end)as EkoChov
--				FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
--				left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= lakt.okres)
--				left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
--				left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--				left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)
			 
--			where --(substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
--				(reg.REGION=@region or @region is null) 
--				and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
--				and a.PRIZNAK=1	
--				and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
--					or (Lakt.DATUKNORL > @datumOd 
--					and Lakt.DATUKNORL <= @datumDo))
--				and eko.ZRUS is null AND eko.TYPZV='1'
					
--		insert @kravy
--			select 
--				@chov as CHOV, 
--				@region as Region,	
--				k.ciskravy,
--				PORPREBLAK,
--				c.KOD as SPVykonu_kod, 
--				c.NAZOV as SPVykonu
--			from CM_Krava as k
--				left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--				left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--				left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
	
--				 where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--					and	k.DOVVYR is null and k.PRIZNAKKU='1' 
-- 					and (reg.REGION=@region or @region is null) 
--						and a.PRIZNAK=1	
--end

----insert into @Laktacie         ----moje povodne
---- SELECT
---- 	 PORLAK, CHOVATEL,Region,
----	 ZMENA, MEDZIOBD, LAKTDNI,LAKDNIN, MLIEKNOR,TUKNOR,BIELKNOR,LAKTOZAN, INDPER,
----	 DOVVYR, DATVYR, c.KOD, c.NAZOV,
----	 (select case when @chov = (eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV) and eko.EkoChov='1' then '1' 
----				else null end)as EkoChov
---- FROM plis.dbo.View_CP_LaktaciePreZostavy as Lakt
---- left outer join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
---- left outer join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV= CHOVATEL )
---- left outer join NC_SposVyk as c on (c.KOD=a.SPVYKON)
---- left outer join NM_CHOVMAS as eko on ((eko.KRAJ + eko.OKRES + eko.PODNIK + eko.CHOV)= CHOVATEL)


----    where (substring(CHOVATEL, 1, len(@chov))=@chov or @chov is null)
----	and (Lakt.CHOVATEL in (select chov from CP_ZoznamChovov)) -- chovy, ktoré sú v kontrole úžitkovosti
----	and (reg.REGION=@region or @region is null) 
----	and a.PRIZNAK=1	
----	and ((Lakt.DATUKONL > @datumOd and Lakt.DATUKONL <= @datumDo) and (Lakt.DATUKNORL is null or Lakt.DATUKNORL > @datumOd) 
----		or (Lakt.DATUKNORL > @datumOd 
----		and Lakt.DATUKNORL <= @datumDo))
---- and eko.ZRUS is null AND eko.TYPZV='1'

 
-- --select * from  @Laktacie order by CHOVATEL


--declare @PocZapojL1 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojL1] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
		  
--	)

--	Insert @PocZapojL1
--	select 
--		@chov as CHOV, 
--		@region as Region,		
--		count(k.ciskravy) as PocZapojL1,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
--		where PORPREBLAK ='1'

--	--from CM_Krava as k
--	--left join NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(CHOVATEL, 1, 3))
--	--left join NM_HDDETAIL as a on (a.KRAJ+ a.OKRES+ a.PODNIK+ a.CHOV=CHOVATEL)
--	--left join NC_SposVyk as c on (c.KOD=a.SPVYKON)
--	--where (k.CHOVATEL in (select CHOVATEL from @Laktacie)) 
--	--	and	k.DOVVYR is null and k.PRIZNAKKU='1' and k.PORPREBLAK ='1'
-- --		and (reg.REGION=@region or @region is null) 
--	--		and a.PRIZNAK=1	
	
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,
--		SPVykonu_kod, SPVykonu
		
--		--select * from @PocZapojL1 

--declare @PocZapojL2 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojL2] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert @PocZapojL2
--	select 
--		@chov as CHOV, 
--		@region as Region,
--		count(k.ciskravy) as PocZapojL2,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
--		where  k.PORPREBLAK >='2'
 		
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end, 
--		SPVykonu_kod, SPVykonu

----select * from @PocZapojL2 

--declare @PocZapojLCelk table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocZapojLCelk] int NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert @PocZapojLCelk
--	select 
--		@chov as CHOV, 
--		@region as Region,
--		count(k.ciskravy) as PocZapojLCelk,
--		SPVykonu_kod, 
--		SPVykonu
--	from @kravy as k
	
--	group by 
--		case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(k.CHOV, 1, len(@chov))) end end,
--		SPVykonu_kod, SPVykonu
----select * from @PocZapojL1 


--declare @pocLAKV1 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,	
--	[PocLakV1] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)

--	Insert @pocLAKV1
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakV1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l	where PORLAK = '1'

--	group by  case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--		l.SPVykonu_kod,l.SPVykonu
		
--		--select * from @pocLAKV1 


--declare @pocLAKV2 table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakV2] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)
--	Insert @pocLAKV2
--	select 
--	@chov as CHOV, 
--	@region as Region, 
--	count(*) as PocLakV2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l	where PORLAK >= '2'

--	group by case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--		l.SPVykonu_kod,l.SPVykonu
		

--		--select * from @pocLAKV2

--declare @pocLAKVCelk table
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakVCelk] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--)

--	Insert @pocLAKVCelk
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakVCelk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
		
--	group by  case when @chov is null and @region is null then @chov	
--		else
--		case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--		l.SPVykonu_kod,l.SPVykonu

--		--select * from @pocLAKVCelk 

--Declare @lakt1 table
	
--	([CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakN1] [float](4) NULL,
--	[MedziobdL1] [float](7) NULL,
--    [LakdniL1] [float](7) NULL,
--    [LakdniNL1] [float](7) NULL,	
--    [MliekNorL1] [float](9) NULL,
--    [TukNorL1] [float](7) NULL,
--    [BielkNorL1] [float](7) NULL,
--    [LaktozaNL1] [float](7) NULL, 
--	[IPZL1] [float](5) NULL,
--	[VyrZootechL1] [varchar](4) NULL,
--	[VyrZdravDovL1] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	Insert into @lakt1
--	(CHOV,Region,
--	PocLakN1, MedziobdL1, LakdniL1, LakdniNL1, MliekNorL1, TukNorL1, BielkNorL1, LaktozaNL1, IPZL1, 
--	VyrZootechL1,VyrZdravDovL1,
--	SPVykonu_kod, SPVykonu)
	
--select 
--	@chov as CHOV, 
--	@region as Region,
--	count(*)  as PocLakN1, 
--	ROUND(AVG(MEDZIOBD),2)  as MedziobdL1,
--	ROUND(AVG(LAKTDNI),2) as LaktdniL1,
--	ROUND(AVG(LAKDNIN),2)as LakdniNL1,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorL1,
--	ROUND(AVG(TUKNOR),2)as TukNorL1,
--	ROUND(AVG(BIELKNOR),2) as BielkNorL1,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNL1,
--	AVG(INDPER) as IPZL1,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l. DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL1,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
--		where  PORLAK = '1'
--		and (l.ZMENA = '30' or l.ZMENA='40') 

--	group by  case when @chov is null and @region is null then @chov	
--				   else
--					case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--					l.SPVykonu_kod,l.SPVykonu
--	--select * from @lakt1  
	
--  Declare @lakt2 table
--  ( [CHOV] [varchar](9) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakN2] [float](4) NULL,
--	[MedziobdL2] [float](7) NULL,
--    [LaktDniL2] [float](7) NULL,
--    [LakDniNL2] [float](7) NULL,	
--    [MliekNorL2] [float](9) NULL,
--    [TukNorL2] [float](7) NULL,
--    [BielkNorL2] [float](7) NULL,
--    [LaktozaNL2] [float](7) NULL,
--	[IPZL2] [float](5) NULL,
--	[VyrZootechL2] [varchar](4) NULL,
--	[VyrZdravDovL2] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
-- insert @lakt2
-- select
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakN2, 
--	ROUND(AVG(MEDZIOBD),2) as MedziobdL2,
--	ROUND(AVG(LAKTDNI),2)as LaktdniL2,
--	ROUND(AVG(LAKDNIN),2)as LakdniNL2,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorL2,
--	ROUND(AVG(TUKNOR),2)as TukNorL2,
--	ROUND(AVG(BIELKNOR),2) as BielkNorL2,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNL2,
--	AVG(INDPER) as IPZL2,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechL2,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovL2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
--	where 
--	PORLAK >= '2'
--	and (l.ZMENA = '30' or l.ZMENA='40') 

--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
-- --select * from @lakt2 order by CHOV

--  Declare @laktCelkom table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[PocLakNcelk] [float] NULL,
--	[MedziobdCelk] [float] NULL,
--    [LaktDniCelk] [float] NULL,
--    [LakDniNCelk] [float] NULL,	
--    [MliekNorCelk] [float] NULL,
--    [TukNorCelk] [float] NULL,
--    [BielkNorCelk] [float] NULL,
--    [LaktozaNCelk] [float] NULL,
--	[IPZCelk] [float](5) NULL,
--	[VyrZootechCelk] [varchar](4) NULL,
--	[VyrZdravDovCelk] [varchar](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--insert @laktCelkom
--select
--	@chov as CHOV, 
--	@region as Region,
--	count(*) as PocLakCelk, 
--	ROUND(AVG(MEDZIOBD),2) as MedziobdCelk,
--	ROUND(AVG(LAKTDNI),2) as LaktdniCelk,
--	ROUND(AVG(LAKDNIN),2) as LakdniNCelk,	
--	ROUND(AVG(MLIEKNOR),2) as MliekNorCelk,
--	ROUND(AVG(TUKNOR),2) as TukNorCelk,
--	ROUND(AVG(BIELKNOR),2) as BielkNorCelk,
--	ROUND(AVG(LAKTOZAN),2) as LaktozaNCelk,
--	AVG(INDPER) as IPZCelk,
--	Sum(case when (l.DOVVYR='54' or l.DOVVYR='53' or l.DOVVYR='52' or l.DOVVYR='51' ) then 1 else 0 end) as VyrZootechCelk,
--	Sum(case when (l.DOVVYR='55' or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as VyrZdravDovCelk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu

--	from @Laktacie as l
	
--	where (l.ZMENA = '30' or l.ZMENA='40') 

--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
-- --select * from @laktCelkom order by CHOV
  
--  Declare @NormLak1 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
----	[PlemTyp] [varchar] (10) Null,
--	[Do3500L1] [float](4) NULL,
--	[Do4000L1] [float](4) NULL,
--	[Do4500L1] [float](4) NULL,
--	[Do5000L1] [float](4) NULL,
--	[Do5500L1] [float](4) NULL,
--	[Do6000L1] [float](4) NULL,
--	[Do6500L1] [float](4) NULL,
--	[Do7000L1] [float](4) NULL,
--	[Do7500L1] [float](4) NULL,
--	[Do8000L1] [float](4) NULL,
--	[Do8500L1] [float](4) NULL,
--	[Do9000L1] [float](4) NULL,
--	[Do9500L1] [float](4) NULL,
--	[Do10000L1] [float](4) NULL,
--	[Do10500L1] [float](4) NULL,
--	[Do11000L1] [float](4) NULL,
--	[Do11500L1] [float](4) NULL,
--	[Do12000L1] [float](4) NULL,
--	[Do12500L1] [float](4) NULL,
--	[Do13000L1] [float](4) NULL,
--	[Do13500L1] [float](4) NULL,
--	[Do14000L1] [float](4) NULL,
--	[Od14000L1] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
	
--	insert @NormLak1
--	select 
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
----	l.PLEM as PlemTyp,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L1, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L1, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L1, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L1, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L1, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L1, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L1, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L1, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L1, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L1, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L1, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L1, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L1, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L1, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L1, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L1, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L1, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L1, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L1, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L1, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L1, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L1, 
--	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L1,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
	
--	from @Laktacie as l
	
--	where 
--	l.PORLAK = '1'
--	and (l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	 case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--	 l.SPVykonu_kod,l.SPVykonu
	
--	--select * from @NormLak1 order by CHOV

--	Declare @NormLak2 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[Do3500L2] [float](4) NULL,
--	[Do4000L2] [float](4) NULL,
--	[Do4500L2] [float](4) NULL,
--	[Do5000L2] [float](4) NULL,
--	[Do5500L2] [float](4) NULL,
--	[Do6000L2] [float](4) NULL,
--	[Do6500L2] [float](4) NULL,
--	[Do7000L2] [float](4) NULL,
--	[Do7500L2] [float](4) NULL,
--	[Do8000L2] [float](4) NULL,
--	[Do8500L2] [float](4) NULL,
--	[Do9000L2] [float](4) NULL,
--	[Do9500L2] [float](4) NULL,
--	[Do10000L2] [float](4) NULL,
--	[Do10500L2] [float](4) NULL,
--	[Do11000L2] [float](4) NULL,
--	[Do11500L2] [float](4) NULL,
--	[Do12000L2] [float](4) NULL,
--	[Do12500L2] [float](4) NULL,
--	[Do13000L2] [float](4) NULL,
--	[Do13500L2] [float](4) NULL,
--	[Do14000L2] [float](4) NULL,
--	[Od14000L2] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @NormLak2
--	select
--	@chov as CHOV, 
--	@region as Region,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500L2, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000L2, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500L2, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000L2, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500L2, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000L2, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500L2, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000L2, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500L2, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000L2, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500L2, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000L2, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500L2, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000L2, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500L2, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000L2, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500L2, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000L2, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500L2, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000L2, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500L2, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000L2, 
--	Sum(case when  l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000L2,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
	
--	where 
--	l.PORLAK >= '2'
--	and (l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
--	--select * from @NormLak2 order by CHOV
	
--	Declare @NormLakCelk table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	[Do3500Celk] [float](4) NULL,
--	[Do4000Celk] [float](4) NULL,
--	[Do4500Celk] [float](4) NULL,
--	[Do5000Celk] [float](4) NULL,
--	[Do5500Celk] [float](4) NULL,
--	[Do6000Celk] [float](4) NULL,
--	[Do6500Celk] [float](4) NULL,
--	[Do7000Celk] [float](4) NULL,
--	[Do7500Celk] [float](4) NULL,
--	[Do8000Celk] [float](4) NULL,
--	[Do8500Celk] [float](4) NULL,
--	[Do9000Celk] [float](4) NULL,
--	[Do9500Celk] [float](4) NULL,
--	[Do10000Celk] [float](4) NULL,
--	[Do10500Celk] [float](4) NULL,
--	[Do11000Celk] [float](4) NULL,
--	[Do11500Celk] [float](4) NULL,
--	[Do12000Celk] [float](4) NULL,
--	[Do12500Celk] [float](4) NULL,
--	[Do13000Celk] [float](4) NULL,
--	[Do13500Celk] [float](4) NULL,
--	[Do14000Celk] [float](4) NULL,
--	[Od14000Celk] [float](4) NULL,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	insert @NormLakCelk
--	select
--	@chov as CHOV, 
--	@region as Region,
--	Sum(case when l.MLIEKNOR<='3500' then 1 else 0 end) as Do3500Celk, 
--	Sum(case when (l.MLIEKNOR>'3500' and l.MLIEKNOR<='4000') then 1 else 0 end) as Do4000Celk, 
--	Sum(case when (l.MLIEKNOR>'4000' and l.MLIEKNOR<='4500') then 1 else 0 end) as Do4500Celk, 
--	Sum(case when (l.MLIEKNOR>'4500' and l.MLIEKNOR<='5000') then 1 else 0 end) as Do5000Celk, 
--	Sum(case when (l.MLIEKNOR>'5000' and l.MLIEKNOR<='5500') then 1 else 0 end) as Do5500Celk, 
--	Sum(case when (l.MLIEKNOR>'5500' and l.MLIEKNOR<='6000') then 1 else 0 end) as Do6000Celk, 
--	Sum(case when (l.MLIEKNOR>'6000' and l.MLIEKNOR<='6500') then 1 else 0 end) as Do6500Celk, 
--	Sum(case when (l.MLIEKNOR>'6500' and l.MLIEKNOR<='7000') then 1 else 0 end) as Do7000Celk, 
--	Sum(case when (l.MLIEKNOR>'7000' and l.MLIEKNOR<='7500') then 1 else 0 end) as Do7500Celk, 
--	Sum(case when (l.MLIEKNOR>'7500' and l.MLIEKNOR<='8000') then 1 else 0 end) as Do8000Celk, 
--	Sum(case when (l.MLIEKNOR>'8000' and l.MLIEKNOR<='8500') then 1 else 0 end) as Do8500Celk, 
--	Sum(case when (l.MLIEKNOR>'8500' and l.MLIEKNOR<='9000') then 1 else 0 end) as Do9000Celk, 
--	Sum(case when (l.MLIEKNOR>'9000' and l.MLIEKNOR<='9500') then 1 else 0 end) as Do9500Celk, 
--	Sum(case when (l.MLIEKNOR>'9500' and l.MLIEKNOR<='10000') then 1 else 0 end) as Do10000Celk, 
--	Sum(case when (l.MLIEKNOR>'10000' and l.MLIEKNOR<='10500') then 1 else 0 end) as Do10500Celk, 
--	Sum(case when (l.MLIEKNOR>'10500' and l.MLIEKNOR<='11000') then 1 else 0 end) as Do11000Celk, 
--	Sum(case when (l.MLIEKNOR>'11000' and l.MLIEKNOR<='11500') then 1 else 0 end) as Do11500Celk, 
--	Sum(case when (l.MLIEKNOR>'11500' and l.MLIEKNOR<='12000') then 1 else 0 end) as Do12000Celk, 
--	Sum(case when (l.MLIEKNOR>'12000' and l.MLIEKNOR<='12500') then 1 else 0 end) as Do12500Celk, 
--	Sum(case when (l.MLIEKNOR>'12500' and l.MLIEKNOR<='13000') then 1 else 0 end) as Do13000Celk, 
--	Sum(case when (l.MLIEKNOR>'13000' and  l.MLIEKNOR<='13500') then 1 else 0 end) as DO13500Celk, 
--	Sum(case when (l.MLIEKNOR>'13500' and l.MLIEKNOR<='14000') then 1 else 0 end) as DO14000Celk, 
--	Sum(case when l.MLIEKNOR>'14000' then 1 else 0 end) as Od14000Celk,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu  
	
--	from @Laktacie as l
	
--	where 
--	(l.ZMENA = '30' or l.ZMENA='40')
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,
--	l.SPVykonu_kod,l.SPVykonu

--	Declare @ZmenaL1 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10L1] [float](4) NULL,
--	[Zmena30L1] [float](4) NULL,
--	[Zmena31L1] [float](4) NULL,
--	[Zmena40L1] [float](4) NULL,
--	[Zmena41L1] [float](4) NULL,
--	[Zmena42L1] [float](4) NULL,
--	[Zmena43L1] [float](4) NULL,
--	[ZmenaCelk1L1] [float](4) NULL,
--	[Zmena51L1] [float](4) NULL,
--	[Zmena52L1] [float](4) NULL,
--	[Zmena53L1] [float](4) NULL,
--	[Zmena54L1] [float](4) NULL,
--	[Zmena55L1] [float](4) NULL,
--	[Zmena56L1] [float](4) NULL,
--	[Zmena57L1] [float](4) NULL,
--	[Zmena58L1] [float](4) NULL,
--	[Zmena59L1] [float](4) NULL,
--	[Zmena60L1] [float](4) NULL,
--	[Zmena61L1] [float](4) NULL,
--	[Zmena62L1] [float](4) NULL,
--	[ZmenaCelk2L1] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @ZmenaL1
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,
--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L1, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L1, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L1, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L1, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L1, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L1, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L1, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L1, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L1, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L1, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L1, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L1, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L1, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L1, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L1, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L1, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L1, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L1, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L1, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L1, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L1,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu  

--	from @Laktacie as l
	
--	where 
--	PORLAK='1'
	 
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaL1 order by CHOV
	
--	Declare @ZmenaL2 table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10L2] [float](4) NULL,
--	[Zmena30L2] [float](4) NULL,
--	[Zmena31L2] [float](4) NULL,
--	[Zmena40L2] [float](4) NULL,
--	[Zmena41L2] [float](4) NULL,
--	[Zmena42L2] [float](4) NULL,
--	[Zmena43L2] [float](4) NULL,
--	[ZmenaCelk1L2] [float](4) NULL,
--	[Zmena51L2] [float](4) NULL,
--	[Zmena52L2] [float](4) NULL,
--	[Zmena53L2] [float](4) NULL,
--	[Zmena54L2] [float](4) NULL,
--	[Zmena55L2] [float](4) NULL,
--	[Zmena56L2] [float](4) NULL,
--	[Zmena57L2] [float](4) NULL,
--	[Zmena58L2] [float](4) NULL,
--	[Zmena59L2] [float](4) NULL,
--	[Zmena60L2] [float](4) NULL,
--	[Zmena61L2] [float](4) NULL,
--	[Zmena62L2] [float](4) NULL,
--	[ZmenaCelk2L2] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)
--	insert @ZmenaL2
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,

--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10L2, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30L2, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31L2, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40L2, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41L2, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42L2, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43L2, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1L2, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51L2, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52L2, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53L2, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54L2, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55L2, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56L2, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57L2, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58L2, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59L2, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60L2, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61L2, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62L2, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2L2,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu
--	from @Laktacie as l
	
--	where 
--	PORLAK>='2'
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----,l.PLEM,
--	--case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaL2 order by CHOV

--	Declare @ZmenaCelk table
--  ( [CHOV] [varchar](10) NULL,
--	[Region] [varchar](2) NULL,
--	--[PlemTyp] [varchar] (10) Null,
--	[Zmena10Celk] [float](4) NULL,
--	[Zmena30Celk] [float](4) NULL,
--	[Zmena31Celk] [float](4) NULL,
--	[Zmena40Celk] [float](4) NULL,
--	[Zmena41Celk] [float](4) NULL,
--	[Zmena42Celk] [float](4) NULL,
--	[Zmena43Celk] [float](4) NULL,
--	[ZmenaCelk1Celk] [float](4) NULL,
--	[Zmena51Celk] [float](4) NULL,
--	[Zmena52Celk] [float](4) NULL,
--	[Zmena53Celk] [float](4) NULL,
--	[Zmena54Celk] [float](4) NULL,
--	[Zmena55Celk] [float](4) NULL,
--	[Zmena56Celk] [float](4) NULL,
--	[Zmena57Celk] [float](4) NULL,
--	[Zmena58Celk] [float](4) NULL,
--	[Zmena59Celk] [float](4) NULL,
--	[Zmena60Celk] [float](4) NULL,
--	[Zmena61Celk] [float](4) NULL,
--	[Zmena62Celk] [float](4) NULL,
--	[ZmenaCelk2Celk] [float](4) NULL,
--	--[CharChov_KOD][varchar] (2) null,
-- --   [CharChov][varchar] (30) null,
--	[SPVykonu_kod][varchar](2) null,
--	[SPVykonu][varchar](100)null
--	)

--	insert @ZmenaCelk
--	select
--	@chov as CHOV, 
--	@region as Region,
--	--@plem as PlemTyp,
--	--l.PLEM as PlemTyp,
--	Sum(case when l.ZMENA='10' then 1 else 0 end) as Zmena10Celk, 
--	Sum(case when l.ZMENA='30' then 1 else 0 end) as Zmena30Celk, 
--	Sum(case when l.ZMENA='31' then 1 else 0 end) as Zmena31Celk, 
--	Sum(case when l.ZMENA='40' then 1 else 0 end) as Zmena40Celk, 
--	Sum(case when l.ZMENA='41' then 1 else 0 end) as Zmena41Celk, 
--	Sum(case when l.ZMENA='42' then 1 else 0 end) as Zmena42Celk, 
--	Sum(case when l.ZMENA='43' then 1 else 0 end) as Zmena43Celk, 
--	Sum(case when (l.ZMENA='10' or l.ZMENA='30' or l.ZMENA='31' or l.ZMENA='40' or l.ZMENA='41' 
--	or l.ZMENA='42' or l.ZMENA='43') then 1 else 0 end) as ZmenaCelk1Celk, 
--	Sum(case when l.DOVVYR='51' then 1 else 0 end) as Zmena51Celk, 
--	Sum(case when l.DOVVYR='52' then 1 else 0 end) as Zmena52Celk, 
--	Sum(case when l.DOVVYR='53' then 1 else 0 end) as Zmena53Celk, 
--	Sum(case when l.DOVVYR='54' then 1 else 0 end) as Zmena54Celk, 
--	Sum(case when l.DOVVYR='55' then 1 else 0 end) as Zmena55Celk, 
--	Sum(case when l.DOVVYR='56' then 1 else 0 end) as Zmena56Celk, 
--	Sum(case when l.DOVVYR='57' then 1 else 0 end) as Zmena57Celk, 
--	Sum(case when l.DOVVYR='58' then 1 else 0 end) as Zmena58Celk, 
--	Sum(case when l.DOVVYR='59' then 1 else 0 end) as Zmena59Celk, 
--	Sum(case when l.DOVVYR='60' then 1 else 0 end) as Zmena60Celk, 
--	Sum(case when l.DOVVYR='61' then 1 else 0 end) as Zmena61Celk, 
--	Sum(case when l.DOVVYR='62' then 1 else 0 end) as Zmena62Celk, 
--	Sum(case when (l.DOVVYR='51' or l.DOVVYR='52' or l.DOVVYR='53' or l.DOVVYR='54' or l.DOVVYR='55' 
--	or l.DOVVYR='56' or l.DOVVYR='57' or l.DOVVYR='58' or l.DOVVYR='59' or l.DOVVYR='60' ) then 1 else 0 end) as ZmenaCelk2Celk,
--	--CharChov_Kod as CharChov_KOD,
--	--CharChov as Charchov,
--	SPVykonu_kod as SPVykonu_kod,
--	SPVykonu as SPVykonu   

--	from @Laktacie as l
	
--	group by case when @chov is null and @region is null then @chov else
--	case when @chov is null then @region else (substring(l.CHOVATEL, 1, len(@chov))) end end,--l.CharChov_KOD,l.CharChov,
--	l.SPVykonu_kod,l.SPVykonu
----, l.PLEM,
----	case when @plem is not null then l.PLEM end 
	
--	--select * from @ZmenaCelk order by CHOV

----------create table CR_LaktacneZostavy 
----------		(
----------		[Oznacenie] [varchar](9) NULL, [DatumOd][date] null, [DatumDo][date] null,
----------		[Region] [varchar](2) NULL,
----------		[PlemTyp] [varchar] (10) null,

----------		[PocZapojL1] int NULL, [PocLakV1] [float] NULL,[PocLakN1] [float] NULL,
----------		[MedziobdL1] [varchar](10) NULL, [LakdniL1] [float] NULL,	[LakdniNL1] [float] NULL,	[MliekNorL1] [float] NULL, [TukNorL1] [float] NULL,	[BielkNorL1] [float] NULL,
----------		[LaktozaNL1] [float] NULL, [IPZL1] [float](5) NULL,[VyrZootechL1] [varchar](4) NULL,	[VyrZdravDovL1] [varchar](4) NULL,
	
----------		[PocZapojL2] int NULL,[PocLakV2] [float] NULL,[PocLakN2] [float] NULL,[MedziobdL2] [float] NULL,[LaktDniL2] [float] NULL,[LakDniNL2] [float] NULL,	
----------		[MliekNorL2] [float] NULL, [TukNorL2] [float] NULL, [BielkNorL2] [float] NULL, [LaktozaNL2] [float] NULL,[IPZL2] [float](5) NULL, [VyrZootechL2] [varchar](4) NULL,	[VyrZdravDovL2] [varchar](4) NULL,

----------		[PocZapojCelk] int NULL, [PocLakVcelk] [float] NULL, [PocLakNcelk] [float] NULL,[MedziobdCelk] [float] NULL, [LaktDniCelk] [float] NULL, 
----------		[LakDniNCelk] [float] NULL, [MliekNorCelk] [float] NULL, [TukNorCelk] [float] NULL, [BielkNorCelk] [float] NULL, [LaktozaNCelk] [float] NULL, [IPZCelk] [float](5) NULL,
----------		[VyrZootechCelk] [varchar](4) NULL, [VyrZdravDovCelk] [varchar](4) NULL,
 
----------		[Do3500L1] [float](4) NULL,	[Do4000L1] [float](4) NULL, [Do4500L1] [float](4) NULL,	[Do5000L1] [float](4) NULL,	[Do5500L1] [float](4) NULL,	[Do6000L1] [float](4) NULL,
----------		[Do6500L1] [float](4) NULL,	[Do7000L1] [float](4) NULL,	[Do7500L1] [float](4) NULL,	[Do8000L1] [float](4) NULL,	[Do8500L1] [float](4) NULL,	[Do9000L1] [float](4) NULL,
----------		[Do9500L1] [float](4) NULL,	[Do10000L1] [float](4) NULL,[Do10500L1] [float](4) NULL,[Do11000L1] [float](4) NULL,[Do11500L1] [float](4) NULL,[Do12000L1] [float](4) NULL,
----------		[Do12500L1] [float](4) NULL,[Do13000L1] [float](4) NULL,[Do13500L1] [float](4) NULL,[Do14000L1] [float](4) NULL,[Od14000L1] [float](4) NULL,
		
----------		[Do3500L2] [float](4) NULL,	[Do4000L2] [float](4) NULL, [Do4500L2] [float](4) NULL, [Do5000L2] [float](4) NULL,	[Do5500L2] [float](4) NULL,	[Do6000L2] [float](4) NULL,
----------		[Do6500L2] [float](4) NULL,	[Do7000L2] [float](4) NULL,	[Do7500L2] [float](4) NULL,	[Do8000L2] [float](4) NULL,	[Do8500L2] [float](4) NULL,	[Do9000L2] [float](4) NULL,
----------		[Do9500L2] [float](4) NULL,	[Do10000L2] [float](4) NULL,[Do10500L2] [float](4) NULL,[Do11000L2] [float](4) NULL,[Do11500L2] [float](4) NULL,[Do12000L2] [float](4) NULL,
----------		[Do12500L2] [float](4) NULL,[Do13000L2] [float](4) NULL,[Do13500L2] [float](4) NULL,[Do14000L2] [float](4) NULL,[Od14000L2] [float](4) NULL,

----------		[Do3500Celk] [float](4) NULL,[Do4000Celk] [float](4) NULL,[Do4500Celk] [float](4) NULL,	[Do5000Celk] [float](4) NULL,[Do5500Celk] [float](4) NULL,[Do6000Celk] [float](4) NULL,
----------		[Do6500Celk] [float](4) NULL,[Do7000Celk] [float](4) NULL,[Do7500Celk] [float](4) NULL,	[Do8000Celk] [float](4) NULL,[Do8500Celk] [float](4) NULL,[Do9000Celk] [float](4) NULL,
----------		[Do9500Celk] [float](4) NULL,[Do10000Celk] [float](4) NULL,[Do10500Celk] [float](4) NULL,[Do11000Celk] [float](4) NULL,[Do11500Celk] [float](4) NULL,[Do12000Celk] [float](4) NULL,
----------		[Do12500Celk] [float](4) NULL,[Do13000Celk] [float](4) NULL,[Do13500Celk] [float](4) NULL,[Do14000Celk] [float](4) NULL,[Od14000Celk] [float](4) NULL,
		

----------	[Zmena10L1] [float](4) NULL,[Zmena30L1] [float](4) NULL,[Zmena31L1] [float](4) NULL,[Zmena40L1] [float](4) NULL,[Zmena41L1] [float](4) NULL,[Zmena42L1] [float](4) NULL,
----------	[Zmena43L1] [float](4) NULL,[ZmenaCelk1L1] [float](4) NULL,[Zmena51L1] [float](4) NULL,[Zmena52L1] [float](4) NULL,[Zmena53L1] [float](4) NULL,[Zmena54L1] [float](4) NULL,[Zmena55L1] [float](4) NULL,[Zmena56L1] [float](4) NULL,
----------	[Zmena57L1] [float](4) NULL,[Zmena58L1] [float](4) NULL,[Zmena59L1] [float](4) NULL,[Zmena60L1] [float](4) NULL,[Zmena61L1] [float](4) NULL,[Zmena62L1] [float](4) NULL,[ZmenaCelk2L1] [float](4) NULL,
	
----------	[Zmena10L2] [float](4) NULL,[Zmena30L2] [float](4) NULL,[Zmena31L2] [float](4) NULL,[Zmena40L2] [float](4) NULL,[Zmena41L2] [float](4) NULL,[Zmena42L2] [float](4) NULL,
----------	[Zmena43L2] [float](4) NULL,[ZmenaCelk1L2] [float](4) NULL,[Zmena51L2] [float](4) NULL,[Zmena52L2] [float](4) NULL,[Zmena53L2] [float](4) NULL,[Zmena54L2] [float](4) NULL,[Zmena55L2] [float](4) NULL,[Zmena56L2] [float](4) NULL,
----------	[Zmena57L2] [float](4) NULL,[Zmena58L2] [float](4) NULL,[Zmena59L2] [float](4) NULL,[Zmena60L2] [float](4) NULL,[Zmena61L2] [float](4) NULL,[Zmena62L2] [float](4) NULL,[ZmenaCelk2L2] [float](4) NULL,

----------	[Zmena10Celk] [float](4) NULL,[Zmena30Celk] [float](4) NULL,[Zmena31Celk] [float](4) NULL,[Zmena40Celk] [float](4) NULL,[Zmena41Celk] [float](4) NULL,[Zmena42Celk] [float](4) NULL,
----------	[Zmena43Celk] [float](4) NULL,[ZmenaCelk1Celk] [float](4) NULL,[Zmena51Celk] [float](4) NULL,[Zmena52Celk] [float](4) NULL,[Zmena53Celk] [float](4) NULL,[Zmena54Celk] [float](4) NULL,
----------	[Zmena55Celk] [float](4) NULL,[Zmena56Celk] [float](4) NULL,[Zmena57Celk] [float](4) NULL,[Zmena58Celk] [float](4) NULL,[Zmena59Celk] [float](4) NULL,[Zmena60Celk] [float](4) NULL,
----------	[Zmena61Celk] [float](4) NULL,[Zmena62Celk] [float](4) NULL,[ZmenaCelk2Celk] [float](4) NULL
	
	
----------	)

--------IF EXISTS(
--------SELECT count(*) as pocet FROM plis.dbo.CR_LaktacneZostavy 
--------WHERE 
--------	(Oznacenie = case when @chov is null then ('R'+ @region) else @chov end)
--------	and DatumOd = @datumOd and DatumDo = @datumDo
--------)
--------BEGIN
--------	DELETE FROM CR_LaktacneZostavy  WHERE 
--------	(Oznacenie=case when @chov is null then ('R'+ @region) else @chov end)
--------	--(chov like @chov+'%' or @chov is null) 
--------	and DatumOd = @datumOd and DatumDo = @datumDo
--------END

--insert dbo.CR_LaktacneZostavy 
--	(
--	Oznacenie,DatumOd,DatumDo,Filter,datumGenerovania, Region,PlemTyp,EkoChov,

--	PocZapojL1, PocLakV1, PocLakN1, MedziobdL1,LakdniL1,LakdniNL1,MliekNorL1,TukNorL1, BielkNorL1,	LaktozaNL1, IPZL1, VyrZootechL1, VyrZdravDovL1,
	
--	PocZapojL2, PocLakV2,PocLakN2,MedziobdL2,LaktDniL2,LakDniNL2,MliekNorL2,TukNorL2, BielkNorL2, LaktozaNL2, IPZL2, VyrZootechL2, VyrZdravDovL2,

--	PocZapojCelk,PocLakVcelk,PocLakNcelk,MedziobdCelk,LaktDniCelk, LakDniNCelk, MliekNorCelk,TukNorCelk, BielkNorCelk, LaktozaNCelk, IPZCelk, VyrZootechCelk, VyrZdravDovCelk,

--	Do3500L1,Do4000L1,Do4500L1, Do5000L1,Do5500L1, Do6000L1, Do6500L1, Do7000L1, Do7500L1, Do8000L1, Do8500L1,
--	Do9000L1, Do9500L1, Do10000L1, Do10500L1, Do11000L1, Do11500L1,Do12000L1,Do12500L1, Do13000L1,Do13500L1, Do14000L1, Od14000L1,
	 
--	Do3500L2, Do4000L2, Do4500L2, Do5000L2, Do5500L2, Do6000L2, Do6500L2, Do7000L2, Do7500L2, Do8000L2,Do8500L2, Do9000L2,Do9500L2, 
--	Do10000L2, Do10500L2, Do11000L2, Do11500L2, Do12000L2, Do12500L2, Do13000L2,Do13500L2, Do14000L2, Od14000L2,
	 
--	Do3500Celk, Do4000Celk, Do4500Celk, Do5000Celk, Do5500Celk, Do6000Celk, Do6500Celk, Do7000Celk,	Do7500Celk, Do8000Celk, Do8500Celk,
--	Do9000Celk, Do9500Celk,Do10000Celk, Do10500Celk,Do11000Celk, Do11500Celk,Do12000Celk, Do12500Celk, Do13000Celk, Do13500Celk, Do14000Celk, Od14000Celk,

--	Zmena10L1, Zmena30L1,Zmena31L1,Zmena40L1,Zmena41L1,	Zmena42L1,Zmena43L1,ZmenaCelk1L1,Zmena51L1,Zmena52L1,Zmena53L1,Zmena54L1,Zmena55L1,Zmena56L1,Zmena57L1,
--	Zmena58L1,Zmena59L1,Zmena60L1,Zmena61L1,Zmena62L1,ZmenaCelk2L1,

--	Zmena10L2, Zmena30L2,Zmena31L2,Zmena40L2,Zmena41L2,	Zmena42L2,Zmena43L2,ZmenaCelk1L2,Zmena51L2,Zmena52L2,Zmena53L2,Zmena54L2,Zmena55L2,Zmena56L2,Zmena57L2,
--	Zmena58L2,Zmena59L2,Zmena60L2,Zmena61L2,Zmena62L2,ZmenaCelk2L2,
	
--	Zmena10Celk, Zmena30Celk,Zmena31Celk,Zmena40Celk,Zmena41Celk,	Zmena42Celk,Zmena43Celk,ZmenaCelk1Celk,Zmena51Celk,Zmena52Celk,Zmena53Celk,Zmena54Celk,Zmena55Celk,Zmena56Celk,Zmena57Celk,
--	Zmena58Celk,Zmena59Celk,Zmena60Celk,Zmena61Celk,Zmena62Celk,ZmenaCelk2Celk
--	)

--	select distinct
--	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end) as Oznacenie,
--	(Select distinct case when @chov is null and @region is null then ('SR') else
--	case when @chov is null then ('R'+ @region) else  @chov end end)as Oznacenie,
--	@datumOd as DatumOd,
--	@datumDo as DatumDo,
--	--(Select distinct case when @chov is null then ('R'+ @region) else @chov end)+','+l.Plem as Filter,
--	(Select distinct case when @chov is null and @region is null then ('SR') else
--	case when @chov is null then ('R'+ @region) else  @chov end end) +', ,'+('StKU'+l.SPVykonu_kod) as Filer,
--	getdate() as datumGenerovania,
--	@region as Region,
--	--@plem as PlemTyp,
--	--(Select distinct case when l.PLEM is null then 'BEZ' else PLEM end)as PlemTyp, 
--	null as PlemTyp,
--	l.EkoChov as EkoChov,
--	ZapojL1.PocZapojL1 as PocZapojL1,
--	ROUND(LAKV1.PocLakV1,2) as PocLakV1, 
--	ROUND(L1.PocLakN1,2) as PocLakN1, 
--	convert(varchar, round(L1.MEDZIOBDL1 / 30.42, 0))+' / '+convert(varchar, convert(decimal(5,0), ROUND( convert(int, L1.MedziobdL1) % 30.42, 0)) ) AS  MedziobdL1,
--	ROUND(L1.LakdniL1,2) as LakdniL1,
--	ROUND(L1.LakdniNL1,2) as LakdniNL1,
--	ROUND(L1.MliekNorL1,2) as MliekNorL1,
--	ROUND(L1.TukNorL1,2) as TukNorL1,
--	ROUND(L1.BielkNorL1,2) as BielkNorL1 ,
--	ROUND(L1.LaktozaNL1,2) as LaktozaNL1, 
--	ROUND(L1.IPZL1,2) as IPZL1,
--	L1.VyrZootechL1 as VyrZootechL1,
--	L1.VyrZdravDovL1 as VyrZdravDovL1,

--	ZapojL2.PocZapojL2 as PocZapojL2, 
--	ROUND(LAKV2.PocLakV2,2) as PocLakV2,
--	ROUND(L2.PocLakN2,2) as PocLakN2,
--	ROUND(L2.MedziobdL2,2) as MedziobdL2,
--	ROUND(L2.LaktDniL2,2) as LaktDniL2,
--	ROUND(L2.LakDniNL2,2) as LakDniNL2,
--	ROUND(L2.MliekNorL2,2) as MliekNorL2,
--	ROUND(L2.TukNorL2,2) as TukNorL2,
--	ROUND(L2.BielkNorL2,2) as BielkNorL2,
--	ROUND(L2.LaktozaNL2,2) as LaktozaNL2,
--	ROUND(L2.IPZL2,2) as IPZL2,
--	L2.VyrZootechL2 as VyrZootechL2,
--	L2.VyrZdravDovL2 as VyrZdravDovL2,

--	ZapojLCelk.PocZapojLCelk as PocZapojCelk, 
--	ROUND(LAKVC.PocLakVcelk,2) as PocLakVcelk,
--	ROUND(lCelk.PocLakNcelk,2) as PocLakNcelk,
--	ROUND(lCelk.MedziobdCelk,2) as MedziobdCelk,
--	ROUND(lCelk.LaktDniCelk,2) as LaktDniCelk,
--	ROUND(lCelk.LakDniNCelk,2) as LakDniNCelk,
--	ROUND(lCelk.MliekNorCelk,2) as MliekNorCelk,
--	ROUND(lCelk.TukNorCelk,2) as TukNorCelk,
--	ROUND(lCelk.BielkNorCelk,2) as BielkNorCelk,
--	ROUND(lCelk.LaktozaNCelk,2) as LaktozaNCelk,
--	ROUND(lCelk.IPZCelk,2) as IPZCelk,
--	lCelk.VyrZootechCelk as VyrZootechCelk,
--	lCelk.VyrZdravDovCelk as VyrZdravDovCelk,

--	NL1.Do3500L1 AS Do3500L1,
--	NL1.Do4000L1 as Do4000L1,
--	NL1.Do4500L1 as Do4500L1,
--	NL1.Do5000L1 as Do5000L1,
--	NL1.Do5500L1 as Do5500L1,
--	NL1.Do6000L1 as Do6000L1,
--	NL1.Do6500L1 as Do6500L1,
--	NL1.Do7000L1 as Do7000L1,
--	NL1.Do7500L1 as Do7500L1,
--	NL1.Do8000L1 as Do8000L1,
--	NL1.Do8500L1 as Do8500L1,
--	NL1.Do9000L1 as Do9000L1,
--	NL1.Do9500L1 as Do9500L1,
--	NL1.Do10000L1 as Do10000L1,
--	NL1.Do10500L1 as Do10500L1,
--	NL1.Do11000L1 as Do11000L1,
--	NL1.Do11500L1 as Do11500L1,
--	NL1.Do12000L1 as Do12000L1,
--	NL1.Do12500L1 as Do12500L1,
--	NL1.Do13000L1 as Do13000L1,
--	NL1.Do13500L1 as Do13500L1,
--	NL1.Do14000L1 as Do14000L1,
--	NL1.Od14000L1 as Od14000L1,
	 
--	NL2.Do3500L2 AS Do3500L2,
--	NL2.Do4000L2 as Do4000L2,
--	NL2.Do4500L2 as Do4500L2,
--	NL2.Do5000L2 as Do5000L2,
--	NL2.Do5500L2 as Do5500L2,
--	NL2.Do6000L2 as Do6000L2,
--	NL2.Do6500L2 as Do6500L2,
--	NL2.Do7000L2 as Do7000L2,
--	NL2.Do7500L2 as Do7500L2,
--	NL2.Do8000L2 as Do8000L2,
--	NL2.Do8500L2 as Do8500L2,
--	NL2.Do9000L2 as Do9000L2,
--	NL2.Do9500L2 as Do9500L2,
--	NL2.Do10000L2 as Do10000L2,
--	NL2.Do10500L2 as Do10500L2,
--	NL2.Do11000L2 as Do11000L2,
--	NL2.Do11500L2 as Do11500L2,
--	NL2.Do12000L2 as Do12000L2,
--	NL2.Do12500L2 as Do12500L2,
--	NL2.Do13000L2 as Do13000L2,
--	NL2.Do13500L2 as Do13500L2,
--	NL2.Do14000L2 as Do14000L2,
--	NL2.Od14000L2 as Od14000L2,
	 
--	NlCelk.Do3500Celk AS Do3500Celk,
--	NlCelk.Do4000Celk as Do4000Celk,
--	NlCelk.Do4500Celk as Do4500Celk,
--	NlCelk.Do5000Celk as Do5000Celk,
--	NlCelk.Do5500Celk as Do5500Celk,
--	NlCelk.Do6000Celk as Do6000Celk,
--	NlCelk.Do6500Celk as Do6500Celk,
--	NlCelk.Do7000Celk as Do7000Celk,
--	NlCelk.Do7500Celk as Do7500Celk,
--	NlCelk.Do8000Celk as Do8000Celk,
--	NlCelk.Do8500Celk as Do8500Celk,
--	NlCelk.Do9000Celk as Do9000Celk,
--	NlCelk.Do9500Celk as Do9500Celk,
--	NlCelk.Do10000Celk as Do10000Celk,
--	NlCelk.Do10500Celk as Do10500Celk,
--	NlCelk.Do11000Celk as Do11000Celk,
--	NlCelk.Do11500Celk as Do11500Celk,
--	NlCelk.Do12000Celk as Do12000Celk,
--	NlCelk.Do12500Celk as Do12500Celk,
--	NlCelk.Do13000Celk as Do13000Celk,
--	NlCelk.Do13500Celk as Do13500Celk,
--	NlCelk.Do14000Celk as Do14000Celk,
--	NlCelk.Od14000Celk as Od14000Celk, 

--	ZL1.Zmena10L1 as Zmena10L1, 
--	ZL1.Zmena30L1 as Zmena30L1,
--	ZL1.Zmena31L1 as Zmena31L1,
--	ZL1.Zmena40L1 as Zmena40L1,
--	ZL1.Zmena41L1 as Zmena41L1,	
--	ZL1.Zmena42L1 as Zmena42L1,
--	ZL1.Zmena43L1 as Zmena43L1,
--	ZL1.ZmenaCelk1L1 as ZmenaCelk1L1,
--	ZL1.Zmena51L1 as Zmena51L1,
--	ZL1.Zmena52L1 as Zmena52L1,
--	ZL1.Zmena53L1 as Zmena53L1,
--	ZL1.Zmena54L1 as Zmena54L1,
--	ZL1.Zmena55L1 as Zmena55L1,
--	ZL1.Zmena56L1 as Zmena56L1,
--	ZL1.Zmena57L1 as Zmena57L1,
--	ZL1.Zmena58L1 as Zmena58L1,
--	ZL1.Zmena59L1 as Zmena59L1,
--	ZL1.Zmena60L1 as Zmena60L1,
--	ZL1.Zmena61L1 as Zmena61L1,
--	ZL1.Zmena62L1 as Zmena62L1,
--	ZL1.ZmenaCelk2L1 asZmenaCelk2L1,

--	ZL2.Zmena10L2 as Zmena10L2, 
--	ZL2.Zmena30L2 as Zmena30L2,
--	ZL2.Zmena31L2 as Zmena31L2,
--	ZL2.Zmena40L2 as Zmena40L2,
--	ZL2.Zmena41L2 as Zmena41L2,	
--	ZL2.Zmena42L2 as Zmena42L2,
--	ZL2.Zmena43L2 as Zmena43L2,
--	ZL2.ZmenaCelk1L2 as ZmenaCelk1L2,
--	ZL2.Zmena51L2 as Zmena51L2,
--	ZL2.Zmena52L2 as Zmena52L2,
--	ZL2.Zmena53L2 as Zmena53L2,
--	ZL2.Zmena54L2 as Zmena54L2,
--	ZL2.Zmena55L2 as Zmena55L2,
--	ZL2.Zmena56L2 as Zmena56L2,
--	ZL2.Zmena57L2 as Zmena57L2,
--	ZL2.Zmena58L2 as Zmena58L2,
--	ZL2.Zmena59L2 as Zmena59L2,
--	ZL2.Zmena60L2 as Zmena60L2,
--	ZL2.Zmena61L2 as Zmena61L2,
--	ZL2.Zmena62L2 as Zmena62L2,
--	ZL2.ZmenaCelk2L2 asZmenaCelk2L2,

--	ZCelk.Zmena10Celk as Zmena10Celk, 
--	ZCelk.Zmena30Celk as Zmena30Celk,
--	ZCelk.Zmena31Celk as Zmena31Celk,
--	ZCelk.Zmena40Celk as Zmena40Celk,
--	ZCelk.Zmena41Celk as Zmena41Celk,	
--	ZCelk.Zmena42Celk as Zmena42Celk,
--	ZCelk.Zmena43Celk as Zmena43Celk,
--	ZCelk.ZmenaCelk1Celk as ZmenaCelk1Celk,
--	ZCelk.Zmena51Celk as Zmena51Celk,
--	ZCelk.Zmena52Celk as Zmena52Celk,
--	ZCelk.Zmena53Celk as Zmena53Celk,
--	ZCelk.Zmena54Celk as Zmena54Celk,
--	ZCelk.Zmena55Celk as Zmena55Celk,
--	ZCelk.Zmena56Celk as Zmena56Celk,
--	ZCelk.Zmena57Celk as Zmena57Celk,
--	ZCelk.Zmena58Celk as Zmena58Celk,
--	ZCelk.Zmena59Celk as Zmena59Celk,
--	ZCelk.Zmena60Celk as Zmena60Celk,
--	ZCelk.Zmena61Celk as Zmena61Celk,
--	ZCelk.Zmena62Celk as Zmena62Celk,
--	ZCelk.ZmenaCelk2Celk as ZmenaCelk2Celk
	 
--	from @Laktacie as l

--	left outer join @PocZapojL1 ZapojL1 on ((ZapojL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @PocZapojL2 ZapojL2 on ((ZapojL2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @PocZapojLCelk  ZapojLCelk on ((ZapojLCelk.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and ZapojLCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @pocLAKV1  LAKV1 on ((LAKV1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @pocLAKV2  LAKV2 on ((LAKV2.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKV2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer join @pocLAKVCelk LAKVC on ((LAKVC.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and LAKVC.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @lakt1  L1 on ((L1.CHOV =  substring(l.CHOVATEL, 1, len(@chov))or @chov is null) and L1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @lakt2  L2 on ((substring(l.CHOVATEL, 1, len(@chov))= L2.CHOV or @chov is null) and L2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @laktCelkom as lCelk on (( substring(l.CHOVATEL, 1, len(@chov))= lCelk.CHOV or @chov is null) and lCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLak1  NL1 on ((NL1.CHOV =  substring(l.CHOVATEL, 1, len(@chov)) or @chov is null) and NL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLak2  NL2 on ((substring(l.CHOVATEL, 1, len(@chov))= NL2.CHOV or @chov is null) and NL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @NormLakCelk as NlCelk on ((substring(CHOVATEL, 1, len(@chov))= NlCelk.CHOV or @chov is null) and NlCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaL1 as ZL1 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL1.CHOV or @chov is null) and ZL1.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaL2 as ZL2 on ((substring(l.CHOVATEL, 1, len(@chov))= ZL2.CHOV or @chov is null) and ZL2.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join @ZmenaCelk as ZCelk on ((substring(l.CHOVATEL, 1, len(@chov))= ZCelk.CHOV or @chov is null) and ZCelk.SPVykonu_kod=l.SPVykonu_kod)
--	left outer  join  NC_OKRES as reg on ((reg.KRAJ + reg.OKRES)= substring(l.CHOVATEL, 1, 3) or @chov is null)
	
--	--where (substring(l.CHOVATEL, 1, len(@chov))=@chov or @chov is null) and (l.Region=@region or @region is null) 
	
--	--select * from plis.dbo.CR_LaktacneZostavy --order by Oznacenie
--	--where (Oznacenie= @chov or @chov is null )
--	--and DatumOd=@datumOd and DatumDo = @datumDo and (REGION = @region or @region is null) 
	

--		end
go

-- prehlad o stave a preukaznosti povodu teliat pre chov za mesiac a rok
-- vstupne parametre:
-- chov
-- rok
-- mesiac
-- 
-- procedura sa vola automaticky z procedury CR_Zoznam_teliat_za_mesiac
--
-- Autor: Roman Rafaj, 20.10.2015
-- verzia 1.0: uvodna proc
--		  1.1: zrusenie dekad	


CREATE PROCEDURE [dbo].[C_Zoznam_teliat_za_mesiac_sumar]

	@CHOV [varchar](9),
	@Rok int,
	@Mesiac int--,
    --@dekada int

AS

BEGIN


IF  NOT EXISTS (SELECT * FROM sys.objects 

WHERE object_id = OBJECT_ID(N'[plis].[dbo].[CR_Zoznam_teliat_za_mesiac_sumar]') AND type in (N'U'))


CREATE TABLE	[plis].[dbo].[CR_Zoznam_teliat_za_mesiac_sumar]  (
		
				chov[varchar](9),
				preukazany [int] NULL,
				duplicitny [int] NULL,
				nepreukazany [int] NULL,
				dodatocne_urceny [int] NULL,
				neznamy [int] NULL,
				spolu_teliat [int] NULL,
				mesiac [int],
				rok [INT],
				dekada [int]

				)


-- kukneme do tabulky, ci existuje zaznam pre chov, mesiac, rok, ak ano, tak ho zmazeme, bude sa vkladat novy
IF EXISTS (
SELECT count(*) as pocet FROM plis.dbo.CR_Zoznam_teliat_za_mesiac_sumar WHERE chov=@chov AND mesiac = @mesiac AND rok = @rok /*AND dekada = @dekada*/)
		BEGIN
		DELETE FROM CR_Zoznam_teliat_za_mesiac_sumar WHERE chov=@chov AND mesiac = @mesiac AND rok = @rok --AND dekada = @dekada
		END


-- spocitame telata podla ciselnika CC_Povod, vlozim do tabulky

INSERT INTO [plis].[dbo].[CR_Zoznam_teliat_za_mesiac_sumar]

SELECT	@chov as chov,
		COUNT(CASE WHEN p.kod = 1 THEN 1 ELSE NULL END) AS preukazany, 
		COUNT(CASE WHEN p.kod = 2 THEN 1 ELSE NULL END) AS duplicitny,
		COUNT(CASE WHEN p.kod = 3 THEN 1 ELSE NULL END) AS nepreukazany,
		COUNT(CASE WHEN p.kod = 4 THEN 1 ELSE NULL END) AS dodatocne_urceny,
		COUNT(CASE WHEN p.kod = 5 THEN 1 ELSE NULL END) AS neznamy,
		COUNT (chov) AS spolu_teliat,
		@mesiac as mesiac,
		@rok as rok,
		/*@dekada*/ null AS dekada
FROM plis.dbo.CR_Zoznam_teliat_za_mesiac zoznam
LEFT JOIN CM_Telata t ON (zoznam.Cislo_Telata = t.CISTELATA OR (zoznam.Dat_Nar = t.DATNAR AND zoznam.Matka = t.MATKA AND zoznam.Cislo_Telata IS NULL))
LEFT JOIN CC_Povod p ON (t.PREUKAZ = p.KOD)
WHERE (zoznam.chov = @chov AND zoznam.rok = @rok AND zoznam.mesiac = @mesiac /*AND zoznam.dekada = @dekada*/)

SELECT * FROM CR_Zoznam_teliat_za_mesiac_sumar WHERE chov = @chov AND rok = @rok and mesiac = @mesiac --AND dekada = @dekada

END
go

-- =============================================
-- Author:		Vladimir Durech, PSSR
-- Create date: 10.05.2017
-- Description:	Doplni datumy tym, ktory nemaju na zaklade rodicov resp potomkov
--				a zaroven doplni povodne koeficienty z Ainbreedingu
-- =============================================
CREATE PROCEDURE [dbo].[Pribuznost_DoplnDatumy_sprac_nove] 
AS
BEGIN			
	update Ainbreeding_Sprac
	set datnar = (select top 1  dateadd(yy, 1, datnar) from Ainbreeding_Sprac s where s.uscislo = Ainbreeding_Sprac.otec and   s.datnar is not null)
	where datnar is null


	update Ainbreeding_Sprac
	set datnar = (select top 1 dateadd(yy, 1, datnar) from Ainbreeding_Sprac s where s.uscislo = Ainbreeding_Sprac.matka and s.datnar is not null)
	where datnar is null




	update Ainbreeding_Sprac
	set datnar =  (select dateadd(yy, -1, min(datnar)) from Ainbreeding_Sprac s where s.otec = Ainbreeding_Sprac.uscislo and   s.datnar is not null)
	where datnar is null

	update Ainbreeding_Sprac
	set datnar =  (select dateadd(yy, -1, min(datnar)) from Ainbreeding_Sprac s where s.matka = Ainbreeding_Sprac.uscislo and   s.datnar is not null)
	where datnar is null



	update Ainbreeding_Sprac
	set koefpribuz = (select top 1 koefpribuz from Ainbreeding where Ainbreeding.uscislo = Ainbreeding_Sprac.uscislo)
END
go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 14.12.2011
-- Description:	Doklad o vazeni - aktualizacia
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Dokvazml_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR int 
	declare @DATZAPIS [datetime]
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit]
	declare @CISTELATA [varchar](28)
	declare @DATVAZ [date]
	declare @HMOT [decimal](7,3)
	declare @CHOVVAZ [varchar](18)
	declare @TURNUS [varchar](4)
	declare @ZAVER [varchar](2)
	
	declare @errorflag bit	
	declare @rowcount1 int
	declare @counter1 int
	declare @navrat_hodn [varchar](1)
	declare @JeTelaVTelatach bit
	declare @V_DATVAZ [date]
	declare @_DATNAR [date]
	declare @V_HMOT [decimal](7,3)	
	declare @_HMOT_NAR [decimal](7,3)		
	declare @_HMOT_PRED [decimal](7,3)		
	declare @_DAT_PRED [date]	
	declare @MaVazenia bit
	declare @Prirastok [decimal](7,3)
	declare @_DOVVYR [varchar](2)
	declare @T_DOVVYR [varchar](2)	
	declare @TelaJeVyradene bit
	declare @CHOVVAZ_POV [varchar](18)	
	declare @jeOprava bit
	declare @CHOVATEL [varchar](9)	
	
  	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	
	
	-- vyber doposial nespracovanych dokladov vazeni
	declare db_cursor_dokvazml cursor
	FOR
	SELECT IDR
	  ,CHOV
      ,CISTELATA
      ,convert(decimal(7,3),nullif(HMOT, '')) as HMOT
      ,nullif(ZAVER, '')
      ,convert(date, nullif(DATVAZ, ''), 104) as DATVAZ
	  ,nullif(TURNUS, '')
	FROM VstupyPLIS.dbo.CP_HD15_DOKVAZ where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
		-- pridana moznost vyradenia teliat na chove ML (cez hlasenie vazeni) -- 20160505
		AND (dbo.HDchov_ma_typ_KU(CHOV, 'ML') = 1 OR dbo.HDchov_ma_typ_KU(CHOV, 'TMHD') = 1)
		-- pridane zotriedenie podla datumu vazenia pre moznost spracovat viacero vazeni na jedno zviera -- 20160427
		ORDER BY convert(date, nullif(DATVAZ, ''), 104)
	
	OPEN db_cursor_dokvazml


	-- cyklus cez vsetky nespracovane hlasenia vazeni
	FETCH NEXT
	FROM db_cursor_dokvazml INTO 	
		 @IDR
		,@CHOVVAZ		 
		,@CISTELATA
		,@HMOT
		,@ZAVER				
		,@DATVAZ
		,@TURNUS

	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke hlaseni vazeni nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD15_DOKVAZ set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran dokvazml
   		begin try		
			
			set @JeTelaVTelatach = 1
			set @MaVazenia = 0
			set @T_DOVVYR = null
			set @TelaJeVyradene = 0
			set @errorflag = 0	
			set @jeOprava = 0				
			
			if (@HMOT is not null AND @ZAVER is null)
				set @ZAVER = '0'

			-- odfiltrovanie prazdnych dat poslanych zo zberaca
			if ((@DATVAZ is not null OR (@DATVAZ is null AND @ZAVER is not null)) AND (@HMOT is not null OR @ZAVER is not null))
			begin
				-- nacitanie niektorych udajov z tabulky CM_Telata
				select @_DATNAR = DATNAR, @_DOVVYR = DOVVYR, @CHOVATEL = CHOVATEL from PLIS.dbo.CM_Telata where CISTELATA = @CISTELATA
			
				set @V_DATVAZ = @DATVAZ
				set @V_HMOT = @HMOT

				-- kontrola: ide o chov s TMHD
				if not(((select dbo.HDchov_ma_typ_KU(@CHOVVAZ, 'TMHD')) = 1) OR 
					-- alebo vyradenie telata na chove ML -- 20160505
				((@ZAVER = '2' or @ZAVER = '3' or @ZAVER = '4' or @ZAVER = '7' or @ZAVER = '8' or @ZAVER = '9') AND ((select dbo.HDchov_ma_typ_KU(@CHOVVAZ, 'ML')) = 1)))
				begin
					-- priradenie chyby 004
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 4
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end

				-- kontrola: je tela v CM_Telata
				if ((select COUNT(*) from PLIS.dbo.CM_Telata where (CISTELATA = @CISTELATA)) = 0 and @CISTELATA != 'SK999999999999')
				begin
					-- priradenie chyby 111
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 111
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end 
					set @JeTelaVTelatach = 0
				end
			
				-- kontrola: chybny datum vazenia
				if (DATEDIFF(DAY, @DATVAZ, getdate()) < 0) or (DATEDIFF(DAY, '2000-01-01', @DATVAZ) < 0)
				begin
					-- priradenie chyby 112
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 112
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @V_DATVAZ = null
					end
				end			

				-- kontrola: Dátum narodenia > dátum váženia
				if (DATEDIFF(DAY, @_DATNAR, @DATVAZ) < 0)
				begin
					-- priradenie chyby 113
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 113
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @V_DATVAZ = null
					end
				end	
			
				-- kontrola: nespravny zaver
				if not ((@ZAVER in (select KOD from plis.dbo.CC_VazeniaZaver)) or (@ZAVER is null))
				begin
					-- priradenie chyby 116
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 116
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end		
			
				---- kontrola: Duplicitné váženie
				if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISTELATA and DATVAZ = @DATVAZ) > 0
				begin
					---- priradenie chyby 151
					--exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 151
					--if (@navrat_hodn = '2')
					--begin
					--	set @errorflag = (select 1)
					--end

					-- nie je to chyba - ide o opravu hmotnosti					
					set @jeOprava = 1
				end		
			
				-- aktualizacia
				if (@errorflag != 1)		
				begin	
					-- zaver 0 (hlasenie hmotnosti a zrusenie vyradenia), 6
					if @ZAVER = '0' or @ZAVER = '6'
					begin
						-- kontrola: hmotnost v platnom rozsahu
						if @HMOT < 25 or @HMOT > 750
						begin
							-- priradenie chyby 118
							exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 118
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end else
							if (@navrat_hodn = '1')
							begin
								set @V_HMOT = null
							end				
						end

						-- kontrola: denny prirastok hmotnosti v platnom rozsahu
						SELECT TOP 1 @_DAT_PRED = DATVAZ, @_HMOT_PRED = HMOT, @MaVazenia = 1 FROM PLIS.dbo.CM_Vazenia where CISTELATA = @CISTELATA order by DATVAZ desc
						if @MaVazenia = 1
						begin
							set @Prirastok = ((ISNULL(@HMOT, 0) - ISNULL(@_HMOT_PRED, 0)) / nullif(DATEDIFF(day, @_DAT_PRED, @DATVAZ), 0)) 
							if (@Prirastok < -0.5 or @Prirastok > 2.0) and (@HMOT is not null) 
							begin 
								-- priradenie chyby 119
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 119
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end		
							end
						end
					
						-- kontrola: zivotny prirastok hmotnosti v platnom rozsahu
						select @_HMOT_NAR = HMOTNAR, @CHOVVAZ_POV = CHOVATEL from PLIS.dbo.CM_Telata where CISTELATA = @CISTELATA
						set @Prirastok = ((ISNULL(@HMOT, 0) - ISNULL(@_HMOT_NAR, 0)) / nullif(DATEDIFF(day, @_DATNAR, @DATVAZ), 0)) 
						if (@Prirastok < 0.3 or @Prirastok > 2.0) and (@HMOT is not null)
						begin
							-- priradenie chyby 120
							exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 120
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end 			
						end
					
						if @JeTelaVTelatach = 1
						begin		
							-- kontrola: vyradenie telata
							if (@_DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia)) and (@_DOVVYR != '99') and (@_DOVVYR is not null) 
							begin
								-- priradenie chyby 121
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 121
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end 
								set @TelaJeVyradene = 1			
							end		
						end else
						begin
							if @MaVazenia = 1
							begin
								SELECT TOP 1 @_DAT_PRED = DATVAZ FROM PLIS.dbo.CM_Vazenia where CISTELATA = @CISTELATA order by DATVAZ asc
								-- kontrola: prislo vazenie a zviera nie je viac ako 10 mesiacov v Telatach
								if DATEDIFF(MONTH, @_DAT_PRED, @DATVAZ) > 10
								begin
									-- priradenie chyby 110
									exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 110
									if (@navrat_hodn = '2')
									begin
										set @errorflag = (select 1)
									end				
								end else
								-- kontrola: prislo vazenie a zviera nie je viac ako 6 mesiacov v Telatach					
								if DATEDIFF(MONTH, @_DAT_PRED, @DATVAZ) > 6
								begin
									-- priradenie chyby 114
									exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 114
									if (@navrat_hodn = '2')
									begin
										set @errorflag = (select 1)
									end					
								end
							end
						end
						
						if (@errorflag != 1)		
						begin
							-- zapis vazenia do tabulky vazeni CM_Vazenia
							if isnull(@V_HMOT, 0) != 0
							begin
								if (@jeOprava = 0)
								begin
									insert into PLIS.dbo.CM_Vazenia (CISTELATA, DATVAZ, HMOT, CHOVVAZ, PRIZNAKKU, RASTPAS, TURNUS, SPRACINSERT, SPRACUPDATE)
									values (@CISTELATA, @V_DATVAZ, @V_HMOT, @CHOVVAZ, '1', PLIS.dbo.C_aktual_zisti_rastove_pasmo(@CISTELATA, @V_DATVAZ, @V_HMOT), @TURNUS, @IDParChov, @IDParChov)
								end else
								begin
									update PLIS.dbo.CM_Vazenia set HMOT = @V_HMOT where CISTELATA = @CISTELATA and DATVAZ = @V_DATVAZ
								end
							
								if @CHOVVAZ != @CHOVVAZ_POV
								-- presun telata ak treba
								update PLIS.dbo.CM_Telata set
									CHOVATEL = @CHOVVAZ, PRIZNAKKU = '1', SPRACUPDATE = @IDParChov
								where CISTELATA = @CISTELATA
							end
											
							if (@TelaJeVyradene = 1 and @JeTelaVTelatach = 1)
								-- zrusenie vyradenia telata ak treba
								update PLIS.dbo.CM_Telata set
									DOVVYR = null,
									DATVYR = null, SPRACUPDATE = @IDParChov
								where CISTELATA = @CISTELATA
						end	
					end else
					
					-- zaver 1 (zrusenie vazeni(a))
					if @ZAVER = '1'
					begin				
						if @HMOT = 999
							-- kontrola: su rusene vazenia v CM_Vazenia
							if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISTELATA) = 0
								-- priradenie chyby 117
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 117
							else				
								delete from PLIS.dbo.CM_Vazenia
									where CISTELATA = @CISTELATA
						else
							-- kontrola: je rusene vazenie v CM_Vazenia
							if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISTELATA and DATVAZ = @V_DATVAZ) = 0
								-- priradenie chyby 117
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 117
							else				
								delete from PLIS.dbo.CM_Vazenia
									where CISTELATA = @CISTELATA and DATVAZ = @V_DATVAZ
							
					end else
					-- zaver - ostatne (vyradenie zvierat(a))
					if @ZAVER = '2' or @ZAVER = '3' or @ZAVER = '4' or @ZAVER = '7' or @ZAVER = '8' or @ZAVER = '9'
					begin	
						-- kontrola na zhodu chovu
						if (@CHOVVAZ != @CHOVATEL)
						begin
							-- priradenie chyby 64
							exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazml_zapis_chybu] @IDR, 64
							if (@navrat_hodn = '2')
							begin
								set @errorflag = (select 1)
							end
						end					
							
						if (@errorflag != 1)		
						begin
							select @T_DOVVYR = Kod_vyradenia from PLIS.dbo.CC_VazeniaZaver where Kod = @ZAVER
							if (@CISTELATA = 'SK999999999999')
								update PLIS.dbo.CM_Telata set
									DOVVYR = @T_DOVVYR,
									DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
									where DOVVYR is null and CHOVATEL = @CHOVVAZ
							else
								update PLIS.dbo.CM_Telata set
									DOVVYR = @T_DOVVYR,
									DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
									where DOVVYR is null and CISTELATA = @CISTELATA
						end
					end
				end
			end						

			--------------------------------------------------------			
			-- zaznam o vazeni nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD15_DOKVAZ set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR

      			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'15'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran dokvazml;
						
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'15'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran dokvazml			

		FETCH NEXT
		FROM db_cursor_dokvazml INTO 	
			 @IDR
			,@CHOVVAZ		 
			,@CISTELATA
			,@HMOT
			,@ZAVER				
			,@DATVAZ
			,@TURNUS
	end
	
	CLOSE db_cursor_dokvazml
	DEALLOCATE db_cursor_dokvazml	

	print 'vyradenie';
	
	-- vyradenie TMHD teliat chovu, ktorym neprislo vazenie uz 9 mesiacov
	if (dbo.HDchov_typ_KU(@parChov) = 'TMHD')
		UPDATE t
			SET t.DATVYR = GETDATE(), 
				t.DOVVYR = 51, SPRACUPDATE = @IDParChov
			FROM CM_Telata AS t
			WHERE t.CHOVATEL = @parChov AND (DATEADD(MONTH, -9, GETDATE()) > (SELECT MAX(v.DATVAZ) FROM CM_Vazenia AS v WHERE v.CISTELATA = t.CISTELATA)) AND t.DOVVYR IS NULL
	---------------------------------------------------------------

	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Dokvazml_aktualizacia ...OK'	
END

go

/*********************** 
		vyber udajov do reportu TAB1 do Masovej rocenky krav 
		v rocenke z r. 2017 na strane 26 ...."Sumarne vysledky kontroly uzitkovosti"
 ***********************/
 CREATE procedure [dbo].[Rocenka_MPHD_1]
	
	@rok varchar(4)

	as 
	begin

	select 
	case when plemeno ='AA' then 1
				when plemeno ='BdA' then 2
				--when plemeno ='BBM' then 3
				when plemeno ='Gal' then 3
				when plemeno ='HEM' then 4
				when plemeno ='High' then 5
				when plemeno ='Char' then 6
				when plemeno ='Lim' then 7
				--when plemeno ='SDM' then 8
				--when plemeno ='Piem' then 8
				when plemeno ='Pin' then 8 
				when plemeno ='Sim_maso' then 9
				when plemeno ='Slst' then 10
				when plemeno ='Osta' then 11
				when plemeno ='Nez' then 12
				when plemeno ='SR' then 13 end  as poradie,
	
	case when plemeno ='AA' then 'Aberdeen Angus'
				when plemeno ='BdA' then 'Blonde d´Aquitaine'
				when plemeno ='BBM' then 'Belgické modré'
				when plemeno ='Gal' then 'Galloway'
				when plemeno ='High' then 'Highland'
				when plemeno ='Char' then 'Charolais'
				when plemeno ='Lim' then 'Limousine'
				when plemeno ='Hem' then 'Hereford'
				when plemeno ='Sim_maso' then 'Simentál mäsový'
				when plemeno ='Piem' then 'Piemontese'
				when plemeno ='Pin' then 'Pinzgauské'
				when plemeno ='SDM' then 'Maďarský stepný dobytok'
				when plemeno ='Slst' then 'Slovenské strakaté'
				when plemeno ='Osta' then 'Ostatné plemená'
				when plemeno ='Nez' then 'Neznáme'
				when plemeno ='SR' then 'Výsledky za Slovensko' end as	plemeno, 
	
	byk_nar_ks, byk_nar_kg, jal_nar_ks, jal_nar_kg, byk_120ks, jal_120ks, byk_210ks, jal_210ks, byk_365ks, jal_365ks, byk_500ks, jal_500ks, 
		isnull(byk_120kg,0) as byk_120kg, 
		isnull(jal_120kg,0) as jal_120kg, 
		isnull(byk_210kg,0) as byk_210kg, 
		isnull(jal_210kg,0) as jal_210kg, 
		isnull(byk_365kg,0) as byk_365kg, 
		isnull(jal_365kg,0) as jal_365kg, 
		isnull(byk_500kg,0) as byk_500kg, 
		isnull(jal_500kg,0) as jal_500kg,
		isnull(byk_g_den_120,0) as byk_g_den_120, 
		isnull(jal_g_den_120,0) as jal_g_den_120, 
		isnull(byk_g_den_210,0) as byk_g_den_210, 
		isnull(jal_g_den_210,0) as jal_g_den_210, 
		isnull(byk_g_den_365,0) as byk_g_den_365, 
		isnull(jal_g_den_365,0) as jal_g_den_365, 
		isnull(byk_g_den_500,0) as byk_g_den_500, 
		isnull(jal_g_den_500,0) as jal_g_den_500, 
		rok 
	
	from Roc_MPHD_Tab_1
	where @rok = rok
	order by poradie

	end
go

CREATE PROCEDURE [dbo].[ASP_GetChovy]
      @SearchTerm VARCHAR(100) = '',
--	  @SearchRok INT = '',
--	  @SearchMesiac INT = '',
      @PageIndex INT = 1,
      @PageSize INT = 10,
      @RecordCount INT OUTPUT



AS
BEGIN
SET NOCOUNT ON;

IF OBJECT_ID('tempdb..#Results') IS NOT NULL
			DROP TABLE #Results

SELECT 
ROW_NUMBER() OVER (ORDER BY a.chovatel ASC) AS RowNumber,
b.NAZOV, b.KRAJ+' '+b.OKRES+' '+b.PODNIK AS NM_chov, a.chovatel, b.OBEC, a.rok, a.mesiac, a.dekada

INTO #Results

FROM dbo.CR_KUHD_MesUzavCH_1x  a
	INNER JOIN dbo.NM_PODNIK b ON ( LEFT(a.chovatel,6) = (b.KRAJ+b.OKRES+b.PODNIK))
WHERE rok = '2016' AND mesiac = 2 AND dekada = 9

SELECT * FROM #Results

END
go

create FUNCTION dbo.toMesiacDen
  (
    @dni float
  )
  RETURNS varchar(7)
AS
  BEGIN
    declare @res varchar(7); 
    IF (@dni IS NOT NULL)
      set @res = convert(varchar, FLOOR(@dni / 30.42))+' / '+convert(varchar, FLOOR(ROUND(CAST(@dni as decimal(38,19)) % 30.42,0)));;
    return @res;
  END
go

CREATE PROCEDURE [dbo].[CR_ZostavaLaktacie_zvaz_prepocet_region] 
@chov varchar(10)='' ,
@datumOd date,
@datumDo date=''

AS

BEGIN

DECLARE @counter INT
DECLARE @region VARCHAR(2)

SET @counter = 0;

-- prepocet pre region
DECLARE prepocet_cursor CURSOR
FOR
SELECT DISTINCT(Region) FROM dbo.NC_OKRES as reg
left join dbo.NM_CHOVMAS as ch on (reg.KRAJ+reg.OKRES = ch.KRAJ+ch.OKRES )


    OPEN prepocet_cursor
   FETCH NEXT FROM prepocet_cursor INTO @region

   WHILE @@FETCH_STATUS = 0
       BEGIN
           SET @counter = @counter + 1;
                    
            
                            PRINT 'Prepocitavam chovy: ' + CONVERT (VARCHAR, @counter) + ' '+ @region
                           EXEC CR_ZostavaLaktacie_zvaz @chov, @datumOd, @datumDo, @region

           FETCH NEXT FROM prepocet_cursor INTO @region
 

       END
CLOSE prepocet_cursor
DEALLOCATE prepocet_cursor

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 14.12.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Dokvazml
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Dokvazml_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int]
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	select @PriznakChyby = ZNCH_CV_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
		
	if @PriznakChyby is not NULL
		insert into PLIS.dbo.CE_DOKVAZML(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go

create PROCEDURE [dbo].[C_aktual_prepocMasoveVazenia_povod]
AS
BEGIN
	update CM_Vazenia set HMOTPREPOC=null, DNIPREPOC=null,DNIVAZ=null, PRIRPREPOC=null, PRIR=null, ZIVPRIR=null, ZIVPRIRPREPOC=null;
	declare @dh as int;
	declare @ph as int;
	declare @hh as int;
	declare @datum1 as datetime;  --helping for remembering last date for conrols
	declare @kg as float;
	declare @DD1 as int;
	declare @DD3 as int
	declare @prirastok as float;
	declare @day as int;
	DECLARE @CHOMT AS FLOAT;
	DECLARE @ZIVPRIRPREPOC AS FLOAT;
	DECLARE @PRIRPREPOC AS FLOAT;
	DECLARE @ZIVPRIR AS FLOAT;
	DECLARE @hmotprepocpredos AS FLOAT;
	declare @hmot as float;
	declare @hmot2 as float;
	declare @hmotnar as float;
	declare @v as int;
	declare @dniprepoc as int;
	declare @d as datetime;    --datum kontroly
	declare @t as varchar(14);
	declare @rastpas as char;
	DECLARE @DN AS DATETIME;    -- datum narodeniny
	declare @vaha as float;
	DECLARE @DD AS INT;
	DECLARE @DniVaz2 AS INT;
	Declare @Dpk as int;
	declare @Vpk as float;
	declare telata cursor  for 
	select distinct CISTELATA
	from CM_Vazenia
	open telata
	fetch next from telata into @t;
	WHILE @@FETCH_STATUS = 0 
			BEGIN
			set @DN=(select TOP 1 datnar from CM_Telata where CISTELATA=@t);
			set @hmot=(select TOP 1 hmotnar from CM_Telata where CISTELATA=@t);
			set @hmotnar=@hmot;
						declare vaj cursor for
						select DATVAZ,HMOT
						from CM_Vazenia
						where CISTELATA=@t;
						open vaj
						fetch next from vaj into @d,@v;
						while @@FETCH_STATUS=0
						begin			
							set @DniVaz2=datediff(day,@DN,@d);
							update CM_Vazenia
							set DNIVAZ=@DniVaz2,
								DNIPREPOC=(SELECT TOP 1 PREPHOD FROM CC_VAZINTERVAL WHERE 
								@DniVaz2 BETWEEN DH AND HH)
							where DATVAZ=@d and CISTELATA=@t;
							fetch next from vaj into @d,@v;
							end
						close vaj 
						deallocate vaj;
					declare @i int;
					declare @y int;
					set @i=0;
					set @y=0;
					declare hranice cursor for
					select DH,PREPHOD,HH
					from CC_VAZINTERVAL
					open hranice
					fetch next from hranice into @dh,@ph,@hh
					while @@FETCH_STATUS=0
					begin	
						declare vaj1 cursor for
						select DATVAZ,HMOT,DNIVAZ,DNIPREPOC
						from CM_Vazenia
						where CISTELATA=@t;
						open vaj1
						fetch next from vaj1 into @d,@v,@dd, @dniprepoc;
						while @@FETCH_STATUS=0
						begin								
								if(@hmot is null) 
									begin 
									set @hmot=35;
									end					
								if(@hmotnar is null) 
									begin 
									set @hmot=35;
									end
								set @ZIVPRIR=(((@v-@hmotnar)/@DD1)*1000);
								if(@dh<=@dd and @dd<=@hh)
								begin
									set @DD1=DATEDIFF(day,@DN,@d);			
									if(@dpk is not null and @Vpk is not null)
									begin
										set @prirastok=((((@v-@Vpk)/(@DD1-@Dpk))*1000));
									end else
									begin
										set @prirastok=(((@v-@hmot)/@DD1)*1000);
									end 
									set @CHOMT=(((@prirastok/1000)*(@ph-@dd))+@v);
									set @ZIVPRIR= (((@v-@hmotnar)/@DD1)*1000);
									set @hmot=@v;
								end
								set @ZIVPRIRPREPOC=(((@CHOMT-@hmotnar)/@dniprepoc)*1000);
								if(@ph='120' and @CHOMT>0)
								begin			
								set @hmotprepocpredos=@hmotnar;
								set @dniprepoc=0;	
								set @hmot2=@hmotnar;	
								set @DD3=0;							
								end	
								if(@ph='210' and @CHOMT>0)
								begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM CM_Vazenia
									WHERE CISTELATA=@t AND DNIPREPOC<210 ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if(@ph='365' and @CHOMT>0)
								begin											
									declare predos_prepoc cursor for
									SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
									FROM CM_Vazenia
									WHERE CISTELATA=@t AND DNIPREPOC<365 ORDER BY DATVAZ DESC
									open predos_prepoc
									fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
									close predos_prepoc
									deallocate predos_prepoc;
								end
								if(@ph='500' and @CHOMT>0)
								begin											
								declare predos_prepoc cursor for
								SELECT HMOTPREPOC, DNIPREPOC, HMOT, DNIVAZ
								FROM CM_Vazenia
								WHERE CISTELATA=@t AND DNIPREPOC<500 ORDER BY DATVAZ DESC
								open predos_prepoc
								fetch next from predos_prepoc into @hmotprepocpredos, @dniprepoc, @hmot2, @dd3;
								close predos_prepoc
								deallocate predos_prepoc;
								end
								if (@hmotprepocpredos is not null and @dniprepoc is not null)
								begin
									set @PRIRPREPOC=(((@CHOMT-@hmotprepocpredos)/(@ph-@dniprepoc))*1000);
									set @prirastok=((@hmot - @hmot2)/(@dd -  @dd3))*1000;
								end
								else begin
									if (@ph is not null and @ph>0)
									begin 
									  set @PRIRPREPOC=(((@CHOMT - @hmotnar)/@ph)*1000);
									end								
								end																
								if ((@ph='120' or @ph='210' or @ph='365') and (@dniprepoc is not null) and
									(Select COUNT(DISTINCT CISTELATA) FROM CM_Vazenia where (select TOP 1 PL1 from CM_Telata where CISTELATA=@t) 
									in (select KODPL from CC_NormyMP) AND CISTELATA=@t)>=1
									)
								begin
									set	@RASTPAS=null;
									if (@CHOMT>(Select HMOTA FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='A';
										end
									if (@CHOMT>(Select TOP 1 HMOTB FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND
										DNIVAZ=@ph) and @CHOMT<(Select TOP 1 HMOTA FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph))
										begin
											set @rastpas='B';
										end
									 if (@CHOMT<(Select TOP 1 HMOTB FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										AND
										@CHOMT>(Select TOP 1 HMOTC FROM CC_NormyMP where KODPL=(select TOP 1 PL1 from CM_Telata where CISTELATA=@t) AND
										POHL=(select TOP 1 POHLAVIE from CM_Telata where CISTELATA=@t) AND DNIVAZ=@ph)
										)
										begin
											set @rastpas='C';
										end
								end
								if(@prirastok is not null and @CHOMT>0)
								begin
									update CM_Vazenia 
									set HMOTPREPOC=@CHOMT,DNIPREPOC=@ph,PRIR=@prirastok, ZIVPRIR=@ZIVPRIR, PRIRPREPOC=@PRIRPREPOC, ZIVPRIRPREPOC=@ZIVPRIRPREPOC, RASTPAS=@rastpas
									WHERE CISTELATA=@T and DATVAZ=@d;
									set @prirastok=null;
									set @hmotprepocpredos=null;
									set	@dniprepoc=null;
									set @CHOMT=0;
								end
							fetch next from vaj1 into @d,@v,@dd, @dniprepoc;
						end
						set @Vpk=@hmot;
						set @Dpk=@DD1;
						set @DD1=NUll;
						close vaj1;
						deallocate vaj1;
					fetch next from hranice into @dh,@ph,@hh
					end
					close hranice
					deallocate hranice
					set @i=@i+1;
					--print N'telata '+convert(varchar,@t);
				set @Vpk=null;
				set @Dpk=NUll;
				fetch next from telata into @t;
			end
	close telata;
	deallocate telata; 
END

go


-- =============================================
-- Author:		PSSR,š.p.
-- Create date: 16.12.2011
-- Description:	Doklad o vazeni - maso - aktualizacia
-- =============================================

CREATE PROCEDURE [dbo].[C_aktual_Dokvazmas_aktualizacia] 
	@parChov varchar(9)

AS
BEGIN
	declare @IDR int 
	declare @CORG varchar(1)
	declare @STREDISKO [varchar](3)
	declare @OSCISLO [varchar](5)
	declare @DATZAPIS [datetime]
	declare @DATSPRAC [datetime]
	declare @SPRAC [bit]
	declare @CISLOZV [varchar](28)
	declare @DATVAZ [date]
	declare @HMOT [decimal](7,3)
	declare @CHOVUS [varchar](18)
	declare @TURNUS [varchar](4)
	declare @ZAVER [varchar](2)
	declare @ZNAKKU [varchar](2)
	declare @PRIZNAKKU varchar
	
	declare @errorflag bit	
	declare @navrat_hodn [varchar](1)
	--declare @JeVDB bit
	declare @V_DATVAZ [date]
	declare @_DATNAR [date]
	declare @V_HMOT [decimal](7,3)	
	declare @_DOVVYR [varchar](2)
	declare @T_DOVVYR [varchar](2)	
	declare @ZvieraJeVyradene bit
	declare @CHOVUS_POV [varchar](18)	
	declare @POC_DNI [int]
	declare @jeTela bit
	declare @jeKrava bit
	declare @jeOprava bit
	
  	declare @IDParChov bigint
	-- ziskanie id spracovavaneho chovu
	SELECT @IDParChov = max(IDR) FROM VstupyPLIS.dbo.CP_SPRAC_CHOVY WHERE CHOV = @parChov	
	
	-- vyber doposial nespracovanych dokladov vazeni masoveho dobytka
	declare db_cursor_dokvazmas cursor
	FOR
	SELECT IDR
      ,CHOV
	  ,CISTELATA
	  ,convert(decimal(7,3),nullif(HMOT, '')) as HMOT
	  ,nullif(ZAVER, '')
	  ,convert(date, nullif(DATVAZ, ''), 104) as DATVAZ
	  ,nullif(TURNUS, '')
	FROM VstupyPLIS.dbo.CP_HD15_DOKVAZ where PRIZSPRAC = 0 AND (CHOV = @parChov OR @parChov is NULL)
	AND CHOV IN (SELECT NM_CHOVMAS.KRAJ + NM_CHOVMAS.OKRES + NM_CHOVMAS.PODNIK + NM_CHOVMAS.CHOV 
    FROM PLIS.dbo.NM_CHOVMAS INNER JOIN PLIS.dbo.NM_HDDETAIL ON NM_CHOVMAS.KRAJ = NM_HDDETAIL.KRAJ 
    AND NM_CHOVMAS.OKRES = NM_HDDETAIL.OKRES AND NM_CHOVMAS.PODNIK = NM_HDDETAIL.PODNIK AND NM_CHOVMAS.CHOV = NM_HDDETAIL.CHOV 
    WHERE ZRUS IS NULL AND NM_CHOVMAS.TYPZV = '1' AND (SPVYKON= '4' OR SPVYKON = '5') AND PRIZNAK = '01')	
	-- pridane zotriedenie podla datumu vazenia pre moznost spracovat viacero vazeni na jedno zviera -- 20160427
	ORDER BY convert(date, nullif(DATVAZ, ''), 104)

	OPEN db_cursor_dokvazmas

	-- cyklus cez vsetky nespracovane vazenia
	FETCH NEXT
	FROM db_cursor_dokvazmas INTO 	
		 @IDR
		,@CHOVUS 		 
		,@CISLOZV
		,@HMOT	
		,@ZAVER			
		,@DATVAZ 
		,@TURNUS 

	WHILE @@FETCH_STATUS = 0
	begin
		-- zaznam v tabulke vazeni nastaveny ako "v spracovani"
		update VstupyPLIS.dbo.CP_HD15_DOKVAZ set
			DATSPRAC = GETDATE(),
			PRIZSPRAC = 1
			where IDR = @IDR	

	    --zaciatok transakcie
		begin tran dokvazmas
   		begin try		
			
			--set @JeVDB = 1
			set @T_DOVVYR = null
			set @ZvieraJeVyradene = 0
			set @errorflag = 0	
			set	@jeTela = 0
			set @jeKrava = 0
			set @_DATNAR = null
			set @_DOVVYR = null
			set @CHOVUS_POV = null
			set @jeOprava = 0
			
			if (@HMOT is not null AND @ZAVER is null)
				set @ZAVER = '0'

			-- odfiltrovanie prazdnych dat poslanych zo zberaca
			if (@DATVAZ is not null OR (@DATVAZ is null AND @ZAVER is not null))
			begin
				if (select count(CISTELATA) from CM_Telata where CISTELATA = @CISLOZV) = 1
					set @jeTela = 1

				if (select count(CISKRAVY) from CM_Krava where CISKRAVY = @CISLOZV) = 1
				begin
					set @jeKrava = 1
					set @jeTela = 0
				end

				-- nacitanie niektorych udajov z tabulky CM_Telata
				if (@jeTela = 1) 
					select @_DATNAR = DATNAR, @_DOVVYR = DOVVYR, @CHOVUS_POV = CHOVATEL, @PRIZNAKKU = PRIZNAKKU from PLIS.dbo.CM_Telata where CISTELATA = @CISLOZV
				else
					if (@jeKrava = 1)
						select @_DATNAR = DATNAR, @_DOVVYR = DOVVYR, @CHOVUS_POV = CHOVATEL, @PRIZNAKKU = PRIZNAKKU from PLIS.dbo.CM_Krava where CISKRAVY = @CISLOZV
			
				set @V_DATVAZ = @DATVAZ
				set @V_HMOT = @HMOT

				-- kontrola: chov je v menovke, kde sa chova masovy dobytok
				if (select COUNT(*) from PLIS.dbo.NM_HDDETAIL 
						where (KRAJ+OKRES+PODNIK+CHOV = @CHOVUS)
						and PRIZNAK = '01' and (SPVYKON = '4' or SPVYKON = '5')) = 0
				begin
					-- priradenie chyby 004
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 4
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end

				-- kontrola: ci nejde o zasah mimo kontroly
				if (@PRIZNAKKU != 2)
				begin
					-- priradenie chyby 65
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 65
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end

				-- kontrola: je zviera v CM_Telata a/alebo CM_Krava
				if (@jeTela = 0 and @jeKrava = 0 and @CISLOZV != 'SK999999999999')
				begin
					-- priradenie chyby 111
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 111
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end 
					--set @JeVDB = 0
				end
			
				-- kontrola: chybny datum vazenia
				if (DATEDIFF(DAY, @DATVAZ, getdate()) < 0) or (DATEDIFF(DAY, '2000-01-01', @DATVAZ) < 0)
				begin
					-- priradenie chyby 112
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 112
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @V_DATVAZ = null
					end
				end			

				-- kontrola: Dátum narodenia > dátum váženia
				if (DATEDIFF(DAY, @_DATNAR, @DATVAZ) <= 0)
				begin
					-- priradenie chyby 113
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 113
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end else
					if (@navrat_hodn = '1')
					begin
						set @V_DATVAZ = null
					end
				end	
			
				-- kontrola: nespravny zaver
				if not ((@ZAVER in (select KOD from plis.dbo.CC_VazeniaZaver)) or (@ZAVER is null))
				begin
					-- priradenie chyby 116
					exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 116
					if (@navrat_hodn = '2')
					begin
						set @errorflag = (select 1)
					end
				end		

				---- kontrola: Duplicitné váženie
				if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISLOZV and DATVAZ = @DATVAZ) > 0
				begin
					---- priradenie chyby 151
					--exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 151
					--if (@navrat_hodn = '2')
					--begin
					--	set @errorflag = (select 1)
					--end

					-- nie je to chyba - ide o opravu hmotnosti					
					set @jeOprava = 1
				end	
			
				-- aktualizacia
				if (@errorflag != 1)		
				begin	
					-- zaver 0 (hlasenie hmotnosti a zrusenie vyradenia), 5 (presun), 99 (zrusenie vyradenia, bez hlasenia vahy)
					if @ZAVER = '0' or @ZAVER = '2' or @ZAVER = '3' or @ZAVER = '4' or @ZAVER = '5' or @ZAVER = '7' or @ZAVER = '8' or @ZAVER = '9' or @ZAVER = '99'
					begin
						if (@jeKrava = 1 or @jeTela = 1)
						begin		
							-- kontrola: hlasenie vahy vyradenemu zvieratu
							if (@_DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia)) and (@_DOVVYR != '99') and (@_DOVVYR is not null) and @HMOT is not null
							begin
								-- priradenie chyby 121
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 121
								if (@navrat_hodn = '2' and @ZAVER <> '5')  ---- oprava 10.10.2017, zaver <> od 5 pretoze vtedy ide o presunute telata
								begin
									set @errorflag = (select 1)
								end 
								set @ZvieraJeVyradene = 1			
							end	
								
						   if (@_DOVVYR in (select DOVVYR from plis.dbo.CC_DovodyVyradenia)) and (@_DOVVYR != '99') and (@_DOVVYR is not null) and @HMOT is  null  and @zaver = '0'
							begin
							
								set @ZvieraJeVyradene = 1			
							end	

							-- kontrola: presun telata					
							if @CHOVUS != @CHOVUS_POV and @ZAVER != '5'					
							begin
								-- priradenie chyby 154
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 154
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end 
							end						
						end 
					
						if isnull(@V_HMOT, 0) != 0	
						begin
							set @POC_DNI = DATEDIFF(day, @_DATNAR, @V_DATVAZ)			
							if not (@POC_DNI < 30 or 
								/***** opravene 11.10.2017  metodiky na podnet Ing. Rosincinovej
								(@POC_DNI > (120 - 30) and @POC_DNI < (120 + 30)) or
								(@POC_DNI > (210 - 30) and @POC_DNI < (210 + 30)) or						
								(@POC_DNI > (365 - 35) and @POC_DNI < (365 + 35)) or
								(@POC_DNI > (500 - 30) and @POC_DNI < (500 + 30)))	****/

								(@POC_DNI > (120 - 35) and @POC_DNI < (120 + 35)) or
								(@POC_DNI > (210 - 35) and @POC_DNI < (210 + 35)) or						
								(@POC_DNI > (365 - 35) and @POC_DNI < (365 + 35)) or
								(@POC_DNI > (500 - 35) and @POC_DNI < (500 + 35)))	

							begin
								-- priradenie chyby 152
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 152
								if (@navrat_hodn = '2')
								begin
									set @errorflag = (select 1)
								end 
							end												
						end
						
						if (@errorflag != 1)		
						begin
							-- zapis vazenia do tabulky vazeni CM_Vazenia
							if isnull(@V_HMOT, 0) != 0
							begin
								if (@jeOprava = 0)
								begin
									insert into PLIS.dbo.CM_Vazenia (CISTELATA, DATVAZ, HMOT, CHOVVAZ, PRIZNAKKU, RASTPAS, TURNUS, SPRACINSERT, SPRACUPDATE)
									values (@CISLOZV, @V_DATVAZ, @V_HMOT, @CHOVUS, '2', null, @TURNUS, @IDParChov, @IDParChov)
								end else
								begin
									update PLIS.dbo.CM_Vazenia set HMOT = @V_HMOT where CISTELATA = @CISLOZV and DATVAZ = @V_DATVAZ
								end
							end
							
							if (@jeKrava = 1)
							begin
								-- presun kravy					
								if @ZAVER = '5'
									update PLIS.dbo.CM_Krava set
										CHOVATEL = @CHOVUS, SPRACUPDATE = @IDParChov, RESPONDER = null
									where CISKRAVY = @CISLOZV										

								if @ZAVER = '5' or @ZAVER = '0' or @ZAVER = '99'
								begin
									-- zrusenie vyradenia kravy ak treba					
									if (@ZvieraJeVyradene = 1)
										update PLIS.dbo.CM_Krava set
											DOVVYR = null,
											DATVYR = null, SPRACUPDATE = @IDParChov
										where CISKRAVY = @CISLOZV
								end
							end
							else 
								if (@jeTela = 1)
								begin
									-- presun telata					
									if @ZAVER = '5'
										update PLIS.dbo.CM_Telata set
											CHOVATEL = @CHOVUS, SPRACUPDATE = @IDParChov
										where CISTELATA = @CISLOZV										

									if @ZAVER = '5' or @ZAVER = '0' or @ZAVER = '99'
									begin
										-- zrusenie vyradenia telata ak treba					
										if (@ZvieraJeVyradene = 1)
											update PLIS.dbo.CM_Telata set
												DOVVYR = null,
												DATVYR = null, SPRACUPDATE = @IDParChov
											where CISTELATA = @CISLOZV
									end
								end

							-- zaver - ostatne (vyradenie zvierat(a))
							if @ZAVER = '2' or @ZAVER = '3' or @ZAVER = '4' or @ZAVER = '7' or @ZAVER = '8' or @ZAVER = '9'
							begin			
								select @T_DOVVYR = Kod_vyradenia from PLIS.dbo.CC_VazeniaZaver where Kod = @ZAVER

								if @CISLOZV = 'SK999999999999'
								begin
									update PLIS.dbo.CM_Krava set
										DOVVYR = @T_DOVVYR,
										DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
										where DOVVYR is null and CHOVATEL = @CHOVUS

									update PLIS.dbo.CM_Telata set
										DOVVYR = @T_DOVVYR,
										DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
										where DOVVYR is null and CHOVATEL = @CHOVUS
								end
								else
								begin
									if (@jeKrava = 1)
										update PLIS.dbo.CM_Krava set
											DOVVYR = @T_DOVVYR,
											DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
											where DOVVYR is null and CISKRAVY = @CISLOZV
									else 
										if (@jeTela = 1)
											update PLIS.dbo.CM_Telata set
												DOVVYR = @T_DOVVYR,
												DATVYR = @V_DATVAZ, SPRACUPDATE = @IDParChov						
												where DOVVYR is null and CISTELATA = @CISLOZV
								end
							end
						end	
					end else
					
					-- zaver 1 (zrusenie vazeni(a))
					if @ZAVER = '1'
					begin				
						if @HMOT = 999
							-- kontrola: su rusene vazenia v CM_Vazenia
							if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISLOZV) = 0
								-- priradenie chyby 117
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 117
							else				
								delete from PLIS.dbo.CM_Vazenia
									where CISTELATA = @CISLOZV
						else
							-- kontrola: je rusene vazenie v CM_Vazenia
							if (select COUNT(*) from PLIS.dbo.CM_Vazenia where CISTELATA = @CISLOZV and DATVAZ = @V_DATVAZ) = 0
								-- priradenie chyby 117
								exec @navrat_hodn = plis.[dbo].[C_aktual_Dokvazmas_zapis_chybu] @IDR, 117
							else				
								delete from PLIS.dbo.CM_Vazenia
									where CISTELATA = @CISLOZV and DATVAZ = @V_DATVAZ
							
					end 
				end
			end

			--------------------------------------------------------			

			-- zaznam nastaveny ako spracovany
			update VstupyPLIS.dbo.CP_HD15_DOKVAZ set
				DATSPRAC = GETDATE(),
				PRIZSPRAC = 2
				where IDR = @IDR
			
      			-- zaznam o spracovani
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'15'
				,@IDParChov
				,NULL AS ErrorMessage
				,NULL AS ErrorLine	
				,NULL AS ErrorProcedure				
				,NULL AS ErrorState			
			
		end try
		begin catch
			IF @@TRANCOUNT > 0
				rollback tran dokvazmas;
						
			-- zaznam o spracovani s chybou
			insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_HLAS
			SELECT 
				@IDR
				,'15'
				,@IDParChov
				,LEFT(ERROR_MESSAGE(), 300) AS ErrorMessage
				,ERROR_LINE() AS ErrorLine	
				,ERROR_PROCEDURE() AS ErrorProcedure				
				,ERROR_STATE() AS ErrorState									

		end catch;

		IF @@TRANCOUNT > 0			
		-- koniec transakcie
			commit tran dokvazmas	

		FETCH NEXT
		FROM db_cursor_dokvazmas INTO 	
			 @IDR
			,@CHOVUS 		 
			,@CISLOZV
			,@HMOT	
			,@ZAVER			
			,@DATVAZ 
			,@TURNUS 
	end
	
	CLOSE db_cursor_dokvazmas
	DEALLOCATE db_cursor_dokvazmas
	
	insert into VstupyPLIS.dbo.CP_SPRAC_CHOVY_LOG
	SELECT 
		@IDParChov
		,'C_aktual_Dokvazmas_aktualizacia ...OK'
END

go

CREATE PROCEDURE [dbo].[CR_KUARHD_podnik]

	@chov VARCHAR(9),
	@rok INT,
	@mesiac INT,
	@dekada INT

	AS

	BEGIN

-- ==================================================================
-- Author:		Roman Rafaj
-- Create date: 16.3.2016, 
--				19.5.2016	-- doplnene minus 2 mesiace od vyradenia
--				30.05.2016	-- opravene dvojicky, interval z inseminacie, vek pri oteleni, linia a register otca, vyradenie kravy je na stavene 1.den dekady minus 2 mesiace
							-- opraveny datum poslednej inseminacie, byka a ocakavaneho otelenia
--				1.6.2016	-- oprava datumu inseminacie po reinseminacii
-- Description:	Mesačné výsledky kontroly úžitkovosti a reprodukcie HD
-- @chov, @rok, @mesiac, @dekada
-- ===================================================================

	DECLARE @datum DATE, @datum2 DATE
    
	SELECT @datum = CASE @dekada
	WHEN 1 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST((@mesiac-1) AS VARCHAR(2)) + '-' + CAST('15' AS VARCHAR(2)) AS DATE))
	WHEN 9 THEN DATEADD(mm, 0, CAST(CAST(@rok AS VARCHAR(4)) + '-' + CAST(@mesiac AS VARCHAR(2)) + '-' + CAST('1' AS VARCHAR(2)) AS DATE))
	END
	SET @datum2 = DATEADD(MONTH, -2, @datum)

	PRINT 'Datum: ' + CONVERT(VARCHAR, @datum);
	PRINT 'Datum -2 mesiace: ' + CONVERT(VARCHAR, @datum2);

	IF OBJECT_ID('tempdb..#krava') IS NOT NULL DROP TABLE #krava
	SELECT * INTO #krava FROM dbo.CM_Krava WHERE CHOVATEL=@chov AND (DATVYR IS NULL OR DATVYR >= @datum2) 
	
	SELECT DISTINCT kontroly.CISKRAVY, kontroly.DATKONTR, kontroly.PERCTUKU, kontroly.PERCBIELK, kontroly.BUNECELEM  INTO #kontroly FROM dbo.CM_Kontroly kontroly
	INNER JOIN dbo.CM_Krava kr ON (kr.CISKRAVY = kontroly.CISKRAVY) AND (DATVYR IS NULL OR DATVYR >= @datum2)
	WHERE  kontroly.CISCHOVU = @chov
	
	IF OBJECT_ID('tempdb..#k2row') IS NOT NULL DROP TABLE #k2row
	SELECT  t.* INTO #k2row FROM (SELECT  DISTINCT CISKRAVY FROM #kontroly) mo
	CROSS APPLY(SELECT  TOP 2 * FROM #kontroly mi  WHERE  mi.CISKRAVY = mo.CISKRAVY ORDER BY mi.DATKONTR DESC) t


	

		-- kontrola a kontrola - 1
	IF OBJECT_ID('tempdb..#k1') IS NOT NULL DROP TABLE #k1
	SELECT ciskravy, MAX(datkontr)datum1 INTO #k1 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k2') IS NOT NULL DROP TABLE #k2
	SELECT ciskravy, MIN(datkontr)datum2 INTO #k2 FROM #k2row GROUP BY ciskravy
	IF OBJECT_ID('tempdb..#k1temp') IS NOT NULL DROP TABLE #k1temp
	IF OBJECT_ID('tempdb..#k2temp') IS NOT NULL DROP TABLE #k2temp
	
	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko, ROUND(AVG(PERCTUKU),2)tuk, ROUND(AVG(PERCBIELK),2)bielk, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB, ROUND(AVG(BUNECELEM),0)SB INTO #k1temp  FROM #k1 k1
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k1.ciskravy AND k1.datum1 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY

	SELECT kontroly.ciskravy, ROUND(AVG(kontroly.MLIEKPR),2)mlieko1, ROUND(AVG(PERCTUKU),2)tuk1, ROUND(AVG(PERCBIELK),2)bielk1, ROUND(AVG(PERCTUKU)/AVG(PERCBIELK),2)TB1, ROUND(AVG(BUNECELEM),0)SB1  INTO #k2temp FROM #k2 k2
		INNER JOIN dbo.CM_Kontroly kontroly ON (kontroly.CISKRAVY = k2.ciskravy AND k2.datum2 = kontroly.DATKONTR)
		GROUP BY kontroly.CISKRAVY	
	
	IF OBJECT_ID('tempdb..#2ko') IS NOT NULL DROP TABLE #2ko
	SELECT krava.CISKRAVY, k1temp.mlieko, k2temp.mlieko1, k1temp.tuk, k1temp.bielk, k1temp.TB, k1temp.SB, k2temp.tuk1, k2temp.bielk1, k2temp.TB1, k2temp.SB1 INTO #2ko FROM #krava krava
		INNER JOIN #k1temp k1temp ON (k1temp.CISKRAVY = krava.CISKRAVY)
		INNER JOIN #k2temp k2temp ON (k2temp.CISKRAVY = krava.CISKRAVY)

		-- 100 - 200 - 300

	IF OBJECT_ID('tempdb..#sdt') IS NOT NULL DROP TABLE #sdt
	
	SELECT c.* INTO #sdt FROM
	(
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 100)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 200)
	UNION
	SELECT naplak.CISKRAVY, naplak.LAKTDNI, naplak.LAKDNIN, ROUND(naplak.MLIEKNOR,0)MLIEKNOR, naplak.TUKNOR, ROUND(((naplak.TUKNOR/naplak.MLIEKNOR)*100),2)TUKPER, naplak.BIELKNOR, ROUND(((naplak.BIELKNOR/naplak.MLIEKNOR)*100),2)BIELKPER FROM #krava krava
	LEFT JOIN dbo.CM_Naplak naplak ON (naplak.CISKRAVY = krava.CISKRAVY AND naplak.LAKDNIN = 305)
	)c


DECLARE @krava VARCHAR(14), @iplca VARCHAR(14), @counter INT, @count INT, @poradie INT, @pdatum DATE, @fdatum DATE, @ivyse INT, @bykreg INT, @byklin  VARCHAR(3)
DECLARE @datotel DATE, @POCINS1 INT, @POCINS2 INT, @POCINS3 INT, @POCINS4VIAC INT, @POCTELNYCH INT

BEGIN

    IF OBJECT_ID('tempdb..#inseminacie') IS NOT NULL DROP TABLE #inseminacie

  CREATE TABLE #inseminacie
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
          ivyse INT,
		  byklin VARCHAR(3),
		  bykreg VARCHAR(3),
		  datotel DATE
        )

    SET @counter = 0;
    DECLARE inseminacie_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA
        FROM	dbo.CM_Insvyk I
                INNER JOIN dbo.CM_Krava K ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ((K.DATVYR) >= DATEADD(MONTH, -2, @datum) OR K.DOVVYR IS NULL) -- zahrnut do vyberu aj kravy, ktore boli vyradene od obdobia minus 2 mesiace
				AND I.IPOIN <> 99
        GROUP BY I.IPLCA
        ORDER BY IPLCA
	

    OPEN inseminacie_cursor
    FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
			
            SELECT  @poradie = MAX(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@byklin = MAX(CONVERT(VARCHAR(3),IBLIN)),
					@bykreg = MAX(IBREG),
					@datotel = MAX(IDAOT)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> '99'
					
            INSERT  INTO #inseminacie
                    ( krava, poradie, fdatum, ivyse, byklin, bykreg, datotel )
            VALUES  ( @krava, @poradie, @fdatum, @ivyse, @byklin, @bykreg, @datotel )
	
            FETCH NEXT FROM inseminacie_cursor INTO @fdatum, @krava

        END

END

CLOSE inseminacie_cursor
DEALLOCATE inseminacie_cursor


-- interval

DECLARE @odatum DATE,@rozdiel_dni INT, @POCINTR INT, @POCSERV INT

BEGIN

    IF OBJECT_ID('tempdb..#interval') IS NOT NULL
        BEGIN
            DROP TABLE #interval
        END


    CREATE TABLE #interval
        (
          krava VARCHAR(14) ,
          poradie INT ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE interval_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                AND ( ISNULL(DOVVYR, '') = '' )
                AND I.IPOIN = 1
                AND I.IDAIN > N.DATOTEL
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) -- pridane
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN interval_cursor
    FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;
					
            SELECT  @poradie = COUNT(IPOIN) ,
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
                    AND IDAIN >= @fdatum
                    AND IPOIN <> 99


            INSERT  INTO #interval
                    ( krava, poradie, fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @poradie, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM interval_cursor INTO @fdatum, @krava, @odatum

        END

		--SELECT AVG(rozdiel_dni) FROM #interval;
	    SELECT  @POCINTR = AVG(rozdiel_dni) FROM #interval

		

END

CLOSE interval_cursor
DEALLOCATE interval_cursor


BEGIN

    IF OBJECT_ID('tempdb..#servisperioda') IS NOT NULL
        BEGIN
            DROP TABLE #servisperioda
        END

	SET @rozdiel_dni = 0;

    CREATE TABLE #servisperioda
        (
          krava VARCHAR(14) ,
          fdatum DATE ,
		  odatum DATE,
          ivyse INT,
		  rozdiel_dni INT
        )

    SET @counter = 0;
    DECLARE servisperioda_cursor CURSOR
    FOR
        SELECT  MAX(I.IDAIN) ,
                I.IPLCA,
				N.DATOTEL
        FROM    dbo.CM_Krava K
                INNER JOIN dbo.CM_Insvyk I ON ( K.CISKRAVY = I.IPLCA )
                INNER JOIN dbo.CM_Naplak N ON ( K.CISKRAVY = N.CISKRAVY )
        WHERE   K.CHOVATEL = @chov
                --AND ( ISNULL(DOVVYR, '') = '' )
				AND (DATVYR >= @datum2 OR K.DOVVYR IS NULL) --pridane
                AND I.IDAIN > N.DATOTEL
				AND I.IVYSE IS NOT NULL
				AND (I.IVYSE = 7 OR I.IVYSE = 8 OR I.IVYSE = 9)
				AND IsNumeric(I.IVYSE) = 1 AND CAST(I.IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
        GROUP BY I.IPLCA, N.DATOTEL
        ORDER BY IPLCA
	

    OPEN servisperioda_cursor
    FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

    WHILE @@FETCH_STATUS = 0
        BEGIN
            SET @counter = @counter + 1;

            SELECT  
                    @pdatum = MAX(IDAIN) ,
                    @ivyse = MAX(IVYSE),
					@rozdiel_dni = DATEDIFF(day, @odatum, @fdatum)
            FROM    dbo.CM_Insvyk
            WHERE   IPLCA = @krava
					AND IDAIN >= @fdatum AND IPOIN <> 99
					AND IsNumeric(IVYSE) = 1 AND CAST(IVYSE as VARCHAR(5)) NOT LIKE '%.%'
				
            INSERT  INTO #servisperioda
                    ( krava,  fdatum, odatum, ivyse, rozdiel_dni )
            VALUES  ( @krava, @fdatum, @odatum, @ivyse, @rozdiel_dni )
	
            FETCH NEXT FROM servisperioda_cursor INTO @fdatum, @krava, @odatum

        END
END

CLOSE servisperioda_cursor
DEALLOCATE servisperioda_cursor


IF OBJECT_ID('tempdb..#medziobdobie') IS NOT NULL DROP TABLE #medziobdobie
SELECT k.CISKRAVY ciskravy, n.MEDZIOBD INTO #medziobdobie FROM cm_krava k
			LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
			WHERE k.CHOVATEL = @chov AND (n.MEDZIOBD IS NOT NULL)
			AND (DATVYR >= @datum2 OR k.DOVVYR IS NULL) -- pridane
			--AND (ISNULL(k.DOVVYR, '') = '' OR k.DOVVYR = '00')

IF OBJECT_ID('tempdb..#napocetlak') IS NOT NULL DROP TABLE #napocetlak
SELECT
	k.CISKRAVY AS ciskravy,
	n.LAKTDNI AS nap_dni,
	n.MLIEKCEL AS nap_mliekokg,
	ROUND(((n.TUKCEL / n.MLIEKCEL)*100),2) AS nap_tukper,
	ROUND(((n.BIELKCEL / n.MLIEKCEL)*100),2) AS nap_bielkper,
	ROUND(n.TUKCEL,0) AS nap_tkg,
	ROUND(n.BIELKCEL,0) AS nap_bkg
	INTO #napocetlak
	FROM dbo.CM_Naplak n
	LEFT JOIN #krava k ON (k.CISKRAVY = n.CISKRAVY)

	


	BEGIN

	--IF OBJECT_ID('tempdb..#vyber') IS NOT NULL DROP TABLE #vyber

	DELETE FROM CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok  AND mesiac = @mesiac AND dekada = @dekada


	INSERT INTO dbo.CR_KURHD_MesUzavCH_1
	SELECT
	 CONVERT(varchar(9), @chov) chov
	,CONVERT(INT, @rok) rok
	,CONVERT(INT, @mesiac) mesiac
	,CONVERT(INT, @dekada) dekada
	,CONVERT(VARCHAR(14), k.ciskravy) CISKRAVY
	,CONVERT(INT,k.PORPREBLAK, NULL) PORPREBLAK
	,CONVERT(VARCHAR(2),n.ZMENA, NULL) ZMENA
	,UPPER(ISNULL(n.ZNAK,NULL)) ZNAK
	,CONVERT(DECIMAL(7,0),(tdm.SPI),NULL) SPI
	,CONVERT(DECIMAL(7,2), ROUND(tdm.REL*100,2), NULL) AS PERSPOL
	,CONVERT(DATE,k.datnar,NULL) DATNAR
	,CONVERT(VARCHAR(70),
	ISNULL(k.PL1 + '-' + CONVERT(varchar, k.KR1), '') 
    + '  ' + ISNULL(ISNULL(k.PL2, '') + '-' + CONVERT(varchar, k.KR2), '') + '  ' + ISNULL(k.PL3 + '-' + CONVERT(varchar, k.KR3), '') + '  ' + ISNULL(k.PL4 + '-' + CONVERT(varchar, k.KR4), '') 
    + '  ' + ISNULL(k.PL5 + '-' + CONVERT(varchar, 100 - (k.KR1 + k.KR2 + k.KR3 + k.KR4)), '')) PLEMKR
	,CONVERT(DATE, n.DATOTEL) DATOT
	,CONVERT(INT,(SELECT COUNT(*) FROM dbo.CM_kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY),NULL)PK
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 1 ORDER BY ko.DATKONTR DESC))ML1
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '1' THEN '*' END)ZN1
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 2 ORDER BY ko.DATKONTR DESC))ML2
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '2' THEN '*' END)ZN2
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 3 ORDER BY ko.DATKONTR DESC))ML3
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '3' THEN '*' END)ZN3
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 4 ORDER BY ko.DATKONTR DESC))ML4
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '4' THEN '*' END)ZN4
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 5 ORDER BY ko.DATKONTR DESC))ML5
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '5' THEN '*' END)ZN5
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 6 ORDER BY ko.DATKONTR DESC))ML6
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '6' THEN '*' END)ZN6
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 7 ORDER BY ko.DATKONTR DESC))ML7
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '7' THEN '*' END)ZN7
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 8 ORDER BY ko.DATKONTR DESC))ML8
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '8' THEN '*' END)ZN8
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 9 ORDER BY ko.DATKONTR DESC))ML9
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '9' THEN '*' END)ZN9
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 10 ORDER BY ko.DATKONTR DESC))ML10
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '10' THEN '*' END)ZN10
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 11 ORDER BY ko.DATKONTR DESC))ML11
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '11' THEN '*' END)ZN11
	,CONVERT(DECIMAL(5,2),(SELECT TOP 1 MLIEKPR FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.CISKRAVY AND DATEPART(mm, ko.DATKONTR) = 12 ORDER BY ko.DATKONTR DESC))ML12
	,CONVERT(VARCHAR(1),CASE WHEN (SELECT TOP 1 DATEPART(mm,ko.DATKONTR) FROM dbo.CM_Kontroly ko WHERE ko.CISKRAVY = k.ciskravy AND DATEPART(mm, ko.DATKONTR) <= 12 ORDER BY ko.DATKONTR ASC) = '12' THEN '*' END)ZN12
	,CONVERT(DECIMAL(4,2),kontrola2.tuk)PTUKU1
	,CONVERT(DECIMAL(4,2),kontrola2.bielk)PBIELK1
	,CONVERT(DECIMAL(3,1),kontrola2.TB)PTB1
	,CONVERT(INT,kontrola2.SB)SB1
	,CONVERT(DECIMAL(3,2),kontrola2.tuk1)PTUKU2
	,CONVERT(DECIMAL(3,2),kontrola2.bielk1)PBIELK2
	,CONVERT(DECIMAL(3,2),kontrola2.TB1)PTB2
	,CONVERT(INT,kontrola2.SB1)SB2
	,CONVERT(INT,sdt.laktdni)LAKTDNI
	,CONVERT(INT,sdt.lakdnin)UDNI
	,CONVERT(DECIMAL(7,2),sdt.mlieknor)NAPML
	,CONVERT(DECIMAL(7,2),sdt.tuknor)NAPTK
	,CONVERT(DECIMAL(3,2),sdt.tukper)UPERT
	,CONVERT(DECIMAL(7,2),sdt.bielknor)NAPBL 
	,CONVERT(DECIMAL(3,2),sdt.bielkper)UPERB
	,CONVERT(INT,ins.poradie)PORINS
	--,(SELECT TOP 1 ( i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3)) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy ORDER BY i.IDAIN DESC)OLINREG
	,(SELECT TOP 1 (case when i.IBLIN = 'NEZ' then 'NEZ'
					else (i.IBLIN + '-' + RIGHT('000' + CONVERT(varchar, i.IBREG), 3) ) end) FROM dbo.CM_Insvyk i WHERE i.IPLCA = k.ciskravy and (CONVERT(DATE, ins.fdatum)>n.DATOTEL) ORDER BY i.IDAIN DESC)OLINREG
	,CONVERT(DATE,(CASE WHEN ins.ivyse = 9 THEN (DATEADD(DAY, 285, ins.fdatum)) ELSE NULL END))DTOTOC
    ,CONVERT(DATE, ins.fdatum)DATINS
	--,(k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3)) OUC
	,case when k.OTECLIN = 'NEZ' then 'NEZ'
			else (k.OTECLIN + '-' + RIGHT('000' + CONVERT(varchar, k.OTECREG), 3) ) end
			AS OUC
	,CONVERT(VARCHAR(70),byc.PL1 + '-' + CONVERT(VARCHAR, ISNULL(byc.KR1, 0)) + ' ' + ISNULL(byc.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR2, 0)) + ' ' + ISNULL(byc.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR3, 0)) + ' ' + ISNULL(byc.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(byc.KR4, 0)) + ' ' + ISNULL(byc.PL5, ''), ''), ''), ''))OTPLEM
	,CONVERT(VARCHAR(14),k.MA)MATKA
	,CONVERT(VARCHAR(70),(SELECT 
	--t1.ciskravy, t1.DATNAR, tt1.ciskravy, tt1.DATNAR,
	tt1.PL1 + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR1, 0)) + ' ' + ISNULL(tt1.PL2
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR2, 0)) + ' ' + ISNULL(tt1.PL3
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR3, 0)) + ' ' + ISNULL(tt1.PL4
           + '-' + CONVERT(VARCHAR, ISNULL(tt1.KR4, 0)) + ' ' + ISNULL(tt1.PL5, ''), ''), ''), '')
		FROM dbo.CM_Krava t1
			LEFT JOIN dbo.CM_Krava tt1 ON t1.MA = tt1.CISKRAVY WHERE t1.CISKRAVY = k.CISKRAVY))MAPLEM
	,CONVERT(INT, interval.rozdiel_dni)INTERVAL
	,CONVERT(INT, sp.rozdiel_dni)SERVPER
	,CONVERT(INT, medzi.MEDZIOBD)MEDZIOB
	,CONVERT(VARCHAR(4),(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)/12)))+ '/' +(CONVERT(VARCHAR,(datediff(mm,k.DATNAR,n.DATOTEL)% 12))))OVEKRM -- rok/mesiac
	,CONVERT(VARCHAR(2),n.POHLAVIE)POHLTEL
	,CONVERT(INT, n.PRIEBPOROD)PRIEBPOR
	,CONVERT(INT, nap.nap_dni)
	,CONVERT(INT, nap.nap_mliekokg)
	,CONVERT(DECIMAL(5,2), nap.nap_tukper)
	,CONVERT(DECIMAL(5,2), nap.nap_bielkper)
	,CONVERT(INT, nap.nap_tkg)
	,CONVERT(INT, nap.nap_bkg)
	,CONVERT(VARCHAR(2), k.DOVVYR)
	,CONVERT(DATE, k.DATVYR, NULL)
	,GETDATE() AS generovane
	,(SELECT TOP 1 DATKONTR FROM #kontroly kk WHERE kk.CISKRAVY = k.CISKRAVY)kontrola


	FROM dbo.CM_Krava k
		LEFT JOIN dbo.CM_Naplak n ON (n.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #2ko kontrola2 ON (kontrola2.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #sdt sdt ON (sdt.ciskravy = k.CISKRAVY)
		LEFT JOIN #inseminacie ins ON (ins.krava = k.CISKRAVY)
		LEFT JOIN dbo.CM_KravyTDM tdm ON (tdm.CISLO = k.CISKRAVY)
		LEFT JOIN dbo.CM_Telata tel ON (tel.CISTELATA = k.CISKRAVY)
		LEFT JOIN dbo.CM_Byci byc ON (byc.USCISLO = tel.OUC)
		LEFT JOIN #krava mama ON (mama.ma = k.CISKRAVY)
		LEFT JOIN #interval interval ON (interval.krava = k.CISKRAVY)
		LEFT JOIN #servisperioda sp ON (sp.krava = k.CISKRAVY)
		LEFT JOIN #medziobdobie medzi ON (medzi.CISKRAVY = k.CISKRAVY)
		LEFT JOIN #napocetlak nap ON (k.CISKRAVY = nap.ciskravy)
	WHERE  k.CHOVATEL = @chov and k.PRIZNAKKU=1
			AND (k.DATVYR >= @datum2 OR k.DOVVYR IS NULL)
			--AND k.DOVVYR IS NULL

	
	--------------------------------------------------------------------
	;WITH CTE AS(
	 SELECT ciskravy, chov, mesiac, rok, dekada,
		 RN = ROW_NUMBER()OVER(PARTITION BY ciskravy ORDER BY ciskravy)
		 FROM dbo.CR_KURHD_MesUzavCH_1 WHERE chov = @chov AND rok = @rok AND mesiac = @mesiac AND dekada = @dekada AND ciskravy IS NOT NULL
					)
		DELETE FROM CTE  WHERE RN > 1
	--------------------------------------------------------------------




	END 

	END
go

CREATE procedure  [dbo].[Roc_MLHD_16]
	@datumOd date,
	@datumDo date

	as 
	begin

--declare @datumOd date = '2017-01-01', @datumDo date = '2017-12-31'

		delete from Roc_MLHD_Tab_16 where rok = DATEPART(YEAR,@datumOd); 
		

	--holstein
	declare @mastale_H table
		(
		--Por bigint,
		podnik varchar(9),
		Nazov varchar(100),
		Sidlo  varchar(100),
		Uzitk_mlieka int,
		Prevaz_plem  varchar(10),
		Uzav_lakt float,
		tuk_P float,
		bielk_P float,
		Priem_lakt float,
		Kraj varchar(100),
		rok varchar(4),
		Plem_typ varchar(6)
		)
	--slovenske strakate
	declare @mastale_S table
		(
		--Por bigint,
		podnik varchar(9),
		Nazov varchar(100),
		Sidlo  varchar(100),
		Uzitk_mlieka int,
		Prevaz_plem  varchar(10),
		Uzav_lakt float,
		tuk_P float,
		bielk_P float,
		Priem_lakt float,
		Kraj varchar(100),
		rok varchar(4),
		Plem_typ varchar(6)
		)
	--Pinzgauske
	declare @mastale_P table
		(
		--Por bigint,
		podnik varchar(9),
		Nazov varchar(100),
		Sidlo  varchar(100),
		Uzitk_mlieka int,
		Prevaz_plem  varchar(10),
		Uzav_lakt float,
		tuk_P float,
		bielk_P float,
		Priem_lakt float,
		Kraj varchar(100),
		rok varchar(4),
		Plem_typ varchar(6)
		)

		declare @podiely table				-----PL1 a ich podiel v chove
			(
			podnik varchar (6),
			PL1 varchar(3),
			KR1 float,
			PodielPerc float--
			)
		
	declare @podniky int = (select count(oznacenie) from  CR_LaktacneZostavy_Opr where len(Oznacenie)=6 and Oznacenie=Filter )
	 print 'podniky'
	 print @podniky
	
	if @podniky >0
	begin 
		Insert into @podiely
		 (PL1, podnik,  KR1, PodielPerc)

			select distinct	 k.pl1 as PL1,
												substring(k.chovatel,1,6) as podnik,
												sum(k.KR1)as KR1,
												(sum(k.KR1)/(select sum(k1.KR1)from CM_Krava as k1
												where substring(k1.chovatel,1,6) = substring(k.chovatel,1,6)
															and PRIZNAKKU = 1
															and (k1.dovvyr is null or (k1.dovvyr is not null and k1.DATVYR>=@datumOd))))*100 as PodielPerc
			from CR_LaktacneZostavy_Opr as a --CM_Krava
				left outer join CM_Krava as k on substring(k.CHOVATEL,1,6) = a.Oznacenie
			where  substring(k.CHOVATEL,1,6)  =  a.Oznacenie
						 and substring(k.CHOVATEL,7,3) not in ('010','700', '699')
						 and k.PRIZNAKKU = 1
						 and (k.dovvyr is null or (k.dovvyr is not null and k.DATVYR>=@datumOd))
						 and k.PL1 is not null
			group by k.PL1, substring(k.chovatel,1,6)

	end
	--select * from @podiely
		
	declare @counter int,  @podnik varchar(6)
		declare @plemena table
		(
		PL1 varchar(3),
		KR1 float,
		PodielPerc float,
		CHOVATEL varchar (9),
		por int
		)

	declare @ZoznamPL1 table
		(
		podnik VARCHAR(6),
		plem varchar(10)
		)
		
	DECLARE poradie_cursor CURSOR LOCAL
		FOR
			SELECT podnik FROM @podiely group by podnik
						
		OPEN poradie_cursor
		FETCH NEXT FROM poradie_cursor INTO @podnik
		WHILE @@FETCH_STATUS = 0
			BEGIN 			
				--print @chovatelia			
				delete from  @plemena			
				insert into @plemena
					(PL1, KR1, PodielPerc, CHOVATEL, por)
					select distinct PL1,KR1, PodielPerc, podnik,ROW_NUMBER() OVER (ORDER BY PodielPerc desc) as por from @podiely as p where p.PodielPerc >12.5 and podnik = @podnik
			
				declare @PL1 varchar(10) = ISNULL((select pl1 from @plemena where por=1),'') +' '+ isnull((select PL1 from @plemena where por=2),'') +' '+ isnull((select PL1  from @plemena where por=3),'') 
		
				insert into @ZoznamPL1
				select distinct @podnik,@PL1
						
				FETCH NEXT FROM poradie_cursor INTO @podnik
			END

		CLOSE poradie_cursor
		DEALLOCATE poradie_cursor

		--select * from  @ZoznamPL1


insert into @mastale_H 
			(podnik,Nazov,Sidlo ,Uzitk_mlieka ,Prevaz_plem ,Uzav_lakt ,tuk_P ,bielk_P,Priem_lakt,Kraj,rok ,Plem_typ)
		select  distinct top 25 --ROW_NUMBER() OVER(ORDER BY Lakt.MliekNorCelk desc) AS Por,
				Lakt.Oznacenie as podnik, 
				p.NAZOVSKR as Nazov, 
				pl.Sidlo as Sidlo,
				round(Lakt.MliekNorCelk,0)  as Uzitk_mlieka,
				z.plem as Prevaz_plem,
				round(Lakt.PocLakNcelk,0) as Uzav_lakt,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				pl.priem_lakt as Priem_lakt,
				(case when left(Lakt.Oznacenie,1)='1' then 'Bratislavský'
						when left(Lakt.Oznacenie,1)='2' then 'Trnavský'
						when left(Lakt.Oznacenie,1)='3' then 'Trenčiansky'
						when left(Lakt.Oznacenie,1)='4' then 'Nitriansky' 
						when left(Lakt.Oznacenie,1)='5' then 'Žilinský' 
						when left(Lakt.Oznacenie,1)='6' then 'Banskobystrický' 
						when left(Lakt.Oznacenie,1)='7' then 'Prešovský' 
						when left(Lakt.Oznacenie,1)='8' then 'Košický' 
						end) as Kraj,
				datepart(year, @datumOd) as rok,
				'Hol' as Plem_typ
		FROM CR_LaktacneZostavy_Opr as Lakt	 
					left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = Lakt.Oznacenie
					--left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
					left outer join Roc_MLHD_Tab_23A as pl on pl.kraj + pl.okres + pl.podnik = Lakt.Oznacenie and pl.rok = DATEPART(YEAR,@datumOd)
					left outer join  @ZoznamPL1 as z on z.podnik = Lakt.Oznacenie
					where  len(Lakt.Oznacenie)=6 and Lakt.Oznacenie = Lakt.Filter and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
					and pl.rok = DATEPART(YEAR,@datumOd)
					and left(z.plem,1) in ('H','R')
			order by round(Lakt.MliekNorCelk,0) desc 
	--select * from @mastale_H

	insert into @mastale_S 
			(podnik,Nazov,Sidlo ,Uzitk_mlieka ,Prevaz_plem ,Uzav_lakt ,tuk_P ,bielk_P,Priem_lakt,Kraj,rok ,Plem_typ)
		select distinct top 25-- ROW_NUMBER() OVER(ORDER BY Lakt.MliekNorCelk desc) AS Por,
				Lakt.Oznacenie as podnik, 
				p.NAZOVSKR as Nazov, 
				pl.Sidlo as Sidlo,
			  round(Lakt.MliekNorCelk,0)  as Uzitk_mlieka,
				z.plem as Prevaz_plem,
			  round(Lakt.PocLakNcelk,0) as Uzav_lakt,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				pl.priem_lakt as Priem_lakt,
				(case when left(Lakt.Oznacenie,1)='1' then 'Bratislavský'
						when left(Lakt.Oznacenie,1)='2' then 'Trnavský'
						when left(Lakt.Oznacenie,1)='3' then 'Trenčiansky'
						when left(Lakt.Oznacenie,1)='4' then 'Nitriansky' 
						when left(Lakt.Oznacenie,1)='5' then 'Žilinský' 
						when left(Lakt.Oznacenie,1)='6' then 'Banskobystrický' 
						when left(Lakt.Oznacenie,1)='7' then 'Prešovský' 
						when left(Lakt.Oznacenie,1)='8' then 'Košický' 
						end) as Kraj,
				datepart(year, @datumOd) as rok,
				'SLst' as Plem_typ
				
			FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = Lakt.Oznacenie
							--left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join Roc_MLHD_Tab_23A as pl on pl.kraj + pl.okres + pl.podnik = Lakt.Oznacenie and pl.rok = DATEPART(YEAR,@datumOd)
							left outer join  @ZoznamPL1 as z on z.podnik = Lakt.Oznacenie
						 where  len(Lakt.Oznacenie)=6 and Lakt.Oznacenie = Lakt.Filter and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and pl.rok = DATEPART(YEAR,@datumOd)
							and left(z.plem,2) in ('S ','MB')
							and Lakt.PocLakNcelk > 10
					order by round(Lakt.MliekNorCelk,0) desc 
	--select * from @mastale_S


	insert into @mastale_P
			(podnik,Nazov,Sidlo ,Uzitk_mlieka ,Prevaz_plem ,Uzav_lakt ,tuk_P ,bielk_P,Priem_lakt,Kraj,rok ,Plem_typ)
		select  distinct top 5 --ROW_NUMBER() OVER(ORDER BY Lakt.MliekNorCelk desc) AS Por,
				Lakt.Oznacenie as podnik, 
				p.NAZOVSKR as Nazov, 
				pl.Sidlo as Sidlo,
			  round(Lakt.MliekNorCelk,0)  as Uzitk_mlieka,
				z.plem as Prevaz_plem,
	  		round(Lakt.PocLakNcelk,0) as Uzav_lakt,
				round((Lakt.TukNorCelk*100)/Lakt.MliekNorCelk,2) as tuk_P,
				round((Lakt.BielkNorCelk*100)/Lakt.MliekNorCelk,2) as bielk_P,
				pl.priem_lakt as Priem_lakt,
				(case when left(Lakt.Oznacenie,1)='1' then 'Bratislavský'
						when left(Lakt.Oznacenie,1)='2' then 'Trnavský'
						when left(Lakt.Oznacenie,1)='3' then 'Trenčiansky'
						when left(Lakt.Oznacenie,1)='4' then 'Nitriansky' 
						when left(Lakt.Oznacenie,1)='5' then 'Žilinský' 
						when left(Lakt.Oznacenie,1)='6' then 'Banskobystrický' 
						when left(Lakt.Oznacenie,1)='7' then 'Prešovský' 
						when left(Lakt.Oznacenie,1)='8' then 'Košický' 
						end) as Kraj,
				datepart(year, @datumOd) as rok,
				'Pin' as Plem_typ
					
		FROM CR_LaktacneZostavy_Opr as Lakt	 
							left outer join NM_PODNIK as p on p.kraj + p.okres + p.podnik = Lakt.Oznacenie
							--left outer join NM_HDDETAIL as h on h.KRAJ+ h.OKRES+ h.PODNIK + h.CHOV = Lakt.Oznacenie
							left outer join Roc_MLHD_Tab_23A as pl on pl.kraj + pl.okres + pl.podnik = Lakt.Oznacenie and pl.rok = DATEPART(YEAR,@datumOd)
							left outer join  @ZoznamPL1 as z on z.podnik = Lakt.Oznacenie
						 where  len(Lakt.Oznacenie)=6 and Lakt.Oznacenie = Lakt.Filter and Lakt.DatumOd = @datumOd and Lakt.DatumDo = @datumDo
							and pl.rok = DATEPART(YEAR,@datumOd)
							and left(z.plem,1) ='P'
					order by round(Lakt.MliekNorCelk,0) desc 
	--select * from @mastale_P
	
	insert into Roc_MLHD_Tab_16
	select ROW_NUMBER() OVER(ORDER BY Uzitk_mlieka desc) AS Por,
		Nazov,
		Sidlo,
		Uzitk_mlieka,
		Prevaz_plem ,
		Uzav_lakt ,
		tuk_P ,
		bielk_P,
		Priem_lakt ,
		Kraj ,
		rok ,
		Plem_typ  from @mastale_H
	
	insert into Roc_MLHD_Tab_16
	select ROW_NUMBER() OVER(ORDER BY Uzitk_mlieka desc) AS Por,
	Nazov,
		Sidlo,
		Uzitk_mlieka,
		Prevaz_plem ,
		Uzav_lakt ,
		tuk_P ,
		bielk_P,
		Priem_lakt ,
		Kraj ,
		rok ,
		Plem_typ from @mastale_S
	
	insert into Roc_MLHD_Tab_16
	select ROW_NUMBER() OVER(ORDER BY Uzitk_mlieka desc) AS Por,
	Nazov,
		Sidlo,
		Uzitk_mlieka,
		Prevaz_plem ,
		Uzav_lakt ,
		tuk_P ,
		bielk_P,
		Priem_lakt ,
		Kraj ,
		rok ,
		Plem_typ from @mastale_P

End
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 07.03.2017
-- Description: uprava pre export CP_BLUP_PROOFC do DBF
-- =============================================
CREATE PROCEDURE [dbo].[C_blup_PROOFC]

AS
BEGIN
	-- dopocet TPERC a BPERC
	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select TPH from CP_BLUP_K95) * m305) / (m305 + (select MH from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPH from CP_BLUP_K95) * m305) / (m305 + (select MH from CP_BLUP_K95))
	where plem = 'H'

	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select TPS from CP_BLUP_K95) * m305) / (m305 + (select MS from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPS from CP_BLUP_K95) * m305) / (m305 + (select MS from CP_BLUP_K95))
	where plem = 'S'

	update CP_BLUP_PROOFC
		set tperc = (100 * t305 - (select TPP from CP_BLUP_K95) * m305) / (m305 + (select MP from CP_BLUP_K95)),
			bperc = (100 * b305 - (select BPP from CP_BLUP_K95) * m305) / (m305 + (select MP from CP_BLUP_K95))
	where plem = 'P'

	-- vypocet smerodajnych odchylok (zakladna rok 2010)
	SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_H
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'H'

		SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_S
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'S'

		SELECT 
		sum(m305)/count(*) as	m305,
		sum(m100)/count(*) as 	m100,
		sum(m200)/count(*) as 	m200,
		sum(m300)/count(*) as 	m300,
		sum(mp)	 /count(*)	as	mp,
		sum(t305)/count(*) as 	t305,
		sum(t100)/count(*) as 	t100,
		sum(t200)/count(*) as 	t200,
		sum(t300)/count(*) as 	t300,
		sum(tp)	 /count(*)	as	tp,
		sum(b305)/count(*) as 	b305,
		sum(b100)/count(*) as 	b100,
		sum(b200)/count(*) as 	b200,
		sum(b300)/count(*) as 	b300,
		sum(bp)	 /count(*)	as	bp,
		sum(tperc)/count(*) as	tperc,
		sum(bperc)/count(*) as	bperc
		into #temp_stdevS_1_P
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'P'

	-- uprava koeficientov k95b
	UPDATE CP_BLUP_K95 SET
		M0H = (select m305 from #temp_stdevS_1_H),
		M1H = (select m100 from #temp_stdevS_1_H),
		M2H = (select m200 from #temp_stdevS_1_H),
		M3H = (select m300 from #temp_stdevS_1_H),
		M4H = (select mp from #temp_stdevS_1_H),
		T0H = (select t305 from #temp_stdevS_1_H),
		T1H = (select t100 from #temp_stdevS_1_H),
		T2H = (select t200 from #temp_stdevS_1_H),
		T3H = (select t300 from #temp_stdevS_1_H),
		T4H = (select tp from #temp_stdevS_1_H),
		B0H = (select b305 from #temp_stdevS_1_H),
		B1H = (select b100 from #temp_stdevS_1_H),
		B2H = (select b200 from #temp_stdevS_1_H),
		B3H = (select b300 from #temp_stdevS_1_H),
		B4H = (select bp from #temp_stdevS_1_H),
		TPERH = (select tperc from #temp_stdevS_1_H),
		BPERH = (select bperc from #temp_stdevS_1_H)

	UPDATE CP_BLUP_K95 SET
		M0S = (select m305 from #temp_stdevS_1_S),
		M1S = (select m100 from #temp_stdevS_1_S),
		M2S = (select m200 from #temp_stdevS_1_S),
		M3S = (select m300 from #temp_stdevS_1_S),
		M4S = (select mp from #temp_stdevS_1_S),
		T0S = (select t305 from #temp_stdevS_1_S),
		T1S = (select t100 from #temp_stdevS_1_S),
		T2S = (select t200 from #temp_stdevS_1_S),
		T3S = (select t300 from #temp_stdevS_1_S),
		T4S = (select tp from #temp_stdevS_1_S),
		B0S = (select b305 from #temp_stdevS_1_S),
		B1S = (select b100 from #temp_stdevS_1_S),
		B2S = (select b200 from #temp_stdevS_1_S),
		B3S = (select b300 from #temp_stdevS_1_S),
		B4S = (select bp from #temp_stdevS_1_S),
		TPERS = (select tperc from #temp_stdevS_1_S),
		BPERS = (select bperc from #temp_stdevS_1_S)

	UPDATE CP_BLUP_K95 SET
		M0P = (select m305 from #temp_stdevS_1_P),
		M1P = (select m100 from #temp_stdevS_1_P),
		M2P = (select m200 from #temp_stdevS_1_P),
		M3P = (select m300 from #temp_stdevS_1_P),
		M4P = (select mp from #temp_stdevS_1_P),
		T0P = (select t305 from #temp_stdevS_1_P),
		T1P = (select t100 from #temp_stdevS_1_P),
		T2P = (select t200 from #temp_stdevS_1_P),
		T3P = (select t300 from #temp_stdevS_1_P),
		T4P = (select tp from #temp_stdevS_1_P),
		B0P = (select b305 from #temp_stdevS_1_P),
		B1P = (select b100 from #temp_stdevS_1_P),
		B2P = (select b200 from #temp_stdevS_1_P),
		B3P = (select b300 from #temp_stdevS_1_P),
		B4P = (select bp from #temp_stdevS_1_P),
		TPERP = (select tperc from #temp_stdevS_1_P),
		BPERP = (select bperc from #temp_stdevS_1_P)

	-- vypocet smerodajnych odchylok na zakladnu - rok 2010
	SELECT 
		430 as ssmh,
		15 as ssth,
		12 as ssbh,
		0.18 as sstph,
		0.10 as ssbph,      
		stdev(m305) as sm0h,
		stdev(m100) as sm1h,
		stdev(m200) as sm2h, 
		stdev(m300) as sm3h, 
		stdev(mp) as sm4h, 
		stdev(t305) as st0h, 
		stdev(t100) as st1h, 
		stdev(t200) as st2h, 
		stdev(t300) as st3h, 
		stdev(tp) as st4h, 
		stdev(b305) as sb0h, 
		stdev(b100) as sb1h, 
		stdev(b200) as sb2h, 
		stdev(b300) as sb3h, 
		stdev(bp) as sb4h, 
		stdev(tperc) as stperch, 
		stdev(bperc) as sbperch
		into #temp_stdevC_H
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'H'

	SELECT 
		310 as ssms,
		12 as ssts,
		9 as ssbs,
		0.14 as sstps,
		0.10 as ssbps,      
		stdev(m305) as sm0s,
		stdev(m100) as sm1s,
		stdev(m200) as sm2s, 
		stdev(m300) as sm3s, 
		stdev(mp) as sm4s, 
		stdev(t305) as st0s, 
		stdev(t100) as st1s, 
		stdev(t200) as st2s, 
		stdev(t300) as st3s, 
		stdev(tp) as st4s, 
		stdev(b305) as sb0s, 
		stdev(b100) as sb1s, 
		stdev(b200) as sb2s, 
		stdev(b300) as sb3s, 
		stdev(bp) as sb4s, 
		stdev(tperc) as stpercs, 
		stdev(bperc) as sbpercs
		into #temp_stdevC_S
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'S'

	SELECT 
		250 as ssmp,
		10 as sstp,
		8 as ssbp,
		0.12 as sstpp,
		0.9 as ssbpp,      
		stdev(m305) as sm0p,
		stdev(m100) as sm1p,
		stdev(m200) as sm2p, 
		stdev(m300) as sm3p, 
		stdev(mp) as sm4p, 
		stdev(t305) as st0p, 
		stdev(t100) as st1p, 
		stdev(t200) as st2p, 
		stdev(t300) as st3p, 
		stdev(tp) as st4p, 
		stdev(b305) as sb0p, 
		stdev(b100) as sb1p, 
		stdev(b200) as sb2p, 
		stdev(b300) as sb3p, 
		stdev(bp) as sb4p, 
		stdev(tperc) as stpercp, 
		stdev(bperc) as sbpercp
		into #temp_stdevC_P
	FROM            CP_BLUP_PROOFC AS p LEFT OUTER JOIN
							 CM_Krava AS k ON p.cislo = k.CISKRAVY
	WHERE        (k.DATNAR BETWEEN '2010-01-01' AND '2010-12-31') and p.plem = 'P'

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + '' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + '' + ISNULL(k.PL2, '') + '' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + '' + ISNULL(k.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + '' + ISNULL(k.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + '' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevC_H)) * (select ssmh from #temp_stdevC_H) AS M305, 
		((p.m305 - (select M0H from CP_BLUP_K95)) / (select sm0h from #temp_stdevC_H) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1H from CP_BLUP_K95)) / (select sm1h from #temp_stdevC_H)) * (select ssmh from #temp_stdevC_H) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevC_H)) * (select ssth from #temp_stdevC_H) AS T305, 
		((p.t305 - (select T0H from CP_BLUP_K95)) / (select st0h from #temp_stdevC_H) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1H from CP_BLUP_K95)) / (select st1h from #temp_stdevC_H)) * (select ssth from #temp_stdevC_H) AS T100, 
		((p.tperc - (select TPERH from CP_BLUP_K95)) / (select stperch from #temp_stdevC_H)) * (select sstph from #temp_stdevC_H) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevC_H)) * (select ssbh from #temp_stdevC_H) AS B305, 
		((p.b305 - (select B0H from CP_BLUP_K95)) / (select sb0h from #temp_stdevC_H) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1H from CP_BLUP_K95)) / (select sb1h from #temp_stdevC_H)) * (select ssbh from #temp_stdevC_H) AS B100, 
		((p.bperc - (select BPERH from CP_BLUP_K95)) / (select sbperch from #temp_stdevC_H)) * (select ssbph from #temp_stdevC_H) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_H
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo and ab.plem = 'H'
	where p.plem = 'H'
	ORDER BY p.cislo

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + '' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + '' + ISNULL(k.PL2, '') + '' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + '' + ISNULL(k.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + '' + ISNULL(k.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + '' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0S from CP_BLUP_K95)) / (select sm0s from #temp_stdevC_S)) * (select ssms from #temp_stdevC_S) AS M305, 
		((p.m305 - (select M0S from CP_BLUP_K95)) / (select sm0s from #temp_stdevC_S) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1S from CP_BLUP_K95)) / (select sm1s from #temp_stdevC_S)) * (select ssms from #temp_stdevC_S) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0S from CP_BLUP_K95)) / (select st0s from #temp_stdevC_S)) * (select ssts from #temp_stdevC_S) AS T305, 
		((p.t305 - (select T0S from CP_BLUP_K95)) / (select st0s from #temp_stdevC_S) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1S from CP_BLUP_K95)) / (select st1s from #temp_stdevC_S)) * (select ssts from #temp_stdevC_S) AS T100, 
		((p.tperc - (select TPERS from CP_BLUP_K95)) / (select stpercs from #temp_stdevC_S)) * (select sstps from #temp_stdevC_S) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0S from CP_BLUP_K95)) / (select sb0s from #temp_stdevC_S)) * (select ssbs from #temp_stdevC_S) AS B305, 
		((p.b305 - (select B0S from CP_BLUP_K95)) / (select sb0s from #temp_stdevC_S) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1S from CP_BLUP_K95)) / (select sb1s from #temp_stdevC_S)) * (select ssbs from #temp_stdevC_S) AS B100, 
		((p.bperc - (select BPERS from CP_BLUP_K95)) / (select sbpercs from #temp_stdevC_S)) * (select ssbps from #temp_stdevC_S) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_S
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo and ab.plem = 'S'
	where p.plem = 'S'
	ORDER BY p.cislo

	SELECT        
		p.cislo AS KRAVA, 
		NULL AS POZN, 
		k.DATNAR AS DATUMN, 
		convert(varchar(4), k.DATNAR) AS ROK, 
		k.OUSCIS AS SIRE, 
		k.MA AS DAM, 
		dbo.C_Blup_PLTyp(k.pl1, k.kr1, k.pl2, k.kr2, k.pl3, k.kr3, k.pl4, k.kr4) AS BREEDING, 
		ISNULL(k.PL1, '') + '' + CASE WHEN CONVERT(varchar, k.KR1) <> '0' THEN CONVERT(varchar, k.KR1) 
							ELSE '' END + '' + ISNULL(k.PL2, '') + '' + CASE WHEN CONVERT(varchar, k.KR2) <> '0' THEN CONVERT(varchar, k.KR2) ELSE '' END + '' + ISNULL(k.PL3, '') 
							+ '' + CASE WHEN CONVERT(varchar, k.KR3) <> '0' THEN CONVERT(varchar, k.KR3) ELSE '' END + '' + ISNULL(k.PL4, '') + '' + CASE WHEN CONVERT(varchar, 
							k.KR4) <> '0' THEN CONVERT(varchar, k.KR4) ELSE '' END + '' + ISNULL(k.PL5, '') AS PLEMENO, 
		null AS NH, 
		ab.nd AS ND, 
		ab.nr AS NR, 
		null as N, 
		null as MLIEKO,
		null as TUK,
		null as TUKP,
		null as BIELK,
		null as BIELKP,
		null AS SPI, 
		((p.m305 - (select M0P from CP_BLUP_K95)) / (select sm0p from #temp_stdevC_P)) * (select ssmp from #temp_stdevC_P) AS M305, 
		((p.m305 - (select M0P from CP_BLUP_K95)) / (select sm0p from #temp_stdevC_P) * 12) + 100 AS RPHM, 
		((p.m100 - (select M1P from CP_BLUP_K95)) / (select sm1p from #temp_stdevC_P)) * (select ssmp from #temp_stdevC_P) AS M100, 
		ab.relm AS MREL, 
		((p.t305 - (select T0P from CP_BLUP_K95)) / (select st0p from #temp_stdevC_P)) * (select sstp from #temp_stdevC_P) AS T305, 
		((p.t305 - (select T0P from CP_BLUP_K95)) / (select st0p from #temp_stdevC_P) * 12) + 100 AS RPHT, 
		((p.t100 - (select T1P from CP_BLUP_K95)) / (select st1p from #temp_stdevC_P)) * (select sstp from #temp_stdevC_P) AS T100, 
		((p.tperc - (select TPERP from CP_BLUP_K95)) / (select stpercp from #temp_stdevC_P)) * (select sstpp from #temp_stdevC_P) AS TP, 
		p.tperc AS TPERC, 
		ab.relt AS TREL, 
		((p.b305 - (select B0P from CP_BLUP_K95)) / (select sb0p from #temp_stdevC_P)) * (select ssbp from #temp_stdevC_P) AS B305, 
		((p.b305 - (select B0P from CP_BLUP_K95)) / (select sb0p from #temp_stdevC_P) * 12) + 100 AS RPHB, 
		((p.b100 - (select B1P from CP_BLUP_K95)) / (select sb1p from #temp_stdevC_P)) * (select ssbp from #temp_stdevC_P) AS B100, 
		((p.bperc - (select BPERP from CP_BLUP_K95)) / (select sbpercp from #temp_stdevC_P)) * (select ssbpp from #temp_stdevC_P) AS BP, 
		p.bperc AS BPERC, 
		ab.relb AS BREL, 
		(ab.relm + ab.relt + ab.relb) / 3 AS REL
		INTO #temp_vysledny_P
	FROM CP_BLUP_PROOFC AS p LEFT OUTER JOIN CM_Krava AS k ON p.cislo = k.CISKRAVY
							LEFT OUTER JOIN CP_BLUP_ACCC AS ab ON p.cislo = ab.cislo and ab.plem = 'P'
	where p.plem = 'P'
	ORDER BY p.cislo


	DELETE FROM CP_BLUP_KRAVYTDM 


	INSERT INTO CP_BLUP_KRAVYTDM
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMH from CP_BLUP_K95) + t305 * (select EWTH from CP_BLUP_K95) + b305 * (select EWBH from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		'H'
	FROM #temp_vysledny_H

	INSERT INTO CP_BLUP_KRAVYTDM
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMS from CP_BLUP_K95) + t305 * (select EWTS from CP_BLUP_K95) + b305 * (select EWBS from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		'S'
	FROM #temp_vysledny_S
	
	INSERT INTO CP_BLUP_KRAVYTDM
	SELECT 
		KRAVA, 
		POZN, 
		DATUMN, 
		ROK, 
		SIRE, 
		DAM, 
		BREEDING,
		PLEMENO,
		NH, 
		ND, 
		NR, 
		N, 
		MLIEKO,
		TUK,
		TUKP,
		BIELK,
		BIELKP,
		m305 * (select EWMP from CP_BLUP_K95) + t305 * (select EWTP from CP_BLUP_K95) + b305 * (select EWBP from CP_BLUP_K95) AS SPI,  
		M305,
		RPHM,
		M100,
		MREL, 
		T305,
		RPHT,
		T100,
		TP,
		TPERC,
		TREL, 
		B305,
		RPHB,
		B100,
		BP,
		BPERC,
		BREL,
		REL,
		'P'
	FROM #temp_vysledny_P

	update CP_BLUP_KPLEM
		SET m0h_pr_k = (select m0h from CP_BLUP_K95),
			t0h_pr_k = (select t0h from CP_BLUP_K95),
			tperh_pr_k = (select tperh from CP_BLUP_K95),
			b0h_pr_k = (select b0h from CP_BLUP_K95),
			bperh_pr_k = (select bperh from CP_BLUP_K95),
			ssmh_st = (select ssmh from #temp_stdevC_H),
			ssth_st = (select ssth from #temp_stdevC_H),
			ssbh_st = (select ssbh from #temp_stdevC_H),
			sstph_st = (select sstph from #temp_stdevC_H),
			ssbph_st = (select ssbph from #temp_stdevC_H),
			sm0h_so = (select sm0h from #temp_stdevC_H),	
			st0h_so = (select st0h from #temp_stdevC_H),
			stperch_so = (select stperch from #temp_stdevC_H),
			sb0h_so = (select sb0h from #temp_stdevC_H),
			sbperch_so = (select sbperch from #temp_stdevC_H),

			m0s_pr_k = (select M0S from CP_BLUP_K95),
			t0s_pr_k = (select T0S from CP_BLUP_K95),
			tpers_pr_k = (select TPERS from CP_BLUP_K95),
			b0s_pr_k = (select B0S from CP_BLUP_K95),
			bpers_pr_K = (select BPERS from CP_BLUP_K95),
			ssms_st = (select ssms from #temp_stdevC_S),
			ssts_st = (select ssts from #temp_stdevC_S),
			ssbs_st = (select ssbs from #temp_stdevC_S),
			sstps_st = (select sstps from #temp_stdevC_S),
			ssbps_st = (select ssbps from #temp_stdevC_S),
			sm0s_so = (select sm0s from #temp_stdevC_S),	
			st0s_so = (select st0s from #temp_stdevC_S),
			stpercs_so = (select stpercs from #temp_stdevC_S),
			sb0s_so = (select sb0s from #temp_stdevC_S),
			sbpercs_so = (select sbpercs from #temp_stdevC_S),

			m0p_pr_k = (select M0P from CP_BLUP_K95),
			t0p_pr_k = (select T0P from CP_BLUP_K95),
			tperp_pr_k = (select TPERP from CP_BLUP_K95),
			b0p_pr_k = (select B0P from CP_BLUP_K95),
			bperp_pr_K = (select BPERP from CP_BLUP_K95),
			ssmp_st = (select ssmp from #temp_stdevC_P),
			sstp_st = (select sstp from #temp_stdevC_P),
			ssbp_st = (select ssbp from #temp_stdevC_P),
			sstpp_st = (select sstpp from #temp_stdevC_P),
			ssbpp_st = (select ssbpp from #temp_stdevC_P),
			sm0p_so = (select sm0p from #temp_stdevC_P),	
			st0p_so = (select st0p from #temp_stdevC_P),
			stpercp_so = (select stpercp from #temp_stdevC_P),
			sb0p_so = (select sb0p from #temp_stdevC_P),
			sbpercp_so = (select sbpercp from #temp_stdevC_P)

END
go


-- =============================================
-- Author:		PSSR, š.p.
-- Create date: 16.12.2011
-- Description:	Zapise chybu do PLIS.dbo.CE_Dokvazmas
-- =============================================
CREATE PROCEDURE [dbo].[C_aktual_Dokvazmas_zapis_chybu]
	@ParID [int], 
	@ParCisloChyby [int]
AS
BEGIN
	declare @PriznakChyby [varchar](1)
	
	select @PriznakChyby = ZNCH_CW_INS from CC_ChybyKU where CISCHYBY = @ParCisloChyby		
		
	if @PriznakChyby is not NULL
		insert into CE_DOKVAZMAS(ID, CISCHYBY, PRIZNAKCHYBY) values (@ParID, @ParCisloChyby, @PriznakChyby)
	return (@PriznakChyby)

END

go


CREATE PROCEDURE [dbo].[C_ZZ_Meso_OcakOtel]
AS
BEGIN
	
	
TRUNCATE TABLE [PLIS].[dbo].CP_Meso_OcakavaneOrtel

	declare @k as varchar(14);
	declare @datinsem as date;
	declare @bik as varchar(10);
	declare @datOcOt as date;

	declare insem cursor for
	select  distinct i.IPLCA   
	from plis.dbo.CM_Krava as k
	inner join plis.dbo.CM_Insvyk as i
	on k.CISKRAVY=i.IPLCA
	where i.IVYSE in('7','8','9')
	and k.PRIZNAKKU=2

	open insem
	fetch next from insem into @k

	while @@FETCH_STATUS=0

	begin

		declare posins cursor for
		select top 1 i.IDAIN,i.IBLIN+'-'+convert(varchar,i.IBREG),DATEADD(day,285,i.IDAIN)
		from plis.dbo.CM_Krava as k
		inner join plis.dbo.CM_Insvyk as i
		on k.CISKRAVY=i.IPLCA
		where i.IVYSE in('7','8','9')
		and k.PRIZNAKKU=2
		and i.IPLCA=@k
		group by i.IPLCA,i.IDAIN,i.IBLIN,i.IBREG,i.IVYSE,k.CISKRAVY
		order by i.IDAIN DESC

		open posins 
		fetch next from posins into @datinsem,@bik,@datOcOt

		while @@FETCH_STATUS=0
		begin
			fetch next from posins into @datinsem,@bik,@datOcOt
		end
		close posins
		deallocate posins

			insert into CP_Meso_OcakavaneOrtel values (@k,@datinsem,@bik,@datOcOt);

		fetch next from insem into @k
	end

	close isem
	deallocate insem;

END
go

-- =============================================
-- Author:		PSSR, s.p.
-- Create date: 2016-06-08
-- Description:	Zformatovanie plemena zvierata do retazca
-- =============================================
CREATE FUNCTION [dbo].[FormatPlemeno]
(
	@PL1 varchar(2),
	@KR1 float,
	@PL2 varchar(2),
	@KR2 float,
	@PL3 varchar(2),
	@KR3 float,
	@PL4 varchar(2),
	@KR4 float,
	@PL5 varchar(2)
)
RETURNS varchar(100)
AS
BEGIN
	declare @plemeno varchar(100)
	set @plemeno = (SELECT isnull(@pl1 + '-' + isnull(convert(varchar(6),@KR1) + ' ' + isnull(@pl2 + '-' + isnull(convert(varchar(5),@KR2) + ' ' + isnull(@pl3 + '-' + isnull(convert(varchar(5),@KR3) + ' ' + isnull(@pl4 + '-' + ISNULL(convert(varchar(5),@KR4) + ' ' + ISNULL(@PL5 + '-' + convert(varchar(5), 100-(@KR1 + @KR2 + @KR3 + @KR4)), ''), ''), ''), ''), ''), ''), ''), '100'), ''))

	RETURN @plemeno

END
go




-- =============================================
-- Author:		Vladimír Ďurech
-- Create date: 17.03.2016
-- Description:	Vrati Typ zamerania stada z menovky
-- =============================================
CREATE FUNCTION [dbo].[S_zisti_TypZam]
(
	@KrOkres [varchar](3),
	@Podnik [varchar](3),
	@Stado [varchar] (3)
)
RETURNS varchar(1)
AS
BEGIN

	declare @kraj varchar(1) = substring(@KrOkres, 1, 2)
	declare @okres varchar(2) = substring(@KrOkres, 2, 3)

	declare @UzitZSt varchar(1);
	declare @PlemSt varchar(2);
  -- @PlemSt - Plemeno stada (beru sa prve dva znaky z plemena menovky)
  -- @UzitZSt - Uzitkove zameranie stada 
	(select @UzitZSt = uzitzst,  @PlemSt = substring(plem, 1, 2) 
		from NM_OVDETAIL 
		where KRAJ = @kraj
			and OKRES = @okres
			and PODNIK = @podnik
			and chov = @stado
	)

	--@UzitZam  - Uzitkove zameranie
	declare @UzitZam varchar(1) = (
		select UZITZAM 
		from SC_Plemena
		where KODPL2 = @PlemSt
	)
	
	/* Typ zamerania stada */
	declare @TypZam varchar(1) = (
	select 
	case when (@PlemSt in ('M ', 'AM', 'FM', 'BG', 'RM', 'NC', 'VR', 'OD', 'CH', 'T ', 'R ', 'V ')) then '3'
		when @PlemSt in ('AF','VF') then '4'
		when @UzitZam = '1' and @UzitZSt = '4' or @UzitZam = '4' then '1'
		when @UzitZam = '1' and @UzitZSt <> '4' or @UzitZam = '2' then '2'	
	end
	)
    
	return @TypZam

END
go

