一、 多个group by用法
select allchange.hotelId,allchange.chn_name ,allchange.isactive,allchange.createtime, max(allchange.operDate) modifytime from
(
select t.hotelId hotelId, h.chn_name,h.isactive,h.createtime,t.operdate operDate
from htl_info.t_hotel_log t,htl_info.t_hotel h
where t.hotelid=h.hotelid and t.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss') and t.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')
union
select r.hotelId hotelId, h.chn_name,h.isactive,h.createtime, r.operdate operDate
from htl_info.t_roomtype_log r, htl_info.t_hotel h
where r.hotelid=h.hotelid and r.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss') and r.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')
) allchange group by allchange.hotelId ,allchange.chn_name,allchange.isactive,allchange.createtime
二、case 加上group by 用法
select tt.hotelid,tt.chn_name,case when tt.isactive='0' then '删除' when tt.createtime=tt.operdate then '新建' else '修改' end as changetype from
( select allchange.hotelId,allchange.chn_name ,allchange.isactive isactive,allchange.createtime createtime, max(allchange.operDate) operdate from
(
select t.hotelId hotelId, h.chn_name,h.isactive,h.createtime,t.operdate operDate
from htl_info.t_hotel_log t,htl_info.t_hotel h
where t.hotelid=h.hotelid and t.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss') and t.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')
union
select r.hotelId hotelId, h.chn_name,h.isactive,h.createtime, r.operdate operDate
from htl_info.t_roomtype_log r, htl_info.t_hotel h
where r.hotelid=h.hotelid and r.operdate >= to_date('2015/05/10 00:00:00 ','yyyy/mm/dd hh24:mi:ss') and r.operdate<=to_date('2015/05/22 00:00:00 ','yyyy/mm/dd hh24:mi:ss')
) allchange group by allchange.hotelId ,allchange.chn_name,allchange.isactive,allchange.createtime
) tt