Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Выполнение операций ( / * + -) со строками  [new]
DasTin
Member

Откуда:
Сообщений: 46
Возможно ли с помощью запроса совершать операции, умножения, деления, сложения как с полями таблицы?
Пример: Таблица TAB

Name Sum
1 100
2 20
3 5

Возможно ли получить таблицу вида:

Name Sum
4 4
5 16

где строка 4 = (ст.2/ ст.3)
строка 5 = (ст.1 - ст.2)/ ст.3
26 мар 09, 11:53    [6977593]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение операций ( / * + -) со строками  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Так со строками или с полями?
DasTin
ст.2/ ст.3
Это что означает?
26 мар 09, 11:56    [6977620]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение операций ( / * + -) со строками  [new]
DasTin
Member

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

Операции со строками.
Это означает, строку 2 разделить на строку 3
26 мар 09, 12:23    [6977856]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение операций ( / * + -) со строками  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
Уж больно Вы прижимисты со словами. То, что Вы описываете, выглядит просто странно. Вы задаете конкретную формулу для двух конкретных строк? А если строк будет например меньше?
Написать само собой, конечно, можно, но выглядеть будет столь же странно, скажем даже извращенно :)
26 мар 09, 12:26    [6977883]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение операций ( / * + -) со строками  [new]
Полночный
Member

Откуда:
Сообщений: 312
DasTin,
Model clause, например.
WITH Dat AS (SELECT 1 An_Id, 100 A_Sum FROM Dual
              UNION ALL
             SELECT 2 An_Id, 20 A_Sum FROM Dual
              UNION ALL
             SELECT 3 An_Id, 5 A_Sum FROM Dual             
            )
SELECT An_Id, A_Sum
  FROM Dat
 MODEL
 RETURN UPDATED ROWS
 DIMENSION BY (An_Id)
 MEASURES (A_Sum)
 RULES (
           A_Sum [4] = A_Sum [2] / A_Sum [3]
         , A_Sum [5] = (A_Sum [1] - A_Sum [2]) / A_Sum [3]
       )
 ORDER BY An_Id;
26 мар 09, 12:28    [6977903]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение операций ( / * + -) со строками  [new]
DasTin
Member

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

Возможно, оно так и выглядит..
Задача сводиться к расчёту коэффициентов за определённую дату без изменения структуры данных. Например, посчитать рентабельность активов или любой другой требуемый коэфф. Конечно, будь, нужные значения полями, то с расчётом вопрос бы не стал. Просто не хотелось бы выполнять транпонирование данных, производить нужные операции над ними, а потом совершать обратное транспонирование. Возможно, есть более простое решение задачи.
26 мар 09, 13:02    [6978252]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить