私は、oracleベースのクエリを使用して、従業員の勤務時間を取得する必要があります。トランザクションテーブル複雑なSQLのクエリオフィスの人の平均勤務時間を見つけるために
トランザクションテーブルには、この目的で使用できる日時フィールドがあります。 1)日付の最初のトランザクションと同じ日付の最後のトランザクションを見つける - その日付の彼の時間とタイムアウト 2)全体的な時間 - 次のように各日付のすべての時間インの平均として、同様にタイムアウトのため
トランザクション・テーブルがあるか:transctn(transid, resourceid, event, currentdate)
第二の要件は、毎日行わ平均取引を見つけることで、基本的になります毎日のトランジションの数を求め、その平均を求めます。
frequent working time(based on average): 9:43 am - 6:45 pm
average transactions performed/day = 43
私はTransctnが私のドメインクラスであれば休止状態使用して、よりスマートにOracleのSQLで上記の要件を記述したりするにはどうすればよい:リターン結果がユーザーIDがクエリを提供する
最終的な答えをする必要があり、
私はこのようなものがあります:
select 'frequent working time: '
||(select rtrim(to_char(min(currentdate),'hh:mi pm')) from transctn)
||' - '||(select rtrim(to_char(max(currentdate),'hh:mi pm')) from transctn)
||', average transactions performed/day = '
||(select rtrim(to_char(count(distinct transid)/
count(distinct(to_char(currentdate,'rrmmdd')))) from transctn)
from dual
私はこのようなSELectの頻繁な作業時間を持っています: '||(transtnからのrtrim(to_char(mind)、' hh:mi pm ')の選択) ||' - '||(transtnからのtotchar(to_char(max(currentdate)、' hh:mi pm ')))from ||'、平均取引実行日/ ' ||(選択rtrim(to_char(count(distinct) transid)/ count(別名(to_char(currentdate、 'rrmmdd'))))from transctn)デュアルから –