הרצת שאילתה בלולאה - VBA אקסס
-
@dovid תיקנתי את זה בעצמי ולמרות זאת זה החזיר את אותה שגיאה.
האם אתה מתכוון לזה:SELECT ערים.שם, שכונה.שם_שכונה, רחובות.שם FROM ערים INNER JOIN (שכונה INNER JOIN רחובות ON שכונה.קוד_שכונה = רחובות.קודשכונה) ON (ערים.קוד = שכונה.קוד_עיר) AND (ערים.קוד = רחובות.קודעיר);
(השמות בפועל קצת שונים ממה שכתבתי בהתחלה, כמובן שתיקנתי אצלי לפני שעדכנתי על השגיאה)
נ.ב. בינתיים הרצתי אצלי את השאילתה שהבנתי שאתה מתכוון אליה, וחוזרת הודעת שגיאה על צירופים חיצוניים רב משמעיים...
(הגדרתי את הצירופים כצירוף שמאלי, שמציג את כל הרשומות מ"תורמים" ורק את הזהות ב"שאילתה", וכן שמרתי את שאילתת המשנה בנפרד, ועדיין...) -
@סקרן-0 לא, התכוונתי למה שכתבתי ואאינני מבין למה לא עובד לך.
כנראה יש עוד הבדל חוץ מהשמות, או שאתה טועה בתרגום.@dovid אוקיי, אני חושב שהבנתי במה טעיתי... תיקנתי, והשאילתה עובדת - הנה:
SELECT תורמים.רחוב, תורמים.עיר, תורמים.שכונה, שאילתה.שם_שכונה FROM תורמים INNER JOIN (SELECT ערים.שם as עיר, שכונה.שם_שכונה, רחובות.שם as רחוב FROM ערים INNER JOIN (שכונה INNER JOIN רחובות ON שכונה.קוד_שכונה = רחובות.קודשכונה) ON ערים.קוד = רחובות.קודעיר ) AS שאילתה ON (תורמים.עיר = שאילתה.עיר) AND (תורמים.רחוב = שאילתה.רחוב);
כשעשיתי LEFT JOIN בין התורמים לשאילתתה המשנה חזרה טבלה ריקה, וכשעשיתי RIGHT JOIN חזרו כל השורות של התורמים וכן כל השורות של השכונות.
זה בסדר? או שיש חשיבות לצירוף השמאלי, ואז זה אומר שיש לי טעות?נ.ב. בתצוגה באתר יש ערבוב עם האנגלית, עכ"פ הכינויים לשדות בשאילתת המשנה הם בסדר...
-
@dovid אוקיי, אני חושב שהבנתי במה טעיתי... תיקנתי, והשאילתה עובדת - הנה:
SELECT תורמים.רחוב, תורמים.עיר, תורמים.שכונה, שאילתה.שם_שכונה FROM תורמים INNER JOIN (SELECT ערים.שם as עיר, שכונה.שם_שכונה, רחובות.שם as רחוב FROM ערים INNER JOIN (שכונה INNER JOIN רחובות ON שכונה.קוד_שכונה = רחובות.קודשכונה) ON ערים.קוד = רחובות.קודעיר ) AS שאילתה ON (תורמים.עיר = שאילתה.עיר) AND (תורמים.רחוב = שאילתה.רחוב);
כשעשיתי LEFT JOIN בין התורמים לשאילתתה המשנה חזרה טבלה ריקה, וכשעשיתי RIGHT JOIN חזרו כל השורות של התורמים וכן כל השורות של השכונות.
זה בסדר? או שיש חשיבות לצירוף השמאלי, ואז זה אומר שיש לי טעות?נ.ב. בתצוגה באתר יש ערבוב עם האנגלית, עכ"פ הכינויים לשדות בשאילתת המשנה הם בסדר...
-
@סקרן-0 לא הבנתי. השאילתה שהבאת כעת עובדת לגמרי? אז מה כתבת שבLEFT JOIN חזר ריק (לא ייתכן שINNER JOIN יחזיר יותר מLEFT JOIN!).
-
@dovid טעות שלי... פשוט חזרו הרבה מאד שורות ריקות בהתחלה, וזה היה נראה לי ריק... זה עובד מצוין! תודה (וסליחה על התגובה המוטעית...)
@סקרן-0 אז הצעד הבא זה שאילתת עדכון:
UPDATE תורמים INNER JOIN ( SELECT ערים.שם as עיר, שכונה.שם_שכונה, רחובות.שם as רחוב FROM ערים INNER JOIN (שכונה INNER JOIN רחובות ON שכונה.קוד_שכונה = רחובות.קודשכונה) ON ערים.קוד = רחובות.קודעיר ) AS שאילתה ON (תורמים.עיר = שאילתה.עיר) AND (תורמים.רחוב = שאילתה.רחוב) SET תורמים.שכונה = שאילתה.שם_שכונה WHERE תורמים.שכונה IS NULL OR תורמים.שכונה = ''
-
@סקרן-0 אז הצעד הבא זה שאילתת עדכון:
UPDATE תורמים INNER JOIN ( SELECT ערים.שם as עיר, שכונה.שם_שכונה, רחובות.שם as רחוב FROM ערים INNER JOIN (שכונה INNER JOIN רחובות ON שכונה.קוד_שכונה = רחובות.קודשכונה) ON ערים.קוד = רחובות.קודעיר ) AS שאילתה ON (תורמים.עיר = שאילתה.עיר) AND (תורמים.רחוב = שאילתה.רחוב) SET תורמים.שכונה = שאילתה.שם_שכונה WHERE תורמים.שכונה IS NULL OR תורמים.שכונה = ''