Virta_Latausraportti - Tarkistukset

Samankaltaiset tiedostot
Opiskeluoikeuksien maaran tiedonkeruu

Nykyiset tiedonkeruut tietovarannosta

Opintopistetiedonkeruu

Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut

55 op laskennan poimintakuvaus

VIRTA opintotietopalvelun tietomallin muutokset

Opiskeluoikeudet. Kaaviokuva

Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut

Koulutus- ja opetusyhteistyö ja VIRTA-tiedot

VIRTA-termit ruotsiksi

Opintosuoritukset. Kaaviokuva

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

VIRTA-tietomallin laajentaminen - Lukuvuosi-maksu

Tilastokeskuksen tutkintotiedonkeruu yliopistot

HELIA 1 (14) Outi Virkki Tiedonhallinta

Uudet tiedonkeruut VIRTA-opintotietopalvelusta

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

Tilastokeskuksen opiskelijatiedonkeruu ammattikorkeakoulut

Tilastokeskuksen opiskelijatiedonkeruu yliopistot

Näkökulmia Diploma Supplementiin /Päivi Aho

Suorituksen sisältyminen toiseen suoritukseen (jonka id)

KOSKI - Opintosuoritukset ja opiskeluoikeudet kootusti valtakunnalliseen palveluun /08/2018 Opetushallitus 2

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

SELECT-lauseen perusmuoto

KV-VIRTA etenemisvaihtoehdot

OHJE OPISKELUOIKEUDEN PURKAMISESTA PASSIIVIREKISTERISTÄ

Virta-tietovarannosta saatavien tietojen tiedosto- ja tietuekuvaus alkaen

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

OUTER JOIN se vanha kunnon kaveri

Opiskelun ja opetuksen tuen ja hallinnon aliprosessit. Pekka Linna KOOTuki-ryhmä,

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Ammattikorkeakoulujen tiedonkeruu 2013 ja ajankohtaisia asioita. Kota-seminaari Kaisu Piiroinen

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

KOTA-seminaari, Helsinki 2018 VIRTA-OTP Tiedonkeruut Tavoiteajassa tutkinnon suorittaneet

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

TenttiWilho 2.0 UUSINTA- JA KOROTUSTENTTIJÄRJESTELMÄ OPISKELIJAN OHJE

Kirjoita jokaiseen erilliseen vastauspaperiin kurssin nimi, tenttipäivä, oma nimesi (selkeästi), opiskelijanumerosi ja nimikirjoituksesi

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

VIRTA-palveluiden hyödyntäminen korkeakouluyhteisön arjessa nyt ja tulevaisuudessa

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Opintokohteen Haku ja Käsittely

YO 3.2. Opintopistetiedonkeruu 2015

VIRTA-tiedon laadun tukeminen

Toteuttaa korkeakoulujen valtakunnallisen tietovarannon ja viranomaistietovirrat tutkinto-, opintosuoritus- ja opiskelijatietojen osalta.

Opintojen edistymisen seurannan aikataulu, syksy 2016 ja kevät 2017

SQL - STRUCTURED QUERY LANGUAGE

Vain valitut kentät: SELECT Päivämäärä, Laskutusnimi, [ale mk], Loppusumma FROM Laskuotsikot

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Kyselyn yleisrakenne:

Jatko-opinto oikeuden lisääminen HY:n tutkinto-opiskelijoille ja uusille opiskelijoille

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Toimintaa tukeva tietomalli. OTM Sidosryhmäseminaari Inka Paukku

RAKETTI ohjausryhmä. RAkenteellisen KEhittämisen Tukena TIetohallinto

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Mikkelin ammattikorkeakoululla on toimipisteet Mikkelissä, Savonlinnassa ja Pieksämäellä.

AMK 3.2. Opintopistetiedonkeruu 2015

(55-65) Osallistuminen valtakunnalliseen yhteistyöhön opiskelun ja opetuksen tukipalveluiden kehittämiseksi

Opettajatiedonkeruun toteutus

