ReportingDirector ManagerID EmployeeName EmployeeID WeekNumber Pointsrewarded
john(director) 1 a 11 week1 100
john(director) 1 b 22 week1 200
john(director) 1 c 33 week1 300
bob(director) 2 d 44 week1 -10
bob(director) 2 e 55 week1 30
bob(director) 2 f 66 week1 40
bob(director) 2 g 77 week1 50
bob(director) 2 h 88 week1 90
cavin(director) 3 i 99 week1 300
cavin(director) 3 j 100 week1 400
cavin(director) 3 k 111 week1 800
cavin(director) 3 l 222 week1 305
cavin(director) 3 m 333 week1 23
cavin(director) 3 n 444 week1 44
alpha (senior Director) 111 john 1111 week1 455
alpha(senior Director) 111 bob 2222 week1 -10
alpha(senior Director) 111 cavin 3333 week1 77
x x mr.aplha 1 week1 99
私は上記の表を持っています。ここには、3つのポジション、employees
、director
、senior director
があります。従業員はディレクターの下にあり、ディレクターはシニアディレクターの下にあります。それに応じてテーブルと報酬ポイントの値を確認してください
問題:ディレクターの下ですべての人が、ポイントを持っている場合はすなわち、その後、ディレクターは-100ポイントを取得し、-10の(PLZ pointsReawrded
列を参照)、そのそれぞれの取締役のためpointsRewarded
列に-100ポイントを追加します。従業員に-10歳以下の従業員がいない場合、ディレクターは200ポイントの報酬を得ます。
たとえば、テーブルの従業員 'd'はディレクターのボブの下にあります。 -100はボブに報酬を与えます。再び、ジョンの下にいる人は-10人なので、ジョンは200ポイントの報酬を得る。
チェーンの一番上にいるため、彼の下にある従業員のポイントが-10であっても、「アルファ」にポイントを与えることはありません。
ディレクターの従業員のスコアが-10で、そのディレクターに-100ポイントのスコアをペナルティ化する一般的なクエリを手伝ってもらえますか? 200ポイントの報酬でない場合。
のようなものを試してみてください? –
あなたがすでに試したコードを見てください。 – massko