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

v7: КоличествоСтрок() в прямом запросе

v7: КоличествоСтрок() в прямом запросе
Я
   zenon46
 
09.03.21 - 16:14
Доброго дня! Есть прямой запрос к журналу с выборкой по одному виду документа и получения некоторых значений из шапки, а как можно получить количество строк в табличной части в прямом запросе ?
   ДенисЧ
 
1 - 09.03.21 - 16:19
левое соединение с сгруппированной тч и count()
   Sserj
 
2 - 09.03.21 - 16:19
SQL какой?
   zenon46
 
3 - 09.03.21 - 16:22
(2) 2008
   Sserj
 
4 - 09.03.21 - 16:25
(3)
select
...
 count(жур.iddoc) over() as [СтрокВЗапросе]
from
  _1SJOURN as жур
....
   Sserj
 
5 - 09.03.21 - 16:27
+(4)
А к примеру:
count(жур.iddoc) over (partition by left(жур.date_time_iddoc, 8)) as [СтрокВДень]
   Sserj
 
6 - 09.03.21 - 16:46
А или все перепутал. Это количество строк в самом запросе написал.
Тебе видимо нужно 

select
...

, СтрокиДокументов.Количество as [КоличествоСтрок]
from

  _1SJOURN as жур
  outer apply (select count(*) as [Количество]
               from $ДокументСтроки.ВидДокумента as док
               where док.iddoc = жур.iddoc) as СтрокиДокументов
   zenon46
 
7 - 09.03.21 - 16:53
(6) что-то не осилил я оконные функции, попробую позже, сделал немного по другому.
   mikecool
 
8 - 09.03.21 - 17:57
(6) ого как, это типа замена группировки с подсчетом количества?
   Sserj
 
9 - 10.03.21 - 04:36
(8) Ну да типа того, только преимущества APPLY в том что SQL применяет этот запрос к каждой строке результирующей выборки, т.е. не нужно повторять все условия как было в соединении с запросом и группировкой, тут уже отобраны только нужные жур.iddoc и второе самое главное APPLY очень хорошо поддается обработке в несколько потоков. Может на SQL2008 это и не будет очень заметно, а вот от SQL2014 и выше такой запрос может отработать на всех доступных ядрах.

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