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



выборка в запросе одного вида цен

выборка в запросе одного вида цен
Я
   falselight
 
26.04.18 - 10:35
Подскажите как поправить запрос?
В нем нужно выбрать только один вид цен "Прайс-Лист"


ВЫБРАТЬ
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) КАК Характеристика,
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) > ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
                ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
            ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
        КОНЕЦ) КАК Период
ПОМЕСТИТЬ ПоследнийПериодЦены
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            ,
            ВидЦены В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ВидыЦен.Ссылка КАК ВидЦены
                ИЗ
                    Справочник.ВидыЦен КАК ВидыЦен
                ГДЕ
                    (ВидыЦен.Наименование = "БазоваяRUB"
                        ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB"
                        ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB"
                        ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(
                ,
                Соглашение.ДоступноДляПродажиКлиентам
                    И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура),
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика)

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика
;

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

ВЫБРАТЬ
    ПоследнийПериодЦены.Номенклатура КАК Номенклатура,
    ПоследнийПериодЦены.Характеристика КАК Характеристика,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта) КАК Валюта
{ВЫБРАТЬ
    Номенклатура.*,
    Характеристика.*,
    Цена,
    Валюта.*}
ИЗ
    ПоследнийПериодЦены КАК ПоследнийПериодЦены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                ,
                ВидЦены В
                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
                        ВидыЦен.Ссылка КАК ВидЦены
                    ИЗ
                        Справочник.ВидыЦен КАК ВидыЦен
                    ГДЕ
                        (ВидыЦен.Наименование = "БазоваяRUB"
                            ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB"
                            ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB"
                            ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних
        ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
            И ПоследнийПериодЦены.Период = ЦеныНоменклатурыСрезПоследних.Период
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(
                ,
                Соглашение.ДоступноДляПродажиКлиентам
                    И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
            И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика
            И ПоследнийПериодЦены.Период = ЦеныНоменклатурыПоставщиковСрезПоследних.Период
{ГДЕ
    ПоследнийПериодЦены.Номенклатура.*,
    ПоследнийПериодЦены.Характеристика.*,
    (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена)) КАК Цена,
    (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта)).* КАК Валюта}
 
 
   falselight
 
1 - 26.04.18 - 10:36
Не пойму как поправить вот это условие что бы отбирался
только один вид цен "Прайс-лист".


      ВидЦены В
                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                    ВидыЦен.Ссылка КАК ВидЦены
                ИЗ
                    Справочник.ВидыЦен КАК ВидыЦен
                ГДЕ
                    (ВидыЦен.Наименование = "БазоваяRUB"
                        ИЛИ ВидыЦен.Наименование = "РасчетнаяUSDRUB"
                        ИЛИ ВидыЦен.Наименование = "РасчетнаяEURRUB"
                        ИЛИ ВидыЦен.Наименование = "НаценкаНаЗакупочнуюRUB"))) КАК ЦеныНоменклатурыСрезПоследних
   Lexey_
 
2 - 26.04.18 - 10:40
(1) ну это же элементарно, ломать не строить, попробуй хоть раз подумать сам
   falselight
 
