]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.reporter-demographic-expansion.sql
6cc62fb3d08603a37f59e0733b4a9f546378cb41
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.reporter-demographic-expansion.sql
1 BEGIN;
2
3 -- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
4
5 CREATE OR REPLACE VIEW reporter.demographic AS
6 SELECT  u.id,
7     u.dob,
8     CASE
9         WHEN u.dob IS NULL
10             THEN 'Adult'
11         WHEN AGE(u.dob) > '18 years'::INTERVAL
12             THEN 'Adult'
13         ELSE 'Juvenile'
14     END AS general_division,
15     CASE
16         WHEN u.dob IS NULL
17             THEN 'No Date of Birth Entered'::text
18         WHEN age(u.dob::timestamp with time zone) >= '0 years'::interval and age(u.dob::timestamp with time zone) < '6 years'::interval
19             THEN 'Child 0-5 Years Old'::text
20         WHEN age(u.dob::timestamp with time zone) >= '6 years'::interval and age(u.dob::timestamp with time zone) < '13 years'::interval
21             THEN 'Child 6-12 Years Old'::text
22         WHEN age(u.dob::timestamp with time zone) >= '13 years'::interval and age(u.dob::timestamp with time zone) < '18 years'::interval
23             THEN 'Teen 13-17 Years Old'::text
24         WHEN age(u.dob::timestamp with time zone) >= '18 years'::interval and age(u.dob::timestamp with time zone) < '26 years'::interval
25             THEN 'Adult 18-25 Years Old'::text
26         WHEN age(u.dob::timestamp with time zone) >= '26 years'::interval and age(u.dob::timestamp with time zone) < '50 years'::interval
27             THEN 'Adult 26-49 Years Old'::text
28         WHEN age(u.dob::timestamp with time zone) >= '50 years'::interval and age(u.dob::timestamp with time zone) < '60 years'::interval
29             THEN 'Adult 50-59 Years Old'::text
30         WHEN age(u.dob::timestamp with time zone) >= '60 years'::interval and age(u.dob::timestamp with time zone) < '70  years'::interval
31             THEN 'Adult 60-69 Years Old'::text
32         WHEN age(u.dob::timestamp with time zone) >= '70 years'::interval
33             THEN 'Adult 70+'::text
34         ELSE NULL::text
35     END AS age_division
36     FROM actor.usr u;
37
38 COMMIT;