Дублирует строки = срез последних цены контрагентов

1. aximo 2029 19.11.18 08:10 Сейчас в теме
Товарищи, подскажите функцию, которая работала именно как "срез последних" для ЦЕН устанавливаемых контрагентами

типовой запрос "срез последних" по регистру (без указания номенклатуры) выдает следующее:

Наим Цена
=====================
Номенклатура1 123.0
Номенклатура1 323.0
Номенклатура1 334.0


Выдает так, потому, что это разные типы цен.
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. EVKash 14 19.11.18 08:58 Сейчас в теме
(1) Все правильно. Если вам нужен определенный вид цен, то указывайте его в параметрах.
Срез последних дает выборку по всем измерениям.
aximo; Kovekh; YannikAlx; +3
2. Alexei_Siva 182 19.11.18 08:48 Сейчас в теме
Если вам просто последняя цена нужна - упорядочите регистр по периоду)
+
3. Aitbay 19.11.18 08:58 Сейчас в теме
Период в запросе указан?
+
5. YannikAlx 43 19.11.18 09:49 Сейчас в теме
(3) Период тут при чем? Написано же -
Выдает так, потому, что это разные типы цен.
Sergynia; +1
6. aximo 2029 19.11.18 11:42 Сейчас в теме
товарищи, дайте пожалуйста готовую функцию (желательно одним запросом), чтобы брала независимо последнюю цену - без типа

спасибо огромное!
+
7. Sergynia 4 10.12.18 22:56 Сейчас в теме
(6) Как вы это себе представляете? У вас в регистре измерения номенклатура и тип цены. и вы получаете последнюю информацию веденную по ключу номенклатура и тип цены.
Готовой функции, которая бы вернула вам последнюю цену без типа -нет. Во всяком случае через срезпоследних.
+
8. Sergynia 4 11.12.18 22:18 Сейчас в теме
(6) Хотя можно сделать следующим образом: Выбрать поля Период Номенклатуру и Цену. Далее сгруппировать по номенклатуре и цене, а периоду взять максимальное значение и упорядочить по возрастанию. таким образом получите таблицу с номенклатурой и ценой. Далее создадите ТаблицуЗначений с одной колонкой номенклатура.При обходе добавляете номенклатуру в Таблицу значений и при выводе очередной номенклатуры проверяете существует ли она в таблице значений, если есть переходите к следующей.
+
9. antz 11.12.18 22:37 Сейчас в теме
(6) Как-то так

ВЫБРАТЬ
   ЦеныКонтрагентов.Номенклатура,
   МАКСИМУМ(ЦеныКонтрагентов.Период) КАК Период
ПОМЕСТИТЬ Периоды
ИЗ
   РегистрСведений.ЦеныКонтрагентов КАК ЦеныКонтрагентов
СГРУППИРОВАТЬ ПО
   Номенклатура
;
ВЫБРАТЬ
   Периоды.Номенклатура,
   ЦеныКонтрагентов.Цена
ИЗ
   Периоды КАК Периоды
ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрСведений.ЦеныКонтрагентов КАК ЦеныКонтрагентов
ПО
   Периоды.Номенклатура = ЦеныКонтрагентов.Номенклатура
   И Периоды.Период = ЦеныКонтрагентов.Период
Показать
+
10. Sergynia 4 11.12.18 22:53 Сейчас в теме
(9) зачем так? У вас задублировать может номенклатура, так как может быть номенклатура с разным типом цен, но с одной ценой в одном периоде.
+
11. antz 11.12.18 23:07 Сейчас в теме
(10) ну еще раз сгруппировать финальный запрос, делов-то.
+
12. Sergynia 4 11.12.18 23:25 Сейчас в теме
(11) Ну, да должно сработать. А если типы цен разные в одном периоде, то как быть?
+
13. antz 11.12.18 23:31 Сейчас в теме
(12) ну автору виднее - пусть максимальную берет. Или минимальную. Или среднюю)
+
14. catena 110 12.12.18 06:28 Сейчас в теме
(12)Такие коллизии должны решаться тем, кто принимает решение о срезе последних по неполному набору измерений. Решается любой агрегатной функцией.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот