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

Откуда: Минск
Сообщений: 407
Упрощаю: есть таблица с двумя колонками - Колонка1 int, Колонка2 int
Необходимо суммировать все значения Колонка1, причём если в колонке Колонка2 значение 1 то в сумме Колонки1 значение Колонки1 положительное, а если значение Колонки2 - 2 то в сумме Колонки1 значение Колонки1 отрицательное. Подскажите как написать запрос?
Например:

Колонка1 Колонка2
2 1
3 2
1 2
4 2

Должно получиться -6

Заранее большое спасибо
2 сен 13, 17:40    [14785794]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Гость333
Member

Откуда:
Сообщений: 3683
select sum(t.Колонка1 * case when t.Колонка2 = 1 when t.Колонка2 = 2 then -1 end)
from таблица t
2 сен 13, 17:43    [14785810]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
Гость333
Member

Откуда:
Сообщений: 3683
Гость333
select sum(t.Колонка1 * case when t.Колонка2 = 1 then 1 when t.Колонка2 = 2 then -1 end)
from таблица t

Сорри, забыл "then 1" дописать.
2 сен 13, 17:44    [14785816]     Ответить | Цитировать Сообщить модератору
 Re: Условие в запросе  [new]
o-o
Guest
declare @t table (col1 int, col2 int);
insert into @t (col1, col2) values
(2, 1),
(3, 2),
(1, 2),
(4, 2)

select sum(case col2 
			 when 1 then col1
			 when 2 then -col1
		   end ) 
from @t
2 сен 13, 17:46    [14785826]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить