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

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

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

מניפולציות על שדות מחושבים ב - SQL

מתוזמן נעוץ נעול הועבר תכנות
15 פוסטים 4 כותבים 364 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מחובר
    dovidD מחובר
    dovid ניהול
    השיב לyossiz ב נערך לאחרונה על ידי
    #6

    @yossiz סליחה על החשד..

    @yossiz אמר במניפולציות על שדות מחושבים ב - SQL:

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

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

    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

    בכל נושא אפשר ליצור קשר dovid@tchumim.com

    תגובה 1 תגובה אחרונה
    1
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      השיב לmekev ב נערך לאחרונה על ידי
      #7

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

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      חגיח תגובה 1 תגובה אחרונה
      2
      • חגיח מנותק
        חגיח מנותק
        חגי
        השיב לdovid ב נערך לאחרונה על ידי
        #8

        @dovid אמר במניפולציות על שדות מחושבים ב - SQL:

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

        https://github.com/prql/prql

        dovidD תגובה 1 תגובה אחרונה
        5
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לחגי ב נערך לאחרונה על ידי
          #9

          @חגי קישור מדהים!
          אבל בקשר לבעיה הזאת שים לב שבאקסס + MYSQL ועוד, אין אותה (את הבעיות האחרות יש).

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          1
          • dovidD מחובר
            dovidD מחובר
            dovid ניהול
            השיב לmekev ב נערך לאחרונה על ידי
            #10

            @mekev הבטחת לעדכן.
            מסקרן אותי בעיקר מה עשית.

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            M תגובה 1 תגובה אחרונה
            0
            • M מנותק
              M מנותק
              mekev
              השיב לdovid ב נערך לאחרונה על ידי mekev
              #11

              @dovid

              השתמשתי ב Common Table Expressions (CTE)

              דוגמא:

              with cte as (
              select id as 'מזהה' ,price as 'סכום עסקה' ,paid as 'שולם' , 'יתרת תשלום' = price-paid , 'יתרה כולל מעמ' = (price-paid)*1.17
              from Sales)
              
              select *
              from cte
              where [יתרה כולל מעמ] >50
              
              dovidD תגובה 1 תגובה אחרונה
              0
              • dovidD מחובר
                dovidD מחובר
                dovid ניהול
                השיב לmekev ב נערך לאחרונה על ידי
                #12

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

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                M תגובה 1 תגובה אחרונה
                0
                • M מנותק
                  M מנותק
                  mekev
                  השיב לdovid ב נערך לאחרונה על ידי
                  #13

                  @dovid אמר במניפולציות על שדות מחושבים ב - SQL:

                  המשמעות של זה עבורי שלהבא בשאלות שלך עלי להתמקד רק בלענות על מה ששאלת, ולא לייעץ לך מה אני חושב

                  ממש לא...

                  דווקא התשובות המפורטות שלך
                  עוזרות לי להבין הרבה מעבר לשאלה הנקודתית
                  ומייעלת עבורי (ועבור שאר המשתמשים) ה-מ-ו-ן

                  אתה בדר"כ מביא רקע על התהליך, ומה אמור להיות הסינטקס (זה המילה?) מאחוריה

                  בזכות זה אני מצליח אח"כ לבצע חיפוש ולימוד עצמי המתבססות על הידע שלמדת אותנו פה
                  (גם לדעת מה לחפש זה מאוד חשוב)

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

                  dovidD תגובה 1 תגובה אחרונה
                  4
                  • dovidD מחובר
                    dovidD מחובר
                    dovid ניהול
                    השיב לmekev ב נערך לאחרונה על ידי
                    #14

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

                    אגב הCTE מיותר פה, אתה מייצר שאילתה על שאילתה, זה תת שאילתה קלאסית:

                     select * from (
                         select id as 'מזהה' ,
                         price as 'סכום עסקה' ,
                        paid as 'שולם' ,
                        'יתרת תשלום' = price-paid ,
                        'יתרה כולל מעמ' = (price-paid)*1.17 from Sales
                    )
                    where [יתרה כולל מעמ] >50
                    

                    CTE דרוש רק כאשר אתה משתמש עם התוצאות יותר מפעם אחת (נניח בשתי שאילתות או רקרוסיבית)

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                    M תגובה 1 תגובה אחרונה
                    3
                    • M מנותק
                      M מנותק
                      mekev
                      השיב לdovid ב נערך לאחרונה על ידי
                      #15

                      @dovid אמר במניפולציות על שדות מחושבים ב - SQL:

                      אגב הCTE מיותר פה, אתה מייצר שאילתה על שאילתה, זה תת שאילתה קלאסית:

                      אכן,
                      צודק
                      זה רק היה דוגמא להבהרת נקודת השאלה (איך לגשת לעמודה מחושבת בגוף הselect ואיך בwhere )

                      (השאילתא המקורית אצלי מורכבת
                      [מכילה GROUP BY, ולא הסתדרתי עם הHAVING לפילטור הרצוי]
                      ומכילה מידע שאינו אפשרי לפרסום פה)

                      תגובה 1 תגובה אחרונה
                      1
                      • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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