This repository has been archived on 2020-04-03. You can view files and clone it, but cannot push or open issues or pull requests.
ibz/db/3_sem/abo_view/abo_view/create_views.sql

86 lines
1.4 KiB
Transact-SQL

-- A1.1 create student view
use Abo;
go
create view mitglied_student_v(Anr, Nachn, Vorn, Ort)
as
select a.anrede,
m.mitglied_name,
m.mitglied_vorname,
o.ortsname
from mitglied m
inner join anrede a
on m.anrede_id = a.anrede_id
inner join ort o
on m.ort_id =o.ort_id
inner join abo
on m.abo_id = abo.abo_id
where abo.abo_name = 'Student'
use Abo;
go
select * from mitglied_student_v;
go
-- drop the view
use Abo;
go
drop view mitglied_student_v;
-- A1.2 create Zürich Mitglied view
use Abo;
go
create view mitglied_zuerich_v(Anr, Nachn, Vorn, Aboart, PLZ, Ort)
as
select a.anrede,
m.mitglied_name,
m.mitglied_vorname,
abo.abo_name,
o.postleizahl,
o.ortsname
from mitglied m
inner join anrede a
on m.anrede_id = a.anrede_id
inner join ort o
on m.ort_id =o.ort_id
inner join abo
on m.abo_id = abo.abo_id
where o.ortsname = 'Zürich';
use Abo;
go
select * from mitglied_zuerich_v;
-- drop the view
use Abo;
go
drop view mitglied_zuerich_v;
-- A1.3 create view Mitglieder/Aboart
use Abo;
go
create view mitglied_aboart_v(AboArt, Anzahl)
as select abo.abo_name, COUNT(*) Anzahl
FROM mitglied
INNER JOIN abo ON mitglied.abo_id = abo.abo_id
GROUP BY abo.abo_name;
use Abo;
go
select * from mitglied_aboart_v;
use Abo;
go
drop view mitglied_aboart_v;