Имя: Пароль:
1C
1С v8
Как в запросе, сложить суммы N-й строки табличной части?
,
0 Галахад
 
гуру
30.05.14
07:41
Табличная часть "Товары".
Реквизит "Сумма".

Допустим нужно получить сумму всех вторых строк.
1 Галахад
 
гуру
30.05.14
07:41
Да, на "НомерСтроки" не опираемся.
2 shuhard
 
30.05.14
07:42
(1) нелепая затея, через минуту юзер пересортирует ТЧ и усё накроется
3 Галахад
 
гуру
30.05.14
07:45
(2) Мне разово данные получить. Потом хоть потоп. :-)
4 shuhard
 
30.05.14
07:46
(3) топись
5 Лодырь
 
30.05.14
07:47
(3) Ну бери тогда любую строку. Она всегда может стать второй.
6 Галахад
 
гуру
30.05.14
07:47
(4) Фигу.
7 Галахад
 
гуру
30.05.14
07:50
(5) Оптимистично. :-)
8 Лодырь
 
30.05.14
07:53
(7) На самом деле, понятие "вторая строка" явно опирается исключительно на номера строк которые ты сказал не юзать. В остальном порядок строк на выходе запроса к это табличке будет хз каким. Следовательно, без номера строки не обойтись.
9 1dvd
 
30.05.14
07:55
без "НомерСтроки" у строк нет порядка
10 Галахад
 
гуру
30.05.14
07:56
(8), (9) Я упорядочу их по убыванию реквизита.
11 Лодырь
 
30.05.14
07:56
Вообще, если ты сможешь строго упорядочить строки в запросе - то вторая строка выбиравется легко.
12 Лодырь
 
30.05.14
07:57
Ну тогда скрести таблицу саму с собой, выбери количество вышележащих и выбери ту у которой оно равно 1.
13 13_Mult
 
30.05.14
07:57
В чём смысл складывать именно вторые? Чем они отличаются от первых? ))
14 Лодырь
 
30.05.14
07:58
(13) Это же очевидно. Они вторые ) а те первые.
15 shuhard
 
30.05.14
07:59
(10)[Я упорядочу их по убыванию реквизита.]
а если реквизит имеет дубли ?
16 Мутабор
 
30.05.14
07:59
SELECT SUM WHERE НомерСтроки = 2
17 SeraFim
 
30.05.14
07:59
Получаешь все первые. Исключаешь их из исходной выборки. Получаешь все первые из полученной выборки
18 Галахад
 
гуру
30.05.14
08:02
(12) Гм. Непонятно.

(13), (14) :-)

(15) Это не важно.

(17) Это как?

Созрели идея, соединить с табличкой номеров. Наверное так проще будет.
19 этописеЦ
 
30.05.14
08:04
(18) соединяешь таблицу с самой собой - нумеруешь строки, далее по условии четнсоти делаешь что надо
20 SeraFim
 
30.05.14
08:04
(18) >> соединить с табличкой номеров
По какому условию соединять будешь?)
21 YurAnt
 
30.05.14
08:04
(17) выбирать каждую первую строку? это очень пятнично)
22 echo77
 
30.05.14
08:04
Нумеруй строки в запросе:
http://kb.mista.ru/article.php?id=703
23 SeraFim
 
30.05.14
08:05
(21) а "сумма всех вторых строк" тебя не смутила?)))
24 этописеЦ
 
30.05.14
08:06
(23) пацан к успеху шол )
25 YurAnt
 
30.05.14
08:06
(23) ну сумма всех вторых строк это уже логическое завершение выборки всех первых строк)
26 YurAnt
 
30.05.14
08:08
(23) эти цитаты должны уйти в "пятницо" 100% xD
27 SeraFim
 
30.05.14
08:12
Ладно уж, разжую, что я имел в виду.
Из (10) >> Я упорядочу их по убыванию реквизита
То есть в каждой "первой строке" по группировке будет максимальное значение. Можно взять МАКСИМУМ() По группировке, тогда получим только "первые строки".
Исключаем их из исходной группировки.
Полученную группировку - делаем то же самое)

Единственная проблема - если есть строки с одинаковыми значениями реквизита. Но "это уже тактика, а Я стратег".
28 SeraFim
 
30.05.14
08:13
(27) Полученную группировку = Полученную выборку
29 SeraFim
 
30.05.14
08:23
30 shuhard
 
30.05.14
08:25
(27) угу
в (15) про дубли ключа вопрос задан
в (18) получен ответ, что это не важно

похоже у ТС нет реальных данных
и проще всего ему отказаться от запроса и использовать тупую ТЗ