Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut Ks. http://stat.fi/keruu/amkt/ "Tiedot ammattikorkeakouluissa kalenterivuoden [vuosi] aikana suoritetuista tutkinnoista, erikoistumisopinnoista ja ammatillisesta opettajankoulutuksesta." Poiminta Alustus Perusjoukon valinta Tietueet Oppilaitostunnus (tunn Koulutustyyppi (koultyp Koulutuksen opetuskieli (kiel (kkieli Opiskelukunta (kkun Henkilötunnus (ht Sukunimi (snimi Etunimet (enimi Sukupuoli (sp Äidinkieli (aikieli Opiskelijan vakinainen asuinkunta (askun Opiskelijan kansalaisuus (kansal Ko. tutkintoon kirjoihintulovuosi ko. ammattikorkeakoulussa (kirtupv Tutkinnon suorittamisajankohta ko. ammattikorkeakoulussa (suorpvm Lukukausien lukumäärät (lasnalk, poissalk Läsnä- ja poissaololukukausien laskentaan aputaulujen luonti Läsnäololukukaudet (lasnalk Poissaololukukaudet (poissalk Ensimmäinen kirjoihintuloajankohta ko. tutkintoon (kirtu1pv Lastentarhanopettajan pätevyyteen tähtäävät opinnot (lastu (opettaja Rahoituslähde (rahlahde Maksullisen tilauskoulutuksen sijaintimaa (tilmaa Koulutuskoodi (koulk Opintopisteet Suoritettavien opintojen laajuus (oplaaj (laajuus Omassa ammattikorkeakoulussa suoritetut opintopisteet (opoamk Muissa ammattikorkeakouluissa suoritetut opintopisteet (opmamk Yliopistoissa suoritetut opintopisteet (opylio Yleissivistävissä ja ammatillisissa oppilaitoksissa suoritetut opintopisteet (opylei Ulkomailla suoritetut opintopisteet (opulk Muualla suoritetut opintopisteet (opmuu Opintopisteet yhteensä (opyht Tutkinnon opintopisteet ( Tulos Tarkistus Muutoshistoria 5.10.2017 ::Tu1 ja tu2 käsittelyyn muutos tarkistuksessa :: wiki-versio 34 20.1.2017 :: Ohjauksen ala ei-tutkintoonjohtaville, Siirto-opiskelijan läsnä-poissaolot, erikoistumiskoulutuskoodi :: wikiversio 34 4.9.2016 :: Tarkistusta korjattu :: wikiversio 33 5.2.2016 :: Ammatillinen opettajankoulutus opiskeluoikeuksista :: wikiversio 32 5.2.2016 :: Lukukausi-ilmoittautumisten poislukeminen tutkinnon suorittamisen jälkeen :: wikiversio 31 29.1.2016 :: Opettajapätevyys koodiarvot :: wikiversio 30 22.1.2016 :: Erikoistumiskoulutus -tyyppiset päättyneet opiskeluoikeudet :: wikiversio 29 15.1.2016 :: Lukukausien lukumäärän laskennan kaksi poimintamallia :: wikiversio 27 22.9.2015 :: Lastentarhaopettajan pätevyystieto :: wiki-versio 21 11.2.2015 :: Erikoistumisopinnot ja ammatillinen opettajakoulutus päättymistieto :: wiki-versio 20 29.1.2015 :: Suoritettavien opintojen laajuus -tieto: negatiiviset arvot nollaksi :: wiki-versio 19 26.1.2015 :: Opintosuoritusten lehtitason määrityksen korjaus :: wiki-versio 17 15.1.2015 :: Pätevyydet katsotaan koko hierarkiasta 12.1.2015 :: Tutkinto-opintosuorituksen opintopisteet :: wiki-versio 15 19.12.2014 :: Opintopisteiden jaottelussa huomioitu oppilaitostyyppi sotilaskorkeakoulu :: wiki-versio 14 15.12.2014 :: Parannettu opintopisteiden jakautumisen poimintaa :: wiki-versio 13 8.12.2014 :: Korjattu tiedonkeruun poimintaa :: wiki-versio 10 17.11.2014 :: Automaatin aika :: wiki-versio 8 Alustus
Dokumentaation tueksi on tuotu SQL-kielisiä kyselyitä, joissa taustalla on temp-tietokantataulu #tktutk johon tiedot kerätään, joka vastaa tietuekuvaukseltaan hyvin lähelle sitä mikä Tilastokeskuksen tiedonkeruissa halutaan, sekä yksirivinen temp-tietokantataulu #param, jossa on tieto nyt käsittelyssä olevasta korkeakoulusta sekä tiedonkeruun kannalta oleellisia muita tietoja kuten tilastointivuosi (VUOSI. SQL Expand -- Temp-taulu tietojen valintaa varten source -- NB! param-taulussa saa olla vain yksi rivi! create table #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne (DB-nimi kk varchar(5,--oppilaitos tilpvm date,--tilastointipäivä insert into #param (vuosi,org,kk,tilpvm select @vuosi as vuosi,upper(db_name( as org,(select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=DB_NAME( as kk,@vuosi+'-09-20' as tilpvm --select * from #param -- Temp-taulu tiedonkeruun tietoja varten create table #tktutk ( tunn varchar(5,--oppilaitostunnus koultyp varchar(1,--koulutustyyppi --1=Amk-tutkintoon johtava nuorten koulutus --2=Amk-tutkintoon johtava aikuiskoulutus --3=Erikoistumisopinnot --5=Ammatillinen opettajankoulutus --6=Ylempi ammattikorkeakoulututkinto kiel varchar(2,--koulutuksen opetuskieli kkun varchar(3,--opiskelukunta ht varchar(11,--henkilötunnus snimi varchar(255,--opiskelijan sukunimi enimi varchar(255,--opiskelijan etunimet sp varchar(1,--opiskelijan sukupuoli aikieli varchar(2,--opiskelijan äidinkieli askunta varchar(3,--opiskelijan vakinainen asuinkunta. kansal varchar(3,--opiskelijan kansalaisuus kirtupv varchar(8,--ko. tutkintoon kirjoihintuloajankohta ko. ammattikorkeakoulussa suorpvm varchar(8,--tutkinnon suorittamisajankohta ko. ammattikorkeakoulussa opoamk varchar(3,--omassa ammattikorkeakoulussa suoritetut opintopisteet (Sisältää työharjoittelun opmamk varchar(3,--muissa ammattikorkeakouluissa suoritetut opintopisteet (Suomessa opylio varchar(3,--yliopistoissa suoritetut opintopisteet (Suomessa opylei varchar(3,--yleissivistävissä ja ammatillisissa oppilaitoksissa suoritetut opintopisteet (Suomessa opulk varchar(3,--ulkomailla suoritetut opintopisteet opmuu varchar(3,--muualla suoritetut opintopisteet opyht varchar(4,--opintopisteet yhteensä (Tutkintoa varten suoritetut opintopisteet (myös tutkintovaatimusten yli menevät opintopisteet lasnalk varchar(4,--läsnäololukukausien määrä ko. tutkinnossa yhteensä
poissalk varchar(4,--poissaololukukausien määrä ko. tutkinnossa yhteensä laajuus varchar(4,--ammattikorkeakoululain 14 :ssä säädetään opintojen hyväksilukemisesta. Opintojen laajuudella tarkoitetaan hyväksilukemisen jälkeen opiskelijan suoritettavaksi jäävää opintojen määrää opintopisteinä. kirtu1pv varchar(8,--ajankohta, jolloin opiskelija on ilmoittautunut ensimmäistä kertaa läsnä- tai poissaolevaksi kyseiseen tutkintoon missä tahansa ammatti-korkeakoulussa. (Siirto-opiskelijoilla eri kuin kirjoihintulo ko.tutkintoon omassa amk:ssa. Merkitään: vvvvkkpp lastu varchar(1,--sosionomi (amk -tutkinnon suorittanut, jonka aineyhdistelmään kuuluu 60 opintopisteen laajuiset varhaiskasvatuksen ja sosiaalipedagogiikan opinnot rahlahde varchar(1,--opiskelijan rahoitustausta tilmaa varchar(3,--maksullisen tilauskoulutuksen sijaintimaa koulk varchar(6,--koulutuskoodi -- optutk varchar(4,--tutkinto-opintosuorituksen opintopisteet -- ohjauksenala varchar(3, -- OKM Ohjauksen ala ekkoodi varchar(3, -- Erikoistumiskoulutuksen koodi -- suorituspaivamaara date, -- opiskelijaavain varchar(100, opintosuoritusavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opintosuoritus_id int, opiskeluoikeus_id int, -- avuksi oikeus_alkamispaivamaara date, oikeus_paattymispaivamaara date,
oikeus_siirtopaivamaara date Perusjoukon valinta Haetaan tietovarannosta kaikki tutkinto-lajiset opintosuoritukset, jotka on suoritettu tilastointivuoden aikana. Lisätään joukkoon rivit niistä tapauksista, joissa erikoistumisopinnot (12, ammatillinen opettajakoulutus (15 tai erikoistumiskoulutus (19 -tyyppinen opiskeluoikeus on päättynyt tilastointivuoden aikana (opiskeluoikeuden tila päättynyt (3 on alkanut tilastovuonna TAI 1.1. seuraavana vuonna ja opiskeluoikeuden päättymispäivä on tilastointivuonna. Liitetään suoritukseen opiskelija (henkilö, josta saadaan perustietoja: Korkeakoulu (tunn Henkilötunnus (ht Sukupuoli (sp Sukunimi (snimi Etunimet (enimi Kansalaisuus (kansal, korjataan puuttuvat tiedot arvoon 999='Tuntematon' Äidinkieli (aikieli, korjataan puuttuvat tiedot arvoon 99='Tuntematon' Asuinkunta (askunta Suorituspäivämäärä (suorpvm SQL Expand --- source -- Lisätään perustiedot (henkilö, opiskelija -- * täytyy olla tutkinto -- + erikoistumisopinnot ja ammatilliset opettajakoulutukset päättyneen opiskeluoikeuden mukaan! (tyyppi=12 tai 15, tila=3 --- insert into #tktutk ( tunn,ht,sp,snimi,enimi,kansal,aikieli,askunta,suorpvm,suorituspaivamaara,opiskelijaavain,opiskelija_id,opintosuoritusavain,opintosuoritus_id,opiskeluoikeusavain,opiskeluoikeus_id,oikeus_alkamispaivamaara,oikeus_paattymispaivamaara,oikeus_siirtopaivamaara select tunn = (select kk from #param,ht = h.henkilotunnus,sp = (select top 1 k.koodi from Sukupuoli k where k.id=h.sukupuoliid,snimi = h.sukunimi,enimi = h.etunimet
,kansal = (select top 1 m.koodi from Henkilon_maa hm inner join Maa m on m.id=hm.maaid inner join Maan_rooli mr on mr.id=hm.maan_rooliid where hm.henkiloid=h.id --sido and mr.koodi='1' --Kansalaisuus,aikieli = (select top 1 UPPER(k.Koodi from Kieli k where k.id=h.kieliid,askunta = (select top 1 k.koodi from Kunta k where k.id=h.kuntaid,suorpvm = CAST(YEAR(s.Suorituspaivamaara as varchar +RIGHT('00'+CAST(MONTH(s.Suorituspaivamaara as varchar,2 +RIGHT('00'+CAST(DAY(s.Suorituspaivamaara as varchar,2 --,suorituspaivamaara = s.suorituspaivamaara --,opiskelijaavain = p.avain,opiskelija_id = p.id,opintosuoritusavain = s.avain,opintosuoritus_id = s.id,opiskeluoikeusavain = o.avain,opiskeluoikeus_id = o.id --,oikeus_alkamispaivamaara = o.alkamispaivamaara,oikeus_paattymispaivamaara = coalesce(o.paattymispaivamaara,'9999-01-01',oikeus_siirtopaivamaara = o.siirtopaivamaara from Henkilo h inner join Opiskelija p on p.henkiloid=h.id inner join Opintosuoritus s on s.opiskelijaid=p.id inner join Opintosuorituksen_laji ol on ol.id=s.opintosuorituksen_lajiid inner join Opiskeluoikeus o on o.id=s.opiskeluoikeusid where 1=1 -- tutkinto-lajinen and ol.koodi=1 -- suoritettu tilvuonna and year(s.suorituspaivamaara=(select vuosi from #param -- erikoitumisopinnot ja ammatillinen opettajakoulutus insert into #tktutk ( tunn,ht,sp,snimi,enimi,kansal,aikieli,askunta,suorpvm,koulk,suorituspaivamaara,opiskelijaavain,opiskelija_id,opiskeluoikeusavain,opiskeluoikeus_id,oikeus_alkamispaivamaara,oikeus_paattymispaivamaara,oikeus_siirtopaivamaara select tunn = (select kk from #param,ht = h.henkilotunnus,sp = (select top 1 k.koodi from Sukupuoli k where k.id=h.sukupuoliid,snimi = h.sukunimi,enimi = h.etunimet,kansal = (select top 1 m.koodi from Henkilon_maa hm inner join Maa m on m.id=hm.maaid inner join Maan_rooli mr on mr.id=hm.maan_rooliid where hm.henkiloid=h.id --sido and mr.koodi='1' --Kansalaisuus
,aikieli = (select top 1 UPPER(k.Koodi from Kieli k where k.id=h.kieliid,askunta = (select top 1 k.koodi from Kunta k where k.id=h.kuntaid,suorpvm = CONVERT(varchar,o.Paattymispaivamaara,112--112=yyyymmdd,koulk = '999999' --koulutuskoodi --,suorituspaivamaara = o.paattymispaivamaara --,opiskelijaavain = p.avain,opiskelija_id = p.id,opiskeluoikeusavain = o.avain,opiskeluoikeus_id = o.id --,oikeus_alkamispaivamaara = o.alkamispaivamaara,oikeus_paattymispaivamaara = coalesce(o.paattymispaivamaara,'9999-01-01',oikeus_siirtopaivamaara = o.siirtopaivamaara from Henkilo h inner join Opiskelija p on p.henkiloid=h.id inner join Opiskeluoikeus o on o.opiskelijaid=p.id inner join Op_oikeuteen_liittyva_tila ot on ot.opiskeluoikeusid=o.id inner join Opiskeluoikeuden_tila ti on ti.id=ot.op_oikeuden_tilaid inner join Opiskeluoikeuden_tyyppi ty on ty.id=o.op_oikeuden_tyyppiid where 1=1 -- tila -- päättynyt and ti.koodi='3' -- päättynyt tilvuonna and(year(ot.alkamispaivamaara=(select vuosi from #param -- tai päivä sen jälkeen, eli 1.1.vuosi+1 or year(dateadd(day,-1,ot.alkamispaivamaara=(select vuosi from #param and year(o.paattymispaivamaara=(select vuosi from #param -- erikoistumisopinnot ja ammatillinen opettajakoulutus, erikoistumiskoulutus and ty.koodi in ('12','15','19' -- tuntemattomia -- : kansal set kansal='999' where kansal is null -- : aikieli set aikieli='99'
where aikieli is null Tietueet Oppilaitostunnus (tunn Oppilaitostunnus on tietovarannon perusasetuksissa, josta tieto on poimittu parametri-aputauluun heti aluksi. Parametri-taulusta tieto saatiin kullekin riville jo ensimmäisissä poiminnoissa. Koulutustyyppi (koultyp Koulutustyyppi päätellään opiskeluoikeuden tyypin ja opiskeluoikeuden tiedon Aikuiskoulutus perusteella. Mikäli opiskeluoikeuden tyyppi on: 1=Ammattikorkeakoulututkinto, katsotaan lisäksi Aikuiskoulutus-tieto ja mikäli se on: 1=kyllä, eli on aikuiskoulutusta, koulutustyyppi saa arvon 2=Amk-tutkintoon johtava aikuiskoulutus muuten koulutustyyppi saa arvon 1=Amk-tutkintoon johtava nuorten koulutus 3=Ylempi ammattikorkekoulututkinto, koulutustyyppi saa arvon 6=Ylempi korkeakoulututkinto 12=Erikoistumisopinnot, koulutustyyppi saa arvon 3=Erikoistumisopinnot 15=Ammatillinen opettajankoulutus, koulutustyyppi saa arvon 5=Ammatillinen opettajankoulutus 19=Erikoistumiskoulutus, koulutustyyppi saa arvon 7=Erikoistumiskoulutus Ohjauksenala ei-tutkintoon johtaville. Erikoistumiskoulutuksen koulutuskoodi jos sellainen on. SQL Expand -- koultyp :: Koulutustyyppi source set koultyp= ( case ot.koodi when '1'-- Ammattikorkeakoulututkinto then case when o.aikuiskoulutus='1' then '2'--=Amk-tutkintoon johtava aikuiskoulutus when o.aikuiskoulutus='2' then '1'--=Amk-tutkintoon johtava nuorten koulutus else '1' end when '3' then '6'--=Ylempi ammattikorkeakoulututkinto when '12' then '3'--=Erikoistumisopinnot when '15' then '5'--=Ammatillinen opettajankoulutus when '19' then '7'--=Erikoistumiskoulutus end -- TO-DO? Vaihda opintosuoritukseen? Koulutuskoodin kautta? inner join Opiskeluoikeus o on o.id=t.opiskeluoikeus_id inner join Opiskeluoikeuden_tyyppi ot on ot.id=o.op_oikeuden_tyyppiid -- AMK -- Erikoistumiskoulutus, ja muu ei-tutkintokoulutusta
UPDATE T SET T.ohjauksenAla = K.koodi, t.koulk = '999999' FROM #tktutk T INNER JOIN Opiskeluoikeus o ON o.id = T.opiskeluoikeus_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = o.op_oikeuden_tyyppiid INNER JOIN koulutusala K ON K.id = O.koulutusalaid WHERE 1=1 -- erikoistumisopinnot ja ammatillinen opettajakoulutus, erikoistumiskoulutus (siis EI tutkinto-tyyppinen AND ot.koodi in ('12','15','19' AND K.versio = 'ohjausala' -- Erikoistumiskoulutuksen koulutuskoodi UPDATE T SET T.ekkoodi = E.koodi FROM #tktutk T INNER JOIN Opiskeluoikeus o ON o.id = T.opiskeluoikeus_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = o.op_oikeuden_tyyppiid INNER JOIN koulutusala K ON K.id = O.koulutusalaid INNER JOIN op_oik_liittyva_erikoistumiskoulutus OE ON OE.opiskeluoikeusid = o.id INNER JOIN Erikoistumiskoulutus E ON E.id = OE.erikoistumiskoulutusid WHERE 1=1 -- erikoistumisopinnot ja ammatillinen opettajakoulutus, erikoistumiskoulutus (siis EI tutkinto-tyyppinen AND ot.koodi in ('19' AND K.versio = 'ohjausala'
Koulutuksen opetuskieli (kiel (kkieli Haetaan opetuskieli-tieto tiedetyn opiskeluoikeuden opiskeluoikeusjaksosta. SQL --kiel source set kiel=upper(k.koodi inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid=t.opiskeluoikeus_id inner join Kieli k on k.id=oj.kieliid where T.suorituspaivamaara between oj.alkamispaivamaara and coalesce(oj.paattymispaivamaara,'9999-01-01' Expand Opiskelukunta (kkun Haetaan opetuskunta-tieto tiedetyn opiskeluoikeuden opiskeluoikeusjaksosta. SQL Expand -- kkun source set kkun=k.koodi inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid=t.opiskeluoikeus_id inner join Kunta k on k.id=oj.kuntaid where T.suorituspaivamaara between oj.alkamispaivamaara and coalesce(oj.paattymispaivamaara,'9999-01-01' Henkilötunnus (ht Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Sukunimi (snimi Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Etunimet (enimi
Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Sukupuoli (sp Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Äidinkieli (aikieli Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Puuttuvan tiedon tilalle vaihdetaan arvo '99'. Opiskelijan vakinainen asuinkunta (askun Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Opiskelijan kansalaisuus (kansal Tieto tietovarannossa olevasta opiskelijan (henkilön tiedosta sellaisenaan. Puuttuvan tiedon tilalle vaihdetaan arvo '999'. Ko. tutkintoon kirjoihintulovuosi ko. ammattikorkeakoulussa (kirtupv Haetaan opiskeluoikeuden alkamispäivä ja muunnetaan muotoon VVVVKKPP. SQL -- kirtupv :: Ko. tutkintoon kirjoihintuloajankohta ko. ammattikorkeakoulussa source -- NB siirto-opiskelijat set kirtupv=convert(varchar,t.oikeus_alkamispaivamaara,112--112=yyyymmdd Expand Tutkinnon suorittamisajankohta ko. ammattikorkeakoulussa (suorpvm Tutkinnon (tutkinto-opintosuorituksen suorituspäivämäärä ja muunnetaan muotoon VVVVKKPP. Lukukausien lukumäärät (lasnalk, poissalk Läsnä- ja poissaololukukausien laskentaan aputaulujen luonti Tehty lukukausien laskentaan kaksi poimintamallia ("ilmomalli" ks. aputaulujen luonti sql-osuus alla Poimintamallit "välitila": KOTA-seminaarissa esitetty ja alla kuvattu. (käytetään LasnaPoissaLukukausiMaara-tietoa ja oletetaan, että vain poissaoloja "toinenkk": logiikka, jossa korkeakoulu on ilmoittanut kaikki opiskeluoikeuteen liittyvät lukukausi-ilmoittautumiset lukukausi-ilmoittautumisina riippumatta siitä onko tieto oman kk:n tieto vai ei. (ei käytetä LasnaPoissaLukukausiMaara-tietoa ollenkaan Valinta poimintamalliin kuulumisesta tehdään aluksi yleisellä tasolla per korkeakoulu sen perusteella, onko mihin tahansa siirto-opiskelijan (siirtopäivämäärä!=null opiskeluoikeuteen liitetty lukukausi-ilmoittautumistietoa, joka lukukausi-ilmoittautuminen on päättynyt jo ennen kuin opiskeluoikeus on alkanut. Jos löytyy, tulkitaan tuo lukukausi-ilmoittautumiseksi joka on tehty siellä lähdekorkeakoulussa ja siis malli on "toinenkk", muutoin "välitila". SQL
-- VÄLITILARATKAISU -- Otetaan tietovarantoon tuodut toisessa korkeakoulussa alun perin tehdyt Expand lukukausi-ilmoittautumiset huomioon syksyllä 2015! source IF OBJECT_ID('tempdb..#ilmomalli' IS NOT NULL BEGIN truncate table #ilmomalli drop table #ilmomalli if @debug<>0 print convert(varchar,getdate(,120+' DROP temp-taulu ilmomalli' END create table #ilmomalli ( toinen_kk bit -- 1 jos tuotu toisen kk:n ilmoja, 0 muutoin (ja mennään "välitilalla" insert into #ilmomalli (toinen_kk select case when exists ( select * from Opiskeluoikeus bo join Lukukausi_ilmoittautuminen bl on bl.opiskeluoikeusid=bo.id where bo.siirtopaivamaara is not null and bo.alkamispaivamaara>bl.paattymispaivamaara then 1 else 0 end IF OBJECT_ID('tempdb..#poissaolo_maara_ennen' IS NOT NULL BEGIN truncate table #poissaolo_maara_ennen drop table #poissaolo_maara_ennen if @debug<>0 print convert(varchar,getdate(,120+' DROP temp-taulu poissaolo_maara_ennen' END create table #poissaolo_maara_ennen ( opiskeluoikeusid int, lkm int insert into #poissaolo_maara_ennen (opiskeluoikeusid,lkm select l.opiskeluoikeusid, count(* from Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid join #tktutk T on T.opiskeluoikeus_id=l.OpiskeluoikeusID where lt.koodi in ('2','3' --poissa, poissa ei kuluta -- siirto-opiskelija KYLLÄ aiemman kk:n ilmoja and T.oikeus_siirtopaivamaara is not null and T.oikeus_siirtopaivamaara<T.oikeus_alkamispaivamaara and coalesce(l.paattymispaivamaara,'9999-01-01' < coalesce(t.oikeus_alkamispaivamaara,'1900-01-01' -- kk:lla on aiemman kk:n ilmoja (yleisesti, ei vain tämä tapaus? and 1 = (select toinen_kk from #ilmomalli group by l.opiskeluoikeusid -- ne joilla tiedot on oikein, eli EI OLE aiemman kk:n ilmoja tuotu: insert into #poissaolo_maara_ennen (opiskeluoikeusid,lkm select T.opiskeluoikeus_id, o.lasna_poissa_lukukausien_summa join Opiskeluoikeus o on o.id=t.opiskeluoikeus_id where T.opiskeluoikeus_id NOT IN (select opiskeluoikeusid from #poissaolo_maara_ennen -- siirto-opiskelija EI aiemman kk:n ilmoja
and T.oikeus_siirtopaivamaara is not null and T.oikeus_siirtopaivamaara<T.oikeus_alkamispaivamaara and o.lasna_poissa_lukukausien_summa is not null -- kk:lla EI OLE aiemman kk:n ilmoja (yleisesti, ei vain tämä tapaus? and 1 <> (select toinen_kk from #ilmomalli
Läsnäololukukaudet (lasnalk Käytettyjen läsnäololukausien määrä tilastointivuoden loppuun, tai tutkinnon suorittamispäivään, mennessä mukaan lukien siirto-opiskelijoiden käyttämät lukukaudet aiemmassa korkeakoulussa. NB! Koska siirto-opiskelijoihin liittyen tietovarannon tiedot sisältävät paikan vain yhdelle lukukausien läsnä- ja poissaolojen lukumäärälle, on tämä yksi paikka otettu vain poissaolojen käyttöön. Tässä kohdassa lasketaan: lähettävässä korkeakoulussa käytetyt läsnäololukukaudet, johon lisätään lukukausien määrä aiemmassa korkeakoulussa, lasketaan lukukausien viimeisten päivien lukumäärä aikavälillä opiskeluoikeuden alkamispäivä - siirtopäivä sql-kysely voi olla vähän vaikea tulkita, sillä siinä pelataan vuosien kanssa, mutta yllä mainittu on tarkoitus mikäli kyse on siirto-opiskelijasta, poistetaan lukumäärästä ilmoitettu poissaolojen lukumäärä. NB2! Tehty poimintaan kaksi poimintamallia (ilmomalli ks. yllä
SQL Expand -- lasnalk :: Läsnäololukukaudet source set lasnalk =coalesce( (select count(* from Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid and lt.koodi in ('1' --läsnä where l.opiskeluoikeusid=t.opiskeluoikeus_id and l.paattymispaivamaara<=(select vuosi from #param+'-12-31' -- ei sallita ennen opiskeluoikeutta olleita (siirto-opiskelija and l.paattymispaivamaara > T.oikeus_alkamispaivamaara -- "varmuuden vuoksi" ilmoittautumiset pois, eli tutkinnon suorittamisen jälkeen alkavat lk:t pois and l.alkamispaivamaara < T.suorituspaivamaara,0 + case when oikeus_siirtopaivamaara is not null and oikeus_alkamispaivamaara is not null then case -- Ensin poikkeus: Samana vuonna tapahtunut alkaminen ja siirto when DATEPART(year,oikeus_siirtopaivamaara = DATEPART(year,oikeus_alkamispaivamaara then case when DATEPART(month,oikeus_alkamispaivamaara < 8 then 0 -- jos 31.7. on jo kohdekk:ssa: 0 when DATEPART(month,oikeus_siirtopaivamaara >= 8 then 0 -- jos alkanut vasta myöh: 0 else 1 -- muutoin kevät lk lähdekk:ssa (syksy on kohdekk:ssa! end -- "normi", eri vuodet: else -- lk alku: 1.vuosi: pvm(kk < 8 => 2 (ekan vuoden molemmat lk:t muutoin 1 ( case when DATEPART(month,oikeus_siirtopaivamaara < 8 then 2 else 1 -- syys lk joka tapauksessa (muista, eri vuodet end -- lk loppu: 2.vuosi: pvm(kk >= 8 => 1 muutoin 0 +(case when DATEPART(month,oikeus_alkamispaivamaara >= 8 then 1 else 0 end -- vuodet: (vuosien erotus - 1 x 2 (muista, eri vuodet tässä, eli ei tule negatiivista lukua 0 saa tulla -1:n kanssa +( (DATEPART(year,oikeus_alkamispaivamaara - DATEPART(year,oikeus_siirtopaivamaara - 1 * 2 end -- miinus ne, jotka on ilmoitettu poissaoloksi - coalesce((select lkm from #poissaolo_maara_ennen where opiskeluoikeusid=t.opiskeluoikeus_id,0 else 0 end WHERE T.opiskeluoikeus_id NOT IN (SELECT OPL.OpiskeluoikeusID FROM Op_oik_siir_opisk_liittyva_lukukausi OPL -- 2017 muutos FF
Poissaololukukaudet (poissalk Käytettyjen poissaololukausien määrä tilastointivuoden loppuun, tai tutkinnon suorituspäivään, mennessä mukaan lukien siirto-opiskelijoiden käyttämät lukukaudet aiemmassa korkeakoulussa. NB!: Koska siirto-opiskelijoihin liittyen tietovarannon tiedot sisältävät paikan vain yhdelle lukukausien läsnä- ja poissaolojen lukumäärälle, on tämä yksi paikka otettu vain poissaolojen käyttöön. Tässä kohdassa tuo tieto lasketaan yhteen tietoja lähettävässä korkeakoulussa käytettyihin poissaolojen lukumäärään. NB2! Tehty poimintaan kaksi poimintamallia (ilmomalli ks. yllä -- poissalk :: Poissaololukukaudet source set poissalk =coalesce( (select count(* from Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid and lt.koodi in ('2','3' --poissa, poissa ei kuluta where l.opiskeluoikeusid=t.opiskeluoikeus_id and l.paattymispaivamaara<=(select vuosi from #param+'-12-31' -- ei sallita ennen opiskeluoikeutta olleita (siirto-opiskelija and l.paattymispaivamaara > T.oikeus_alkamispaivamaara -- "varmuuden vuoksi" ilmoittautumiset pois, eli tutkinnon suorittamisen jälkeen alkavat lk:t pois and l.alkamispaivamaara < T.suorituspaivamaara,0 + coalesce((select lkm from #poissaolo_maara_ennen where opiskeluoikeusid=t.opiskeluoikeus_id,0 WHERE T.opiskeluoikeus_id NOT IN (SELECT OPL.OpiskeluoikeusID FROM Op_oik_siir_opisk_liittyva_lukukausi OPL -- 2017 muutos FF SQL Expand -- Katsotaan onko Op_oik_siir_opisk_liittyva_lukukausi taulussa poissa ja läsnä-olot siirto-opiskelijalle -- 2017-01-12 UPDATE T SET lasnalk = COALESCE( (SELECT count(* FROM Lukukausi_ilmoittautuminen l INNER join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid AND lt.koodi in ('1' --läsnä WHERE l.opiskeluoikeusid=t.opiskeluoikeus_id AND l.paattymispaivamaara<=(select vuosi from #param+'-12-31' -- ei sallita ennen opiskeluoikeutta olleita (siirto-opiskelija AND l.paattymispaivamaara > T.oikeus_alkamispaivamaara -- "varmuuden vuoksi" ilmoittautumiset pois, eli tutkinnon suorittamisen jälkeen alkavat lk:t pois
,0 and l.alkamispaivamaara < T.suorituspaivamaara + COALESCE( ( SELECT OL.Maara FROM Op_oik_siir_opisk_liittyva_lukukausi OL INNER JOIN Lukukausi_ilm_tila LT ON LT.id = OL.Lukukausi_ilm_tilaID WHERE OL.OpiskeluoikeusID = T.opiskeluoikeus_id AND LT.Koodi = '1',0 FROM #tktutk T WHERE T.opiskeluoikeus_id IN (SELECT OPL.OpiskeluoikeusID FROM Op_oik_siir_opisk_liittyva_lukukausi OPL -- 2016 muutos poissaolo siirto-opiskelijat -- 2017-01-12 UPDATE T SET poissalk = COALESCE( (SELECT count(* FROM Lukukausi_ilmoittautuminen l INNER join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid AND lt.koodi IN ('2','3' --Poissa WHERE l.opiskeluoikeusid=t.opiskeluoikeus_id AND l.paattymispaivamaara<=(select vuosi from #param+'-12-31' -- ei sallita ennen opiskeluoikeutta olleita (siirto-opiskelija AND l.paattymispaivamaara > T.oikeus_alkamispaivamaara -- "varmuuden vuoksi" ilmoittautumiset pois, eli tutkinnon suorittamisen jälkeen alkavat lk:t pois and l.alkamispaivamaara < T.suorituspaivamaara,0 + COALESCE( ( SELECT OL.Maara FROM Op_oik_siir_opisk_liittyva_lukukausi OL INNER JOIN Lukukausi_ilm_tila LT ON LT.id = OL.Lukukausi_ilm_tilaID WHERE OL.OpiskeluoikeusID = T.opiskeluoikeus_id AND LT.Koodi = '2', 0 FROM #tktutk T WHERE T.opiskeluoikeus_id IN ( SELECT OPL.OpiskeluoikeusID FROM Op_oik_siir_opisk_liittyva_lukukausi OPL
Ensimmäinen kirjoihintuloajankohta ko. tutkintoon (kirtu1pv Haetaan ensimmäinen kirjoihintuloajankohta ko. tutkintoon siten, että otetaan siirtopäivämäärä, jos on, muutoin opiskeluoikeuden alkamispäivä ja muunnetaan muotoon VVVVKKPP. SQL Expand -- kirtu1pv :: Ensimmäinen kirjoihintuloajankohta ko. tutkintoon source -- NB siirto-opiskelijat set kirtu1pv=convert(varchar,coalesce(t.oikeus_siirtopaivamaara,t.oikeus_alkamispaivamaara,112--112=yyyymmdd Lastentarhanopettajan pätevyyteen tähtäävät opinnot (lastu (opettaja Haetaan henkilön pätevyys -tiedon perusteella, kun se liittyy ko. tutkintoon. Pätevyys-tieto: iq => 1=Opiskelijalle, joka suorittaa sosionomi (amk -tutkintoa kuuluu aineyhdistelmään opintoja, jotka tähtäävät lastentarhanopettajan pätevyyteen 12 => 2=Sairaanhoitajan pätevyys (tutkintokeruu ja => 3=Ammatillinen opettajankoulutus, pedagogiset opinnot jc => 4=Ammatillinen opettajankoulutus, opinto-ohjaaja jb => 5=Ammatillinen opettajankoulutus, erityisopettaja NB! Tyhjät jää (edelleen tyhjäksi. Erityisesti arvo 2 ei tarkoita siis enää "ei" vaan sairaanhoitajaa. NB! 2015-01-15: Pätevyydet pitää katsoa koko hierarkiasta! Tämä tehdään katsomalla, että pätevyys löytyy opintosuorituksesta jolla on sama opiskeluoikeus-liittyvyys kuin on tutkinto-opinnolla. NB! 2016-02-05: Poikkeuspoiminta vuoden 2015 tutkintotiedonkeruussa: Katsotaan ammatillisen opettajankoulutuksen pätevyydet lisäksi opiskeluoikeuksien kautta. SQL Expand -- lastu source --Sosionomi (amk -tutkinnon suorittanut, jonka aineyhdistelmään kuuluu --60 opintopisteen laajuiset varhaiskasvatuksen ja sosiaalipedagogiikan opinnot --1=Kyllä, 2=Ei -- NB! 2015-01-12: Tyhjät jää tyhjäksi tarkoittaen "ei". Arvo 2 saanut uuden merkityksen! -- NB! 2015-01-15: Pätevyydet pitää katsoa koko hierarkiasta! -- NB! 2015-09-22: Korjattu vanha lastentarhaopettaja pätevyyskoodi 2=> iq set lastu='1' inner join Opintosuoritus s on s.opiskeluoikeusid = T.opiskeluoikeus_id inner join Henkilon_patevyys hp on hp.opintosuoritusid=s.id inner join Patevyys p on p.id=hp.patevyysid where 1=1 and p.koodi in ('iq' --lastentarhanopettaja
and lastu is null -- Tuplasairaanhoitajat -- 2015-01-12: Viranomaistiedonkeruuryhmässä sovittiin, että laitetaan pätevyyskoodi 12 lastu-muuttujaan arvoksi 2 -- Tämä on siis nk. tuplasairaanhoitajien se toinen pätevyystieto! set lastu='2' inner join Opintosuoritus s on s.opiskeluoikeusid = T.opiskeluoikeus_id inner join Henkilon_patevyys hp on hp.opintosuoritusid=s.id inner join Patevyys p on p.id=hp.patevyysid where 1=1 and p.koodi in ('12' --sairaanhoitaja -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null --TIE-90: Sairaanhoitajan tutkintoon ei saa liittyä sairaanhoitajan pätevyyttä and s.tutkintonimikeid not in (select tu.id from virta.dbo.tutkintonimike tu where tu.koodi='671101' -- lastu :: Ammatillinen opettajankoulutus, pedagogiset opinnot Pätevyyteen tähtäävät opinnot set lastu='3' inner join Opintosuoritus s on s.opiskeluoikeusid = T.opiskeluoikeus_id inner join Henkilon_patevyys hp on hp.opintosuoritusid=s.id inner join Patevyys p on p.id=hp.patevyysid where p.koodi='ja' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null -- lastu :: Ammatillinen opettajankoulutus, opinto-ohjaaja Pätevyyteen tähtäävät opinnot set lastu='4' inner join Opintosuoritus s on s.opiskeluoikeusid = T.opiskeluoikeus_id inner join Henkilon_patevyys hp on hp.opintosuoritusid=s.id inner join Patevyys p on p.id=hp.patevyysid where p.koodi='jc' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null -- lastu :: Ammatillinen opettajankoulutus, erityisopettaja Pätevyyteen tähtäävät opinnot set lastu='5' inner join Opintosuoritus s on s.opiskeluoikeusid = T.opiskeluoikeus_id inner join Henkilon_patevyys hp on hp.opintosuoritusid=s.id inner join Patevyys p on p.id=hp.patevyysid where p.koodi='jb' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null -- NB! AMK-OPE poikkeus vuoden 2015 tutkinnoille.
-- Poimitaan saavutetut pätevyystiedot opiskeluoikeudesta liittyen ammatilliseen opettajankoulutukseen -- lastu :: Ammatillinen opettajankoulutus, pedagogiset opinnot Pätevyyteen tähtäävät opinnot set lastu='3' inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = T.opiskeluoikeus_id inner join Opiskeluoikeusjakson_patevyys jp on jp.opiskeluoikeusjaksoid = oj.id inner join Patevyys p on p.id=jp.patevyysid where p.koodi='ja' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null -- lastu :: Ammatillinen opettajankoulutus, opinto-ohjaaja Pätevyyteen tähtäävät opinnot set lastu='4' inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = T.opiskeluoikeus_id inner join Opiskeluoikeusjakson_patevyys jp on jp.opiskeluoikeusjaksoid = oj.id inner join Patevyys p on p.id=jp.patevyysid where p.koodi='jc' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa and lastu is null -- lastu :: Ammatillinen opettajankoulutus, erityisopettaja Pätevyyteen tähtäävät opinnot set lastu='5' inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = T.opiskeluoikeus_id inner join Opiskeluoikeusjakson_patevyys jp on jp.opiskeluoikeusjaksoid = oj.id inner join Patevyys p on p.id=jp.patevyysid where p.koodi='jb' -- ei jyrätä (ei pitäisi ollakaan samoissa tutkinnoissa
and lastu is null -- / 2015 poikkeus amk-ope Rahoituslähde (rahlahde Haetaan rahoituslähde-tieto sellaisenaan tiedetyn opiskeluoikeuden opiskeluoikeusjaksosta. SQL -- rahlahde :: Rahoituslähde source set rahlahde=k.koodi inner join Opiskeluoikeusjakso oj on oj.opiskeluoikeusid=t.opiskeluoikeus_id inner join Rahoituslahde k on k.id=oj.rahoituslahdeid Expand Maksullisen tilauskoulutuksen sijaintimaa (tilmaa Tietovarannossa ei ko. tietoa ole. Koulutuskoodi (koulk Haetaan tieto suoraan kullakin rivillä tunnetulle opintosuoritukselle. SQL -- koulk set koulk=k.koodi inner join Opintosuoritus s on s.id=t.opintosuoritus_id inner join Tutkintonimike k on k.id=s.tutkintonimikeid where 1=1 -- jos ei jo ole and koulk is null Expand source Opintopisteet Oma temp-taulu, joka nopeuttaa oleellisesti kyselyitä. Viedään temp-tauluun kaikki lehtitason muu opintosuoritus -lajiset opintosuoritukset, jotka liittyvät perusjoukkoon valittuun suoritettuun tutkintoon.
NB! Kaikki opintopisteet lasketaan kokonaislukuna. Tämä siis siten, että opintopisteet lasketaan yhteen, jonka jälkeen saatu summa pyöristetään kokonaisluvuksi. Seuraavat opintopistetiedot täytetään tässä "yhdessä nipussa": Suoritettavien opintojen laajuus (oplaaj (laajuus Haetaan tutknto-opintosuoritukseen liittyvästä opiskeluoikeudesta tutkinnon laajuus, josta vähennetään tutkintoon liitettyjen ennen opiskeluoikeuden alkamista ja mahdollista siirtopäivää suoritettujen hyväksiluettujen opintosuoritusten opintopisteet. Suoritettavien opintojen laajuus -tiedon mennessä negatiiviseksi, arvo muutetaan nollaksi (0. Omassa ammattikorkeakoulussa suoritetut opintopisteet (opoamk Mikäli suoritusta ei luokitella muihin kategorioihin, tulee suorituksen opintopisteet tähän kategoriaan. Eli tämä on ns. oletuskategoria. Muissa ammattikorkeakouluissa suoritetut opintopisteet (opmamk Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy oppilaitostyypiltään 41='Ammattikorkeakoulu' oleva organisaatio, joka ei ole sama kuin kenen tietoja nyt käsitellään, lasketaan opintopisteet tähän kategoriaan. Yliopistoissa suoritetut opintopisteet (opylio Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy oppilaitostyypiltään 42='Yliopisto' tai 43='Sotilaskorkeakoulut' oleva organisaatio, joka ei ole sama kuin kenen tietoja nyt käsitellään, lasketaan opintopisteet tähän kategoriaan. Yleissivistävissä ja ammatillisissa oppilaitoksissa suoritetut opintopisteet (opylei Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy oppilaitostyypiltään (63,64,66,99,Muu oleva organisaatio, joka ei ole sama kuin kenen tietoja nyt käsitellään, lasketaan opintopisteet tähän kategoriaan. Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy organisaatio joka ei ole tyypiltään 41='Ammattikorkeakoulu', 42='Yliopisto' tai 43='Sotilaskorkeakoulut', tai organisaatio itsessään on 63='Kansanopistot', 64='Kansalaisopistot', 66='Kesäyliopistot', 99='Muut oppilaitokset' tai Muu='Pienet oppilaitokset ja koulutuksenjärjestäjät (alle 5 opiskelijaa', ja organisaatio ei ole sama kuin minkä tahansa korkeakoulun tiedot tietovarannossa (varmuuden vuoksi tarkistus ja organisaatio itsessään ei ole 41='Ammattikorkeakoulu', 42='Yliopisto', 43='Sotilaskorkeakoulut', UK='Ulkomainen korkeakoulu' UM='Ulkomainen muu oppilaitos' tai XX='Muodollisen koulutuksen ulkopuolella', ja organisaatio ei ole sama kuin kenen tietoja nyt käsitellään lasketaan opintopisteet tähän kategoriaan. Ulkomailla suoritetut opintopisteet (opulk Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy organisaatio UK='Ulkomainen korkeakoulu' tai UM='Ulkomainen muu oppilaitos', joka ei ole sama kuin kenen tietoja nyt käsitellään, lasketaan opintopisteet tähän kategoriaan. Muualla suoritetut opintopisteet (opmuu Mikäli suorituksen järjestävä-roolisista (tai hyväksiluetun opintosuorituksen tapauksessa lähde-roolin organisaatioista löytyy organisaatio XX='Muodollisen koulutuksen ulkopuolella', joka ei ole sama kuin kenen tietoja nyt käsitellään, lasketaan opintopisteet tähän kategoriaan. Opintopisteet yhteensä (opyht Opintopisteet yhteensä on kaikkien tutkinto-opintosuoritukseen sisältyvien (aputaulussa olevien lehtitaso opintosuoritusten laajuuksien summa. Tutkinnon opintopisteet ( Tämä tieto on uusi (12.1.2015 ja tullut mukaan "tiedoksi", koska sama tieto lisättiin myös yliopisto-puolelle.
Tieto on suoraan tutkinto-opintosuoritukselle (laji=1 eli tiedonkeruun perusjoukon rivin tieto tallennettu laajuus-tieto. SQL Expand -- Opintopisteitä varten tehdä oma erillinen aputaulu source -- Temp-taulu tietojen valintaa varten -- NB! param-taulussa saa olla vain yksi rivi! IF OBJECT_ID('tempdb..#pisteet' IS NOT NULL BEGIN truncate table #pisteet drop table #pisteet if @debug<>0 print convert(varchar,getdate(,120+' DROP temp-taulu pisteet' END create table #pisteet ( opiskelija_id int not null, opiskeluoikeus_id int, opintosuoritus_id int not null, laajuus decimal(18,6 not null, suoritus_pvm date not null, hyvaksiluettu_pvm date, oamk bit, mamk bit, ylio bit, ylei bit, ulk bit, muu bit if @debug<>0 print convert(varchar,getdate(,120+' CREATE temp-taulu pisteet' -- TODO: OSUUDET insert into #pisteet (opiskelija_id,opiskeluoikeus_id,opintosuoritus_id,laajuus,suoritus_pvm,hyvaksiluettu_ pvm,oamk,mamk,ylio,ylei,ulk,muu select s.opiskelijaid as opiskelija_id, s.opiskeluoikeusid as opiskeluoikeus_id, s.id as opintosuoritus_id, s.laajuus as laajuus, s.suorituspaivamaara as suoritus_pvm, shl.hyvaksilukupaivamaara as hyvaksiluettu_pvm -- opintopisteiden jaottelu -- oma amk: käytetään halpaa logiikkaa, eli yhteensä miinus muut. tässä null kunnes..!, null as oamk --,(case when s.id NOT IN ( -- select sg.opintosuoritusid -- from Op_suorituksen_organisaatio sg -- inner join Organisaatio g on g.id=sg.organisaatioid -- inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid -- where sg.opintosuoritusid=s.id -- and gr.koodi='2' -- järjestävä -- and g.koodi<>(select kk from #param -- -- then 1 else 0 end -- as oamk --muu amk,coalesce((select distinct 1 from Op_suorituksen_organisaatio sg
inner join Organisaatio g on g.id=sg.organisaatioid inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid where sg.opintosuoritusid=s.id and(gr.koodi='2' -- järjestävä or(gr.koodi='3' and shl.hyvaksilukupaivamaara is not null and(g.koodi in ( SELECT Organisaatio_koodi FROM Yhteiset.Koodistot.Organisaatio_Oppilaitostyyppi WHERE Oppilaitostyyppi_koodi='41' or g.koodi='41' -- ei oma korkeakoulu and g.koodi <> (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=(select org from #param -- varmuuden vuoksi/yhteentoimivuus and g.koodi <> (select kk from #param,0 as mamk --ylio,coalesce((select distinct 1 from Op_suorituksen_organisaatio sg inner join Organisaatio g on g.id=sg.organisaatioid inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid where sg.opintosuoritusid=s.id and(gr.koodi='2' -- järjestävä or(gr.koodi='3' and shl.hyvaksilukupaivamaara is not null and(g.koodi in ( SELECT Organisaatio_koodi FROM Yhteiset.Koodistot.Organisaatio_Oppilaitostyyppi WHERE Oppilaitostyyppi_koodi='42' OR Oppilaitostyyppi_koodi='43' or g.koodi='42' or g.koodi='43' -- ei oma korkeakoulu and g.koodi <> (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=(select org from #param -- varmuuden vuoksi/yhteentoimivuus and g.koodi <> (select kk from #param,0 as ylio --ylei,coalesce((select distinct 1 from Op_suorituksen_organisaatio sg inner join Organisaatio g on g.id=sg.organisaatioid inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid where sg.opintosuoritusid=s.id and(gr.koodi='2' -- järjestävä or(gr.koodi='3' and shl.hyvaksilukupaivamaara is not null --DONE-ish? opplaittyyp tarkistus! and(g.koodi in ( SELECT Organisaatio_koodi FROM Yhteiset.Koodistot.Organisaatio_Oppilaitostyyppi WHERE Oppilaitostyyppi_koodi is not null and Oppilaitostyyppi_koodi not in ('41','42','43' or g.koodi in ('63','64','66','99','Muu' -- leikataan nämä pois and g.koodi not in (select Asetus from Yhteiset.Asetukset.Ohjaus_Parametrit p where p.toiminto='oppilaitostyyppi'
and g.koodi not in ('41','42','43','UK','UM','XX' --and g.koodi in (select Koodi from Organisaatio g2 where len(koodi=5 or Koodi in('63','64','66','99','muu' -- ei oma korkeakoulu and g.koodi <> (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=(select org from #param -- varmuuden vuoksi/yhteentoimivuus and g.koodi <> (select kk from #param,0 as ylei --ulk,coalesce((select distinct 1 from Op_suorituksen_organisaatio sg inner join Organisaatio g on g.id=sg.organisaatioid inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid where sg.opintosuoritusid=s.id and(gr.koodi='2' -- järjestävä or(gr.koodi='3' and shl.hyvaksilukupaivamaara is not null --ei tarvita: and g.koodi not in (SELECT Organisaatio_koodi FROM Yhteiset.Koodistot.Organisaatio_Oppilaitostyyppi and g.koodi in ('UK','UM' -- ei oma korkeakoulu and g.koodi <> (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=(select org from #param -- varmuuden vuoksi/yhteentoimivuus and g.koodi <> (select kk from #param,0 as ulk --muu,coalesce((select distinct 1 from Op_suorituksen_organisaatio sg inner join Organisaatio g on g.id=sg.organisaatioid inner join Organisaation_rooli gr on gr.id=sg.organisaation_rooliid where sg.opintosuoritusid=s.id and(gr.koodi='2' -- järjestävä or(gr.koodi='3' and shl.hyvaksilukupaivamaara is not null and g.koodi in ('XX' -- ei oma korkeakoulu and g.koodi <> (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where DB=(select org from #param -- varmuuden vuoksi/yhteentoimivuus and g.koodi <> (select kk from #param,0 as muu from Opintosuoritus s inner join Opintosuorituksen_laji sl on sl.id=s.opintosuorituksen_lajiid and sl.koodi='2' --muu opintosuoritus -- HYVÄKSILUETTU left join Opsuorituksen_hyvaksiluku shl on shl.opintosuoritusid=s.id cross join #param -- saa olla vain yksi rivi! where 1=1 -- lehtitaso, tai ei ainakaan vanhempi (lajeja 3 ja 4 ei huomioida and s.id not in ( select ss.opintosuoritusid from Op_suor_sisaltyvyys ss -- 2015-01-19: lajeja 3 ja 4 ei huomioida where ss.opintosuoritusid not in ( select sss.id from Opintosuoritus sss inner join Opintosuorituksen_laji sssl on sssl.id=sss.opintosuorituksen_lajiid where sssl.koodi in ('3','4'
CREATE NONCLUSTERED INDEX IX_pisteet_opiskelija_id ON #pisteet (opiskelija_id INCLUDE (opiskeluoikeus_id,opintosuoritus_id,laajuus,suoritus_pvm CREATE NONCLUSTERED INDEX IX_pisteet_suoritus_pvm ON #pisteet (suoritus_pvm INCLUDE ([opiskelija_id],[opiskeluoikeus_id],[laajuus] CREATE NONCLUSTERED INDEX IX_pisteet_hyvaksiluettu_pvm ON #pisteet (hyvaksiluettu_pvm INCLUDE ([opiskelija_id],[opiskeluoikeus_id],[laajuus],[suoritus_pvm] --select * from #pisteet -- laajuus :: Suoritettavien opintojen laajuus -- Tilastokeskuksen ohjeen mukaanhan: -- Suoritettavien opintojen laajuus opintopisteinä (=tutkinnon laajuudesta vähennetty aiemmin suoritetut hyväksilukujen laajuudet set laajuus=cast( cast(o.laajuus as int - coalesce( ( select cast(cast(round(sum( case when s.suoritus_pvm <= o.alkamispaivamaara and s.suoritus_pvm <= coalesce(o.siirtopaivamaara,'9999-01-01' and s.hyvaksiluettu_pvm <= #param.vuosi+'-12-31' --#param.tilpvm then s.laajuus else 0 end,0 as int as varchar from #pisteet s inner join Opiskeluoikeus o on o.id=s.opiskeluoikeus_id --voi tehdä amkeilla cross join #param -- saa olla vain yksi rivi! where s.opiskelija_id=t.opiskelija_id -- HYVÄKSILUETTU and s.hyvaksiluettu_pvm is not null and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id,0 as varchar --select distinct o.laajuus inner join Opiskeluoikeus o on o.id=t.opiskeluoikeus_id where o.laajuus is not null -- NB! 20150129/LJ: Negatiiviset suoritettavien opintojen laajuus -tiedot nollaksi! set laajuus=cast(0 as varchar where laajuus is not null and cast(laajuus as int < 0 --- -- Opinnot, suoritukset, opintopisteet ---
-- -- VIRTA-625: Lisätään tutkinto-opintosuorituksen opintopisteet mukaan tiedonkeruuseen. set optutk = cast(cast(round(s.laajuus,0 as int as varchar inner join Opintosuoritus s on s.id=t.opintosuoritus_id where T.optutk is null -- kategoriat ja yhteensä (summa lehtitasolta set opoamk=( select cast(cast(round(sum( --case when s.oamk = 1 then s.laajuus else 0 end,0 as int as varchar case when s.mamk=0 and s.ylio=0 and s.ylei=0 and s.ulk=0 and s.muu=0 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opmamk=( select cast(cast(round(sum( case when s.mamk = 1 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opylio=( select cast(cast(round(sum( case when s.ylio = 1 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opylei=( select cast(cast(round(sum( case when s.ylei = 1 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opulk=( select cast(cast(round(sum( case when s.ulk = 1 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opmuu=( select cast(cast(round(sum( case when s.muu = 1 then s.laajuus else 0 end,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id
and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id, opyht=( select cast(cast(round(sum( s.laajuus,0 as int as varchar from #pisteet s where s.opiskelija_id=t.opiskelija_id and s.opiskeluoikeus_id=t.opiskeluoikeus_id group by s.opiskelija_id
where opyht is null Tulos SQL Expand select coalesce(tunn,'' as "Oppilaitostunnus" source,coalesce(koultyp,'' "Koulutustyyppi",coalesce(kiel,'' "Koulutuksen opetuskieli" --kkieli,coalesce(kkun,'' "Opiskelukunta" --kkun,coalesce(ht,'' "Henkilötunnus" --ht,coalesce(snimi,'' "Sukunimi" --snimi,coalesce(enimi,'' "Etunimet" --enimi,coalesce(sp,'' "Sukupuoli" --sp,coalesce(aikieli,'' "Äidinkieli" --aikieli,coalesce(askunta,'' "Opiskelijan vakinainen asuinkunta" --askun,coalesce(kansal,'' "Opiskelijan kansalaisuus" --kansal,coalesce(kirtupv,'' "Ko. tutkintoon kirjoihintuloajankohta ko. ammattikorkeakoulussa" --kirtupv,coalesce(suorpvm,'' "Suorituspäivämäärä",coalesce(opoamk,'' "Omassa ammattikorkeakoulussa suoritetut opintopisteet",coalesce(opmamk,'' "Muissa ammattikorkeakouluissa suoritetut opintopisteet",coalesce(opylio,'' "Yliopistoissa suoritetut opintopisteet",coalesce(opylei,'' "Yleissivistävissä ja ammatillisissa oppilaitoksissa suoritetut opintopisteet",coalesce(opulk,'' "Ulkomailla suoritetut opintopisteet",coalesce(opmuu,'' "Muualla suoritetut opintopisteet",coalesce(opyht,'' "Opintopisteet yhteensä",coalesce(lasnalk,'' "Läsnäololukukaudet" --lasnalk,coalesce(poissalk,'' "Poissaololukukaudet" --poissalk,coalesce(laajuus,'' "Suoritettavien opintojen laajuus" --oplaaj,coalesce(kirtu1pv,'' "Ensimmäinen kirjoihintuloajankohta ko. tutkintoon" --kirtu1pv,coalesce(lastu,'' "Lastentarhanopettajan pätevyyteen tähtäävät opinnot" --opettaja,coalesce(rahlahde,'' "Rahoituslähde",coalesce(tilmaa,'' "Maksullisen koulutuksen sijaintimaa",coalesce(koulk,'' "Koulutuskoodi" -- VIRTA-625: tutkinto-opintosuorituksen opintopisteet,coalesce(optutk,'' "Tutkinnon opintopisteet" --( -- korkeakoulujen pyynnöstä, lisäkentät,t.opiskelijaavain "Opiskelija-avain",T.opiskeluoikeusavain "Opiskeluoikeusavain",T.opintosuoritusavain "Opintosuoritusavain" where 1=1 order by ht,suorpvm,koulk
Tarkistus Suoritetaan tarkistuksia poimittuihin tietoihin liittyen. Pohjaksi on otettu Tilastokeskuksen aiemmin tekemän tarkistusohjelman kuvaus. NB! Tarkistuksia tulee jalostaa vielä. Nyt on kuitenkin jotakin pohjaa. Lisäksi tarkistuksia haluttaneen lisää. Dokumentointia ei vielä ole yritettykään tehdä kattavaksi, sillä niin paljon tarkennusta vaativia kohtia on nyt. SQL Expand --- source -- TARKISTUS --- /* Tilastokeskuksen tarkistusohjelman suorittamat tarkistukset Kun amk-tutkintotiedonkeruun aineisto on toimitettu TK:n palvelimelle, virheentarkistusohjelma tarkistaa seuraavat asiat. Kunkin virhetyypin yhteydessä on mainittu sen nimike palautetulosteessa. TUNN = tunn (oppilaitostunnus on virheellinen onko oppilaitostunnus jokin voimassaolevista 5-numeroisista tunnuksista AVAIN = oltunn - tutk - ko - sv (tutkintokoodi - koulutusohjelma - suuntautumisvaihtoehto -koodikombinaatio on virheellinen avaimen (oppilaitos-tutkinto-ko-sv perusteella verrataan opetushallinnon koulutusohjelmapäätöksiin AVAIN2 = oltunn - tutk - ko - sv - koulk (tutkintokoodi - koulutusohjelma - suuntautumisvaihtoehto - koulutuskoodi -koodikombinaatio on virheellinen Jos koulutuskoodi on merkitty, niin avaimen (oppilaitos-tutkinto-ko-sv-koulutuskoodi perusteella verrataan opetushallinnon koulutusohjelmapäätöksiin, jotka on kooditettu Tilastokeskuksen koulutuskoodilla TUTK = tutkinto virheellinen verrataan tutkintokoodia koulutusohjelmapäätöksissä oleviin mahdollisiin tutkintokoodeihin KO = koulutusohjelma virheellinen verrataan ko-koodia koulutusohjelmapäätöksissä oleviin mahdollisiin ko-koodeihin SV = suuntautumisvaihtoehto virheellinen verrataan sv-koodia koulutusohjelmapäätöksissä oleviin mahdollisiin sv-koodeihin KOULTYP = koulutustyyppi on virheellinen KOULTYP1 = muuttujan arvo ei ole 1, 2, 3, 5, 6 eikä 7 KOULTYP2 = erikoistumisopinnoissa ja opettajankoulutuksessa koodi on joko 3 tai 5, muuten 1, 2 tai 6 KOULTYP3= koulutusohjelma ei sallittu erikoistumisopinnoissa tai opettajankoulutuksessa SRHTUP = ilmoitus sairaanhoitajista, joilla myös kätilön, ensihoitajan tai terveydenhoitajan tutkinto (tuplasairaanhoitajat KKIELI = kkieli (koulutuksen opetuskieli -koodiarvo on virheellinen koulutusohjelman opetuskieli löytyy opm:n päätöksistä (jos koulutusohjelmaa ei löydy, virhettä ei enää erikseen listata tässä kohdassa. KKUN = kkun (koulutuksen sijaintikunta -koodiarvo on virheellinen Verrataan toimilupapäätöksiin, onko amk:lla lupa järjestää koulutusta kyseisessä kunnassa.ammattikorkeakoulun koulutustehtävässä määrättävä sijaintipaikka koskee ammattikorkeakoulututkintoon johtavaa nuorten koulutuksena järjestettävää koulutusta ja ylempään ammattikorkeakoulututkintoon johtavaa koulutusta. KKUN2 = kkun2 (kunta -koodiarvo on virheellinen Verrataan voimassa olevaan kuntaluokitukseen ( koulutustyyppi 2, 3 ja 5. HT = henkilötunnus (tai sukupuoli on virheellinen tai puutteellinen HT1 = Puutteelliset henkilötunnukset - loppuosa puuttuu HT2 = henkilötunnukset, joiden jakojäännös ei täsmää - loppuosa virheellinen HT3 = sukupuolitieto virheellinen AIKIELI = äidinkielitieto virheellinen