Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос с НЕ в списке

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.