Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
None
Description
e.g.
SELECT gpaav.id AS attribute_assign_value_id,
|
gpaa.id AS attribute_assign_id,
|
gpaa.attribute_def_name_id,
|
gpaa.attribute_assign_action_id,
|
gpaa.attribute_assign_type,
|
gpaa.owner_attribute_assign_id,
|
gpaa.owner_attribute_def_id,
|
gpaa.owner_group_id,
|
gpaa.owner_member_id,
|
gpaa.owner_membership_id,
|
gpaa.owner_stem_id,
|
gpaav.value_integer,
|
gpaav.value_floating,
|
gpaav.value_string,
|
gpaav.value_member_id,
|
case when gpaav.end_time is null and gpaa.end_time is null then 'T' else 'F' end as active, |
case when gpaav.start_time > gpaa.start_time then gpaav.start_time else gpaa.start_time end as start_time, |
case when gpaav.end_time is null then gpaa.end_time when gpaa.end_time is null then gpaav.end_time when gpaav.end_time < gpaa.end_time then gpaav.end_time else gpaa.end_time end as end_time |
FROM grouper_pit_attribute_assign gpaa,
|
grouper_pit_attr_assn_value gpaav
|
WHERE gpaa.id = gpaav.attribute_assign_id
|
and (
|
-- membership start overlaps the gpaav
|
(gpaa.start_time > gpaav.start_time and (gpaav.end_time > gpaa.start_time or gpaav.end_time is null)) |
-- membership end overlaps the gpaav
|
or (gpaav.start_time < gpaa.end_time and (gpaa.end_time > gpaav.start_time or gpaa.end_time is null)) |
-- membership inside the gpaav
|
or (gpaa.start_time > gpaav.start_time and (gpaa.end_time < gpaav.end_time or gpaav.end_time is null)) |
-- gpaav inside membership
|
or (gpaav.start_time > gpaa.start_time and (gpaav.end_time < gpaa.end_time or gpaa.end_time is null))) |
|