Имя: Пароль:
1C
 
При группровке строк в запросе, получать разность группируемых строк, а не сумму
0 Paradox
 
13.11.14
07:33
Привет всем, вопрос в теме.
Например, имеем запрос:

Выбрать
  Номенклатура,
  СУММА(СуммаПродажи)
Из Рег.накопления.Продажи
Сгруппировать По
Номенклатура

но надо бы не суммировать, а каждую строчку вычитать.

Подскажите как реализовать?) или проще выгрузить в ТЗ и там уже пробежаться по строкам?
1 Рэйв
 
13.11.14
07:35
Выбор Когда истина Тогда
   Рез = ОднаСтрока-Вторая
Как Разница
2 Рэйв
 
13.11.14
07:35
вру конечно:-)
Просто
ОднаСтрока-Вторая
3 Molinor
 
13.11.14
07:36
Как определить какую строку из какой вычитать? А если 10 строк с одинаковой номенклатурой, как тут быть?
4 Paradox
 
13.11.14
07:37
да просто, при группировке делать разность...без разницы...как работает сумма? суммирует то, что попало под группировку. Тоже самое потребовалось, но разность делать)
5 Рэйв
 
13.11.14
07:37
(3)Вообщето там имена колонок.
6 Paradox
 
13.11.14
07:37
Молоко
1+2+3+4

надо

Молоко
1-2-3-4
7 Рэйв
 
13.11.14
07:37
(4)Если в СУММА() обернешь выбор прекрасно суммируется
8 Molinor
 
13.11.14
07:38
(6) А почему не 4-3-2-1? Как определить ту строку, из которой вычитать то?
9 Wobland
 
13.11.14
07:38
(6) почему именно в этом порядке?
10 lxndr
 
13.11.14
07:38
чем строка из которой надо отнимать отличается от строк, которые надо отнимать?
11 Looser-1c
 
13.11.14
07:38
Сумма коммутируемый оператор.
Разность - нет
Поэтому порядок значение имеет
(6) А почему не 4-3-2-1?
12 Рэйв
 
13.11.14
07:39
(0)Я мож чего не онял.Ты из разных строк значения брать собрался или из одной из раных колонок?
13 Wobland
 
13.11.14
07:39
(11) коммутативная операция ваще-то ;)
14 Paradox
 
13.11.14
07:40
(11) да, но порядок допустим есть...я упорядочил, осталось разность получить
15 Looser-1c
 
13.11.14
07:40
(13) да, ошибся.
16 Paradox
 
13.11.14
07:40
(0) ну в принципе из разных...я упорядочил строки как мне надо, только теперь надо разность получить
17 Wobland
 
13.11.14
07:41
(14) выгрузить в ТЗ и там уже пробежаться по строкам
18 Paradox
 
13.11.14
07:41
блин...да, задача в запросе бредовая получается...помоему ТЗ проще
19 Рэйв
 
13.11.14
07:41
(16)Тогда в запросе сразу никак.
Только из результата
20 Wobland
 
13.11.14
07:41
+(17) или даже обойти дерево
21 lxndr
 
13.11.14
07:45
Выбрыть первые 1 из таблицы, умножить на 2
От всего этого отнять сумму всех
22 Paradox
 
13.11.14
07:46
я думаю так:
разорвать запрос...
1. Выгрузка в ТЗ
2. Обход ТЗ и вычисление разности
3. Продолжаем запрос, но из временной таблице полученной из ТЗ
23 lxndr
 
13.11.14
07:50
(16) по какому принципу упорядочил? По тому же принципу для строк > 1 сделай *(-1)
24 Paradox
 
13.11.14
07:51
(23) от даты первой продажи
25 Йохохо
 
13.11.14
08:17
(24) смысл какой? наверное тебе надо в запрос среднеквадратичное добавить, чтобы вычитать среднеквадратичное из первой продажи, чтобы температура по больнице была более среднеквадратичной
26 СвинТуз
 
13.11.14
09:23
выбери первую продажу
сосчитай общую продажу
сделай объединение
только на 2 не забудь умножить первую продажу

тз не нужно
27 Крошка Ру
 
13.11.14
12:01
(22)Выбирай в одну временную таблицу уменьшаемое значение, в другую всё остальное со знаком минус, объединяй и группируй