|
|
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
Есть две таблицы : одна таблица содержит список наличия товара ( ID - идентификатор товара, CENA0 - цена прихода, KOL - количество,DATEPRIHOD - дата прихода) вторая список из накладной на продажу ( ID - идентификатор товара, CENAP - цена по которой продали , KOL - количество ) В примере приведен частный случай когда ID - товара одинаков у него просто разные приходы и разная цена продажи. IDCENA0KOLDATEPRIHOD1204687.00206.12.20131204686.00306.12.20131204686.00107.12.2013 IDCENAPKOL12046810.0051204689.001 Надо построить запрос или процедуру в результате которой распределяло бы количество в несенное в накладную по имеющемуся количеству в таблице наличия . Например продано позицию в размере 5 штук по цене 10$ в продаже данные внесены в накладную продажи, а в наличии она числиться так по двум разным партиям например 2 штуки по приходу 7$ и 3 штуки по приходу 6$ . Могуь быть и другие варианты того же товара с разной цено и разной датой прихода. Так вот надо получить в результате запроса распределение проданого количества по имеющемуся наличию и получить в результате такое: IDCENA0CENAPKOLDATEPRIHOD1204687.0010.00206.12.20131204686.0010.00306.12.20131204686.009.00107.12.2013 Проблема в том что первая таблица может содержать количество большее или меньшее чем мы продаем и выглядить например вот так: IDCENA0KOLDATEPRIHOD1204687.00406.12.20131204686.00306.12.20131204686.00107.12.2013 Тогда результатом зароса должно получиться по логике такое : IDCENA0CENAPKOLDATEPRIHOD1204687.0010.00406.12.20131204686.0010.00106.12.20131204686.009.00107.12.2013 Вопрос, можно ли обойтись при этом без временных таблиц??? И как при этом должен виглядить запрос или процедура? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 02:57:19 |
|
||
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛТогда результатом зароса должно получиться по логике такое :А по моей логике, в данном случае ничего не должно измениться в результате. Почему первую строку выбрали раньше 2й? Если тебе нужно LIFO, то проще процедурой - два сортированных по дате (desc) курсора, и иди по ним параллельно, выбирая количество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 08:15:57 |
|
||
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
WildSery, спасибо за то что отозвались. Не по LIFO, а по FIFO, но суть примерна таже. Да про сортировку по дате понятно так и организовал. Сделал процедурой, но по сутти вводил временную таблицу. Проблему обриосвал тем: что не могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое. Не могли бы вы какойто примерчик , если это возможно для данного случая написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 09:35:17 |
|
||
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
Вячеслав Л, про процедуры тут http://www.ibase.ru/devinfo/sp_call.htm а курсор - это результат запроса. Он выбирается в естественном порядке. в PSQL Firebird есть declare cursor, но это то же самое что for select http://www.firebirdsql.org/refdocs/langrefupd20-psql-declare.html#langrefupd20-psql-declare-cursor ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 10:40:49 |
|
||
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛПроблему обриосвал тем: что не могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое. Не могли бы вы какойто примерчик , если это возможно для данного случая написать? %FIREBIRD%\doc\sql.extensions\README.cursors.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 12:45:24 |
|
||
|
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
|
|||
|---|---|---|---|
|
#18+
Вячеслав Лне могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое.Тут ведь по первой ссылке есть: https://www.google.ru/#newwindow=1&q=sql.ru firebird declare cursor Пробовали ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2013, 13:45:10 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38495344&tid=1564075]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 467ms |

| 0 / 0 |
