
ApplyMap על טבלת order items.Qualify * מוסיפה לכל שדה את שם הטבלה, וכך Qlik לא מחבר אותם אוטומטית. בסוף מבטלים עם Unqualify.הטקסט המלא של הדקות הראשונות בהרצאה «Qlik Join - חלק 4» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בשיעור הקודם הראינו איך מחברים, שוצרים ג'וינט לשני שדות, אבל לא ממש הספקנו לראות את הנתונים שנוצרו, אז בואו נתעכב על זה עוד רגע קצת. נלך לתצוגה שלנו, overview, נלך לאיזשהו גיליון בדיקות, ובואו נרוקן את הטבלה הזאת ממה שיש בה, ונוסיף לה ככה, את עמודת customer ID שלנו, את order year.
בואו נביא גם את המספר הזמנה. בעצם אנחנו, סתם בשביל הנוחות כי בעצם אנחנו מתבססים על טבלת הזמנות ואת הדיסקאונט, שימו לב. אנחנו כבר מסוננים על לקוח 85, זה טוב, זה נוח.
אתם רואים שבשמונים, לקוח 85 ב-2012 קיבל 10% הנחה, בואו נראה שזה אכן מה שרשמנו. אתם רואים, ב-2016 הוא אכן קיבל 10% הנחה, ובשנת 2013 הוא קיבל 15% הנחה, בדיוק מה שרשמנו.
ואפשר גם לבדוק כמובן על לקוח דירות שמן הסתם הנתונים תואמים ב-2012 הוא קיבל 5% הנחה ו-2013 הוא קיבל 8% הנחה אתם רואים שב-2014 אין לו אחוז הנחה כי באמת לא הגדרנו לו אחוז כזה ועכשיו כמובן מה שאפשר לעשות וזה שימוש חוזר בדברים שלמדנו זה להכיל את אחוז ההנחה על הסכום אז בוא נראה אם אנחנו חוזרים זה קצת
יותר מאתגר העניין היחיד זה שבעצם הסכום לא נמצא ב-orders הוא נמצא ב-order items אז בוא נחשוב שנייה, נעשה סדר.
עשינו הנחה, אחוז הנחה לכל לקוח לכל שנה, עשינו את זה בטבלת orders. למה? כי הלקוח והשעה נמצאים בטבלת orders. אלא מה? הסכום לא נמצא בטבלת orders, הסכום נמצא בטבלת order items, כי יש לנו סכום בעצם לכל פריט.
אז חושבים שיש לנו פה כמה אפשרויות בעצם איך לפתור את זה. במובן שאנחנו לא יכולים להכפיל בסקריפט את האחוז הנחה שנמצא ב-orders, להכפיל אותו ב-amount שנמצא ב-order items.
אנחנו כבר ראינו את זה שאי אפשר בעצם להכפיל או לעשות איזשהו חישוב שמובסס על השני השדות שנמצאים באותה טבלה. מה שאפשר לעשות זה טריק כזה שבעצם לוקח לכל אורדר, לכל הזמנה, אוקיי?
לוקח בעצם את ההנחה שקיבלה ועושה מזה איזושהי טבלת מיפוי. זאת אומרת, הזמנה מספר, בוא נחזור אפילו לפה, אלא יותר קרוב, הזמנה מספר 2. אחוז ההנחה הוא 0.05 או 5 אחוז.
הנחה, סליחה, הזמנה מספר 191, קיבלה לנו 8%. בעצם זו התוצאה של מה שעשינו. עכשיו, אם המיפוי הזה שממפה לי בין מספר הזמנה לבין ההנחה, אני יכול לגשת לטבלת Order Items, שגם שם יש את ה-Order ID, ולהוסיף שם את האחוז ההנחה, אוקיי?
אז אחרי שהגענו ושמנו את טבלת ה-Order, אז אנחנו מכילים את זה על ה-Order Items, ושם כבר נוכל להכפיל את זה בסכום. טוב, זה שימוש חוזר בכמה אלמנטים שכבר למדנו, בואו נעשה את זה.
קו read ואני יוצר עכשיו ככה load כל מה שאני יוצר עכשיו זה order ID seek discount resident נכון מתוך טבלת orders שם זה נמצא ואני לא מתכוון להביא את הכל כי לא לכל יש לי הנחה נגיד שנתתי הנחות רק לשני הלקוחות האלו לשתי השנים האלו אז אני אומר where דיסקאונט איז נאט נאן, יותר נכון נאט איז נעל
דיסקאונט. עכשיו אני אומר לכם עוד איזשהו טריק, מה שקורה אני רוצה להריץ את זה כדי לבדוק לפני שאני אמשיך הלאה, ואתם כבר יודעים שמה שיקרה אחרי שאני אערוץ זה שתיווצר לי עוד איזושהי טבלה סינתדית מעצבנת, כי בין הטבלה הזאת החדשה לבין טבלת אורדר זה יהיה שתי מפתחות משותפים,
אורדר איידי ודיסקאונט, זה משבש את התצוגה זה לא נוח, מה שאפשר לעשות, אפשר להשתמש בפונקציה שבדרך כלל משתמשים בה באופן זמני, Qualify, Qualify כוכבית. אני בעצם אומר, מעתה והלאה, תוסיף לכל שדה בטבלאות הבאות, תוסיף את השם של הטבלה כחלק משם השדה.
למה זה טוב? כי עכשיו הוא לא יחבר לי את זה, אני עושה את זה רק בשביל הבדיקה, רוצה לראות שהנתונים שלי בסדר, אחרי זה אני אמשיך. אני עושה Qualify כוכבית, ובדרך כלל אחרי זה שמים Un-Qualify, כדי שזה יפסיק. במקרה הזה אין לי פה עוד קוד אחרי, אבל הרבה פעמים יש עוד קוד, לכן זה טוב מיד כשגומרים לעשות Unqualified.
בואו נריץ. ונוצרה לי טבלה, נתן לנו איזשהו שם זמני. אתם רואים שהוא לא חיבר אותה, כי הוא הוסיף בתוך שם השדה, הוא הוסיף גם את שם הטבלה. זה מצוין, אני יכול להסתכל, ואכן לראות שהוא נתן לי את ה-Order ID ואת