Имя: Пароль:
1C
1С v8
Помогите с запросом
0 mremin
 
14.03.13
14:35
Всем привет! Помогите написать запрос.
Ситуация следующая (упрощенно):

Самописная конфигурация на управляемых формах.
1. Справочник Автомобили
2. регистр сведений ДанныеАвтомобилей
измерения: Автомобиль, Организация
ресурсы: Статус

то есть в разных организациях автомобиль может находиться в разных статусах.

Задача такая: нужен запрос для динамического списка, который выведет список автомобилей со статусами
(то есть в списке будут три колонки: Автомобиль, Организация, Статус)

В данный момент запрос выглядит так:
   ВЫБРАТЬ РАЗЛИЧНЫЕ
       Автомобили.Ссылка КАК VIN,
   ИЗ
       Справочник.Автомобили КАК Автомобили
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеАвтомобилей КАК ДанныеАвтомобилей
       ПО (ДанныеАвтомобилей.VIN = Автомобили.Ссылка)
   ГДЕ
       НЕ Автомобили.ПометкаУдаления

Сейчас в результате выполнения запроса один автомобиль может попасть в список дважды (если в регистре сведений ДанныеАвтомобилей
существуют две записи по данному автомобилю.).

Запрос нужно дописать так, чтобы в колонку "Статус" выводилось произвольное значение (к примеру, строка "Комплексный"),
когда в регистре сведений ДанныеАвтомобилей существует более одной записи по конкретному автомобилю.

ТО есть задача сводится к следующему:
1. посчитать количество записей в регистре сведений ДанныеАвтомобилей по каждому автомобилю и, если этих записей больше одной,
вместо значения ресурса "Статус" вернуть произвольную текстовую строку.
1 mremin
 
14.03.13
14:38
поправка
запрос выглядит так:

ВЫБРАТЬ РАЗЛИЧНЫЕ
       Автомобили.Ссылка КАК VIN,
       ДанныеАвтомобилей.Статус КАК Статус
   ИЗ
       Справочник.Автомобили КАК Автомобили
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеАвтомобилей КАК ДанныеАвтомобилей
       ПО (ДанныеАвтомобилей.VIN = Автомобили.Ссылка)
   ГДЕ
       НЕ Автомобили.ПометкаУдаления
2 kible
 
14.03.13
14:40
Добавь в запрос поле с числом сгруппируй по автомобилю положи запрос во временную таблицу. Выбери из временной таблицы автомобили и если поле с числом > 1 тогда статус = комплексный.
3 blesha
 
14.03.13
14:41
(2) опередил)
4 mremin
 
14.03.13
14:45
(2) Спасибо! Если не затруднит, напиши пример.
5 mremin
 
14.03.13
14:54
(2)(3) приведите пример, плиз. Пока что я не особенно силен в запросах с временными таблицами.
6 Sammo
 
14.03.13
14:59
Конструктор и поиск в помощь
7 blesha
 
14.03.13
15:04
выбрать
 авто
поместить я_временнная_таблица
из РегСвед
сгруппировать по авто
имеющие количество(авто)> ....
;
Выбрать
авто
выбор когда ..... тогда статус иначе "комплексная" конец
Из СпрАвто левое соединение я_временнная_таблица по .....

подсказка тебе, допили сам)
8 НЕА123
 
14.03.13
15:04
Выбрать VIN как VIN,
Выбор когда Счетчик >1 Тогда Статус Иначе "произвольная строка" конец КАК Статус ИЗ(
ВЫБРАТЬ РАЗЛИЧНЫЕ
       Автомобили.Ссылка КАК VIN,
       Максимум(ДанныеАвтомобилей.Статус) КАК Статус,
       Сумма(1) как счетчик
   ИЗ
       Справочник.Автомобили КАК Автомобили
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеАвтомобилей КАК ДанныеАвтомобилей
       ПО (ДанныеАвтомобилей.VIN = Автомобили.Ссылка)
И
       НЕ Автомобили.ПометкаУдаления
Сгруппировать по Ссылка)
9 mremin
 
14.03.13
15:17
(7)(8) всем большое спасибо, дальше допилю ))