בניתי פרוצדורה לדו"ח שמציג בחלקו מכירות לפי חודשים עד שנה אחורה.
אך כדי להביא את התאריכים המדייקים לדוגמה של חודשיים אחורה, אני רושמת: BETWEEN BEGINOFMONTH(BEGINOFMONTH
((BEGINOFMONTH(SQL.DATE8)) - 24:00) - 24:00)
AND ENDOFMONTH(BEGINOFMONTH((BEGINOFMONTH(SQL.DATE8)) - 24:00) -
24:00)
ז"א שאם אני רוצה להביא שנה אחורה אז זה יוצא 10 שורות!
איך אני יכולה להביא את התאריכים בצורה יותר יעילה?
תנסי לעבוד בצורה אחרת: תחשבי את התאריך לפני שנה ותתקדמי משם.
היום לפני שנה = SQL.DATE8 – 365*1440
לכן תחילת החודש BEGINOFMONTH (SQL.DATE8 – 365 *1440(
את יכולה לחשב בעצמך מתאריך סוף החודש
בלולאה, היום הראשון לחודש תמיד יהיה היום אחרון של החודש הקודם + 1440 (או 24:00).
האם יותר ברור איך לעבוד?
אגב, בדו"ח שמציג מכירות (או כל דבר) לפי חודש, תנסי לתת לדו"ח עצמו להציג לפי חודש, באמצעות דו"ח טבלאי, כאשר כל טור מציג חודש אחר. אפשר לחשב את החודש בצורה פשוטה – תכפילי את שנת המסמך ב-12 ותוסיפי את מספר החודש.
אבל התאריך לא תמיד יוצא מדויק
לדוג' אם התאריך היום 31.01.17 ואני מורידה 365 * 1440 אז אני מקבלת 01.02.16 ולא 01.01.16.
ולגבי דוח טבלאי, זהו דו"ח שמוציאים אותו באקסל על מנת לעבוד עליו כך שדו"ח טבלאי לא יעזור פה…