דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. אקסס | קבלת עמודות בשאילתה מוצלבת באופן דינאמי

אקסס | קבלת עמודות בשאילתה מוצלבת באופן דינאמי

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 3 כותבים 303 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אורייא מנותק
    אורייא מנותק
    אוריי
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי שאילתה מוצלבת באקסס שמורכבת מתורמים ותרומות באופן הנ"ל

    | קוד תורם | שם תורם וכו' | תשס | תשסא|תשסב| וכו' |
    

    כל עמודה של שנה מסכם לי את התרומות של תורם XXX כלפי אותה השנה.

    כעת אני מכניס את נתוני 3 השנים האחרונות ע"י סינון בכותרת עמודה כך:
    b4318fce-e505-4323-b3f4-3a9bc23131ee-image.png

    אני רוצה לקבל באופן דינאמי את השדות של השנה הנוכחית ושני השנים שקודמות להם.
    יש לי פונקציה שעשיתי שמחזירה את השנה הנוכחית אבל לא הצלחתי להכניס את זה לשאילתה לדוגמא:
    8ac382f0-63b3-4b1d-8841-4ed4e612f416-image.png
    זה הקוד sql של השאילתה המוצלבת שמקבלת נתונים של השדות "תשפב","תשפג","תשפד" בתוך ה ? :
    סליחה על העברית:

    TRANSFORM Sum(תרומות.סכום) AS Sumמתוךסכום
    SELECT [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות] AS הערות, [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
    FROM [רשימת תורמים] LEFT JOIN תרומות ON [רשימת תורמים].קוד_תורם = תרומות.קוד_תורם
    GROUP BY [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות], [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
    ORDER BY [רשימת תורמים].כתובת, [רשימת תורמים].[מס']
    PIVOT תרומות.שנה In ("תשפב","תשפג","תשפד");
    

    ניסיתי לכתוב כך אך אני מקבל שגיאה:

    PIVOT תרומות.שנה In (vbYear(,True));
    

    581e72f1-e227-4739-81d5-4e0fad24b6c8-image.png
    הוספתי אופרטורים אך לא מחזיר כלום

    יצרתי שאילתה שמחזירה את 3 השנים באופן הבא

    SELECT Years.HebrewYear FROM Years WHERE (((Years.[true])=True));
    

    0f1e8934-5702-4780-b24a-09bb3c97bb1b-image.png
    ובSQL

    PIVOT תרומות.שנה In (SELECT Years.HebrewYear FROM Years WHERE (((Years.[true])=True)););
    

    ומקבל
    dc4c8644-e279-43c1-b7d5-6c7903b18da7-image.png
    ובהוספת אופרטורים
    070afb02-119f-47c2-8f9c-04e743a1143d-image.png
    האם יש פתרון???!!!
    אני מבקש שוב אני רוצה תוצאה של דינמאי (כלומר שלא כל שנה אני צריך לעשות מעבר שנה אלא יזהה מה השנה הנוכחית ויעבוד לבד).

    תודה רבה מראש.

    ניתן לפנות אלי גם ב al0548446188@gmail.com
    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

    stack OVERS A 2 תגובות תגובה אחרונה
    0
    • stack OVERS מנותק
      stack OVERS מנותק
      stack OVER
      השיב לאוריי ב נערך לאחרונה על ידי
      #2

      @אוריי כתב באקסס | קבלת עמודות בשאילתה מוצלבת באופן דינאמי:

      TRANSFORM Sum(תרומות.סכום) AS Sumמתוךסכום
      SELECT [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות] AS הערות, [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
      FROM [רשימת תורמים] LEFT JOIN תרומות ON [רשימת תורמים].קוד_תורם = תרומות.קוד_תורם
      GROUP BY [רשימת תורמים].קוד_תורם, [רשימת תורמים].שם_משפחה, [רשימת תורמים].שם_פרטי, [רשימת תורמים].כתובת, [רשימת תורמים].[מס'], [רשימת תורמים].דירה, [רשימת תורמים].[לא לפקוד], [רשימת תורמים].נפקד, [רשימת תורמים]![קוד_קטגוריות] & " " & [רשימת תורמים]![הערות], [רשימת תורמים].טלפון, [רשימת תורמים].טלפון_נייד, [רשימת תורמים].[זמן איסוף], [רשימת תורמים].קטגוריה_כן_לא, [רשימת תורמים].[קוד אזור], [רשימת תורמים].עיר
      ORDER BY [רשימת תורמים].כתובת, [רשימת תורמים].[מס']
      PIVOT תרומות.שנה In ("תשפב","תשפג","תשפד");

      תוסיף פונקציה של שנה נוכחית שנה קודמת ועוד קודם דוגמה
      FUNCTION שנים אחרונות(כמה_שנים)
      A= DLAST ("שנה","רשימת תורמים")
      IF כמה_שנים =1 THEN שנים_אחרונות=A
      IF כמה_שנים =2 THEN שנים_אחרונות= DLAST ("שנה","רשימת תורמים","שנה<>'" & A & "')
      END FUNCTION

      ש.ש.

      תגובה 1 תגובה אחרונה
      0
      • A מנותק
        A מנותק
        avi rz
        השיב לאוריי ב נערך לאחרונה על ידי
        #3

        @אוריי כתב באקסס | קבלת עמודות בשאילתה מוצלבת באופן דינאמי:

        ניסיתי לכתוב כך אך אני מקבל שגיאה:

        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.

        תגובה 1 תגובה אחרונה
        0

        בא תתחבר לדף היומי!
        • התחברות

        • אין לך חשבון עדיין? הרשמה

        • התחברו או הירשמו כדי לחפש.
        • פוסט ראשון
          פוסט אחרון
        0
        • דף הבית
        • קטגוריות
        • פוסטים אחרונים
        • משתמשים
        • חיפוש
        • חוקי הפורום