|
Помогите пожалуйста с запросом | ☑ | ||
---|---|---|---|---|
0
Gera1t
02.02.23
✎
10:39
|
Здравствуйте!
Вот такой запрос: ВЫБРАТЬ ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура, ЗаказПокупателяЗапасы.Характеристика КАК Характеристика, СпецификацииСостав.Номенклатура КАК Комплектующее, СпецификацииСостав.Характеристика КАК КомплектующееХарактеристика, СпецификацииСостав.Количество КАК Количество ПОМЕСТИТЬ ВТ ИЗ Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК СпецификацииСостав ПО (ЗаказПокупателяЗапасы.Спецификация = СпецификацииСостав.Ссылка) ГДЕ ЗаказПокупателяЗапасы.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Закупки.Номенклатура КАК Номенклатура, Закупки.Характеристика КАК Характеристика, Закупки.Сумма / Закупки.Количество КАК Стоимость ИЗ РегистрНакопления.Закупки КАК Закупки ГДЕ Закупки.Номенклатура В (ВЫБРАТЬ ВТ.Комплектующее КАК Комплектующее ИЗ ВТ КАК ВТ) И Закупки.Период <= &Период УПОРЯДОЧИТЬ ПО Закупки.Период УБЫВ Задача выбрать последнюю закупку. Но если делаю так, то в запрос попадает не только последняя закупка, но и вся закупка за период меньше указанной даты. Сейчас решил путем разделения этого запроса на 2. Сначала вот так: ВЫБРАТЬ ЗаказПокупателяЗапасы.Номенклатура КАК Номенклатура, ЗаказПокупателяЗапасы.Характеристика КАК Характеристика, СпецификацииСостав.Номенклатура КАК Комплектующее, СпецификацииСостав.Характеристика КАК КомплектующееХарактеристика, СпецификацииСостав.Количество КАК Количество ПОМЕСТИТЬ ВТ ИЗ Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Спецификации.Состав КАК СпецификацииСостав ПО (ЗаказПокупателяЗапасы.Спецификация = СпецификацииСостав.Ссылка) ГДЕ ЗаказПокупателяЗапасы.Ссылка = &Ссылка ; а потом вот так: ВЫБРАТЬ ПЕРВЫЕ 1 Закупки.Номенклатура, Закупки.Характеристика, Закупки.Сумма / Закупки.Количество КАК Стоимость, Закупки.Период КАК Период ИЗ РегистрНакопления.Закупки КАК Закупки ГДЕ Закупки.Номенклатура = &Номенклатура И Закупки.Характеристика = &Характеристика И Закупки.Период <= &Период УПОРЯДОЧИТЬ ПО Период УБЫВ Подскажите пожалуйста, можно ли как то это реализовать в 1 запросе? |
|||
2
saaken
02.02.23
✎
10:47
|
ищи максимальный период по нужному измерению. Ищи информацию по "срез последних на каждую дату"
|
|||
3
Gera1t
02.02.23
✎
10:48
|
Спасибо!
|
|||
4
eddy_n
02.02.23
✎
11:00
|
В итоговом запросе рядом с полем номенклатуры (и возможно характеристикой) рядом должно присутствовать только поле периода и больше ничего. ИНАЧЕ БУДЕТ МИЛЛИОН ПЕРВЫХ ЗАПИСЕЙ. Сворачивай подзапросами предварительно, если стоит условие сделать всё в одном флаконе.
|
|||
5
Gera1t
02.02.23
✎
11:22
|
(4) Условия такого нет, но для себя разобраться хотел.
|
|||
6
eddy_n
02.02.23
✎
11:25
|
(5) Если так, то не используй подзапросы на больших выборках. ВРЕМЕННЫЕ ТАБЛИЦЫ помогут. У подзапросов нет Плана, выражаясь языком СУБД. Статистики тоже естественно нет. Это - кот в мешке.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |