טבלת Canledar

  • This topic has 11 תגובות, 3 משתתפים, and was last updated לפני 3 שנים by רועי זלוף.
  • Post
    רועי זלוף
    משתתף
    שלום רב,

    ברצוני לדעת האם ישנה טבלה בפריוריטי המכילה את כל התאריכים האמיתיים מה-01/01/88 עד התאריך הנוכחי.

    הכוונה לטבלת לוח שנה (Calendar) שמתעדכנת כל הזמן, וממנה ניתן לבצע שאילתות על ימים רצויים.

     

    בברכה,

    רועי.

מוצגות 11 תגובות – 1 עד 11 (מתוך 11 סה״כ)
  • Replies
    NoamN
    משתתף
    none
    אין טבלה כזו ואני לא מבין בשביל מה היה נדרש. הרי תאריך הוא בעצם מספר, ואין טבלה שמכילה מספרים מ-1 עד 10,000 (נניח).

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

    רועי זלוף
    משתתף
    המטרה היא להחזיר רשומות של תאריכים בין שני משתנים תאריכיים.
    yitzchok
    משתתף
    IL
    רועי כנראה אתה רוצה להשתמש ב-date table לצורך ניתוח (כמו שאפשר להשתמש ב-number table)

    לדעתי אין – לא זה ולא זה.

    יכול להיות שאגיד דבר שכבר התכוונת לעשות אבל אציע משהו:

    אם תרצה, צור טבלאות קבועות פרטיות, ותתחזק אותם בתזמן.

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

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

    אכן אתה צודק, מטרתי היתה להשתמש ב-date table, ושתי הפתרונות שהצעת עברו לי בראש, רציתי רק לבדוק אם קיימת טבלה שכזאת שאני לא מכיר.

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

     

    תודה רבה,

    רועי.

    NoamN
    משתתף
    none
    יצחק כתב: "פשוט תעשה לולאה בקוד מערך ראשון עד ערך אחרון ותבצע INSERT). כך יהיה תמיד הטווח הנדרש". אני אומר שאין צורך בלולאה: כתבתי פרוצדורה לפני כשבועיים בה דו"ח צריך להעביר אל דו"ח רק טווח תאריכים (הדו"ח נשלח אוטומטית דרך דואר לכן אין אפשרות לקלט) והגדרתי את התאריכים כך

    INSERT INTO STACK2 (ELEMENT, TYPE)
    VALUES (:$.FDT, :$.TDT)

    בדו"ח עצמו, בשדה התאריך, יש ביטוי BETWEEN STACK2.ELEMENT AND STACK2.TYPE

     

     

    yitzchok
    משתתף
    IL
    נעם

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

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

    1. רוב הסיכויים הם שההכנסה הזאת לטבלה תהיה "זולה" מהבדיקה שלך

    2. במצב האידיאלי הטבלה כבר קיימת, עם הנתונים הנדרשים. כך קיווה השואל המקורי.

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

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

    קיימת טבלה שנקראת GLDATES שמכילה את כל התאריכים של התקופות הכספיות שנפתחו במערכת.

     

    רועי.

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