|
Простое условие в запросе | ☑ | ||
---|---|---|---|---|
0
Chum
14.11.13
✎
15:59
|
Есть регистр сведений:
Измерения: План <булево> Этап1 <справочник> Этап2 <справочник> Ресурсы: Вес <число> Расстояние <число> Реквизиты: ДатаВремяIn <Дата> ДатаВремяOut <Дата> Нужно получить таблицу: Этап1 Этап2 ВесПлан ВесФакт РасстояниеПлан РасстояниеФакт ДатаInПлан ДатаOutПлан ДатаInФакт ДатаOutФакт Вес, расстояние и т.д. нужно раскидать в разные колонки из этого регистра в зависимости от значения измерения План: если истина, то в колонки План, иначе в Факт. Не могу сообразить как создать запрос. Вроде ВЫБОР нужно использовать? |
|||
1
mikecool
14.11.13
✎
16:00
|
надо использовать выбор
|
|||
2
Maxus43
14.11.13
✎
16:00
|
да, ВЫБОР КОГДА ТОГДА ИНАЧЕ КОНЕЦ
|
|||
3
Chum
14.11.13
✎
16:03
|
А еще нужно свернуть эту таблицу по измерениям Этап1 и Этап2, План нужен только для раскидывания ресурсов и реквизитов по разным колонкам
|
|||
4
Chum
14.11.13
✎
16:05
|
(1)(2) т.е. что-то вроде:
Выбор Когда План Тогда РегистрСведений.ХХХ.Вес Конец Как ВесПлан Выбор Когда НЕ План Тогда РегистрСведений.ХХХ.Вес Конец Как ВесФакт ??? |
|||
5
1dvd
14.11.13
✎
16:06
|
(4) да, но и про ИНАЧЕ не забудь
|
|||
6
Chum
14.11.13
✎
16:06
|
(5) ага
(1)(2) т.е. что-то вроде: Выбор Когда План Тогда РегистрСведений.ХХХ.Вес иначе 0 Конец Как ВесПлан |
|||
7
Classic
14.11.13
✎
16:06
|
(4)
КОГДА План = Истина Просто КОГДА План вроде не отработает |
|||
8
vicof
14.11.13
✎
16:08
|
(7) Отработает
|
|||
9
Classic
14.11.13
✎
16:09
|
(8)
Тем лучше |
|||
10
Chum
14.11.13
✎
16:11
|
Ушел проверять. Спасибо за подсказки
|
|||
11
Chum
15.11.13
✎
12:51
|
Коллеги, а как свернуть результат запроса при его выполнении?
Склепал вот такой запрос.
Отрабатывает, но выдает результат в виде шахматной доски. мне нужны данные, свернутые по трем колонкам: МаршрутныйЛист ПунктОтправления ПунктПрибытия остальные колонки должны быть схлопнуты Пробовал убрать группировку по полю План, но тогда ругается на ВЫБОР КОГДА ВыполнениеМаршрутногоЗадания.План, что нет группировки. |
|||
12
Ненавижу 1С
гуру
15.11.13
✎
12:56
|
как планируешь "схлопнуть" даты?
|
|||
13
Chum
15.11.13
✎
12:58
|
(12) дата там или есть, или ее нет.
Вообще, идеальная картинка была бы такой: http://media.ffclub.ru/up254350-Bezimyanniy2.jpg |
|||
14
Chum
15.11.13
✎
12:59
|
(12) т.е. я хотел сказать, что две строки, в одной дата есть, в другой даты нет. Нужно получить одну строку с датой.
|
|||
15
viktor_vv
15.11.13
✎
13:10
|
Можно еще саму с собой таблицу полным соединением соединить, тогда без Выбор можно обойтись, и с датами тогда можно разрулить по идее.
Типа такого |ИЗ | РегистрСведений.ВыполнениеМаршрутногоЗадания КАК ВыполнениеМаршрутногоЗаданияПлан |Полное соединение РегистрСведений.ВыполнениеМаршрутногоЗадания КАК ВыполнениеМаршрутногоЗаданияФактФакт ПО ВыполнениеМаршрутногоЗаданияФакт.МаршрутныйЛист.ДатаИВремяОтправленияПлан МЕЖДУ НачалоПериода(&НачПериода, День) И КонецПериода(&КонПериода, День) И ВыполнениеМаршрутногоЗаданияПлан.Факт И ВыполнениеМаршрутногоЗаданияПлан.МаршрутныйЛист = ВыполнениеМаршрутногоЗаданияФакт.МаршрутныйЛист И т. д. |ГДЕ | ВыполнениеМаршрутногоЗаданияПлан.МаршрутныйЛист.ДатаИВремяОтправленияПлан МЕЖДУ НачалоПериода(&НачПериода, День) И КонецПериода(&КонПериода, День) И ВыполнениеМаршрутногоЗаданияПлан.План тут правда прикинуть как правильнее в Где условие указать. |
|||
16
r_p
15.11.13
✎
13:16
|
(13) Группируй с функцией МАКСИМУМ()
|
|||
17
Chum
15.11.13
✎
13:16
|
(12) блин... дошло.
(15) да, спасибо. через соединение попробую. Попробую вариант соединения с сортировкой даты по убыванию и выборкой первой строки. |
|||
18
Chum
15.11.13
✎
13:17
|
(16) например?
|
|||
19
r_p
15.11.13
✎
13:21
|
В конструкторе запроса на вкладке "Группировка" засунь твои даты в суммируемые поля, функцию выбери МАКСИМУМ. И все сложится.
|
|||
20
viktor_vv
15.11.13
✎
13:22
|
И таки да, (16) номрмально. Только В Максимум нельзя Выбор засунуть, вроде как. Если так, то надо сверху еще одним Выбрать обернуть.
|
|||
21
r_p
15.11.13
✎
13:23
|
(20) А вот и можно. Готов поспорить на 100 долларов =)
|
|||
22
viktor_vv
15.11.13
✎
13:25
|
(21) Не, спорить не буду :). Сейчас сам забесплатно почитаю, проверю :).
|
|||
23
Chum
15.11.13
✎
15:33
|
(19) получилось. премного благодарен
что-то вроде этого: "ВЫБРАТЬ | ВыполнениеМаршрутногоЗадания.МаршрутныйЛист КАК МаршрутныйЛист, | ВыполнениеМаршрутногоЗадания.ПунктОтправления, | ВыполнениеМаршрутногоЗадания.ПунктПрибытия, | МАКСИМУМ(ВЫБОР | КОГДА ВыполнениеМаршрутногоЗадания.План | ТОГДА ВыполнениеМаршрутногоЗадания.ДатаВремяПрибытия | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) | КОНЕЦ) КАК План, | МАКСИМУМ(ВЫБОР | КОГДА НЕ ВыполнениеМаршрутногоЗадания.План | ТОГДА ВыполнениеМаршрутногоЗадания.ДатаВремяПрибытия | ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1) | КОНЕЦ) КАК Факт |ИЗ | РегистрСведений.ВыполнениеМаршрутногоЗадания КАК ВыполнениеМаршрутногоЗадания | |СГРУППИРОВАТЬ ПО | ВыполнениеМаршрутногоЗадания.МаршрутныйЛист, | ВыполнениеМаршрутногоЗадания.ПунктОтправления, | ВыполнениеМаршрутногоЗадания.ПунктПрибытия |ИТОГИ ПО | МаршрутныйЛист"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |