Сгенерировать таблицу

Автор diex, 13 февраля 2020, 04:36:44

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

diex

В QlikView я новичок, прошу помочь с задачей:

Сгенерировать таблицу с 500 случайных записей о том, как 50 клиентов совершают финансовые операции в любом интервале от -1000 до 1000, например начиная с 01.01.2019.

Например таблицу дат я генерирую так:
Dates:
LOAD
 Date(Today()-RecNo(),'DD.MM.YY') as "Date"
 AUTOGENERATE Today() - MakeDate(2019, 1, 1);

Таблица c 500 случайными записями (но нарушен интервал):
ClientID:
LOAD
     Rand()*(Rand() + Rand()*Rand())*(4000-4000*Rand()) - Rand()*1000 as Value,
     RecNo() as ID
     Autogenerate 500;

Кто подскажет как правильно сделать? Заранее спасибо)

diex

Делаю вот так:
TableDates:
LOAD
IterNo() as CountDay,
date(today()-recno(),'DD.MM.YYYY') as Date
AUTOGENERATE today() - MakeDate(2016, 1, 1);

TableClients:
LOAD
RecNo() as ClientID
AutoGenerate (100);

MakeData:
LOAD Date
Resident TableDates;

JOIN (MakeData)
LOAD ClientID
Resident TableClients;

TableFact:
LOAD Date, ClientID,
Year(Date) as Year,
Month(Date) as Month,
Day(Date) as Day,
Round(Rand()*(1000*Rand())-(500*Rand())) as Value,
RecNo() as ValueID
Resident MakeData;

DROP Table MakeData;

Но получается, что 100 клиентов каждый день совершают операции. Так не подходит.

Uunit

А что именно не подходит?
Количество записей должно быть фиксированным или вы хотите получить N записей в определённом периоде дат?
т.е. каждый день может быть произвольное количество записей?

Uunit

#3
Не знаю, правильно ли я вас понял.
Ниже скрипт, который создаёт 500 записей за 2019 год.
Количество записей в сутках, образуются случайным образом.
Temp:
LOAD
date(MakeDate(2019, 1, 1)+Round(Rand()*364),'DD.MM.YYYY') as Date,
Round(Rand()*(1000*Rand())-(500*Rand())) as Value
AutoGenerate (500);

TableFact:
LOAD
Date as Дата,
MonthName(Date) as Месяц,
Value as Результат
Resident Temp;
DROP Table Temp;

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