Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Группировка или вложенный запрос

Группировка или вложенный запрос
Я
   abask
 
14.01.19 - 17:18
Есть номенклатура и несколько видов цен
как получить номенклатуру и минимальную цену с указанием вида цены?

пытаюсь сделать так:

ВЫБРАТЬ
    Номен.Ссылка КАК Ссылка,
    МИНИМУМ(Цены.Цена) КАК Цена,
    Цены.ВидЦен КАК ВидЦен
ИЗ
    Справочник.Номенклатура КАК Номен
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Цены
        ПО (Цены.Номенклатура = Номен.Ссылка)
ГДЕ
    Номен.ЭтоГруппа = ЛОЖЬ
    И Цены.Цена <> 0

СГРУППИРОВАТЬ ПО
    Номен.Ссылка,
    Цены.ВидЦен

Предсказуемо выводит мне все виды цен (не только минимум)

если делаю так:

ВЫБРАТЬ
    Номен.Ссылка КАК Ссылка,
    МИНИМУМ(Цены.Цена) КАК Цена
ИЗ
    Справочник.Номенклатура КАК Номен
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Цены
        ПО (Цены.Номенклатура = Номен.Ссылка)
ГДЕ
    Номен.ЭтоГруппа = ЛОЖЬ
    И Цены.Цена <> 0

СГРУППИРОВАТЬ ПО
    Номен.Ссылка

Выводит минимум, но не понятно тогда какой вид цены

как передать вид цены? Вложенный запрос делать? или можно как-то одним обойтись?
 
 
   Ёпрст
 
1 - 14.01.19 - 17:30
(0)либо первый запрос, либо последний с условием Где видЦен =&НужныйТебеВидЦены
   abask
 
2 - 14.01.19 - 17:41
(1) Я не знаю какой вид цены
Нужно выбрать минимальную цену из тех что есть
   Buster007
 
3 - 14.01.19 - 17:45
чем отличается твоя задача, от получения последней цены на разные периоды?
   FIXXXL
 
4 - 14.01.19 - 17:45
(0) что хочешь получить в случае одинакового числа Цена по двум(и более) ВидЦен?
если пофиг, делаешь ВТ Номенклатура-Цена и ее соединяешь с регистром цен по Цена-Номенклатура и группируешь Номенклатура-Цена-Мин(ВидЦен)
   abask
 
5 - 14.01.19 - 17:54
(4) а если два товара с одинаковой минимальной ценой как он определит какой товар мне нужен?

Я ж не смогу соединить по двум условиям, и по номенклатуре и по цене?

Или я не понял мысль?
   Вафель
 
6 - 14.01.19 - 18:00
так этоже классическая задача на срез последних.
хороший программист должне пореди ночи встать и отруки такой запрос написать
   FIXXXL
 
7 - 14.01.19 - 18:02
(5) что мешает соединить две таблицы по двум полям?
   VladZ
 
8 - 14.01.19 - 18:03
(0)  С каким смыслом используешь выборку:

ИЗ
    Справочник.Номенклатура КАК Номен
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Цены  ???
   mistеr
 
9 - 14.01.19 - 18:08
(0) Первый запрос - срез последих в ВТ.
Второй запрос - определяешь минимальную цену, и соединяешь еще раз с ВТ, чтобы узнать вид цен.
Справочник можно вообще не трогать.

(7) Страшно наверное.
   abask
 
10 - 14.01.19 - 18:42
Спасибо (4) (7) и (9)

вот что получилось:

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    МИНИМУМ(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена
ПОМЕСТИТЬ табМинЦен
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних


СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    табМинЦен.Номенклатура КАК Номенклатура,
    табМинЦен.Цена КАК Цена,
    ЦеныНоменклатурыСрезПоследних.ВидЦен КАК ВидЦен
ИЗ
    табМинЦен КАК табМинЦен
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = табМинЦен.Номенклатура И
            ЦеныНоменклатурыСрезПоследних.Цена = табМинЦен.Цена)
 
 Рекламное место пустует

Список тем форума
  Рекламное место пустует
Прочитай, хотя бы, Митичкина "Разработка в системе 1С:Предприятие 8". Волшебник
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует