Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
 Аватар для SanychBY
39 / 46 / 3
Регистрация: 04.06.2013
Сообщений: 1,532

Вычислить значение поля по значению другого

01.03.2016, 09:15. Показов 2018. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хай
SQL
1
2
3
4
5
CREATE TABLE [GROUP]([IDGroup] INT PRIMARY KEY,
Faculty CHAR(10) NOT NULL FOREIGN KEY REFERENCES FACULTY(Faculty),
Profession CHAR(20) NOT NULL FOREIGN KEY REFERENCES PROFESSION(Profession),
Year_first SMALLINT CHECK(Year_first < YEAR(getdate()) + 2)
);
Нужно добавить поле Course(курс), которое должно вычисляться автоматически на основе поля Year_first (год поступления).
Как это сделать. Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2016, 09:15
Ответы с готовыми решениями:

Вывод количества полей одного поля для другого поля этой же таблицы
Здравствуйте! Есть таблица Statement, в которой есть два поля: StatementNumber и StudentID. Для каждой ведомости может быть несколько...

Автозаполнение поля в форме по значению другого поля
Здравствуйте Имеется форма в которой одно поле (ПолеСоСписком60) заполняется выбором значения из списка а второе поле (Станция Мир)...

Значения поля формы по значению другого поля
Здравствуйте! У меня следующая ситуация: создаю в Access базу данных для колл-центра. Смысл её - в том, чтобы операторы вбивали данные...

3
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
01.03.2016, 10:49
Specify Computed Columns in a Table
0
Zero day
 Аватар для Meridian21
267 / 231 / 78
Регистрация: 16.12.2015
Сообщений: 943
Записей в блоге: 4
03.03.2016, 13:06
SanychBY, во-первых, добавь колонку через alter table add column_name type
во-вторых, нужен блок с циклом, в котором будут выбираться строки с пустым course (по id например), считаться курс на разнице дат (у меня в примере sysdate - дата поступления, но можно и другую логику использовать), и, вычисленный курс будет заносится в таблицу (update). Условный пример кода:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
DECLARE
  p_1 NUMBER;
  p_2 NUMBER;
  p_3 NUMBER;
  p_4 NUMBER;
BEGIN
  SELECT MIN(q.id_id) INTO p_1 FROM test_tab_1 q WHERE q.course IS NULL; 
  SELECT MAX(q.id_id) INTO p_2 FROM test_tab_1 q WHERE q.course IS NULL; 
  FOR p_3 IN p_1 .. p_2 loop
    SELECT (SELECT round(months_between(to_date(trunc(sysdate)),
                                        (SELECT q.date_1
                                           FROM test_tab_1 q
                                          WHERE q.id_id =
                                                (SELECT MIN(q.id_id)
                                                   FROM test_tab_1 q
                                                  WHERE q.course IS NULL))) / 12,1)
              FROM dual)
      INTO p_4
      FROM dual;
    IF p_4 <= 6 THEN
      UPDATE test_tab_1 q
         SET q.course =
             (SELECT round(months_between(to_date(trunc(sysdate)),
                                          (SELECT q.date_1
                                             FROM test_tab_1 q
                                            WHERE q.id_id =
                                                  (SELECT MIN(q.id_id)
                                                     FROM test_tab_1 q
                                                    WHERE q.course IS NULL))) / 12,1)
                FROM dual)
       WHERE q.id_id = p_3;
    ELSE
      UPDATE test_tab_1 q SET q.course = NULL WHERE q.id_id = p_3;
    END IF;
  END loop;
END;
У меня добавлена еще проверка на получившийся курс, на случай, если курс больше 6-ти, то вносится null. Если такой ситуации не возникнет - то проверку убери. И внимательно с округлением курса, но это зависит от того, как ты его будешь высчитывать.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
03.03.2016, 13:55
Цитата Сообщение от Meridian21 Посмотреть сообщение
Условный пример кода:
Это не Microsoft SQL.
Ибо нет такого типа - NUMBER
Нет FOR IN LOOP
Нет никакой дурацкой dual
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.03.2016, 13:55
Помогаю со студенческими работами здесь

Записать в таблицу по значению другого поля из формы
На форме есть поле Страна. Нужно автоматически записать код подрегиона, а затем и региона, к которому она относится.

Условие в запросе: отбор в поле по значению другого поля
Здравствуйте. Подскажите как правильно записать условие в запросе? В запросе есть поля: Фамилия, Цех, Дата_выбытия_из_цеха. Работник может...

Как ограничить выпадающий список по значению другого поля?
Приветствую знатоков. Подскажите решение вот для такой проблемы - При создании Заявки на выписку товара ( форма) в поле Группа товара,...

Присвоение значению поля значение поля другой формы
Подскажите, плиз как реализовать, чтобы при нажатии кнопки &quot;Заказать у поставщика2&quot; на форме &quot;Заказ&quot;, значение поля...

Значение одного поля зависит от значения другого поля
Всем здравствуйте! Подскажите пожалуйста, как прописать условие, чтобы при выборе из поля со списком &quot;подраздел&quot; значения...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru