Добрый день уважаемые знатоки!
Опять нужен Ваш совет:
Есть таблица сохраненная в QVD файл, формируется с помощью инкрементальной загрузки, на каждый месяц, далее все это загружается в рабочую таблицу (данных очень много >1000000 обработанных файлов) необходимо удалять некорректные данные по списку допустим по полю "№" без перезагрузке всех данных.
в идеале создать таблицу xls и из нее взять нужные номера и удалить эти данные.
Привет.
Можно создать таблицу с требуемыми исключениями и при загрузке проверять на существование exists() в ней.
Привет, спасибо за совет попробую и отпишусь.
Цитата: admin от 28 марта 2016, 05:25:24
Привет.
Можно создать таблицу с требуемыми исключениями и при загрузке проверять на существование exists() в ней.
Привет, спасибо за совет! Реализовал так как ты и посоветовал, все прекрасно работает!
Не хочу создавать новую тему.
Хочу очистить таблицу остатков от избыточных данных (а это - данные по дате-объекту-артикулу с нулевыми остатками за тот период, когда товар еще не был заведен). Хочу сделать без цикла, в рамках выборки из таблицы. Возможно ли такое?
Есть поле с дневным движением (DR). Вижу схему такую: если артикул текущей записи тот же самый, DR<>0 - запись загружаем. Но после первого движения будут и DR=0, которые уже тоже нужно вносить. Как здесь быть?
Привет,
используйте межзаписные функции peek() , previous().
И помните, что сортировка в таблице работает только при резидентной загрузке.
про эти функции в курсе. только не пойму, возможно ли вообще применить, если можно - то как?. Дело в том, что мне нужно сохранить записи с DR=0 после того момента во времени, когда было первое движение товара. чтобы данные после 18.02.15 тоже загрузились.
Используйте временное флаговое поле.
Началось движение - ставим 1 и т.д. до конца. Останутся 0 там где движение еще не началось.
admin, спасибо!
Работает так:
T8:
load ARTICLE
,DATER
,OBJECT
,DR //дневное движение
,SumRest //остаток на текущий день
from lib://QlikFolderU/QlikRest8.qvd (qvd);
T81:
load *
,if(peek(ARTICLE)= ARTICLE and DR<>0, 1, if(peek(ARTICLE)= ARTICLE and Peek(Flag) = 1,1,0)) as Flag
resident T8;
drop table T8;
T82:
load ARTICLE
,DATER
,OBJECT
,DR
,SumRest
Resident T81
where Flag = 1;
drop table T81;
В итоге получаем, что данные по товару начинаются со дня первого движения.
Почему в Т82 нельзя использовать звездочку в load? ошибок нет, но и данных нет. Укоротить этот путь из 3х таблиц как то можно?