(55-65) Osallistuminen valtakunnalliseen yhteistyöhön opiskelun ja opetuksen tukipalveluiden kehittämiseksi

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Toteuttaa korkeakoulujen valtakunnallisen tietovarannon ja viranomaistietovirrat tutkinto-, opintosuoritus- ja opiskelijatietojen osalta.

EU:n yleinen tietosuoja-asetus (2016/679), artiklat 13 ja 14 Laatimispäivämäärä: Päivitetty:

Valtionhallinnon ylin johto numeroin huhtikuussa 2016

Opintoja suorittamattomien opiskelijoiden opiskeluoikeuksien kirjausmenettelyt ja tilastointi

Makrojen mystinen maailma lyhyt oppimäärä

Kirje Suoritetut opettajan tutkinnot ja opiskelu tavoitteena opettajan tutkinto

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Kansallisten opiskeluoikeuksien ja suoritusten keskitetty integraatiopalvelu. Jukka Väätti, StarSoft

Oppilaitoksilta saatavien opiskelutietojen tiedostojen alkutietueen tietuekuvaus

Tutkinnon rekisteröiminen

Rekisteröintiohjeet siirryttäessä vanhasta koulutusrakenteesta uuteen koulutusohjelmaan (Iso pyörä)

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

Opiskelijoiden tuonti.

Ammattikorkeakoulujen tiedonkeruut 2014

Opetustapahtumaan ilmoittautumisen yhteydessä tehtävät tarkistukset (hylkäyksen syyt)

CSE-A1200 Tietokannat

( ) Osallistuminen valtakunnalliseen yhteistyöhön opiskelun ja opetuksen tukipalveluiden kehittämiseksi

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

TENTTIVAIHTOEHDOT JA NIIDEN TOIMINNALLISUUDET. Tiivistelmä Dokumentissa esitellään tenttipalvelun toiminnallisuutta eri tenttivaihtoehdoissa

Kansallisten opiskeluoikeuksien ja suoritusten keskitetty integraatiopalvelu. Jukka Väätti, StarSoft

TyEL-työsuhde- ja vuosi-ilmoitustietojen sähköinen ilmoittaminen

SQL:N PERUSTEET MARKKU SUNI

2015_03_05 KV-VIRTA-asiantuntijaryhma

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

Hyödyt irti XDW:stä. Kim Johnsson Projektipäällikkö/Cerion Solutions Oy

VIRTA tiedonsiirtotavan kehittäminen - Eräsiirrosta inkrementaaliseen tiedonsiirtoon

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Kv-liikkuvuutta koskevat tiedonkeruut VIRTA-opintotietopalvelusta

LAPIN YLIOPISTON TUTKINTOSÄÄNTÖ. Annettu Rovaniemellä 16 päivänä kesäkuuta 2014

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Valinnanvapauden verkkopalvelu palveluntuottajille (Kela)

Pikaohjeet A&O oppimisympäristön käytön aloittamiseen

Transkriptio:

