![]() |
Проблема с вычисляемым столбцом в SQL
Есть таблица, в ней столбец "Количество".
Надо в вычисляемом столбце найти долю. Пишем [Количество] / SUM([Количество]) Внезапно получаем Ошибка при проверке формулы для столбца "Доля". Разные варианты скобок, кавычек, mod вместо деления и т.п. пробовал. |
Ответ: Проблема с вычисляемым столбцом в SQL
а мона весь запрос?
|
Ответ: Проблема с вычисляемым столбцом в SQL
Пока еще не запрос. Я в СУБД создаю таблицу.
|
Ответ: Проблема с вычисляемым столбцом в SQL
Цитата:
|
Ответ: Проблема с вычисляемым столбцом в SQL
Не силой мысли, а средствами СУБД.
Вот в виде запроса: PHP код:
|
Ответ: Проблема с вычисляемым столбцом в SQL
Не совсем понял чего ты добиваешься этой строкой.
Код:
[Доля] AS ([Количество] / SUM([Количество])) |
Ответ: Проблема с вычисляемым столбцом в SQL
Нет. Мне нужен в таблице столбец, который будет вычисляться по формуле.
|
Ответ: Проблема с вычисляемым столбцом в SQL
То есть когда вводишь данные, он будет изменять их автоматически?
Тебе нужны тогда триггеры. |
Вложений: 1
Сомневаюсь что изменять нужно когда вводишь. SUM([Количество]) меняется с каждым добавлением, значит и вычислять долю нужно с каждым SELECT
вот например у меня таблица `some_table`: ID | kolvo ----------- PHP код:
|
Ответ: Проблема с вычисляемым столбцом в SQL
Т.е. нельзя добавить такой столбец в ту же таблицу?
|
Ответ: Проблема с вычисляемым столбцом в SQL
Это не Exel. Тут в ячейку нельзя забить формулу. Она не будет динамической. Выход только считать долю во время выборки
|
Ответ: Проблема с вычисляемым столбцом в SQL
Просто формулу можно. Видимо нельзя забить именно формулу, которая работает не только с текущей строкой.
Печально, ну ладно, сделаю запросом... |
Ответ: Проблема с вычисляемым столбцом в SQL
Я вот понять не могу, триггеры из другой религии или как? Что за СУБД? Только не говори, что Access:)
|
Ответ: Проблема с вычисляемым столбцом в SQL
Не Access. MSSQL.
Триггеры нельзя. Я для универа делаю задание и приходится использовать то, что в задании указано. |
Ответ: Проблема с вычисляемым столбцом в SQL
Тогда используй temporary tables. Что в задании указано, сделать в один запрос? Или как?
|
Ответ: Проблема с вычисляемым столбцом в SQL
в задании сказано сделать таблицу с вычисляемым полем с долей сотрудников, занимающих данную должность, от общего числа сотрудников.
|
Ответ: Проблема с вычисляемым столбцом в SQL
Ну нету в БД понятия "вычисляемое поле". Чтобы автоматом считать значение для какого-либо поля при занесении данных, нужно либо городить двухэтажный запрос либо пользоваться триггерами.
И модель данных у тебя кривая, если что. По хорошему счёту, у тебя должны быть 2 таблицы - Должности и Сотрудники. В таблице Должности будет твоё поле, хранящее отношение количества сотрудников на данной должности к общему количеству. То что ты его запихнул в таблицу с сотрудниками на корню неверно. Может тебе таблицу всё-таки в экселе нужно сделать? :) |
Ответ: Проблема с вычисляемым столбцом в SQL
Нет, у меня одна таблица. Самого перечня сотрудников не надо.
И точно в MSSQL. Понятие "вычисляемое поле" есть. http://msdn.microsoft.com/ru-ru/library/ms345330.aspx Поле Стоимость AS Количество * Цена работает. Сделал в итоге хранимую процедуры. Наверное это максимально близко к исходному заданию. Завтра пойду сдавать |
Ответ: Проблема с вычисляемым столбцом в SQL
cherepets, используй представление (view).
Код:
create view v_Персонал as Тьфу, уже не актуально. |
Часовой пояс GMT +4, время: 01:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot