Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Подобрать документы по сумме (число прочтений - 2031 )
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Подобрать документы по сумме
30. Мая 2007 :: 05:46
Печать  
Есть определенная сумма например 1000 - нужно подобрать на эту сумму документы определенного типа например Документ.Реализация начиная с последнего. Есть ли подобная функция в SQL?
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Подобрать документы по сумме
Ответ #1 - 30. Мая 2007 :: 07:40
Печать  
Найти последние 20 документов РасходнаяНакладная с суммой =1000. Сумма хранится в реквизите ТЧ "Сумма", по которому стоит "Итог по колонке".

select top 20
    j.iddoc as [Документ $Документ.РасходнаяНакладная]
from _1sjourn as j (nolock)
jeft join $Документ.РасходнаяНакладная as РН (nolock) on РН.iddoc = j.iddoc
where j.iddocdef = $ВидДокумента.РасходнаяНакладная and $РН.Сумма = 1000
order by j.date_time_iddoc desc
  
Наверх
ICQ  
IP записан
 
RuporAbsurda
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 413
Зарегистрирован: 29. Июня 2006
Re: Подобрать документы по сумме
Ответ #2 - 30. Мая 2007 :: 07:53
Печать  
Нет нужно, что бы общая сумма всех документов не превышала 1000, причем сколько их будет заранее неизвестно.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Подобрать документы по сумме
Ответ #3 - 30. Мая 2007 :: 08:03
Печать  
могу предложить два способа (оба алгоритмические):
1) циклически получать порциями по n штук ( ВыпонитьИтструкцию() с top n при date_time_iddoc < текущего). Остановиться когда будет набрана сумма.
2) Открыть серверный курсор методом Открыть(<TextSQL>,1) и тянуть по одной записи до нужной суммы. Важно: помнить, что пока открыт серверный курсор к прочим данным БД обращаться нельзя
  

1&&2&&3
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Подобрать документы по сумме
Ответ #4 - 30. Мая 2007 :: 08:17
Печать  
упс.. тогда:
Объект типа Документ.РасходнаяНакладная с предворительным вызовом метода ОбратныйПорядок и последующим ВыбратьДокументы, в цикле ПолучитьДокумент делает какраз то, что предожил trad в 2. Улыбка
Если этой скорости не хватает, то можно исполнить все на сервере.. ХП написать..
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать