Мне нужно объединить два набора результатов, и я чувствую, что я так близко, но просто не вижу, как обернуть это все вверх:Как объединить несколько запросов?
Вот один запрос с небольшим набором результатов, (дайте мне Inactives)
select max(set_date) as most_recent_inactive, key_value, statusid
from status_history
where base_table = 'userinfo'
and statusid = 10 and set_date > to_date('2012-10-01', 'YYYY-MM-DD')
group by key_value,statusid
recent_inactive key_value statusid
2013-01-30 15 10
2013-06-04 261 10
2013-06-18 352 10
2012-10-04 383 10
2013-01-22 488 10
2013-03-04 711 10
2013-06-19 749 10
2013-03-05 806 10
Другого запрос с набором небольшого результата (дай мне активные вещества)
select max (set_date) as most_recent_active, key_value,statusid
from status_history
where base_table = 'userinfo'
and statusid =11
group by key_value,statusid
recent_active key_value statusid
2002-01-01 3 11
2002-01-01 5 11
2002-01-01 14 11
2002-01-01 15 11
2002-01-01 21 11
2002-01-01 23 11
2002-01-01 25 11
2002-01-01 26 11
Я хочу, чтобы все активы и неактивные вместе, так что я их объединение всех
select null as most_recent_active, max(set_date) as most_recent_inactive, key_value,statusid
from status_history
where base_table = 'userinfo'
and statusid = 10 and set_date > to_date('2012-10-01', 'YYYY-MM-DD')
group by key_value,statusid
UNION all
select max(set_date) as most_recent_active, null as most_recent_inactive, key_value,statusid
from status_history
where base_table = 'userinfo'
and statusid = 11
group by key_value,statusid
order by key_value
recent_active recent_inactive key_value statusid
2002-01-01 null 3 11
2002-01-01 null 5 11
2002-01-01 null 14 11
null 2013-01-30 15 10
2002-01-01 null 15 11
2002-01-01 null 21 11
2002-01-01 null 23 11
2002-01-01 null 25 11
2002-01-01 null 26 11
2002-01-01 null 27 11
2002-01-01 null 29 1
Проблема заключается в дублировании key_value 15.
Значения верны, но я хочу, чтобы эта запись и все последующие дубликаты «сплющивались», строка 15 и все другие совпадения, проходящие через одну запись с установленными двумя полями даты.
Снова, я чувствую, что я так близко, но как мне все это обернуть?
Спасибо?
Какой идентификатор статуса вы захотите, когда вы сгладите ряд 15? – CharlesC
Мне нужен статус 10. Но, если recent_inactive имеет значение, statusid всегда будет 10, потому что это по определению, у меня есть неактивная дата, потому что они неактивны, statusid 10. –