Использование / применение функции peek

Автор asvas, 14 января 2017, 06:24:26

« назад - далее »

asvas

Господа, я дико извиняюсь за такой простой вопрос,
но я никак не могу понять функционал этой функции.
Т.е я разобрался в примере из документации.
Но в контексте данного кода не могу разобраться - Что именно она делает? :
tmp1:
LOAD min(Date(Date#(dt,'YYYYMMDD'))) as 'DateStart',  max(Date(Date#(dt,'YYYYMMDD'))) as 'DateEnd' Resident GOODS_MOVEMENT;

LET Date_Start = peek('DateStart',0,'tmp1');
LET Date_End = peek('DateEnd',0,'tmp1');
LET vStart = floor(Date_Start);       
LET vEnd = floor(Date_End);
LET vNumOfDays = vEnd - vStart + 1;
//DROP Table tmp1;

admin

Привет.
Согласно описанию и своему предназначению peek('DateStart',0,'tmp1') возвращает значение переменной DateStart из первой строки/записи ( 0 обозначает первую запись) таблицы с именем tmp1.
Описание функции

asvas

Как вы наверное поняли, что контекст в коде - календарный.
Я уже видел примеры использования peek - относительно обоснованные.
Хоть и запутанные, но таблица tmp1 из кода состоит всего из двух значений.
почему нельзя было просто написать?

LOAD ДАТА
Resident GOODS_MOVEMENT //таблица откуда берем данные;

LET Date_Start = min(Date(Date#(dt,'YYYYMMDD'))) ;


Или у данных типы разные?

admin

Ну потому что так не сработает.
min() используется в скрипте в операторе загрузки.
Для  присвоения переменной минимального значения из числового ряда используется RangeMin().
Для чтения значений в скрипте из загруженных таблиц используется Peek().
Все на своих местах.

asvas

Понял.
Значит просто принять как данность.
спасибо

Яндекс.Метрика