|
Поссчитать sum() over (partition by ...) внутри формы
|
|||
---|---|---|---|
#18+
Народ, подскажите пожалуста. Есть набор комплектующих(items), используемых в работах (jobs) для создания какого-либо предмета. Одна работа требует несколько разных комплектующих, и каждая комплектующая может использоваться в нескольких работах. Есть так же количество каждой комплектующей на складе. В форме нужно показать комплектующую, работу в которой она используется и сколько останется комплектующих после завершения каждой работы. Например: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
В sql запросе я это нахожу через "на складе" - Код: plsql 1. 2. 3.
Сделал view и на его основании форму. Для представления всей информации работает нормально, при поиске по "комплектующей" тоже. А вот если искать по "работе" то выдает не те количества в "Осталось". Проверил в простом запросе - то же не правильно. Т.е. если я делаю Код: plsql 1. 2. 3.
то Оракл сначала находит все строки которые приносит view и считает для них "Осталось", а потом уже фильтрует их по "работа". Т.е. я получаю Код: plsql 1. 2. 3.
вместо Код: plsql 1. 2. 3.
Если убрать "осталось" из view, можно ли посчитать тоже самое в форме что бы поиск по обоим полям приносил правильные количества? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2015, 20:06 |
|
Поссчитать sum() over (partition by ...) внутри формы
|
|||
---|---|---|---|
#18+
sum over, Как всё запутано .. Есть комплектующие, работы, кол-во на складе.. Выбирается "работа", для неё "комлектующие", указывается кол-во "в работу", считается "осталось", как разность (кол-во на складе - кол-во в работу).. Структура таблиц/связи между ними, пример формы, имхо "вью" сделали не верно, если она нужна вообще? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2015, 22:45 |
|
Поссчитать sum() over (partition by ...) внутри формы
|
|||
---|---|---|---|
#18+
При показе в форме всех данных или при поиске по комплектующим для каждой работы нужно показывать количество которое осталось с учетом предыдущих работ, т.е. если 5 работ требуют 25 деталей, а на складе есть только 10, то в последней работе нужно показать что есть нехватка -15 штук. Грубо говоря - табулярная форма имеет 10 строк для показа и имеется 250 строк которые нужно показать со скроллингом. Начиная со второй строки мне нужно знать число в предыдущей строке в той же колонке. Возможно такое? П.С. Таблицы из Oracle ERP (items, jobs, operations), но сути это дело не меняет. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2015, 10:29 |
|
Поссчитать sum() over (partition by ...) внутри формы
|
|||
---|---|---|---|
#18+
sum overНачиная со второй строки мне нужно знать число в предыдущей строке в той же колонке. Возможно такое? Возможно => go_record, first_record, last_record .. sum overП.С. Таблицы из Oracle ERP (items, jobs, operations), но сути это дело не меняет. Меняет, имхо "вью" Вы не правильно "сделали" .. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.04.2015, 15:44 |
|
Поссчитать sum() over (partition by ...) внутри формы
|
|||
---|---|---|---|
#18+
mRdUKEsum overНачиная со второй строки мне нужно знать число в предыдущей строке в той же колонке. Возможно такое? Возможно => go_record, first_record, last_record .. Не проще просто аналитикой (аналитические ф-ции LEAD, LAG) во view? IMHO нефиг туда-сюда в forms'ах скакать ... |
|||
:
Нравится:
Не нравится:
|
|||
30.04.2015, 17:08 |
|
|
start [/forum/topic.php?fid=51&gotonew=1&tid=1878071]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
228ms |
get topic data: |
13ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 245ms |
total: | 575ms |
0 / 0 |