| ■86783 / ) |
Re[2]: Oracleの検索SQLについて |
□投稿者/ furu (161回)-(2018/03/15(Thu) 12:47:40)
|
■No86777 (魔界の仮面弁士 さん) に返信
魔界の仮面弁士さん、勉強になります。
TT_R25さん
解決済みですが、同じ日に3件以上あった場合にも
対応できるSQLを考えてみました。
ID | 社員CODE | 作業日 |開始時間|終了時間
11|A011 |20180301 |1000 |1600
12|A011 |20180301 |1100 |1200
13|A011 |20180301 |1300 |1400
WITH KINTAI1 AS (
SELECT
T_KINTAI.*,
TO_DATE(作業日 || 開始時間, 'YYYYMMDDHH24MISS') AS 開始日時,
TO_DATE(作業日 || 終了時間, 'YYYYMMDDHH24MISS')
+ CASE WHEN 開始時間 >= 終了時間 THEN 1 ELSE 0 END AS 終了日時
FROM
T_KINTAI
)
SELECT ID, 社員CODE, 作業日, 開始時間, 終了時間
FROM KINTAI1 K
WHERE exists (
select * from KINTAI1 M
where K.ID <> M.ID and
K.社員CODE = M.社員CODE and
K.作業日 = M.作業日 and
K.開始日時 <= M.終了日時 and K.終了日時 >= M.開始日時)
order by ID
|
解決済み
|