2017-09-19 4 views
-2

私は休暇ソフトウェアを開発しています。私の問題は休暇日を1年後のデフォルトの日数(30日)にリセットする必要があることです。あなたは私にそれを手伝って欲しいですか? ps:私はVB.NETとSQL Serverを使用しています。年に基づいてSQL Server 2008の列をリセットする方法

create table Addemployees 
( 
    Fname varchar (500), 
    Lname varchar (500), 
    ID int not null identity(1, 1) primary key, 
    CIN varchar (500), 
    fromD date, 
    toD date, 
    Email varchar(500), 
    phone varchar(500), 
    Leave_num int 
) 

これにより、ユーザは、このロジックをトリガーする方法については

+0

こんにちは!これまでに何を試しましたか? Stackoverflowは無料のコーディングサービスではありません。コードに問題がある場合はお手伝いします –

+1

テーブルの構造、サンプルデータ、予想される出力を表示してください。 – Sami

+0

私は本当にそれをやる方法を知らないので、私は別のものを試しましたが、 –

答えて

1
update addemployees 
set leave_num = 30 

によって挿入休暇番号を持つ列Leave_numが含まれて錠剤です。あなたはこれについて行くことができる多くの方法があります。あなたは、エージェントジョブのような何らかの種類のスケジューラ、または定期的にこのプロセスを定期的に実行するためにあなたが自由に持っているものを必要とします。重要なことは、既に更新されている場合はLeaveNumを更新し続けることではありません。最後にリセットされたことを示す余分な列を各行に保持することができます。これはおそらく最も簡単ですが、それが本当にオール・オア・タイプのもので、その日付がすべて同じであれば、それはスペースの無駄です。

これらの年に1回のジョブがいつ実行されるか、またはExtended Property(設定にはもう少し複雑です)のようなものに関する情報を含む別のテーブルを作成することもできます。

あなたが選んだ解決策が何であれ、日付(またはちょうど年)を保存してから、プロセスが実行されたときに、最後の更新の差が1年を超える場合(または、更新は現在の年よりも少ない)更新を実行し、その情報を更新する。列、個別の表、拡張プロパティーのいずれかです。

+0

それは依存しています。 「1年後」とは何ですか?一月が先? 'fromD'の365日後?何か完全に?それは一人ひとりに同じですか、違うのですか? – Xedni

+0

もう一度、その論理は何ですか? – Xedni

関連する問題