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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
OdedDvirO

OdedDvir

@OdedDvir
אודות
פוסטים
2.4k
נושאים
60
שיתופים
0
קבוצות
0
עוקבים
21
עוקב אחרי
0

פוסטים

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

  • אקסס למתחילים: תגובות
    OdedDvirO OdedDvir

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

    תוכנה

  • עזרה | הזנת ערך הפרמטר באקסס
    OdedDvirO OdedDvir

    יש דרך ארוכה וקצרה ויש קצרה וארוכה:

    הדרך הקצרה והארוכה

    היא להכניס פונקציות שלך בתוך השאילתות ו...
    א. להשתמש בשאילתת ביניים כמו ש @clickone ציין,
    או
    ב. להכפיל את החישוב גם עבור שדה זה (רח"ל) 😬 😬 כמו ש @מלא ציין.
    שתי הדרכים לא מומלצות, כמו שאסביר מיד.

    הדרך הארוכה והקצרה

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

    כללי אצבע:

    1. חישובים שאמורים להתבצע רק פעם אחת - לבצע רק פעם אחת ולשמור בטבלה.
    2. להמנע כמה שניתן מלהכניס פונקציות בשאילתות. בפרט פונקציות שמוגדרות על ידי המשתמש.

    זה נכון הן מבחינת יעילות:

    • שאילתות רצות הרבה יותר מהר מקוד VBA באקסס, כי כל קריאה לפונקציה דורשת משאבים מהמערכת.
    • אתה לא צריך לחשב חישובים מיותרים פעמיים (או יותר) כדי שהשאילתא תואיל בטובה לקבל את הערך של הפונקציה.
    • שים לב שאפילו בפונקציות טריוויאליות, כמו Nz() או IsNull() עדיף לרשום בSQL טהור ולא לבצע קריאה ל-VBA, תשווה למשל בין:
    IsNull(SomeField) AS ValueIsEmpty
    

    ל:

    (SomeField Is Null) AS ValueIsEmpty
    

    הראשונה קוראת לפונקצית VBA בשם IsNull() בעוד השניה משתמשת רק בSQL והיא הרבה יותר מהירה.

    דוגמה שניה:
    תשווה בין:

    Nz(Amount,0)
    

    ל:

    IIf(Amount Is Null, 0, Amount)
    

    האופציה השנייה עדיפה בהרבה, כי היא משתמשת ב SQL טהור, ולכן

    • אתה לא מבצע קריאה לפונקציה
    • אתה שומר על טיפוס המשתנה בשדה (Data Type)
    • הקריטריון (אם יש בשאילתה) מחושב נכון
    • העמודה ממויינת נכון

    (הערה: יש הבדל עצום בין IIF של SQL שהיא פונקציה יעילה, לבין IIF של VBA, שהוא פונקציה גרועה שמחשבת תמיד את שתי התוצאות האפשריות!)

    והן מבחינת תחזוקה:

    • לפעמים פונקציה כתובה לא נכון ומייצרת שגיאת ריצה שמוכפלת אלפי פעמים בשאילתא - תרחיש לא נעים בכלל הן לך כמפתח וכ"ש למשתמש.
    • אם תרצה אי פעם לשדרג לבסיס נתונים אחר - הפונקציות לא יעבדו.
    תוכנה

  • מיון באקסל לפי סדר מספרים
    OdedDvirO OdedDvir

    @dovid אמר במיון באקסל לפי סדר מספרים:

    צריך לחלק לשני עמודות ואז לעשות מיון של שתי רמות.

    בדיוק! ברשות @dovid אני ארחיב:
    כדי להפריד את הנתונים (אותיות לחוד ומספרים לחוד) צור שתי עמודות עזר:
    בתא B2 כתוב:

    =LEFT(A2,2)
    

    ובתא C2 כתוב:

    =RIGHT(A2,LEN(A2)-2)
    

    שכפל את הנוסחאות הנ"ל עד סוף הטבלה. אחר כך תבחר את הכל ותעשה מיון לפי 2 רמות כמו ש@dovid אמר. הנה צילום מסך:

    9445fb05-20ba-46fc-be8a-b42a268cf83c-תמונה.png

    והתוצאה:
    25fc380b-d865-4b2b-afe5-662dde210ec2-תמונה.png

    תוכנה

  • בעיה בקוד vba להורדת קובץ משרת ftp
    OdedDvirO OdedDvir

    @אוריי אתה צריך להוסיף הפנייה בעורך הVBA אל Microsoft Internet Transfer Control 6.0 (SP6). לשם כך אתה צריך את הקובץ MSINET.OCX. הוא לא קיים ב Windows 10. תנסה להשתמש בזה msinet.ocx או להוריד אחד מהאינטרנט.

    אח"כ בעורך VBA תוסיף הפניה לקובץ:
    Tools>Reference>Browse
    בחלון שנפתח תסמן את הקובץ שהורדת (ייתכן וכדי לראותו תצטרך לשנות את סוג הקבצים המוצגים בחלון)

    בהצלחה!

    תוספת:
    שכחתי שלב חשוב והוא לרשום את הספריה בWindows.
    עבור Windows גרסת 32 ביט יש להעתיק את הקובץ ל C:\Windows\System32 ולהריץ שורת פקודה כמנהל כך:

    regsvr32 C:\Windows\System32\MSINET.OCX
    

    עבור גרסת 64 ביט צריך להעתיק ל C:\Windows\SysWOW64 ולהריץ שורת פקודה כמנהל כך:

    regsvr32 C:\Windows\SysWOW64\MSINET.OCX
    
    תוכנה

  • מחשב חזק לסביבת עבודה למתכנת
    OdedDvirO OdedDvir

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

    האם הדבר היחיד שיש לי לשדרג זה מעבד ל i9

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

    הנה כמה אפשרויות לשיפור:

    1. תבדוק את כל התוכנות שרצות בקביעות ברקע, והאם באמת יש לך צורך בהן תמיד, או שלפחות בזמן הפיתוח אפשר לוותר עליהן. שים לב שיש לך 32 תהליכים של גוגל כרום רצים במקביל.
    2. ניקוי הרג'יסטרי על ידי CCleaner.
    3. העברת קבצי הפיתוח לכונן SSD.
    4. מגיגול קצר ראיתי שהעיכוב בהשלמה אוטומטית של phpStorm הוא בעיה נפוצה. יש בתוצאות החיפוש גם כמה פתרונות, אבל לא בדקתי לעומק.
    חומרה

  • מדפסת מדפיסה כמה עמודים ומפסיקה
    OdedDvirO OdedDvir

    נסה לאפס את הספולר של המדפסת.
    כנס לשורת הפקודה עם הרשאות מנהל, ותקליד את הפקודות הבאות:

    net stop spooler
    DEL /F /S /Q %systemroot%\System32\spool\PRINTERS\*
    net start spooler
    
    חומרה

  • בקשת עזרה - הגדרות ראוטר 019 מחדש לאחר קפיצה בחשמל ואיפוס - נפתר
    OdedDvirO OdedDvir

    הנציגים טענו שאין צורך בשם וסיסמה...
    בס"ד בסופו של דבר מצאתי את הפיתרון בעצמי, אני אפרט את הדרך שמא יהיה למישהו תועלת מזה:

    1. התחברתי עם כבל LAN, נכנסתי ל-gateway 192.168.1.1 עם שם משתמש: home וסיסמה: Home013 (כך רשום על המדבקה למטה)
    2. תחת תחזוקה maintance ביצעתי איפוס להגדרות יצרן:
      תמונה.png
    3. אחרי זה, באורח פלא החיבור חזר (דרך כבל LAN). אלא שה-wifi היה עם סיסמה דיפולטיבית, וכשניסיתי להיכנס שוב ל-gateway שם המשתמש והסיסמה בסעיף 1 לא עבדו... התקשרתי אל 019 והם אמרו שהסיסמה היא Home (בלי הספרות 013). נו נו. 🤦 🤷
    4. שיניתי את הגדרות ה-wifi כרצוני ונשמתי לרווחה.
    אינטרנט

  • בעיה בסינון מיילים בגימייל
    OdedDvirO OdedDvir

    @יהודי-טוב תנסה כך:
    נסה להשתמש בכוכבית * כלומר כך:

    *aliexpress.com
    

    מקור

    אינטרנט

  • לינק להגדרות המייל
    OdedDvirO OdedDvir

    @שואף תוכל לצרף את כתובת המייל של הנמען ישירות כפרמטר ב-URL:

    https://mail.google.com/mail/u/someuser@gmail.com/#settings
    
    אינטרנט

  • שירות לקוחות ושדרוגים של מתכנת עצמאי
    OdedDvirO OdedDvir

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

    • הכנת מסמך אפיון מפורט של התוכנה ואישור של הלקוח.
    • קביעת לוח זמנים ואבני דרך לביצוע וכן לתשלומים.
    • חתימת חוזה מסודר עם ציון כל הנ"ל בחוזה.
    • כדאי לציין שתתכן סטייה של 10% בזמני הביצוע.

    כשהחוזה חתום, יד המשנה על התחתונה.

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

    תכנות

  • mssql - התייעצות כיצד לשמור שינויי עריכה בטבלאות
    OdedDvirO OdedDvir

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

    תיעוד בשכבת ה-SQL
    יש ל-SQLServer יש אפשרות מובנית לתיעוד על ידי שימוש במעקב שינויים
    ראה כאן מדריך בנושא: https://www.sqlshack.com/creating-a-sql-server-audit-using-sql-server-change-tracking/
    היתרון באפשרות הזו הוא: שהכל מתחיל ונגמר ב-SQL, ללא צורך בכלים נוספים
    החיסרון בגישה הזו הוא: שהכל מתחיל ונגמר ב-SQL... קשה מאוד לתשאל את הנתונים במקרה שרוצים לחקור אירוע, התיעוד מבוצע לתוך הDB, ולא לתוך קבצי טקסט חיצוניים, ושיטה זו עלולה בקלות להוסיף המון רעשי רקע לפעילות השוטפת של ה-DB

    תיעוד בשכבת DAL
    אם יש לך שכבת DataAccess, למשל API שמבצע את השליפה של הנתונים.
    בדוטנט מומלץ להשתמש בכלי תיעוד כגון Serilog
    שיטה זו היא העדיפה ביותר: אפשר לבנות לוגים מבניים Structured logs שניתנים לתחקור בקלות על ידי כלי אנליטיקה של לוגים, כמו SEQ
    אפשר לתעד לקבצי json יומיים, לשלוט על כמות המידע שנצבר ולהגדיר מתי למחוק לוגים ישנים, ל-Serilog יש אפשרות לנקז את הלוגים שלו לכמה אפיקים במקביל. למשל: תוכל לשלוח בו זמנית את הלוגים שלך לקבצים בדיסק, לקונסול, וגם לשרת לוגים כמו SEQ או QRadar שנותנים לך המון אפשרויות להצגה נוחה של הפעילות, ניתוח ושאילתות פילוח (מי המשתמשים שנכנסו הכי הרבה בחודש האחרון, מה הזמן הממוצע שמשתמש מחובר למערכת וכו')
    החיסרון? לא תמיד יש שכבת DAL מסודרת. אבל אם זה המקרה, אז יש כאן בעיה הרבה יותר גדולה מבעיית חוסר התיעוד.

    להמציא את הגלגל
    זה בפירוש לא מומלץ לכל מקרה, ואני בספק אם יש לזה מקום מעשי בכלל, אבל במקרה הנדיר שכן, אתה יכול לבנות כלי מהיר ומלוכלך לתיעוד ב-SQL:
    SQL Server 2016 ומעלה:

    CREATE PROCEDURE [dbo].[fn_GetJsonData]
    -- =================================================
    -- Description:	Get JSON data from a table row
    -- =================================================
        @TableName NVARCHAR(max),
        @Id INT,
        @Columns NVARCHAR(max) = '*',
        @JsonData NVARCHAR(max) OUTPUT
    AS
    BEGIN
        SET NOCOUNT ON;
    
        DECLARE @Sql NVARCHAR(max) = 'SELECT @JsonData=(SELECT TOP 1 ' + @Columns + ' FROM ' + @TableName + ' WHERE Id=' + CAST(@Id AS VARCHAR) + ' FOR JSON AUTO, WITHOUT_ARRAY_WRAPPER)'
    
        EXEC sp_executesql @Sql,
            N'@JsonData NVARCHAR(max) OUTPUT',
            @JsonData OUTPUT
    END
    GO
    

    טבלת תיעוד פשוטה:

    CREATE TABLE MySimpleAudit (
        Id INT identity(1, 1) PRIMARY KEY,
        TableName NVARCHAR(max),
        OriginalData NVARCHAR(max),
        NewData NVARCHAR(max),
        LogTimeStamp DATETIME2 DEFAULT getutcdate()
        )
    

    כדי לתעד, אתה צריך לקרוא לפרוצדורה הנ"ל לפני השינוי ואחריו, ולתעד את השינויים לטבלה:

    
    -- Init variables:
    DECLARE @OriginalData NVARCHAR(max), @NewData NVARCHAR(max);
    
    -- Get original data:
    EXEC [dbo].[fn_GetJsonData] @TableName = 'Payments',
        @Id = 1234,
        @Columns = 'Id,Amount',
        @JsonData = @OriginalData OUTPUT
    
    -- Do manipulations on the table:
    -- ...........
    ---
    
    -- Get Changes:
    
    EXEC [dbo].[fn_GetJsonData] @TableName = 'Payments',
        @Id = 1234,
        @Columns = 'Id,Amount',
        @JsonData = @NewData OUTPUT
    
    INSERT INTO [MySimpleAudit] (TableName, OriginalData, NewData)
    VALUES ('Payments', @OriginalData, @NewData)
    
    תכנות

  • מעונין בקוד לאקסס שירענן נתונים כאילו סגר את האקסס ופתח **נפתר**
    OdedDvirO OdedDvir

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

    תכנות

  • בנייה נכונה של API לעריכת ישות עם כמה ישויות קשורים
    OdedDvirO OdedDvir

    @yossiz אני גם לא למדתי את הנושא באופן מסודר, ומסתפק אם יש לי מה להוסיף לך בנושא, אבל כיון שביקשת:

    בקצרה, RESTful API הוא סגנון עיצוב של ה-API בצורה [השואפת ל]כך שבקשות ה-HTTP שנשלחות אל ה-API יבצעו פעולה בהתאמה לסוג המתודה של הבקשה (HttpMethod), למשל:

    POST ליצירה
    GET עבור קריאה
    PUT עבור עדכון
    DELETE עבור מחיקה

    וכן נקודות הקצה של ה-API יהיו במבנה מאורגן, בד"כ היררכי לפי סוג ישות\מזהה:

    GET Users
    GET Clients/123
    DELETE Doctors/456
    

    ויחזירו קודים מובנים, כמו 200 עבור success ו-404 עבור not found.
    כך שה-API אמור להיות אינטואיטיבי.

    ב-CRUD פשוט הכל טוב ויפה, עד שמגיעים לפעולות קצת יותר מורכבות, בהם לא ברור כל כך איך להיות RESTful "טהור".
    לדוגמא: עדכון חלקי של רשומה (מישהו אי פעם השתמש ב-PATCH ?), שיוך ישות-צאצא לישות-אב (האם הנתיב של פעולת שיוך מטופל לרופא, צריך להיות PUT Doctors/1/Patients/4 או אולי PUT Patients/4/Doctors/1 ?)

    כיוון ש-REST הוא לא ממש סטנדרט, כמו ש@dovid הזכיר, הכאוס חוגג וכל אחד מעקם את הכללים כרצונו, מתכנת מתחיל יכול ליצור API endpoints מוזרות, כמו:

    POST Doctors/delete?doctorid=123
    GET Doctors/all
    GET Doctors/2/delete
    

    ולשאלתך, דוד כבר ענה לך שלפי הספר הדרך היא ב.

    תכנות

  • יצירת מסנן לדו"ח באקסס עם תנאים
    OdedDvirO OdedDvir

    @hp079 אפשר.
    הואיל ואתה רוצה להבין את התהליך, אתן לך את הכיוון, ומשם תוכל להמשיך לבד.
    בתחביר פתיחה של דוח, ניתן להגדיר מסנן או תנאי:

    OpenReport ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs
    

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

    Dim DynamicCondition As String
    DynamicCondition=""
    ' Add first condition
    If (Not IsNull(chkSet_ok)) Then
       DynamicCondition="Ok=" & CStr(chkSet_ok)
    End If
    ' Add second condition:
    If (Not IsNull(chkDone)) Then
       DynamicCondition=IIF(Len(DynamicCondition)>0, DynamicCondition & " AND ", "") & "Done=" & CStr(chkDone)
    End If
    ' Add more conditions
    If (Only_Bar_Mitsva) Then
       DynamicCondition=IIF(Len(DynamicCondition)>0, DynamicCondition & " AND ", "") & "Age>=13"
    End If
    ...
    ' Open report with all my conditions:
    DoCmd.OpenReport "MyReport", acViewNormal, WhereCondition:=DynamicCondition
    
    תכנות

  • מאקרו שכותב מאקרו אחר
    OdedDvirO OdedDvir

    זה לא מפתיע שזו תהיה התוצאה. יש כאן רצף של בעיות:

    1. הקוד מנסה למחוק את הקלאס של גיליון1, אני בספק אם בכלל אפשר למחוק קלאס כזה.
    2. גם אם כן, בודאי שאי אפשר להריץ קוד כזה מתוך גיליון1. זו תהיה התאבדות...
    3. יתכן ושם הקוד של גיליון1 הוא בכלל Sheet1...
    4. כיון שפעולת המחיקה לא הצליחה, ממילא פעולת ההוספה יוצרת מודול חדש עם השם החדש גיליון11, כברירת מחדל במקרה שכבר קיים גיליון1.
    5. אגב, האם אתה באמת רוצה למחוק את כל הקוד שכבר קיים בגיליון1 ?

    נראה שהאופציה העדיפה כאן היא להוסיף שורות חדשות, על ידי המתודה AddFromString:

    Sub AddStringToSheetModule(sheetName As String, codeText As String)
        With ActiveWorkbook.VBProject.VBComponents(Sheets(sheetName).CodeName).CodeModule
            .AddFromString codeText
        End With
    End Sub
    

    ואתה קורא לקוד כך:

    AddStringToSheetModule "גיליון1", "Dim foo As String" + vbNewLine + "Dim bar As String"
    

    הערות:

    • כדי לייבא קובץ טקסט שלם, תקרא אותו לתוך המחרוזת.
    • אין כאן שום בדיקות תקינות, האם הגליון קיים, והאם הקוד עדיין לא קיים במודול, וכו'
    תכנות

  • כיצד לשלוף מידע משתי טבלאות הנמצאות בשרתים שונים - SQL
    OdedDvirO OdedDvir

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

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

    תכנות

  • מסד נתונים כטבלא בשני ממדים
    OdedDvirO OdedDvir

    @שואף אתה בעצם מבקש ליצור טבלת ציר. לא ידוע לי שיש פונקציית PIVOT ב-MySQL, לכן צריך להתחכם ולשרשר כמה משפטי CASE ברצף.
    כדי לקבל את שם העמודה בכל פעם, יש ליצור את נוסח המשפט באופן דינמי עבור כל ערך, ואז להשתמש ב GROUP_CONCAT:

    SET @sql = NULL;
    SELECT
    GROUP_CONCAT(DISTINCT CONCAT(
      'SUM(CASE WHEN name = "', name, '" THEN price ELSE 0 END)  AS ', name)
    )
    INTO @sql
    FROM AZMANOT;
     
    SET @sql = CONCAT('SELECT monthYear, ', @sql, ' FROM AZMANOT GROUP BY monthYear');
    
    SELECT @sql;
     
    PREPARE t FROM @sql;
    EXECUTE t;
    DEALLOCATE PREPARE t;
    
    תכנות

  • שליפת סיומת קובץ - לפי שם הקובץ (C#)
    OdedDvirO OdedDvir

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

    תכנות

  • נגישות בתבנית בוטסארפ
    OdedDvirO OdedDvir

    @יוסף-בן-שמעון אם תגדיר את גודל הכתב של כל הצאצאים ביחידות יחסיות rem, אז כשתשנה את המאפיין font-size של body, כל הצאצאים שלו ישתנו בהתאמה.
    דוגמא

    תכנות

  • שאלה | איזה משתנה מחזיר את שם השולח בגוגל סקריפט?
    OdedDvirO OdedDvir

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

    תכנות
  • 1
  • 2
  • 8
  • 9
  • 10
  • 11
  • 12
  • 91
  • 92
  • 10 / 92
  • התחברות

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

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