|   |   | 
| 
 | Как сделать выборку номенклатурных групп с максимальными моментами времени? | ☑ | ||||||
|---|---|---|---|---|---|---|---|---|
| 0
    
        PR третий 09.10.15✎ 11:59 | 
 
        Есть регистр бухгалтерии.
 Есть 20 счет с субконто "Номенклатурные группы". Как выбрать запросом таблицу, в которой будет два поля, "Номенклатурная группа" и "Максимальный момент времени, на который остаток по этой номенклатурной группе был равен нулю"? | |||||||
| 1
    
        mikecool 09.10.15✎ 12:00 | 
        стыдно такое спрашивать     | |||||||
| 2
    
        PR третий 09.10.15✎ 12:00 | 
        (1) Есть решение?     | |||||||
| 3
    
        mikecool 09.10.15✎ 12:01 | 
        (2) нет     | |||||||
| 4
    
        PR третий 09.10.15✎ 12:01 | 
        +(2) Нормальное по скорости, то есть без всяких соединений всех записей со всеми.     | |||||||
| 5
    
        mikecool 09.10.15✎ 12:02 | 
        нужно последний момент, когда в производстве не было ном группы?     | |||||||
| 6
    
        PR третий 09.10.15✎ 12:02 | 
        (3) Тогда что стыдно? Стыдно спрашивать то, про что каждый знает, что это невозможно? Или что?     | |||||||
| 7
    
        PR третий 09.10.15✎ 12:02 | 
        (5) Нужно последний момент, когда на 20 счете по этой НГ был остаток 0.     | |||||||
| 8
    
        Сторно абсурда 09.10.15✎ 12:04 | 
        (6) Почему именно момент времени? 20 счет закрывается помесячно.     | |||||||
| 9
    
        PR третий 09.10.15✎ 12:05 | 
        (8) Будем считать эту вводную чёрным ящиком :)) Типа вот так есть и всё :))     | |||||||
| 10
    
        PR третий 09.10.15✎ 12:05 | 
        +(9) Кроме того, тогда задача становится банальной и неинтересной :))     | |||||||
| 11
    
        mikecool 09.10.15✎ 12:05 | 
        (4) не вижу решения без соединения всех со всеми     | |||||||
| 12
    
        Stim 09.10.15✎ 12:06 | 
        можно сделать на SQL прямыми запросами     | |||||||
| 13
    
        PR третий 09.10.15✎ 12:07 | 
        (12) Не надо     | |||||||
| 14
    
        Гёдза 09.10.15✎ 12:07 | 
        Сколько платишь? )))     | |||||||
| 15
    
        el-gamberro 09.10.15✎ 12:08 | 
        Решается просто. По каждой НГ надо собрать интервалы, каждый раз когда меняется остаток. И это с ключом регистратор.
 Затем для всех интервалов взять остаток = 0 и МАКСИМУМ(регистратор.Период) | |||||||
| 16
    
        PR третий 09.10.15✎ 12:09 | 
        (14) Нисколько :))
 Считай это пятничной задачкой, разминкой для ума :)) Я для себя решение уже нашел, правда не скажу, что красивое :)) | |||||||
| 17
    
        el-gamberro 09.10.15✎ 12:09 | 
        Вот такое надо
 НАЧАЛО_интервала; КОНЕЦ_интервала; Остаток_интервала; Регистратор_инициировалИнтервал; | |||||||
| 18
    
        PR третий 09.10.15✎ 12:09 | 
        (15) У регистратора нет периода, есть момент времени     | |||||||
| 19
    
        el-gamberro 09.10.15✎ 12:10 | 
        КРОСС Джоин можно использовать, но можно и обойтись ПОЛНОЕ СОЕДИНЕНИЕ несколько раз     | |||||||
| 20
    
        el-gamberro 09.10.15✎ 12:11 | 
        (18) К моменту времени нельзя применить агрегацию     | |||||||
| 21
    
        el-gamberro 09.10.15✎ 12:12 | 
        + (18) Но это уже тонкости, они решаются     | |||||||
