You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
4.9 KiB
128 lines
4.9 KiB
|
|
--wichtig: vor dem Lauf die Tabelle sos_lab_stg sichern. |
|
|
|
SELECT |
|
now(), |
|
'Vorher Anzahl Sätze in sos_lab_stg:'::CHAR(50), |
|
count(*) |
|
FROM sos_lab_stg |
|
GROUP BY 1,2; |
|
|
|
begin work; |
|
|
|
create table sos_lab_stg_dopp ( |
|
matrikel_nr INT, |
|
studiengang_nr SMALLINT, |
|
fach_nr SMALLINT, |
|
d_geburt DATE, |
|
geschlecht SMALLINT, |
|
ca12_staat SMALLINT, |
|
sem_der_pruefung SMALLINT, |
|
sem_d_abg_pruefung SMALLINT, |
|
ch30_fach CHAR(10), |
|
ch39_vertief CHAR(10), |
|
ch35_ang_abschluss CHAR(10), |
|
kz_fach CHAR(10), |
|
tid_stg INT, |
|
lehr CHAR(10), |
|
d_abg_pruefung DATE, |
|
parstg_anf DATE, |
|
parstg_ende DATE, |
|
note DECIMAL(3,2), |
|
abschnitt SMALLINT, |
|
fach_sem_zahl DECIMAL(10,2), |
|
regel SMALLINT, |
|
hzbart SMALLINT, |
|
stort CHAR(10), |
|
sem_ein INT, |
|
stufrm CHAR(10), |
|
pversion SMALLINT, |
|
schwerpunkt CHAR(10), |
|
pstatus CHAR(10), |
|
stichtag INT, |
|
summe INT, |
|
pordnr INT, |
|
pnr INT, |
|
pvermerk CHAR(10), |
|
part CHAR(10), |
|
labnr INT, |
|
schriftlich SMALLINT, |
|
prueck SMALLINT, |
|
zeitabschnitt CHAR(10), |
|
pform CHAR(10), |
|
pversuch INT, |
|
pseudonym VARCHAR(255), |
|
ch35_ang_abschluss_stg CHAR(10), |
|
ch30_fach_stg CHAR(10), |
|
ch39_vertief_stg CHAR(10), |
|
schwerpunkt_stg CHAR(10), |
|
kz_fach_stg CHAR(10), |
|
pversion_stg INT, |
|
sourcesystem INT, |
|
malus FLOAT, |
|
bonus FLOAT, |
|
sem_overall SMALLINT, |
|
sem_practice SMALLINT, |
|
sem_abroad SMALLINT, |
|
sem_former_degree_program SMALLINT, |
|
type_of_doctorate_astat INT, |
|
stuart CHAR(10), |
|
pruefungsamt_nr CHAR(7), |
|
ppunkte FLOAT, |
|
stutyp CHAR(10) |
|
); |
|
|
|
insert into sos_lab_stg_dopp |
|
SELECT distinct * |
|
FROM sos_lab_stg where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4'); |
|
|
|
|
|
|
|
select sem_der_pruefung,stichtag,labnr,sourcesystem, matrikel_nr into tmp tmp_doppelt |
|
from sos_lab_stg |
|
where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4') |
|
and abschnitt=2 |
|
group by 1,2,3,4,5 |
|
having count(*)>1 |
|
; |
|
|
|
|
|
update sos_lab_stg_dopp set stutyp=null where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4') |
|
and labnr in (select labnr from tmp_doppelt); |
|
update sos_lab_stg_dopp set stuart=null where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4') |
|
and labnr in (select labnr from tmp_doppelt); |
|
update sos_lab_stg_dopp set stufrm=null where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4') |
|
and labnr in (select labnr from tmp_doppelt); |
|
|
|
delete from sos_lab_stg where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4'); |
|
|
|
insert into sos_lab_stg (matrikel_nr,studiengang_nr,fach_nr,d_geburt,geschlecht,ca12_staat,sem_der_pruefung,sem_d_abg_pruefung,ch30_fach,ch39_vertief,ch35_ang_abschluss, |
|
kz_fach,tid_stg,lehr,d_abg_pruefung,parstg_anf,parstg_ende,note,abschnitt,fach_sem_zahl,regel,hzbart,stort,sem_ein,stufrm,pversion,schwerpunkt,pstatus,stichtag,summe,pordnr, |
|
pnr,pvermerk,part,labnr,schriftlich,prueck,zeitabschnitt,pform,pversuch,pseudonym,ch35_ang_abschluss_stg,ch30_fach_stg,ch39_vertief_stg,schwerpunkt_stg,kz_fach_stg,pversion_stg, |
|
sourcesystem,malus,bonus,sem_overall,sem_practice,sem_abroad,sem_former_degree_program,type_of_doctorate_astat,stuart,pruefungsamt_nr,ppunkte,stutyp) |
|
SELECT distinct matrikel_nr,studiengang_nr,fach_nr,d_geburt,geschlecht,ca12_staat,sem_der_pruefung,sem_d_abg_pruefung,ch30_fach,ch39_vertief,ch35_ang_abschluss,kz_fach,min(tid_stg), |
|
lehr,d_abg_pruefung,parstg_anf,parstg_ende,note,abschnitt,max(fach_sem_zahl),regel,min(hzbart),stort,sem_ein,stufrm,pversion,schwerpunkt,pstatus,stichtag,summe,pordnr,pnr,pvermerk, |
|
part,labnr,schriftlich,prueck,zeitabschnitt,pform,pversuch,pseudonym,ch35_ang_abschluss_stg,ch30_fach_stg,ch39_vertief_stg,schwerpunkt_stg,kz_fach_stg,pversion_stg,sourcesystem, |
|
malus,bonus,sem_overall,sem_practice,sem_abroad,sem_former_degree_program,type_of_doctorate_astat,stuart,pruefungsamt_nr,ppunkte,stutyp |
|
FROM sos_lab_stg_dopp where sem_der_pruefung < (SELECT apnr FROM konstanten WHERE beschreibung='SOS_start_lab') |
|
and stichtag = (select I.tid from sos_stichtag I where I.appl_key='4') |
|
group by 1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,17,18,19,21,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59; |
|
|
|
drop table sos_lab_stg_dopp; |
|
drop table tmp_doppelt; |
|
|
|
commit; |
|
|
|
|
|
SELECT |
|
now(), |
|
'Nachher Anzahl Sätze in sos_lab_stg:'::CHAR(50), |
|
count(*) |
|
FROM sos_lab_stg |
|
GROUP BY 1,2;
|
|
|