› פורומים › אפיון ופיתוח פריוריטי › טבלת Canledar
- This topic has 11 תגובות, 3 משתתפים, and was last updated לפני 3 שנים, חודש 1 by רועי זלוף.
- Post
- Replies
-
- אוקטובר 12, 2021 בשעה 2:10 pm
אין טבלה כזו ואני לא מבין בשביל מה היה נדרש. הרי תאריך הוא בעצם מספר, ואין טבלה שמכילה מספרים מ-1 עד 10,000 (נניח).בכל טבלה הקשורה לזמן/מועד יש לפחות שדה תאריך אחד שבעזרתו ניתן להגביל לפי תאריך.
- אוקטובר 12, 2021 בשעה 2:33 pm
המטרה היא להחזיר רשומות של תאריכים בין שני משתנים תאריכיים.- אוקטובר 12, 2021 בשעה 9:57 pm
רועי כנראה אתה רוצה להשתמש ב-date table לצורך ניתוח (כמו שאפשר להשתמש ב-number table)לדעתי אין – לא זה ולא זה.
יכול להיות שאגיד דבר שכבר התכוונת לעשות אבל אציע משהו:
אם תרצה, צור טבלאות קבועות פרטיות, ותתחזק אותם בתזמן.
או מלא טבלה (קיימת?) (מלונקקת) לפי טווח הערכים שאתה צריך, כשאתה צריך אותם (פשוט תעשה לולאה בקוד מערך ראשון עד ערך אחרון ותבצע INSERT). כך יהיה תמיד הטווח הנדרש, אבל זה יהיה על חשבון מילוי הטבלה מחדש כל פעם. ויכולות להיות לזה השלכות בביצועים בגלל נושא הסטטיסטיקות של הטבלה, אם אופי טווח הערכים שתשים ישתנה הרבה מאוד מפעם לפעם. זה יכול להכריע שעדיף להשתמש בטבלה פרטית. הייתי אומר: תהיה מודע לזה למקרה בו תזהה בעיות איטיות, אבל אל תחשוש מזה יותר מדי בהתחלה.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 17, 2021 בשעה 8:49 am
היי יצחק,אכן אתה צודק, מטרתי היתה להשתמש ב-date table, ושתי הפתרונות שהצעת עברו לי בראש, רציתי רק לבדוק אם קיימת טבלה שכזאת שאני לא מכיר.
במצב שכזה, לדעתי עדיף כבר להקים ולתחזק טבלה אחת שתשמש כל תכנית שתרצה להשתמש בה.
תודה רבה,
רועי.
- אוקטובר 18, 2021 בשעה 8:21 am
יצחק כתב: "פשוט תעשה לולאה בקוד מערך ראשון עד ערך אחרון ותבצע INSERT). כך יהיה תמיד הטווח הנדרש". אני אומר שאין צורך בלולאה: כתבתי פרוצדורה לפני כשבועיים בה דו"ח צריך להעביר אל דו"ח רק טווח תאריכים (הדו"ח נשלח אוטומטית דרך דואר לכן אין אפשרות לקלט) והגדרתי את התאריכים כךINSERT INTO STACK2 (ELEMENT, TYPE)
VALUES (:$.FDT, :$.TDT)בדו"ח עצמו, בשדה התאריך, יש ביטוי BETWEEN STACK2.ELEMENT AND STACK2.TYPE
- אוקטובר 18, 2021 בשעה 12:38 pm
נעםדמיין לעצמך שהוא רוצה לדעת איזה תאריכים בטווח מסוים לא נמצאים ב-TRANSORDER.CURDATE (סתם לדוגמה)
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 25, 2021 בשעה 4:20 pm
לגבי ימים בהם אין תעודת מלאי, הייתי משתמש בגישה תכנותית (לולאה) ולא גישה SQLית (בניית טבלה של תאריכים ושאילת NOT EXISTS מול הטבלה הזו.- אוקטובר 25, 2021 בשעה 8:27 pm
איזה סוג לולאה? נשמע נורא מצד ביצועים כי תבצע שאילתא בכל איטרציה, לא?[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 25, 2021 בשעה 8:30 pm
נכון שגם מילוי הטבלה ידרוש כזה אבל:1. רוב הסיכויים הם שההכנסה הזאת לטבלה תהיה "זולה" מהבדיקה שלך
2. במצב האידיאלי הטבלה כבר קיימת, עם הנתונים הנדרשים. כך קיווה השואל המקורי.
[ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]- אוקטובר 28, 2021 בשעה 5:06 pm
לכל המעוניין,מצאתי טבלה סטנדרטית שיכולה לעזור בנושא.
קיימת טבלה שנקראת GLDATES שמכילה את כל התאריכים של התקופות הכספיות שנפתחו במערכת.
רועי.
- יש להתחבר למערכת על מנת להגיב.