C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 149 を表示中)
■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

解決済み
返信 編集キー/


管理者用

- Child Tree -