У меня проблема с делом в теме.Я хотел бы вычесть остаток из двух сумм.
Если есть значение> 0, то я хочу добавить остаток на каждого сотрудника, разделенного по MANAGER_ID, но каждый цент.
Например: остальное - 0,04 $, и у меня три сотрудника под руководством одного и того же менеджера.И я выберу максимальное значение идентификатора сотрудника и добавлю 0,01 $ к записи, второй получу 0,01 $, следующий 0,01 $, и снова максимальное значение идентификатора сотрудника получится на 0,01 $ больше, потому чтоЕсли остаток больше, чем количество сотрудников с тем же руководителем, то цикл будет повторяться.
Другой пример: когда у нас 0,02 $ отдыха и четыре сотрудника, только первые два получат 0,01 $, а последние два 0,00 $.
Как это сделать, используя только SQL?Без PL / SQL.Буду благодарен за любую помощь.
CREATE TABLE TMP_SCKOV_CASE
(MANAGER_ID NUMBER
,EMPLOYEE_ID NUMBER
,AMOUNT NUMBER
,AMOUNT2 NUMBER
);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (1,122,1053.21, 1053.23);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (1,123,1053.21, 1053.23);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (1,124,1053.21, 1053.23);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (1,125,1053.21, 1053.23);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (5,126,1229.87, 1229.92);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (5,127,1229.87, 1229.92);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (5,128,1229.87, 1229.92);
INSERT INTO TMP_SCKOV_CASE (MANAGER_ID, EMPLOYEE_ID, AMOUNT, AMOUNT2) VALUES (5,129,1229.87, 1229.92);
SELECT T.*, T.AMOUNT2-T.AMOUNT DIFF FROM TMP_SCKOV_CASE T