Имя: Пароль:
1C
1С v8
Запрос с НЕ в списке
,
0 Vovka-x13
 
17.11.20
11:42
Есть запрос, ниже, суть его выдать адреса за текущий месяц которых не было за предыдущие 6 месяцев, раньше работал, но сейчас нет. Дело видимо в не верном использование условия "НЕ" как можно сделать чтобы выдавал нужную информацию?
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВЫРАЗИТЬ(ПродажиОборотыТек.ДокументПродажи.АдресДоставки КАК СТРОКА(200)) КАК АдресаДоставкиКолВоЗа3МесяцПредыд,
    ПродажиОборотыТек.Проект.Менеджер КАК ПроектМенеджер
ИЗ
    РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ), КОНЕЦПЕРИОДА(&Период, ДЕНЬ), Авто, ) КАК ПродажиОборотыТек
ГДЕ
    НЕ ВЫРАЗИТЬ(ПродажиОборотыТек.ДокументПродажи.АдресДоставки КАК СТРОКА(200)) В (ВЫБРАТЬ
                        ВЫРАЗИТЬ(ПродажиОбороты.ДокументПродажи.АдресДоставки КАК СТРОКА(200)) КАК Поле1
                    ИЗ
                        РегистрНакопления.Продажи.Обороты(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -6), МЕСЯЦ), КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1), МЕСЯЦ), Авто, ) КАК ПродажиОбороты
                    СГРУППИРОВАТЬ ПО
                        ВЫРАЗИТЬ(ПродажиОбороты.ДокументПродажи.АдресДоставки КАК СТРОКА(200))
)
1 acht
 
17.11.20
11:45
(0) > раньше работал, но сейчас нет
Да неужели?
2 lodger
 
17.11.20
11:45
а) плохой запрос
б) плохая идея работать со строками неопределенной длины в запросе.

неужели нет других критериев?
3 Vovka-x13
 
17.11.20
11:46
понятно, что запрос плохой , но вариантов нет
4 Vovka-x13
 
17.11.20
11:47
(1) почему думаешь ? что не работал раньше?
5 Kassern
 
17.11.20
11:48
получи во временную таблицу адреса за прошлые 6 месяцев. Далее в новом пакете получи адреса за текущий месяц и через левое соединение соедини с временной таблицей по адресу. Сделай условие ЕстьNull(ВременнаяТаблица.Адрес,Неопределено)=неопределено
6 acht
 
17.11.20
11:50
(4) Ну расскажи, что он выводил раньше и что выводит сейчас
7 Timon1405
 
17.11.20
11:53
Если сейчас не работает за прошлые периоды, а раньше работало, то дело в запросе, а
если сейчас работает за прошлые периоды, а за текущий нет, то дело в данных в базе(или их отсутствии) за новый период.
8 mastodont
 
17.11.20
11:53
(0) вложенные запросы - зло!
Переделай запрос с использование временных таблиц.
Улучшится и читаемость и производительность.