תנאי לעמודה חישובית

פורומים אפיון ופיתוח פריוריטי תנאי לעמודה חישובית

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

    אני רוצה שהעמודה תוצג רק כאשר הערך שלה קטן מ-0

    זה מה שכתבת.

    אם את רוצה לקבל שורה רק כשהחישוב יוצא פחות מ-0 אז זה משהו אחר.

    בעמודה אחרת (נסתרת) קבעי שמקור העמודה זה טבלה DUMMY ועמודה DUMMY וביטוי רשמי שווה, 1, AND (אני לא מצליח לרשום את זה כאן באופן תקין)
    ואחר כך reference לעמודה החישובית שלך דרך סולמית (ראי מסך בן של המשך טקסט לביטוי) ואז קטן מ-0 (גם כן לא רושם כביטוי)

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    sayo
    משתתף
    נכון זה מה שרשמתי.
    ולא הבנתי אותך בהמשך…
    yitzchok
    משתתף
    IL
    מה שאני מבין עד כאן:

    יש לך דו"ח
    יש בדו"ח עמודה חישובית
    העמודה הזאת מוציאה ערך מספרי, יכול להיות גדול מ-0, אפס או קטן מ-0

    מהבקשה המקורית אני הבנתי שכשערך הנ"ל קטן מ-0 את רוצה לראות אותה ובכל מצב אחר את רוצה שהעמודה תהיה ריקה (אבל תקבלי את השורה)

    ואז כתבת

    לא להציג אפסים פשוט יציג לי את השורה ללא אפסים

    ואת זה לא הבנתי
    חשבתי שאולי מה הבנתי קודם לא היה נכון
    אלא את לא רוצה קבל כלל שורה במצב כזה

    באמת הדבר הראשון שלא כ"כ מסתדר לי (כי אני מקפיד על המלל) זה

    אני רוצה שהעמודה תוצג רק כאשר הערך שלה קטן מ-0

    על בסיס זה הנחתי שלא רצית לראות ערכים בעמודה הזאת כשהערך הוא 0 או יותר

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

    תוכלי בבקשה לחזור על הבקשה המקורית שנבין אותה?

    תודה

      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    אלמוני
    אורח
    עמדתי בפני מצב דומה לפני כמה ימים: לפעמים יש ערך חיובי לשדה מחושב, לפעמים ערך שלילי, לפעמים ארך 0 ולפעמים אין ערך. איך ניתן להבדיל מהמצב שהערך 0 לבין המצב בו אין ערך? בדו"ח הפכתי את הערך למחרוזת, כאשר היתה לי דרך לדעת אם אין ערך.

    במקרה שלך, צריך לכתוב משהו כמו

    :X < 0 ? ITOA (:X) : ''

    בתקווה שזה יוצא נכון. אם X קטן מ-0 אזי הצג את ITOA של X, אחרת הצג רווח.

    כמובן לא ניתן לסכם את העמודה הזו!

    sayo
    משתתף
    אבל אני לא רוצה להציג רווח, אני לא רוצה שהשורה הזו תוצג כלל!
    ז"א שאני רוצה שהדו"ח יציג לי אך ורק שורות עם ערכים הקטנים מ-0.
    אלמוני
    אורח
    יש גבול למה שניתן לבצע באמצעות דו"ח בלבד. לעומת זאת, קל לבצע את מה שאת רוצה בתוך פרוצדורה.

    את צריכה להגדיר קורסור שמביא חלק מהנתונים שלך. בגוף לולאת הקורסור, את מבצעת את החישוב הנדרש ושומרת נתונים לטבלה מקשרת (STACK כלשהו) רק אם תוצאת החישוב שלילי.

    הדו"ח מציג השורות השמורות שכמובן מכילות רק ערכים שלילים לחישוב.

    snoof123
    משתתף
    גם ממליץ שתעשי את הסינון כבר בפרוצדורה שרצה לפני הדוח כדי לחסוך זמן ריצה.
    אבל אם את כבר בדוח אז פשוט שימי עמודה אחרת שעושה תנאי על העמודה החישובית שלך (#X < 0)
    הסולמית אמורה להיות ליד הX שמייצג את מספר העמודה החישובית שעל בסיסה את מבצעת את הסינון.
    אלמוני
    אורח
    יצחק הציע דרך להשיג את אותה המטרה באמצעת שורת DUMMY. את מוסיפה לדו"ח שורה עם שדה DUMMY, טבלת DUMMY וביטוי

    = 1 AND #160 > 0

    בהנחה שהביטוי החישובי שלך נמצא בשדה #160

    גישת הפרוצדורה תהיה קצת קלה יותר על שרת ה-SQL

    yitzchok
    משתתף
    IL
    snoof123 כתב:

    גם ממליץ שתעשי את הסינון כבר בפרוצדורה שרצה לפני הדוח כדי לחסוך זמן ריצה.
    אבל אם את כבר בדוח אז פשוט שימי עמודה אחרת שעושה תנאי על העמודה החישובית שלך (#X < 0)
    הסולמית אמורה להיות ליד הX שמייצג את מספר העמודה החישובית שעל בסיסה את מבצעת את הסינון.

    אני מגבה את ההמלצה הזאת.
    1. לא שמענו שיש בכלל פרוצדורה מסביב לדו"ח הזה.
    2. גם אם כן אנחנו לא יודעים מספיק כדי לקבוע שהיה עוזר להפריד/להקדים את הסינון

    (האחרון נאמר גם בתגובה להודעה האחרונה של נעם – רחוק מבטוח שמשנה. חישוב הביטוי לא קורה בשלב הכנת הדו"ח ע"י התוכנה של פריוריטי אלא הביטוי נעשה חלק מה-where של השאילתא ומחושב בשלב קביעת איזו שורות צריכות לחזור לצורך הצגה)

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