我需要兩個結果集結合起來,我覺得自己是如此接近,但就是不明白如何包裝這一切了:如何組合多個查詢?
這裏有一個查詢與小的結果集,(給我非活性)
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行時,你想要哪個狀態ID? – CharlesC
我需要的10 statusid但是,如果recent_inactive有一個值,statusid永遠是10,因爲這是根據定義,我有一個停止日期,因爲他們是無效的,statusid 10 –