3 - 26.04.18 - 10:42
(2) Так вот не могу (((((
Перепробовал всяко разно, но выбирает всегда не правильно ((((
   PR
 
4 - 26.04.18 - 10:44
Странная ветка
https://www.anekdot.ru/id/228589/
   falselight
 
5 - 26.04.18 - 10:45
Вот делаю так, но он выбирает все подряд.


ВЫБРАТЬ
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика) КАК Характеристика,
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) > ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
                ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
            ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыПоставщиковСрезПоследних.Период, ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
        КОНЕЦ) КАК Период
ПОМЕСТИТЬ ПоследнийПериодЦены
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
            ,
            ВидЦены = &ПрайсЛист
                    ) КАК ЦеныНоменклатурыСрезПоследних
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(
                ,
                Соглашение.ДоступноДляПродажиКлиентам
                    И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
            И ЦеныНоменклатурыСрезПоследних.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика

СГРУППИРОВАТЬ ПО
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура),
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Характеристика, ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика)

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика
;

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

ВЫБРАТЬ
    ПоследнийПериодЦены.Номенклатура КАК Номенклатура,
    ПоследнийПериодЦены.Характеристика КАК Характеристика,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена) КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта) КАК Валюта
{ВЫБРАТЬ
    Номенклатура.*,
    Характеристика.*,
    Цена,
    Валюта.*}
ИЗ
    ПоследнийПериодЦены КАК ПоследнийПериодЦены
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                ,
            ВидЦены = &ПрайсЛист
                        ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
            И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
            И ПоследнийПериодЦены.Период = ЦеныНоменклатурыСрезПоследних.Период
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПоследних(
                ,
                Соглашение.ДоступноДляПродажиКлиентам
                    И Соглашение.Валюта = &Валюта) КАК ЦеныНоменклатурыПоставщиковСрезПоследних
        ПО ПоследнийПериодЦены.Номенклатура = ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклатура
            И ПоследнийПериодЦены.Характеристика = ЦеныНоменклатурыПоставщиковСрезПоследних.Характеристика
            И ПоследнийПериодЦены.Период = ЦеныНоменклатурыПоставщиковСрезПоследних.Период
{ГДЕ
    ПоследнийПериодЦены.Номенклатура.*,
    ПоследнийПериодЦены.Характеристика.*,
    (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена)) КАК Цена,
    (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта, ЦеныНоменклатурыПоставщиковСрезПоследних.Валюта)).* КАК Валюта}
   PR
 
6 - 26.04.18 - 10:47
(5) И что? У тебя же полное соединение. А ты отбираешь только в одной таблице. Что не так-то?
   falselight
 
7 - 26.04.18 - 10:55
(6) Как в одной таблице?
В итоговом запросе номенклатура с разными ценами, не нужными
нужно только прайс лист, я просто не понимаю что нужно править.
Думал достаточно условия вид цены.
   falselight
 
8 - 26.04.18 - 10:58
(6) сам запрос (0) отбирает 4  цены. Мне нужно только одну прайс-лист. Я всяко пробовал ничего не получилось....
   PR
 
9 - 26.04.18 - 10:58
(7) Рукалицо
Еще раз, у тебя отбор только в первой таблице, во второй нету
Что непонятного-то?
   falselight
 
10 - 26.04.18 - 10:59
(9) как это нету????? и в первой и во второй есть
 
 Рекламное место пустует
   PR
 
11 - 26.04.18 - 11:00
(10) Хорошо, ты победил, пусть будет по-твоему
   falselight
 
12 - 26.04.18 - 11:01
(11) Я проиграл.
Результата не добился.
   falselight
 
13 - 26.04.18 - 11:01
Я делал по подобию как в (0) где там задается условие на 4 таблицы. Там и я задал на одну.
   PR
 
14 - 26.04.18 - 11:02
(12) Это потому что нужно не спорить, а добавлять отбор во вторую таблицу соединения
   falselight
 
15 - 26.04.18 - 11:09
(14) Я разве спорил? Я просто не виду.
   PR
 
16 - 26.04.18 - 11:12
(15) Какое из слов в (6) тебе непонятно?
   shadow_sw
 
17 - 26.04.18 - 11:14
(12) вот тут ветку можно закрывать
зы: вроде не пятница :)
   systemstopper
 
18 - 26.04.18 - 11:14
ПОЛНОЕ соединение некошерно юзать
   falselight
 
19 - 26.04.18 - 11:15
(17) Да закрывайте признана проф непригодность!!!!
Подписываюсь.\
   falselight
 
20 - 26.04.18 - 11:16
(18) Так оно же в оригинальном запросе, он же нормально выбирает только 4 цены. Мне нужно 1. Я его правлю на одну он все равно как попало выбирает.
   systemstopper
 
21 - 26.04.18 - 11:18
(20) я имел в виду что не по стандартам это, пофиг че у тебя там выбирает
   falselight
 
22 - 26.04.18 - 11:19
(21) Сам запрос не по стандартам?
   systemstopper
 
23 - 26.04.18 - 11:20
(22) сам запрос у тебя вообще трэш
   falselight
 
24 - 26.04.18 - 11:22
(16) Мне не понятно как править этот запрос что бы получить требуемое.
   falselight
 
25 - 26.04.18 - 11:41
(23) Это не мой запрос!!!!!!!!!
   youalex
 
26 - 26.04.18 - 11:54
(25) теперь твой
   falselight
 
27 - 26.04.18 - 13:22
(26) Нет не мой, я ликвидировался.


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