Имя: Пароль:
1C
1С v8
Запрос
,
0 FR95
 
10.07.18
19:19
Как в результат запроса вывести колонку - сумму или разность предыдущих двух колонок?
1 breezee
 
10.07.18
19:23
(0) колонка2-колонка1.
Вы вообще пытались?
2 mastodont
 
10.07.18
19:25
(1) +1
(0) для суммы: колонка1+колонка2...
3 mastodont
 
10.07.18
19:26
(0) а если серьезно, сформулируй проблему. Что не понятно?
4 FR95
 
10.07.18
19:29
для суммы: колонка1+колонка2...
так если делать какую-то бредятину выводит, и даже меняет значения в этих двух колонках
5 Джинн
 
10.07.18
19:30
(4) Так не бывает.
6 mastodont
 
10.07.18
19:32
(4) запрос в студию!
7 FR95
 
10.07.18
19:34
в общем есть колонки "сумма продаж" и "сумма возвратов", вывожу третьей колонкой их разность
ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваров.Ссылка) КАК КоличествоПокупок,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваров.Контрагент) КАК КоличествоКлиентов,
    ВложенныйЗапрос.КоличествоВозвратов КАК КоличествоВозвратов,
    СУММА(РеализацияТоваров.СуммаДокумента) КАК СуммаПродаж,
    ВложенныйЗапрос.СуммаВозвратов КАК СуммаВозвратов,
    РеализацияТоваров.СуммаДокумента - ВложенныйЗапрос.СуммаВозвратов КАК Поле1
ИЗ
    Справочник.Контрагенты КАК Контрагенты
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваров КАК РеализацияТоваров
        ПО (РеализацияТоваров.Контрагент = Контрагенты.Ссылка)
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВозвратТоваровОтПокупателя.Ссылка) КАК КоличествоВозвратов,
            ВозвратТоваровОтПокупателя.Контрагент КАК ВозвратКонтрагент,
            СУММА(ВозвратТоваровОтПокупателя.СуммаДокумента) КАК СуммаВозвратов
        ИЗ
            Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя
        ГДЕ
            ВозвратТоваровОтПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
            И ВозвратТоваровОтПокупателя.ПометкаУдаления = ЛОЖЬ
            И ВозвратТоваровОтПокупателя.Проведен = ИСТИНА
        
        СГРУППИРОВАТЬ ПО
            ВозвратТоваровОтПокупателя.Контрагент) КАК ВложенныйЗапрос
        ПО Контрагенты.Ссылка = ВложенныйЗапрос.ВозвратКонтрагент
ГДЕ
    РеализацияТоваров.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    И РеализацияТоваров.ПометкаУдаления = ЛОЖЬ
    И РеализацияТоваров.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
    Контрагенты.Ссылка,
    ВложенныйЗапрос.КоличествоВозвратов,
    ВложенныйЗапрос.СуммаВозвратов,
    РеализацияТоваров.СуммаДокумента - ВложенныйЗапрос.СуммаВозвратов

Пока эту колонку не добавлю все идеально, но она все рушит
8 mastodont
 
10.07.18
19:40
(7) 1. РеализацияТоваров.СуммаДокумента или ВложенныйЗапрос.СуммаВозвратов может быть Null
2. Ты зачем-то в конце группируешь по этой колонке...

А вообще вопрос должен быть почему у меня не работает отчет, а не как посчитать сумму/разницу.
9 FR95
 
10.07.18
19:45
так его из группировки не получается вытащить, он автоматически добавляется туда
10 mastodont
 
10.07.18
19:46
вообще к запросу много вопросов. например, зачем связывание со справочником контрагентов.
11 mastodont
 
10.07.18
19:47
используй естьnull(   , 0) для суммы документы и суммы возврата.
12 FR95
 
10.07.18
19:48
чтобы видеть цифры в разрезе контрагентов
13 FR95
 
10.07.18
19:49
(11) добавил естьnull, ничего не изменилось
14 youalex
 
10.07.18
20:03
так тебе надо разность сумм, похоже.
и вообще, есть смысл посмотреть в сторону какого-нибудь регистра, типа Продажи
15 vicof
 
10.07.18
20:13
мои глаза...
Смотри в сторону ОБЪЕДИНИТЬ ВСЕ
16 Sserj
 
10.07.18
20:13
(13) Вообще у тебя должно быть что-то подобное:

ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваров.Ссылка) КАК КоличествоПокупок,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ РеализацияТоваров.Контрагент) КАК КоличествоКлиентов,
    ВложенныйЗапрос.КоличествоВозвратов КАК КоличествоВозвратов,
    СУММА(РеализацияТоваров.СуммаДокумента) КАК СуммаПродаж,
    СУММА(ВложенныйЗапрос.СуммаВозвратов) КАК СуммаВозвратов,
    СУММА(РеализацияТоваров.СуммаДокумента - ВложенныйЗапрос.СуммаВозвратов) КАК Поле1

...

СГРУППИРОВАТЬ ПО
    Контрагенты.Ссылка
17 Sserj
 
10.07.18
20:14
+(16) И Количество возвратов тоже должно быть в агрегатной функции

...
СУММА(ВложенныйЗапрос.КоличествоВозвратов) КАК КоличествоВозвратов
...
18 FR95
 
12.07.18
09:41
Вопрос решен. Создал временную таблицу с этим запросом, создал второй пакет запроса и вывел все нужные поля из временной таблицы.