Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75

Расчет стажа работы

28.02.2017, 12:45. Показов 5188. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Есть таблица job с полем start_year в который записывается год начала работы в компании. Необходимо вычислить стаж работы.

Delphi
1
2
3
4
5
6
7
with fdm.Query do
  begin
    close;
    sql.Clear;
    sql.Add('select today - start_year as staj from job')
  end;
finfo.label31.Caption := fdm.Query.fieldbyname('staj').AsString;
делаю так и в ответ получаю ошибку, что поле staj не найдено в наборе данных adoquery.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2017, 12:45
Ответы с готовыми решениями:

Расчет стажа
Помогите как сделать подсчет. Необходима следующая таблица. Столбцы: лет, месяцев, дней, всего в днях. При заполнении первых трех,...

Расчет стажа - Не корректный
Здравствуйте и Всем Доброго дня! Тут у меня при заполнении БД скоропостижно вскочил вопрос, типа вылезла ошибочка. :( При вычислении...

Расчет трудового стажа сотрудников
Всем доброго времени суток. Нужна помощь!!! Есть база расчета стажа сотрудников. В поле период службы, есть 3 строки с...

32
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.02.2017, 18:10
Студворк — интернет-сервис помощи студентам
Шаг 3.
SQL
1
SELECT DateDiff('yyyy',DATE(),start_year) AS staj FROM job WHERE id_sotr = 3
Должны получить 0
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
28.02.2017, 18:25  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
Шаг 3.
SELECT DateDiff('yyyy',Date(),start_year) AS staj FROM job WHERE id_sotr = 3
Должны получить 0

Выдает следующую ошибку

[Error] main.pas(77): ')' expected but identifier 'yyyy' found
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
28.02.2017, 18:32
Лучший ответ Сообщение было отмечено Mihter как решение

Решение

удваиваем кавычку '
Delphi
1
sql.Add('SELECT DateDiff(''yyyy'',Date(),start_year) AS staj FROM job WHERE id_sotr = 3');
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
01.03.2017, 07:41  [ТС]
YuryK, простите мне мою глупость, только изучаю это дело все и таких нюансов еще не знаю.

Выполнил, вернуло 0

Добавлено через 13 часов 5 минут
YuryK, почему возвращает 0 ?

синтаксис же такой
SQL
1
DATEDIFF(datepart, startdate, enddate)
в запросе
SQL
1
SELECT DateDiff(''yyyy'',DATE(),start_year) AS staj FROM job WHERE id_sotr = 3
находится разница между датой в ячейке и системной?
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
01.03.2017, 07:45
потому что между 26.02.2017 20:25:59 и сегодняшним днем 0 полных лет
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
01.03.2017, 07:56  [ТС]
YuryK, спасибо огромное!
0
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
03.03.2017, 07:56  [ТС]
YuryK, добрый день!

Скажите, пожалуйста, а чтобы рассчитать стаж всех сотрудников сразу и записать в столбец staj, необходимо просто убрать условие where? Если да, то мне выдает ошибку синтаксиса.
SQL
1
SELECT DateDiff(''yyyy'',start_year, DATE()) AS staj FROM job
это необходимо для того чтобы потом рассчитать среднний стаж, думаю сделать так
SQL
1
SELECT avg(staj) FROM job
Если ход мыслей неверный, прошу подсказать как сделать лучше.
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
03.03.2017, 09:05
Цитата Сообщение от Mihter Посмотреть сообщение
Если да, то мне выдает ошибку синтаксиса.
это текст запроса или константа в
Delphi
1
sql.Add()
а то в первом случае сдвоенные кавычки не нужны

Цитата Сообщение от Mihter Посмотреть сообщение
и записать в столбец staj
т.е. о уже в таблице физически образовался?
тогда не SELECT нужен, а UPDATE

Цитата Сообщение от Mihter Посмотреть сообщение
чтобы потом рассчитать средний стаж
наверное можно и "сразу"
SQL
1
SELECT avg(DateDiff(...)) FROM job
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
03.03.2017, 11:24  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
это текст запроса или константа в
это константа.

Цитата Сообщение от YuryK Посмотреть сообщение
т.е. о уже в таблице физически образовался?
тогда не SELECT нужен, а UPDATE
нет этого столбца в базе, должен образоваться на момент расчета среднего стажа.

Цитата Сообщение от YuryK Посмотреть сообщение
наверное можно и "сразу"
попробовал так, как текст запроса через инспектор объектов.

SQL
1
SELECT avg(DateDiff('yyyy',start_year, DATE()) AS staj FROM job) FROM job;

пишет что ошибка синтаксисапропущен оператор
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
03.03.2017, 11:26
Цитата Сообщение от Mihter Посмотреть сообщение
Если да, то мне выдает ошибку синтаксиса.
тогда озвучь её, если сам интерпретировать не можешь
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
03.03.2017, 11:34  [ТС]
сейчас попробовал внести текст запроса в инспекторе объектов ADOQuery.
SQL
1
SELECT avg(DateDiff('yyyy',start_year, DATE()) AS staj FROM job) FROM job;
в ответ получил
Ошибка синтаксиса (пропущен оператор) в выражении avg(DateDiff('yyyy',start_year, DATE()) AS staj FROM job).
0
1040 / 856 / 335
Регистрация: 08.12.2016
Сообщений: 3,283
03.03.2017, 11:45
Лучший ответ Сообщение было отмечено Mihter как решение

Решение

SQL
1
SELECT Avg(DateDiff('yyyy',[start_year],DATE())) AS AvgStaj FROM job;
1
0 / 0 / 1
Регистрация: 15.04.2015
Сообщений: 75
03.03.2017, 12:04  [ТС]
Спасибо большое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2017, 12:04
Помогаю со студенческими работами здесь

Расчет стажа для сотрудников
Помогите, пожалуйста рассчитать стаж в аксесс для сотрудников, у которых входит в стаж и служба в вооруженных силах и гражданский стаж и...

Расчет рабочего стажа в отдельной конфигурации
Здравствуйте. Помогите пожалуйста с созданием конфигурации. Я в 1С практически вообще ничего не знаю, но так получилось, что мне дали...

Подробный расчет стажа в access 2003
Подробный расчет стажа в access 2003, подскажите пожалуйста. Есть форма в access 2003, нужно, что бы в это форме считался стаж сотрудников...

Высчитывание стажа работы
1. Добрый вечер. В таблице добавил "Дату начала работы". Какую формулу надо ввести , чтобы высчитывала стаж работы в днях в отчете? MS...

Подсчет среднего стажа работы
Всем привет! Просьба помочь в решении такой задачи: Необходимо выбрать из справочника персонала предприятия подразделения, средний стаж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru