join בסיסי של שלוש טבלאות

פורומים אפיון ופיתוח פריוריטי join בסיסי של שלוש טבלאות

  • Post
    אלמוני
    אורח
    שלום,
    אני מכירה SQL אבל מתקשה להבין מהSDK מה המבנה של JOIN בין שלוש טבלאות ???
    לדוגמא בין טבלת TRANSORDER PART INVOICEITEMS כאשר המפתח הוא PARTID
    תודה
מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • Replies
    yitzchok
    משתתף
    IL
    (לא נראה לי שיש עמודה בשם PARTID אלא PART.)
    המצב המוזכר רלוונטי (כמדומני) לחשבונית מס או חשבונית מס/קבלה.
    שם, בגלל שמדובר בתנועת מלאי ופירוט חשבונית בו-זמנית, יש שורות מקבילות בשני הטבלאות – ניתן לקרוא לזה כפילות אבל זה לא בדיוק. המערכת אמורה לדאוג להתאמה בין השורות של INVOICEITEMS לבין אלה של TRANSORDER.
    בגדול אפשר לבצע JOIN ל-PARTS או מ-INVOICEITEMS או מ-TRANSORDER. אפשר לעשות JOIN משניהם אבל להיות תקין צריכים 2 מופעים של PARTS בעזרת שם כינוי (אחרת אם היתה אי-התאמה לא-צפויה לא היית מקבלת בכלל תוצאה לזוג שורות אלה). בעקרון בשורת TRANSORDER מסויימת ובשורת INVOICEITEMS המקבילה לה הערך של PART אמור להיות זהה, כך ש-JOIN אחד אמור להספיק. אני מציע שתקחי PART מהטבלה הנכונה יותר למטרה שלך (לוגיסטית או לוגיסטית-פיננסית).
      [ בבקשה לא לשלוח הודעות פרטיות במערכת - אני לא קורא אותן ]
    אלמוני
    אורח
    היי קודם כל תודה.
    כן אני יודעת שהעמודה היא PART
    השאלה היא שאלה כללית וסתם נתתי דוגמא.
    הבעיה שלי היא ברמת הסינטקס שכן זה לא בדיוק כמו SQL
    האם תוכל לכתוב פה סינטקס פשוט של איחוד שלוש טבלאות? ואז אני אוכל לראות את המבנה
    תודה רבה,
    שירן
    Niv Dekel
    משתתף
    SELECT INVOICE.IVNUM, TRANSORDER.LINE, PART.PARTNAME /*<- שדות להצגה*/
    FROM INVOICESITEMS, TRANSORDER, PART /* <-כל הטבלאות הנחוצות */
    WHERE INVOICESITEMS.TYPE IN ('P','Y') /*<- תנאים לשליפה + קשר בין טבלאות */
    AND INVOICEITEMS.TRANS = TRANSORDER.TRANS
    AND PART.PART = TRANSORDER.PART ;
    התנאים לא חייבים להיות בסדר הזה.
    לא כ"כ משנה איזה טבלה באה מאיזה צד של ה =
מוצגות 3 תגובות – 1 עד 3 (מתוך 3 סה״כ)
  • יש להתחבר למערכת על מנת להגיב.