Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Добрый день/вечер. Имеется БД на Firebird 2.5, IBExpert для работы с ней. База данных по мебельным механизмам, подразумевается, что пользоваться ей будет посредник, который закупает и перепродает. Имеется таблица Jornal_Operations структура: ID_Producer - Поставщик. ID_Customer - Покупатель. ID_Operation - Приход/Расход (1/2) Данные в таблице: Запрос на подсчет стоимости покупки/продажи той же таблицы: Проблема с подсчетом остатков на складе. 1 Вариант моих действий: Создал представления на приход(Arrive) и расход(Costs) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Далее написал запрос на поиск остатков, с использованием этих представлений: Код: sql 1. 2. 3. И тут всплывает проблема: Запрос выше, подсчитывает остаток только тех позиций, на которые был и приход и расход, остальные null. 2 Вариант действий после этого, считать по другому, избавиться от null и без представлений: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. То есть я получаю общую стоимость(приход+расход) и вычитаю расход и на этом моменте я сел в лужу, потому что не знаю как разобраться с первым вариантом и со вторым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 14:52 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
без опорных остатков(например на первое число каждого месяца) вся схема "садится в лужу". избавления от нуллов это мелкотехнический вопрос, здесь есть концептуальные промахи, их потом не исправить, их надо продумывать сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 15:06 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanov, в таблицу операций добавьте поле DIRECTION SMALLINT CHECK(VALUE = 1 OR VALUE = -1) и тогда, к примеру, "остаток на конец периода" будет выглядеть примерно так: Код: sql 1. 2. 3. 4. 5. С остальным разберетесь по аналогии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 15:14 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanov, и да, Иван прав - регистры остатков must have. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 15:16 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky, Я понимаю, это. Но я сейчас еще в колледже учусь и пробую в родительскую фирму сделать такой мелкософт, и самому поучиться хоть на пробах и ошибках. На данный момент, грубо говоря подразумевается, что сначала идет закупка, а потом реализация, поэтому и нужны остатки просто как они есть, без дат, хотя хотелось бы узнать, как это реализовать для следующих этапов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 15:18 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
rdb_dev, Прошу прощение, за свое недопонимание, но как и где используется поле Direction, о котором вы написали в коде, который вы проложили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 15:23 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanovнужны остатки просто как они есть, без дат,остаток без даты, как чемодан без ручки. :) Ilya Stepanovсейчас еще в колледже учусь и пробуюВ свое время писал дипломный проект, так им до сих пор пользуются, хотя почти 20 лет прошло. Грозились много раз от него избавиться, но до сих пор иногда приходят с челобитной типа поправить печатный шаблончик или микроскопической косячок выправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:05 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky, Вы сможете пояснить мне по поводу сообщения ? 20577776 Что и как происходит в запросе. Я попробовал сейчас его выполнить, у меня в столбце Balance, 0 полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:14 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanovrdb_dev, Прошу прощение, за свое недопонимание, но как и где используется поле Direction, о котором вы написали в коде, который вы проложили? Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:21 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya StepanovЧто и как происходит в запросе. Я попробовал сейчас его выполнить, у меня в столбце Balance, 0 полностью.Для операции "приход" в поле DIRECTION поставь 1, а для операции "расхода" поставь -1. Я полагал, что это очевидно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:25 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
rdb_dev, Это я уже понял, для чего нужно поле direction? И почему именно value = 1 or value = -1 ? Код: sql 1. 2. 3. 4. 5. 6. Вот в итоге запрос, но выдает он: ID_FURNITURE_DETAIL | BALANCE 1 | 0 2 | 0 3 | 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:27 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanov, 20578041 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:29 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
rdb_dev, То есть в таблице операций у меня по ключу 1 это приход, по ключу 2 это расход. и все равно по нулям баланс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:34 |
|
||
|
Расчёт остатков на складе
|
|||
|---|---|---|---|
|
#18+
Ilya Stepanov, попробуй отобрать все записи - без WHERE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2017, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=39474917&tid=1561525]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 160ms |

| 0 / 0 |