| 22
    
        PR третий 09.10.15✎ 12:13 | 
        (20) Логично :))
 А период записи может включать 100500 регистраторов :)) | |||||||
| 23
    
        itlikbez 09.10.15✎ 12:15 | 
        (0) Хороший пример извращенческой задачи. 
 Убираешь слово "запросом" и задача превращается в элементарную. | |||||||
| 24
    
        PR третий 09.10.15✎ 12:15 | 
        (21) И как же решается тонкость невозможности взятия максимума по моменту времени регистратора? :))     | |||||||
| 25
    
        Гёдза 09.10.15✎ 12:15 | 
        (16) Ты этому у гения научился?
 -Посоны, угадайте решения!!! | |||||||
| 26
    
        el-gamberro 09.10.15✎ 12:16 | 
        (24) соединив таблицу саму с собой по периоду и взяв МАКСИМУМ(Ссылка)     | |||||||
| 27
    
        PR третий 09.10.15✎ 12:16 | 
        (23) Логично :))
 Но это не самостоятельная задача. Это вспомогательная таблица для другого запроса :)) | |||||||
| 28
    
        itlikbez 09.10.15✎ 12:18 | 
        (27) И что? Вспомогательная таблица для запроса обязательно должна быть сделана запросом?     | |||||||
| 29
    
        PR третий 09.10.15✎ 12:19 | 
        (25) Да не, в моем решении все просто.
 Выбираем максимальные периоды по НГ, потом все регистраторы с таким периодом, потом соединение всех со всеми по НГ и сравнением по моменту времени. | |||||||
| 30
    
        PR третий 09.10.15✎ 12:20 | 
        (26) Максимум ссылки не равен максимуму момента времени     | |||||||
| 31
    
        PR третий 09.10.15✎ 12:21 | 
        (28) Очень желательно     | |||||||
| 32
    
        el-gamberro 09.10.15✎ 12:21 | 
        (29) откуда максимальные периоды по НГ ты взял?     | |||||||
| 33
    
        PR третий 09.10.15✎ 12:23 | 
        (32) Выбрал запросом записи, где остаток равен нулю и взял максимум по периоду     | |||||||
| 34
    
        el-gamberro 09.10.15✎ 12:23 | 
        (30) Период+Ссылка равен. А не знает, иди поучи язык 1С.
 Поэтому выбираем МАКСИМУМ(Период) и соединяем с МАКСИМУМ(Регистратор). Это нужно когда в один период могут быть несколько регистраторов. | |||||||
| 35
    
        el-gamberro 09.10.15✎ 12:24 | 
        (33) из какой это ты вирт. таблицы такое выбрал?     | |||||||
| 36
    
        PR третий 09.10.15✎ 12:25 | 
        (34) Максимум по ссылке при одинаковом периоде даст максимальный момент времени?     | |||||||
| 37
    
        el-gamberro 09.10.15✎ 12:25 | 
        (36) Да, даст.     | |||||||
| 38
    
        PR третий 09.10.15✎ 12:26 | 
        (35) Остатки и обороты по регистраторам     | |||||||
| 39
    
        PR третий 09.10.15✎ 12:26 | 
        (37) Не знал. Спасибо.     | |||||||
| 40
    
        Ненавижу 1С гуру 09.10.15✎ 12:28 | 
        Рома как всегда не знал мат.части     | |||||||
| 41
    
        PR третий 09.10.15✎ 12:28 | 
        Хех. Пятничной ветки не получилось. Получилась вполне себе такая техническая ветка :))     | |||||||
| 42
    
        PR третий 09.10.15✎ 12:30 | 
        (40) Я знал, что момент времени = дата + ссылка.
 Не знал (36). | |||||||
| 43
    
        Гёдза 09.10.15✎ 12:32 | 
        Не совсем Момент = Дата + Гуид ссылки.
 А просто ссылка - это Тип + Вид | |||||||
| 44
    
        Гёдза 09.10.15✎ 12:32 | 
        *Тип+Гуид     | |||||||
| 45
    
        PR третий 09.10.15✎ 14:44 | 
        Странно, но вроде как так и есть Как переместить документ в конец дня?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |