@horse315
.net developer

Как распределить пополнения по покупкам?

Есть 2 таблицы, одна содержит покупки, другая пополнения. Покупки неделимы, пополнения делимы, данные упорядочены по дате. Задача - найти распределение пополнений счета пользователя по покупкам, которые он совершил.

Пример:
пополнения (id, amount):
a1, 200р
a2, 150р
a3, 300р
покупки (id, amount)
s1, 100р
s2, 200p
s3, 105р

В результате нужно получить (id пополнения, id покупки)
s1, a1
s2, a1
s2, a2
s3, a2
s3, a3

Решается легко, если в распоряжении есть стеки или очереди, но можно ли решить её на SQL, не используя процедурные операторы?

Upd: один из вариантов:
Коллега предложил разбить пополнения и покупки, скажем, до 1 рубля, а потом соединить выборки и группировать по товарам.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
@redakoc
Ну, например, триггером. При вставке данных в таблицы пополнения или списания заносить нужное вам соответствие во вспомогательную таблицу.

На голом select я бы не стал бы даже связываться. Интуиция подсказывает, что даже если это и реально, то будет очень медленно работать на реальных объемах данных.
Ответ написан
Комментировать
@horse315 Автор вопроса
.net developer
В итоге сделали в бекенде, а не на SQL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы