› פורומים › אפיון ופיתוח פריוריטי › חישוב ערך זמן בין שני סטטוסים
- This topic has 7 תגובות, 3 משתתפים, and was last updated לפני 2 שנים, 11 חודשים by מוריס.
- Post
-
- נובמבר 22, 2021 בשעה 11:39 am
היי בוקר טוב.בניתי דו"ח שבו ארצה לחשב זמן כולל בין שני סטטוסים (תאריך החתימה שלהם) .
הבעיה היא שעמודה סטטוס מוצגת לי בציר הX ועמודת "תאריך חתימה" מוצגת לי כ – T .
סטטוס נלקח מעמודת DOCSTATUSES.STATDES (חיתוך מול טבלת TODOLIST) ותאריך חתימה נלקח מ TODOLIST.UDATE.
האם יש דרך פשוטה "יחסית" לבצע חישוב כזה בין שני תאריכי סטטוס, הלכתי לאיבוד עם זה.
תודה מראש
- Replies
-
- נובמבר 22, 2021 בשעה 1:28 pm
אתה לא יכול לעשות את זה שם. אתה חייב להכין את הנתון הזה מראש ולהציג אותו אחרי "ימי אישור טופס".[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 22, 2021 בשעה 1:30 pm
אוסיף קצת הסבר:כל ההצגה טבלאית הוכנה אחרי השאילתא. העמודות מהסטטוס הראשון והעמודות מהסטטוס השני הן משורות שונות בפלט השאילתא שלך ולא ניתן בפריוריטי להתייחס לערך שבשורה אחרת.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 22, 2021 בשעה 1:33 pm
זאת בדיוק הבעיה שלי :-).אז אני מבין שצריך להציג זאת רק באמצעות שאילתת SQL לפני שלב הפלט?
תודה
- נובמבר 22, 2021 בשעה 2:53 pm
אני לא בטוח שהבנתי נכון, אבל אפשר לחשב את הפרש הזמן בין שתי רשומות סטטוס בצורה הבאהSELECT TD1.UDATE – TD2.UDATE
FROM TODOLIST U1, TODOLIST U2, ….
WHERE U1.IV = U2.IV
AND U1.DOCSTATUS = …
AND U2.DOCSTATUS = …לא השלמתי את השאילתא כי אני לא יודע למה TODOLIST מחובר. בקיצור, יש UDATE אחד עבור התעודה כאשר הסטטוס <משהו> ויש UDATE אחר עבור אותה התעודה כאשר הסטטוס <משהו אחר>. מה שנקרא SELF JOIN
- נובמבר 22, 2021 בשעה 3:08 pm
צריכים להצביע על בדיוק 2 שינויי סטטוס לפי מפתח ולא רק לפי סטטוס הרי יכול להיות שהתעודה עבר דרך אותו סטטוס יותר מפעם אחת – צריכים לזהות את המעבר הנכון. אני לא יודע איך (או אם) הדו"ח כרגע מאתר בדיוק תאריך אחד לכל אחד מ-2 הסטטוסים. אולי ניתוח זה יכול לעזור להביא לשם את התאריכים הנכונים.[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- נובמבר 22, 2021 בשעה 4:15 pm
אז בשאילתא אחת אי אפשר. בשלבים: קודם צריך למצוא את התאריך הראשון (?) בו התעודה עברה סטטוס ראשון. אחר כך למצוא את התאריך האחרון בו התעודה עברה את הסטטוס השני. התוצאה הרצויה תהיה התאריך השני פחות התאריך הראשון.
- יש להתחבר למערכת על מנת להגיב.