Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi,
I have a field name: Requested Date, I want this field name to be the basis of my calendar.
Table:
Fields:
Requested No,
Requested Date
Would it be possible to create a calendar from which minimum date and maximum date is extracted from Requested Date?
Need help from you guys, thanks.
Best Regards,
Bill
Here is the code, might exist some syntax error because I directly input code here, instead of QV
Time_Range:
Load
min([Requested Date]) as minDate,
max([Requested Date]) as maxDate
resident [your table name];
let v_min = FieldValue('minDate',1);
let v_max = FieldValue('maxDate',1);
for i = Year($(v_min)) to Year($(v_max)) //loop for year
for j = 1 to 12 //loop for month
let v_month = AddMonths(Date#($(i),'YYYY'), $(j)-1); //get a DATE variable, value= 1st day of that month
for k = 1 to day(MonthEnd($(v_month))) //loop for day, using day(monthend()) to get the largest day
//connect $i, $j, $k as a string, formatted as YYYY-MM-DD
let v_date_str = $(i) & '-' & $(j) & '-' & $(k);
let v_date = Date#($(v_date_str),'YYYY-MM-DD'); conver it as a date type
//load this variable into your calendar table
Calendar_table:
Load * inline [
Calendar_Date
$(v_date)
];
next
next
next
Eeeee...
I made a mistake. Above code is "create calendar table from the beginning of min year to end of max year“.
Eg:
min date is 2010-08-02, max date is 2010-09-31
The rows in calendar table will be 2010-01-01 to 2010-12-31
So if you just need "date between min & max date", try below one:
Time_Range:
Load
min([Requested Date]) as minDate,
max([Requested Date]) as maxDate
resident [your table name];
let v_min = FieldValue('minDate',1);
let v_max = FieldValue('maxDate',1);
for i = $(v_min) to $(v_max) //loop for every day
//above row might convert value from date to int, so convert it back to date
let v_date = Date#($(i),'YYYY-MM-DD')
Calendar_table:
Load * inline [
Calendar_Date
$(v_date)
];
next
Same as above code, has not executed in QV so might exist syntax error, I guess you can fix it by your self.
BTW, I don't think it is necessary to create a calendar table. If your date in your fact table is not continously, try edit your chart (only workable for chart, instead of table) by this way:
1. properties
2. axes
3. enable "continuous"
Thanks. I already did it! Would you mind, do you know how to get quarter?
Hi,
I forgot to include, is this possible? To get the weeknumbers per month? rather than per year?
Example: I want the output like this
Month Week No.
Jan 1
Jan 2
Jan 3
Jan 4
Feb 1
Feb 2
Feb 3
Feb 4
Anyone can help? Or is this really possible?
Hi,
you can get quarter using 3 technique:
1. Inline load
2. Loading from excel
3. Using applymap() function
here is attached sample application:
Enjoy,
Regards,
Arun Goel
Hi Arun, thanks for the info.