![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
時給毎の勤務時間を求めるSQLを書こうとしているのですが、わけがわからなくなりました。
例
9:00~15:00 時給1,000円
15:00~21:00 時給1,100円
21:00~24:00 時給1,200円
シフトが3パターンあるわけではなく、時間帯で時給が変わるだけです。
9:00~18:00まで勤務する人がいる場合、
12:00~13:00の休憩時間を除いて、
1,000円→5時間
1,100円→3時間
というのをSQLで求めたいのです。
遅刻した場合は出勤時刻から計算し、休憩時間中も働いた場合は加算します。
ですので、休憩に入るときはタイムカードを打刻します。
9:30~18:30まで勤務した場合、9:00~18:00と同じ計算結果になります。
遅刻したときや休憩時間に突入したときなど、CASE文で入れ子だらけになって混乱してきました;
良いSQLがあれば教えてください。
No.2ベストアンサー
- 回答日時:
分単位の丸めとかとりあえずおいておきましょう
create table shift(id int,hour int,wage int);
insert into shift values
(1,9,1000),
(2,10,1000),
(3,11,1000),
(4,13,1000),
(5,14,1000),
(6,15,1100),
(7,16,1100),
(8,17,1100),
(9,18,1100),
(10,19,1100),
(11,20,1100),
(12,21,1200),
(13,22,1200),
(14,23,1200),
(15,24,1200);
//9:00~18:00
select sum(wage) from
(select 9 as start,17 end) work
left join shift
on hour between start and end
No.1
- 回答日時:
SQLはMSのSQL Serverですか?
プロシージャとか使わないときびしいかも
かりに14:30-15:30はたらくと14:00勤務と同様で1000円しかもらえないんですね?そうなると人がいなくて「30分だけ早く入ってくれない?」
とか絶対たのめないですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 求人情報・採用情報 介護の求人についてお伺いしたいです。 現在フリーターでアルバイトを探しており、グループホームの求人を 1 2023/03/20 23:15
- アルバイト・パート 22年10月から社会保険適用拡大について、詳しい方いらっしゃいましたら教えてください 2 2022/09/01 20:40
- 所得・給料・お小遣い 勤務時間:8時ー17時勤務(2時間休憩) 実稼働:7時間 勤務日数:週6勤務 毎週日曜日を休みとして 2 2023/07/26 18:25
- その他(Microsoft Office) Excel 勤務時間の計算について~(残業)有.無しの場合。 4 2022/07/17 21:03
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
- アルバイト・パート パートで働いています。 時給が900円です。9時から5時まで勤務しているのですが、時給で計算すると8 7 2022/04/23 15:51
- 就職 ホワイト企業ですか? 3 2023/03/10 15:16
- アルバイト・パート 日給8200円のバイト、今日初日行って来ました。 求人には、勤務時間は8時から17時まで。1日実働8 4 2023/06/01 19:34
- 転職 転職活動中で2社内定があり迷っています。皆様ならAとBどちらの方が良いと思いますか?理由もお願いしま 1 2023/02/06 12:20
- ヒーター・こたつ・ホットカーペット 教えて!gooに10分おきに質問をしていれば給料がもらえる仕事があれば、やりたいですか? 毎週金土日 4 2023/07/04 21:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
updateを1行ずつ実行したい。
-
マイクラPC版のコマンドで効率...
-
エクセルで最後の文字だけ置き...
-
php mysqlを使用してのリーグ表...
-
VIEWの元のテーブルのindexって...
-
小人の読み方は?
-
WordpressのContact form 7でzi...
-
高円寺の安いコインパーキング...
-
上位3位を求めるSQL文は?
-
葛西臨海公園のクリスタルビュ...
-
テキストファイルからのテーブ...
-
引数について
-
【sql】DUPLICATE KEY UPについて
-
ふたつのテーブルを参照してデ...
-
先日からなりすましメールで詐...
-
JR高松駅近くに郵便局ありますか?
-
ポスグレでの幾何学データ配列...
-
SQLがわからないです
-
山手線なぜのが間に入る・・・・
-
ID毎に最新の値を取得する
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
副問合せの書き方について
-
SQLサーバから、項目の属性(型...
-
SQL Left Join で重複を排除す...
-
select文のwhere句に配列を入れ...
-
VIEWの元のテーブルのindexって...
-
PL/SQLの変数について
-
マイクラPC版のコマンドで効率...
-
エクセルの関数について教えて...
-
SQLにて特定の文字を除いた検索...
-
sqlで、600行あるテーブルを100...
-
Access パラメータクエリをcsv...
-
Unionした最後にGROUP BYを追加...
-
inner joinをすると数がおかし...
-
複数テーブルのGROUP BY の使い...
-
ある条件の最大値+1を初番する...
-
MySQLのint型で001と表示する方...
-
クエリ表示と、ADOで抽出したレ...
-
[MySQL] UNIQUE制約の値を更新...
-
テーブル名を省略して「h.id」...
おすすめ情報
計算はMS SQL Server のテーブル値関数で構築しています。
例えのお話ですが、1分丸めですので、
1,000円×0.5時間=500円
1,100円×0.5時間=550円
で、14:30~15:30勤務ですと、1,050円になります。