Имя: Пароль:
1C
1С v8
Помогите с запросом
,
0 M0narch
 
29.08.13
14:45
Добрый день!
Прошу помощи с запросом. Есть документы Документ1 с реквизитом "ВидДокумента", "Контрагент" и "ДатаРеализации". Нужно выбрать по каждому контрагенту документы, по виду документа и по дате реализации и определить сколько по этому контрагенту вообще было документов за весь период. С первой частью запроса проблем нет:
|Выбрать
|   Док.Ссылка
|ИЗ
|   Документ.Документ1 КАК Док
|ГДЕ
|   ВидДокумента = &ВидДокумента
|   И ДатаРеализации Между ДатаНач И ДатаОкон
а вот как количество всех документов сюда поставить не знаю.
1 Maxus43
 
29.08.13
14:46
Выбрать
ВидДокумента,
Количество(Док.Ссылка)
Сгруппировать ПО
ВидДокумента
2 M0narch
 
29.08.13
14:49
(1) так понятно, а как в одном запросе чтоб первое и второе
3 Maxus43
 
29.08.13
14:50
а зачем ты в запросе вобще Ссылку выбираешь? это список доков получится, а в задаче (0) я такого не вижу
4 Jonny_Khomich
 
29.08.13
14:53
(0) на работу устраиваешься, дали тестовое задание?
5 M0narch
 
29.08.13
14:54
(3) должно получится чтото типа
|Выбрать
|   Док.Контрагент,
|   Док.Ссылка
|ИЗ
|   Документ.Документ1 КАК Док
|ГДЕ
|   ВидДокумента = &ВидДокумента
|   И ДатаРеализации Между ДатаНач И ДатаОкон
|ИТОГИ ПО
|Док.Контрагент
6 M0narch
 
29.08.13
14:54
(4) нет
7 M0narch
 
29.08.13
14:56
надо определить первичен ли документ с таким видом или нет
8 Maxus43
 
29.08.13
14:56
ну Общие Итоги ещё, по Количество(Ссылка)
9 M0narch
 
29.08.13
14:59
(8) так я получу в заданом периоде. а мне надо выбирать документ из периода и проверять за все время не было ли документа с таким видом
10 M0narch
 
29.08.13
15:00
то есть если всего документов больше 1 значит это не первичный
11 antiteror91
 
29.08.13
15:00
попробуй выбрать 1 и затем проверяй на пустоту запрос
12 M0narch
 
29.08.13
15:02
цикл в цикле получится
13 M0narch
 
29.08.13
15:03
я думал может левое соединение к моему первому запросу с выборкой всех докментом по контрагенту и виду документа с итогами по ссылке
14 antiteror91
 
29.08.13
15:04
можно в одом запросе выбрать контрагентов и соединить их левым соединением с количеством
15 M0narch
 
29.08.13
15:08
(14) а как из левого соединения достать только количество ?
16 M0narch
 
29.08.13
15:08
можно пример
17 le_
 
29.08.13
15:16
ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка,
    РеализацияТоваровУслуг.ВидОперации,
    РеализацияТоваровУслуг.Контрагент
ПОМЕСТИТЬ ВсеДокументы
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.ВидОперации = &ВидОперации
;

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

СГРУППИРОВАТЬ ПО
    ВсеДокументы.ВидОперации,
    ВсеДокументы.Контрагент
;

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

СГРУППИРОВАТЬ ПО
    ВсеДокументы.ВидОперации,
    ВсеДокументы.Контрагент,
    ВсеДокументы.Ссылка

УПОРЯДОЧИТЬ ПО
    Контрагент,
    Ссылка
АВТОУПОРЯДОЧИВАНИЕ
18 M0narch
 
29.08.13
15:23
(17) спасибо