Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
 
					
				
		
 marcus_sommer
		
			marcus_sommer
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Dimensions and calculations over periods are essential parts from nearly each reporting. The analysis from data regarding to periods is quite independent from the to analyse data-area regardless if this are sales-, finance-, human-ressources- or production-data. Nearly nothing is more exciting within an analysis as the development from data over the time and the questions which are following like: Was these development expected or not and what could be the reasons?
However the handling from time-data could be difficult whereas the most could be avoided with a few simple rules.
The easiest way is often to use a master-calendar as dimension-table which is linked to the fact-table(s). Why and how, see:
The Fastest Dynamic Calendar Script (Ever)
Master Calendar with movable holidays
In more complex data-models is it often necessary to create several calendars and/or to use calendars which are divergent to normal year-calendars.
Why You sometimes should Load a Master Table several times
Fiscal Calendar with Non-Standard Days (Not 1-31)
Important is to define and formate the time-dimension properly. Properly meant that the dimensions are (also) numeric then only numeric values could be calculated respectively compared with each other.
Background is that the date of 12/31/1899 is equal to 1 and each further day will be added by one so that the date of 12/31/1999 corresponds to 36525. Hours/Minutes/Seconds are fractions from 1, for example 1 / 24 / 60 = 0,000694 is equal to 1 minute.
This meant that all fields which should be calculated (comparing is calculation, too) should be (additionally) available as numeric field or as Dual-Field:
Often are additionally relative and/or continuing time-dimensions and flags very helpful to avoid complex calculations:
Creating Reference Dates for Intervals
Calendar with flags making set analysis so very simple
Period Presets: Compare Periods on the fly
Subroutine to Create Data Model for From/To Date Selection
Calendar with AsOf Flags, Compare Easter to Easter
Beside simple but frequent time-comparing with one or several time-dimensions in one object and simple expressions like sum(value) or count(order) are there more complicated questions like:
Previous YTQ, QTD, MTD and WTD
Calculating rolling n-period totals, averages or other aggregations
Beside the above used links you will find many interessting postings here within the qlik community to these topic - the notes here are a good starting point to go further.
Have fun!
ps: within the attachment is a german translation - deutsche Fassung.
 NiceC
		
			NiceC
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Hi,
I would like to make a loop that will retrieve the data of the last 4 weeks via a sql request and store them in a qvd file per week.
Here is what a collegue did, but it doesn't work.
PLease help !!!!
set jour_calcul = today();
let ann = year ($(jour_calcul) - 45);
let ann_prec = $(ann) - 1;
let mois = month ($(jour_calcul) - 45);
// Chargt des fichiers
// -------------------
For j = 1 to 2
if j = 1 then
let sem_ref = $(ann_prec) & '2';
let sem_enr = $(ann) & '1';
let deb =$(#mois);
else
let sem_ref = $(ann) & '1';
let sem_enr = $(ann) & '2';
if $(#mois) < 7 then
let deb = 1;
else
let deb = $(#mois) - 6;
end if
end if
For i = $(#deb) to 6
set filename = SEGM_$(sem_enr)_$(i).qvd;
segm:
SQL request (just an example)
store segm into $(filename) (qvd);
drop table segm;
next i
next j
 
					
				
		
 marcus_sommer
		
			marcus_sommer
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		You are not very specific what didn't work ... and of course this monthly routine couldn't work without any adjustments to a weekly routine. If you really want to adapt this I suggest that you used the debugger to see which values the variables have in each iteration of the loops - quite helpful is also often to use TRACE statements to plot these variables and counters to the progess-window and within the log-file.
Beside this I would quite probably query the last 4 weeks in once and run then a small loop over this resident table to create a weekly output.
- Marcus
 Dhivaharan
		
			Dhivaharan
		
		
		
		
		
		
		
		
	
			
		
		
			
					
		Thank you for making such a wonderful compilation