Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Первый запрос. по движению по регистру. Подскажите (число прочтений - 3850 )
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Первый запрос. по движению по регистру. Подскажите
16. Августа 2006 :: 11:17
Печать  
Подскажите как сделать чтобы в ТЗ возвращались все документы которые сделали движения. Если сделать как написано ниже, то в те документы которые отличаются от указанного вида невозможно потом обработать из ТЗ.


Запрос1спп = СоздатьОбъект("ODBCRecordset");      
     ТекстЗапроса = "
!!!!      |SELECT ПоказанияСчетчиков.IDDOC [Документ $Документ.ОбходКонтроллера] !!!!
     |, $ПоказанияСчетчиков.Показания Показания
     |FROM $Регистр.ПоказанияСчетчиков AS ПоказанияСчетчиков
     |WHERE ($ПоказанияСчетчиков.Счетчики = :Счетчик)
     |AND (ПоказанияСчетчиков.DATE_TIME_IDDOC BETWEEN :НачДата AND :КонДата~)
     |GROUP BY ПоказанияСчетчиков.IDDOC
     |, $ПоказанияСчетчиков.Показания
     |ORDER BY ПоказанияСчетчиков.IDDOC DESC";
     
     Запрос1спп.УстановитьТекстовыйПараметр("Счетчик",ВыбСчетчик);         
     Запрос1спп.УстановитьТекстовыйПараметр("НачДата",ВыбНачПериода);         
     Запрос1спп.УстановитьТекстовыйПараметр("КонДата",ВыбКонПериода);
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Первый запрос. по движению по регистру. Подска
Ответ #1 - 16. Августа 2006 :: 11:28
Печать  
Код
Выбрать все
SELECT ПоказанияСчетчиков.IDDOC [Документ $Документ]
    , ПоказанияСчетчиков.IDDOCDEF Документ_вид
...
GROUP BY ПоказанияСчетчиков.IDDOC
    , ПоказанияСчетчиков.IDDOCDEF
...  

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
U_zer
Экс-Участник


Re: Первый запрос. по движению по регистру. Подска
Ответ #2 - 16. Августа 2006 :: 13:02
Печать  
В принципе, можно
даже
Max(ПоказанияСчетчиков.IDDOCDEF ) Документ_вид

Чтоб лишнего поля не было.
  
Наверх
 
IP записан
 
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Первый запрос. по движению по регистру. Подска
Ответ #3 - 17. Августа 2006 :: 02:35
Печать  
Спасибо. В select уже пробовал добавлять, а в группировку не додумался, поэтому и не получалось.
Еще вопрос, как сделать так чтобы в ТЗ был не номер вида документа, а идентификатор.


PS Вопрос снят.  Улыбка
  
Наверх
 
IP записан
 
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Первый запрос. по движению по регистру. Подска
Ответ #4 - 17. Августа 2006 :: 05:11
Печать  
Еще вопрос. Что в моем запросе наиболее "тяжелое". Замер показал что переход от обычной выборки по регистру к запросу указанному выше ускорение около 13%. Есть ли возможность как то еще ускорить?
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Первый запрос. по движению по регистру. Подска
Ответ #5 - 17. Августа 2006 :: 08:31
Печать  
Kind писал(а) 17. Августа 2006 :: 05:11:
Еще вопрос. Что в моем запросе наиболее "тяжелое". Замер показал что переход от обычной выборки по регистру к запросу указанному выше ускорение около 13%. Есть ли возможность как то еще ускорить?

Стоит ли флажок "Отбор движений" у измерения (реквизита?) "Счетчики"?
Если нет - попробуй поставить.

Стоит ли флажок "Быстрая обработка движений" у регистра?
Если нет - поставь или этот, или "Отбор движений" у "Счетчики".

Нужна ли сортировка именно по IDDOC?
Попробуй по DATE_TIME_IDDOC

P.S. Запрос, надеюсь, не в цикле - для каждого счетчика?  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Kind
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 18
Зарегистрирован: 16. Августа 2006
Re: Первый запрос. по движению по регистру. Подска
Ответ #6 - 18. Августа 2006 :: 09:53
Печать  
Флажки стоят.
Запрос идет в цикле для каждого счетчика. их всего 36 тыс. предлагаете сделать один запрос и потом в тз искать необходимы счетчик. ИМХО быстрее не будет точно. Расчет идет по лицевым счетам. У каждого лиц. счета может быть несколько счетчиков. А может счетчик появиться в середине месяца, и тогда пол месяца считается по определенной шкале. Поэтому цикл идет по лиц. счетам, в нем выбираеются показания по каждому счетчику этого лиц.счета. и тогда в зависимости от того были движения или нет делаются различные расчеты.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Первый запрос. по движению по регистру. Подска
Ответ #7 - 18. Августа 2006 :: 10:13
Печать  
Тогда варианты:
  • Присоедини справочник лицевых счетов и сделай одним запросом с группировкой по лиц. счетам и счётчикам. + ТаблицаГруппировок или ИндексированнаяТаблица.
  • Используй РежимRPC(1).
  • Используй параметризованные запросы.

IMHO, самый быстрый - первый. Пробуй.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать