Имя: Пароль:
1C
 
Типы цен горизонтально по порядку в результате запроса
0 myr4ik07
 
11.02.15
13:53
Привет. Использую Консол запросов, хочу видеть результат запроса типа

ЦенаЗакупка и ЦенаПродажи у меня Справочник.ТипыЦен

Номенклатура КоличествоОстаток ЦенаЗакупка ЦенаПродажи
Ложка             10               15         30

сделал вот
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            ,
            Склад = &Склад
                И Номенклатура.Родитель В ИЕРАРХИИ (&ЭтоГруппа)
                И Номенклатура.Наименование ПОДОБНО "" + &Наименование + "%") КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен В (&ТипЦен, &ТипЦен1, &ТипЦен2)) КАК ЦеныНоменклатурыСрезПоследних
        ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
но в результате в столбик цены показывает
1 Mankubus
 
11.02.15
14:02
разбей цены конструкцией ВЫБОР КОГДА
2 myr4ik07
 
11.02.15
14:05
(1) тоже думал но не умею работать с этим, приведите пример пожалуйста
3 Mankubus
 
11.02.15
14:08
ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен1 ТОГДА  ЦеныНоменклатурыСрезПоследних.Цена КАК ЦенаТипаЦен1
4 Mankubus
 
11.02.15
14:08
(3) +ИНАЧЕ 0 КОНЕЦ
5 myr4ik07
 
11.02.15
14:08
(3) понял, понял, пробую
6 myr4ik07
 
11.02.15
14:19
(4) что я не так делаю?

    ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен1
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен2
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
        ИНАЧЕ 0
    КОНЕЦ КАК Цена
7 myr4ik07
 
11.02.15
14:20
не идет мне этот Оператор шо то не могу понять как с ним работат
8 Defender aka LINN
 
11.02.15
14:22
потому что 2 соединения надо делать. Или группировать.
А для зачем тебе это вообще именно в запросе?
И что будет, если добавится еще один тип цен, будешь запрос переписывать?
9 myr4ik07
 
11.02.15
14:23
(8) учусь работать с запросами, вот придумал себе такую задачу, мне нужен этот запрос для "сделать, понять и удалить"
10 myr4ik07
 
11.02.15
14:38
(8) не понял, что еще соеденять нужно?
11 Mankubus
 
11.02.15
14:44
(6) ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
ИНАЧЕ 0 КОНЕЦ КАК Цена,
ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен1
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
ИНАЧЕ 0 КОНЕЦ КАК Цена1,
ВЫБОР
        КОГДА ЦеныНоменклатурыСрезПоследних.Цена = &ТипЦен2
            ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
ИНАЧЕ 0 КОНЕЦ КАК Цена2
12 Defender aka LINN
 
11.02.15
14:45
(10) Еще раз со срезом. В одном - один тип цен, другому - другой.
13 myr4ik07
 
11.02.15
23:28
(12) в прочем Вы правы, нравится результат

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    цена1.Цена,
    цена2.Цена КАК Цена1
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(
            ,
            Склад = &Склад
                И Номенклатура.наименование ПОДОБНО "" + &Номенклатура + "%"
                И Номенклатура.Родитель В ИЕРАРХИИ (&Родитель)) КАК ТоварыНаСкладахОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК цена1
        ПО ТоварыНаСкладахОстатки.Номенклатура = цена1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен1) КАК цена2
        ПО ТоварыНаСкладахОстатки.Номенклатура = цена2.Номенклатура

спасибо
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn