Překročení maxima vyměřovacího základu pro sociální pojištění (sestava)

Z Prirucky
Verze z 10. 11. 2015, 12:30, kterou vytvořil Petrm (diskuse | příspěvky) (Založena nová stránka: '''Překročení maxima vyměřovacího základu pro sociální pojištění (sestava)''' Požadavkem je zobrazení * '''zaměstnanců''', kteří v daném roce překroči…)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)

Překročení maxima vyměřovacího základu pro sociální pojištění (sestava)

Požadavkem je zobrazení

  • zaměstnanců, kteří v daném roce překročili vyměřovací základ a
  • období, kdy k tomu došlo.
Období od: první měsíc roku
Období do: poslední měsíc roku

První sestava uvádí každého zaměstnance jednou, druhá včetně následujících měsíců.

První období

Prekroceni-maxima-vymerovaciho-zakladu-soc-poj.png

select A.os_cislo, A.prijmeni, A.jmeno, B.soc_uhrn_vz_x, 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null)) as max_vz_socpoj,

B.soc_uhrn_vz_x - 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null))
as rozdil, 

B.datum from 
pracovnici A, telegram B
where
A.os_cislo = B.os_cislo and

B.datum >= %DATUMOD% and B.datum <= %DATUMDO% and
B.soc_uhrn_vz_x > 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null))
and
B.datum =

(select min(C.datum) from telegram C 
where B.os_cislo = C.os_cislo and 
C.soc_uhrn_vz_x > 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null))

and C.datum >=  %DATUMOD% and C.datum <= %DATUMDO%)

order by A.os_cislo, B.datum

I následující období

Prekroceni-maxima-vymerovaciho-zakladu-soc-poj-i-dale.png

select A.os_cislo, A.prijmeni, A.jmeno, B.soc_uhrn_vz_x, 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null)) as max_vz_socpoj,

B.soc_uhrn_vz_x - 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null))
as rozdil, 

B.datum from 
pracovnici A, telegram B
where
A.os_cislo = B.os_cislo and

B.datum >= %DATUMOD% and B.datum <= %DATUMDO% and
B.soc_uhrn_vz_x > 
(select hodnota from e_param where polozka = 'max_vz_socpoj' and plati_od <= %DATUMOD% 
and 
(plati_do >= %DATUMOD% or plati_do is null))
 
order by A.os_cislo, B.datum

Odkazy