Имя: Пароль:
1C
1С v8
В запросе вытаскиваю минимальные цены. Чуток не хватает... помогите.
0 temsa
 
02.03.15
07:46
В СКД пишу запрос (ВТ) для объединения с другой таблицей запроса.
Мне нужны минимальные цены номенклатуры и какой контрагент эту цену дал.
Но в реале могут быть у меня по одной минимальной ценой быть несколько контрагентов и при объединении у меня строки задваиваются.

Как вытащить первого попавшегося при равных или тот у которого период  (даты цены) больше?

Вот запрос.

ВЫБРАТЬ
    ЦеныНоменклатурыКонтрагентов.Номенклатура КАК Номенклатура,
    МИНИМУМ(ЦеныНоменклатурыКонтрагентов.Цена) КАК МинЦена,
    ЦеныНоменклатурыКонтрагентов.Контрагент КАК Контрагент,
    ЦеныНоменклатурыКонтрагентов.Период КАК Период
ПОМЕСТИТЬ МинЦены1
ИЗ
    РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов
ГДЕ
    ЦеныНоменклатурыКонтрагентов.Период МЕЖДУ &НачалоМин И &ОкончаниеМин
    И ЦеныНоменклатурыКонтрагентов.Валюта = &Валюта
    И ЦеныНоменклатурыКонтрагентов.ТипЦены <> &ТипЦеныНеРавно
СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыКонтрагентов.Номенклатура,
    ЦеныНоменклатурыКонтрагентов.Контрагент,
    ЦеныНоменклатурыКонтрагентов.Период
ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Период,
    Контрагент
     ;
     ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МинЦены1.Номенклатура КАК Номенклатура,
    МИНИМУМ(МинЦены1.МинЦена) КАК МинЦена
ПОМЕСТИТЬ МинЦены_2
ИЗ
    МинЦены1 КАК МинЦены1
СГРУППИРОВАТЬ ПО
    МинЦены1.Номенклатура
ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    МинЦена
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МинЦены1.Номенклатура,
    МинЦены1.МинЦена,
    МинЦены1.Контрагент,
    МинЦены1.Период
ИЗ
    МинЦены1 КАК МинЦены1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ МинЦены_2 КАК МинЦены_2
        ПО МинЦены1.Номенклатура = МинЦены_2.Номенклатура
            И МинЦены1.МинЦена = МинЦены_2.МинЦена
1 temsa
 
02.03.15
07:51
" ВЫБРАТЬ Первые 1"

Не то...
2 temsa
 
02.03.15
07:54
Есть мысль по периоду максимальной вытащить.
Но ведь возможно что два контрагента имеют одну цену и период тоже может совпасть.

Это маловероятно но возможно.
3 SeraFim
 
02.03.15
07:59
(2) все верное. Делаешь по максимальному периоду.
А потом, если уж все равно какого - МИНИМУМ или МАКСИМУМ к контрагенту
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.