תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    עזרה בחישוב תשלומים בשאילתה באקסס

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

      יש לי באקסס 2 טבלאות
      1 לקוחות.
      2 תשלומים שהלקוחות שילמו מקושר לגליון 1

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

      A תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • A
        avi rz @איש ימיני נערך לאחרונה על ידי

        @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

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

        בהנחה שעל כל תשלום יש איזה מזהה של הלקוח,
        אז תעשה שאילתת סיכום
        המזהה של הלקוח = קיבוץ לפי
        ואת הלקוח(לא משנה איזה שדה). ותעשה Count
        ואת הסכום ותעשה Sum.
        תשמור את השאילתא,
        ואז תעשה שאילתה משניהם (הלקוחות והשאילתה החדשה).

        איש ימיני תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • איש ימיני
          איש ימיני @avi rz נערך לאחרונה על ידי

          @avi-rz
          יש מזהה.
          וניסיתי כבר לבד ולא הסתדרתי.

          A תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • A
            avi rz @איש ימיני נערך לאחרונה על ידי

            @איש-ימיני
            תעלה את זה ננסה לעזור.
            או שתביא דוגמא.

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • A
              avi rz נערך לאחרונה על ידי

              @איש-ימיני

              דוגמא.accdb

              איש ימיני 2 תגובות תגובה אחרונה תגובה ציטוט 1
              • איש ימיני
                איש ימיני @avi rz נערך לאחרונה על ידי

                @avi-rz
                תודה רבה

                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • איש ימיני
                  איש ימיני @avi rz נערך לאחרונה על ידי

                  @avi-rz זה חייב להיות דרך 2 שאילתות?

                  A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • A
                    avi rz @איש ימיני נערך לאחרונה על ידי

                    @איש-ימיני
                    לא,
                    אבל נראה לי שכך יותר טוב לעשות.
                    מצו' קובץ בשאילתה אחת.
                    דוגמא.accdb

                    איש ימיני 2 תגובות תגובה אחרונה תגובה ציטוט 2
                    • איש ימיני
                      איש ימיני @avi rz נערך לאחרונה על ידי

                      @avi-rz
                      תודה רבה!

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • איש ימיני
                        איש ימיני @avi rz נערך לאחרונה על ידי

                        @avi-rz
                        יש לי עוד שאלה.
                        במקור יש לי 2 טבלאות של תשלומים.
                        ניסיתי להוסיף שאילתה שיצרף את הכל, ויציג את כל הלקוחות, ואצל כל לקוח את התשלומים של שני הטבלאות.
                        אך בפועל מוצג בשאילתה רק הלקוחות שמופיעים בשני טבלאות התשלומים, לקוח שמופיע רק בטבלת תשלומים אחת או שלא מופיע כלל בטבלאות התשלומים אינו מוצג בשאילתה.
                        השאלה איך אני עושה שיופיעו כל הלקוחות בשאילתה, ואצל כל אחד יוצג התשלומים שלו, אם יש לו תשלומים.
                        תודה רבה
                        דוגמא 2.accdb

                        OdedDvir מלא 2 תגובות תגובה אחרונה תגובה ציטוט 0
                        • OdedDvir
                          OdedDvir @איש ימיני נערך לאחרונה על ידי

                          @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

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

                          זה SQL בסיסי:

                          אתה צריך להשתמש בשאילתא עם Outer-Join (זה צירוף לכיוון אחד, ונקרא גם באקסס Left-Join או Right-Join). הצירוף הזה מציג את כל הרשומות מטבלה אחת ורק את הרשומות המתאימות מטבלה אחרת.

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

                          איש ימיני 2 תגובות תגובה אחרונה תגובה ציטוט 3
                          • מלא
                            מלא @איש ימיני נערך לאחרונה על ידי

                            @איש-ימיני תעשה union all - שאילתת איחוד
                            על 2 טבלאות התשלומים
                            ואז תסכם את השאילתה המאוחדת.

                            OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 2
                            • OdedDvir
                              OdedDvir @מלא נערך לאחרונה על ידי

                              @מלא אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                              שאילתת איחוד

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

                              A תגובה 1 תגובה אחרונה תגובה ציטוט 2
                              • איש ימיני
                                איש ימיני @OdedDvir נערך לאחרונה על ידי

                                @odeddvir אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

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

                                זה SQL בסיסי:

                                אתה צריך להשתמש בשאילתא עם Outer-Join (זה צירוף לכיוון אחד, ונקרא גם באקסס Left-Join או Right-Join). הצירוף הזה מציג את כל הרשומות מטבלה אחת ורק את הרשומות המתאימות מטבלה אחרת.

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

                                תודה רבה.
                                עזר לי מאוד.

                                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • A
                                  avi rz @OdedDvir נערך לאחרונה על ידי

                                  @odeddvir אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

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

                                  אפשר להוסיף לשאילתת איחוד, גם את הלקוחות, (כמובן להוסיף עוד עמודות ריקות במקום העמודות של התשלומים ובתשלומים להוסיף במקום הלקוח, וכו'.)
                                  ואז לעשות סיכום לפי לקוח, sum בתשלום1 ו sum בתשלום2

                                  A OdedDvir 2 תגובות תגובה אחרונה תגובה ציטוט 1
                                  • A
                                    avi rz @avi rz נערך לאחרונה על ידי

                                    @איש-ימיני @OdedDvir @מלא

                                    @avi-rz אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                    אפשר להוסיף לשאילתת איחוד, גם את הלקוחות, (כמובן להוסיף עוד עמודות ריקות במקום העמודות של התשלומים ובתשלומים להוסיף במקום הלקוח, וכו'.)
                                    ואז לעשות סיכום לפי לקוח, sum בתשלום1 ו sum בתשלום2

                                    מצו' דוגמא.
                                    דוגמא 3.accdb
                                    רק צריך תשומת לב למהירות התגובה, אם באמת מדובר בהמון שורות.

                                    איש ימיני תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                    • איש ימיני
                                      איש ימיני @avi rz נערך לאחרונה על ידי

                                      @avi-rz
                                      תודה רבה.
                                      עובד טוב מאוד

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • מלא
                                        מלא נערך לאחרונה על ידי

                                        @avi-rz
                                        כדברי @OdedDvir אין צורך בשאילתת איחוד,
                                        הוא הרי רוצה להציג את כל הלקוחות + התשלומים
                                        שלצורך כך, הוא יכול להגדיר left join מהלקוחות לשני טבלאות התשלומים בשאילתה אחת.

                                        השאלה מה יגיב יותר מהיר,
                                        2 left joinים או שאילתת איחוד.

                                        A תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                        • A
                                          avi rz @מלא נערך לאחרונה על ידי

                                          @מלא אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                          @avi-rz
                                          כדברי @OdedDvir אין צורך בשאילתת איחוד,
                                          הוא הרי רוצה להציג את כל הלקוחות + התשלומים
                                          שלצורך כך, הוא יכול להגדיר left join מהלקוחות לשני טבלאות התשלומים בשאילתה אחת.

                                          השאלה מה יגיב יותר מהיר,
                                          2 left joinים או שאילתת איחוד.

                                          צודק!
                                          בעיקר התמקדתי ב

                                          @odeddvir אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                          שאילתת איחוד לא תפתור את הבעיה,

                                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                          • OdedDvir
                                            OdedDvir @avi rz נערך לאחרונה על ידי OdedDvir

                                            @avi-rz אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                            אפשר להוסיף לשאילתת איחוד, גם את הלקוחות, (כמובן להוסיף עוד עמודות ריקות במקום העמודות של התשלומים ובתשלומים להוסיף במקום הלקוח, וכו'.)

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

                                            תגובה 1 תגובה אחרונה תגובה ציטוט 3
                                            • איש ימיני
                                              איש ימיני @OdedDvir נערך לאחרונה על ידי

                                              @odeddvir אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                              @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

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

                                              זה SQL בסיסי:

                                              אתה צריך להשתמש בשאילתא עם Outer-Join (זה צירוף לכיוון אחד, ונקרא גם באקסס Left-Join או Right-Join). הצירוף הזה מציג את כל הרשומות מטבלה אחת ורק את הרשומות המתאימות מטבלה אחרת.

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

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

                                              OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                              • OdedDvir
                                                OdedDvir @איש ימיני נערך לאחרונה על ידי OdedDvir

                                                @איש-ימיני שאילתא עם צירוף חד צדדי יכולה להיות בת-עריכה, אבל זה תלוי בכמה גורמים.
                                                באופן כללי היא צריכה להיות פשוטה ביותר, דהיינו מבוססת רק על טבלאות או על שאילתות פשוטות. שים לב שיש שדה מפתח בטבלאות.
                                                לא עיינתי בקבצים שלך לעיל, אבל אם תפרט את מבנה הטבלאות והשאילתא אנסה לעזור כאן.
                                                להרחבה ראה:
                                                https://support.microsoft.com/en-us/office/dealing-with-read-only-queries-bb17ee48-8d52-49db-8b8c-71225aa12ceb
                                                וכן:
                                                http://allenbrowne.com/ser-61.html

                                                איש ימיני תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                • איש ימיני
                                                  איש ימיני @OdedDvir נערך לאחרונה על ידי

                                                  @odeddvir
                                                  מצורף קובץ דוגמה.
                                                  אני רוצה שיוכלו לשנות נתונים בשאילתה "סיכום כללי".
                                                  דוגמא 2.accdb

                                                  OdedDvir תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                  • OdedDvir
                                                    OdedDvir @איש ימיני נערך לאחרונה על ידי OdedDvir

                                                    @איש-ימיני כיון שהשאילתא הנ"ל מבוססת בחלקה על שאילתת קיבוץ (=סיכום תשלומים 1 או 2) התוצאה היא שאילתא לקריאה בלבד. לצערי אין דרך לבטל זאת באקסס.
                                                    הדרך להתמודד עם זה הוא על ידי טופס מפוצל, בו טופס האב מכיל את הטבלה עם השדות לעריכה (=לקוחות), ואילו הטופס-משנה מכיל את שאילתות הסיכום, ולקשר ביניהם על ידי שדה המפתח (=קוד לקוח). כך תהנה משני העולמות.

                                                    איש ימיני תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                    • איש ימיני
                                                      איש ימיני @OdedDvir נערך לאחרונה על ידי

                                                      @odeddvir
                                                      זה יכול להיות בגליון נתונים אחד בטופס?

                                                      מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                      • מלא
                                                        מלא @איש ימיני נערך לאחרונה על ידי מלא

                                                        @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                                        זה יכול להיות בגליון נתונים אחד בטופס?

                                                        לא לעריכה.

                                                        אם תרצה תוכל לעשות שאילתה כזאת

                                                        SELECT לקוחות.*, DSum("סכום","[תשלומים 1]","[קוד_לקוח]= " & [קוד_לקוח]) AS סיכום1, DSum("סכום","[תשלומים 2]","[קוד_לקוח]= " & [קוד_לקוח]) AS סיכום2, *
                                                        FROM לקוחות;
                                                        

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

                                                        נ.ב. אם יהיו לך הרבה נתונים זה לא מומלץ כי זה מאוד מכביד על המערכת.

                                                        איש ימיני תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                        • איש ימיני
                                                          איש ימיני @מלא נערך לאחרונה על ידי איש ימיני

                                                          @מלא אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                                          @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                                          זה יכול להיות בגליון נתונים אחד בטופס?

                                                          לא לעריכה.

                                                          אם תרצה תוכל לעשות שאילתה כזאת

                                                          SELECT לקוחות.*, DSum("סכום","[תשלומים 1]","[קוד_לקוח]= " & [קוד_לקוח]) AS סיכום1, DSum("סכום","[תשלומים 2]","[קוד_לקוח]= " & [קוד_לקוח]) AS סיכום2, *
                                                          FROM לקוחות;
                                                          

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

                                                          נ.ב. אם יהיו לך הרבה נתונים זה לא מומלץ כי זה מאוד מכביד על המערכת.

                                                          יש אפשרות בדרך זו גם לספור את השורות?
                                                          שיציג כמה תשלומים יש ללקוח זה?

                                                          עריכה:
                                                          הסתדרתי.
                                                          כתבתי כך:

                                                           DSum("[סכום]*0+1","[תשלומים 2]","[קוד_לקוח]= " & [קוד_לקוח]) AS סיכום3,
                                                          
                                                          מלא תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                          • מלא
                                                            מלא @איש ימיני נערך לאחרונה על ידי

                                                            @איש-ימיני אמר בעזרה בחישוב תשלומים בשאילתה באקסס:

                                                            יש אפשרות בדרך זו גם לספור את השורות?
                                                            שיציג כמה תשלומים יש ללקוח זה?

                                                            במקום DSum תכתוב DCount

                                                            תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                            • 1 / 1
                                                            • פוסט ראשון
                                                              פוסט אחרון
                                                            בא תתחבר לדף היומי!