powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом.
7 сообщений из 7, страница 1 из 1
Помогите пожалуйста с запросом.
    #32255894
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача: есть табличка:
Id:int,R1:Int,Sum:Decimal.
В ней есть строки с Id=1 и Id=2. Назовем эти множества А и Б. Нужно к полю Sum множества Б добавить значение из А для R1(A)=R1(Б). Затем в множество Б добавить "недостающие" строки из А . Пример:
Id, R1, Sum
1 5 1
1 6 7
2 6 3
Результат:
Id, R1, Sum
1 5 1
1 6 7
2 5 1 - добавлена строка
2 6 10 - произведено сложение (7+3)
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32255922
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача совершенно не ясна. Не могли бы Вы привести здесь DDL, sample data, result sets?

В приведённом пояснении неясно следующее:
Есть ли у таблицы ключи (первичный, внешние)?
id может принимать ТОЛЬКО значения 1 и 2?
По полю SUM нужна сумма "нарастающим итогом" по значениям R1? Надо ли при этом читывать "добавленные" строки?
Каков алгоритм "добавления" строк?
Возможна ли ситуация, когда есть только значения для Id = 2? Если есть, то что с ними делать? Включать в результат или нет?

И вообще - какова цель всех этих танцев с бубном? Какая задача (бизнес-задача) решается? Может что-нибудь в консерватории (постановке) поменять?
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32255944
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую объяснить с другого конца. С консерватории.
Есть две таблицы: движение товара и остатки на конец каждого месяца. При приходе/расходе делается движение в первую таблицу и меняется остаток во второй. Я хочу для случая, если произойдет какой-либо сбой по значениям первой таблицы восстановить вторую.
В моей постановке R1 - код товара, Sum - его остаток, Id - номер месяца.
На первом этапе восстановления остатков я занес в таблицу итогов обороты за каждый месяц.
Теперь я хочу пройти по итогам, начиная с первого месяца и в каждый последующий добавить недостающие товары, а также высчитать правильную сумму остатка.
Прошу прощения за туманность постановки задачи.
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32256042
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже лучше. А теперь желательно определение таблиц (DDL) со всеми значимыми для задачи полями.
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32256080
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32256103
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В упрощенном виде возвращаемся к старому:
Таблица движений:
DataDoc TimeStamp - дата/время движения, R1 Integer - код товара, Sum Decimal(12,3) - остаток

Таблица итогов:
Id Integer - номер месяца, R1 Integer - код товара, Sum Decimal(12,3) - остаток

В таблице запросов я уже положил обороты за месяц. Теперь для первого месяца обороты являются остатками. Надо обороты за следующие месяца преобразовать в остатки.

Я думал обойтись без ХП, но судя по всему не получится. Наверное стоит свернуть обсуждение.
...
Рейтинг: 0 / 0
Помогите пожалуйста с запросом.
    #32256155
tria
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо всем. Снимаю свой вопрос. Решил не ленится и написать ХП. В принципе будет даже проще.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите пожалуйста с запросом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]