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

Откуда:
Сообщений: 109
Нужно в зависимости от значения в столбце проставить либо данные, либо сумму других кейсов

что то типо этого
case
when T=3 then quantity else
sum
( 
case 
when col1='month' then col3
when col1='year' then col3\12
end
)
end


как это лучше сделать?
9 июл 19, 13:51    [21923435]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6821
Romanov-krd,

лучше для чего?
9 июл 19, 14:14    [21923453]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
Romanov-krd
Member

Откуда:
Сообщений: 109
Владислав Колосов,

если так запрос составить работать не будет. как вообще можно сделать
9 июл 19, 14:20    [21923459]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
1C Developer
Member

Откуда:
Сообщений: 41
Romanov-krd
Владислав Колосов,

если так запрос составить работать не будет. как вообще можно сделать


Вместо одного запроса, вы, можете составить два и объединить их результат.
9 июл 19, 15:31    [21923516]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29301
Romanov-krd
Нужно в зависимости от значения в столбце проставить либо данные, либо сумму других кейсов
Так делайте, если надо.
Непонятно, что не получается, вполне нормальный запрос.
Только ещё нужно написать SELECT, FROM и GROUP BY

Вы бы объяснили проблему подробнее, сделали бы пример с временной таблицей
9 июл 19, 17:47    [21923663]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
Cristiano_Rivaldo
Member

Откуда:
Сообщений: 319
Romanov-krd,

case
when T=3 then quantity else
sum
( 
case 
when col1='month' then col3
when col1='year' then col3\12
end
)
over ()
end
10 июл 19, 07:56    [21923902]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19487
alexeyvg
вполне нормальный запрос
Объединение в одном поле скалярного выражения и агрегатной функции - нормально? вряд ли...
10 июл 19, 08:00    [21923903]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
msLex
Member

Откуда:
Сообщений: 6705
Akina
alexeyvg
вполне нормальный запрос
Объединение в одном поле скалярного выражения и агрегатной функции - нормально? вряд ли...

Ничего сложного, нужно просто поиграться с выражением для группировки.
10 июл 19, 08:06    [21923905]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29301
Akina
alexeyvg
вполне нормальный запрос
Объединение в одном поле скалярного выражения и агрегатной функции - нормально? вряд ли...
Нормально или нет - нужно выяснять, изучая бизнес-логику и модель данных (которые нам неизвестны, автор про них не пишет).
Автор написал только про ошибки синтаксиса, но их тут нет, всё нормально, со стороны сиквела этот запрос прекрасно работает.
10 июл 19, 08:45    [21923917]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29301
msLex
Akina
пропущено...
Объединение в одном поле скалярного выражения и агрегатной функции - нормально? вряд ли...

Ничего сложного, нужно просто поиграться с выражением для группировки.
Тут играться то не с чем. просто GROUP BY T, quantity
10 июл 19, 08:46    [21923919]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 19487
alexeyvg
Автор написал только про ошибки синтаксиса, но их тут нет

Есть.
when col1='year' then col3\12


alexeyvg
Нормально или нет - нужно выяснять, изучая бизнес-логику и модель данных (которые нам неизвестны, автор про них не пишет).
Я собсно об этом и говорил...
10 июл 19, 09:01    [21923930]     Ответить | Цитировать Сообщить модератору
 Re: В зависимости от значения в столбце проставить либо данные, либо сумму других кейсов  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 29301
Akina
alexeyvg
Автор написал только про ошибки синтаксиса, но их тут нет

Есть.
Не, ену это понятно, тут и SELECT нет, и FROM :-)

Я про то, что обший принцип, в общем, корректный, в CASE вполне можно применять и агрегатные функции, и просто поля.

Akina
alexeyvg
Нормально или нет - нужно выяснять, изучая бизнес-логику и модель данных (которые нам неизвестны, автор про них не пишет).
Я собсно об этом и говорил...
Согласен, но в принципе можно представить такое...

Например, в запросе из таблиц мастер-детали, при одних условиях нужно выводить какое то поле из мастера, а при других - считать агрегатами из деталей...
10 июл 19, 09:19    [21923948]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить