הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

דרכים ליצירת טבלת לוח שנה

More
16 years 7 months ago #4592 by avishayl

לפעמים כאשר עובדים עם תאריכים, נרצה להפריד אותם מטבלת ה - Fact וליצור טבלת תאריכים נפרדת.

בדוגמא הבאה ניצור טבלת תאריכים ראשית עם תאריך התחלתי קבוע מראש.

//***************************************************************

SET vStartDate = 01/01/2006; //תאריך התחלה
LET vEndDate = Date(Today()); //תאריך סיום

Temp_Date:
LOAD
Date(Date('$(vEndDate)'+1) - RecNo(),'DD/MM/YYYY') as Date
AUTOGENERATE  Date('$(vEndDate)','DD/MM/YYYY') -  Date('$(vStartDate)','DD/MM/YYYY');

Calender:
LOAD
Date,
Year(Date) as Year,
'Q' & ceil(num(Month(Date))/3) as Qtr,
Month(Date) as Month,
Week(Date) as Week,
WeekDay(Date) as Weekday,
Day(Date) as Day,
Year(Date) & '-' & 'Q' & ceil(num(Month(Date))/3) as [Year-Qtr],
Year(Date) & '-' & Month(Date) as [Year-Month],
Year(Date) & '-' & right('00' & week(Date),2) as [Year-Week],

InWeekToDate(Date,Today(),(Year(Date)-Year(Today()))*52)*(Year(Today())-Year(Date)) as [Week TD],

InMonthToDate(Date,Today(),(Year(Date)-Year(Today()))*12)*(Year(Today())-Year(Date)) as [Month TD],

InQuarterToDate(Date,Today(),(Year(Date)-Year(Today()))*4)*(Year(Today())-Year(Date)) as [Qtr TD],

InYearToDate(Date,Today(),Year(Date)-Year(Today()))*(Year(Today())-Year(Date)) as [Year TD],

Date-Today() as [Date Diff],

((Year(Date)-Year(Today()))*52)+(Week(Date)-Week(Today())) as [Week Diff],

((Year(Date)-Year(Today()))*12)+(Month(Date)-Month(Today())) as [Month Diff],

((Year(Date)-Year(Today()))*4)+(Qtr1(Month(Date))-Qtr1(Month(Today()))) as [Qtr Diff],

Year(Date)-Year(Today()) as [Year Diff]

RESIDENT Temp_Date;
DROP TABLE Temp_Date;
//***************************************************************


מלבד השדות הרגילים בכל טבלת Calendar, אני מוסיף שתי סוגים של שדות עזר – Diff, TD
בעזרת שדות אלו ניתן לבצע השוואות של תקופות על מימד הזמן ביתר קלות.

דוגמא:
שדה [Month Diff]  החודש הקודם יכיל -1 ולפני חודשיים יהיה -2 וככה הלאה, אז כאשר נרצה לבצע השוואת מכירות לחודש קודם  נוכל לשים ב set analysis את השדה כאשר הוא שווה ל -1
כנ"ל כמובן לגבי שאר שדות ה Diff.
Sum({$<[Month Diff]={0}>} Sales)  - מכירות חודש נוכחי
Sum({$<[Month Diff]={-1}>} Sales)  - מכירות חודש קודם

כאשר נרצה לבצע השוואה של מכירות החודש לעומת המכירות באותו חודש שנה שעברה אבל רק לימים שעברו מתחילת החודש (כלומר אם היום ה 19 לאוקטובר 2009 אז גם עד ה 19 לאוקטובר 2008)
אז נשתמש בשדה [Month TD]. כנ"ל כמובן לגבי כל שאר שדות TD.
Sum({$<[Month TD]={0}>} Sales)  - מכירות ספטמבר 2009
Sum({$<[Month TD]={-1}>} Sales)  - מכירות ספטמבר 2008 עד ה 20 לחודש

שימו לב, ע"מ למצוא את הריבעון אני משתמש בפונקצית Qtr1 שצריך להכניס אותה למקרו.

FUNCTION Qtr1(MyMonth)
            if MyMonth <  4 then
                        Qtr1=1
            elseif MyMonth <  7 then
                        Qtr1 = 2
                        elseif MyMonth <  10 then
                                    Qtr1 = 3
                                    else
                                                Qtr1 = 4
                        end if
END FUNCTION

שימו לב, מצורף קובץ Qlikview עם הדוגמא.

בברכה,

אבישי

Please התחברות to join the conversation.

More
15 years 11 months ago #5795 by davidvir
היי אבישי,

האם תוכל לצרף את קובץ הדוגמא?

כנראה הוא נעלם מההודעה הזו באיזהשהו שלב...

Please התחברות to join the conversation.

More
15 years 11 months ago #5798 by avishayl
הי,

לא צורף קןבץ ;-)

אתה יכול פשוט לקחת את ה SCRIPT
ולשים בקובץ משלך.

Please התחברות to join the conversation.

Moderators: avishaylgiladlDaniel Chotzenodedth
Time to create page: 0.250 seconds