
mysql初心者です。以下のデータから勤務時間(end_time-start_time-break
_time)が8時間以上、かつ終了時間が22時以降の場合、(end_time-22:00)を深夜残業時間として、深夜残業時間を計算したいのですが、case文で場合分けしてAかつBの場合というような書き方はどのように書いたらいいでしょうか。よろしくお願いします。
name start_time end_time break_time
田中 9:00 22:30 1:00
佐藤 9:00 21:00 1:00
渡辺 10:00 24:00 1:00
藤原 9:00 18:00 1:00
No.2ベストアンサー
- 回答日時:
AかつBならIFをつかってANDでつなげばいい気がしますが・・・
CASEにこだわるなら、WHENで条件外をしぼってELSEで実数を得ればよいかも
ざっくり今回のだとこんな感じ?
SELECT name,start_time,end_time,break_time
,CASE
WHEN end_time<'22:00:00' THEN NULL
WHEN TIMEDIFF(TIMEDIFF(end_time,start_time),break_time)<='08:00:00' THEN NULL
ELSE TIMEDIFF(end_time,'22:00:00')
END AS SHINYA
FROM schedule
ご回答ありがとうございます。
IF文でもいけるんですね、勉強になります。
こだわってはいませんが、まだまだ未熟なもので、今回CASE文しか思いつきませんでした。
IF文でも再度考えてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カーソル定義での条件分岐
-
PL/SQLでのSQL文法
-
PL/SQLカーソルの2重FORループ...
-
自動連番でカラムを更新したい
-
ORA-00904:無効な識別子の回避...
-
Texの枠囲み調節
-
PL/SQLにてカーソル名を変数に
-
Statement ignored というエラー
-
Accessのマクロでモジュールを...
-
SQLserver算術オーバーフロ...
-
Accessで年月日のデータ...
-
callで順に実行されるプロシー...
-
SQL*Loaderでのsysdate使用
-
キャッシュを使わずにSELECTを...
-
sqlplusのspoolで空白行出現
-
DATE型の省略値について
-
Access VBAで行ラベルが定義さ...
-
SQL ORDER BYにおける条件について
-
2016.3.2を日付として認識させたい
-
Accessの数値から時間に変換す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PL/SQLカーソルの2重FORループ...
-
PL/SQLでのSQL文法
-
カーソル定義での条件分岐
-
ORA-00904:無効な識別子の回避...
-
自動連番でカラムを更新したい
-
Texの枠囲み調節
-
カーソルフェッチにて、最終レ...
-
カーソルで集合関数を使った場...
-
PL/SQLのOPEN cursor_name FOR...
-
PL/SQLでの参照
-
【PL/SQL】LOOPした動的SQLにて...
-
T-SQLのカーソルで
-
PL/SQLにて、マスタから取得し...
-
PL/SQL カーソルのFROM句にカー...
-
カーソルループ内部でログを出力
-
【PL/SQL】CURSOR ・・・ IS SE...
-
PL/SQLのカーソルについて
-
T-SQLで
-
[Oracle9i]PL/SQLでFETCHしても...
-
PL/SQLにてカーソル名を変数に
おすすめ情報