No title (SQL)

Plaintext - Copy this

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
(
    SELECT member_id, permission_name 
        FROM members 
        JOIN member_group_members ON member_group_members.member_id = members.id 
        JOIN member_group_permissions ON member_group_permissions.member_group_name = member_group_members.member_group_name
) 
UNION
(
    SELECT member_id, permission_name 
        FROM members 
        JOIN member_officerships ON member_officerships.member_id = members.id 
        JOIN officership_permissions ON officership_permissions.officership_name = member_officerships.officership_name
        WHERE 
            (member_officerships.start_date <= CURRENT_DATE AND member_officerships.end_date >= CURRENT_DATE)
        OR  (member_officerships.start_year <= date_part('year', CURRENT_TIMESTAMP)
                AND member_officerships.end_year >= date_part('year', CURRENT_TIMESTAMP))
);