Názvy pracovních míst (číselník): Porovnání verzí
(Založena nová stránka: ''Názvy pracovních míst (číselník)'' je '''zákaznická specialita''' - použití číselníku téhož jména v modulu Popisy pracovních míst. == Funkcionalita…) |
|||
(Nejsou zobrazeny 3 mezilehlé verze od stejného uživatele.) | |||
Řádek 24: | Řádek 24: | ||
|} | |} | ||
=== Zjištění | === Zjištění rozdílů === | ||
[[Image: Nazvy-prac-mist-rozdil-priklad-1-3.png]] | |||
{|border="1" cellpadding="3" cellspacing="0" | {|border="1" cellpadding="3" cellspacing="0" | ||
| <small> | | <small> | ||
select cis_pracmist, naz_pracmist, | select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist, | ||
C.nazev, | |||
B.hodnota, B.platnost_od, B.platnost_do | |||
from prac_mist | from prac_mist A left outer join prac_mist_atrib B | ||
on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, | |||
funk_zkr C | |||
where | |||
B.hodnota = C.cislo and | |||
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and | |||
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and | |||
(A.naz_pracmist <> C.nazev or C.nazev is null) | |||
</small> | </small> | ||
| [[Image: Nazvy-prac-mist- | | [[Image: Nazvy-prac-mist-db-tabulky.png|right]] | ||
|} | |} | ||
=== | === Všechna pracovní místa s kombinací platností === | ||
[[Image: Nazvy-prac-mist- | [[Image: Nazvy-prac-mist-rozdil-priklad-1-4.png|590px]] | ||
<small> | <small> | ||
select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist, | |||
C.nazev, | |||
B.hodnota, B.platnost_od, B.platnost_do | |||
from prac_mist A left outer join prac_mist_atrib B on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, | |||
funk_zkr C | |||
where | |||
B.hodnota = C.cislo | |||
</small> | </small> | ||
=== Změna hodnoty vlastnosti v popisu pracovního místa === | == Změny názvů (čísel) == | ||
'''Riziková operace.''' SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku ''Názvy prac.míst'' se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním '''proveďte zálohu databáze'''. | === Změna hodnoty vlastnosti (čísla) v popisu pracovního místa === | ||
'''Riziková operace.''' SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku ''Názvy prac.míst'' se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním '''proveďte zálohu databáze'''. <small>Číselník názvů pracovních míst bývá měněn pomocí SQL příkazů, při nichž se mění k danému číslu název. Tento postup je nekonzistentní a způsobuje destrukci ostatních dat (zřejmě tedy nemá smysl poznačovat časovost vlastnosti 1001 v popisu pracovního místa). Proto je spouštěn příkaz, který se pokusí vyhledat název pracovního místa v číselníku názvů prac.míst a hodnotu (číslo) zapsat do vlastnosti v popisu pracovního místa.</small> | |||
<small> | <small> | ||
update prac_mist_atrib | update prac_mist_atrib | ||
Řádek 73: | Řádek 70: | ||
funk_zkr.nazev = prac_mist.naz_pracmist and | funk_zkr.nazev = prac_mist.naz_pracmist and | ||
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist) > 0 ; | prac_mist.id_pracmist = prac_mist_atrib.id_pracmist) > 0 ; | ||
</small> | |||
=== Změna názvů pracovních míst === | |||
'''Riziková operace.''' SQL příkaz pro změněnu názvů pracovních míst podle názvu v číselníku ''Názvy prac.míst''. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním '''proveďte zálohu databáze'''. <small>Bývá prováděn ve druhém kroku - po změně pracovních náplní a hodnot vlastností č. 1001 se opraví názvy pracovních míst.</small> | |||
<small> | |||
update prac_mist set naz_pracmist = | |||
(select min(nazev) from funk_zkr, prac_mist_atrib where | |||
funk_zkr.cislo = prac_mist_atrib.hodnota and | |||
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and | |||
cis_atributu = 1001) | |||
where (select count(*) from funk_zkr, prac_mist_atrib where | |||
funk_zkr.cislo = prac_mist_atrib.hodnota and | |||
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and | |||
cis_atributu = 1001) > 0; | |||
</small> | </small> | ||
Řádek 79: | Řádek 93: | ||
* <small>DB: funk_zkr </small> | * <small>DB: funk_zkr </small> | ||
<!-- hd id 35895 --> | <!-- hd id 35895 --> | ||
<!-- | |||
Původně přemýšleno o takovýchto příkazech, do té doby, než mi dotyčný vysvětlil mechanismus. | |||
Změnit hodnoty | |||
Příkaz pro nalezení id pracovních míst, která se mají měnit. | |||
Jsou dva - v posledním řádku buď | |||
- is not null - pak zřejmě přidávali časovou vlastnost a budou chtít přenést z hodnoty vlastnosti do názvu pracovního místa | |||
- is null - jedná se o prvotní chybový záznam a přenos má být opačný (z názvu pracovního místa do vlastnosti). | |||
select A.id_pracmist | |||
from prac_mist A left outer join prac_mist_atrib B | |||
on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, | |||
funk_zkr C | |||
where | |||
B.hodnota = C.cislo and | |||
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and | |||
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and | |||
(A.naz_pracmist <> C.nazev or C.nazev is null) and | |||
B.platnost_od is null | |||
------------------------------ | |||
Neotestováno: | |||
update prac_mist set naz_pracmist = | |||
(select nazev from funk_zkr, prac_mist_atrib where | |||
funk_zkr.cislo = prac_mist_atrib.hodnota and | |||
prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and | |||
cis_atributu = 1001 and | |||
platnost_od is not null and | |||
platnost_do is null or platnost_do > (select max(datum_prvni) from par_map)) | |||
) | |||
where id_pracmist in | |||
( | |||
select A.id_pracmist | |||
from prac_mist A left outer join prac_mist_atrib B | |||
on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, | |||
funk_zkr C | |||
where | |||
B.hodnota = C.cislo and | |||
(A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and | |||
(B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and | |||
(A.naz_pracmist <> C.nazev or C.nazev is null) and | |||
B.platnost_od is not null | |||
) | |||
; | |||
--> |
Aktuální verze z 7. 3. 2017, 13:25
Názvy pracovních míst (číselník) je zákaznická specialita - použití číselníku téhož jména v modulu Popisy pracovních míst.
Funkcionalita
Menu: PIS > Popisy pracovních míst > Číselníky / Názvy prac. míst
Menu: PIS > Popisy pracovních míst > Číselník vlastností
Menu: PIS > Popisy pracovních míst > Pracovní místa/Pracovní pozice/Profese/Šablony popisů
- Naplnění číselníku.
- Založení vlastnosti do číselníku.
- Vyplnění popisu pracovního místa.
Používáno pro kontrolní účely a pro návaznost do dalších systémů.
Kontrola totožnosti názvů
Zjištění rozdílů
select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist, C.nazev, B.hodnota, B.platnost_od, B.platnost_do from prac_mist A left outer join prac_mist_atrib B on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, funk_zkr C where B.hodnota = C.cislo and (A.datum_do is null or A.datum_do > (select max(datum_prvni) from par_map)) and (B.platnost_do is null or B.platnost_do > (select max(datum_prvni) from par_map)) and (A.naz_pracmist <> C.nazev or C.nazev is null)
|
Všechna pracovní místa s kombinací platností
select A.id_pracmist, A.datum_od, A.datum_do, A.cis_pracmist, A.naz_pracmist, C.nazev, B.hodnota, B.platnost_od, B.platnost_do from prac_mist A left outer join prac_mist_atrib B on A.id_pracmist = B.id_pracmist and B.cis_atributu = 1001, funk_zkr C where B.hodnota = C.cislo
Změny názvů (čísel)
Změna hodnoty vlastnosti (čísla) v popisu pracovního místa
Riziková operace. SQL příkaz pro změněnu hodnoty vlastnosti v popisu pracovních míst - hledá se první název v číselníku Názvy prac.míst se shodným názvem jako je název pracovního místa. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním proveďte zálohu databáze. Číselník názvů pracovních míst bývá měněn pomocí SQL příkazů, při nichž se mění k danému číslu název. Tento postup je nekonzistentní a způsobuje destrukci ostatních dat (zřejmě tedy nemá smysl poznačovat časovost vlastnosti 1001 v popisu pracovního místa). Proto je spouštěn příkaz, který se pokusí vyhledat název pracovního místa v číselníku názvů prac.míst a hodnotu (číslo) zapsat do vlastnosti v popisu pracovního místa.
update prac_mist_atrib set hodnota = (select min(funk_zkr.cislo) from funk_zkr,prac_mist where funk_zkr.nazev = prac_mist.naz_pracmist and prac_mist.id_pracmist = prac_mist_atrib.id_pracmist) where cis_atributu = 1001 and (select count(*) from funk_zkr,prac_mist where funk_zkr.nazev = prac_mist.naz_pracmist and prac_mist.id_pracmist = prac_mist_atrib.id_pracmist) > 0 ;
Změna názvů pracovních míst
Riziková operace. SQL příkaz pro změněnu názvů pracovních míst podle názvu v číselníku Názvy prac.míst. Vazební položkou je údaj v popisu pracovního místa. Před spuštěním proveďte zálohu databáze. Bývá prováděn ve druhém kroku - po změně pracovních náplní a hodnot vlastností č. 1001 se opraví názvy pracovních míst.
update prac_mist set naz_pracmist = (select min(nazev) from funk_zkr, prac_mist_atrib where funk_zkr.cislo = prac_mist_atrib.hodnota and prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and cis_atributu = 1001) where (select count(*) from funk_zkr, prac_mist_atrib where funk_zkr.cislo = prac_mist_atrib.hodnota and prac_mist.id_pracmist = prac_mist_atrib.id_pracmist and cis_atributu = 1001) > 0;
Odkazy
- Popisy pracovních míst
- DB: funk_zkr