powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
6 сообщений из 6, страница 1 из 1
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38494865
Вячеслав Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть две таблицы :
одна таблица содержит список наличия товара ( 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

Вопрос, можно ли обойтись при этом без временных таблиц??? И как при этом должен виглядить запрос или процедура?
...
Рейтинг: 0 / 0
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38494928
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛТогда результатом зароса должно получиться по логике такое :А по моей логике, в данном случае ничего не должно измениться в результате. Почему первую строку выбрали раньше 2й?
Если тебе нужно LIFO, то проще процедурой - два сортированных по дате (desc) курсора, и иди по ним параллельно, выбирая количество.
...
Рейтинг: 0 / 0
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38494996
Вячеслав Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery, спасибо за то что отозвались.

Не по LIFO, а по FIFO, но суть примерна таже. Да про сортировку по дате понятно так и организовал.

Сделал процедурой, но по сутти вводил временную таблицу.

Проблему обриосвал тем: что не могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое.
Не могли бы вы какойто примерчик , если это возможно для данного случая написать?
...
Рейтинг: 0 / 0
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38495077
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Л,

про процедуры тут
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
...
Рейтинг: 0 / 0
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38495344
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛПроблему обриосвал тем: что не могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое.
Не могли бы вы какойто примерчик , если это возможно для данного случая написать?

%FIREBIRD%\doc\sql.extensions\README.cursors.txt
...
Рейтинг: 0 / 0
Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
    #38495496
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Лне могу найти толковых примеров конкретно для Firebird по работе с курсорами и что это такое.Тут ведь по первой ссылке есть: https://www.google.ru/#newwindow=1&q=sql.ru firebird declare cursor
Пробовали ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Распределение списка накладной по реальному количеству. Помогите оргаинзовать запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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