Virta_Latausraportti - Tarkistukset Tällä sivulla ylläpidetään tietovarannossa tehtävien tarkistusten listaa. Tarkistusten tulos ilmenee siis Virta_Latausraportilla PUUTTEITA-listalla. Opiskelijat Opiskelijalla ei ole ollenkaan opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta Mikäli tietojen perusteella löytyy sellainen opiskelija, jonka tietoihin ei voida liittää opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta. Opiskelijalla ei ole virallista suomalaista hetua tai kansallista oppijanumeroa Mikäli tiedoista löytyy sellainen opiskelija, johon ei liity virallista suomalaista hetua tai oppijanumeroa, ilmoitetaan. Tämä tarkistus yksinään ei näy listalla, sillä luultavasti näitä puutteita löytyy aivan kaikilta. Toisin sanoen tämä puute ilmoitetaan vain, mikäli on muitakin puutteita. Opiskelijan sukupuolitieto ei täsmää hetun kanssa Katsotaan sellaiset henkilöt, joiden sukupuoli-tieto ei täsmää henkilötunnuksesta pääteltävissä olevasta sukupuolesta. Opiskeluoikeudet Opiskeluoikeuden tila ei muodosta eheää aikajaksoa Tiedoista katsotaan sellaiset opiskeluoikeudet, joihin liittyy usea tila, mutta tilojen väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeuden opiskeluoikeusjakso ei muodosta eheää aikajaksoa Tiedoista katsotaan sellaiset opiskeluoikeudet, joihin liittyy usea opiskeluoikeusjakso, mutta jaksojen väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeuksien ensisijaisuuksissa päällekkäisyyksiä Tiedoista katsotaan opiskelijan ensisijaisuudet (aikajakso, mutta ensijaisuuksien väliin jää ajallisesti aukkoja tai ajat menevät päällekkäin. Opiskeluoikeusjaksolta puuttuu koulutuskoodi Tutkitaan tutkintoon johtavista opiskeluoikeuksista, liittyykö niissä oleviin opiskeluoikeusjaksoihin aina koulutuskoodi. Jos ei, puute. Ensisijaisuus puuttuu tutkinto-opiskelijan opiskeluoikeuksista (YO Tutkitaan opiskelijat, joilla on tutkintoon johtava opiskeluoikeus, liittyykö opiskeluoikeuksiin ollenkaan ensisijaisuutta. Jos ei, puute. Koskee vain yliopistoja. Rajoitettu koskemaan vain kuluvana vuonna voimassaolleita opiskeluoikeuksia. Opiskelijalla on vain optio-tilassa oleva opiskeluoikeus Kyse on opiskelijasta, jolta ei löydy muita opiskeluoikeuksia kuin sellaisia, joiden tila on 2='optio'. Opiskeluoikeuden liittyvyys viittaa tietoon jota ei ole Katsotaan että ilmoitettu opiskeluoikeuden liittyvyys viittaa myös tietoon joka on olemassa.

Opiskeluoikeudella on monta myöntäjää Katsotaan onko opiskeluoikeuteen ilmoitettu organisaatio-tietoa erikseen roolilla 1='myöntävä'. Jos on, tämä aiheuttaa sen että opiskeluoikeudella on monta myöntäjää. Lukukausi-ilmoittautumiset Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia. Ilmoittaa tulisi vain oman organisaation lukukausi-ilmoittautumiset. Opintosuoritukset Opintosuoritukselta puuttuu nimi Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole minkäänlaista nimeä, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu arvosana Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole minkäänlaista arvosanaa, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu koulutusala Mikäli tiedoista löytyy opintosuorituksia joihin liittyen ei ole lainkaan koulutusala-tietoa (koulutusala2002 tai opintoala1995, ilmoitetaan tämä puutteena. Opintosuoritukselta (laji: tutkinto puuttuu tutkintonimike/koulutuskoodi Mikäli tutkintolajiselta opintosuoritukselta puuttuu koulutuskoodi, ilmoitetaan tämä puutteena. Opintosuoritukselta puuttuu opiskeluoikeus (AMK Tarkistetaan Ammattikorkeakoulujen osalta. Opintosuoritusten yhteydessä pitää ilmoittaa opiskeluoikeus. Opintosuoritus virheellisellä sisältyvyyden avaintiedolla Mikäli XML-tiedoissa on ilmoitettu opintosuorituksen sisältyvyys, mutta sisaltyvaopintosuoritusavain-tieto ei ole sama kuin mikään varsinainen opintosuorituksen avain-tieto, ilmoitetaan tämä puutteena. Tarkistetaan vain suorituksilta, jotka on suoritettu vuonna 2006 tai sen jälkeen. Opintosuorituksella on monta myöntäjää Katsotaan onko opintosuoritukseen ilmoitettu organisaatio-tietoa erikseen roolilla 1='myöntävä'. Jos on, tämä aiheuttaa sen että opintosuorituksella on monta myöntäjää. Liikkuvuusjaksot Liikkuvuusjakson saapuvan opiskelijan koulutusaste suomalaisessa korkeakoulussa Tutkintaan löytyykö sellaista liikkuvuusjaksoa, jonka suunta on saapuva ja liikkuvuusjakson päättymispäivämäärä on menneisyydessä, jolta puuttuu koulutusaste (opiskeluoikeuden tyyppi -tieto. Liikkuvuusjakson päättymispäivä on varhaisempi kuin alkamispäivä Jos löytyy liikkuvuusjaksoja, joissa päättymispäivä on varhaisempi kuin alkamispäivä, ilmoitetaan tämä puutetietona.

Liikkuvuusjakson liikkuvuusohjelma puuttuu 87 pv tai pidemmältä jaksolta Tarkistetaan liikkuvuusjaksoista, joiden kesto on 87 päivää tai enemmän, puuttuuko liikkuvuusohjelma, ja mikäli puuttuu ja liikkuvuusjakso on alkanut 1.1.2016 tai sen jälkeen, ilmoitetaan puute. Liikkuvuusjakson liikkuvuuden tyyppi puuttuu Tarkistetaan liikkuvuusjaksoista puuttuuko liikkuvuuden tyyppi, ja mikäli puuttuu ja liikkuvuusjakso on alkanut 1.1.2016 tai sen jälkeen, ilmoitetaan puute. SQL-koodi SQL -- OPISKELIJA source select GETDATE( as pvm, '1001' as virhekoodi, 'Opiskelijalla ei ole ollenkaan opiskeluoikeutta, lukukausi-ilmoittautumista tai opintosuoritusta' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain FROM Opiskelija AS a AND a.id NOT IN ( SELECT OpiskelijaID FROM Opiskeluoikeus AND a.id NOT IN ( SELECT OpiskelijaID FROM Opintosuoritus AND a.id NOT IN ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen select GETDATE( as pvm, '1002' as virhekoodi, 'Opiskelijalla ei ole virallista suomalaista hetua tai kansallista oppijanumeroa' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain FROM Opiskelija AS a AND a.henkiloid IN ( SELECT ID FROM Henkilo WHERE Henkilotunnus IS NULL OR Henkilotunnus NOT LIKE ' % ' AND a.kansallinen_op_id IS NULL select GETDATE( as pvm, '1003' as virhekoodi, 'Opiskelijan sukupuolitieto ei täsmää hetun kanssa' as kuvaus, 'opiskelijaavain' as avainsarake, a.avain Expand

, coalesce(a.avain,'#puuttuu#' as opiskelijaavain FROM Opiskelija AS a INNER JOIN Henkilo h ON h.id=a.henkiloid where 1=1 and len(h.henkilotunnus=11 -- on hetu and h.sukupuoliid is not null -- on sp and( ( --nainen cast(substring(h.henkilotunnus,10,1 as int%2=0 and h.sukupuoliid <> (select id from Sukupuoli where Koodi='2' or ( --mies cast(substring(h.henkilotunnus,10,1 as int%2=1 and h.sukupuoliid <> (select id from Sukupuoli where Koodi='1' -- OPISKELUOIKEUS select GETDATE( as pvm, '2001' as virhekoodi, 'Opiskeluoikeuden tila ei muodosta eheää aikajaksoa' as kuvaus FROM Opiskeluoikeus AS a INNER JOIN Op_oikeuteen_liittyva_tila AS b ON b.opiskeluoikeusid=a.id -- On usea AND b.opiskeluoikeusid IN ( SELECT c.opiskeluoikeusid FROM Op_oikeuteen_liittyva_tila AS c GROUP BY c.opiskeluoikeusid HAVING COUNT(*>1 -- Ei viimeinen AND b.alkamispaivamaara < ( SELECT MAX(c.Alkamispaivamaara FROM Op_oikeuteen_liittyva_tila AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid GROUP BY c.opiskeluoikeusid -- Ei seuraajaa -- tai Paattymispaivamaaraa ei asetettu AND( b.paattymispaivamaara NOT IN ( SELECT DATEADD(day,-1,c.Alkamispaivamaara FROM Op_oikeuteen_liittyva_tila AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid OR b.paattymispaivamaara IS NULL select GETDATE( as pvm, '2002' as virhekoodi, 'Opiskeluoikeuden opiskeluoikeusjakso ei muodosta eheää aikajaksoa' as kuvaus

FROM Opiskeluoikeus AS a INNER JOIN Opiskeluoikeusjakso AS b ON b.opiskeluoikeusid=a.id -- On usea AND b.opiskeluoikeusid IN ( SELECT c.opiskeluoikeusid FROM Opiskeluoikeusjakso AS c GROUP BY c.opiskeluoikeusid HAVING COUNT(*>1 -- Ei viimeinen AND b.alkamispaivamaara < ( SELECT MAX(c.Alkamispaivamaara FROM Opiskeluoikeusjakso AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid GROUP BY c.opiskeluoikeusid -- Ei seuraajaa -- tai Paattymispaivamaaraa ei asetettu AND( b.paattymispaivamaara NOT IN ( SELECT DATEADD(day,-1,c.Alkamispaivamaara FROM Opiskeluoikeusjakso AS c WHERE c.opiskeluoikeusid=b.opiskeluoikeusid OR b.paattymispaivamaara IS NULL select GETDATE( as pvm, '2003' as virhekoodi, 'Opiskeluoikeuksien ensisijaisuuksissa päällekkäisyyksiä' as kuvaus, oik1.avain+','+oik2.avain FROM Op_oikeuden_ensisijaisuus AS e1 inner join Opiskeluoikeus oik1 on oik1.id=e1.opiskeluoikeusid inner join Opiskeluoikeus oik2 on oik2.opiskelijaid=oik1.opiskelijaid inner join Op_oikeuden_ensisijaisuus e2 on e2.opiskeluoikeusid=oik2.id -- varmistetaan eri ensisijaisuus AND 1 IN ( CASE -- jos saman oikeuden,... WHEN e1.opiskeluoikeusid=e2.opiskeluoikeusid THEN --...niin eri päivän => ensisijaisuudet ovat eri CASE WHEN e1.alkamispaivamaara<>e2.alkamispaivamaara THEN 1 ELSE 0 END ELSE 1 -- eri oik => ok END -- varmistetaan päällekkäisyys, siten... AND(e1.Paattymispaivamaara BETWEEN e2.alkamispaivamaara AND e2.paattymispaivamaara OR e2.paattymispaivamaara BETWEEN e1.alkamispaivamaara AND e1.paattymispaivamaara --...että e1 sisältää aiemman päivämäärän AND(e1.Alkamispaivamaara<e2.Alkamispaivamaara OR (e1.alkamispaivamaara=e2.alkamispaivamaara AND e1.paattymispaivamaara<e2.paattymispaivamaara

OR (e1.alkamispaivamaara=e2.alkamispaivamaara AND e1.paattymispaivamaara=e2.paattymispaivamaara --bonus: ilmoitetaan oikeudet vain kerran: AND oik1.avain<=oik2.avain select GETDATE( as pvm, '2004' as virhekoodi, 'Opiskeluoikeusjaksolta puuttuu koulutuskoodi' as kuvaus from Opiskeluoikeus AS a inner join Opiskeluoikeusjakso AS b on b.opiskeluoikeusid=a.id inner join Opiskeluoikeuden_tyyppi c on c.id = a.op_oikeuden_tyyppiid where b.tutkintonimikeid is null and c.koodi in ('1', '2', '3', '4', '5', '6', '7' select GETDATE( as pvm, '2005' as virhekoodi, 'Ensisijaisuus puuttuu tutkinto-opiskelijan opiskeluoikeuksista' as kuvaus, 'opiskelijaavain' as avainsarake FROM Opiskelija AS a -- ei niiden opiskeluoikeuksien joukossa joihin liittyy ensisijaisuus AND a.id NOT IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Op_oikeuden_ensisijaisuus e on e.opiskeluoikeusid=o.id -- on tutkintoon johtava opiskeluoikeus AND a.id IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Opiskeluoikeuden_tyyppi k on k.id=o.op_oikeuden_tyyppiid where 1=1 -- NB! Vain yliopistot! --and k.koodi in ('1','2','3','4','5','6','7' and k.koodi in ('2','4','5','6','7' -- opiskeluoikeus ollut voimassa 1.8.2005 tai sen jälkeen --and '2005-08-01' between o.alkamispaivamaara and isnull(o.paattymispaivamaara,'9999-01-01' -- opiskeluoikeus ollut voimassa kuluvana vuonna and cast(year(getdate( as varchar+'-01-01' <= isnull(o.paattymispaivamaara,'9999-01-01' select GETDATE( as pvm, '2006' as virhekoodi, 'Opiskelijalla on vain optio-tilassa oleva opiskeluoikeus' as kuvaus, 'opiskelijaavain' as avainsarake FROM Opiskelija a -- EI niiden joukossa, joilla on muu kuin OPTIO-tilassa oleva opiskeluoikeus

AND a.id NOT IN ( select o2.opiskelijaid from Opiskeluoikeus o2 inner join Op_oikeuteen_liittyva_tila ot2 on ot2.opiskeluoikeusid=o2.id inner join Opiskeluoikeuden_tila t2 on t2.id=ot2.op_oikeuden_tilaid where t2.koodi<>'2'--optio --... mutta on OPTIO-tilassa oleva opiskeluoikeus AND a.id IN ( select o.opiskelijaid from Opiskeluoikeus o inner join Op_oikeuteen_liittyva_tila ot on ot.opiskeluoikeusid=o.id inner join Opiskeluoikeuden_tila t on t.id=ot.op_oikeuden_tilaid where t.koodi='2'--optio -- NB! Käyttää "XML_SA"-tietoja (ei yhteinen tietomalli select GETDATE( as pvm, '2007' as virhekoodi, 'Opiskeluoikeuden liittyvyys viittaa tietoon jota ei ole' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opiskeluoikeus AS a inner join XML_SA.Opiskeluoikeus_Liittyvyys SA on SA.Opiskeluoikeus_Id=a.ID where SA.liittyvaOpiskeluoikeusAvain not in ( SELECT b.avain FROM Opiskeluoikeus b select GETDATE( as pvm, '2008' as virhekoodi, 'Opiskeluoikeudella on monta myöntäjää' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opiskeluoikeus a inner join Op_oikeuden_organisaatio ag on ag.opiskeluoikeusid=a.id inner join Organisaation_rooli as gr on gr.id=ag.organisaation_rooliid where gr.koodi='1' --myöntävä group by a.opiskelijaid having COUNT(*>1 -- LUKUKAUSI-ILMOITTAUTUMINEN select GETDATE( as pvm, '3001' as virhekoodi, 'Oppilaitoksella muiden korkeakoulujen lukukausi-ilmoittautumisia' as kuvaus, 'opiskelijaavain # opiskseluoikeusavain' as avainsarake, substring(avain, (charindex('#',avain+1, (len(avain - (charindex('#', reverse(avain + (charindex('#',avain from Lukukausi_ilmoittautuminen a inner join Organisaatio as b on a.organisaatioid = b.id and b.koodi not in (select OrganisaatioKoodi from Yhteiset.Asetukset.Instanssit where db = 'CSC'

-- OPINTOSUORITUS select GETDATE( as pvm, '4001' as virhekoodi, 'Opintosuoritukselta puuttuu nimi' as kuvaus FROM Opintosuoritus AS a WHERE a.nimi IS NULL AND a.avain NOT IN ( select b.avain from Kieliversio b where b.ominaisuusid in ( select c.id from Ominaisuus c where c.nimi='nimi' and c.kasiteid in ( select d.id from Kasite d where d.nimi='opintosuoritus' select GETDATE( as pvm, '4002' as virhekoodi, 'Opintosuoritukselta puuttuu arvosana' as kuvaus FROM Opintosuoritus AS a WHERE a.arvosanaid IS NULL select GETDATE( as pvm, '4003' as virhekoodi, 'Opintosuoritukselta puuttuu koulutusala' as kuvaus FROM Opintosuoritus a inner join Opintosuorituksen_laji sl on sl.id=a.opintosuorituksen_lajiid WHERE a.id NOT IN ( SELECT OpintosuoritusID FROM Op_suor_koulutusala AND sl.koodi=2 -- muu opintosuoritus select GETDATE( as pvm, '4005' as virhekoodi, 'Opintosuoritukselta (laji: tutkinto puuttuu tutkintonimike/koulutuskoodi' as kuvaus FROM Opintosuoritus AS a WHERE a.tutkintonimikeid IS NULL AND a.opintosuorituksen_lajiid = ( SELECT ID FROM Opintosuorituksen_laji WHERE Koodi='1' --Tutkinto -- jos AMK: select GETDATE( as pvm

, '4006' as virhekoodi, 'Opintosuoritukselta puuttuu opiskeluoikeus' as kuvaus, a.avain from opintosuoritus a where a.opiskeluoikeusid is null -- NB! Käytetään XML_SA-taulua hyväksi (_Id =.id -- Katsotaan vain vuoden 2006 ja jälkeen suoritettuja (bologna jne. select GETDATE( as pvm, '4007' as virhekoodi, 'Opintosuoritus virheellisellä sisältyvyyden avaintiedolla' as kuvaus from Opintosuoritus AS a inner join XML_SA.Opintosuoritus_Sisaltyvyys SA on SA.Opintosuoritus_Id=a.ID where SA.sisaltyvaOpintosuoritusAvain not in ( SELECT b.avain FROM Opintosuoritus b and YEAR(a.Suorituspaivamaara >= 2006 -- NB! Käyttää "XML_SA"-tietoja (ei yhteinen tietomalli select GETDATE( as pvm, '4008' as virhekoodi, 'Opintosuorituksella on monta myöntäjää' as kuvaus p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain from Opintosuoritus a inner join Op_suorituksen_organisaatio ag on ag.opintosuoritusid=a.id inner join Organisaation_rooli as gr on gr.id=ag.organisaation_rooliid where gr.koodi='1' --myöntävä group by a.opiskelijaid having COUNT(*>1 -- -- LIIKKUVUUSJAKSOT select GETDATE( as pvm, '5001' as virhekoodi, 'Liikkuvuusjakson saapuvan opiskelijan koulutusaste suomalaisessa korkeakoulussa' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a INNER JOIN Liikkuvuuden_suunta AS ks on ks.id=a.liikkuvuuden_suuntaid WHERE ks.koodi='2' --Saapuva AND a.opiskeluoikeuden_tyyppiid IS NULL --"koulutusaste" puuttuu AND GETDATE( > coalesce(a.paattymispaivamaara,'9999-9-9' --päättynyt menneisyydessä select GETDATE( as pvm, '5002' as virhekoodi

, 'Liikkuvuusjakson päättymispäivä on varhaisempi kuin alkamispäivä' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain -- ++, a.db, a.alkamispaivamaara, a.paattymispaivamaara, DATEDIFF(day,a.alkamispaivamaara,coalesce(a.paattymispaivamaara,'9999-9-9' FROM Liikkuvuusjakso AS a AND a.paattymispaivamaara < a.alkamispaivamaara select GETDATE( as pvm, '5003' as virhekoodi, 'Liikkuvuusjakson liikkuvuusohjelma puuttuu 87 pv tai pidemmältä jaksolta' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a -- Liikkuvuusohjelma puuttuu AND a.liikkuvuusohjelmaid is null -- 87 pv tai enemmän kestänyt AND DATEDIFF(day,a.Alkamispaivamaara,coalesce(a.Paattymispaivamaara,'9999-9-9' >= 87 -- ei kuitenkaan liian varhaisia (2016 tai jälkeen *alkaneet* (vs voimassa olleet AND coalesce(a.alkamispaivamaara,'1900-1-1' >= '2016-01-01' select GETDATE( as pvm, '5004' as virhekoodi, 'Liikkuvuusjakson liikkuvuuden tyyppi puuttuu' as kuvaus, 'liikkuvuusjaksoavain' as avainsarake p.id=a.opiskelijaid,'#puuttuu#' as opiskelijaavain FROM Liikkuvuusjakso AS a -- Liikkuvuuden tyyppi puuttuu AND a.liikkuvuuden_tyyppiid is null -- ei kuitenkaan liian varhaisia (2016 tai jälkeen *alkaneet* (vs voimassa olleet

AND coalesce(a.alkamispaivamaara,'1900-1-1' >= '2016-01-01'