【解決方法】SQLで年次休暇を計算します。


こんにちは、みんな、

これが私の状況です。 各従業員には毎年 30 日の年次休暇があり、6 か月の試用期間後にのみ取得可能です。 これは、従業員が入社するたびに、6 か月の完了後、つまり 180 日後に年次休暇が 12 日になり、7 か月目以降は毎月 2 日ずつ増加し、11 か月目以降は 6 日ずつ増加します。つまり、12 日までに休暇が与えられます。彼の月の年間休暇は合計 30 日になります。

1 年を終えると、年次有給休暇は再びゼロにリセットされ、毎月 2 日と 11 か月目に 6 日ずつ増加します。 したがって、休暇は試用期間後にのみ取得できるため、1 年目以外は毎年ゼロにリセットされ、毎月 2 日ずつ増加する必要があります。 誰か助けてくれませんか。 前もって感謝します 。

私が試したこと:

select Autoid,name, DateofJoining
,DATEADD(DAY,365,DateofJoining) AS oneyearcompletion
,GETDATE() AS todaydate
,DATEDIFF(day, DateofJoining, GETDATE()) AS totdays
,DATEDIFF(day, DateofJoining, GETDATE())/365 asyearcount
,case when (DATEDIFF(day, DateofJoining, GETDATE()) < 180 ) then 0 when (DATEDIFF(day, DateofJoining, GETDATE()) >180 )  then '2' end

from PPMS_TBL_EmployeeMaster where Autoid = 1

解決策 1

何のお手伝いをしますか? より良い雇用主を見つけるには? (ほとんどの企業はそのようには機能しません。休暇の権利は新年の初めから始まり、年が明ける前に退職した場合、使い過ぎた分は最終給与から差し引かれます。)このように行動する唯一の企業は、次のような架空の企業です。宿題 … そして、課題については、提出する必要があるものを満たし始める作業がまだ示されていません。

私たちは行き詰まっている人々を喜んで助けますが、それは私たちがあなたのためにすべてを行うためにここにいるという意味ではありません。 私たちがすべての仕事を行うことはできません。あなたはこれに対してお金をもらっているか、成績の一部であり、私たちがあなたのためにすべてを行うのはまったく公平ではありません。

したがって、私たちはあなたに仕事をしてもらう必要があります。あなたが行き詰まったときは、私たちがお手伝いします。 それは、あなたが提出できる段階的な解決策を提供するという意味ではありません。
まず、自分が現在どこにいるのか、そしてプロセスの次のステップは何なのかを説明します。 次に、次のステップを実行するために何を試みたか、また実行したときに何が起こったかを教えてください。

開始する際に問題が発生する場合は、次のことが役立つかもしれません。 問題を解決するコードの書き方、初心者ガイド[^]

コメント

タイトルとURLをコピーしました