Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150

Вычисляемое поле

28.11.2019, 13:26. Показов 6721. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток
Необходимо перемножить два значения, а после записать получившиеся значение в "Вычисляемый столбец, если это можно так назвать" каждое из них находится в разных таблицах, как это можно лучше сделать?Буду признателен любой помощи, заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.11.2019, 13:26
Ответы с готовыми решениями:

Вычисляемое поле
Добрый вечер! Подскажите, как сделать вычисляемое поле используя поля из другой таблицы(они соединены), и вообще, возможно ли это?

Вычисляемое поле
Такой вопрос, у меня в табличке есть вычисляемое поле. Его значение вычисляется с помощью скалярной функции. Эта функция по переданному в...

Вычисляемое поле
Тривиальная задача... переношу базу access 2010 на SQL сервер 2008. В аксе вычисляемое поле по типу . Формула не переносится в SQL...

15
5984 / 4559 / 1095
Регистрация: 29.08.2013
Сообщений: 28,197
Записей в блоге: 3
28.11.2019, 14:07
Цитата Сообщение от RideRS Посмотреть сообщение
каждое из них находится в разных таблицах
а поле добавить в третью таблицу?
0
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150
28.11.2019, 15:29  [ТС]
да, поле с результатом будет в другой таблице
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
28.11.2019, 16:04
Лучший ответ Сообщение было отмечено RideRS как решение

Решение

RideRS, вычисляемые поля в таблицах не рекомендуются. Если нужно занести результат в поле другой таблицы, используйте запрос, например так:
T-SQL
1
2
3
INSERT INTO Table2 (Field3)
SELECT (Field1/Field2)*3 AS Field3
FROM Table1
1
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150
28.11.2019, 16:11  [ТС]
Благодарю !
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.11.2019, 17:15
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
вычисляемые поля в таблицах не рекомендуются
Кем? И почему?
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
28.11.2019, 17:33
Цитата Сообщение от invm Посмотреть сообщение
Кем? И почему?
В книгах пишут, возможность есть, но лучше использовать запросы.
В таблицах хранятся исходные данные, а все остальное рассчитывается запросами. Так что смысл вычисляемого поля попадает под сомнение, если всегда можешь выдернуть любой расчет который нужен.
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.11.2019, 17:42
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
В книгах пишут, возможность есть, но лучше использовать запросы.
В этих книгах пишут чушь.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
28.11.2019, 20:20
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
если всегда можешь выдернуть любой расчет который нужен.
IMHO calculated field с точки зрения сервера могут быть эффективнее

Добавлено через 2 минуты
invm, хотелось бы услышать твое мнение
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
28.11.2019, 20:47
Цитата Сообщение от pincet Посмотреть сообщение
IMHO calculated field с точки зрения сервера могут быть эффективнее
Без разницы (если не рассматривать хранимые вычисляемые поля).
Что вычисляемый столбец в таблице, что вычисляемый столбец в представленни, что просто выражение в запросе - значение все равно будет вычисляться при обращении.
1
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
29.11.2019, 08:01
invm, pincet, Сколько людей, столько и мнений. Кто-то использует эту возможность, кто-то категорически нет
0
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150
29.11.2019, 12:41  [ТС]
Получилось подсчитать сумму через следующий запрос:
T-SQL
1
2
3
4
SELECT dbo.Подписные_издания.Подписная_цена_на_месяц * dbo.Подписки.Количество_месяцев_подписки AS Сумма_подписки
FROM 
dbo.Подписные_издания
JOIN dbo.Подписки ON dbo.Подписки.ID_Издания = dbo.Подписные_издания.ID_Издания
Но вот как сохранить эту сумму в таблицу с существующими записями?
Пробовал
T-SQL
1
INSERT INTO dbo.Подписки(Сумма_подписки)
но при этом добавляется новая пустая запись и уже в ней идёт сохранение подсчитанной суммы(
как быть?
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
29.11.2019, 12:45
RideRS, обновлять записи следует через UPDATE
https://docs.microsoft.com/ru-... rver-ver15
1
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150
29.11.2019, 13:20  [ТС]
Спасибо, вроде получилось через UPDATE, записи обновляются и сумма заносится в них же, но считает почему то неверно
T-SQL
1
2
3
4
5
6
7
8
INSERT INTO dbo.Подписки(Сумма_подписки)
SELECT dbo.Подписные_издания.Подписная_цена_на_месяц * dbo.Подписки.Количество_месяцев_подписки AS Сумма_подписки
FROM 
dbo.Подписные_издания
JOIN dbo.Подписки ON dbo.Подписки.ID_Издания = dbo.Подписные_издания.ID_Издания
 
UPDATE dbo.Подписки SET Сумма_подписки = (SELECT dbo.Подписные_издания.Подписная_цена_на_месяц * dbo.Подписки.Количество_месяцев_подписки AS Сумма_подписки)
FROM dbo.Подписки,dbo.Подписные_издания
При значении цены за месяц (5), а количестве месяцев (5), результат получается 50, хотя ж 25 должно быть.
0
 Аватар для Andrey-MSK
3360 / 2246 / 388
Регистрация: 14.08.2018
Сообщений: 7,588
Записей в блоге: 4
29.11.2019, 14:12
RideRS, в UPDATE FROM не надо, FROM нужен в SELECT для оператора SET. И вы условия потеряли (WHERE...). У вас получается Сумма_подписки ставится везде одинаковая по всей таблице dbo.Подписки.
Вот пример UPDATE из моей БД:
T-SQL
1
2
3
UPDATE vwPPDrawData --таблица (представление)
    SET TrMont = 491.05, TrKoeff=1, PPDiametr=N'Трубы потолка (вставки)', TrKoeffIzg=1 --что обновляем (у вас SELECT)
WHERE DrawNum=N'0000-03' AND List=N'85.04.010 МЧ' --для каких записей обновляем
А еще вопрос, зачем хранить расчитанные данные в таблице? Ведь всегда можно все получить запросом в любом удобном для вас виде.
0
1 / 1 / 0
Регистрация: 11.10.2015
Сообщений: 150
29.11.2019, 14:51  [ТС]
Спасибо вам, я тоже начинаю задумываться о том, чтобы отказаться от этого)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2019, 14:51
Помогаю со студенческими работами здесь

вычисляемое поле
Создал такой запрос: Select d.номер_договора, g.дата_очередного_платежа, g.количество_сделанных_платежей, ...

Вычисляемое поле
Добрый вечер, уважаемые программисты! Сегодня столкнулся с непонятной для меня штукой! Есть 2 таблицы в одной храниться информация об...

Вычисляемое поле и NULL
Создаю некий запрос типа SELECT *, Column1*100+20 FROM table1 Column1 в некоторых строчках имеет значение NULL, поэтому...

Вычисляемое поле по условию
Всем добрый день! Подскажите пожалуйста, как правильно написать запрос к таблице T: "Если значение поля T.1 = '200' то...

Вычисляемое поле в таблице
Добрый день. Прошу помощи, так как я только начинаю изучать SQL Server, возникла не простая (для меня) ситуация: Есть таблица которая...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru