|   |   | 
| 
 | Помогите с запросом | ☑ | ||
|---|---|---|---|---|
| 0
    
        Loko 14.12.23✎ 06:11 | 
        Есть простой запрос. Выбираю остатки товара по дням. Если был на остатке, то 1, если нет, то 0. Потом суммирую это поле (1 и 0), т.е. получаю сколько дней был на остатке товар. В консоли все норм считает сумму. А в СКД упорно просто 1 показывает. Помогите)
 ВЫБРАТЬ ТЗОстатки.Номенклатура КАК Номенклатура, ВЫБОР КОГДА ТЗОстатки.КоличествоОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ДнейВРасчете, ТЗОстатки.Склад КАК Склад, ТЗОстатки.Дата КАК Дата ПОМЕСТИТЬ ТЗОСТ ИЗ ТЗОстатки КАК ТЗОстатки ; ////// ВЫБРАТЬ ТЗОст.Номенклатура КАК Номенклатура, СУММА(ТЗОст.ДнейВРасчете) КАК ДНИ ИЗ ТЗОСТ КАК ТЗОст СГРУППИРОВАТЬ ПО ТЗОст.Номенклатура | |||
| 1
    
        rphosts 14.12.23✎ 07:41 | 
        (0) проверь, что у тебя запросы идентичны, для начала и если так - проверь что входящие данные совпадают     | |||
| 2
    
        Loko 14.12.23✎ 07:55 | 
        (1) запросы совпадают. вот запрос полностью:
 ВЫБРАТЬ РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.Дата КАК Дата ПОМЕСТИТЬ Дни ИЗ РегистрСведений.ДанныеПроизводственногоКалендаря КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.Дата МЕЖДУ &НачПериода И &КонПериода ; //////////// ВЫБРАТЬ Движения.Номенклатура КАК Номенклатура, ДНИ.Дата КАК Дата, СУММА(ВЫБОР КОГДА Движения.Период = &НачПериода ТОГДА Движения.ВНаличииКонечныйОстаток ИНАЧЕ ВЫБОР КОГДА Движения.Период <= ДНИ.Дата ТОГДА Движения.ВНаличииОборот ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК КоличествоОстаток ПОМЕСТИТЬ ТЗОстаткиПоДням ИЗ Дни КАК ДНИ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &НачПериода {(&НачПериода)}, &КонПериода {(&КонПериода)}, День, , Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры) И Склад В ИЕРАРХИИ (&СкладыПродажи)) КАК Движения ПО (Движения.Период <= ДНИ.Дата) СГРУППИРОВАТЬ ПО Движения.Номенклатура, ДНИ.Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЗОстатки.Номенклатура КАК Номенклатура, СУММА(ВЫБОР КОГДА ТЗОстатки.КоличествоОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК ВНаличииДней ИЗ ТЗОстаткиПоДням КАК ТЗОстатки СГРУППИРОВАТЬ ПО ТЗОстатки.Номенклатура | |||
| 3
    
        Loko 14.12.23✎ 07:56 | 
        в консоли все норм отрабатывает. показывает количество дней товара на остатках. если все 30 дней был, то покажет 30. а в СКд этот запрос вставляю. Ресурс сумма для поля ВНаличииДней. И показывает 1 для всех товаров (где хотя бы 1 день был на остатке).     | |||
| 4
    
        MaximSh 14.12.23✎ 09:30 | 
        (3) сделай не через ВТ ТЗОстаткиПоДням , а через вложенный запрос     | |||
| 5
    
        MaximSh 14.12.23✎ 09:47 | 
        (3) или убери в ВТ и последнем запросе агрегат Сумма. В СКД поле ВНаличииДней  добавь в Ресурсы. В Настройке выводи только по группировке Номенклатура     | |||
| 6
    
        KJlag 14.12.23✎ 09:51 | 
        (4) вложенные запросы.. бррр
 как вспомню "провалиться во вложенный запрос, провалиться там во вложенный запрос и так далее" | |||
| 7
    
        Loko 14.12.23✎ 09:55 | 
        (4) получилось! 
 ВЫБРАТЬ РАЗЛИЧНЫЕ РегламентированныйПроизводственныйКалендарь.Дата КАК Дата ПОМЕСТИТЬ Дни ИЗ РегистрСведений.ДанныеПроизводственногоКалендаря КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.Дата МЕЖДУ &НачПериода И &КонПериода ; ///////////////// ВЫБРАТЬ ВложенныйЗапрос.Номенклатура КАК Номенклатура, СУММА(ВЫБОР КОГДА ВложенныйЗапрос.КоличествоОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ) КАК ВНаличииДней ИЗ (ВЫБРАТЬ Движения.Номенклатура КАК Номенклатура, ДНИ.Дата КАК Дата, СУММА(ВЫБОР КОГДА Движения.Период = &НачПериода ТОГДА Движения.ВНаличииКонечныйОстаток ИНАЧЕ ВЫБОР КОГДА Движения.Период <= ДНИ.Дата ТОГДА Движения.ВНаличииОборот ИНАЧЕ 0 КОНЕЦ КОНЕЦ) КАК КоличествоОстаток ИЗ Дни КАК ДНИ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &НачПериода {(&НачПериода)}, &КонПериода {(&КонПериода)}, День, , Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры) И Склад В ИЕРАРХИИ (&СкладыПродажи)) КАК Движения ПО (Движения.Период <= ДНИ.Дата) СГРУППИРОВАТЬ ПО Движения.Номенклатура, ДНИ.Дата) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура | |||
| 8
    
        Loko 14.12.23✎ 09:56 | 
        (5) я так тоже делал. не получалось     | |||
| 9
    
        Loko 14.12.23✎ 09:57 | 
        (7) + странное. мне нужно было агрегат МАКСИМУМ вернуть. а он возвращает 1. заменил на СУММА и она возвращает именно то, что мне нужно - МАКСИМУМ. ниче не понимаю.. но работает. спасибо!     | |||
| 10
    
        Loko 14.12.23✎ 10:00 | 
        (9) МАКСИМУМ из складов.     | |||
| 11
    
        Loko 14.12.23✎ 10:02 | 
        (5) а нет. так не делал. так тоже работает)     | |||
| 12
    
        MaximSh 14.12.23✎ 10:06 | 
        (8) Странно. 
 1. В запросе вообще без агрегатов, это задача ресурсов 2. поле ВНаличииДней в Ресурс, суммирование. 3. Настройка одна группировка по полю Номенклатура. Отчет Выбранные поля: ВНаличииДней и Номенклатура Запрос такой ВЫБРАТЬ Движения.Номенклатура КАК Номенклатура, ДНИ.Дата КАК Дата, ВЫБОР КОГДА Движения.Период = &НачПериода ТОГДА Движения.ВНаличииКонечныйОстаток ИНАЧЕ ВЫБОР КОГДА Движения.Период <= ДНИ.Дата ТОГДА Движения.ВНаличииОборот ИНАЧЕ 0 КОНЕЦ КОНЕЦ КАК КоличествоОстаток ПОМЕСТИТЬ ТЗОстаткиПоДням ИЗ Дни КАК ДНИ ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачПериода {(&НачПериода)}, &КонПериода {(&КонПериода)}, День, , Склад В ИЕРАРХИИ (&СкладыПродажи)) КАК Движения ПО (Движения.Период <= ДНИ.Дата) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЗОстатки.Номенклатура КАК Номенклатура, ВЫБОР КОГДА ТЗОстатки.КоличествоОстаток > 0 ТОГДА 1 ИНАЧЕ 0 КОНЕЦ КАК ВНаличииДней ИЗ ТЗОстаткиПоДням КАК ТЗОстатки | |||
| 13
    
        Loko 14.12.23✎ 10:07 | 
        (12) да, работает. спасибо)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |