• ברוכים הבאים
    לאתר הקורסים שלנו!

  • קורסים בBO,SQL וDWH

    לקטלוג הקורסים המלא, הקישו כאן
  • חומרי לימוד מקוריים ובעברית

    אנו משקיעים משאבים רבים כדי שחומר הלימוד יהיה מובן ומעודכן

    כל חומרי הלימוד מפותחים על ידנו וכתובים בעברית
  • יחס אישי וסבלנות אין קץ

    אנו מסבירים את החומר בסבלנות ועונים על כל שאלה

    יש לנו סבלנות לכל אחד
  • מדריכים מנוסים

    אצלנו המדריכים מנוסים הן בנושאי הקורס והן בהדרכה
  • 1
  • 2
  • 3
  • 4
  • 5
  • קורס הSQL המהפכני, המלמד SQL מההתחלה , לא רק את תחביר הפקודות אלא גם את כל הדינמיקות השונת המתרחשות בשפה.
    הקורס נלמד על מגוון בסיסי נתונים כדי לחקות את סביבת העבודה לאחר סיום הקורס.
    קראו עוד
  • בקורס זה אנו מלמדים כיצד לפתח דוחות באמצעות הWebintelligence. הקורס שם דגש על מספר נושאים, כגון הבאת נתונים מהDB באמצעות יצירת שאילתא, יצירה ועיצוב אובייקטים גרפים דוגמת, טבלה וגרף, ושימושיות למשל כדי לתזמן דוח. הקורס מלווה בתרגול רב, חלק נקודתי וחלק על ידי תרגילים מסכמים.
    קראו עוד
  • בקורס זה אנו נלמד כיצד לפתח דוחות באמצעות הWebintelligence של תוכנת Business Objects בגרסא 4.x . הקורס הוא קורס בן יום אחד למשתמשים אשר מכירים את הBO בגרסאות ישנות שלו, אשר שונות בצורה מהותית מגרסא 4. הקורס כרגיל מלווה בתרגול ובהרבה טיפים.
    קראו עוד
  • קורס ה Bo Designer Master הוא קורס ייחודי שפותח בארץ המקנה למשתמש מיומנויות מקצועיות בפיתוח עולמות תוכן באמצעות כלי הDesigner של Business Objects. קורס זה מדמה את סביבת העבודה של הDesigner וכן את המצבים והבעיות בהם נתקל בעבודתו. הקורס מועבר באמצעות סביבות של בסיסי נתונים "חיים" המכילים מודלים הקרובים מאד למודלים האמיתיים הנמצאים בפרויקטים. התלמיד בוחר את בסיס הנתונים שעליו רוצה לפתח את עולמות התוכן. (ישנן שתי אפשרויות: Sql Server או Oracle.)
    קראו עוד
  • למדתי מספר קורסים של אתר dwh.co.il בנושאי Business Objects. למרות שאני מנוסה מאד בתחום הBI למדתי דברים רבים ומעניינים שפתחו לי אפשרות לבצע דברים חדשים בעבודה היומיומית....
    קראו עוד
  • לאחר שמערכת הBO הוטמעה בארגון , החלטנו להרחיב את היריעה ולהכניס עוד משתמשים למעגל כותבי הדוחות. לצורך זה הזמנו קורסי Business Objects מאתר dwh.co.il. הקורסים של האתר היו מותאמים בדיוק למה שהיינו צריכים, המדריך הסביר בסבלנות....
    קראו עוד
  • dwh,אני חייב לכם תודה על הקורס שהעברתם לנו כאן בישראכרט - קורס מצויין ברמה גבוה, עם המון תכלס דרך תרגולים בה גם אנשי ה-BI המנוסים ביותר שלנו הצליחו ללמוד ולחדש...
    קראו עוד
  • DWH.CO.IL העבירו קורס Business Objects לקבוצת מנהלים ואנליסטים בביטוח ישיר ,הקורס הועבר בצורה מקצועית ויעילה ונגע בנקודות החשובות בעבודה היומיות....
    קראו עוד
  • במסגרת הטמעת מערכת הBusiness Objects בארגון , הזמנו קורס infoview באתר dwh.co.il....
    קראו עוד
  • הזמנו לבזק את אחת מהסדנאות BO Design למתקדמים. בהתחלה לא ידענו אם זה באמת מה שאנחנו צריכים, מאחר ויש לנו ניסיון רב בDesign בארגון....
    קראו עוד
  • פיתוח הקורסים

    אנו משקיעים שעות רבות בפיתוח הקורסים. בכל מחזור נלמד, אנו רושמים את הערות התלמיד תוך כדי הלימוד ומוציאים לאחר מכן גרסא משופרת. עם הזמן הקורסים הגיעו כבר לרמה שאנו מצפים, אך עדיין אנו משפרים אותם בכל הזדמנות. כמו כן, מיד כשישנם חידושים בתוכנה, אנו מעדכנים את הקורסים כדי לענות על חזית הטכנולוגיה.
  • תרגול

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

טבלת מה עד

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

לדוגמא טבלת שערי המטבע הבאה מכילה את תאריך המטבע וכן את שער הדולר באותו יום:

article08 01

וכן טבלת מכירות המכילה פרטי מכירה הנקובים בדולרים:

כיצד נוכל למצוא את ערך המכירה בשקלים ביום המכירה. התשובה כמובן טמונה בטבלת שערי המטבע, אך המבנה של הטבלה אינו מאפשר אחזור, ולכן צריך להעביר אותה למבנה מ \עד.

כדי לבצע זאת, יש מספר דרכים. לפניכם הדרך היעילה ביותר (לפחות, לדעתי).

נציג את הפתרון באמצעות Sql Server, למרות שאותה שיטה תעבוד גם בDB אחרים.

הטבלה המקורית:

שלב 1:

לכל רשומה נחבר את כל הרשומות לפניו (באמצעות alias). נבצע זאת באמצעות join אך עם אופרטור >.

בסופו של התהליך הAlias יתאר את תאריך מ , בעוד שהטבלה המקורית תתאר את תאריך עד.

המוביל הוא תאריך מ, לכן נציג את שאר החליפין של הAlias וכן נמיין לפי התאריך של הAlias.

הSQL שנקבל:

select t2.rate_date from_date , t1.rate_date to_date,t2.exchange_rate
from dbo.exchange_rate t1 inner join dbo.exchange_rate t2
on t2.rate_date<t1.rate_date
order by t2.rate_date

 

הרצה של Sql זה תחזיר לנו את הRecordset הבא:

שלב 2:

אם תשימו לב , לכל רשומה בעמודה השמאלית (מ) יש מספר רשומות בעמודה הימנית (עד), אשר כולם הם עם תאריך הגדול מהעמודה השמאלית. אנו נצטרך למצוא את רשומת העד הראשונה שבא מיד לאחר רשומת המ.

נמצא זאת באמצעות שימוש בmin עם group by.

השאילתא:

select t2.rate_date from_date , min(t1.rate_date) to_date,t2.exchange_rate
from dbo.exchange_rate t1 inner join dbo.exchange_rate t2
on t2.rate_date<t1.rate_date
group by t2.rate_date,t2.exchange_rate
order by t2.rate_date

אשר תחזיר :

 

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

שלב 3:

אם שמם לב, תאריך העד של רשומה זהה לתאריך ה מ של הרשומה הבאה בסדר. דבר זה יגרום בעיות כאשר תאריך המכירה (בטבלת המכירות) יהיה זהה לתאריך זה. דבר שיגרום להכפלת רשומות. לדוגמא, אם תאריך המכירה הוא 29/4/2011 המכירות יוכפלו ב2 . הכפלה זאת נובעת מכך שהאופרטור Between לוכד גם את הקצוות של הערכים המופיעים בו. לצורך זה, יש להוריד שניה מתאריך העד.

כלומר, הSQL יהיה:

 

select t2.rate_date from_date , dateadd(s,-1,min(t1.rate_date)) to_date,t2.exchange_rate
from dbo.exchange_rate t1 inner join dbo.exchange_rate t2
on t2.rate_date<t1.rate_date
group by t2.rate_date,t2.exchange_rate
order by t2.rate_date

 

 

שיחזיר את הRecordset הבא:

שלב 4:

בשלב האחרון, עלינו לטפל במקרה קצה: מה קורה שאנחנו צריכים להצליב מכירה הנמצאת בתאריך שלא נמצא בטווח התאריכים בטבלת נתוני המטבע. לדוגמא, מכירה שהופיע לפני 31/12/2010 או אחרי 29/6/2012.

אנחנו לא יודעים מה היה לפני 31/12/2010, לכן נקבע באופן שרירותי את הערך 3.5 ואת כל שערי החליפין אחרי 29/6/2012, נקבע כאחרון הידוע (בתאריך 29/6/2012).

כדי ללכוד את התאריכים שלא נמצאים בטווח, נשנה את סוג הjoin ל full outer.

כלומר, הSQL יהיה:

select t2.rate_date from_date , dateadd(s,-1,min(t1.rate_date)) to_date,t2.exchange_rate
from dbo.exchange_rate t1 full outer join dbo.exchange_rate t2
on t2.rate_date<t1.rate_date
group by t2.rate_date,t2.exchange_rate
order by t2.rate_date

 

נקבל את הRecordset הבא:

נלכוד את הnull של הExchange_rate ןנשתול את הערך השרירותי 3.5, את ערכי התאריכים הNull, נחליף בתאריכים מוגזמים, כדי לכסות את כל האפשרויות. נניח, 1/1/1911 ו1/1/2311.

הSQL הסופי, יהיה:

select isnull(t2.rate_date,cast('1/1/1911' as datetime)) from_date , isnull(dateadd(s,-1,min(t1.rate_date)),cast('1/1/2311' as datetime))to_date, isnull(t2.exchange_rate,3.5) exchange_rate
from dbo.exchange_rate t1 full outer join dbo.exchange_rate t2
on t2.rate_date<t1.rate_date
group by t2.rate_date,t2.exchange_rate
order by t2.rate_date

הSql יחזיר את הRecordset הבא:

 

אחרי שסיימנו, נחבר את הSQL לטבלת הSales המקורית, כדי לראות את סכום המכירה בשקלים:

select sales_date,exchange_rate, sales_in_dollar,sales_in_dollar*exchange_rate sales_in_shekel from dbo.sales inner join (select isnull(t2.rate_date,cast('1/1/1911' as datetime)) from_date , isnull(dateadd(s,-1,min(t1.rate_date)),cast('1/1/2311' as datetime))to_date, isnull(t2.exchange_rate,3.5) exchange_rate from dbo.exchange_rate t1 full outer join dbo.exchange_rate t2 on t2.rate_date<t1.rate_date group by t2.rate_date,t2.exchange_rate ) xchng on sales_date between from_date and to_date

 

אשר יחזיר את הRecordset הבא:

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

הערה: השימוש שעשינו בOrder By הוא למטרת המחשה בלבד.

 

 

 

תנו לנו לייק לקבלת עדכונים שוטפים