|   |   | 
| 
 | Условие больше меньше между документами в запросе ↓ (Волшебник 14.12.2023 10:58) | ☑ | ||
|---|---|---|---|---|
| 0
    
        famnam 14.12.23✎ 10:20 | 
        Приветствую всех. Что-то затупил в понимании логики запроса.
 Привожу упрощенный пример. Есть врем.таблица втТЗ, которая потом соединяется с самим собой через условие меньше по партии: Выбрать тз.Номенклатура тз.Партия, тз.Количество Поместить втТЗ ...; Выбрать тз1.Номенклатура тз1.Партия, тз1.Количество ИЗ втТЗ как тз1 ЛЕВОЕ СОЕДИНЕНИЕ втТЗ как тз2 ПО тз1.Номенклатура = тз2.Номенклатура И тз1.Партия < тз2.Партия где Партия - это различные документы поступления (разных видов). Разве мы можем так сравнивать партии в соединении? Если да, то не понимаю логики | |||
| 1
    
        famnam 14.12.23✎ 10:22 | 
        Я к тому, что одно дело сравнивать на ревенство или неравенство. А другое меньше/больше между документами разных видов. Я так понимаю, сравнение на дату документа здесь не выполняется.     | |||
| 2
    
        RomanYS 14.12.23✎ 10:22 | 
        (0) сравнивать можем, но это не гарантирует нам хронологический порядок     | |||
| 3
    
        shuhard 14.12.23✎ 10:24 | 
        (0)[Разве мы можем так сравнивать партии в соединении]
 вы можете | |||
| 4
    
        Eiffil123 14.12.23✎ 10:24 | 
        (0) если ошибок рантайма не возникает, то сравниваются гуиды ссылок, что скорее всего является архитектурной ошибкой. 
 гуиды для новых документов хоть и могут создаваться в порядке возрастания, но это в общем и целом не является истиной | |||
| 5
    
        famnam 14.12.23✎ 10:28 | 
        (2) он и не выполняется. Я в отладке вывел поля партий из обеих таблиц, и соединение выполнилось с документом с датой меньше     | |||
| 6
    
        АгентБезопасной Нацио 14.12.23✎ 10:29 | 
        ответьте себе на простой вопрос: что по-вашему означает "одна партия меньше другой" ?     | |||
| 7
    
        famnam 14.12.23✎ 10:29 | 
        (3) и? в чем суть то сравнения, логика?     | |||
| 8
    
        АгентБезопасной Нацио 14.12.23✎ 10:29 | 
        похоже, еще один угнанный аккаунт...     | |||
| 9
    
        famnam 14.12.23✎ 10:30 | 
        (6) тогда логичнее сравнивать моменты времени, или даты на худой конец. А тут ссылки на документы. Это как?     | |||
| 10
    
        famnam 14.12.23✎ 10:31 | 
        (8) нет, с чего это вы взяли?     | |||
| 11
    
        АгентБезопасной Нацио 14.12.23✎ 10:31 | 
        (9) спросите у того идиота, который написал "тз1.Партия < тз2.Партия"     | |||
| 12
    
        famnam 14.12.23✎ 10:33 | 
        (11) те ваш ответ нужно расценивать как "запрос неверный, явно косяк"? и логику тут искать не стоит     | |||
| 13
    
        lEvGl гуру 14.12.23✎ 10:34 | 
        автор этого запроса надо думать преследовал другие цели, а не хронологию во времени, для чего то оно ему подошло, думайте что может быть     | |||
| 14
    
        famnam 14.12.23✎ 10:34 | 
        (13) я тоже так думаю, но больше ничего не увидел.     | |||
| 15
    
        shuhard 14.12.23✎ 10:36 | 
        (12) ни в коем случае, это критически важный запрос, в полном объёме соответствующий ТЗ     | |||
| 16
    
        famnam 14.12.23✎ 10:52 | 
        Провел моделирование, и вот что получил:
 1. Если сравнение идет между документами ОДНОГО вида, то тут анализируется хронология (скорее всего по моменту времени) 2. Если документы РАЗНОГО вида, то большим считается тот, кто ниже в дереве метаданных в конфигураторе, при это дата документа уже ни играет роли. Те документ, находящийся ниже и с ранней датой, будет считаться больше чем текущий. Возможно предыдущий программист, скорее всего, сравнивал документы одного вида, а тут по прошествии времени, появились другие документы. Всем спасибо. | |||
| 17
    
        Волшебник 14.12.23✎ 10:58 | 
        не надо сравнивать ссылки на больше-меньше     | |||
| 18
    
        Лефмихалыч 14.12.23✎ 11:00 | 
        (0) так можно делать только, если документы Партия всегда гарантированно создаются на одной машине в одном потоке. То есть - только у себя на локали для отладки.
 Сравнивай дату партии просто и не парь голову | |||
| 19
    
        Лефмихалыч 14.12.23✎ 11:02 | 
        (16) ты где-то налажал. Гуид ссылки не содержит никакой информации о типе документа. Это просто гуид. Стало быть, зависимость порядка от типа, если и есть, то это случайное совпадение в твоем конкретном случае.     | |||
| 20
    
        Лефмихалыч 14.12.23✎ 11:04 | 
        гуиды технически можно сравнивать на больше-меньше. Это не запрещено. Запрещено ожидать, что они как-то связаны с астрономическим временем их создания. Если сравниваемые гуиди сгенерены в одном и том же потоке, то сортировка по гуидам даст хронологический порядок. Если они сгенерены в разных потоках, то сравнение на больше-меньше может совпасть с хронологией их генерации а может не совпасть.     | |||
| 21
    
        Лефмихалыч 14.12.23✎ 11:06 | 
        хотя, если это guid v4, то и в одном потоке может что угодно получиться на больше-меньше     | |||
| 22
    
        Волшебник 14.12.23✎ 11:29 | 
        (20) Это запрещено здравым смыслом     | |||
| 23
    
        famnam 14.12.23✎ 11:44 | 
        (22) как выяснилось технически это работает. Но зачем это было написано ранее кем-то, непонятно     | |||
| 24
    
        Лефмихалыч 14.12.23✎ 11:52 | 
        (22) ну, может цель была в том, чтобы рандомно раскидать выборку     | |||
| 25
    
        uno-group 14.12.23✎ 13:46 | 
        В 7,7 Так сравнивались позиции документа проверялась дата и время с учетом того что 1с давала записать в 1 и туже секунду несколько документов тот, что раньше тоже вычислялся.
 Есть любители писать все приходы в 6-00-00 и тогда сравнивать просто дату и время мало. А такое значение вполне корректно работало. Возможно чел недавно с 7,7 перешел и по привычки юзает старые механизмы. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |