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

select
...

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

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