Как вычислить поле из значения связанной таблицы?

Автор arthur1974, декабря 05, 2017, 07:40:42 pm

« предыдущая - следующая »

arthur1974

Подскажите пожалуйста начинающему Как вычислить поле ("sum1" в Tabl2) из значения связанной (по полю "ind") таблицы ("price" в Tabl1)?


Tabl1:
Load
    ind,
    price
FROM
.....

Tabl2:
SQL SELECT
    ind,
    kol,
    kol * price as [sum1]
from
.....

admin

Привет, можно использовать left join чтобы "привязать нужные поля", а затем еще раз проход через resident и уже с вычислениями.
Можно и applymap() использовать. Смотря какие объемы и какие данные. Надо тестировать на реальных данных.

LoryMax

Вот тебе паттерны:
T1:
Load ind
    ,price
From ...;

Left join (T1)
SQL SELECT ind
          ,kol
From ...;

T2:
SQL SELECT ind
          ,price
          ,kol
          ,kol*price as sum1
  Resident T1;
Drop table T1;


Rem Через маппинг;
T1:
mapping
Load ind
    ,price
From ...;

T2:
SQL SELECT ind
          ,kol
          ,ApplyMap('T1',ind,0) as price
          ,kol*ApplyMap('T1',ind,0) as sum1
From ...;
Drop table T1;

arthur1974

Спасибо за подсказки.

А по скорости вычислений и ресурсоёмкости есть разница между этими двумя способами?

arthur1974

декабря 07, 2017, 10:46:02 am #4 Последнее редактирование: декабря 07, 2017, 10:50:05 am от arthur1974
а ещё, с ApplyMap похоже так не проходит?

T1:
mapping
Load ind
    ,price
From ...;

T2:
load
...
from...

Right join
SQL SELECT ind
          ,kol
          ,ApplyMap('T1',ind,0) as price
          ,kol*ApplyMap('T1',ind,0) as sum1
From ...;
Drop table T1;

LoryMax

Цитата: arthur1974 от декабря 07, 2017, 10:16:26 am
Спасибо за подсказки.

А по скорости вычислений и ресурсоёмкости есть разница между этими двумя способами?



Стоит по факту посмотреть, какой вариант для вас будет оптимальный. Прогнать 2 варианта.
По последнему вопросу: при наличии общих полей должен сработать right join.

Рейтинг@Mail.ru Яндекс.Метрика