view for showing free beds
This commit is contained in:
@ -11,8 +11,8 @@ create table public.t_camp (
|
||||
fk_document integer references public.t_document(pk),
|
||||
lock_sales boolean default false not null,
|
||||
fk_profile integer not null references public.t_profile(pk),
|
||||
beds_male integer default 0,
|
||||
beds_female integer default 0,
|
||||
blocked_beds_male integer default 0,
|
||||
blocked_beds_female integer default 0
|
||||
beds_male integer not null default 0,
|
||||
beds_female integer not null default 0,
|
||||
blocked_beds_male integer not null default 0,
|
||||
blocked_beds_female integer not null default 0
|
||||
);
|
||||
|
38
src/main/resources/upgrade_2024-02.sql
Normal file
38
src/main/resources/upgrade_2024-02.sql
Normal file
@ -0,0 +1,38 @@
|
||||
alter table camp.t_camp add column beds_male integer not null default 0;
|
||||
alter table camp.t_camp add column beds_female integer not null default 0;
|
||||
alter table camp.t_camp add column blocked_beds_male integer not null default 0;
|
||||
alter table camp.t_camp add column blocked_beds_female integer not null default 0;
|
||||
|
||||
create or replace view camp.v_camp as
|
||||
select c.pk,
|
||||
(c.depart < now()) as is_over,
|
||||
c.name,
|
||||
c.arrive,
|
||||
c.depart,
|
||||
date_part('isoyear'::text, c.arrive) as year,
|
||||
l.name as location_name,
|
||||
c.min_age,
|
||||
c.max_age,
|
||||
l.url,
|
||||
c.price,
|
||||
c.countries,
|
||||
c.fk_document,
|
||||
c.beds_female,
|
||||
c.beds_male,
|
||||
c.blocked_beds_female,
|
||||
c.blocked_beds_male,
|
||||
count(mp.pk) as used_beds_male,
|
||||
count(fp.pk) as used_beds_female
|
||||
from camp.t_camp c
|
||||
left join camp.t_location l on c.fk_location = l.pk
|
||||
left join camp.t_person mp on mp.fk_camp = c.pk
|
||||
and mp.accept = true
|
||||
and mp.sex = 'male'::enum_sex
|
||||
and mp.camprole = 'student'::enum_camprole
|
||||
left join camp.t_person fp on fp.fk_camp = c.pk
|
||||
and fp.accept = true
|
||||
and fp.sex = 'female'::enum_sex
|
||||
and fp.camprole = 'student'::enum_camprole
|
||||
group by c.pk, c.depart, c.name, c.arrive, l.name, c.min_age, c.max_age, l.url, c.price, c.countries,
|
||||
c.fk_document, c.beds_female, c.beds_male, c.blocked_beds_female, c.blocked_beds_male;
|
||||
|
@ -1,16 +1,33 @@
|
||||
create view public.v_camp as
|
||||
select c.pk,
|
||||
(c.depart < now()) as is_over,
|
||||
c.name,
|
||||
c.arrive,
|
||||
c.depart,
|
||||
date_part('isoyear'::text, c.arrive) as year,
|
||||
l.name as location_name,
|
||||
c.min_age,
|
||||
c.max_age,
|
||||
l.url,
|
||||
c.price,
|
||||
c.countries,
|
||||
c.fk_document
|
||||
from (public.t_camp c
|
||||
left join public.t_location l on ((c.fk_location = l.pk)));
|
||||
select c.pk,
|
||||
(c.depart < now()) as is_over,
|
||||
c.name,
|
||||
c.arrive,
|
||||
c.depart,
|
||||
date_part('isoyear'::text, c.arrive) as year,
|
||||
l.name as location_name,
|
||||
c.min_age,
|
||||
c.max_age,
|
||||
l.url,
|
||||
c.price,
|
||||
c.countries,
|
||||
c.fk_document,
|
||||
c.beds_female,
|
||||
c.beds_male,
|
||||
c.blocked_beds_female,
|
||||
c.blocked_beds_male,
|
||||
count(mp.pk) as used_beds_male,
|
||||
count(fp.pk) as used_beds_female
|
||||
from public.t_camp c
|
||||
left join public.t_location l on c.fk_location = l.pk
|
||||
left join public.t_person mp on mp.fk_camp = c.pk
|
||||
and mp.accept = true
|
||||
and mp.sex = 'male'::enum_sex
|
||||
and mp.camprole = 'student'::enum_camprole
|
||||
left join public.t_person fp on fp.fk_camp = c.pk
|
||||
and fp.accept = true
|
||||
and fp.sex = 'female'::enum_sex
|
||||
and fp.camprole = 'student'::enum_camprole
|
||||
group by c.pk, c.depart, c.name, c.arrive, l.name, c.min_age, c.max_age, l.url, c.price, c.countries,
|
||||
c.fk_document, c.beds_female, c.beds_male, c.blocked_beds_female, c.blocked_beds_male;
|
||||
|
||||
|
Reference in New Issue
Block a user