Страница 1 из 1

Разбить Select - ом поле на два

Добавлено: 10 дек 2004, 18:45
LeShik
Ситуация следующая:

Таблица А:
PK : ID_A
.............
B : integer,
..............
C: integer
.............

Необходимо написать Select который будет делать следующее:

Выводить два столбца SUM(B) AS SUMEUR, SUM(B) AS SUMUSD причём суммировать в зависимости от столбца С. Если С = 0 (например), то значение B добавляется в SUMEUR, если С=1, - то в SUMUSD.

Как сделать через ХП, знаю сам. Интересует именно через Select.
Сервер IB 7.0.

Добавлено: 11 дек 2004, 09:28
Лысый
Не знай как в IB, а в FB:

Код: Выделить всё

SELECT SUM(CASE WHEN A.C = 1 THEN A.B ELSE 0 END) AS SUMEUR,
       SUM(CASE WHEN A.C = 2 THEN A.B ELSE 0 END) AS SUMUSD
  FROM A
P.S. Sag, это я уже освоил :)

Добавлено: 11 дек 2004, 09:54
Лысый
Однако case не работает в IB...
Я так понял на sql.ru тебе уже ответили.

Добавлено: 11 дек 2004, 18:31
kdv
case работает в IB 7.5.

Re: Разбить Select - ом поле на два

Добавлено: 11 дек 2004, 21:19
SSY
SUM(B*(-(C-1))) AS SUMEUR, SUM(B*C) AS SUMUSD

Добавлено: 13 дек 2004, 10:49
LeShik
Лысый писал(а):Однако case не работает в IB...
Я так понял на sql.ru тебе уже ответили.
Да, уже ответили, всем спасибо огромное. Если кому интересно как это сделать силами IB 7.0, то вам сюда http://www.sql.ru/forum/actualthread.as ... tid=145175