יצירת שאילתה המבוססת על טבלאות מרובות

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

איזו פעולה ברצונך לבצע?

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

חיבור הנתונים בשתי טבלאות באמצעות קשרי הגומלין שלהן עם טבלה שלישית

הצגת כל הרשומות משתי טבלאות דומות

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

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

שימוש באשף השאילתות כדי לבנות שאילתה מטבלה ראשית וטבלה קשורה

  1. ודא שלטבלאות יש קשר גומלין מוגדר בחלון קשרי גומלין.

    כיצד?

    1. בכרטיסיה כלי מסד נתונים, בקבוצה הצגה/הסתרה, לחץ על קשרי גומלין.

    2. בכרטיסיה עיצוב, בקבוצה קשרי גומלין, לחץ על כל קשרי הגומלין.

    3. זהה את הטבלאות שאמורות לכלול קשר גומלין מוגדר.

      • אם הטבלאות גלויות בחלון 'קשרי גומלין', בדוק שקשר גומלין הוגדר כבר.

        קשר גומלין מופיע כקו המחבר בין שתי טבלאות בשדה משותף. באפשרותך ללחוץ פעמיים על קו קשר גומלין כדי לראות אילו שדות בטבלאות מחוברים באמצעות קשר הגומלין.

      • אם הטבלאות אינן גלויות בחלון 'קשרי גומלין', עליך להוסיף אותן.

        בכרטיסיה עיצוב, בקבוצה הצגה/הסתרה, לחץ על שמות טבלאות.

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

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

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

      תיבת הדו-שיח עריכת קשרי גומלין מופיעה.

    5. לחץ על צור כדי ליצור את קשר הגומלין.

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

    6. סגור את החלון 'קשרי גומלין'.

  2. בכרטיסיה יצירה, בקבוצה שאילתות, לחץ על אשף השאילתות. שים לב: אם אתה משתמש ב- Access 2007, בכרטיסיה יצירה, בקבוצה אחר, לחץ על אשף השאילתות.

  3. בתיבת הדו-שיח שאילתה חדשה, לחץ על אשף שאילתה פשוטה ולאחר מכן לחץ על אישור.

  4. בתיבה המשולבת טבלאות/שאילתות, לחץ על הטבלה המכילה את המידע הבסיסי שברצונך לכלול בשאילתה.

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

  6. בתיבה המשולבת טבלאות/שאילתות, לחץ על הטבלה המכילה את הנתונים הקשורים שבהם ברצונך להשתמש כדי לשפר את תוצאות השאילתה.

  7. הוסף את השדות שברצונך להשתמש בהם כדי לשפר את תוצאות השאילתה לרשימה שדות נבחרים ולאחר מכן לחץ הבא.

  8. תחת האם ברצונך שאילתת פירוט או סיכום?, לחץ על פירוט או סיכום.

    אם אינך מעוניין שהשאילתה תבצע פונקציית צבירה כלשהי (Sum‏, Avg‏, Min‏, Max‏, Count‏, StDev או Var), בחר שאילתת פירוט. אם ברצונך שהשאילתה תבצע פונקציית צבירה, בחר שאילתת סיכום. לאחר שתבצע את הבחירה, לחץ על הבא.

  9. לחץ על סיום כדי להציג את התוצאות.

דוגמה המשתמשת במסד הנתונים לדוגמה של Northwind

בדוגמה הבאה, תשתמש באשף השאילתות כדי לבנות שאילתה המציגה רשימת הזמנות, את דמי המשלוח עבור כל הזמנה ואת שמו של העובד שטיפל בכל הזמנה.

הערה: דוגמה זו כרוכה בשינוי מסד הנתונים לדוגמה של Northwind. מומלץ ליצור עותק גיבוי של מסד הנתונים לדוגמה של Northwind ולאחר מכן לפעול בהתאם לדוגמה זו תוך שימוש בעותק גיבוי זה.

שימוש באשף השאילתות לבניית השאילתה

  1. פתח את מסד הנתונים לדוגמה של Northwind. סגור את טופס הכניסה.

  2. בכרטיסיה יצירה, בקבוצה שאילתות, לחץ על אשף השאילתות. שים לב: אם אתה משתמש ב- Access 2007, בכרטיסיה יצירה, בקבוצה אחר, לחץ על אשף השאילתות.

  3. בתיבת הדו-שיח שאילתה חדשה, לחץ על אשף שאילתה פשוטה ולאחר מכן לחץ על אישור.

  4. בתיבה המשולבת טבלאות/שאילתות, לחץ על טבלה: Orders.

  5. ברשימה שדות זמינים, לחץ פעמיים על OrderID כדי להעביר שדה זה לרשימה שדות נבחרים. לחץ פעמיים על Shipping Fee כדי להעביר שדה זה לרשימה שדות נבחרים.

  6. בתיבה המשולבת טבלאות/שאילתות, לחץ על טבלה: Employees.

  7. ברשימה שדות זמינים, לחץ פעמיים על FirstName כדי להעביר שדה זה לרשימה שדות נבחרים. לחץ פעמיים על LastName כדי להעביר שדה זה לרשימה שדות נבחרים. לחץ על הבא.

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

  9. לחץ על סיום כדי להציג את התוצאות.

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

לראש הדף

חיבור הנתונים בשתי טבלאות באמצעות קשרי הגומלין שלהן עם טבלה שלישית

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

בניית שאילתת בחירה באמצעות טבלאות עם קשר גומלין של רבים לרבים

  1. בכרטיסיה יצירה, בקבוצה שאילתות, לחץ על עיצוב שאילתה. שים לב, אם אתה משתמש ב- Access 2007, בכרטיסיה יצירה, בקבוצה אחר, לחץ על עיצוב שאילתה.

    תיבת הדו-שיח הצגת טבלה נפתחת.

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

    שלוש הטבלאות מופיעות בסביבת העבודה של עיצוב השאילתה, כשהן מחוברות בשדות המתאימים.

  3. לחץ פעמיים על כל אחד מהשדות שבהם ברצונך להשתמש בתוצאות השאילתה. לאחר מכן כל שדה יופיע ברשת עיצוב השאילתה.

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

  5. כדי למיין את התוצאות בהתבסס על הערכים בשדה, ברשת עיצוב השאילתה, לחץ על סדר עולה או סדר יורד (בהתאם לאופן שבו ברצונך למיין את הרשומות) בשורה מיין עבור שדה זה.

  6. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

    Access מציג את פלט השאילתה בתצוגת גליון נתונים.

דוגמה המשתמשת במסד הנתונים לדוגמה של Northwind

הערה: דוגמה זו כרוכה בשינוי מסד הנתונים לדוגמה של Northwind. מומלץ ליצור עותק גיבוי של מסד הנתונים לדוגמה של Northwind ולאחר מכן לפעול בהתאם לדוגמה זו תוך שימוש בעותק הגיבוי.

נניח שיש לך הזדמנות חדשה: ספק בריו דה ז'ניירו גילה את אתר האינטרנט שלך, וייתכן שהוא מעוניין לעשות איתך עסקים. עם זאת, הוא פועל רק בריו ובסאו פאולו הסמוכה. הוא מספק את כל קטגוריות מוצרי המזון שבהן אתה סוחר. מדובר בעסק גדול למדי, והספק רוצה לוודא שפוטנציאל המכירות יהיה גדול מספיק כדי להפוך את הקשר איתך לכדאי: מכירות בסכום של 20,000.00 ריאל ברזילאי לשנה לפחות (כ- 9,300.00 דולר). האם תוכל לספק לו את נתח השוק שהוא דורש?

הנתונים הנחוצים לך כדי לענות על שאלה זו נמצאים בשני מקומות: טבלת לקוחות (Customers) וטבלת פרטי הזמנה (Order Details). טבלאות אלה מקושרות זו לזו באמצעות טבלת הזמנות (Orders). כבר הוגדרו קשרי גומלין בין הטבלאות. בטבלה Orders, לכל הזמנה יכול להיות לקוח אחד בלבד, הקשור לטבלה Customers בשדה CustomerID. כל רשומה בטבלה Order Detail קשורה להזמנה אחת בלבד בטבלה Orders, בשדה OrderID. לכן, ללקוח נתון יכולות להיות הזמנות רבות, שכל אחת מהן כוללת פרטי הזמנה רבים.

בדוגמה זו, תבנה שאילתת הצלבות המציגה את סך המכירות בכל שנה, בערים ריו דה ז'ניירו וסאו פאולו.

בניית השאילתה בתצוגת עיצוב

  1. פתח את מסד הנתונים של Northwind. סגור את טופס הכניסה.

  2. בכרטיסיה יצירה, בקבוצה שאילתות, לחץ על עיצוב שאילתה. שים לב, אם אתה משתמש ב- Access 2007, בכרטיסיה יצירה, בקבוצה אחר, לחץ על עיצוב שאילתה.

    תיבת הדו-שיח הצגת טבלה נפתחת.

  3. בתיבת הדו-שיח הצגת טבלה, לחץ פעמיים על Customers‏, Orders ו- Order Details ולאחר מכן לחץ על סגור.

    שלוש הטבלאות מופיעות בסביבת העבודה של עיצוב השאילתה.

  4. בטבלה Customers, לחץ פעמיים על השדה City כדי להוסיף שדה זה לרשת עיצוב השאילתה.

  5. ברשת עיצוב השאילתה, בעמודה City, בשורה קריטריונים, הקלד In ("Rio de Janeiro","São Paulo")‎. פעולה זו גורמת לכך שרק רשומות שבהן הלקוח נמצא באחת משתי ערים אלה ייכללו בשאילתה.

  6. בטבלה Order Details, לחץ פעמיים על השדות ShippedDate ו- UnitPrice.

    השדות מתווספים לרשת עיצוב השאילתה.

  7. בעמודה ShippedDate ברשת עיצוב השאילתה, בחר את השורה שדה. החלף את [ShippedDate] ב- Year: Format([ShippedDate],"yyyy")‎. פעולה זו יוצרת כינוי שדה, Year, המאפשר לך להשתמש רק בחלק השנה של הערך שבשדה ShippedDate.

  8. בעמודה UnitPrice ברשת עיצוב השאילתה, בחר את השורה שדה. החלף את [UnitPrice] ב- Sales: [Order Details].[UnitPrice]*[Quantity]-[Order Details].[UnitPrice]*[Quantity]*[Discount]‎. פעולה זו יוצרת כינוי שדה, Sales, המחשב את המכירות עבור כל רשומה.

  9. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הצלבות.

    שתי שורות חדשות, סך הכל וטבלת הצלבות, מופיעות ברשת עיצוב השאילתה.

  10. בעמודה City ברשת עיצוב השאילתה, לחץ על השורה טבלת הצלבות ולאחר מכן לחץ על כותרת שורה.

    פעולה זו גורמת לערכי הערים להופיע ככותרות שורה (כלומר, השאילתה מחזירה שורה אחת עבור כל עיר).

  11. בעמודה Year, לחץ על השורה טבלת הצלבות ולאחר מכן לחץ על כותרת עמודה.

    פעולה זו גורמת לערכי השנים להופיע ככותרות עמודה (כלומר, השאילתה מחזירה עמודה אחת עבור כל שנה).

  12. בעמודה Sales, לחץ על השורה טבלת הצלבות ולאחר מכן לחץ על ערך.

    פעולה זו גורמת לערכי מכירות להופיע בהצטלבות של שורות ועמודה (כלומר, השאילתה מחזירה ערך מכירות אחד עבור כל שילוב של עיר ושנה).

  13. בעמודה Sales, לחץ על השורה סך הכל ולאחר מכן לחץ על Sum.

    פעולה זו גורמת לשאילתה לסכם את הערכים בעמודה זו.

    באפשרותך להשאיר את ערך ברירת המחדל, קיבוץ לפי, בשורה סך הכל עבור שתי העמודות האחרות, מכיוון שברצונך לראות כל ערך עבור עמודות אלה, לא ערכי צבירה.

  14. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

כעת יש לך שאילתה שמחזירה את סך המכירות לפי שנה בריו דה ז'ניירו ובסאו פאולו.

לראש הדף

הצגת כל הרשומות משתי טבלאות דומות

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

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

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

כדי להציג את כל הרשומות משתי טבלאות בעלות מבנה זהה, השתמש בשאילתת איחוד.

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

יצירת שאילתת איחוד באמצעות שתי טבלאות

  1. בכרטיסיה יצירה, בקבוצה שאילתות, לחץ על עיצוב שאילתה. שים לב, אם אתה משתמש ב- Access 2007, בכרטיסיה יצירה, בקבוצה אחר, לחץ על עיצוב שאילתה.

    רשת עיצוב שאילתה חדשה נפתחת, ותיבת הדו-שיח הצגת טבלה מופיעה.

  2. בתיבת הדו-שיח הצגת טבלה, לחץ על סגור.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על איחוד.

    השאילתה עוברת מתצוגת עיצוב לתצוגת SQL. בשלב זה, כרטיסיית האובייקטים של תצוגת SQL ריקה.

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

  5. הקלד FROM ולאחר מכן את השם של הטבלה הראשונה מבין הטבלאות שברצונך לכלול בשאילתה. הקש ENTER.

  6. אם ברצונך לציין קריטריון עבור שדה מהטבלה הראשונה, הקלד WHERE, ולאחר מכן את שם השדה, אופרטור השוואה (בדרך כלל, סימן שוויון (=)) והקריטריון. באפשרותך להוסיף קריטריונים נוספים לסוף משפט ה- WHERE באמצעות מילת המפתח AND ותחביר זהה לזה שהיה בשימוש בקריטריון הראשון; לדוגמה, WHERE [ClassLevel]="100" AND [CreditHours]>2. כשתסיים לציין קריטריונים, הקש ENTER.

  7. הקלד UNION ולאחר מכן הקש ENTER.

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

  9. הקלד FROM ולאחר מכן את השם של הטבלה השניה שברצונך לכלול בשאילתה. הקש ENTER.

  10. אם אתה מעוניין בכך, הוסף משפט WHERE כמתואר בשלב 6 בהליך זה.

  11. הקלד נקודה-פסיק (;) כדי לציין את סוף השאילתה.

  12. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

    התוצאות מופיעות בתצוגת גליון נתונים.

לראש הדף

למידע נוסף

צירוף טבלאות ושאילתות

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×