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

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

האם אפשר לפלטר דוחות על פי אובייקט בדוח עצמו?

More
12 years 6 months ago #8098 by נתן
או אולי לפי תוצאות של דוח אחר?

מה כוונתי:
אני מעוניין להפיק דוח משתמשים הסופר לי מספר פעולות מסוג "פעולה2" בתלוי זמנים של "פעולה1".

עכשיו כאילו בשביל לסבך, אני צריך לספור את מספר ה-"פעולה2" שנעשו נגיד בשבוע שאחרי שבוצעה "פעולה1", עבור כל משתמש בדוח.

אני חופר ומנסה כל מיני שיטות אבל נופל בפינות.
האם יש דרך נכונה וטובה לעשות זאת?

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

לתשותכם אודה
נתן

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

More
12 years 6 months ago #8099 by תמיר
הי,

זה אפשרי.

הדרך הנוחה ביותר היא ליצור פילטר בDesigner.

תקר בעיון את המאמר הבא:

www.tamir1.com/articles/66-exists.html

תמיר

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

More
12 years 6 months ago #8100 by תמיר

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

More
12 years 6 months ago #8101 by נתן
סליחה תמיר על כך שאני מציק, אך מאמר זה אינו עונה לי לשאלה.
בשאילתא של SQL אני רושם את זה בשימוש בעזרת Cross Apply אשר מריץ לי ספירה על טבלת "פעולה2" בזמנים שהוא מקבל מתוך טבלת "פעולה1" עבור כל רשומה בזו האחרונה.

השאלה שלי היא: איך אפשר ליישם זאת בBO?

תודה
נתן

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

More
12 years 6 months ago #8102 by תמיר
נתן,

אתה לא מציק לי. זה בסדר.

עכשיו לגופו של עניין:

בוא נעשה את זה בשלבים.

עזוב את הספירה כרגע, בוא נמצא את כל אלה אשר בצעו את פעולה 2 אחרי פעולה 1.

תסתכל על דוגמא ד במאמר.

תנסה ליישם את זה , אל באמצעות BO אלא באמצעות כתיבת SQL.

אח"כ נמשיך הלאה.


תמיר

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

More
12 years 6 months ago #8103 by נתן
הנה לנו המשתמשים אשר ביצעו פעולה אחת או יותר לאחר שביצעו פעולה ראשונה.
לשם הנוחות שדה זמן פעולה1 נכנס כבר לתוך טבלת משתמשים.

SELECT U.UserName,U.Action1DateTime
FROM DimUsers U
)WHERE EXISTS
SELECT 1 FROM FactActions2 P
WHERE U.Userid = P.userid
( AND P.Action2DateTime > U.Action1DateTime

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

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

More
12 years 6 months ago #8104 by תמיר
יש לך טעות.

u צריך להיות FactActions

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

More
12 years 6 months ago #8105 by נתן
למה טעות?
זו שאילתא שלך או שלי?

בהרצה על הנתונים אצלי אני מקבל את הנתונים הרצויים.
אם אני רוצה גם לספור את פעולה2 לפי תאריך של פעולה1 אז אני משתמש בcross aplly
בכל מקרה אני לא מצליח להעביר את הלוגיקה אל הBO

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

More
12 years 6 months ago #8106 by תמיר
זאת שאילתא שלי ואם תסתכל טוב טוב בדוגמא ד, שתי הטבלאות הם fact . אחת נקראת orders ןהשני orders_alias.

בשאילתא שכתבת הטבלה הראשונה היא dimusers וזה הבדל מהותי

לגבי הספירה: נצטרך לשנות טיפ טיפ את השאילתא ובמקום exists תעשה משהו אחר:

select * from factactions a, factactions b where a.userid=b.userid and b.action2datetime>a.action1datetime

עכשיו במקום select * תספור את מה שאתה רוצה. קשה לי לכתוב בגלל היישור של הטקסט

לפני הBO תנסה לעשות את זה עד שיצליח

עד כאן?

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

More
12 years 6 months ago #8107 by נתן
זה מה שאני עושה בSQL
Code:
SELECT UserId, Action1DateTime, CountNum FROM Dim_Users u CROSS APPLY ( SELECT COUNT(*) AS CountNum FROM Fact_Action2 p WHERE p.userid = u.userid AND Action2DateTime BETWEEN u.Action1DateTime AND DATEADD(DAY,14,u.Action1DateTime) ) a WHERE CountNum > 0
רק למען הסדר הטוב והנוחות שלי דחפתי את זמןפעולה1 אל תוך טבלת משתמשים, כיוון שאני בעצם רוצה רשימת המשתמשים אבל רק את אלה אשר ביצעו פעולה1 ובשבילם את מספר הפעולה2 שביצעו בשבועיים שאחרי כן.
זה מחזיר לי בדיוק את מה שאני צריך, עכשיו אני צריך עצה על מנת להצליח לשלוף את זה(ועוד דומים לו) מתוך הBO.

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

More
12 years 6 months ago #8108 by תמיר
אני לא רוצה לבאס אותך, אך לא נראה לי שזה מה שאתה מחפש. תבדוק לעומק את התוצאות. הסיבה היא שהמימד לא אמור להחזיק הסטוריה של הפעולות אלא משתמשים בלבד.

תבדוק שוב וממליץ לך בחום להסתכל על מה שכתבתי

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

More
12 years 6 months ago #8109 by נתן
המימד יחזיק מה שאני אגיד לו להחזיק.
במקרה הזה המימד מחזיק את תאריך הפעולה הראשונה של המשתמש, זה מידע אשר אני מתייחס אליו רבות במערכת ולכן הוא משוטח יחד עם מימד משתמשים.

התוצאות בשאילתה שכתבתי הן בדיוק מה שאני מחפש.
יש אפשרות לתרגם זאת לBO?

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

More
12 years 6 months ago #8110 by תמיר
הי,

תכנסי את הSQL לתוך Dervied table ותחבר אותה כמו טבלת fact רגילה לעולם, כלומר דרך מימד משתמשים. הגדר Context נפרד במקרה הצורך.


תמיר

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

Moderators: Yoav
Time to create page: 0.323 seconds