1

出席簿には次の列があります。

ID          Numeric Auto Increment  
Employee    ID Int  
Attendance  Bit

私は見つける必要があります

  1. n 日以上連続して休暇を取得した従業員の数。
  2. 就業日の前後に正確に n 日間休暇をとります。例: 稼働日の 2 日前と 2 日後
    (「n」は入力パラメーター)。

ここに画像の説明を入力

これまでのところ、簡単なクエリを実行しました。しかし、継続的に現れる価値を探すことは、私にとって新しいことです。どこから始めればいいのか体が助けてくれますか..

4

1 に答える 1

1

クエリでの書き方はわかりませんが、アルゴリズムは次のようになります。

[1, 3, 2, 2] の形式で、従業員ごとに休暇リストを作成します。ここで、各要素は、連続勤務日数後の連続休暇日数を意味します。この場合、例えば

[False, True, True, False, False, False, True, True, False, False, True, False, False]
 <-1--> Work days   <---------3------->  Work days   <----2----->  Work  <----2----->

要件 (1) は、配列内で >= n である数値を見つけることによって実装できます。

要件 (2) は、値 n を持つ配列内の 2 つの連続した数値を見つけることによって確認できます。(この解決策は正しくありません。稼働日数も、おそらく同じ長さの配列に保存する必要がありますが、これはユーザーに任せます)。

于 2013-05-07T11:16:22.713 に答える