일별 사용 시간을 체크해서 가용율을 구하고 있는데요.
데이터 구조는 이렇게 되어 있습니다.
기존엔 당일만 처리해서 시작시간과 끝시간을 계산해서 runtime을 구했는데
이번에 일 단위를 넘어가면서 문제가 생겼습니다.
예약시간이 하루를 넘기면서 runtime이 24시간을 넘겨 버려 가용율이 100%를 넘겨 버리게 됐습니다.
rvrvsdate |
rvrvedate |
caid |
mbsex |
grtype |
runtime |
2012-02-01 오후 1:00:00 |
2012-02-01 오후 1:30:00 |
CAR_0000000000000071 |
M |
003 |
0.5 |
2012-02-01 오후 8:00:00 |
2012-02-01 오후 10:00:00 |
CAR_0000000000000070 |
M |
002 |
2 |
2012-02-01 오후 6:30:00 |
2012-02-01 오후 7:30:00 |
CAR_0000000000000071 |
F |
003 |
1 |
2012-02-02 오전 1:30:00 |
2012-02-04 오후 6:30:00 |
CAR_0000000000000070 |
M |
003 |
65 |
2012-02-05 오전 3:30:00 |
2012-02-06 오후 9:30:00 |
CAR_0000000000000080 |
F |
001 |
42 |
2012-02-06 오전 5:00:00 |
2012-02-06 오후 7:00:00 |
CAR_0000000000000080 |
M |
003 |
14 |
2012-02-06 오후 6:30:00 |
2012-02-06 오후 7:30:00 |
CAR_0000000000000071 |
M |
003 |
1 |
기존 쿼리는 아래와 같습니다.
select
rvrvsdate
, count(caid)
, sum(runtime) runtime
, (nvl(SUM(stman),0)/count(caid) *100) stman
, (nvl(SUM(stwoman),0)/count(caid) *100) stwoman
, (nvl(SUM(stperson),0)/count(caid) *100) stperson
, (nvl(SUM(stcompany),0)/count(caid) *100) stcompany
, (nvl(SUM(stschool),0)/count(caid) *100) stschool
, (sum(runtime)/(count(caid) *24)*100) stratio
from (
select
TO_CHAR( a.rvrvsdate, 'YYYYMMDD' ) rvrvsdate
, caid
,(rvrvedate -rvrvsdate)*24 runtime
, case when mbsex='M' then 1 end stman
, case when mbsex='F' then 1 end stwoman
, case when grtype='001' then 1 end stperson
, case when grtype='002' then 1 end stcompany
, case when grtype='003' then 1 end stschool
from tbreservation a
left outer join tbmember b on a.mbid=b.mbid
where 1=1
)
group by rvrvsdate
order by rvrvsdate
위의 색깔 부분이 아래와 같이 날자 구분되어져 시간이 계산되길 원합니다.
고수님들의 조언 부탁 드립니다.
2012-02-02 오전 1:30:00 |
2012-02-02 오후 11:59:59 |
CAR_0000000000000070 |
M |
003 |
22.5 |
2012-02-03 오전 00:00:00 |
2012-02-03 오후 11:59:59 |
CAR_0000000000000070 |
M |
003 |
24 |
2012-02-04 오전 00:00:00 |
2012-02-04 오후 6:30:00 |
CAR_0000000000000070 |
M |
003 |
18.5 |
2012-02-05 오전 3:30:00 |
2012-02-05 오후 11:59:59 |
CAR_0000000000000080 |
F |
001 |
20.5 |
2012-02-06 오전 00:00:00 |
2012-02-06 오후 9:30:00 |
CAR_0000000000000080 |
F |
001 |
21.5 |
|