הוספת שדה מתוך רשימה

פורומים אפיון ופיתוח פריוריטי הוספת שדה מתוך רשימה

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

    אודה לעזרתכם.

מוצגות 13 תגובות – 1 עד 13 (מתוך 13 סה״כ)
  • Replies
    snoof123
    משתתף
    לא כ"כ הבנתי את הבעיה.. אני לא בטוח אם הפיתרון שלך הוא DISTINCT או תנאי של שונה מריק או שאולי בכלל אני לא הבנתי את הצורך.

    אשמח אם תחדד באמצעות איזו דוגמה קטנה

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

    מקווה שיותר מובן. אשמח להסביר שוב במידה ולא.

    [file name=Doc1-20160811.docx size=443571]https://www.priority-forums.com/he/images/fbfiles/files/Doc1-20160811.docx[/file]

    שיר
    משתתף
    צירפתי את התמונה כקובץ וורד
    אלמוני
    אורח
    את רוצה רק פריטים שיש להם במסך הבן "כותרים קשורים" ספר "פרמטר 2"?
    אם כך, את צריכה להציג את השדות
    PART.PARTNAME
    PART.PARTDES
    BOOKS.TITLE

    לחבר בין השדות
    PART.PART = LIBRARY.IV
    LIBRARY.BOOK = BOOKS.BOOK

    ותנאים
    LIBRARY.TYPE = 'p'
    BOOKS.BOOKNUM = 'פרמטר 2'


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

    snoof123
    משתתף
    טוב קודם כל סליחה על קודם, לא ידעתי שאת לא בן.
    אני רואה שהחיבור בין המסכים הוא
    PART.PART = LIBRARY.IV
    AND
    LIBRARY.TYPE = 'p'

    את צריכה למשוך את עמודת TITLE מטבלת BOOKS
    הג'וין הוא:
    LIBRARY.BOOK = BOOKS.BOOK

    וכשאת עושה FROM
    ליד הטבלה LIBRARY את מוסיפה סימן שאלה ?
    from library ?
    (הסימן שאלה בהמשך ישיר, פה זה מעביר אותו לצד השני של הטקסט).

    מקווה שהבנתי, אם לא ננסה שוב :dry:

    שיר
    משתתף
    היי חברים תודה לכולם על העזרה,
    נועם- אני הבאתי דוגאמא. זה לא המסך שעליו אני רוצה לעבוד..
    השאלה שלי היא בכלליות מה אני רושמת בביטוי ואז אשייך את זה למסך שאני בניתי (בפיתוח פרטי ).
    ברגע שאני רושמת כמו שרשמת את הפרמטר כפרמטר 2 הוא לא מציג לי דוח עבור מקטים בהם לא מוגדר פרמטר 2…
    מקווה שההסבר טוב יותר.
    פעם הבאה אדגים על המסך הספציפי שאני רוצה ומעוניינת.
    אלמוני
    אורח
    למה להביא דוגמא לא טובה? אי אפשר לענות על שאלות כאלה באופן כללי כי לפעמים פתרון אחד נדרש ולפעמים פתרון אחר נדרש. למשל – אם ההדפסה מותנית בשדה שמוגדר בטבלת המסך (לדוגמא, להדפיס רק פריטים שהם פריטים מרכזים), אז את צריכה להדפיס את השדה STATUS שנמצא בטבלת PART. הדו"ח יכיל את השדות PARTNAME, PARTDES ו-STATUS, כולם מטבלת PART.

    אך אם השדה מבוסס על טבלה שאינה טבלת הבסיס של המסך – למשל פרמטר 2, אז צריך להוסיף חיבור בין טבלת הבסיס (PART.PART) למה שנקרא "המפתח הזר" של הטבלה השניה – PARTSPEC.PART ואז את יכולה להשתמש בכל השדות הנמצאים בטבלת PARTSPEC.

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

    אני – וגם אחרים – מנסים לעזור. אך כדי לעזור, אנחנו צריכים לקבל את מלוא המידע הנדרש כדי לעזור. האם את מכירה מושגים ב-SQL כמו חיבור, חיתוך, מפתחות זרים וכד'? כי קשה לפתח – אפילו להוסיף שדה לדו"ח – בלי זה.

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

    את כל שאר הדברים כבר ביצעתי, לכן חשבתי שאין זה משנה הדוגמא…הדוגמא ניתנה רק בכדי להסביר את הרעיון והבקשה שלי למה כוונתי.

    מקבלת את הערתך.
    אשמח אם תהיה לך תשובה לנושא הנ"ל.

    אלמוני
    אורח
    אני עדיין לא מבין. אולי את מתכוונת ל-LEFT JOIN, שמוצג בפריוריטי באמצעות סימן שאלה? היתה שאלה בענין הזה לפני כמה ימים.
    snoof123
    משתתף
    זה גם מה שאני הבנתי, צריך לעשות "?" ליד שם הטבלה כשאת מבצעת FROM או בJOINID
    yitzchok
    משתתף
    IL
    אני חושב שאני מבין את הבעיה.

    את מנסה להתמודד עם אחת הבעיות שיש ביישום של פריוריטי של outer join.

    המגיבים הקודמים הזכירו בצדק את הסימן שאלה כפתרון ל-outer join אבל כאן זה לא מקרה קלאסי.

    outer join משמש במצב בו יכול להיות, עבור רשומה בטבלה א', רשומה מתאימה בטבלה ב' – או לא, וכשאין רשומה מתאים שיביא את הרשומה מטבלה א' בכל זאת.

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

    זאת אומרת, עבור כל שורה של כרטיס פריט לראות אם יש שורה בין הפרמטרים שהיא פרמטר 2 להביא אותה, ואם לא להביא מק"ט לבד.

    outer join של SQL מודרני יכול לעשות את זה. outer join של פריוריטי לא מסוגל לעשות את זה.

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

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

    כך עובד outer join של פריוריטי וזה מאוד מעצבן.

    קודם כל מנסים לא להכנס למצבים האלה 🙂

    אני פותר בעיות כאלה באחת מ-2 דרכים שהם די שווים כי יש בסיס משותף:
    1. מכינים עותק של הטבלה של הפרמטרים (טבלת לינק – לפעמים עדיף להשתמש בטבלה אחרת לפי המקרה)
    2א. או ממלאים פרמטר 2 כאשר חסר – ואז עושים join רגיל
    2ב. או משאירים (=שופכים רק) פרמטר 2 ועושים outer join

    וכך מקבלים את התוצאה הרצויה

    אני מקווה שהסברתי את העצמי מספיק טוב

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

    תודה לכל העוזרים !

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