134
работок*(SELECT FIRST(значение) FROM Коэффициенты WHERE
наименование = 'Больничный')),0),0) AS Больничные,
IIf(Op.наименование='Отпуск',(T.[количествочасов]*R.средний_заработок*(SEL
ECT FIRST(значение) FROM Коэффициенты WHERE наименование =
'Отпуск')),0) AS Отпускные, T.дата AS Дата FROM Работники AS R, Отделы AS
O, Должности AS D, Табель AS T, Операции AS Op WHERE O.id=R.код_отдела
And D.id=R.код_должности And T.код_работника=R.id And
T.код_операции=Op.id");
//SELECT [Табельный №], ФИО, Должность, Отдел, SUM(Сделка) AS
Заработано, SUM(Больничные) AS БЛ, SUM(Отпускные) AS Отпуск FROM
Запрос1 GROUP BY [Табельный №], ФИО, Должность, Отдел
ADOQuery1->SQL->Add("SELECT [Табельный №], ФИО, Должность,
Отдел, Заработано AS Сделка, БЛ AS Больничные, Отпуск AS Отпускные,
(Заработано+БЛ+Отпуск) AS Итого FROM "
"(SELECT [Табельный №], ФИО, Должность, Отдел, SUM(Сделка)
AS Заработано, SUM(Больничные) AS БЛ, SUM(Отпускные) AS Отпуск FROM "
"(SELECT R.id AS [Табельный №], R.ФИО AS ФИО, D.наименование
AS Должность, O.наименование AS Отдел, (T.[количество часов]*Op.оплата) AS
Сделка, IIf(Op.наименование='Больничный',ROUND((T.[количество
часов]*R.средний_заработок*(SELECT FIRST(значение) FROM Коэффициенты
WHERE наименование = 'Больничный')),0),0) AS Больничные,
IIf(Op.наименование='Отпуск',ROUND((T.[количество
часов]*R.средний_заработок*(SELECT FIRST(значение) FROM Коэффициенты
WHERE наименование = 'Отпуск')),0),0) AS Отпускные, T.дата AS Дата FROM
Работники AS R, Отделы AS O, Должности AS D, Табель AS T, Операции AS Op
WHERE O.id=R.код_отделаAnd D.id=R.код_должностиAnd
T.код_работника=R.id AndT.код_операции=Op.id) GROUP BY [Табельный №],
ФИО, Должность, Отдел)");
ADOQuery1->ExecSQL();
ADOQuery1->Close();
ADOQuery1->Active=true;