Počet zpracovaných osobních čísel (sestava)

Z Prirucky

Počet zpracovaných osobních čísel je sestava určená pro Generátor sestav II. Využívá se například v případě víceIČ databází jako přehled o tom, kolik zaměstnanců prošlo zpracováním mezd v jednotlivých podnicích.

Pocet-zpracovanych-osobnich-cisel.png

Počty osobních čísel

Období: to, které zadá uživatel v poli "datum od"
Vyhodnocení: počítají se ta osobní čísla, která prošla zpracováním mezd tak, že mají alespoň jednu položku v agendě Zpracování brutto. Pokud by měl jenom mzdovou položku 501, takový se nepočítá.

Určeno pro MS SQL

select osoby.id_podniku, nazev, 
count(distinct os_cislo) 
from osoby, osoby_typ, pichacky
where osoby.id_osoby = osoby_typ.id_osoby
and osoby_typ.typ in ('sh', 'vl')
and osoby.id_podniku = pichacky.id_podniku
and datum = %DATUMOD%
and kod <> 501 and kod <> 902
and pichacky.os_cislo <> 0
group by osoby.id_podniku, nazev
order by osoby.id_podniku

Též po střediscích

select osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev, count(distinct pichacky.os_cislo) as pocet,			
count(distinct (cast(pichacky.os_cislo as char) + cast (pichacky.cislo_pom as char))) as poc_os_pom 			
			
from osoby, osoby_typ, pichacky, stred, pracovnici			
where osoby.id_osoby = osoby_typ.id_osoby and pichacky.os_cislo = pracovnici.os_cislo and pracovnici.kmen_str = stred.str and 			
osoby_typ.typ in ('sh', 'vl') and osoby.id_podniku = pichacky.id_podniku and datum = %DATUMOD% and kod <> 501 and kod <>902 and pichacky.os_cislo <> 0			
group by osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev			
order by osoby.id_podniku, kmen_str 

Kontrolní sestava včetně příjmení

select P.os_cislo, B.cislo_pom, A.prijmeni, A.jmeno, P.datum, A.id_podniku, count(*) as pocet 
from pichacky P, pracovnici A, prac_pom B where P.os_cislo = A.os_cislo and P.os_cislo = B.os_cislo and P.cislo_pom = B.cislo_pom and
P.datum = %DATUMOD% and P.os_cislo <>0 and P.kod <>501 and P.kod <>902 group by P.os_cislo, B.cislo_pom, A.prijmeni, A.jmeno, P.datum, A.id_podniku 
order by P.os_cislo, B.cislo_pom; 


Počty osobních čísel i čísel poměrů

Dotaz: Bylo by možné, aby kromě počtu zaměstnanců byl uveden i počet pracovních poměrů? Pokud by všichni zaměstnanci měli jeden pracovní poměr, tak by se počet zaměstnanců a počet pracovních poměrů shodoval. Ale pokud má někdo více pracovních poměrů, tak abychom i o tomto měli přehled.

select osoby.id_podniku,
nazev,
count(distinct os_cislo) as poc_os,
count(distinct (cast(os_cislo as char) + cast (cislo_pom as char))) as poc_os_pom
from osoby, osoby_typ, pichacky
where osoby.id_osoby = osoby_typ.id_osoby
and osoby_typ.typ in ('sh', 'vl')
and osoby.id_podniku = pichacky.id_podniku
and datum = %DATUMOD%
and kod <> 501
and pichacky.os_cislo <> 0
group by osoby.id_podniku, nazev order by osoby.id_podniku

Počty osobních čísel po střediscích

Zjišťují se počty zpracovaných osobních čísel v členění po kmenových střediscích (z agendy Osobní údaje).

Pocet-zpracovanych-osobnich-cisel-po-strediscich.png

select osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev, count(distinct pichacky.os_cislo) as pocet
from osoby, osoby_typ, pichacky, stred, pracovnici
where osoby.id_osoby = osoby_typ.id_osoby and pichacky.os_cislo = pracovnici.os_cislo and pracovnici.kmen_str = stred.str and osoby_typ.typ in ('sh', 'vl') and osoby.id_podniku = pichacky.id_podniku and datum = %DATUMOD% and kod <> 501 and pichacky.os_cislo <> 0
group by osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev
order by osoby.id_podniku, kmen_str

Bez MD/RD a dlouhodobých nemocí

select osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev, count(distinct pichacky.os_cislo) as pocet
from osoby, osoby_typ, pichacky, stred, pracovnici
where osoby.id_osoby = osoby_typ.id_osoby and pichacky.os_cislo = pracovnici.os_cislo and pracovnici.kmen_str = stred.str and osoby_typ.typ in ('sh', 'vl') and osoby.id_podniku = pichacky.id_podniku and datum = %DATUMOD% and kod <> 501 and kod <> 510 and (kod < 800 or kod > 900) and kod <> 902 and pichacky.os_cislo <> 0
group by osoby.id_podniku, osoby.nazev, kmen_str, stred.nazev
order by osoby.id_podniku, kmen_str

Včetně počtu nástupů/výstupů a exekucí

Pro ČR

Pocet-zpracovanych-osobnich-cisel-vcetne-poctu-nastupu-vystupu-a-exekuci.png

  • Poc Nastupu - počet nástupů v daném měsíci
  • Poc Vystupu - počet výstupů v daném měsíci
  • Poc Exekuci Celk - počet zpracovávaných exekucí celkem
  • Poc Novych Exekuci - počet nových exekucí v daném měsíci

