Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Запрос в ДБФ, не фильтрует по индексному выражению.. (число прочтений - 1282 )
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Запрос в ДБФ, не фильтрует по индексному выражению..
19. Марта 2010 :: 12:21
Печать  
в остатковом регистре есть индекс:

F=SP2088    |(P)Номенклатура|C   |9     |0    
#----Indexes------
I=VIA2088  |VIA2088       |0     |SP2088,DATE,TIME,IDDOC,LINENO,ACTNO                         |VIA2088  

Выгребаем движения регистра с фильтром до позиции документа:

Код
Выбрать все
	FROM
		ra972 AS Движения
	WHERE
		neno,4)+STR(Движения.actno,6) BETWEEN
       '         '+DTOS({d '2007-12-01'})+'      '+'         '+'    '+'      '
       And 'ZZZZZZZZZ'+'20071203A4QKM8   GDD   '+'ZZZZ'+'ZZZZZZ' 



При этом выгребаются все  движения , игнорируя позицию документа

Если же в регистр воткнуть галку "быстрая обработка движений" и построить запрос по индексу
I=DATETIME |Date+Time+ID+L|0     |DATE,TIME,IDDOC,LINENO,ACTNO                                |DATETIME  

Код
Выбрать все
	FROM
		ra972 AS Движения
	WHERE
		ения.actno,6) BETWEEN
       DTOS({d '2007-12-01'})+'      '+'         '+'    '+'      '
       And '20071203A4QKM8   GDD   '+'ZZZZ'+'ZZZZZZ' 



то всё работает как надо..
Помогите исправить первый вариант.. пятница понимашь, не догоняю ,где ошибка
Печаль




  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос в ДБФ, не фильтрует по индексному выражению..
Ответ #1 - 19. Марта 2010 :: 12:27
Печать  
Правильно он тебе в первом случае фильтр сделал. Ты ж ему указал диапазон от
Цитата:
'         ' +{далее не важно} до 'ZZZZZZZZZ'+{далее не важно}

Поэтому туда и попадают все движения.
Поэтому этот индекс использовать в данном случае не получится
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос в ДБФ, не фильтрует по индексному выражению..
Ответ #2 - 19. Марта 2010 :: 12:28
Печать  
все верно.
используя индекс VIA2088 невозможно получить движения всех товаров за ограниченный период
для этого и необходим индекс DATETIME
  

1&&2&&3
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос в ДБФ, не фильтрует по индексному выражению..
Ответ #3 - 19. Марта 2010 :: 12:34
Печать  
А всё.. дошло.
Он подошел бы, если только конкретный товар пихать в правое выражение..
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать