Browse Source

Zalámané SQL, aby se dalo číst

export_seznamu_prednasek
Pavel 'LEdoian' Turinsky 5 years ago
parent
commit
3815b5a8a8
  1. 148
      seminar/migrations/0001_squashed_0067_auto_20190814_0805.py

148
seminar/migrations/0001_squashed_0067_auto_20190814_0805.py

@ -721,8 +721,35 @@ class Migration(migrations.Migration):
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='cisla', to='seminar.Rocnik', verbose_name='ročník'),
),
migrations.RunSQL(
sql="\ncreate view seminar_body_za_cislo as\n select\n sr.cislo_body_id || '-' || sr.resitel_id as id,\n sr.cislo_body_id as cislo_id,\n sr.resitel_id as resitel_id,\n sum(sr.body) as body\n from seminar_reseni as sr\n group by sr.cislo_body_id, sr.resitel_id\n order by body desc;\n\ncreate view seminar_body_k_cislu as\n select\n akt_c.id || '-' || min_bzc.resitel_id as id,\n akt_c.id as cislo_id,\n min_bzc.resitel_id as resitel_id,\n max(akt_bzc.body) as body,\n sum(min_bzc.body) as body_celkem\n from ((seminar_cisla as akt_c\n inner join seminar_cisla as min_c on min_c.rocnik_id = akt_c.rocnik_id and akt_c.cislo >= min_c.cislo)\n inner join seminar_body_za_cislo as min_bzc on min_c.id = min_bzc.cislo_id)\n left outer join seminar_body_za_cislo as akt_bzc on akt_bzc.cislo_id = akt_c.id and akt_bzc.resitel_id = min_bzc.resitel_id \n group by akt_c.id, min_bzc.resitel_id, akt_bzc.resitel_id\n order by body_celkem desc;\n",
reverse_sql='\ndrop view seminar_body_k_cislu;\ndrop view seminar_body_za_cislo;\n',
sql="
create view seminar_body_za_cislo as
select
sr.cislo_body_id || '-' || sr.resitel_id as id,
sr.cislo_body_id as cislo_id,
sr.resitel_id as resitel_id,
sum(sr.body) as body
from seminar_reseni as sr
group by sr.cislo_body_id, sr.resitel_id
order by body desc;
create view seminar_body_k_cislu as
select
akt_c.id || '-' || min_bzc.resitel_id as id,
akt_c.id as cislo_id,
min_bzc.resitel_id as resitel_id,
max(akt_bzc.body) as body,
sum(min_bzc.body) as body_celkem
from ((seminar_cisla as akt_c
inner join seminar_cisla as min_c on min_c.rocnik_id = akt_c.rocnik_id and akt_c.cislo >= min_c.cislo)
inner join seminar_body_za_cislo as min_bzc on min_c.id = min_bzc.cislo_id)
left outer join seminar_body_za_cislo as akt_bzc on akt_bzc.cislo_id = akt_c.id and akt_bzc.resitel_id = min_bzc.resitel_id
group by akt_c.id, min_bzc.resitel_id, akt_bzc.resitel_id
order by body_celkem desc;
",
reverse_sql='
drop view seminar_body_k_cislu;
drop view seminar_body_za_cislo;
',
),
migrations.AlterField(
model_name='reseni',
@ -956,7 +983,31 @@ class Migration(migrations.Migration):
field=models.DecimalField(blank=True, decimal_places=1, max_digits=8, null=True, verbose_name='body'),
),
migrations.RunSQL(
sql="\ncreate view seminar_body_za_cislo as\n select\n sr.cislo_body_id || '-' || sr.resitel_id as id,\n sr.cislo_body_id as cislo_id,\n sr.resitel_id as resitel_id,\n sum(sr.body) as body\n from seminar_reseni as sr\n group by sr.cislo_body_id, sr.resitel_id\n order by body desc;\n\ncreate view seminar_body_k_cislu as\n select\n akt_c.id || '-' || min_bzc.resitel_id as id,\n akt_c.id as cislo_id,\n min_bzc.resitel_id as resitel_id,\n max(akt_bzc.body) as body,\n sum(min_bzc.body) as body_celkem\n from ((seminar_cisla as akt_c\n inner join seminar_cisla as min_c on min_c.rocnik_id = akt_c.rocnik_id and akt_c.cislo >= min_c.cislo)\n inner join seminar_body_za_cislo as min_bzc on min_c.id = min_bzc.cislo_id)\n left outer join seminar_body_za_cislo as akt_bzc on akt_bzc.cislo_id = akt_c.id and akt_bzc.resitel_id = min_bzc.resitel_id \n group by akt_c.id, min_bzc.resitel_id, akt_bzc.resitel_id\n order by body_celkem desc;\n",
sql="
create view seminar_body_za_cislo as
select
sr.cislo_body_id || '-' || sr.resitel_id as id,
sr.cislo_body_id as cislo_id,
sr.resitel_id as resitel_id,
sum(sr.body) as body
from seminar_reseni as sr
group by sr.cislo_body_id, sr.resitel_id
order by body desc;
create view seminar_body_k_cislu as
select
akt_c.id || '-' || min_bzc.resitel_id as id,
akt_c.id as cislo_id,
min_bzc.resitel_id as resitel_id,
max(akt_bzc.body) as body,
sum(min_bzc.body) as body_celkem
from ((seminar_cisla as akt_c
inner join seminar_cisla as min_c on min_c.rocnik_id = akt_c.rocnik_id and akt_c.cislo >= min_c.cislo)
inner join seminar_body_za_cislo as min_bzc on min_c.id = min_bzc.cislo_id)
left outer join seminar_body_za_cislo as akt_bzc on akt_bzc.cislo_id = akt_c.id and akt_bzc.resitel_id = min_bzc.resitel_id
group by akt_c.id, min_bzc.resitel_id, akt_bzc.resitel_id
order by body_celkem desc;
",
),
migrations.CreateModel(
name='Novinky',
@ -1007,10 +1058,97 @@ class Migration(migrations.Migration):
field=models.CharField(choices=[(b'jarni', 'Jarní soustředění'), (b'podzimni', 'Podzimní soustředění'), (b'vikend', 'Víkendový sraz')], default=b'podzimni', max_length=16, verbose_name='typ akce'),
),
migrations.RunSQL(
sql="\ndrop view seminar_body_k_cislu;\ndrop view seminar_body_za_cislo;\n\ncreate view seminar_body_za_cislo as\n select\n seminar_reseni.cislo_body_id || '-' || seminar_reseni.resitel_id as id,\n seminar_reseni.cislo_body_id as cislo_id,\n seminar_reseni.resitel_id as resitel_id,\n seminar_cisla.cislo as cislo,\n seminar_cisla.rocnik_id as rocnik_id,\n seminar_rocniky.rocnik as rocnik,\n seminar_cisla.verejna_vysledkovka as verejna_vysledkovka,\n sum(seminar_reseni.body) as body\n from\n seminar_reseni\n inner join seminar_cisla on seminar_reseni.cislo_body_id = seminar_cisla.id\n inner join seminar_rocniky on seminar_cisla.rocnik_id = seminar_rocniky.id\n group by seminar_reseni.cislo_body_id, seminar_reseni.resitel_id, seminar_cisla.cislo,\n seminar_cisla.rocnik_id, seminar_rocniky.rocnik, seminar_cisla.verejna_vysledkovka\n order by body desc;\n\ncreate view seminar_body_k_cislu_rocnik as\n select\n akt_body.id as id,\n akt_body.cislo_id as cislo_id,\n akt_body.resitel_id as resitel_id,\n akt_body.body as body,\n sum(min_body.body) as body_celkem\n from\n seminar_body_za_cislo as akt_body\n inner join seminar_body_za_cislo as min_body on\n (akt_body.resitel_id = min_body.resitel_id and\n (akt_body.rocnik = min_body.rocnik and akt_body.cislo >= min_body.cislo)\n )\n group by akt_body.id, akt_body.cislo_id, akt_body.resitel_id, akt_body.body\n order by body_celkem desc;\n\ncreate view seminar_body_k_cislu_odjakziva as\n select\n akt_body.id as id,\n akt_body.cislo_id as cislo_id,\n akt_body.resitel_id as resitel_id,\n akt_body.body as body,\n sum(min_body.body) as body_celkem\n from\n seminar_body_za_cislo as akt_body\n inner join seminar_body_za_cislo as min_body on\n (akt_body.resitel_id = min_body.resitel_id and\n ((akt_body.rocnik = min_body.rocnik and akt_body.cislo >= min_body.cislo) or\n (akt_body.rocnik < min_body.rocnik)\n )\n )\n group by akt_body.id, akt_body.cislo_id, akt_body.resitel_id, akt_body.body\n order by body_celkem desc;\n\n",
sql="
drop view seminar_body_k_cislu;
drop view seminar_body_za_cislo;
create view seminar_body_za_cislo as
select
seminar_reseni.cislo_body_id || '-' || seminar_reseni.resitel_id as id,
seminar_reseni.cislo_body_id as cislo_id,
seminar_reseni.resitel_id as resitel_id,
seminar_cisla.cislo as cislo,
seminar_cisla.rocnik_id as rocnik_id,
seminar_rocniky.rocnik as rocnik,
seminar_cisla.verejna_vysledkovka as verejna_vysledkovka,
sum(seminar_reseni.body) as body
from
seminar_reseni
inner join seminar_cisla on seminar_reseni.cislo_body_id = seminar_cisla.id
inner join seminar_rocniky on seminar_cisla.rocnik_id = seminar_rocniky.id
group by seminar_reseni.cislo_body_id, seminar_reseni.resitel_id, seminar_cisla.cislo,
seminar_cisla.rocnik_id, seminar_rocniky.rocnik, seminar_cisla.verejna_vysledkovka
order by body desc;
create view seminar_body_k_cislu_rocnik as
select
akt_body.id as id,
akt_body.cislo_id as cislo_id,
akt_body.resitel_id as resitel_id,
akt_body.body as body,
sum(min_body.body) as body_celkem
from
seminar_body_za_cislo as akt_body
inner join seminar_body_za_cislo as min_body on
(akt_body.resitel_id = min_body.resitel_id and
(akt_body.rocnik = min_body.rocnik and akt_body.cislo >= min_body.cislo)
)
group by akt_body.id, akt_body.cislo_id, akt_body.resitel_id, akt_body.body
order by body_celkem desc;
create view seminar_body_k_cislu_odjakziva as
select
akt_body.id as id,
akt_body.cislo_id as cislo_id,
akt_body.resitel_id as resitel_id,
akt_body.body as body,
sum(min_body.body) as body_celkem
from
seminar_body_za_cislo as akt_body
inner join seminar_body_za_cislo as min_body on
(akt_body.resitel_id = min_body.resitel_id and
((akt_body.rocnik = min_body.rocnik and akt_body.cislo >= min_body.cislo) or
(akt_body.rocnik < min_body.rocnik)
)
)
group by akt_body.id, akt_body.cislo_id, akt_body.resitel_id, akt_body.body
order by body_celkem desc;
",
),
migrations.RunSQL(
sql="\n\ndrop view seminar_body_k_cislu_rocnik;\ncreate view seminar_body_k_cislu_rocnik as\n select\n seminar_cisla.id || '-' || min_body.resitel_id as id,\n seminar_cisla.id as cislo_id,\n min_body.resitel_id as resitel_id,\n sum(min_body.body) as body\n from\n seminar_cisla\n inner join seminar_body_za_cislo as min_body on\n (min_body.rocnik_id = seminar_cisla.rocnik_id and seminar_cisla.cislo >= min_body.cislo)\n group by seminar_cisla.id, min_body.resitel_id\n order by body desc;\n\ndrop view seminar_body_k_cislu_odjakziva;\ncreate view seminar_body_k_cislu_odjakziva as\n select\n seminar_cisla.id || '-' || min_body.resitel_id as id,\n seminar_cisla.id as cislo_id,\n min_body.resitel_id as resitel_id,\n sum(min_body.body) as body\n from\n seminar_cisla\n inner join seminar_rocniky on\n (seminar_cisla.rocnik_id = seminar_rocniky.id)\n inner join seminar_body_za_cislo as min_body on\n (min_body.rocnik_id = seminar_cisla.rocnik_id and seminar_cisla.cislo >= min_body.cislo) or\n (min_body.rocnik < seminar_rocniky.rocnik)\n group by seminar_cisla.id, min_body.resitel_id\n order by body desc;\n",
sql="
drop view seminar_body_k_cislu_rocnik;
create view seminar_body_k_cislu_rocnik as
select
seminar_cisla.id || '-' || min_body.resitel_id as id,
seminar_cisla.id as cislo_id,
min_body.resitel_id as resitel_id,
sum(min_body.body) as body
from
seminar_cisla
inner join seminar_body_za_cislo as min_body on
(min_body.rocnik_id = seminar_cisla.rocnik_id and seminar_cisla.cislo >= min_body.cislo)
group by seminar_cisla.id, min_body.resitel_id
order by body desc;
drop view seminar_body_k_cislu_odjakziva;
create view seminar_body_k_cislu_odjakziva as
select
seminar_cisla.id || '-' || min_body.resitel_id as id,
seminar_cisla.id as cislo_id,
min_body.resitel_id as resitel_id,
sum(min_body.body) as body
from
seminar_cisla
inner join seminar_rocniky on
(seminar_cisla.rocnik_id = seminar_rocniky.id)
inner join seminar_body_za_cislo as min_body on
(min_body.rocnik_id = seminar_cisla.rocnik_id and seminar_cisla.cislo >= min_body.cislo) or
(min_body.rocnik < seminar_rocniky.rocnik)
group by seminar_cisla.id, min_body.resitel_id
order by body desc;
",
),
migrations.CreateModel(
name='VysledkyCelkemKCislu',

Loading…
Cancel
Save