včetně IČ podniku

select OS.id_podniku, OS.ico, substring (OS.nazev, 1, 50),
(select count (distinct PICHA.os_cislo) from pichacky PICHA where
PICHA.id_podniku = OS.id_podniku and
PICHA.datum = %DATUMOD% and
PICHA.kod <> 501 and
PICHA.os_cislo <> 0) as poc_zprac_os_cis,

(select count (distinct (cast (PICHB.os_cislo as char) + cast (PICHB.cislo_pom as char))) from pichacky PICHB where
PICHB.id_podniku = OS.id_podniku and
PICHB.datum = %DATUMOD% and
PICHB.kod <> 501 and
PICHB.os_cislo <> 0) as poc_zprac_p_pom,

(select count (distinct PRA.os_cislo) from pracovnici PRA where
PRA.id_podniku = OS.id_podniku and
year(PRA.datum_nastupu) = year (%DATUMOD%) and
month (PRA.datum_nastupu) = month (%DATUMOD%)) as poc_nastupu,

(select count (distinct PRB.os_cislo) from pracovnici PRB where
PRB.id_podniku = OS.id_podniku and
year(PRB.datum_vystupu) = year (%DATUMOD%) and
month (PRB.datum_vystupu) = month (%DATUMOD%)) as poc_vystupu,

(select count (*) from platby PLA where
PLA.os_cislo in (select os_cislo from pracovnici PR where PR.id_podniku = OS.id_podniku and (PR.datum_vystupu is null or PR.datum_vystupu > %DATUMOD%)) and
PLA.kod in (select kod from ciselnik CIS where CIS.cis_alg >= 100 and CIS.cis_alg <= 119) and
PLA.dat_od <= %DATUMOD% and
(PLA.dat_do is null or PLA.dat_do > %DATUMOD%)) as poc_exekuci_celk,

(select count (*) from platby PLB where
PLB.os_cislo in (select os_cislo from pracovnici PR where PR.id_podniku = OS.id_podniku and (PR.datum_vystupu is null or PR.datum_vystupu > %DATUMOD%)) and
PLB.kod in (select kod from ciselnik CIS where CIS.cis_alg >= 100 and CIS.cis_alg <= 119) and
PLB.dat_od = %DATUMOD% and
(PLB.dat_do is null or not (year (PLB.dat_do) = year(%DATUMOD%) and month (PLB.dat_do) = month (%DATUMOD%)))
) as poc_novych_exekuci


from osoby OS, osoby_typ OST
where OS.id_osoby = OST.id_osoby and
OST.typ in ('sh', 'vl')

group by OS.id_podniku, OS.ico, OS.nazev
order by OS.id_podniku

Slovensko

Pro Slovensko je namísto db tab. platby použita sk_exekuce.

včetně IČ podniku

select OS.id_podniku, OS.ico, substring (OS.nazev, 1, 50),
(select count (distinct PICHA.os_cislo) from pichacky PICHA where
PICHA.id_podniku = OS.id_podniku and
PICHA.datum = %DATUMOD% and
PICHA.kod <> 501 and
PICHA.os_cislo <> 0) as poc_zprac_os_cis,

(select count (distinct (cast (PICHB.os_cislo as char) + cast (PICHB.cislo_pom as char))) from pichacky PICHB where
PICHB.id_podniku = OS.id_podniku and
PICHB.datum = %DATUMOD% and
PICHB.kod <> 501 and
PICHB.os_cislo <> 0) as poc_zprac_p_pom,

(select count (distinct PRA.os_cislo) from pracovnici PRA where
PRA.id_podniku = OS.id_podniku and
year(PRA.datum_nastupu) = year (%DATUMOD%) and
month (PRA.datum_nastupu) = month (%DATUMOD%)) as poc_nastupu,

(select count (distinct PRB.os_cislo) from pracovnici PRB where
PRB.id_podniku = OS.id_podniku and
year(PRB.datum_vystupu) = year (%DATUMOD%) and
month (PRB.datum_vystupu) = month (%DATUMOD%)) as poc_vystupu,

(select count (*) from sk_exekuce PLA where
PLA.os_cislo in (select os_cislo from pracovnici PR where PR.id_podniku = OS.id_podniku and (PR.datum_vystupu is null or PR.datum_vystupu > %DATUMOD%)) and
PLA.kod in (select kod from ciselnik CIS where CIS.cis_alg >= 100 and CIS.cis_alg <= 119) and
PLA.dat_od <= %DATUMOD% and
(PLA.dat_do is null or PLA.dat_do > %DATUMOD%)) as poc_exekuci_celk,

(select count (*) from sk_exekuce PLB where
PLB.os_cislo in (select os_cislo from pracovnici PR where PR.id_podniku = OS.id_podniku and (PR.datum_vystupu is null or PR.datum_vystupu > %DATUMOD%)) and
PLB.kod in (select kod from ciselnik CIS where CIS.cis_alg >= 100 and CIS.cis_alg <= 119) and
PLB.dat_od = %DATUMOD% and
(PLB.dat_do is null or not (year (PLB.dat_do) = year(%DATUMOD%) and month (PLB.dat_do) = month (%DATUMOD%)))
) as poc_novych_exekuci


from osoby OS, osoby_typ OST
where OS.id_osoby = OST.id_osoby and
OST.typ in ('sh', 'vl')

group by OS.id_podniku, OS.ico, OS.nazev
order by OS.id_podniku


Odkazy