Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как построить правильный запрос SQL для вычисляемого поля?  [new]
Arya Stark
Member

Откуда:
Сообщений: 7
Добрый вечер)
Помогите, пожалуйста, понять как строить правильно запрос.
Есть табличка (на рисунке), последний столбец Суммы. В конце столбца нужно поле Общей суммы.
Затем создать еще один столбец рядом с формулой ( "каждую строчку с суммой/ на общую сумму" )* 100%.
И вывести на экран только те строки, где значения:
- больше 80%
-до 15%
- 5%

Как я поняла, получается нужно делать три запроса?
Помогите, пожалуйста, уже третий день думаю,как это сделать.
Может быть всё намного проще?
28 ноя 17, 22:34    [20989791]     Ответить | Цитировать Сообщить модератору
 Re: Как построить правильный запрос SQL для вычисляемого поля?  [new]
Arya Stark
Member

Откуда:
Сообщений: 7
Arya Stark,

К сообщению приложен файл. Размер - 68Kb
28 ноя 17, 22:35    [20989799]     Ответить | Цитировать Сообщить модератору
 Re: Как построить правильный запрос SQL для вычисляемого поля?  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
Arya Stark
Может быть всё намного проще?
Именно.
with t as
(
 select
  ...,
  sum(SummaSale) over () as SummaTotal,
  (100 * SummaSale) / sum(SummaSale) over () as [Percent]
 from
  [Есть табличка]
)
select
 *
from
 t
where
 [Percent] > 80 or [Percent] < 15 or [Percent] = 5
28 ноя 17, 23:51    [20990009]     Ответить | Цитировать Сообщить модератору
 Re: Как построить правильный запрос SQL для вычисляемого поля?  [new]
Arya Stark
Member

Откуда:
Сообщений: 7
invm, Благодарю!
Какой же я еще чайничек))
Можно узнать, что это за параметры t, as [Percent]? Что они значат? Мы их сами задаем?

with t as
(
select
...,
sum(SummaSale) over () as SummaTotal,
(100 * SummaSale) / sum(SummaSale) over () as [Percent]
29 ноя 17, 19:26    [20993411]     Ответить | Цитировать Сообщить модератору
 Re: Как построить правильный запрос SQL для вычисляемого поля?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30734
Arya Stark
Можно узнать, что это за параметры t, as [Percent]? Что они значат? Мы их сами задаем?
t - это мы сделали такое имя табличного выражения, определяемого конструкцией with
as [Percent] - так определяются имена колонок в SQL
29 ноя 17, 19:36    [20993437]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить