Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сложный вопрос
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! Бьюсь с такой задачей. Есть таблица остатков ost(xtov,kol) И есть таблица всех когда-либо поступлений: doc(xdoc,dat,xtov,kol2,sum) ORDER BY dat DESC Причём sum(kol2)>=sum(kol) Необходимо получить SELECT (xdoc,dat,xtov,kol,sum) чтобы количество совпадало с остатками. Т.е. срез последних kol штук по каждому товару. Иными словами, надо разбить остатки по последним поступлениям. Ума не приложу как это сделать оптимально. Подскажите, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2021, 19:01 |
|
||
|
Сложный вопрос
|
|||
|---|---|---|---|
|
#18+
Ну вроде разобрался как. Сначала добавил столбец в doc sum(kol) OVER(PARTITION BY doc.xtov ORDER BY dat DESC) kol2 это итого с начала таблицы по каждому товару отдельно. а затем оставил строки где kol2 меньше чем kol в ost В первой строке, где kol2 больше чем kol в ost - уменьшил пропорционально. Ну а остальные строки удалил. Но всё-равно интересны варианты других ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2021, 19:58 |
|
||
|
|

start [/forum/topic.php?fid=53&tid=1994279]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 281ms |
| total: | 418ms |

| 0 / 0 |
