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

Откуда:
Сообщений: 98
Доброе время суток. Температурю, но край нужен запрос. Знаю, что поднимался такой вопрос не раз, но найти не смог. Есть исходные данные
DECLARE @Ins TABLE (K INT, d INT, r FLOAT, C_Sign CHAR(1))
INSERT @Ins (K, d, r, C_Sign)
SELECT 100, 1, 100, '+'
UNION ALL
SELECT 101, 1, 101, '+'
UNION ALL
SELECT 102, 1, 102, '+'
UNION ALL
SELECT 100, 1, 20, '-'
UNION ALL
SELECT 101, 1, 50, '-'
UNION ALL
SELECT 200, 1, 200, '+'
UNION ALL
SELECT 300, 3, 100, '-'

Хотелось бы получить такой результат
K D R+ R-
100 1 100 20
101 1 101 50
102 1 102
200 1 200
300 3 100

Как этого добиться? Голова не хотит думать
1 дек 09, 06:23    [7999795]     Ответить | Цитировать Сообщить модератору
 Re: Температура, а запрос надо  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
DECLARE @Ins TABLE (K INT, d INT, r FLOAT, C_Sign CHAR(1))
INSERT @Ins (K, d, r, C_Sign)
SELECT 100, 1, 100, '+'
UNION ALL
SELECT 101, 1, 101, '+'
UNION ALL
SELECT 102, 1, 102, '+'
UNION ALL
SELECT 100, 1, 20, '-'
UNION ALL
SELECT 101, 1, 50, '-'
UNION ALL
SELECT 200, 1, 200, '+'
UNION ALL
SELECT 300, 3, 100, '-'


SELECT K,d,sum(case when C_Sign='+' then r else 0 end) AS 'R+',sum(case when C_Sign='-' then r else 0 end) AS 'R-'
FROM @Ins GROUP BY K,d ORDER BY K,d
---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
1 дек 09, 06:38    [7999803]     Ответить | Цитировать Сообщить модератору
 Re: Температура, а запрос надо  [new]
aleks2
Guest
select ISNULL(x.K,y.K) R, ISNULL(x.D,y.D) D, x.R [R+], y.R [R-]
from
(select * FROM @ins WHERE C_Sign='+') x
FULL OUTER JOIN
(select * FROM @ins WHERE C_Sign='-') y
ON x.K=y.K
1 дек 09, 06:41    [7999806]     Ответить | Цитировать Сообщить модератору
 Re: Температура, а запрос надо  [new]
NightSkif
Member

Откуда:
Сообщений: 98
Всем спасибо!!! Пошел пить всякую гадость
1 дек 09, 07:02    [7999820]     Ответить | Цитировать Сообщить модератору
 Re: Температура, а запрос надо  [new]
DENIS_CHEL
Member

Откуда:
Сообщений: 23097
NightSkif
Всем спасибо!!! Пошел пить всякую гадость


Хм… Коллега пить всякую гадость не стоит, рекомендую просто взять больничный и спокойно выспаться пару дней… Если не поможет то обратиться к специалисту…

---------------------------------------------------------
- Ну вы тут и нафлудили! - сказал Геракл, зайдя на Авгиев форум..
1 дек 09, 07:10    [7999825]     Ответить | Цитировать Сообщить модератору
 Re: Температура, а запрос надо  [new]
NightSkif
Member

Откуда:
Сообщений: 98
DENIS_CHEL,

Спасибо. Но специалист уже выписал гадость.
1 дек 09, 07:32    [7999841]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить