powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сложный вопрос
2 сообщений из 2, страница 1 из 1
Сложный вопрос
    #40034446
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!
Бьюсь с такой задачей.
Есть таблица остатков
ost(xtov,kol)
И есть таблица всех когда-либо поступлений:
doc(xdoc,dat,xtov,kol2,sum) ORDER BY dat DESC

Причём sum(kol2)>=sum(kol)
Необходимо получить SELECT (xdoc,dat,xtov,kol,sum)
чтобы количество совпадало с остатками. Т.е. срез последних kol штук по каждому товару.
Иными словами, надо разбить остатки по последним поступлениям.
Ума не приложу как это сделать оптимально.
Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Сложный вопрос
    #40034457
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вроде разобрался как.
Сначала добавил столбец в doc
sum(kol) OVER(PARTITION BY doc.xtov ORDER BY dat DESC) kol2
это итого с начала таблицы по каждому товару отдельно.
а затем оставил строки где kol2 меньше чем kol в ost
В первой строке, где kol2 больше чем kol в ost - уменьшил пропорционально.
Ну а остальные строки удалил.

Но всё-равно интересны варианты других
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сложный вопрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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