@אוריי כתב באקסס | קבלת עמודות בשאילתה מוצלבת באופן דינאמי:
ניסיתי לכתוב כך אך אני מקבל שגיאה:
PIVOT תרומות.שנה In (vbYear(,True));
תנאי מוסיפים בשאילתה עצמה, לדוגמא:
TRANSFORM Sum(תרומות.סכום) AS Sumמתוךסכום
SELECT [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות] AS הערות, [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
FROM [רשימת תורמים] LEFT JOIN תרומות ON [רשימת תורמים].קוד_תורם = תרומות.קוד_תורם
WHERE (( תרומות.שנה) In (SELECT Years.HebrewYear FROM Years WHERE (((Years.[true])=True))))
GROUP BY [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות], [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
ORDER BY [רשימת תורמים].כתובת, [רשימת תורמים].[מס']
PIVOT תרומות.שנה;
👈 עוד נקודה חשובה: לא שמים ; אלא בסוף השאילתה, ולא בשאילתות משנה.
👈 נ.ב. ברשומות רבות שאילתה כזו יכולה לקחת זמן בטעינה בגלל שבעצם היא יוצרת שאילתה נוספת בכל שורה, שקול להכניס גם את טבלת השנים ב left join.