חישוב ערך זמן בין שני סטטוסים

פורומים אפיון ופיתוח פריוריטי חישוב ערך זמן בין שני סטטוסים

  • Post
    מוריס
    משתתף
    היי בוקר טוב.

    בניתי דו"ח שבו ארצה לחשב זמן כולל בין שני סטטוסים (תאריך החתימה שלהם) .

    הבעיה היא שעמודה סטטוס מוצגת לי בציר הX  ועמודת "תאריך חתימה" מוצגת לי כ – T .

    סטטוס נלקח מעמודת DOCSTATUSES.STATDES (חיתוך מול טבלת TODOLIST) ותאריך חתימה נלקח מ TODOLIST.UDATE.

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

    תודה מראש

    תמונה לדוגמא

מוצגות 7 תגובות – 1 עד 7 (מתוך 7 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    אתה לא יכול לעשות את זה שם. אתה חייב להכין את הנתון הזה מראש ולהציג אותו אחרי "ימי אישור טופס".
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    yitzchok
    משתתף
    IL
    אוסיף קצת הסבר:

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

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    מוריס
    משתתף
    זאת בדיוק הבעיה שלי :-).

    אז אני מבין שצריך להציג זאת רק באמצעות שאילתת SQL לפני שלב הפלט?

    תודה

     

    NoamN
    משתתף
    none
    אני לא בטוח שהבנתי נכון, אבל אפשר לחשב את הפרש הזמן בין שתי רשומות סטטוס בצורה הבאה

    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

    yitzchok
    משתתף
    IL
    צריכים להצביע על בדיוק 2 שינויי סטטוס לפי מפתח ולא רק לפי סטטוס הרי יכול להיות שהתעודה עבר דרך אותו סטטוס יותר מפעם אחת – צריכים לזהות את המעבר הנכון. אני לא יודע איך (או אם) הדו"ח כרגע מאתר בדיוק תאריך אחד לכל אחד מ-2 הסטטוסים. אולי ניתוח זה יכול לעזור להביא לשם את התאריכים הנכונים.
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    NoamN
    משתתף
    none
    אז בשאילתא אחת אי אפשר. בשלבים: קודם צריך למצוא את התאריך הראשון (?) בו התעודה עברה סטטוס ראשון. אחר כך למצוא את התאריך האחרון בו התעודה עברה את הסטטוס השני. התוצאה הרצויה תהיה התאריך השני פחות התאריך הראשון.
    מוריס
    משתתף
    תודה רבה לשניכם!

    לפחות הכוונתם אותי, אנסה לבצע אעדכן במידה והצלחתי 🙂

    שוב תודה

מוצגות 7 תגובות – 1 עד 7 (מתוך 7 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.