|
Цены на дату | ☑ | ||
---|---|---|---|---|
0
EverGreenMouse
28.02.16
✎
17:07
|
Товарищи, есть вопрос. В рамках вложенного запроса я получил Номенклатуру, ТипЦены и Дату. Теперь не могу допетрить каким образом получить цену на эту номенклатуру на эту дату и этот типа цены. Вроде данных вложенного запроса должно хватить, чтоб дальше это дело соединить с РС, но как?
|
|||
1
EverGreenMouse
28.02.16
✎
17:20
|
Книга знаний: Срез последних на каждую дату в запросе
Этим обчитался уже, но что-то ступор у меня какой-то |
|||
2
EverGreenMouse
28.02.16
✎
17:43
|
Сложность в том, что в этом запросе у меня несколько дат, на которые нужно получить цены.
P.S.У меня насыщенное воскресенье |
|||
3
MishaD
28.02.16
✎
17:45
|
В понедельник народ придет, подскажет
|
|||
4
EverGreenMouse
28.02.16
✎
17:46
|
(3) так то понедельник) а сроки сроками)
|
|||
5
MishaD
28.02.16
✎
17:52
|
Ну ты бы запрос свой выложил для начала
|
|||
6
EverGreenMouse
28.02.16
✎
18:19
|
(5) Выбрать
Документ.Номенклатура КАК Номенклатура, Документ.ТипЦен КАК ТипЦен, Документ.Дата КАК ДатаДокумента, Документ.Товары КАК ДокументТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ КАК Документ ПО ДокументТовары.Ссылка = Документ.Ссылка ГДЕ Документ.ССылка = &Ссылка |
|||
7
MishaD
28.02.16
✎
18:33
|
А что такое Документ.Товары, и что номенклатура делает в шапке ?
|
|||
8
EverGreenMouse
28.02.16
✎
18:38
|
(7) Это общее понятие моего запроса) ДокументТовары.Номенклатура - тут правильней
|
|||
9
EverGreenMouse
28.02.16
✎
18:41
|
(7) А Документ.товары - это табличная часть
|
|||
10
MishaD
28.02.16
✎
18:43
|
так у тебя дата одна, у документа ? Тогда просто еще одно левое соединение со срезом последних соответствующего "регистра с ценами" по номенклатуре и типу цены
|
|||
11
EverGreenMouse
28.02.16
✎
18:46
|
(10) Так, вижу непонимание)) Выкладываю рабочий текст вложенного запроса)
ВЫБРАТЬ Товары.Номенклатура, Товары.ТипЦен, Товары.ДатаДокумента ИЗ (ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателя.ТипЦен КАК ТипЦен, ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.ДокументПартии.Ссылка.Дата, ВозвратТоваровОтПокупателя.Дата) КАК ДатаДокумента ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя ПО ВозвратТоваровОтПокупателяТовары.Ссылка = ВозвратТоваровОтПокупателя.Ссылка ГДЕ ВозвратТоваровОтПокупателя.Ссылка = &Ссылка) КАК Товары |
|||
12
EverGreenMouse
28.02.16
✎
18:49
|
судя по всему, нужны соединения с РС по номенклатуре, ТипуЦен и Периоду, но левое соединение ЦеныНоменклатурыСрезПослених.Период <= Товары.ДатаДокумента
не отрабатвает |
|||
13
MishaD
28.02.16
✎
18:55
|
Соединение по ЦеныНоменклатуры.Период<=Товары.ДатаДокумента+Номенклатура, и ТипЦен, конечно. И Максимум(ЦеныНоменклатуры.Период)как НужнДата, чтобы получить последнюю дату перед ДатаДокумента. А потом уже соединяешь опять с таблицей регистра сведений по НужнДата=период и.т.д
|
|||
14
EverGreenMouse
28.02.16
✎
19:00
|
(13) то есть во вложенном запросе соединять по ЦеныНоменклатуры.Период<=Товары.ДатаДокумента+Номенклатура, и ТипЦен, конечно. И Максимум(ЦеныНоменклатуры.Период)как НужнДата, чтобы получить последнюю дату перед ДатаДокумента и потом в общем соединять вложенный запрос и РС по НужнДата=Период?
|
|||
15
EverGreenMouse
28.02.16
✎
19:18
|
ВЫБРАТЬ
товары.Номенклатура, товары.ТипЦен, товары.ДатаДокумента, ЦеныНоменклатурыСрезПоследних.Цена ИЗ (ВЫБРАТЬ ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура, ВозвратТоваровОтПокупателя.ТипЦен КАК ТипЦен, ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.ДокументПартии.Ссылка.Дата, ВозвратТоваровОтПокупателя.Дата) КАК ДатаДокумента ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя ПО ВозвратТоваровОтПокупателяТовары.Ссылка = ВозвратТоваровОтПокупателя.Ссылка ГДЕ ВозвратТоваровОтПокупателя.Ссылка = &Ссылка) КАК товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО товары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И товары.ТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен И товары.ДатаДокумента = ЦеныНоменклатурыСрезПоследних.Период Так возвращает все, кроме цен :( Где ж я туплю-то? |
|||
16
EverGreenMouse
28.02.16
✎
20:10
|
мда, вечер воскресенья воистину нерыбный(
|
|||
17
EverGreenMouse
28.02.16
✎
21:55
|
В таком виде показывает нужное количество строк: но с пустой ценой. Куда копнуть в этом запросе??? Уже всю голову сломал
ВЫБРАТЬ ТОВАРЫ.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.Цена КАК Цена ИЗ (ВЫБРАТЬ ВозвратТоваровОтПокупателя.ТипЦен КАК ТипЦен, ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.ДокументПартии.Ссылка.Дата, ВозвратТоваровОтПокупателя.Дата) КАК ДатаДокумента, ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя ПО ВозвратТоваровОтПокупателяТовары.Ссылка = ВозвратТоваровОтПокупателя.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ВозвратТоваровОтПокупателя.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.ДокументПартии.Ссылка.Дата, ВозвратТоваровОтПокупателя.Дата), ВозвратТоваровОтПокупателя.ТипЦен, ЦеныНоменклатурыСрезПоследних.Номенклатура) КАК ТОВАРЫ ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТОВАРЫ.ТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен И ТОВАРЫ.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТОВАРЫ.ДатаДокумента >= ЦеныНоменклатурыСрезПоследних.Период СГРУППИРОВАТЬ ПО ТОВАРЫ.Номенклатура, ТОВАРЫ.ДатаДокумента, ТОВАРЫ.ТипЦен, ЦеныНоменклатурыСрезПоследних.Цена |
|||
18
hhhh
28.02.16
✎
22:12
|
(17) ну вот это выкинь нахрен, тебе за символы что ли платят
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВозвратТоваровОтПокупателя КАК ВозвратТоваровОтПокупателя ПО ВозвратТоваровОтПокупателяТовары.Ссылка = ВозвратТоваровОтПокупателя.Ссылка вот так (ВЫБРАТЬ + Code ВозвратТоваровОтПокупателяТовары.Ссылка.ТипЦен КАК ТипЦен, ЕСТЬNULL(ВозвратТоваровОтПокупателяТовары.ДокументПартии.Дата, ВозвратТоваровОтПокупателяТовары.Ссылка.Дата) КАК ДатаДокумента, ВозвратТоваровОтПокупателяТовары.Номенклатура КАК Номенклатура ИЗ Документ.ВозвратТоваровОтПокупателя.Товары КАК ВозвратТоваровОтПокупателяТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ВозвратТоваровОтПокупателяТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ВозвратТоваровОтПокупателяТовары.Ссылка = &Ссылка |
|||
19
EverGreenMouse
28.02.16
✎
22:56
|
Разобрался вроде. Утром потестирую поподробней
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |