60 lines
2 KiB
SQL
60 lines
2 KiB
SQL
|
|
create view roles_by_canvasser as
|
|
select canvassers.id as canvasser, roles.name
|
|
from roles, rolememberships, canvassers
|
|
where roles.id = rolememberships.role_id
|
|
and canvassers.id = rolememberships.canvasser_id
|
|
and canvassers.authorised = true;
|
|
|
|
create view teams_by_canvasser as
|
|
select canvassers.id as canvasser, teams.id, teams.name, teams.latitude, teams.longitude
|
|
from teams, teammemberships, canvassers
|
|
where teams.id = teammemberships.team_id
|
|
and canvassers.id = teammemberships.canvasser_id;
|
|
|
|
create view canvassers_by_team as
|
|
select teams.id as team,
|
|
canvassers.id,
|
|
canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email,
|
|
canvassers.phone
|
|
from teams, teammemberships, canvassers
|
|
where teams.id = teammemberships.team_id
|
|
and canvassers.id = teammemberships.canvasser_id
|
|
and canvassers.authorised = true;
|
|
|
|
create view canvassers_by_introducer as
|
|
select introducers.id as introducer,
|
|
canvassers.id as canvasser,
|
|
canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email,
|
|
canvassers.phone,
|
|
canvassers.authorised
|
|
from canvassers, canvassers as introducers
|
|
where introducers.id = canvassers.introduced_by;
|
|
|
|
create view teams_by_organiser as
|
|
select canvassers.id as organiser,
|
|
teams.id,
|
|
teams.name,
|
|
teams.latitude,
|
|
teams.longitude
|
|
from teams, teamorganiserships, canvassers
|
|
where teams.id = teamorganiserships.team_id
|
|
and canvassers.id = teamorganiserships.canvasser_id
|
|
and canvassers.authorised = true;
|
|
|
|
create view organisers_by_team as
|
|
select teams.id as team,
|
|
canvassers.id,
|
|
canvassers.username,
|
|
canvassers.fullname,
|
|
canvassers.email,
|
|
canvassers.phone
|
|
from teams, teamorganiserships, canvassers
|
|
where teams.id = teamorganiserships.team_id
|
|
and canvassers.id = teamorganiserships.canvasser_id
|
|
and canvassers.authorised = true;
|