Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: Как заполнить одну таблицу данными из второй таблицы  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7412
Старый плюшевый мишка,

ну на самом деле трудно сказать какой запрос быстрее будет. Всё зависит от соотношения записей range/box и селективности ключей.
А обилие возможностей ещё ни кому не мешало. MERGE однозначно универсальней
3 окт 17, 14:44    [20839129]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить одну таблицу данными из второй таблицы  [new]
Romansochi
Member

Откуда:
Сообщений: 10
Старый плюшевый мишка
m7m
пропущено...



update range r
  set r.massa1=(select sum(b.massa2) from box b  where B.kodid2 = r.id1)


Ну наверное как-то вот так


Я бы ещё к селекту коалеску привинтил. Из агрегатов null при отсутствии данных не возвращает только count.

Если честно не совсем понял нахрена тут Coalesce , чтобы отсечь строки с 0 кол-вом ?Для ускорения ? 0 количество строк будет 5-20 не более
3 окт 17, 23:57    [20840555]     Ответить | Цитировать Сообщить модератору
 Re: Как заполнить одну таблицу данными из второй таблицы  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 256
Romansochi
Если честно не совсем понял нахрена тут Coalesce , чтобы отсечь строки с 0 кол-вом ?Для ускорения ? 0 количество строк будет 5-20 не более


Вот тока эти 5-20, если с нулевым количеством - это отсутствуют записи о раскладе по коробкам, получатся в результате апдейта из селекта не с нулевым количеством, а с null. А потом ты начнёшь к нему прибавлять следующие поступления и результат канет в бездну.
4 окт 17, 02:20    [20840702]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Firebird, InterBase Ответить