forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   PHP / MySQL (http://forum.boolean.name/forumdisplay.php?f=135)
-   -   Проблема с вычисляемым столбцом в SQL (http://forum.boolean.name/showthread.php?t=14449)

cherepets 20.03.2011 20:40

Проблема с вычисляемым столбцом в SQL
 
Есть таблица, в ней столбец "Количество".
Надо в вычисляемом столбце найти долю.
Пишем [Количество] / SUM([Количество])
Внезапно получаем Ошибка при проверке формулы для столбца "Доля".
Разные варианты скобок, кавычек, mod вместо деления и т.п. пробовал.

cyberblut 20.03.2011 21:43

Ответ: Проблема с вычисляемым столбцом в SQL
 
а мона весь запрос?

cherepets 21.03.2011 11:55

Ответ: Проблема с вычисляемым столбцом в SQL
 
Пока еще не запрос. Я в СУБД создаю таблицу.

cyberblut 21.03.2011 12:00

Ответ: Проблема с вычисляемым столбцом в SQL
 
Цитата:

Сообщение от cherepets (Сообщение 183374)
Пока еще не запрос. Я в СУБД создаю таблицу.

Силой мысли создаёшь?

cherepets 21.03.2011 22:45

Ответ: Проблема с вычисляемым столбцом в SQL
 
Не силой мысли, а средствами СУБД.
Вот в виде запроса:
PHP код:

CREATE TABLE [dbo].[Персонал](
    [
ID_перс] [intIDENTITY(1,1NOT NULL,
    [
Должность] [nchar](10NOT NULL,
    [
Количество] [intNOT NULL,
    [
Доля]  AS ([Количество] / SUM([Количество]))
ON [PRIMARY


moka 21.03.2011 23:29

Ответ: Проблема с вычисляемым столбцом в SQL
 
Не совсем понял чего ты добиваешься этой строкой.
Код:

[Доля]  AS ([Количество] / SUM([Количество]))
Ты не можешь использовать так. Если тебе нужен запрос из этой таблицы, то ты должен её создать сперва, затем уже делать запросы (SELECT).

cherepets 22.03.2011 00:06

Ответ: Проблема с вычисляемым столбцом в SQL
 
Нет. Мне нужен в таблице столбец, который будет вычисляться по формуле.

moka 22.03.2011 00:11

Ответ: Проблема с вычисляемым столбцом в SQL
 
То есть когда вводишь данные, он будет изменять их автоматически?
Тебе нужны тогда триггеры.

HAMANN 22.03.2011 00:45

Вложений: 1
Сомневаюсь что изменять нужно когда вводишь. SUM([Количество]) меняется с каждым добавлением, значит и вычислять долю нужно с каждым SELECT

вот например у меня таблица `some_table`:

ID | kolvo
-----------

PHP код:

SELECT 
some_table
.*, 
some_table.kolvo / `SUM_TBL`.`SUM` as Dolya

FROM 
some_table
,
(
    
SELECT SUM(some_table.kolvo) as `SUMFROM some_table
) as `SUM_TBL


cherepets 22.03.2011 11:06

Ответ: Проблема с вычисляемым столбцом в SQL
 
Т.е. нельзя добавить такой столбец в ту же таблицу?

HAMANN 22.03.2011 12:14

Ответ: Проблема с вычисляемым столбцом в SQL
 
Это не Exel. Тут в ячейку нельзя забить формулу. Она не будет динамической. Выход только считать долю во время выборки

cherepets 22.03.2011 12:57

Ответ: Проблема с вычисляемым столбцом в SQL
 
Просто формулу можно. Видимо нельзя забить именно формулу, которая работает не только с текущей строкой.
Печально, ну ладно, сделаю запросом...

cyberblut 22.03.2011 12:58

Ответ: Проблема с вычисляемым столбцом в SQL
 
Я вот понять не могу, триггеры из другой религии или как? Что за СУБД? Только не говори, что Access:)

cherepets 22.03.2011 22:12

Ответ: Проблема с вычисляемым столбцом в SQL
 
Не Access. MSSQL.
Триггеры нельзя. Я для универа делаю задание и приходится использовать то, что в задании указано.

moka 23.03.2011 01:29

Ответ: Проблема с вычисляемым столбцом в SQL
 
Тогда используй temporary tables. Что в задании указано, сделать в один запрос? Или как?


Часовой пояс GMT +4, время: 10:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot