
where Exists(CustomerID), והטעינה משאירה רק רשומות שהלקוח שלהן כבר קיים בטבלת הלקוחות.הטקסט המלא של הדקות הראשונות בהרצאה «עבודה עם קבצים של אקסל בתוך Qlik - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז אנחנו ראינו בעצם איך אנחנו מזכירת מחליפים ויוצרים קוד שיודע לקרוא מכל הקבצים בעזרת כוכבית וככה אנחנו לא צריכים לכתוב לואוד נפרד לכל קובץ.
עכשיו בואו נסבך את זה קצת. אני בעצם הלכתי לתיקייה והוספתי לקובץ הראשון מלבד עמודה של נוטס. אוקיי?
ואז אתה אומר ווזווריה פסט. נניח שבאמת חלק מהקבצים יכולים להופיע לי עם עמודה נוספת אבל חלק לא. באמת בקובץ השני לא הוספתי ואין שם עמודת נוטס. ומה שקורה, פה אין עמודת נאוץ. שאם אני בעצם מריץ את הקוד הרגיל, ניתן את זה רגע, נעשה עוד פעם קריאה מהקובץ הראשון.
הקוד הרגיל שבעצם משתמש בכוכבית, תשימו לב שעכשיו זה כולל שדה נאוץ, ואני אריץ. הוא אומר לי, השדה נאוץ לא נמצא. למה הוא לא נמצא?
כי בקובץ השני הוא לא נמצא. זאת אומרת, בקובץ הראשון, כשהוא רץ הוא כן הסתדר, אתם לא רואים את זה בסקריפט אבל זה המצב. כשהוא הגיע לקובץ השני הוא בעצם נפל כי אין לו עמודת נוטס.
עכשיו אנחנו לא נלך ונוסיף אחד אחד לקבצים עמודת נוטס. מה שאנחנו נעשה הוא בעצם נחליף את זה בכוכבית. ופה אנחנו נכניס את הקונקט אנטרי אורדל שלנו.
עכשיו הכל בסדר ובאמת הוא טען כולל עמודת נוטס. אז סליחה, לא הוספתי את ה-Fact type של רטרנס. ועכשיו באמת באותה רשומה שהיה לנו את הנוטס באמת משכנו אותו ואיפה שלא היה אז נשאר ריק. מה קורה אם אנחנו בעצם לא היינו משרשרים את זה לטבלת orders?
זאת אומרת היינו סתם רוצים למשוך את טבלת returns איך שהיא. בואו ניקח את זה ונעביר את זה בעצם לתחילת הסקריפט. נניח שזה הדבר הראשון שהיינו רוצים לטעון. נניח שאנחנו לא צריכים באמת לשרשר את זה, זו טבלה עצמאית, טבלת החזרות.
נעשה פה exit script כדי לדוגמה. אז אנחנו לא יכולים להכניס פה orders, בסדר? אנחנו לא רוצים לשרשר את זה, אנחנו רק רוצים לטעון אותה כמו שהיא. ואנחנו עושים את הכוכבית ואת ה-Fact Type, ואחרי זה עוצרים את הסקריפט. בואו נראה מה קורה.
בעצם נוצרה לנו לא טבלה אחת, אלא שתי טבלאות עם מפתח סינתטי ביניהן. למה? כי יש לנו טבלה אחת, שגם לא נתנו לזה שם, בואו ניתן לזה שם.
אז יש פה שתי טבלאות שהוא יצר, אחת הוא קרא Returns ולשני Returns אחת, ומפתח סינתטי ביניהם. למה? אם תסתכלו טוב, אתם תראו שבעצם טבלת Returns אחת, סליחה, טבלת ריטרנס כוללת את כל השדות שיש בקאסטום הערכה, בריטרנס אחת, סליחה, שזה כל מה שנכנס למפתח הסינתטי, פלוס נוטס, שלא נמצא בטבלה השנייה.
זה בעצם ההסבר, הוא בעצם לא יכול לשרשר באופן אוטומטי, ואנחנו אמרנו שהקליק משרשר באופן אוטומטי טבלאות עם מבנה זהה, אבל המבנה כבר לא זהה, יש הבדל, עמודת נוטס נמצאת רק בקובץ הראשון ולא בקובץ השני,
אז אנחנו בבעיה, איך אנחנו מטפלים בזה. כשהיה לנו את ה-concatenate לא היה לנו בעיה כי הוא שרשר, בכל מקרה הוא שרשר לטבלת orders.
אבל פה זו טבלה עצמאית ואנחנו לא יודעים בעצם איך להגיד לו שכן יחבר את זה. אנחנו לא יכולים לעשות concatenate לעצמו, אנחנו לא יכולים לכתוב פה concatenate ל-returns, כי בעצם אין לנו טבלת ריטרנס, היא עדיין לא נוצרה בפעם הראשונה, נכון?
אנחנו מנסים לעשות דבר כזה, והוא אומר לא, table returns not found, אין עדיין טבלה כזאת אני לא יכול ליצור אותה אז לכן יש פה טריק מה עושים במקרה כזה אנחנו ניצור את טבלת ריטרנס כטבלה זמנית וכך כטבלה ראשונית ריקה כי בעצם אני מעוניין שתהיה לי טבלה כבר מוכנה עם ריטרנס ואז אני אומר לכל הלואודים הבאים מהקבצים תטען אליה ואז
בין אם יש נוטס ובין אם אין נוטס הוא יטען אותה לאותה טבלה ראשונית אז אני עושה פה זה פשוט טריק כזה לואוד כוכבית אינליין נשים פה נקודה פסיקה, ועוד כוכבית. ולא צריך להיות בכל השדות, מבחינתי מספיק שיהיה בה נגיד את Customer ID. בכל מקרה זאת טבלה ריקה, אני לא הולך להטעין בה נתונים.
זהו, אני סוגר רק את הכותרת, אין בכלל נתונים. ועכשיו אני עושה קונקטנט ל-Returns. בוא נראה. עכשיו זה מצליח.
לא רק שזה מצליח, זה גם מצליח בלי המפתח הסינתטי. יש לנו טבלה אחת של ה-Returns עם שתי הרשומות שרציתי.
איך זה קרה? פשוט יצרתי לו טבלה ריקה,