You are on page 1of 2

// Tabla Orders debe estar ordenada por fecha !!!!!!!!!!

// LET varMinDate = Num(Peek('OrderDate', 0, 'Orders'));


// LET varMaxDate = Num(Peek('OrderDate', -1, 'Orders'));

// Otra Forma mas eficiente

MinMaxFechas:
LOAD
Min(OrderDate) as Mindate,
Max(OrderDate) as Maxdate
Resident Orders;

LET varMinDate= Num(Peek('Mindate',0,'MinMaxFechas'));


LET varMaxDate= Num(Peek('Maxdate',-1,'MinMaxFechas'));

DROP Table MinMaxFechas;

// Y otra forma mas simple de setear fechas maxima y minima


//LET varMinDate=num(makedate(2018));
//LET varMaxDate=num(Date(Today()));
//Let vToday=today();

//*************** Temporary Calendar ***************


TempCalendar:
LOAD
$(varMinDate) + rowno()-1 AS Num,
date($(varMinDate) + rowno()-1) AS TempDate
AUTOGENERATE
$(varMaxDate)- $(varMinDate)+ 1;

//*************** Master Calendar ***************


MasterCalendar:
LOAD
TempDate as OrderDate,
week(TempDate) as Week,
year(TempDate) as Year,
month(TempDate) as Month,
day(TempDate) as Day,
weekday(TempDate) as WeekDay,
'Q' & ceil(month(TempDate) /3) AS Quarter,
date(monthstart(TempDate), 'MMM-YYYY') AS MonthYear,
week(TempDate)&'-'&Year(TempDate) as WeekYear,

InYearToDate(TempDate, $(varMaxDate), 0) * -1 as CYTDFlag,


InYearToDate(TempDate, $(varMaxDate), -1) * -1 as LYTDFlag,
InMonthToDate(TempDate, $(varMaxDate), 0) * -1 as CMTDFlag,
InMonthToDate(TempDate, $(varMaxDate), -1) * -1 as LMTDFlag,
12*Year($(varMaxDate))+Month($(varMaxDate))-12*Year(TempDate)-Month(TempDate) AS
MonthsAgo

RESIDENT TempCalendar
ORDER BY TempDate Asc;
drop Table TempCalendar;

// Expresion para Ventas ultimos 12 meses


// Sum( { $< MonthsAgo={"<=12"},
// Day=,
// Year=,
// Month=,
// MonthYear> } LineSalesAmount )

// Expresion para Ventas ultimos 12 meses


// Sum( { $< MonthsAgo={"<=12"},
// Day=,
// Year=,
// Month=,
// MonthYear> } LineSalesAmount )

You might also like