ברוך הבא, אורח
שם משתמש: סיסמא: זכור אותי

דיון: שאלה בתכנות -איך עושים זאת?

שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5311

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי,

בעיה מעניינת שנתקלתי בה,המקרה עצמו מעט יותר מורכב אבל פישטתי את הבעיה והיא מוצגת לפניכם בקובץ המצורף.

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

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

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

אם אבחר את חודש "4" ארצה לראות את הערך 4 מכיוון שכל הלקוחות קנו בחודשים 2 או 3או 4 (למרות שבחודש 4 עצמו ccc ו-bbb לא קנו).
*כמובן שאם לקוח קנה פעמיים באותה תקופה של שלושה חודשים הוא יופיע רק פעם אחת!

לדעתי בעיה כזו היא קלאסית ל-Set analysis (בחירה של שדה לא תשפיע על העמודה) אבל ניסיתי ולא עבד.
האמת שניסיתי לחשב זאת גם בסקריפט-לא הלך.
ניסיתי שימוש ב-IF או ב-GROUP BY,ניסיתי למיין אותם
להוסיף איזה FLAG ...לא עובד.

אשמח לאיזו עצה מועילה.

תודה רבה
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5312

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
משום מה אני לא מצליח לצרף קבצים...

הנה הטבלה:

Cust, Month
aaa, 1
aaa, 2
aaa, 3
aaa, 4
bbb, 1
bbb, 2
bbb, 3
ccc, 1
ccc, 3
ddd, 1
ddd, 4
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5315

  • תמיר
  • תמיר's Avatar
  • Offline
  • Platinum Boarder
  • הודעות: 627
  • קרמה: 4
הי,

קראתי את ההודעה ובדקתי את נושא העלאת הקבצים-אכן הייתה בעיה!

בכל אופן טיפלתי בנושא ועכשיו אפשר להעלות קבצים.

בכל בעיה, אפשר לפנות אלי חופשי.

שא ברכה,


תמיר
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5316

  • תמיר
  • תמיר's Avatar
  • Offline
  • Platinum Boarder
  • הודעות: 627
  • קרמה: 4
הסתכלתי עכשיו על הבעיה שלך. לא מכיר קליקויוו, אך מבחינת sql זאת בעיה דיי פשוטה:



תסתכל בקובץ המצורף (בנוי על sql server)

File Attachment:

שם קובץ: code-20100324.txt
גודל קובץ:0 ק''ב
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5320

הי,
מצ"ב מודל המכיל את הטבלה שלך
יש שם:
LISTBOX של חודשים
TEXTBOX המכיל את הנוסחה:
count({<Month={">=$(=Month-2) <=$(=Month)"}>} distinct Cust)‎=
ומציג את מספר הלקוחות שקנה בחודש שנבחר ובשני החודשים שקדמו לו
STRAIGHT TABLE המציג את הלקוחות שקנו בחודש שנבחר וב2 החודשים שקדמו לו
שים לב שיש לבחור חודש אחרת תקבל מספר לקוחות 0 (אפס)

באמת שניסיתי אבל בשום צורה לא הצלחתי להעלות את הקובץ
אני בוחר את שם הקובץ והוא מופיע ליד כפתור הבראוז אבל לא קורה כלום
לחיצה על הכפתור ליד FILE לא ממש מועילה
אשלח את הקובץ כשיתאפשר
עריכה אחרונה: 10 years 6 months ago  ע''י Daniel Chotzen. סיבה: לא הצלחתי להעלות קובץ
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5321

  • Matan
  • Matan's Avatar
  • Offline
  • Junior Boarder
  • הודעות: 31
  • קרמה: 1
הנה עוד הצעה לפתרון בעזרת SET ANALYSIS
שים לב - הפתרון תמיד מחפש חודש מקסימאלי - על כן במידה ולא נבחר חודש מסויים הוא יראה את הספירה של שלושת החודשים האחרונים.

count({<Month+={$(=max(Month)-1),$(=max(Month)-2),$(=max(Month))}>}distinct Cust)
עריכה אחרונה: 10 years 6 months ago  ע''י Matan.
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5324

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי,

תודה רבה על הפתרונות.

delon - הפתרון עובד פרט למקרה קצה שבו בוחרים את חודש מספר "1"
הערך שמוחזר הינו null ( או "-").

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

כשיתאפשר אשמח אם תצטרף קובץ.

שוב תודה אנשים
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5326

  • Matan
  • Matan's Avatar
  • Offline
  • Junior Boarder
  • הודעות: 31
  • קרמה: 1
הנה שכתוב קטן של הקוד של דניאל -

=count({<Month={"<= $(=max(Month)) >=$(=max(Month)-2)"}>}distinct Cust)

בדקתי ונראה לי שהוא עובד בסדר
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5337

אני מעלה עכשיו את הקובץ
כפי שתראה יש הבדל קטן בין התוצאה של הנוסחה של delon לנוסחה שלי, זה הכל ענין של העדפה
שים לב אבל ל2 דברים
לפי הבקשה המקורית הנוסחה מביאה את הסכום רק במידה ואתה בוחר חודש
אם אתה רוצה להציג טבלה או גרף שבה יש מימד חודש ולכל חודש מוצגת הספריה עבור 3 חודשים אז יש לטפל בזה בצורה אחרת.
דבר שני
שים לב שכרגע זה בעצם עובד על שדה מספרי שיש בו ערכים מ אחד עד שנים-עשר
הנוסחה אינה בודקת מה קורה במידה והחודש גולש לשנה קודמת
כלומר בחודש 1 היא תביא רק חודש 1 ולא 3

File Attachment:

שם קובץ: roling_3_m...ount.qvw
גודל קובץ:125 ק''ב
הנהלת האתר ביטלה גישת כתיבה ציבורית.

תגובה:שאלה בתכנות -איך עושים זאת? 10 years 6 months ago #5342

  • davidvir
  • davidvir's Avatar
  • Offline
  • Expert Boarder
  • הודעות: 91
  • קרמה: 0
היי,


דוגמא שצירפת טובה מאוד...תודה.

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

כלומר גם ללא כל בחירה אני אראה את הנתונים...
הנהלת האתר ביטלה גישת כתיבה ציבורית.
זמן יצירת העמוד: 0.211 שניות

הדף שלנו בפייסבוק

מעניין? שתפו דף זה באמצעות הטלפון הנייד

אירועים קרובים

מאמרים

מגמות של ביג דאטה בעולם הביטוח
CA Technologies
SSIS - Buffer Size Optimization
קטגוריה ראשית
בדיקות BI ו-DWH לעומת הבדיקות בתחומים אחרים
קטגוריה ראשית
איסוף דרישות לפרויקטי BI
קטגוריה ראשית
כח המידע במיקוד
קטגוריה ראשית
0

Microsoft

Oracle

IBM

Informatica

Sap

SAS

Qlikview

Cloudera

Machine Learning