55 op laskennan poimintakuvaus
|
|
- Teuvo Pesonen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 55 op laskennan poimintakuvaus --- LUONNOS ---- Kerätään ensin perusjoukko, opiskelijat, pisteet, läsnäolotiedot omina osajoukkoina Virran tiedoista ja nämä osat yhdistellään jokaisen opiskelijan vuosijanaksi jotta hänen kohdalla voi suorittaa tilastovuosittain pankkilaskelmat vuosi vuodelta opiskelujen alusta. Lyhyt kuvaus kokonaislaskentaprosessista: Lasketaan pisteet Haetaan läsnäolotiedot Haetaan opiskeluoikeustiedot Poimitaan keväällä aloittaneet Poimitaan kaikki tilastovuoden uudet opiskelijat Alustetaan pankkitiedot Lasketaan kevällä aloittaneiden >= 27 op keränneet Lasketaan kumulatiivinen pankkitili Pankkisaldot kumulatiivisen laskennan jälkeen Kerätään yhteen opiskelijat Loppuraportti ylläolevasta per tilastovuosi Tilastovuosi: 20.9.Tilastovuosi Edellinen lukuvuosi: 1.8.tilastovuosi tilastovuosi Aloittanut keväällä: Tilastovuoden aloituspäivämäärän kuukausi <= 7 Raportti Extravipusessa Esimerkki pankkilaskelma Tarkistustiedostot Mittarit Kysymykset ja vastaukset 1. Perusjoukko Opintopisteet Kaikki Virta lajin 2 (=muu opintosuoritus on valmiiksi poimittu näkymässä jossa opintopisteille poimitaan hyväksymispäivämäärä jos su oritukselle sellainen on, muuten päivämäärä on suorituksen päivämäärää. Pisteet lasketaan lukuvuosittain (edellinen lukuvuosi : syys 1.8.TILASTOVUOSI TILASTOVUOSI-1 kevät 1.1.TILASTOVUOSI TILASTOVUOSI Opiskelijoille joille tälle ajanjaksolle olemassa aktiivinen alempi/ylempi korkeakoulututkinto oikeus (opiskeluoikeus tyyppiä 2, 4 tai AMK opiskelija (opiskeluoikeustyyppi 1 ja tältä ajalta kertyneet opintopisteet per lukukausi ja niiden summa. Vain lehtitason suorituksia. Näkymä (View kaikista Virran lajin 2 (muu suoritus josta poimitaan opintosuoritukselle sen hyväksilukupäivämäärä, jos sellainen on, muuten poimitaan suorituspäivämäärä
2 CREATE VIEW [Opintosuoritus_pvm] AS Opintopisteiden hyväksilukupvm näkymä Expand source SELECT CASE WHEN OH.Hyvaksilukupaivamaara IS NOT NULL THEN OH.Hyvaksilukupaivamaara ELSE OS.Suorituspaivamaara, END AS suorpvm OS.Suorituspaivamaara, OH.Hyvaksilukupaivamaara, OS.id AS opintosuoritusid, OS.OpiskelijaID, OS.Laajuus, OL.Koodi, OS.db FROM WHERE Opintosuoritus OS JOIN Opintosuorituksen_laji OL ON OL.id = OS.Opintosuorituksen_lajiID LEFT JOIN Opsuorituksen_hyvaksiluku OH ON OH.OpintosuoritusID = OS.id OL.Koodi = '2' Taulu johon kerätään opintopisteet lukukausittain (edellinen syys ja kevät tilastovuosittain per opiskelija: Pisteet55 Expand CREATE TABLE [Pisteet55]( source [oppilaitos] [varchar](20 NOT NULL, [oppilaitostunnus] [varchar](10 NOT NULL, [hetu] [varchar](11 NOT NULL, [opiskelijaavain] [varchar](100 NOT NULL, [opiskeluoikeusavain] [varchar](100 NULL, [vuosi] [int] NOT NULL, [edellinen_lv_syys_pisteet] [int] NULL CONSTRAINT [DF_Pisteet55_edellinen_lv_syys_pisteet] DEFAULT ((0, [edellinen_lv_kevat_pisteet] [int] NULL CONSTRAINT [DF_Pisteet55_edellinen_lv_kevat_pisteet] DEFAULT ((0, [summa] [int] NULL CONSTRAINT [DF_Pisteet55_summa] DEFAULT ((0, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_Pisteet55_reg_datum] DEFAULT (getdate( Alkuun
3 AMK pisteet per tilastovuosi per korkeakoulu AMK Opintopisteet per lukuvuosi varchar(4 varchar(20 Expand source IF OBJECT_ID('tempdb..#param' IS NOT NULL BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Oppilaitos TRUNCATE TABLE #param INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #tkopisk ( oppilaitostunnus varchar(6, hetu varchar(11, -- Henkilötunnus opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, opes int, -- Edellisenä syyslukukautena ( opintopisteiden määrä opek int -- Edellisenä kevätlukukautena ( opintopisteiden määrä CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelijaavain ON #tkopisk (opiskelijaavain
4 TRUNCATE TABLE #tkopisk INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeusavain,opiskelu oikeus_id SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id, opiskeluoikeusavain = oo.avain, opiskeluoikeus_id = oo.id FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' --aktiivinen p.id IN ( SELECT OS.OpiskelijaID FROM Opintosuoritus_pvm OS WHERE 1 = 1 os.db OS.suorpvm BETWEEN cast(cast(@vuosi as int-1 AS varchar+'-08-01' cast(@vuosi AS varchar +'-07-31' OS.suorpvm >= OO.Alkamispaivamaara oo.id NOT IN (SELECT opiskeluoikeus_id FROM #tkopisk oo.id NOT IN (SELECT OOP.id FROM Opiskeluoikeus OOP WHERE OOP.Paattymispaivamaara <= cast(cast(@vuosi as int-1 AS varchar+'-08-01' OOP.db INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeusavain,opiskelu oikeus_id SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain
5 FROM, opiskelija_id = p.id, opiskeluoikeusavain = oo.avain, opiskeluoikeus_id = oo.id Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' --aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' p.id NOT IN ( SELECT OS.OpiskelijaID FROM Opintosuoritus_pvm OS WHERE 1 = 1 os.db OS.suorpvm BETWEEN cast(cast(@vuosi as int-1 AS varchar+'-08-01' cast(@vuosi AS varchar +'-07-31' -- Tässä lisäys Opiskeluoikeuden alkamisen jälkeen OS.suorpvm >= OO.Alkamispaivamaara oo.id NOT IN (SELECT opiskeluoikeus_id FROM #tkopisk oo.id NOT IN (SELECT OOP.id FROM Opiskeluoikeus OOP WHERE OOP.Paattymispaivamaara <= cast(cast(@vuosi as int-1 AS varchar+'-08-01' OOP.db IF OBJECT_ID('tempdb..#pisteet' IS NOT NULL BEGIN TRUNCATE TABLE #pisteet DROP TABLE #pisteet END CREATE TABLE #pisteet (
6 opiskelija_id int NOT NULL, opiskeluoikeus_id int, opintosuoritus_id int NOT NULL, laajuus decimal(18,6 NOT NULL, suoritus_pvm date NOT NULL, es bit, ek bit 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] INSERT INTO #pisteet (opiskelija_id,opiskeluoikeus_id,opintosuoritus_id,laajuus,suoritus_pvm,es,ek SELECT opiskelija_id = s.opiskelijaid,opiskeluoikeus_id = s.opiskeluoikeusid,opintosuoritus_id = s.id,laajuus = s.laajuus,suoritus_pvm = OS.suorpvm,es = CASE WHEN OS.suorpvm BETWEEN CAST(cast(@vuosi as int-1 AS varchar+'-08-01' CAST(cast(@vuosi AS int-1 AS varchar+'-12-31' THEN 1 ELSE 0 END,ek = CASE WHEN OS.suorpvm BETWEEN CAST(@vuosi AS varchar+'-01-01' CAST(@vuosi AS varchar+'-07-31' THEN 1 ELSE 0 END FROM Opintosuoritus s INNER JOIN Opintosuoritus_pvm OS ON OS.opintosuoritusid = s.id WHERE 1=1 s.db OS.db s.id NOT IN (SELECT ss.opintosuoritusid FROM Op_suor_sisaltyvyys ss WHERE ss.db SET opes=( SELECT cast(round(sum( CASE WHEN s.es = 1 THEN s.laajuus ELSE 0 END,0 AS int FROM #pisteet s WHERE s.opiskelija_id=t.opiskelija_id s.opiskeluoikeus_id=t.opiskeluoikeus_id GROUP BY s.opiskelija_id WHERE opes IS NULL
7 SET opek=( SELECT cast(round(sum( CASE WHEN s.ek = 1 THEN s.laajuus ELSE 0 END,0 AS int FROM #pisteet s WHERE s.opiskelija_id=t.opiskelija_id s.opiskeluoikeus_id=t.opiskeluoikeus_id GROUP BY s.opiskelija_id WHERE opek IS NULL set opes=0 WHERE opes IS NULL set opek=0 WHERE opek IS NULL -- opiskeluoikeusavain SET opiskeluoikeus_id = o.id, opiskeluoikeusavain = o.avain INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id WHERE 1=1 o.db lt.db oj.db -- tutkinto-tyyppinen ot.koodi IN ('1' kt.koodi IN ('1' --aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' SELECT AS oppilaitos,t.oppilaitostunnus,coalesce(t.hetu,'' "hetu", T.opiskelijaAvain, T.opiskeluoikeusAvain,@vuosi AS vuosi
8 ,coalesce(t.opes,0 "edellinen_lv_syys_pisteet" -- ( ,coalesce(T.opek,0 "edellinen_lv_kevat_pisteet" -- ( ,(T.opes + T.opek "Summa" -- opes + opek DROP TABLE #tkopisk DROP TABLE #pisteet DROP TABLE #param
9 YO Opintopisteet per lukuvuosi varchar(4 varchar(20 Expand source IF OBJECT_ID('tempdb..#param' IS NOT NULL BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Yliopisto INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #tkopisk ( oppilaitostunnus varchar(6, hetu varchar(11, -- Henkilötunnus opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, opes int, -- Edellisenä syyslukukautena ( opintopisteiden määrä opek int -- Edellisenä kevätlukukautena ( opintopisteiden määrä CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelijaavain ON #tkopisk
10 (opiskelijaavain INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id SELECT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id WHERE 1=1 h.db p.db -- tutkinto-oikeus p.id IN ( SELECT oo.opiskelijaid FROM Opiskeluoikeus oo INNER JOIN Opiskeluoikeuden_tyyppi ot on ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 oo.db lt.db -- tutkinto-tyyppinen opiskeluoikeus ot.koodi IN ('2','4' kt.koodi IN ('1' -- aktiivinen p.id in ( SELECT FROM OS.OpiskelijaID Opintosuoritus_pvm OS JOIN Opiskeluoikeus OO ON OO.OpiskelijaID = OS.OpiskelijaID WHERE 1 = 1 os.db OS.suorpvm BETWEEN cast(cast(@vuosi as int-1 AS varchar+'-08-01' cast(@vuosi AS varchar +'-07-31' OS.suorpvm >= oo.alkamispaivamaara p.id NOT IN (SELECT opiskelija_id FROM #tkopisk INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id SELECT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id WHERE 1=1 h.db p.db -- tutkinto-oikeus
11 p.id IN ( SELECT oo.opiskelijaid FROM Opiskeluoikeus oo INNER JOIN Opiskeluoikeuden_tyyppi ot on ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 oo.db lt.db -- tutkinto-tyyppinen opiskeluoikeus ot.koodi IN ('2','4' kt.koodi IN ('1' -- aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' oo.id NOT IN (SELECT OOP.id FROM Opiskeluoikeus OOP WHERE OOP.Paattymispaivamaara <= cast(cast(@vuosi as int-1 AS varchar+'-08-01' OOP.db p.id NOT IN ( SELECT FROM OS.OpiskelijaID Opintosuoritus_pvm OS JOIN Opiskeluoikeus OO ON OO.OpiskelijaID = OS.OpiskelijaID WHERE 1 = 1 os.db OS.suorpvm BETWEEN cast(cast(@vuosi as int-1 AS varchar+'-08-01' cast(@vuosi AS varchar +'-07-31' OS.suorpvm >= oo.alkamispaivamaara p.id NOT IN (SELECT opiskelija_id FROM #tkopisk IF OBJECT_ID('tempdb..#pisteet' IS NOT NULL BEGIN TRUNCATE TABLE #pisteet DROP TABLE #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, es bit, ek bit
12 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] INSERT INTO #pisteet (opiskelija_id,opiskeluoikeus_id,opintosuoritus_id,laajuus,suoritus_pvm,es,ek SELECT opiskelija_id = s.opiskelijaid,opiskeluoikeus_id = s.opiskeluoikeusid,opintosuoritus_id = s.id,laajuus = s.laajuus,suoritus_pvm = OS.suorpvm,es = CASE WHEN OS.suorpvm BETWEEN CAST(cast(@vuosi as int-1 AS varchar+'-08-01' CAST(cast(@vuosi AS int-1 AS varchar+'-12-31' THEN 1 ELSE 0 END,ek = CASE WHEN OS.suorpvm BETWEEN CAST(@vuosi AS varchar+'-01-01' CAST(@vuosi AS varchar+'-07-31' THEN 1 ELSE 0 END FROM Opintosuoritus s INNER JOIN Opintosuoritus_pvm OS ON OS.opintosuoritusid = s.id WHERE 1=1 s.db OS.db s.id NOT IN (SELECT ss.opintosuoritusid FROM Op_suor_sisaltyvyys ss WHERE ss.db SET opes=( SELECT cast(round(sum( CASE WHEN s.es = 1 THEN s.laajuus ELSE 0 END,0 AS int FROM #pisteet s WHERE s.opiskelija_id=t.opiskelija_id -- and s.opiskeluoikeus_id=t.opiskeluoikeus_id GROUP BY s.opiskelija_id WHERE opes IS NULL SET opek=( SELECT cast(round(sum( CASE WHEN s.ek = 1 THEN s.laajuus ELSE 0 END,0 AS int FROM #pisteet s WHERE s.opiskelija_id=t.opiskelija_id -- and s.opiskeluoikeus_id=t.opiskeluoikeus_id GROUP BY s.opiskelija_id
13 WHERE opek IS NULL set opes=0 WHERE opes IS NULL set opek=0 WHERE opek IS NULL -- opiskeluoikeusavain SET opiskeluoikeus_id = o.id, opiskeluoikeusavain = o.avain INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id WHERE 1=1 o.db lt.db oj.db -- tutkinto-tyyppinen ot.koodi IN ('2','4' kt.koodi IN ('1' --aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' SELECT AS oppilaitos,t.oppilaitostunnus,coalesce(t.hetu,'' "hetu", T.opiskelijaAvain, T.opiskeluoikeusAvain,@vuosi AS vuosi,coalesce(t.opes,0 "edellinen_lv_syys_pisteet" -- ( ,coalesce(T.opek,0 "edellinen_lv_kevat_pisteet" -- ( ,(T.opes + T.opek "Summa" -- opes + opek
14 DROP TABLE #tkopisk DROP TABLE #pisteet DROP TABLE #param
15 Alkuun 2. Perusjoukko Läsnäolot Lukuvuosi-ilmoittaumiset (läsnä/poissa/ei kirjoilla, 1/2/0. Poissa (2 sisältää sekä 2=Poissa, 3=Poissa ei kuluta opintoaikaa syys kevät syys 1.8.TILASTOVUOSI TILASTOVUOSI-1 (edellinen_syys_olo 1.1.TILASTOVUOSI TILASTOVUOSI(kevat_olo 1.8.TILASTOVUOSI TILASTOVUOSI(syys_olo Opiskelijoille joilla on ollut aikajaksolla aktiivinen opiskeluoikeus ja jolta löytyy läsnolotietoja. Taulu johon kerätään läsnäolot syys, kevät ja edellinen syys tilastovuosittain per opiskelija Lasnaolo55 Expand CREATE TABLE [Lasnaolo55]( source [oppilaitos] [varchar](20 NOT NULL, [oppilaitostunnus] [varchar](10 NOT NULL, [hetu] [varchar](11 NOT NULL, [opiskelijaavain] [varchar](100 NOT NULL, [opiskeluoikeusavain] [varchar](100 NULL, [vuosi] [int] NOT NULL, [syys_olo] [smallint] NULL CONSTRAINT [DF_Lasnaolo55_syys_olo] DEFAULT ((0, [kevat_olo] [smallint] NULL CONSTRAINT [DF_LasnaOlo55_kevat_olo] DEFAULT ((0, [edellinen_syys_olo] [smallint] NULL CONSTRAINT [DF_Lasnaolo55_edellinen_syys_olo] DEFAULT ((0, [uusi_opisk_kevat] [smallint] NULL CONSTRAINT [DF_Lasnaolo55_uusi_opisk_kevat] DEFAULT ((0, [uusi_opisk] [smallint] NULL CONSTRAINT [DF_Lasnaolo55_uusi_opisk] DEFAULT ((0, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_Lasnaolo55_reg_datum] DEFAULT (getdate( Alkuun Läsnäolotiedot per tilastovuosi per korkeakoulu AMK Läsnäolot AMK varchar(4 varchar(20 Expand source IF OBJECT_ID('tempdb..#param' IS NOT NULL
16 BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Yliopisto INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #tkopisk ( oppilaitostunnus varchar(6, hetu varchar(11, -- Henkilötunnus opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, olotamm smallint, -- Ilmoittautunut keväällä olosyys smallint, -- Ilmoittautunut syksyllä edellinen_syysolo smallint -- Edellinen syysolotilanne TRUNCATE TABLE #tkopisk CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelijaavain ON #tkopisk (opiskelijaavain CREATE NONCLUSTERED INDEX IX_tkopisk_opiskeluoikeus_id ON #tkopisk (opiskeluoikeus_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskeluoikeusavain ON #tkopisk (opiskeluoikeusavain INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeus_id,opiskeluoi keusavain SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param
17 , hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id, opiskeluoikeus_id = oo.id, opiskeluoikeusavain = oo.avain FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid = oo.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id = lt.op_oikeuden_tilaid WHERE 1 = 1 h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' oo.id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int as varchar+'-12-31' -- Viimeinen tilaisuus tulla mukaan perusjoukkoon INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeus_id,opiskeluoi keusavain SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id, opiskeluoikeus_id = oo.id, opiskeluoikeusavain = oo.avain FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid
18 WHERE 1=1 oo.id NOT IN (SELECT opiskeluoikeus_id AS ID FROM #tkopisk -- Ei edellisessä h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen -- cast(cast(@vuosi as int AS varchar + '-01-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' -- jolla on läsnäoloja oo.id IN ( SELECT OpiskeluoikeusID AS ID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-01-01' cast(@vuosi AS varchar +'-12-31' -- Läsnäolotiedot -- olotamm :: kevään ilmo tilanne set T.olotamm = 1 WHERE T.opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1' -- läsnä l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar +'-01-01' cast(@vuosi AS varchar +'-07-31' and T.olotamm is null ;
19 set T.olotamm = 2 WHERE T.opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('2','3' -- poissa, poissa ei kuluta -- " " l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-01-01' cast(@vuosi AS varchar + '-07-31' and T.olotamm is null ; -- ei ilmoa keväällä, nollaksi set T.olotamm=0 WHERE T.olotamm is null ; -- olosyys set T.olosyys = 1 WHERE T.opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1' -- läsnä l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-08-01' cast(@vuosi AS varchar + '-12-31' and T.olosyys is null ; set T.olosyys = 2 WHERE T.opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('2','3' -- poissa, poissa ei kuluta
20 l.alkamispaivamaara BETWEEN AS varchar + '-08-01' cast(@vuosi AS varchar + '-12-31' and T.olosyys is null ; -- ei ilmoa syksyllä, nollaksi set T.olosyys=0 WHERE T.olosyys is null ; -- edellinen olosyys set T.edellinen_syysolo = 1 WHERE opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1' -- läsnä l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int-1 as varchar+'-12-31' and T.edellinen_syysolo is null ; set T.edellinen_syysolo = 2 WHERE opiskeluoikeus_id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('2','3' -- poissa, poissa ei kuluta l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int-1 as varchar+'-12-31' and T.edellinen_syysolo is null ; -- ei ilmoa syksyllä, nollaksi set T.edellinen_syysolo=0
21 WHERE T.edellinen_syysolo is null ; SELECT AS oppilaitos, T.oppilaitostunnus, COALESCE(T.hetu,'' "hetu", T.opiskelijaAvain, AS vuosi, COALESCE(T.olosyys,0 "syys_olo", COALESCE(T.olotamm,0 "kevat_olo", T.edellinen_syysolo "edellinen_syys_olo" WHERE (T.olotamm + T.olosyys + COALESCE(T.edellinen_syysolo,0 > 0 DROP TABLE #tkopisk DROP TABLE #param
22 YO Läsnäolot YO Expand source varchar(4 varchar(20 IF OBJECT_ID('tempdb..#param' IS NOT NULL BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Yliopisto INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #tkopisk ( oppilaitostunnus varchar(6, hetu varchar(11, -- Henkilötunnus opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, olotamm smallint, -- Ilmoittautunut keväällä olosyys smallint, -- Ilmoittautunut syksyllä edellinen_syysolo smallint -- Edellinen syysolotilanne
23 CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelijaavain ON #tkopisk (opiskelijaavain INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id SELECT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id WHERE 1=1 h.db p.db -- tutkinto-oikeus p.id IN ( SELECT oo.opiskelijaid FROM Opiskeluoikeus oo INNER JOIN Opiskeluoikeuden_tyyppi ot on ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 oo.db lt.db -- tutkinto-tyyppinen opiskeluoikeus ot.koodi IN ('2','4' kt.koodi IN ('1' -- aktiivinen p.id in ( -- ja jolla läsnäoloja SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt on lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1','2','3' l.db l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int AS varchar+'-12-31' p.id NOT IN (SELECT opiskelija_id FROM #tkopisk -- opiskeluoikeusavain SET opiskeluoikeus_id = o.id, opiskeluoikeusavain = o.avain INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id
24 INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id WHERE 1=1 o.db lt.db oj.db -- tutkinto-tyyppinen ot.koodi IN ('2','4' kt.koodi IN ('1' --aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' o.opiskelijaid in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt on lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1','2','3' l.db l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int AS varchar+'-12-31' -- Läsnäolotiedot SET olotamm = 1 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1' --läsnä l.db -- Esim l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar +'-01-01' cast(@vuosi AS varchar +'-07-31' olotamm is null set olotamm = 2 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi in ('2','3' --poissa, poissa ei kuluta l.db
25 -- Esim l.alkamispaivamaara BETWEEN AS varchar +'-01-01' AS varchar +'-07-31' and olotamm is null -- ei ilmoa keväällä, tyhjäksi set olotamm = 0 WHERE olotamm is null -- olosyys :: syksyn ilmo tilanne set olosyys= 1 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1' --läsnä l.db -- Esim l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-08-01' cast(@vuosi AS varchar + '-12-31' olosyys is null set olosyys = 2 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi in ('2','3' --poissa, poissa ei kuluta l.db -- Esim l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-08-01' cast(@vuosi AS varchar + '-12-31' olosyys is null -- edellinen olosyys set edellinen_syysolo = 1
26 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1' -- läsnä l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int-1 as varchar+'-12-31' and edellinen_syysolo is null set edellinen_syysolo = 2 WHERE opiskelija_id in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l inner join Lukukausi_ilm_tila lt on lt.id=l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('2','3' -- poissa, poissa ei kuluta l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int-1 as varchar+'-12-31' and edellinen_syysolo is null -- ei ilmoa syksyllä, nollaksi set edellinen_syysolo=0 WHERE edellinen_syysolo is null SELECT AS oppilaitos, T.oppilaitostunnus, COALESCE(T.hetu,'' "hetu", T.opiskelijaAvain, AS vuosi, COALESCE(T.olosyys,0 "syys_olo", COALESCE(T.olotamm,0 "kevat_olo", T.edellinen_syysolo "edellinen_syys_olo"
27 WHERE (T.olotamm + T.olosyys + COALESCE(T.edellinen_syysolo,0 > 0 DROP TABLE #tkopisk
28 DROP TABLE #param Alkuun 3. Perusjoukko Opiskeluoikeudet Ajanjaksoille syys kevät 1.8.TILASTOVUOSI TILASTOVUOSI TILASTOVUOSI TILASTOVUOSI Poimintaan opiskeluoikeuden alkamis päivämäärä ja opiskelujen aloituspäivä ensimmäisen läsnäolotiedon mukaan. Lisäksi opiskeluoikeusjaksosta Tilastokeskuksen 6-numeroinen tutkinto koodi. Taulu johon kerätään opiskeluoikeudet tilastovuosittain per opiskelija: Opiskeluoikeus55 Expand CREATE TABLE [Opiskeluoikeus55]( source [oppilaitos] [varchar](20 NOT NULL, [oppilaitostunnus] [varchar](10 NOT NULL, [hetu] [varchar](11 NOT NULL, [opiskelijaavain] [varchar](100 NOT NULL, [opiskeluoikeusavain] [varchar](100 NULL, [vuosi] [int] NOT NULL, [tila] [smallint] NULL, [lo_aloituspvm] [date] NULL, [oo_aloituspvm] [date] NULL, [Tkkoodi] [varchar](10 NULL, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_Opiskeluoikeus55_reg_datum] DEFAULT (getdate( Opiskeluoikeudet AMK varchar(4 varchar(20 Expand source IF OBJECT_ID('tempdb..#param' IS NOT NULL BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END
29 CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Oppilaitos TRUNCATE TABLE #param INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #Aloittanut ( oid int, minalkamispaivamaara date, LAlkamispaivamaara date, OAlkamispaivamaara date, opiskelija_id int not null CREATE TABLE #Min_aloituspvm ( oid int, alk_pvm date CREATE TABLE #tkopisk ( oppilaitostunnus varchar(6, hetu varchar(11, opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, tila smallint, lo_aloituspvm date, oo_aloituspvm date, Tkkoodi varchar(10 CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskeluoikeus_id ON #tkopisk (opiskeluoikeus_id
30 INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeus_id,opiskeluoi keusavain, oo_aloituspvm SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id, opiskeluoikeus_id = oo.id, opiskeluoikeusavain = oo.avain, oo_aloituspvm = oo.alkamispaivamaara FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid = oo.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id = lt.op_oikeuden_tilaid WHERE 1 = 1 h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' -- jolla on läsnäoloja oo.id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int as varchar+'-12-31' -- Viimeinen tilaisuus tulla mukaan perusjoukkoon INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id,opiskeluoikeus_id,opiskeluoi keusavain, oo_aloituspvm SELECT DISTINCT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id, opiskeluoikeus_id = oo.id, opiskeluoikeusavain = oo.avain
31 , oo_aloituspvm = oo.alkamispaivamaara FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id INNER JOIN Opiskeluoikeus oo ON oo.opiskelijaid = p.id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 oo.id NOT IN (SELECT opiskeluoikeus_id FROM #tkopisk -- Ei edellisessä h.db p.db oo.db lt.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen -- cast(cast(@vuosi as int AS varchar + '-01-01' BETWEEN lt.alkamispaivamaara coalesce(lt.paattymispaivamaara,' ' -- jolla on läsnäoloja oo.id IN ( SELECT OpiskeluoikeusID AS ID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-01-01' cast(@vuosi AS varchar +'-12-31' -- opiskeluoikeusavain SET tila = 1, oo_aloituspvm = oj.alkamispaivamaara, Tkkoodi = tn.koodi INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id INNER JOIN Tutkintonimike tn on tn.id = oj.tutkintonimikeid WHERE 1 = 1 o.db
32 lt.db oj.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' -- jolla on läsnäoloja o.id IN ( SELECT OpiskeluoikeusID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int as varchar+'-12-31' -- opiskeluoikeusavain SET tila = 1, oo_aloituspvm = oj.alkamispaivamaara, Tkkoodi = tn.koodi INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id INNER JOIN Tutkintonimike tn on tn.id = oj.tutkintonimikeid WHERE 1=1 o.db lt.db oj.db ot.koodi IN ('1' -- tutkinto-oikeus kt.koodi IN ('1' -- aktiivinen -- cast(cast(@vuosi as int AS varchar + '-01-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' -- jolla on läsnäoloja o.id IN ( SELECT OpiskeluoikeusID AS ID
33 FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt ON lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE l.db lt.koodi IN ('1','2','3' l.alkamispaivamaara BETWEEN cast(@vuosi AS varchar + '-01-01' cast(@vuosi AS varchar +'-12-31' TRUNCATE TABLE #Aloittanut INSERT INTO #Aloittanut (oid, minalkamispaivamaara, LAlkamispaivamaara, OAlkamispaivamaara,opiskelija_id SELECT oo.id, CASE WHEN MIN(L.Alkamispaivamaara >= OO.Alkamispaivamaara THEN MIN(L.Alkamispaivamaara ELSE OO.Alkamispaivamaara END AS minalkamispaivamaara,l.alkamispaivamaara AS LAlkamispaivamaara,oo.Alkamispaivamaara AS OAlkamispaivamaara, o.id FROM dbo.henkilo H JOIN dbo.opiskelija O ON O.HenkiloID = H.ID JOIN dbo.opiskeluoikeus OO ON OO.OpiskelijaID = O.ID JOIN dbo.opiskeluoikeuden_tyyppi ot on ot.id=oo.op_oikeuden_tyyppiid JOIN dbo.lukukausi_ilmoittautuminen L ON L.OpiskeluoikeusID = OO.ID JOIN dbo.lukukausi_ilm_tila LT ON LT.ID = L.Lukukausi_ilmoittautumisen_tilaID WHERE OO.id IN (SELECT opiskeluoikeus_id FROM #tkopisk h.db o.db oo.db L.db LT.Koodi IN ('1' ot.koodi IN ('1' GROUP BY L.Alkamispaivamaara, oo.alkamispaivamaara, oo.id, o.id TRUNCATE TABLE #Min_aloituspvm INSERT INTO #Min_aloituspvm (oid, alk_pvm SELECT oid, MIN(minAlkamispaivamaara As alk_pvm FROM #Aloittanut GROUP BY oid CREATE TABLE #Min_aloituspvm_siirto ( oid int, alk_pvm date
34 INSERT INTO #Min_aloituspvm_siirto (oid, alk_pvm SELECT MA.oid, CASE WHEN MA.alk_pvm >= OO.Siirtopaivamaara THEN OO.Siirtopaivamaara ELSE MA.alk_pvm END AS alk_pvm FROM #Min_aloituspvm MA JOIN dbo.opiskeluoikeus OO ON MA.oid = OO.id oo.db WHERE OO.Alkamispaivamaara <= cast(@vuosi AS varchar + '-12-31' UPDATE #Min_aloituspvm SET alk_pvm = MT.alk_pvm FROM #Min_aloituspvm_siirto MT WHERE #Min_aloituspvm.oid = MT.oid SET lo_aloituspvm = M.alk_pvm join Opiskeluoikeus o on o.opiskelijaid=t.opiskelija_id join #Min_aloituspvm M ON M.oid = o.id WHERE o.db set T.lo_aloituspvm = T.oo_aloituspvm WHERE T.oo_aloituspvm > T.lo_aloituspvm SELECT AS oppilaitos, T.oppilaitostunnus, COALESCE(T.hetu,'' "hetu", T.opiskelijaAvain, AS vuosi, T.tila, T.lo_aloituspvm, T.oo_aloituspvm, T.Tkkoodi --WHERE T.tila IS NOT NULL DROP TABLE #tkopisk DROP TABLE #param DROP TABLE #Aloittanut DROP TABLE #Min_aloituspvm
35 DROP TABLE #Min_aloituspvm_siirto Opiskeluoikeudet YO varchar(4 varchar(20 Expand source IF OBJECT_ID('tempdb..#param' IS NOT NULL BEGIN TRUNCATE TABLE #param DROP TABLE #param END IF OBJECT_ID('tempdb..#tkopisk' IS NOT NULL BEGIN TRUNCATE TABLE #tkopisk DROP TABLE #tkopisk END CREATE TABLE #param ( vuosi varchar(4, org varchar(30,--kk-lyhenne kk varchar(6 --Yliopisto INSERT INTO #param (vuosi,org,kk as vuosi,@db as org,(select OrganisaatioKoodi FROM Yhteiset.Asetukset.Instanssit WHERE DB as kk CREATE TABLE #Aloittanut ( oid int, minalkamispaivamaara date, LAlkamispaivamaara date, OAlkamispaivamaara date, opiskelija_id int not null CREATE TABLE #Min_aloituspvm ( oid int, alk_pvm date CREATE TABLE #tkopisk (
36 oppilaitostunnus varchar(6, hetu varchar(11, -- Henkilötunnus opiskelijaavain varchar(100, opiskeluoikeusavain varchar(100, opiskelija_id int, opiskeluoikeus_id int, tila smallint, lo_aloituspvm date, oo_aloituspvm date, Tkkoodi varchar(10 CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelija_id ON #tkopisk (opiskelija_id CREATE NONCLUSTERED INDEX IX_tkopisk_opiskelijaavain ON #tkopisk (opiskelijaavain INSERT into #tkopisk (oppilaitostunnus,hetu,opiskelijaavain,opiskelija_id SELECT oppilaitostunnus = (SELECT TOP 1 kk FROM #param, hetu = h.henkilotunnus, opiskelijaavain = p.avain, opiskelija_id = p.id FROM Henkilo h INNER JOIN dbo.opiskelija p ON p.henkiloid = h.id WHERE 1=1 h.db p.db -- tutkinto-oikeus p.id IN ( SELECT oo.opiskelijaid FROM Opiskeluoikeus oo INNER JOIN Opiskeluoikeuden_tyyppi ot on ot.id = oo.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt on lt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt on kt.id=lt.op_oikeuden_tilaid WHERE 1=1 oo.db lt.db -- tutkinto-tyyppinen opiskeluoikeus ot.koodi IN ('2','4' kt.koodi IN ('1' -- aktiivinen p.id in ( -- ja jolla läsnäoloja SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt on lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1','2','3'
37 l.db l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int AS varchar+'-12-31' p.id NOT IN (SELECT opiskelija_id FROM #tkopisk -- opiskeluoikeusavain SET opiskeluoikeus_id = o.id, opiskeluoikeusavain = o.avain, tila = 1, oo_aloituspvm = oj.alkamispaivamaara, Tkkoodi = tn.koodi INNER JOIN Opiskeluoikeus o ON o.opiskelijaid=t.opiskelija_id INNER JOIN Opiskeluoikeuden_tyyppi ot ON ot.id=o.op_oikeuden_tyyppiid INNER JOIN Op_oikeuteen_liittyva_tila lt ON lt.opiskeluoikeusid=o.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=lt.op_oikeuden_tilaid INNER JOIN Opiskeluoikeusjakso oj on oj.opiskeluoikeusid = O.id INNER JOIN Tutkintonimike tn on tn.id = oj.tutkintonimikeid WHERE 1=1 o.db lt.db oj.db -- tutkinto-tyyppinen ot.koodi IN ('2','4' kt.koodi IN ('1' --aktiivinen cast(cast(@vuosi as int-1 AS varchar + '-08-01' BETWEEN oj.alkamispaivamaara coalesce(oj.paattymispaivamaara,' ' o.opiskelijaid in ( SELECT OpiskelijaID FROM Lukukausi_ilmoittautuminen l INNER JOIN Lukukausi_ilm_tila lt on lt.id = l.lukukausi_ilmoittautumisen_tilaid WHERE lt.koodi IN ('1','2','3' l.db l.alkamispaivamaara BETWEEN cast(cast(@vuosi as int-1 as varchar+'-08-01' cast(cast(@vuosi as int AS varchar+'-12-31' TRUNCATE TABLE #Aloittanut INSERT INTO #Aloittanut (oid, minalkamispaivamaara, LAlkamispaivamaara, OAlkamispaivamaara,opiskelija_id SELECT oo.id, CASE WHEN MIN(L.Alkamispaivamaara >= OO.Alkamispaivamaara THEN MIN(L.Alkamispaivamaara ELSE OO.Alkamispaivamaara
38 END AS minalkamispaivamaara,l.alkamispaivamaara AS LAlkamispaivamaara,oo.Alkamispaivamaara AS OAlkamispaivamaara,o.id FROM dbo.henkilo H JOIN dbo.opiskelija O ON O.HenkiloID = H.ID JOIN dbo.opiskeluoikeus OO ON OO.OpiskelijaID = O.ID JOIN dbo.opiskeluoikeuden_tyyppi ot on ot.id=oo.op_oikeuden_tyyppiid LEFT JOIN Lukukausi_ilmoittautuminen L ON L.OpiskelijaID = O.ID JOIN dbo.lukukausi_ilm_tila LT ON LT.ID = L.Lukukausi_ilmoittautumisen_tilaID INNER JOIN Op_oikeuteen_liittyva_tila olt ON olt.opiskeluoikeusid=oo.id INNER JOIN Opiskeluoikeuden_tila kt ON kt.id=olt.op_oikeuden_tilaid WHERE O.id IN (SELECT opiskelija_id FROM #tkopisk h.db o.db oo.db L.db olt.db ot.koodi IN ('2','4' kt.koodi = '1' --aktiivinen LT.Koodi = '1' /* Läsnä */ GROUP BY L.Alkamispaivamaara, oo.alkamispaivamaara, oo.id, o.id INSERT INTO #Min_aloituspvm (oid, alk_pvm SELECT oid, MIN(minAlkamispaivamaara As alk_pvm FROM #Aloittanut GROUP BY oid SET lo_aloituspvm = M.alk_pvm INNER JOIN Opiskeluoikeus o on o.opiskelijaid=t.opiskelija_id INNER JOIN #Min_aloituspvm M ON o.id=m.oid WHERE 1=1 o.db set T.lo_aloituspvm = T.oo_aloituspvm WHERE T.oo_aloituspvm > T.lo_aloituspvm SELECT AS oppilaitos, T.oppilaitostunnus, COALESCE(T.hetu,'' "hetu", T.opiskelijaAvain, AS vuosi
39 , T.tila, T.lo_aloituspvm, T.oo_aloituspvm, T.Tkkoodi DROP TABLE #tkopisk DROP TABLE #param DROP TABLE #Aloittanut
40 DROP TABLE #Min_aloituspvm Alkuun 4. Perusjoukko Pankki (tulos ylläolevien tiedostoista johdettu Kumulatiivinen pankki opintopistekertymä jos on kertyny yli 55 op tai 27 op keväällä aloittaneet. Saldot ja suoritusstatukset "suorittanut 55 ilman pankkia", "suorittanut pankin avulla", "suorittanut 27". Taulu johon kerätään pankkilaskelmat tilastovuosittain per opiskelija: Pankki55 Expand CREATE TABLE [Pankki55]( source [oppilaitos] [varchar](20 NOT NULL, [oppilaitostunnus] [varchar](10 NOT NULL, [hetu] [varchar](11 NOT NULL, [opiskelijaavain] [varchar](100 NOT NULL, [opiskeluoikeusavain] [varchar](100 NULL, [vuosi] [int] NOT NULL, [uutta_pankkiin] [int] NULL CONSTRAINT [DF_Pankki55_uutta_pankkiin] DEFAULT ((0, [pankki_kumu_ennen_55] [int] NULL CONSTRAINT [DF_Pankki55_pankki_kumu_ennen_55] DEFAULT ((0, [op_summa_kun_ote_pankista] [int] NULL CONSTRAINT [DF_Pankki55_op_summa_kun_ote_pankista] DEFAULT ((0, [pankki_saldo_55] [int] NULL CONSTRAINT [DF_Pankki55_pankki_saldo_55] DEFAULT ((0, [suorittanut_27] [smallint] NULL CONSTRAINT [DF_Pankki55_suorittanut_27] DEFAULT ((0, [suorittanut_55_ilman_pankkia] [smallint] NULL CONSTRAINT [DF_Pankki55_suorittanut_55_ilman_pankkia] DEFAULT ((0, [suorittanut_55_pankin_avulla] [smallint] NULL CONSTRAINT [DF_Pankki55_suorittanut_55_pankin_avulla] DEFAULT ((0, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_Pankki55_reg_datum] DEFAULT (getdate( Pankki AMK varchar(4 varchar(20 Expand source DELETE FROM [Pankki55] WHERE oppilaitos vuosi
41 INSERT INTO [Pankki55] ([oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[opiskeluoikeusavain],[ vuosi], uutta_pankkiin SELECT DISTINCT [oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[opiskeluoikeusavain],[v uosi], CASE WHEN summa >= 55 THEN summa -55 ELSE 0 END AS uutta_pankkiin FROM [Pisteet55] WHERE oppilaitos vuosi UPDATE P SET P.uutta_pankkiin = (P2.summa - 27, P.suorittanut_27 = 1, P.pankki_saldo_55 = (P2.summa - 27 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain P.opiskeluoikeusAvain = P2.opiskeluoikeusAvain JOIN Lasnaolo55 L ON L.oppilaitostunnus = P.oppilaitostunnus L.opiskelijaAvain = P.opiskelijaAvain L.opiskeluoikeusAvain = P.opiskeluoikeusAvain WHERE P.oppilaitos P.vuosi P2.vuosi L.vuosi L.uusi_opisk_kevat = 1 P2.summa >= 27 UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain P.opiskeluoikeusAvain = PUU.opiskeluoikeusAvain JOIN Lasnaolo55 L ON L.oppilaitostunnus = P.oppilaitostunnus L.opiskelijaAvain = P.opiskelijaAvain L.opiskeluoikeusAvain = P.opiskeluoikeusAvain WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1 L.vuosi L.uusi_opisk_kevat = 1 UPDATE P SET P.pankki_kumu_ennen_55 = ( ( SELECT TOP 1 COALESCE(VV.uutta_pankkiin,0 FROM Pankki55 VV WHERE VV.vuosi = P2.vuosi VV.oppilaitos = P2.oppilaitos VV.opiskelijaAvain = P2.opiskelijaAvain VV.opiskeluoikeusAvain = P2.opiskeluoikeusAvain + ( SELECT TOP 1 COALESCE(VV2.pankki_kumu_ennen_55,0 FROM Pankki55 VV2 WHERE VV2.vuosi = P2.vuosi VV2.oppilaitos = P2.oppilaitos VV2.opiskelijaAvain = P2.opiskelijaAvain VV2.opiskeluoikeusAvain = P2.opiskeluoikeusAvain FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain P.opiskeluoikeusAvain = P2.opiskeluoikeusAvain
42 WHERE P.oppilaitos P.vuosi P2.vuosi = cast(cast(@vuosi as int-1 as varchar UPDATE P SET P.pankki_saldo_55 = (P.pankki_kumu_ennen_55 - (55 - (P2.summa, P.op_summa_kun_ote_pankista = COALESCE(P2.summa,0 + (55 - (COALESCE(P2.summa,0, P.suorittanut_55_pankin_avulla = 1, P.suorittanut_55_ilman_pankkia = 0 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain P.opiskeluoikeusAvain = P2.opiskeluoikeusAvain WHERE P.oppilaitos P.vuosi P2.vuosi P2.summa < 55 P2.summa > 0 P.pankki_kumu_ennen_55 >= (55 - (P2.summa UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain P.opiskeluoikeusAvain = PUU.opiskeluoikeusAvain WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1 UPDATE P SET P.suorittanut_55_ilman_pankkia = 1, P.suorittanut_55_pankin_avulla = 0, P.pankki_saldo_55 = P.uutta_pankkiin + P.pankki_kumu_ennen_55 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain P.opiskeluoikeusAvain = P2.opiskeluoikeusAvain WHERE P.oppilaitos P.vuosi P2.vuosi P2.summa >= 55 UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain P.opiskeluoikeusAvain = PUU.opiskeluoikeusAvain
43 WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1 Pankki YO varchar(4 varchar(20 Expand source DELETE FROM [Pankki55] WHERE oppilaitos vuosi INSERT INTO [Pankki55] ([oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[opiskeluoikeusavain],[ vuosi], uutta_pankkiin SELECT DISTINCT [oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[opiskeluoikeusavain],[v uosi], CASE WHEN summa >= 55 THEN summa -55 ELSE 0 END AS uutta_pankkiin FROM [Pisteet55] WHERE oppilaitos vuosi UPDATE P SET P.uutta_pankkiin = (P2.summa - 27, P.suorittanut_27 = 1, P.pankki_saldo_55 = (P2.summa - 27 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain JOIN Lasnaolo55 L ON L.oppilaitostunnus = P.oppilaitostunnus L.opiskelijaAvain = P.opiskelijaAvain WHERE P.oppilaitos P.vuosi P2.vuosi L.vuosi L.uusi_opisk_kevat = 1 P2.summa >= 27 UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain JOIN Lasnaolo55 L ON L.oppilaitostunnus = P.oppilaitostunnus L.opiskelijaAvain = P.opiskelijaAvain WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1 L.vuosi L.uusi_opisk_kevat = 1 UPDATE P SET P.pankki_kumu_ennen_55 = ( ( SELECT TOP 1 COALESCE(VV.uutta_pankkiin,0 FROM Pankki55 VV WHERE VV.vuosi = P2.vuosi VV.oppilaitos = P2.oppilaitos VV.opiskelijaAvain = P2.opiskelijaAvain + ( SELECT TOP 1 COALESCE(VV2.pankki_kumu_ennen_55,0 FROM Pankki55 VV2 WHERE VV2.vuosi = P2.vuosi VV2.oppilaitos = P2.oppilaitos
44 VV2.opiskelijaAvain = P2.opiskelijaAvain FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain WHERE P.oppilaitos P.vuosi P2.vuosi = cast(cast(@vuosi as int-1 as varchar UPDATE P SET P.pankki_saldo_55 = (P.pankki_kumu_ennen_55 - (55 - (P2.summa, P.op_summa_kun_ote_pankista = COALESCE(P2.summa,0 + (55 - (COALESCE(P2.summa,0, P.suorittanut_55_pankin_avulla = 1, P.suorittanut_55_ilman_pankkia = 0 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain WHERE P.oppilaitos P.vuosi P2.vuosi P2.summa < 55 P2.summa > 0 P.pankki_kumu_ennen_55 >= (55 - (P2.summa UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1 UPDATE P SET P.suorittanut_55_ilman_pankkia = 1, P.suorittanut_55_pankin_avulla = 0, P.pankki_saldo_55 = P.uutta_pankkiin + P.pankki_kumu_ennen_55 FROM Pankki55 P JOIN Pisteet55 P2 ON P2.oppilaitostunnus = P.oppilaitostunnus P2.opiskelijaAvain = P.opiskelijaAvain WHERE P.oppilaitos P.vuosi P2.vuosi P2.summa >= 55 UPDATE PUU SET PUU.pankki_kumu_ennen_55 = P.pankki_saldo_55 FROM Pankki55 PUU JOIN Pankki55 P ON P.oppilaitostunnus = PUU.oppilaitostunnus P.opiskelijaAvain = PUU.opiskelijaAvain WHERE PUU.oppilaitos P.vuosi PUU.vuosi = cast(@vuosi AS int+1
45
46 Alkuun 5. Perusjoukko Opiskelijat Opiskelija55 Expand CREATE TABLE [Opiskelija55]( source [oppilaitos] [varchar](20 NOT NULL, [oppilaitostunnus] [varchar](10 NOT NULL, [hetu] [varchar](11 NOT NULL, [opiskelijaavain] [varchar](100 NOT NULL, [Sukupuoli] [smallint] NULL, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_Opiskelija55_reg_datum] DEFAULT (getdate(, CONSTRAINT [PK_Opiskelija55] PRIMARY KEY CLUSTERED ( [oppilaitostunnus] ASC, [hetu] ASC, [opiskelijaavain] ASC WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON ON [PRIMARY] Kerätään yhteen ylläoleviin poimitut. Lisätiedoksi vielä opiskelijan sukupuoli. Opiskelijat AMK DELETE FROM [Opiskelija55] WHERE oppilaitos INSERT INTO [Opiskelija55] ([oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[sukupuoli] Expand source SELECT DISTINCT [oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain], S.Koodi AS sukupuoli FROM Lasnaolo55 L JOIN Opiskelija O ON O.Avain = L.opiskelijaAvain JOIN Henkilo H ON O.henkiloid = H.id JOIN Sukupuoli S ON H.SukupuoliID = S.id WHERE L.oppilaitos O.db H.db O.Avain NOT IN (SELECT OO.opiskelijaAvain FROM Opiskelija55 OO WHERE OO.oppilaitos
47 Opiskelijat YO DELETE FROM [Opiskelija55] WHERE oppilaitos INSERT INTO [Opiskelija55] ([oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain],[sukupuoli] Expand source SELECT DISTINCT [oppilaitos],[oppilaitostunnus],[hetu],[opiskelijaavain], S.Koodi AS sukupuoli FROM Lasnaolo55 L JOIN Opiskelija O ON O.Avain = L.opiskelijaAvain JOIN Henkilo H ON O.henkiloid = H.id JOIN Sukupuoli S ON H.SukupuoliID = S.id WHERE L.oppilaitos O.db H.db O.Avain NOT IN (SELECT OO.opiskelijaAvain FROM Opiskelija55 OO WHERE OO.oppilaitos Alkuun Esimerkkidataa per perusjoukko (taulu ja pankkilaskelma opiskelijan aikajanana Pisteet55 opiskelijaavain opiskeluoikeusavain vuosi edellinen_lv_syys_pisteet edellinen_lv_kevat_pisteet summa Keltainen väri: Opiskelija ensimmäisenä keväänä (2012 suorittanut 30 op, josta 3 op yli 27 op kertyy pankkiin seuraavalle vuodelle (2013. Seuraavalle vuodelle (2013 kumulativinen pankkisaldo 3. Sininen väri: Seuraavana vuonna (2013 edellisen lukuvuoden ( opintopisteet 67 op, eli opiskelija on suorittanut >= 55 op, kertyy 12 op uusia pisteitä pankkiin. Ei tarvita pankkia. Suorittanut_55_ilman_pankkia = 1. Kumulativisena saldona seuraavalle vuodelle (2014 on nyt 15. Vihreä väri: Seuraavana vuonna (2014 ( suorittanut 58 op. Ei tarvita vieläkään pankkia. Suorittanut_55_ilman_pankkia =1. Tulee 3 op uutta pistettä pankkin. Kumulatiivinen saldo seuraavalle (2015 on 18 op. Punainen väri: Seuraavana (2015 edelliseltä ( kertynyt nyt vain 48 op, eli on alle 55 op ja nyt otetaan pankista jotta saadaan 55 op ja saldoksi jää 11. Suorittanut_55_pankin_avulla = 1 Alkuun Pankki55 opiskelijaavain opiskeluoikeusavain vuosi uutta_pankkiin pankki_kumu_ennen_55 op_summa_kun_ote_pankista pankki_saldo_55 suorittanut_
48 Opiskeluoikeus55 opiskelijaavain opiskeluoikeusavain vuosi tila lo_aloituspvm oo_aloituspvm Tkkoodi Lasnaolo55 opiskelijaavain opiskeluoikeusavain vuosi syys_olo kevat_olo edellinen_syys_olo uusi_opisk_kevat uusi_opisk Alkuun Lyhyt kuvaus laskentaprosessista Lasketaan pisteet Haetaan läsnäolotiedot Haetaan opiskeluoikeustiedot Poimitaan keväällä aloittaneet Poimitaan kaikki tilastovuoden uudet opiskelijat Alustetaan pankkitiedot Lasketaan kevällä aloittaneiden >= 27 op keränneet Lasketaan kumulatiivinen pankkitili Pankkisaldot kumulatiivisen laskennan jälkeen Kerätään yhteen opiskelijat Loppuraportti ylläolevasta kerätystä per tilastovuosi Lopputulos Kerätään yhteen tiedot per tilastovuosi ja viedään extra-vipuseen tiedot. Taulu jonne tulokset kerätään
49 ViisViisTulosTaulu CREATE TABLE [ViisViisLaskentaTaulukko]( [oppilaitos] [varchar](20 NULL, [oppilaitostunnus] [varchar](10 NULL, [vuosi] [int] NULL, [hetu] [varchar](11 NULL, [olok] [smallint] NULL, [olos] [smallint] NULL, [syys] [int] NULL, [kevat] [int] NULL, [summa] [int] NULL, [tkoodi] [varchar](6 NULL, [lo_aloituspvm] [date] NULL, [oo_aloituspvm] [date] NULL, [opiskeluoikeus_id] [int] NULL, [uutta_pankkiin] [int] NULL, [pankki_kumu_ennen_55] [int] NULL, [op_summa_kun_ote_pankista] [int] NULL, [pankki_saldo_55] [int] NULL, [suorittanut_27] [smallint] NULL, [suorittanut_55_ilman_pankkia] [smallint] NULL, [suorittanut_55_pankin_avulla] [smallint] NULL, [uusi_opisk_kevat] [smallint] NULL, [uusi_opisk] [smallint] NULL, [opiskelijaavain] [varchar](100 NULL, [opiskeluoikeusavain] [varchar](100 NULL, [sukupuoli] [smallint] NULL, [edellinen_syysolo] [smallint] NULL, [reg_datum] [smalldatetime] NULL CONSTRAINT [DF_ViisViisLaskentaTaulukko_reg_datum] DEFAULT (getdate( Expand source Poimitaan tiedot korkeakouluittain AMK: AMK Lopputulos DELETE FROM ViisViisLaskentaTaulukko WHERE oppilaitos INSERT INTO [dbo].[viisviislaskentataulukko] ([oppilaitos],[oppilaitostunnus],[vuosi],[hetu],[olok],[olos],[syys],[kevat],[summa],[tkoodi],[lo_aloituspvm],[oo_aloituspvm] Expand source
50 ,[uutta_pankkiin],[pankki_kumu_ennen_55],[op_summa_kun_ote_pankista],[pankki_saldo_55],[suorittanut_27],[suorittanut_55_ilman_pankkia],[suorittanut_55_pankin_avulla],[uusi_opisk_kevat],[uusi_opisk],[opiskelijaavain],[opiskeluoikeusavain],[sukupuoli],[edellinen_syysolo] SELECT DISTINCT O.[oppilaitos], O.[oppilaitostunnus], OK.[vuosi], O.hetu, L.[kevat_olo], L.[syys_olo], P.[edellinen_lv_syys_pisteet], P.[edellinen_lv_kevat_pisteet], P.[summa], OK.[tkkoodi], OK.[lo_aloituspvm], OK.[oo_aloituspvm], PK.[uutta_pankkiin], PK.[pankki_kumu_ennen_55], PK.[op_summa_kun_ote_pankista], PK.[pankki_saldo_55], PK.[suorittanut_27], PK.[suorittanut_55_ilman_pankkia], PK.[suorittanut_55_pankin_avulla], L.[uusi_opisk_kevat], L.[uusi_opisk], O.[opiskelijaAvain], Ok.opiskeluoikeusAvain, O.[sukupuoli], L.[edellinen_syys_olo] FROM [Opiskelija55] O INNER JOIN Opiskeluoikeus55 OK ON OK.opiskelijaAvain = O.opiskelijaAvain OK.oppilaitostunnus = O.oppilaitostunnus LEFT JOIN Lasnaolo55 L ON L.vuosi = OK.vuosi L.oppilaitostunnus = OK.oppilaitostunnus L.opiskelijaAvain = OK.opiskelijaAvain L.opiskeluoikeusAvain = OK.opiskeluoikeusAvain LEFT JOIN Pisteet55 P ON P.vuosi = L.vuosi P.oppilaitostunnus = L.oppilaitostunnus
51 P.opiskelijaAvain = L.opiskelijaAvain P.opiskeluoikeusAvain = L.opiskeluoikeusAvain LEFT JOIN Pankki55 PK ON PK.vuosi = P.vuosi PK.oppilaitostunnus = P.oppilaitostunnus PK.opiskelijaAvain = P.opiskelijaAvain PK.opiskeluoikeusAvain = P.opiskeluoikeusAvain
52 WHERE O.oppilaitos OK.tila = 1 Alkuun YO: YO Lopputulos DELETE FROM ViisViisLaskentaTaulukko WHERE oppilaitos INSERT INTO [dbo].[viisviislaskentataulukko] ([oppilaitos],[oppilaitostunnus],[vuosi],[hetu],[olok],[olos],[syys],[kevat],[summa],[tkoodi],[lo_aloituspvm],[oo_aloituspvm],[uutta_pankkiin],[pankki_kumu_ennen_55],[op_summa_kun_ote_pankista],[pankki_saldo_55],[suorittanut_27],[suorittanut_55_ilman_pankkia],[suorittanut_55_pankin_avulla],[uusi_opisk_kevat],[uusi_opisk],[opiskelijaavain],[opiskeluoikeusavain],[sukupuoli],[edellinen_syysolo] SELECT DISTINCT O.[oppilaitos], O.[oppilaitostunnus], OK.[vuosi], O.hetu, L.[kevat_olo], L.[syys_olo], P.[edellinen_lv_syys_pisteet], P.[edellinen_lv_kevat_pisteet], P.[summa], OK.[tkkoodi], OK.[lo_aloituspvm], OK.[oo_aloituspvm], PK.[uutta_pankkiin], PK.[pankki_kumu_ennen_55], PK.[op_summa_kun_ote_pankista], PK.[pankki_saldo_55], PK.[suorittanut_27], PK.[suorittanut_55_ilman_pankkia] Expand source
53 , PK.[suorittanut_55_pankin_avulla], L.[uusi_opisk_kevat], L.[uusi_opisk], O.[opiskelijaAvain], Ok.opiskeluoikeusAvain, O.[sukupuoli], L.[edellinen_syys_olo] FROM [Opiskelija55] O INNER JOIN Opiskeluoikeus55 OK ON OK.opiskelijaAvain = O.opiskelijaAvain OK.oppilaitostunnus = O.oppilaitostunnus LEFT JOIN Lasnaolo55 L ON L.vuosi = OK.vuosi L.oppilaitostunnus = OK.oppilaitostunnus L.opiskelijaAvain = OK.opiskelijaAvain L.opiskeluoikeusAvain = OK.opiskeluoikeusAvain -- LEFT JOIN Pisteet55 P ON P.vuosi = L.vuosi P.oppilaitostunnus = L.oppilaitostunnus P.opiskelijaAvain = L.opiskelijaAvain P.opiskeluoikeusAvain = L.opiskeluoikeusAvain -- LEFT JOIN Pankki55 PK ON PK.vuosi = P.vuosi PK.oppilaitostunnus = P.oppilaitostunnus PK.opiskelijaAvain = P.opiskelijaAvain PK.opiskeluoikeusAvain = P.opiskeluoikeusAvain -- WHERE O.oppilaitos
54 OK.tila = 1 Alkuun Lopputulostiedoista muodostetaan korkeakoulukohtaiset tarkistustiedostot VirtaSFTP-palvelimelle. Tarkistustiedostot Tiedot/sarakkeet csv-tiedostossa: oppilaitos;oppilaitostunnus;vuosi;hetu;sukupuoli;edellinen_syysolo;olok;olos;syys;kevat;summa;uutta_pankkiin;pankki_kumu_ennen _55;op_summa_kun_ote_pankista;pankki_saldo_55;suorittanut_27;suorittanut_55_ilman_pankkia;suorittanut_55_pankin_avulla;uusi_ opisk_kevat;uusi_opisk;tkoodi;lo_aloituspvm;oo_aloituspvm;opiskelijaavain;opiskeluoikeusavain oppilaitos : Lyhenne, korkeakoulun tunniste Virrassa oppilaitostunnus : Organisaatiokoodi (5 numeroinen vuosi : Tilastovuosi hetu : Opiskelijan henkilötunnus tai syntymäaika sukupuoli : Opiskelijan sukupuoli (1=mies, 2=nainen edellinen_syysolo : Tilastovuodesta katsottuna edellisen syyslukukauden tieto 1=läsnä, 2=poissa, 0=ei kirjoilla/tieto puuttuu olok : kevätlukukauden tieto 1=läsnä, 2=poissa, 0=ei kirjoilla/tieto puuttuu olos : tilastovuoden syyslukukauden tieto 1=läsnä, 2=poissa, 0=ei kirjoilla/tieto puuttuu syys : edellisen syyslukukauden opintopisteet (kokonaisluku tilastovuosi-1 kevat : edellisen kevätlukukauden opintopisteet (kokonaisluku tilastovuosi summa : syys + kevat pisteet yhteensä 1.8.tilastovuosi tilastovuosi uutta_ pankkiin : tilastovuonna pankkiin seuraavalle vuodelle pankki_kumu_ennen_55 : pankin kumulatiivinen kertymä ennen 55 laskentaa tilastovuonna op_summa_kun_ote_pankista : opintopistesumma kun on käytetty pankkia pankki_saldo_55 : pankkisaldo suorittanut_27 : Suorittanut >= 27 op suorittanut_55_ilman_pankkia : Suorittanut >= 55 op ilman pankkia suorittanut_55_pankin_avulla : Suorittanut 55 op pankin avulla uusi_opisk_kevat : Keväällä aloittanut uusi opiskelija uusi_opisk : Vuoden uusi opiskelija tkoodi : Tilastokeskuksen 6-numeroinen koulutuskoodi lo_aloituspvm : Ensimmäinen läsnäolopäivämäärä. Laskettu ensimmäisestä läsnäolotiedosta tarvitaan uusi_opisk -tietoa päätellessä oo_aloituspvm : Opiskeluoikeuden alkamispäivämäärä. Tilastovuoden edellisen lukuvuoden aktiivinen opiskeluoikeus opiskelijaavain : Opiskelijan yksilöivä avain opiskeluoikeusavain : Opiskeluoikeuden yksilöivä avain Alkuun csv-tiedostoja voi Excelissä esim. COUNTIF( tai SUMIF( funktioita käyttämällä tehdä tarkistuslaskelmia, opiskelijakohtaisesti tarkistaa tietoja opiskelijaavain, opiskeluoikeusavaimien tai hetun mukaan.
55 Esimerkkitapauksia Esim1. Suorittanut 55 pankin avulla Opiskelijalla on suorittanut edellisellä lukuvuodella 50 op ja pankissa on 5 op. summa = 50 (edellisen lukuvuoden pisteet pankki_kumu_ennen_55 = 5 (pankkiin kertyneet op aiemilta vuosilta op_summa_kun_ote_pankista = 55 pankki_saldo_55 = 0 (saldo jäljellä kun käytetty pankkia => suorittanut_55_pankin_avulla = 1 Esim2. Pankki tyhjenee jos pisteet eivät riitä saavuttamaan 55 op summa = 35 (edellisen lukuvuoden pisteet pankki_kumu_ennen_55 = 5 (pankkiin kertyneet aiemilta vuosilta pankki_saldo_55 = 0 (saldo sen jälkeen kun käytetty pankkia => suorittanut_55_ilman_pankkia=0 => suorittanut_55_pankin_avulla=0 Esim3. Suorittanut 55 op ilman pankkia Opiskelijalle kertynyt yli 55 op. summa = 59 (edellisen lukuvuoden pisteet uutta_pankkiin = 4 pankki_kumu_ennen_55 = 5 (pankkiin kertyneet op aiemilta vuosilta pankki_saldo_55 = 9 (uutta_pankkiin + pankki_kumu_ennen_55 => suorittanut_55_ilman_pankkia = 1 Esim4. Keväällä aloittanut suorittanut 27 op summa = 30 (edellisen lukuvuoden pisteet, eli ainoastaan keväältä uutta_pankkiin = 3
56 pankki_saldo_55 = 3 => suorittanut_27 = 1 Alkuun Mittarit Extravipusen raportissa 1. Vähintään 55 opintopistettä suorittaneiden määrä (summa mittareista 3., 4. ja Vähintään 55 opintopistettä suorittaneiden määrä, rahoitusmalli (sama kuin 1., paitsi että keväällä aloittaneiden määrä jaettuna kahdella 3. Keväällä aloittaneista vähintään 27 op:ta suorittaneet 4. Suorittanut 55 op ilman pankkia 5. Suorittanut 55 op pankin kanssa 6. Läsnäolleiden määrä (läsnäolotieto 1 joko syksyllä tai keväällä (esim. s2014 tai k op suorittaneiden osuus (mittari 1. jaettuna mittarilla 6. Raportin muuttujat: a. lukuvuosi, esim 2014/2015 b. korkeakoulu c. tutkintokoodi ja siitä johdettuna OKM:n ohjauksen alat ja ISCED-luokitus d. sukupuoli e. aika aloittamisesta (tilastolukuvuosi miinus aloittamislukuvuosi, asteikko 0,1...6,7 ja 8 tai enemmän f. uutena keväällä aloittanut Alkuun
Opiskeluoikeuksien maaran tiedonkeruu
Opiskeluoikeuksien maaran tiedonkeruu Määrittely Opinto-oikeuksista tarvitaan seuraavat tiedot: Tieto jokaisesta yksittäisestä opinto-oikeudesta ja kytkentä niistä opinto-oikeuksista jotka ovat samalla
LisätiedotOpintojen edistymisen seurannan aikataulu, syksy 2016 ja kevät 2017
Kela Opiskelijatiedot (kuukausitiedot Edistymisenseuranta Opintojen edistymisen seurannan aikataulu, syksy 2016 ja kevät 2017 Tärkeät päivämäärät Ennakkopyyntötiedosto toimitettu CSC:lle 16.8.2016. Tarkistusajot
LisätiedotVirta_Latausraportti - Tarkistukset
Virta_Latausraportti - Tarkistukset Tällä sivulla ylläpidetään tietovarannossa tehtävien tarkistusten listaa. Tarkistusten tulos ilmenee siis Virta_Latausraportilla PUUTTEITA-listalla. Opiskelijat Opiskelijalla
LisätiedotTilastokeskuksen opiskelijatiedonkeruu yliopistot
Tilastokeskuksen opiskelijatiedonkeruu yliopistot Ks. http://stat.fi/keruu/ylio/ "Yliopisto-opiskelijatiedonkeruu sisältää vain tutkintoon johtavan koulutuksen opiskelijat, jotka ovat ilmoittautuneet [päivämäärä]
LisätiedotTilastokeskuksen opiskelijatiedonkeruu ammattikorkeakoulut
Tilastokeskuksen opiskelijatiedonkeruu ammattikorkeakoulut Poiminta Alustus Perusjoukon valinta Tietueet Oppilaitostunnus (tunn Koulutustyyppi (koultyp Erikoistumiskoulutus Koulutuksen opetuskieli (kiel
LisätiedotTilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut
Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut Ks. http://stat.fi/keruu/amkt/ "Tiedot ammattikorkeakouluissa kalenterivuoden [vuosi] aikana suoritetuista tutkinnoista, erikoistumisopinnoista
LisätiedotTilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut
Tilastokeskuksen tutkintotiedonkeruu ammattikorkeakoulut Ks. http://stat.fi/keruu/amkt/ "Tiedot ammattikorkeakouluissa kalenterivuoden [vuosi] aikana suoritetuista tutkinnoista, erikoistumisopinnoista
LisätiedotTilastokeskuksen tutkintotiedonkeruu yliopistot
Tilastokeskuksen tutkintotiedonkeruu yliopistot Ks. http://stat.fi/keruu/ylit/ "Tiedonkeruu koskee kaikkia yliopistoissa vuonna [vuosi] suoritettuja tutkintoja." Poiminta Alustus Perusjoukon valinta Tietueet
LisätiedotOpintopistetiedonkeruu
@ Opintopistetiedonkeruu Opintopistetiedonkeruu Mistä on kysymys Virran integroiminen Vipusen tietolähteeksi Suorat tiedonkeruut vuoden 2014 tietojen osalta alkaen alkuvuodesta 2015 Panokset kovenivat
LisätiedotKirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina
Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden
LisätiedotNykyiset tiedonkeruut tietovarannosta
@ Nykyiset tiedonkeruut tietovarannosta Nykyisten tiedonkeruiden toteuttaminen tietovarannosta: opiskelija- ja tutkintotiedonkeruu sekä opiskeluoikeustiedonkeruu KOTA-seminaari 18.9.2014 Lauri Jokipii,
LisätiedotSQL-perusteet, SELECT-, INSERT-, CREATE-lauseet
SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin
LisätiedotSQL - STRUCTURED QUERY LANGUAGE
SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt
LisätiedotSamanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa
Samanaikaisuuden hallinta Optiot transaktionaalisissa työnkuluissa Sisältö Transaktionaaliset työnkulut Samanaikaisuuden ongelmat Optiot idea käyttökohteet WorkMan Optioiden toteutus Arviointi Transaktionaaliset
LisätiedotHAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät
HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...
LisätiedotKOTA-seminaari, Helsinki 2018 VIRTA-OTP Tiedonkeruut Tavoiteajassa tutkinnon suorittaneet
KOTA-seminaari, Helsinki 2018 VIRTA-OTP Tiedonkeruut Tavoiteajassa tutkinnon suorittaneet 29.8.2018, fredrik.finnberg@csc.fi CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus
LisätiedotHELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...
LisätiedotTIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun
LisätiedotInsert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)
SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert
LisätiedotTällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia
Tällä viikolla Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia 1.) Mainitse tietokonepelistä (kuvitteellisesta tai todellisesta) esimerkkitilanteita,
LisätiedotCSE-A1200 Tietokannat
CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat
LisätiedotHakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]
Tällä viikolla Kertaus SQL-asioista jatketaan SQL-tekstifuntio-harjoituksia tehdään pelifirman tietokannasta ER-malli MySQL:llä, tarkastellaan mallin toimivuutta ja korjataan, jos korjattavaa löytyy, tehdään
LisätiedotJoko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT
Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT Agenda Regular Expression - funktiot Case-insensitive Sort Case-insensitive Seach Merge muutokset Tree-walking in 10g DML Returning Values
LisätiedotHELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...
LisätiedotHELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010
HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...
LisätiedotTiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta
Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset
Lisätiedotselect tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]
SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän
Lisätiedot3. Taulujen määrittely ja muuttaminen
3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen
LisätiedotVIRTA-tietomallin laajentaminen - Lukuvuosi-maksu
VIRTA-tietomallin laajentaminen - Lukuvuosi-maksu 23.8.2017, fredrik.finnberg@csc.fi CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus Lukuvuosimaksu - muutos Virta
Lisätiedot3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN
3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN
LisätiedotProseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008
Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
LisätiedotPROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009
PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)
LisätiedotMuita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto
Muita tietokantaobjekteja Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto Näkymät Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,
LisätiedotMUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO
MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO NÄKYMÄT Näkymä (view) on looginen näyte tietokannan tauluista tai näkymistä Näkymä ei voi sisältää SELECT INTO,
LisätiedotVIRTA-tiedon laadun tukeminen
VIRTA-tiedon laadun tukeminen Fredrik Finnberg 31.8.2016 Tietojen Virta : 1. Korkeakoulu (KK) tuo uudet XML-tiedostot -> validoidaan ja viedään korkeakoulukohtaiseen tietokantaan 2. KK tiedot ladataan
LisätiedotSQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX
SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät
LisätiedotHarjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! 345396! killedwhale@kapsi.fi! Henri Nurmi! 345545! henri.nurmi@kapsi.fi!
Harjoitustyö CSE-A1200 Tietokannat Jasse Lahdenperä 345396 killedwhale@kapsi.fi Henri Nurmi 345545 henri.nurmi@kapsi.fi 1 Ensimmäisen vaiheen ratkaisu ER-Kaavio 2 Relaatiomalli: Loanable(Id, MaximumLoanTime)
LisätiedotINSERT INTO koulutus VALUES ( Helsinki, 22.6, 4);
CREATE TABLE koulutus ( kunta VARCHAR(25) NOT NULL, tutkinnot NUMERIC(4,2), opiskelijat NUMERIC(1), PRIMARY KEY (kunta) ); INSERT INTO koulutus VALUES ( Helsinki, 22.6, 4); UPDATE koulutus SET opiskelijat
LisätiedotKoulutus- ja opetusyhteistyö ja VIRTA-tiedot
Koulutus- ja opetusyhteistyö ja VIRTA-tiedot Helena Majamäki 13.9.2017 OPTIETOR ja KooTuki CSC Suomalainen tutkimuksen, koulutuksen, kulttuurin ja julkishallinnon ICT-osaamiskeskus Ajankohtaisia esille
LisätiedotKoostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
Funktiot Koostefunktiot Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT-- lukumäärä Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
LisätiedotTIETOKANTOJEN PERUSTEET MARKKU SUNI
TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata
LisätiedotHELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000
HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...
LisätiedotTreenitietokannan suunnitteludokumentti
Treenitietokannan suunnitteludokumentti 1 Johdanto 1.1 Järjestelmän tarkoitus Järjestelmän tarkoituksena on luoda Yliopiston Taido Ry:n treenien vetäjille ja treeneissä kävijöille toimiva ympäristö, jossa
LisätiedotHelsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista
Helsingin yliopisto Tietojenkäsittelytieteen laitos 26.2.2014 (H.Laine) Tietokantojen perusteet Liitteenä: Tiivistelmä SQL-syntaksista Kirjoita jokaiseen erilliseen vastausarkkiin kurssin nimi, tenttipäivä,
LisätiedotTietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot
DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita
LisätiedotNäkymät ja tiedon suojaus
HELIA TIKO-05 1 (23) Näkymät ja tiedon suojaus Näkymät...2 Eri tyyppisiä relaatioita...2 Taulu - Tallennettu relaatio...2 Tulosrelaatio - Kyselyn tulos...2 Työtaulut - Väliaikaisiksi luodut taulut...2
LisätiedotTietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (
Tietokanta projektin alussa: kurssin_tila ( TILA kurssin_ ( TYYPPI NOT NULL VARCHAR2(1), VARCHAR2(30) NOT NULL VARCHAR2(1), VARCHAR2(30) opintojakson_ ( TYYPPI NOT NULL VARCHAR2(1), VARCHAR2(30) opintojakson_taso
LisätiedotOpintosuoritukset. Kaaviokuva
Opintosuoritukset Opintosuoritukset-tiedonsiirtoskeema. XML-skeema jonka avulla voidaan siirtää useita opintosuoritusten tietoja kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin myös yksittäisiä
LisätiedotNäkökulmia Diploma Supplementiin /Päivi Aho
Näkökulmia Diploma Supplementiin 28.08.2018/Päivi Aho Uudistuva DS mitäh!? mitä nyt jo tietojärjestelmässä olevia opiskelijan osaamista kuvaavia tietoja voitaisiin tuoda DS:ään? miten nykyisiä tietojärjestelmiä
LisätiedotVirta-tietovarannosta saatavien tietojen tiedosto- ja tietuekuvaus alkaen
TKUVAKO.docx Virta-tietovarannosta saatavien tietojen tiedosto- ja tietuekuvaus 18.04.2017 alkaen Opiskelutiedot/Yo ja Amk Tätä tietuekuvausta käytetään opiskelutietojen tietojenvälityksessä Virta-tietovarannosta
LisätiedotCS-A1150 Tietokannat CS-A1150 Tietokannat / 43
CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää
LisätiedotLohdutus - tietokantadokumentti
Lohdutus - tietokantadokumentti Ohjelmiston tietokanta on toteutettu Oracle-ympäristöön, ja sitä käytetään ohjelmassa Hibernaten kautta. Tietokannan rakenne Tietokannan taulujen merkitykset Taulu Project
LisätiedotOpettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija
Opettajana Mika Sorsa, mika.sorsa@koudata.fi, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija Opintojaksolla: keskitytään relaatiotietokantojen teoriaan ja toimintaan SQL-kieli kyselykielenä
LisätiedotCS-A1150 Tietokannat CS-A1150 Tietokannat / 44
CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää
LisätiedotTIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli
TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne
LisätiedotTehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen
Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not
LisätiedotHelsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot
DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita
LisätiedotHarjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely
Harjoitustehtävä 1 Puutarha Puutarhatunnus omistaja sijainti Vastuualue puutarhatunnus aluenumero maaperä, kosteus valaistus sijainti vastuutonttu Tonttu Tonttutunnus Istutus istutuspäivä paikka_alueella
LisätiedotTietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava
LisätiedotHelsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot
DO NOT PRINT THIS DOCUMENT SQL:ssä joukko yhteenvetofunktioita (aggregate function, koostefunktio) AVG keskiarvo MIN pienin arvo (minimi) MAX suurin arvo (maksimi) SUM summa COUNT lukumäärä Yhteenvetofunktioita
LisätiedotHELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki
HELIA TIKO-05 1 (17) SQL / DML 4 Alikyselyt...2 Joukko-operaatiot...7 Yhdiste, unioni...8 Leikkaus...9 Erotus... 10 Tietokannan datan muokkaus... 11 Lisäys... 11 Yhden rivin lisääminen... 12 Useamman rivin
LisätiedotRuokahalu kasvaa syödessä lisää makrokielen herkkuja
Turun ammattikorkeakoulu Ruokahalu kasvaa syödessä lisää makrokielen herkkuja SAS Makrokieli - kertaus Makrokielen asiat tapahtuvat ohjelmaa käännettäessä makroprosessorin työn tulos näkyy kääntäjälle
LisätiedotDenormalisointia turvallisesti. Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso
Denormalisointia turvallisesti Ougf syysseminaari 4.11.2010 Pörssitalo Helsinki Timo Raitalaakso Timo Raitalaakso Senior Database Specialist Solita Oy 2001- - 2001 Tampereen Teknillinen korkeakoulu Tietokannat
LisätiedotTIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt
LisätiedotHELIA 1 (15) Outi Virkki Tietokantasuunnittelu
HELIA 1 (15) Luento 2.6 Käyttöoikeuksista ja suojauksesta... 2 Suojausten suunnittelu... 3 Käyttäjätunnukset... 4 Tunnuksen luominen... 5 Tunnuksen muuttaminen... 6 Tunnuksen poistaminen... 6 Oikeudet
LisätiedotKOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:
FUNKTIOT Viisi standardifunktiota: AVG -- keskiarvo MIN -- pienin arvo MAX -- suurin arvo SUM -- summa COUNT -- lukumäärä KOOSTEFUNKTIOT Esim. montako henkilöä on henkilo-taulussa: SELECT Count(*) AS Lkm
LisätiedotKyselyn yleisrakenne:
SQL kysely Kyselyn yleisrakenne: select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta] Kysely tuottaa nimettömän
LisätiedotLiitokset - haut useaan tauluun
Liitokset Liitokset - haut useaan tauluun Tavallisin liitos on valintaliitos ehtona =,!=, yhtäläisyysliitos (=) yleisin (vrt. Inner join) taulut liitetään toisiinsa yleensä avaimilla (perus-
LisätiedotOpiskeluoikeudet. Kaaviokuva
Opiskeluoikeudet Opiskeluoikeuksien tiedonsiirtoskeema. XML-skeema jonka avulla on tarkoitus siirtää useiden opiskeluoikeuksien tiedot kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin
LisätiedotMakrojen mystinen maailma lyhyt oppimäärä
Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio
LisätiedotTIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö
TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3
LisätiedotTällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä
Tällä viikolla Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä Seuraavissa harjoituksissa käytetään tukkukauppa-kantaa. 1. Hae kaikki toimittajat
LisätiedotVIRTA-termit ruotsiksi
VIRTA-termit ruotsiksi (Kopio aluperäisestä sivusta) Ehdotus muutsiksi korkeakoulujen tietomalliin: käsitteiden ruotsinkieliset nimet Ehdotus korkeakoulujen tietomallin muutsenhallinnassa: https://jira.csc.fi/browse/malli-83
LisätiedotVIRTA opintotietopalvelun tietomallin muutokset
VIRTA opintotietopalvelun tietomallin muutokset Lauri Jokipii 2.9.2015 KV-tietojen keruu / Liikkuvuusjaksot Opiskeluoikeuden luokittelu Siirto-opiskelijoiden lukukausi-ilmoittautumiset Erikoistumiskoulutus
LisätiedotTietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
LisätiedotJava ja tietokannan käsittely (JDBC)
Java ja tietokannan käsittely (JDBC) Javan tietokannan käsittely luokat (java.sql.*) Yhteys tietokantaan Tietokannan yhteyden sulkeminen Tiedon haku tietokannasta Tiedon päivitys tietokantaan Transaktio
LisätiedotHSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32
HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)
LisätiedotTietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
LisätiedotYO 3.2. Opintopistetiedonkeruu 2015
YO 2015 3.2.1. Kerättävät tiedot 3.2.1.1. Harjoittelukouluissa suoritetut (7 alakategoriaa) 3.2.1.2. Vieraskielisessä perustutkinto-opetuksessa suoritetut 3.2.1.3. Kaikki perustutkinto-opiskelijoiden 3.2.1.4.
LisätiedotKirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.
Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, kurssikoe 4.3.2015, H. Laine Tehtävien mukana jaetaan sql-syntaksin tiivistelmä. Kirjoita kuhunkin erilliseen vastauspaperiin
LisätiedotOUTER JOIN se vanha kunnon kaveri
OUTER JOIN se vanha kunnon kaveri Ulkoliitoksia on kolmenlaisia Left -> vasemmasta taulusta otetaan ehdot täyttävät rivit ja yhdistetään oikeanpuoleiseen tauluun jos rivi löytyy - nested loop join Right
LisätiedotTietokannat II -kurssin harjoitustyö
Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................
LisätiedotSuorituksen sisältyminen toiseen suoritukseen (jonka id)
RAKETTI-VIRTA Lunos yhteisen tietoarkkitehtuurin pääkohdista 10.4.2012 sivu 1/10 RAKETTI-VIRTA-projekti 10.4.2012: korkeakoulujen valtakunnalliseen tietovaranto tutoavat tiedot rajattu rivitasolla Mukana
LisätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön
LisätiedotHELIA 1 (14) Outi Virkki Tiedonhallinta
HELIA 1 (14) Luento Transaktion / Tapahtuman hallinta... 2 Taustaa... 3 Tapahtuman käsite... 5 ACID-ominaisuudet... 7 Samanaikaisuuden hallinta... 8 Lukitukset... 9 Toipuminen... 10 Loki-tiedosto... 11
LisätiedotTIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences
TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne
Lisätiedotmääritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta
SQL tietokantakieli SQL:llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman
LisätiedotTietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet
DO NOT PRINT THIS DOCUMENT SQL -valintaehto CREATE TABLE opettaja ( opetunnus varchar(12) NOT NULL, nimi varchar(40) NOT NULL, puhelin varchar(12), tyohuone varchar(12), PRIMARY KEY (opetunnus) ) ; CREATE
LisätiedotTietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli
tietokantakieli :llä voidaan... määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta näytölle tai tiedostoon sovellusohjelman käyttöön
LisätiedotEsimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus
Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.
LisätiedotOpenOffice.org Base 3.1.0
OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys
LisätiedotYhdiste, leikkaus, erotus ym.
Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.
LisätiedotALMU-järjestelmä Suunnitteludokumentti
ALMU-järjestelmä Suunnitteludokumentti Helsingin yliopisto TKTL Ohjelmistotuotantoprojekti Projektiryhmä: Peter Ahlberg, Marika Korhonen, Tomi Kuittinen, Iikka Meriläinen, Jukka Narkiniemi SISÄLLYS 1 Johdanto...
LisätiedotTIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI
TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI Tarkastellaan Tietokannan fyysistä suunnittelua Menetelmän vaihetta 4 Looginen suunoitelma muutetaan toimiviksi tauluiksi Id enimi snimi muuta 1 Aki Joki xxx
LisätiedotSELECT-lauseen perusmuoto
SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää
LisätiedotDynaamista ja joustavaa ohjelmointia - maukasta makrokielellä www.turkuamk.fi
Markku Suni Turun ammattikorkeakoulu Dynaamista ja joustavaa ohjelmointia - maukasta makrokielellä SAS Makrokieli SAS Makrokieli on kieli SAS-kielen laajennus datavaihetta muistuttavia lauseita ja funktioita
LisätiedotJatko-opinto oikeuden lisääminen HY:n tutkinto-opiskelijoille ja uusille opiskelijoille
Helsingin yliopisto WinOodi Sivu 1/6 Jatko-opinto oikeuden lisääminen HY:n tutkinto-opiskelijoille ja uusille opiskelijoille Avaa kaksi WinOodi näkymää rinnakkain näytölle. 1. WinOodi: Opiskelijan perustietoikkunasta
LisätiedotTietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);
Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun
LisätiedotHarjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:
Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,
LisätiedotFinFamily PostgreSQL installation ( ) FinFamily PostgreSQL
FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...
Lisätiedot