|
Подскажите с запросом | ☑ | ||
---|---|---|---|---|
0
Alexey87
19.10.12
✎
17:15
|
Итак, значения свойство объектов. Объект - заказ покупателя, у него есть определенное свойство, причем оно может быть одинаковым у разных заказов покупателя. Задача сводится к тому как для одного значения свойства выбрать заказ с максимальной датой. Значения свойств передаются в запрос списком значений.
Пример: значение1 заказ1 01.01.2012 значение1 заказ2 05.05.2012 значение1 заказ3 06.07.2012 значение2 заказ4 01.02.2012 значение2 заказ5 01.03.2012 значение2 заказ6 01.01.2012 на выходе: значение1 заказ3 06.07.2012 значение2 заказ5 01.03.2012 |
|||
1
Нуф-Нуф
19.10.12
✎
17:16
|
группировка и максимум
|
|||
2
1Страх
19.10.12
✎
17:16
|
выбрать для значений максимальные даты, соединить с исходной и получить заказы
|
|||
3
1Страх
19.10.12
✎
17:18
|
по этой хрени надо уже шаблон написать и поместить в КЗ
|
|||
4
Alexey87
19.10.12
✎
17:18
|
(2)это мысль...а быстрее никак нельзя?
|
|||
5
1Страх
19.10.12
✎
17:18
|
(4) нет, куда быстрее уж
|
|||
6
Лефмихалыч
19.10.12
✎
17:19
|
(4) куда цж быстрее то?
|
|||
7
Alexey87
19.10.12
✎
17:28
|
ВЫБРАТЬ
МАКСИМУМ(ЗначенияСвойствОбъектов.Объект.Дата) КАК ОбъектДата, ЗначенияСвойствОбъектов.Значение ПОМЕСТИТЬ МаксДата ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Значение ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗначенияСвойствОбъектов.Значение, ЗначенияСвойствОбъектов.Объект ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ВНУТРЕННЕЕ СОЕДИНЕНИЕ МаксДата КАК МаксДата ПО ЗначенияСвойствОбъектов.Объект.Дата = МаксДата.ОбъектДата И ЗначенияСвойствОбъектов.Значение = МаксДата.Значение ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) так оптимально? |
|||
8
Goggy
19.10.12
✎
17:30
|
(7) Оптимально ваще в одном запросе всё зделать :)
|
|||
9
Alexey87
19.10.12
✎
17:41
|
(8)Это имелось ввиду
ВЫБРАТЬ ВложенныйЗапрос.Значение, ЗначенияСвойствОбъектов.Объект, ВложенныйЗапрос.ОбъектДата ИЗ (ВЫБРАТЬ МАКСИМУМ(ЗначенияСвойствОбъектов.Объект.Дата) КАК ОбъектДата, ЗначенияСвойствОбъектов.Значение КАК Значение ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Значение) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ПО ВложенныйЗапрос.ОбъектДата = ЗначенияСвойствОбъектов.Объект.Дата И ВложенныйЗапрос.Значение = ЗначенияСвойствОбъектов.Значение ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) Если да, то я не заметил ускорения |
|||
10
Alexey87
22.10.12
✎
11:07
|
Вставляю
ВЫБРАТЬ ЗначенияСвойствОбъектов.Значение КАК Ячейка, ВЫБОР КОГДА ЕСТЬNULL(ЗаказыПокупателейОстатки.ЗаказаноОстаток, 0) > 0 ТОГДА ЗначенияСвойствОбъектов.Объект ИНАЧЕ "Свободна" КОНЕЦ КАК Состояние ИЗ (ВЫБРАТЬ МАКСИМУМ(ЗначенияСвойствОбъектов.Объект.Дата) КАК ОбъектДата, ЗначенияСвойствОбъектов.Значение КАК Значение ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Значение) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки ПО ЗначенияСвойствОбъектов.Объект = ЗаказыПокупателейОстатки.Заказ ПО ВложенныйЗапрос.ОбъектДата = ЗначенияСвойствОбъектов.Объект.Дата И ВложенныйЗапрос.Значение = ЗначенияСвойствОбъектов.Значение ГДЕ ЗначенияСвойствОбъектов.Свойство = &Свойство И ЗначенияСвойствОбъектов.Значение В(&СписокЗначений) в ПриПолученииДанных() формы списка справочника, для вывода в вычисляемую колонку - работает неприемлимо медленно. Что еще посоветуете? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |