|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от Recoilme
Блин... писал писал и не сохранилось. 2 раз ниасилю, поэтому пишу кратко.
0. Выходит я тупой.. потому,что: 1. В одной транзакции читаете с форапдейтом и никаких фантомов у вас не будет. 2. Этот механизм применяется в Аксе повсеместно например при чтении остатков 3. Если бы были какие-то коллизии у вас были бы отрицательные остатки при запрещенном отрицательном складе и т.п. БРЕД у Вас в базе бы был 4. Если у Вас они и есть - это из-за ошибок в алгоритмах, скорее всего Ваших Ошибок В Ваших Алгоритмах, а не фантомов. В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи, т.к. InventTrans пока не блокирован. Да если бы он и был блокирован - то добавлять записи никто бы не помешал - все-таки это не тот уровень изоляции. По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от chel
В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи...
|
|
![]() |
#3 |
злыдень
|
Цитата:
Сообщение от chel
По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока.
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#4 |
злыдень
|
Цитата:
Сообщение от chel
В том подходе, который здесь озвучили (вычитание оборотов с даты получения остатков до текущего момента) нужно сначала запросить InventSum - а потом через некоторое (продолжительное) время InventTrans, в который в момент выполнения запроса к InventSum кто-то третий добавляет записи, т.к. InventTrans пока не блокирован. Да если бы он и был блокирован - то добавлять записи никто бы не помешал - все-таки это не тот уровень изоляции.
По поводу повторной шпильки в мой адрес: еще раз говорю - напишите Ваш Корректный Алгоритм, который корректно отработает эту ситуацию. Мне он не очевиден пока. PHP код:
Это просты мы с chel пиписьками меряемся..
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от Recoilme
Люди, не обращайте внимания на этот код, так делать на реляционной базе не стоит!
Это просты мы с chel пиписьками меряемся.. ![]() Есть небольшие проблемы в этом запросе 1. Он не учтет ту номенклатуру, по которой сейчас нет остатков. Например, если 31 декабря по "чистой" номенклатуре был сделан приход 5 шт, а 2 января расход -5, то на 1 января остаток не отобразится. 2. Даже, если сделать full outer join этих таблиц, чтобы решить п.1., то к этому никак не прикрутить еще и InventDim с отбором хотя бы по складу (а как жить без этого ![]() PS. В Вашем случае совсем не обязательно было делать forupdate и тытысы-операции - все равно все одним запросом получаете Цитата:
Сообщение от mazzy
А потом расскажите во сколько раз таблица промежуточных итогов превышает таблицу проводок.
|
|
![]() |
#6 |
злыдень
|
Цитата:
Сообщение от chel
Продолжим меряние
![]() Есть небольшие проблемы в этом запросе 1. Он не учтет ту номенклатуру, по которой сейчас нет остатков. Например, если 31 декабря по "чистой" номенклатуре был сделан приход 5 шт, а 2 января расход -5, то на 1 января остаток не отобразится. 2. Даже, если сделать full outer join этих таблиц, чтобы решить п.1., то к этому никак не прикрутить еще и InventDim с отбором хотя бы по складу (а как жить без этого ![]() ![]() 1. Да ну??? А вы в инвентсам заглянуть и проверить свои домыслы не пробовали? Записи из инвентсама не удаляются. Они обнуляются. Описанная Вами ситуация невозможно ни первого, ни второго января 2. Т.к. решать пункт 1 не нужно, объяснять как прикрутить инвентлокэйшен надеюсь тоже не нужно? ![]() Вобщем сдавайся давай!!!
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#7 |
Участник
|
Цитата:
Сообщение от Recoilme
1. Да ну??? А вы в инвентсам заглянуть и проверить свои домыслы не пробовали? Записи из инвентсама не удаляются. Они обнуляются. Описанная Вами ситуация невозможно ни первого, ни второго января
Зато Alexius дело говорит. Один Sum соединится со многими Trans и в Trans.Qty получится фиговый. Wamr, а ведь max тоже не пройдет. Что он даст например в случае: Sum = 10 Trans1 = 5 Trans2 = 5 |
|
![]() |
#8 |
злыдень
|
Цитата:
Сообщение от chel
Признаю, затупил.
Зато Alexius дело говорит. Один Sum соединится со многими Trans и в Trans.Qty получится фиговый. Wamr, а ведь max тоже не пройдет. Что он даст например в случае: Sum = 10 Trans1 = 5 Trans2 = 5 ![]()
__________________
Ибо зло есть лучшая сила человека. "Человек должен становиться все лучше и злее" -- так учу я. /Ф. Ницше/ |
|
![]() |
#9 |
Участник
|
Цитата:
Сообщение от Recoilme
Люди, не обращайте внимания на этот код, так делать на реляционной базе не стоит!
![]() Последний раз редактировалось Alexius; 02.02.2006 в 18:16. |
|
Теги |
остатки, ax3.0 |
|
![]() |
||||
Тема | Ответов | |||
Остатки на дату InventSumDatePhysical | 6 | |||
Остатки товара на определенную дату | 7 | |||
Скачут остатки | 3 | |||
Цена на дату создания заказа/закупки | 2 | |||
Остатки | 6 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|