Имя: Пароль:
1C
 
Помогите правильно связать две виртуальные таблицы в запросе
0 shira84
 
03.12.15
10:20
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1.Ссылка КАК Контрагент,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт) КАК СуммаНачальныйОстаток
ПОМЕСТИТЬ Остатки
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , , , ) КАК ХозрасчетныйОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстаткиИОбороты.Субконто1.Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Субконто1.Ссылка КАК Контрагент,
    СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт) КАК СуммаНачальныйОстатокР
ПОМЕСТИТЬ ОстаткиР
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , , , , , ) КАК ХозрасчетныйОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстаткиИОбороты.Субконто1.Ссылка
;
1 cw014
 
03.12.15
10:21
А одним запросом - не религиозно?
2 cw014
 
03.12.15
10:22
Когда отстаток тягаешь, выкинь обороты нафиг. Иначе нагруз будет. И почему без периодов? У тебя же будут нули все
3 shira84
 
03.12.15
10:22
простой пример, потом как их связать чтобы в итоговую таблицу попали контрагенты и с первой и со второй таблицы?
4 cw014
 
03.12.15
10:22
Ну и конкретно по вопросу, если все "так надо" - используй ОБЪЕДИНИТЬ
5 shira84
 
03.12.15
10:23
дада, там еще условия не счет нету, но вопрос не в этом
6 cw014
 
03.12.15
10:23
(5) тебе в (4)
7 shira84
 
03.12.15
10:24
(6) ага щас попробую, отпишусь
8 shira84
 
03.12.15
10:32
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК ОстокПокупателя,
    NULL КАК ОстатокПоставщика
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет62), , ) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    NULL,
    СУММА(ХозрасчетныйОстатки.СуммаОстаток)
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет60), , ) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1
9 shira84
 
03.12.15
10:33
более правильно поставлю вопрос. теперь контрагент идет двумя строками
10 cw014
 
03.12.15
10:34
Вложенный запрос, вместо Null делай 0, во внешнем запросе группируй по контрагенту, из вложенных убери группировку
11 patria0muerte
 
03.12.15
10:36
(10) Лучше не во вложенный а во временную завернуть...
12 shira84
 
03.12.15
10:39
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстокПокупателя,
    0 КАК ОстатокПоставщика
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет62), , ) КАК ХозрасчетныйОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    0,
    ХозрасчетныйОстатки.СуммаОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет60), , ) КАК ХозрасчетныйОстатки
ИТОГИ
    СУММА(ОстокПокупателя),
    СУММА(ОстатокПоставщика)
ПО
    Контрагент
13 shira84
 
03.12.15
10:40
(10) так?
14 shira84
 
03.12.15
10:51
нет нифига не так
15 shira84
 
03.12.15
10:51
вот так надо ))
16 shira84
 
03.12.15
10:51
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстокПокупателя
ПОМЕСТИТЬ ВТ1
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет62), , ) КАК ХозрасчетныйОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК ОстатокПоставщика
ПОМЕСТИТЬ ВТ2
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет60), , ) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Контрагент КАК Контрагент,
    СУММА(ВложенныйЗапрос.ОстокПокупателя) КАК ОстокПокупателя,
    СУММА(ВложенныйЗапрос.ОстатокПоставщика) КАК ОстатокПоставщика
ИЗ
    (ВЫБРАТЬ
        ВТ1.Контрагент КАК Контрагент,
        ВТ1.ОстокПокупателя КАК ОстокПокупателя,
        NULL КАК ОстатокПоставщика
    ИЗ
        ВТ1 КАК ВТ1
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        ВТ2.Контрагент,
        NULL,
        ВТ2.ОстатокПоставщика
    ИЗ
        ВТ2 КАК ВТ2) КАК ВложенныйЗапрос

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Контрагент
17 shira84
 
03.12.15
10:53
cw014 спасибо. век живи, век учись.
18 patria0muerte
 
03.12.15
11:08
Лучше так:

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстокПокупателя,
    0 КАК ОстатокПоставщика
ПОМЕСТИТЬ ВТ
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет62), , ) КАК ХозрасчетныйОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    0 КАК ОстатокПокупателя,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстатокПоставщика
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет60), , ) КАК ХозрасчетныйОстатки
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ВТ.Контрагент КАК Контрагент,
    СУММА(ВТ.ОстатокПокупателя) КАК ОстатокПокупателя,
    СУММА(ВТ.ОстатокПоставщика) КАК ОстатокПоставщика
ИЗ
   ВТ КАК ВТ
СГРУППИРОВАТЬ ПО
    ВТ.Контрагент
19 cw014
 
03.12.15
13:04
ВЫБРАТЬ
    ВТ.Контрагент КАК Контрагент,
    СУММА(ВТ.ОстатокПокупателя) КАК ОстатокПокупателя,
    СУММА(ВТ.ОстатокПоставщика) КАК ОстатокПоставщика
ИЗ
   (ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстокПокупателя,
    0 КАК ОстатокПоставщика
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет62), , ) КАК ХозрасчетныйОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    0 КАК ОстатокПокупателя,
    ХозрасчетныйОстатки.СуммаОстаток КАК ОстатокПоставщика
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтч, Счет В ИЕРАРХИИ (&счет60), , ) КАК ХозрасчетныйОстатки) КАК ВТ
СГРУППИРОВАТЬ ПО
    ВТ.Контрагент


Вот так. Не плоди временных таблиц без причины