|
v8: Запрос: как для каждого из товаров получить последнюю партию??? | ☑ | ||
---|---|---|---|---|
0
dave2000
19.10.12
✎
14:55
|
Есть список товаров, необходимо для каждого из этих товаров получить ОДИН документ последнего оприходования. Хотел левым соединением прицепить вложенный запрос, который отбирает по одной последней записи для каждого товара, но "текущий" товар внешнего запроса не виден внутри вложенного запроса (закомментированные в запросе строки).
ВЫБРАТЬ ПеремещениеТоваровТовары.Номенклатура, Партии.ДокументОприходования КАК ПоследнийДокументОприходования ИЗ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1 ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура, ПартииТоваровНаСкладахОстатки.ДокументОприходования КАК ДокументОприходования ИЗ РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки //ГДЕ // ПартииТоваровНаСкладахОстатки.Номенклатура = ПеремещениеТоваровТовары.Номенклатура УПОРЯДОЧИТЬ ПО ПартииТоваровНаСкладахОстатки.ДокументОприходования.МоментВремени УБЫВ) КАК Партии ПО ПеремещениеТоваровТовары.Номенклатура = Партии.Номенклатура ГДЕ ПеремещениеТоваровТовары.Ссылка = &Док Как это правильно реализовать, подскажите плз?!! Поиском по форуму уже находил подобные вопросы, но они так и остались открытыми. (СКД не предлагать!) |
|||
1
КонецЕсли
19.10.12
✎
15:10
|
Выбрать
Подзапрос.Номенклатура, Регистр.ДокументОприходования Из (ВЫБРАТЬ ПеремещениеТоваровТовары.Номенклатура как Номенклатура, Максимум(Партии.ДокументОприходования.МоментВремени) КАК ПослДата ИЗ Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары ЛевоеСоединение РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК Партии по ПеремещениеТоваровТовары.Номенклатура = Партии.Номенклатура Сгруппировать по ПеремещениеТоваровТовары.Номенклатура) как подзапрос1 ЛевоеСоединение РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК Регистр по Регистр.ДокументОприходования.МоментВремени=Подзапрос1.ПослДата |
|||
2
КонецЕсли
19.10.12
✎
15:19
|
не,максимум(моментВремени) не работает. Если брать по максимум(дата) может получиться несколько документов с одинаковой датой
|
|||
3
dave2000
19.10.12
✎
17:38
|
а если так?
МАКСИМУМ(Партии.ДокументОприходования) в этом случае по чем оно его отсортирует? |
|||
4
dave2000
19.10.12
✎
18:16
|
(1) Вообще не покатит - во внутреннем запросе оно тупо для всех товаров выдаст одну и ту же дату, максимальную во всей выборки.. а для внешней выборки, соответственно, один и тот же документ.
М-да, похоже задачу эту одним запросом без помощи программирования не решить. |
|||
5
y22-k
19.10.12
✎
19:05
|
(4) попробуй пакетным запросом попробовать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |