-
@yossiz סליחה על החשד..
@yossiz אמר במניפולציות על שדות מחושבים ב - SQL:
הממ... הכותב כאן חולק עליך...
כמובן, שוב, מדובר בסדר לוגי ולא בסדר מעשיהכותב שמה צודק בבירור, ואני טעיתי (התחלף לי בראש מהWHERE שהוא רץ קודם אך בו אין את השאלה). בכל אופן המקום בו אני ממש סובל מהMSSQL זה בGROUPBY.
-
@dovid אמר במניפולציות על שדות מחושבים ב - SQL:
בשביל שיהיה מקום אחד לערוך ולא יהיו טעויות צריך לפתח שפה חדשה...
-
השתמשתי ב 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
-
@dovid אמר במניפולציות על שדות מחושבים ב - SQL:
המשמעות של זה עבורי שלהבא בשאלות שלך עלי להתמקד רק בלענות על מה ששאלת, ולא לייעץ לך מה אני חושב
ממש לא...
דווקא התשובות המפורטות שלך
עוזרות לי להבין הרבה מעבר לשאלה הנקודתית
ומייעלת עבורי (ועבור שאר המשתמשים) ה-מ-ו-ןאתה בדר"כ מביא רקע על התהליך, ומה אמור להיות הסינטקס (זה המילה?) מאחוריה
בזכות זה אני מצליח אח"כ לבצע חיפוש ולימוד עצמי המתבססות על הידע שלמדת אותנו פה
(גם לדעת מה לחפש זה מאוד חשוב)אז
אשמח מאוד אם תמשיך להרחיב כמה שניתן בתשובה נקודתית
ובעיקר הרחבת הידע על האפשריות הנוספות האפשריות
(להתייעץ - זה לשמוע דעה שטרם חשבת עליה) -
@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 אמר במניפולציות על שדות מחושבים ב - SQL:
אגב הCTE מיותר פה, אתה מייצר שאילתה על שאילתה, זה תת שאילתה קלאסית:
אכן,
צודק
זה רק היה דוגמא להבהרת נקודת השאלה (איך לגשת לעמודה מחושבת בגוף הselect ואיך בwhere )(השאילתא המקורית אצלי מורכבת
[מכילה GROUP BY, ולא הסתדרתי עם הHAVING לפילטור הרצוי]
ומכילה מידע שאינו אפשרי לפרסום פה) -