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

Откуда:
Сообщений: 35
Всем привет.
Вопрос про запрос в MS SQL.
Сам глубоко предмет не знаю.
Посему ногами не пинайте.

Есть запрос
SELECT
CASE WHEN cost_with_discount > 111 THEN
10
ELSE
0
END
FROM visits

Нужно к этому выбранному полю (CASE WHEN...) добавить какое нибудь значение в соседнее.
Как это сделать?

Например так:
SELECT cost, cost*30 FROM visit.
Но тут понятно. Обращение к полю. И всё проходит. А как обратиться к полю из примера выше - не могу понять.
1 мар 16, 20:54    [18884519]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
gr1047,
SELECT
CASE WHEN cost_with_discount > 111 THEN
10
ELSE
0
END,
CASE WHEN cost_with_discount > 111 THEN
10
ELSE
0
END + 30,
FROM visits
1 мар 16, 20:55    [18884524]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
запятую лишнею вкорячил но суть надеюсь понятна
1 мар 16, 20:56    [18884528]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
gr1047
Member

Откуда:
Сообщений: 35
Это то понятно. Просто в реальности, это поле считается трёхэтажным запросом. Думал взять готовое значение из соседнего ...
1 мар 16, 20:58    [18884543]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gr1047
Это то понятно. Просто в реальности, это поле считается трёхэтажным запросом. Думал взять готовое значение из соседнего ...
Ваш SELECT - в подзапрос (derived table - производная таблица).
Тогда во внешнем SELECTе из этой производной таблицы можно использовать имя вычисляемого поля.
1 мар 16, 21:10    [18884592]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
gr1047
Member

Откуда:
Сообщений: 35
iap
Ваш SELECT - в подзапрос (derived table - производная таблица).
Тогда во внешнем SELECTе из этой производной таблицы можно использовать имя вычисляемого поля.

А можно пример? Ибо понял только теоретически. А вместе с тем, очень надо
1 мар 16, 21:15    [18884611]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
gr1047
iap
Ваш SELECT - в подзапрос (derived table - производная таблица).
Тогда во внешнем SELECTе из этой производной таблицы можно использовать имя вычисляемого поля.

А можно пример? Ибо понял только теоретически. А вместе с тем, очень надо
SELECT F, [F*PI()]=F*PI() FROM
(SELECT CASE WHEN cost_with_discount > 111 THEN 10 ELSE 0 END FROM visits) T(F);
1 мар 16, 21:22    [18884642]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
gr1047
Member

Откуда:
Сообщений: 35
iap
SELECT F, [F*PI()]=F*PI() FROM
(SELECT CASE WHEN cost_with_discount > 111 THEN 10 ELSE 0 END FROM visits) T(F);

Спасибо. А можете пояснить? Что такое T(F)?
1 мар 16, 21:25    [18884655]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1836
gr1047,

Т -таблица возвращаемая подзапросом
F - ваще трехэтажное поле в этой таблице
1 мар 16, 21:36    [18884700]     Ответить | Цитировать Сообщить модератору
 Re: Как посчитать соседнее поле  [new]
gr1047
Member

Откуда:
Сообщений: 35
felix_ff
gr1047,

Т -таблица возвращаемая подзапросом
F - ваще трехэтажное поле в этой таблице

Большое спасибо!!
1 мар 16, 22:01    [18884769]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить